1; CHIMEPAD (2012) for realtime Android Csound - by Arthur B. Hunkins 2; A custom version of CHIMEPLAY for chime and other natural sound samples 3; Requires Android OS 2.3 or higher and CsoundApp-5.18.apk (or higher) installed 4 Downloadable from http://sourceforge.net/projects/csound/files/csound5/Android/ 5 Run CSD Player and Browse to this file; select one of the two sets before starting. 6; 0-1 background loop, 1-5 single-shot samples per sound set 7; Only WAV files are permitted. 8; Each default sound set includes 5 chimes and an ambient loop. 9; Background loop must be named 0.wav (set 1) or 10.wav (set 2), 10; and samples labeled 1.wav and up (set 1), or 11.wav and up (set 2). 11; All soundfiles must be in the same folder as this file (suggestion: Music folder). 12; Users are encouraged to create their own sound sets from natural sources. 13; For more info, including a sample performance outline, see: ChimePadReadMe.txt 14 15<CsoundSynthesizer> 16<CsOptions> 17 18-odac -dm3 --expression-opt --sample-accurate 19 20</CsOptions> 21<CsInstruments> 22 23 24sr = 8000 25ksmps = 100 26nchnls = 2 27 28gkamp init 1 29gkpan init .5 30 31 instr 1 32 33kflag init 0 34kflag1 init 0 35kflag2 init 0 36kflag3 init 0 37kflag4 init 0 38kflag5 init 0 39ktime1 init 0 40ktime2 init 0 41ktime3 init 0 42ktime4 init 0 43ktime5 init 0 44ktime times 45iset chnget "slider1" 46 if (iset > .75) || (iset < .25) then 47gidecay = 2 48 else 49gidecay = .025 50 endif 51 if iset > .5 then 52Sfile0 = "10.wav" 53ins0 = 12 54Sfile1 = "11.wav" 55ins1 = 13 56Sfile2 = "12.wav" 57ins2 = 14 58Sfile3 = "13.wav" 59ins3 = 15 60Sfile4 = "14.wav" 61ins4 = 16 62Sfile5 = "15.wav" 63ins5 = 17 64 else 65Sfile0 = "0.wav" 66ins0 = 2 67Sfile1 = "1.wav" 68ins1 = 3 69Sfile2 = "2.wav" 70ins2 = 4 71Sfile3 = "3.wav" 72ins3 = 5 73Sfile4 = "4.wav" 74ins4 = 6 75Sfile5 = "5.wav" 76ins5 = 7 77 endif 78i0 filevalid Sfile0 79i1 filevalid Sfile1 80 if i1 == 1 then 81i1a filelen Sfile1 82 endif 83i2 filevalid Sfile2 84 if i2 == 1 then 85i2a filelen Sfile2 86 endif 87i3 filevalid Sfile3 88 if i3 == 1 then 89i3a filelen Sfile3 90 endif 91i4 filevalid Sfile4 92 if i4 == 1 then 93i4a filelen Sfile4 94 endif 95i5 filevalid Sfile5 96 if i5 == 1 then 97i5a filelen Sfile5 98 endif 99 if (i0 == 0) || (kflag == 1) goto skip 100 event "i", ins0, 0, -1 101kflag = 1 102skip: 103kamp chnget "trackpad.y" 104gkamp = (kamp > 0? kamp: gkamp) 105kpan chnget "trackpad.x" 106gkpan = (kpan > 0? kpan: gkpan) 107kfreq chnget "slider2" 108 if kfreq < .05 then 109kflag1 = 0 110kflag2 = 0 111kflag3 = 0 112kflag4 = 0 113kflag5 = 0 114 endif 115 if i1 > 0 then 116k1 chnget "butt1" 117k1a trigger k1, .5, 0 118 if k1a > 0 then 119 event "i", ins1, 0, i1a 120 kgoto end 121 endif 122 if kfreq >= .05 then 123 if kflag1 == 0 then 124krand1 random 2, 2 + (kfreq * 18) 125ktime1 = ktime + krand1 126kflag1 = 1 127 kgoto end 128 endif 129 if ktime >= ktime1 then 130 event "i", ins1, 0, i1a 131kflag1 = 0 132 kgoto end 133 endif 134 endif 135 endif 136 if i2 > 0 then 137k2 chnget "butt2" 138k2a trigger k2, .5, 0 139 if k2a > 0 then 140 event "i", ins2, 0, i2a 141 kgoto end 142 endif 143 if kfreq >= .05 then 144 if kflag2 == 0 then 145krand2 random 2, 2 + (kfreq * 18) 146ktime2 = ktime + krand2 147kflag2 = 1 148 kgoto end 149 endif 150 if ktime >= ktime2 then 151 event "i", ins2, 0, i2a 152kflag2 = 0 153 kgoto end 154 endif 155 endif 156 endif 157 if i3 > 0 then 158k3 chnget "butt3" 159k3a trigger k3, .5, 0 160 if k3a > 0 then 161 event "i", ins3, 0, i3a 162 kgoto end 163 endif 164 if kfreq >= .05 then 165 if kflag3 == 0 then 166krand3 random 2, 2 + (kfreq * 18) 167ktime3 = ktime + krand3 168kflag3 = 1 169 kgoto end 170 endif 171 if ktime >= ktime3 then 172 event "i", ins3, 0, i3a 173kflag3 = 0 174 kgoto end 175 endif 176 endif 177 endif 178 if i4 > 0 then 179k4 chnget "butt4" 180k4a trigger k4, .5, 0 181 if k4a > 0 then 182 event "i", ins4, 0, i4a 183 kgoto end 184 endif 185 if kfreq >= .05 then 186 if kflag4 == 0 then 187krand4 random 2, 2 + (kfreq * 18) 188ktime4 = ktime + krand4 189kflag4 = 1 190 kgoto end 191 endif 192 if ktime >= ktime4 then 193 event "i", ins4, 0, i4a 194kflag4 = 0 195 kgoto end 196 endif 197 endif 198 endif 199 if i5 > 0 then 200k5 chnget "butt5" 201k5a trigger k5, .5, 0 202 if k5a > 0 then 203 event "i", ins5, 0, i5a 204 kgoto end 205 endif 206 if kfreq >= .05 then 207 if kflag5 == 0 then 208krand5 random 2, 2 + (kfreq * 18) 209ktime5 = ktime + krand5 210kflag5 = 1 211 kgoto end 212 endif 213 if ktime >= ktime5 then 214 event "i", ins5, 0, i5a 215kflag5 = 0 216 kgoto end 217 endif 218 endif 219 endif 220 221end: endin 222 223 instr 2, 12 224 225kamp init 0 226 if p1 == 2 then 227Sfile = "0.wav" 228 else 229Sfile = "10.wav" 230 endif 231ichans filenchnls Sfile 232kamp chnget "slider5" 233skip4: 234 if ichans == 2 goto skip5 235aout diskin2 Sfile, 1, 0, 1 236 outs aout * kamp * 4, aout * kamp * 4 237 goto end 238skip5: 239a1, a2 diskin2 Sfile, 1, 0, 1 240 outs a1 * kamp * 4, a2 * kamp * 4 241 242end: endin 243 244 instr 3, 4, 5, 6, 7, 13, 14, 15, 16, 17 245 246iamp = i(gkamp) 247iramp chnget "slider4" 248iramp2 = 1 - iramp 249iramp2 random iramp2, 1 250iamp = (iramp < .05? iamp: iramp2) 251ipan = i(gkpan) 252irpan chnget "slider3" 253irpan2 = irpan * .5 254irpan2 random -irpan2, irpan2 255ipan = (irpan < .05? ipan: .5 + irpan2) 256 if p1 == 3 then 257Sfile = "1.wav" 258 elseif p1 == 4 then 259Sfile = "2.wav" 260 elseif p1 == 5 then 261Sfile = "3.wav" 262 elseif p1 == 6 then 263Sfile = "4.wav" 264 elseif p1 == 7 then 265Sfile = "5.wav" 266 elseif p1 == 13 then 267Sfile = "11.wav" 268 elseif p1 == 14 then 269Sfile = "12.wav" 270 elseif p1 == 15 then 271Sfile = "13.wav" 272 elseif p1 == 16 then 273Sfile = "14.wav" 274 else 275Sfile = "15.wav" 276 endif 277ichans filenchnls Sfile 278kamp linseg 0, .025, iamp, p3 - .025 - gidecay, iamp, gidecay, 0 279 if ichans == 2 goto skip 280aout diskin2 Sfile, 1 281a1,a2,a3,a4 pan aout, ipan, 1, 1, 1 282 outs a1 * kamp, a2 * kamp 283 goto end 284skip: 285aout,aout2 diskin2 Sfile, 1 286a1,a2,a3,a4 pan aout, ipan, 1, 1, 1 287a5,a6,a7,a8 pan aout2, ipan, 1, 1, 1 288 outs (a1 + a5) * kamp, (a2 + a6) * kamp 289 290end: endin 291 292</CsInstruments> 293 294<CsScore> 295 296f1 0 8193 9 .25 1 0 297i1 0 36000 298 299e 300 301</CsScore> 302</CsoundSynthesizer> 303