Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/FileMixASC.csd
diff options
context:
space:
mode:
Diffstat (limited to 'FileMixASC.csd')
-rwxr-xr-xFileMixASC.csd360
1 files changed, 360 insertions, 0 deletions
diff --git a/FileMixASC.csd b/FileMixASC.csd
new file mode 100755
index 0000000..3578936
--- /dev/null
+++ b/FileMixASC.csd
@@ -0,0 +1,360 @@
+; FileMixASC (2010) for realtime Csound5 - by Arthur B. Hunkins
+; ASCII keyboard control (no MIDI); 1-4 files
+; 1-4 controls/parameters per file (amp, band-pass peak freq, peak gain, speed/freq)
+; Files may be mono or stereo; can have different sample rates, may be a variety of
+; uncompressed types including WAV and AIFF; also Ogg/Vorbis (with Sugar 0.86/
+; Blueberry or later) but not MP3.
+; They must be named soundin.1 (through soundin.4), and in the same folder as this file.
+
+<CsoundSynthesizer>
+<CsOptions>
+
+-odac -+rtaudio=alsa -m0d --expression-opt -b128 -B2048
+
+</CsOptions>
+<CsInstruments>
+
+sr = 44100
+; change sample rate to 48000 if 44100 gives no audio. (Necessary for Intel Classmate PC.)
+ksmps = 100
+nchnls = 2
+
+gifile chnexport "files", 1
+gistrt chnexport "random", 1
+gidel chnexport "delay", 1
+gifade chnexport "fade", 1
+giloop chnexport "loop", 1
+giparm chnexport "parms", 1
+gkasc chnexport "ascii", 1
+
+ seed 0
+gkasc init 0
+gktime init .1
+gkamp2 init 0
+gkamp3 init 0
+gkamp4 init 0
+gkamp5 init 0
+gkpfrq2 init 256
+gkpfrq3 init 256
+gkpfrq4 init 256
+gkpfrq5 init 256
+gkpgan2 init .25
+gkpgan3 init .25
+gkpgan4 init .25
+gkpgan5 init .25
+gksped2 init 1
+gksped3 init 1
+gksped4 init 1
+gksped5 init 1
+gktrig init 0
+
+gitemp ftgen 2, 0, 512, -5, 200, 512, sr / 13.2
+
+ instr 1
+
+ if (gidel == 0) || ((gkasc != 116) && (gkasc != 121)) goto skip
+gktrig = 1
+ kgoto end
+skip:
+ if (gkasc != 96) goto skip1
+gktime = .1
+ kgoto end
+skip1:
+ if ((gkasc < 48) || (gkasc > 57)) goto skip2
+gktime = gkasc - 48
+gktime = (gkasc == 48? gktime + 10: gktime)
+ kgoto end
+skip2:
+ if (gkasc != 103) && (gkasc != 104) goto skip3
+gkamp2 = 0
+gkamp3 = 0
+gkamp4 = 0
+gkamp5 = 0
+ kgoto end
+skip3:
+ if (gkasc != 118) && (gkasc != 98) && (gkasc != 110) goto skip4
+gktime = .1
+gkamp2 = 0
+gkamp3 = 0
+gkamp4 = 0
+gkamp5 = 0
+gkpfrq2 = 256
+gkpfrq3 = 256
+gkpfrq4 = 256
+gkpfrq5 = 256
+gkpgan2 = .25
+gkpgan3 = .25
+gkpgan4 = .25
+gkpgan5 = .25
+gksped2 = 1
+gksped3 = 1
+gksped4 = 1
+gksped5 = 1
+ kgoto end
+skip4:
+ if (gkasc != 97) goto skip5
+gkamp2 = gkamp2 + .5
+gkamp2 = (gkamp2 > 1? 1: gkamp2)
+ kgoto end
+skip5:
+ if (gkasc != 115) goto skip6
+gkamp3 = gkamp3 + .5
+gkamp3 = (gkamp3 > 1? 1: gkamp3)
+ kgoto end
+skip6:
+ if (gkasc != 100) goto skip7
+gkamp4 = gkamp4 + .5
+gkamp4 = (gkamp4 > 1? 1: gkamp4)
+ kgoto end
+skip7:
+ if (gkasc != 102) goto skip8
+gkamp5 = gkamp5 + .5
+gkamp5 = (gkamp5 > 1? 1: gkamp5)
+ kgoto end
+skip8:
+ if (gkasc != 65) goto skip9
+gkamp2 = gkamp2 - .5
+gkamp2 = (gkamp2 < 0? 0: gkamp2)
+ kgoto end
+skip9:
+ if (gkasc != 83) goto skip10
+gkamp3 = gkamp3 - .5
+gkamp3 = (gkamp3 < 0? 0: gkamp3)
+ kgoto end
+skip10:
+ if (gkasc != 68) goto skip11
+gkamp4 = gkamp4 - .5
+gkamp4 = (gkamp4 < 0? 0: gkamp4)
+ kgoto end
+skip11:
+ if (gkasc != 70) goto skip12
+gkamp5 = gkamp5 - .5
+gkamp5 = (gkamp5 < 0? 0: gkamp5)
+ kgoto end
+skip12:
+ if giparm == 1 goto end
+ if (gkasc != 113) goto skip13
+gkpfrq2 = gkpfrq2 + 128
+gkpfrq2 = (gkpfrq2 > 512? 512: gkpfrq2)
+ kgoto end
+skip13:
+ if (gkasc != 119) goto skip14
+gkpfrq3 = gkpfrq3 + 128
+gkpfrq3 = (gkpfrq3 > 512? 512: gkpfrq3)
+ kgoto end
+skip14:
+ if (gkasc != 101) goto skip15
+gkpfrq4 = gkpfrq4 + 128
+gkpfrq4 = (gkpfrq4 > 512? 512: gkpfrq4)
+ kgoto end
+skip15:
+ if (gkasc != 114) goto skip16
+gkpfrq5 = gkpfrq5 + 128
+gkpfrq5 = (gkpfrq5 > 512? 512: gkpfrq5)
+ kgoto end
+skip16:
+ if (gkasc != 81) goto skip17
+gkpfrq2 = gkpfrq2 - 128
+gkpfrq2 = (gkpfrq2 < 0? 0: gkpfrq2)
+ kgoto end
+skip17:
+ if (gkasc != 87) goto skip18
+gkpfrq3 = gkpfrq3 - 128
+gkpfrq3 = (gkpfrq3 < 0? 0: gkpfrq3)
+ kgoto end
+skip18:
+ if (gkasc != 69) goto skip19
+gkpfrq4 = gkpfrq4 - 128
+gkpfrq4 = (gkpfrq4 < 0? 0: gkpfrq4)
+ kgoto end
+skip19:
+ if (gkasc != 82) goto skip20
+gkpfrq5 = gkpfrq5 - 128
+gkpfrq5 = (gkpfrq5 < 0? 0: gkpfrq5)
+ kgoto end
+skip20:
+ if giparm == 2 goto end
+ if (gkasc != 106) goto skip21
+gkpgan2 = gkpgan2 + .225
+gkpgan2 = (gkpgan2 > .7? .7: gkpgan2)
+ kgoto end
+skip21:
+ if (gkasc != 107) goto skip22
+gkpgan3 = gkpgan3 + .225
+gkpgan3 = (gkpgan3 > .7? .7: gkpgan3)
+ kgoto end
+skip22:
+ if (gkasc != 108) goto skip23
+gkpgan4 = gkpgan4 + .225
+gkpgan4 = (gkpgan4 > .7? .7: gkpgan4)
+ kgoto end
+skip23:
+ if (gkasc != 59) goto skip24
+gkpgan5 = gkpgan5 + .225
+gkpgan5 = (gkpgan5 > .7? .7: gkpgan5)
+ kgoto end
+skip24:
+ if (gkasc != 74) goto skip25
+gkpgan2 = gkpgan2 - .225
+gkpgan2 = (gkpgan2 < .25? .25: gkpgan2)
+ kgoto end
+skip25:
+ if (gkasc != 75) goto skip26
+gkpgan3 = gkpgan3 - .225
+gkpgan3 = (gkpgan3 < .25? .25: gkpgan3)
+ kgoto end
+skip26:
+ if (gkasc != 76) goto skip27
+gkpgan4 = gkpgan4 - .225
+gkpgan4 = (gkpgan4 < .25? .25: gkpgan4)
+ kgoto end
+skip27:
+ if (gkasc != 58) goto skip28
+gkpgan5 = gkpgan5 - .225
+gkpgan5 = (gkpgan5 < .25? .25: gkpgan5)
+ kgoto end
+skip28:
+ if giparm == 3 goto end
+ if (gkasc != 117) goto skip29
+gksped2 = gksped2 + .05
+gksped2 = (gksped2 > 1.1? 1.1: gksped2)
+ goto end
+skip29:
+ if (gkasc != 105) goto skip30
+gksped3 = gksped3 + .05
+gksped3 = (gksped3 > 1.1? 1.1: gksped3)
+ goto end
+skip30:
+ if (gkasc != 111) goto skip31
+gksped4 = gksped4 + .05
+gksped4 = (gksped4 > 1.1? 1.1: gksped4)
+ goto end
+skip31:
+ if (gkasc != 112) goto skip32
+gksped5 = gksped5 + .05
+gksped5 = (gksped5 > 1.1? 1.1: gksped5)
+ goto end
+skip32:
+ if (gkasc != 85) goto skip33
+gksped2 = gksped2 - .05
+gksped2 = (gksped2 < .9? .9: gksped2)
+ goto end
+skip33:
+ if (gkasc != 73) goto skip34
+gksped3 = gksped3 - .05
+gksped3 = (gksped3 < .9? .9: gksped3)
+ goto end
+skip34:
+ if (gkasc != 79) goto skip35
+gksped4 = gksped4 - .05
+gksped4 = (gksped4 < .9? .9: gksped4)
+ goto end
+skip35:
+ if (gkasc != 80) goto end
+gksped5 = gksped5 - .05
+gksped5 = (gksped5 < .9? .9: gksped5)
+end:
+
+gkasc = 0
+
+ endin
+
+ instr 2, 3, 4, 5
+
+ if p1 > 2 igoto skip
+ if gifile == 1 igoto skip
+ event_i "i", 3, 0, 3600
+ if gifile == 2 igoto skip
+ event_i "i", 4, 0, 3600
+ if gifile == 3 igoto skip
+ event_i "i", 5, 0, 3600
+skip:
+ if p1 > 2 goto skip1
+k1 = gkamp2
+k2 = gkpfrq2
+k3 = gkpgan2
+k4 = gksped2
+ goto skip2
+skip1:
+ if p1 > 3 goto skip3
+k1 = gkamp3
+k2 = gkpfrq3
+k3 = gkpgan3
+k4 = gksped3
+ goto skip2
+skip3:
+ if p1 > 4 goto skip4
+k1 = gkamp4
+k2 = gkpfrq4
+k3 = gkpgan4
+k4 = gksped4
+ goto skip2
+skip4:
+k1 = gkamp5
+k2 = gkpfrq5
+k3 = gkpgan5
+k4 = gksped5
+skip2:
+kamp lineto k1, gktime
+kamp2 table kamp * 512, 1
+kamp2 port kamp2, .01
+ifile = p1 - 1
+ichans filenchnls ifile
+ilen filelen ifile
+ipeak filepeak ifile
+imult = 8190 / ipeak
+kamp2 = kamp2 * imult
+irand unirand ilen * .75
+
+istart = (gistrt == 0? irand: 0)
+
+kbase lineto k4, gktime
+kbase = (giparm == 4? kbase: 1)
+ if (gidel == 1) && (gktrig == 0) goto end
+
+iloop = (giloop == 1? 0: 1)
+
+ if ichans == 2 goto skip5
+a1 diskin2 ifile, kbase, istart, iloop
+ if giparm == 1 goto skip7
+ goto skip6
+skip5:
+a1, a2 diskin2 ifile, kbase, istart, iloop
+ if giparm == 1 goto skip7
+skip6:
+kfreq lineto k2, gktime
+kfreq table kfreq, 2
+kfreq port kfreq, .01
+kres lineto k3, gktime
+kres = (giparm > 2? kres: .25)
+a3,a4,a5 svfilter a1, kfreq, kres
+ if ichans == 1 goto skip7
+a6,a7,a8 svfilter a2, kfreq, kres
+skip7:
+ifade = gifade
+ if gifade > 0 goto skip8
+ifade tab_i gifade + 3, 3
+skip8:
+kamp3 linseg (gidel == 0? 1: 0), ifade, 1, (iloop == 0? ilen - (ifade * 2) - istart: .01), 1, (iloop == 0? ifade: .01), (iloop == 0? 0: 1)
+kamp2 = kamp2 * kamp3
+ if giparm > 1 goto skip9
+ outs a1 * kamp2, (ichans == 1? a1: a2) * kamp2
+ goto end
+skip9:
+ outs a5 * kamp2, (ichans == 1? a5: a8) * kamp2
+end:
+ endin
+
+</CsInstruments>
+
+<CsScore>
+
+f 1 0 512 16 0 512 .8 1
+f 3 0 4 -2 .01 .1 .5 .0001
+i 1 0 3600
+i 2 0 3600
+
+e
+
+</CsScore>
+</CsoundSynthesizer>