#ifndef UDO_INSTRUMENTS #define UDO_INSTRUMENTS ## /* Debugger - Unfixed Bugs : BUG #8 Sound generators Names should correspond to those used in BID file, prepended with play_ */ #include "wavetables.udo" #include "bussing.udo" #include "bid.udo" instr play_bass iamp = bid_getparameter(p4, p5, 2) ifreq = cpsmidinn(table(1, gibid_chordfn, 0, 0, 1) - 48) k1 linseg 2.1, p3*0.2, 2, p3*0.8, 2 k2 line 10, p3, 0 kamp linseg 1, p3*0.1, 0.6, p3*0.9, 0 aL foscil 1, ifreq, 4, k1, k2, gifnSine aR foscil 1, ifreq, 3.9, k1, k2, gifnSine aL pareq aL*1.3, 200, 0.3, 0.7 aR pareq aR*1.3, 200, 0.3, 0.7 bus_mix("master", aL*kamp*iamp, aR*kamp*iamp) endin instr play_mel1 iamp = bid_getparameter(p4, p5, 2) ifreq = cpsmidinn(table(random(1, 4), gibid_chordfn, 0, 0, 1) + 12) kamp init 1 aL wgbowedbar 1, ifreq, 0.5, 0.2, 0.995 aR wgbowedbar 1, ifreq, 0.3, 0.5, 0.995 bus_mix("master", aL*kamp*iamp, aR*kamp*iamp) endin instr play_mel2 iamp = bid_getparameter(p4, p5, 2) ifreq = cpsmidinn(table(random(1, 4), gibid_chordfn, 0, 0, 1) - 12) k1 linseg 1.1, p3*0.2, 2, p3*0.8, 2 k2 line 1, p3, 6 kamp linseg 1, p3*0.1, 0.6, p3*0.9, 0 aL foscil 1, ifreq, 4, k1, k2, gifnSine aR foscil 1, ifreq, 3.9, k1, k2, gifnSine aL pareq aL, 200, 0.3, 0.7 aR pareq aR, 200, 0.3, 0.7 bus_mix("master", aL*kamp*iamp, aR*kamp*iamp) endin /* clap */ gifnClap ftgen 0, 0, 1024, 7, 1, 128, 0, 1, 0.9, 128, 0, 1, 0.8, 128, 0, 1, 0.7, 128, 0, 1, 0.5, 256, 0.1, 256, 0 instr play_clap iamp = bid_getparameter(p4, p5, 2) p3 = 0.25 kbetaL line 0.9, p3, 0.01 kbetaR line 0.8, p3, 0.01 aL noise 1, kbetaL aR noise 1, kbetaR kfreqL line 700+random(-100, 100), p3, 2500+random(-100, 100) kfreqR line 700+random(-100, 100), p3, 2500+random(-100, 100) apt oscil 1, line(50, p3, 2000) apt2 oscil 1, line(500, p3, 20) aL *= apt * apt2 aR *= apt * apt2 aL butterbp aL, kfreqL, 1000 aR butterbp aR, kfreqR, 1000 kndx phasor 1/p3 kamp tab kndx, gifnClap, 1 kamp *= linseg(1, p3*0.5, 0.2, p3*0.5, 0) * iamp * 8 aL *= kamp aR *= kamp bus_mix("master", aL, aR) /* p3 = 0.03 kbt linseg 0.5, p3, -0.5 aL noise 1, kbt aR noise 1, kbt+0.1 kbpf linseg 1500, p3, 100 kbnp linseg 800, p3, 100 aL butterbp aL, kbpf, kbnp aR butterbp aR, kbpf, kbnp aL taninv aL*7 aR taninv aR*7 kamp linseg 1, p3*0.1, 0.3, p3*0.1, 0.9, p3*0.1, 0.3, p3*0.1, 0.8, p3*0.1, 0.2, p3*0.1, 0.7, p3*0.4, 0 kamp2 = abs(oscil(0.5, 4)) + 0.5 aL *= kamp * iamp aR *= kamp * iamp bus_mix("delay2", aL, aR) bus_mix("master", aL, aR) */ endin /* Closed lower frequency hi-hat */ instr play_hat1 iamp = bid_getparameter(p4, p5, 2) idel = random(0.001, 0.02) xtratim idel p3 = random(0.01, 0.04) ifreq = 200 aenv expsega .1, .0005, 1, p3 - .0005, .01 asqr1 oscil 1, ifreq, gifnSaw, -1 asqr2 oscil 1, ifreq*1.4471, gifnSquare, -1 asqr3 oscil 1, ifreq*1.6170, gifnSaw, -1 asqr4 oscil 1, ifreq*1.9265, gifnSaw, -1 asqr5 oscil 1, ifreq*2.5028, gifnSaw, -1 asqr6 oscil 1, ifreq*2.6637, gifnSaw, -1 a808L sum asqr1, asqr2, asqr3, asqr4, asqr5, asqr6 a808L butterhp a808L, 4270 ;a808L butterhp a808L, 4270 aoutL = a808L * aenv * iamp aoutL delay aoutL, idel asqr1 oscil 1, ifreq, gifnSaw, -1 asqr2 oscil 1, ifreq*1.3471, gifnSaw, -1 asqr3 oscil 1, ifreq*1.6470, gifnSaw, -1 asqr4 oscil 1, ifreq*1.8765, gifnSaw, -1 asqr5 oscil 1, ifreq*2.4028, gifnSaw, -1 asqr6 oscil 1, ifreq*2.5637, gifnSaw, -1 a808R sum asqr1, asqr2, asqr3, asqr4, asqr5, asqr6 a808R butterhp a808R, 4270 ;a808L butterhp a808L, 4270 aoutR = a808R * aenv * iamp aoutR delay aoutR, idel bus_mix("master", aoutL, aoutR) endin instr play_hat2 iamp = bid_getparameter(p4, p5, 2) idel1 = random(0.005, 0.02) idel2 = random(0.005, 0.02) xtratim(max:i(idel1, idel2)) kfreq = abs(oscil(50, 10)) + 800 aenv expsega .1, .0005, 1, p3 - .0005, .01 asqr1 oscil 1, kfreq, gifnSquare, -1 asqr2 oscil 1, kfreq*1.4471, gifnSquare, -1 asqr3 oscil 1, kfreq*1.6170, gifnSquare, -1 asqr4 oscil 1, kfreq*1.9265, gifnSquare, -1 asqr5 oscil 1, kfreq*2.5028, gifnSquare, -1 asqr6 oscil 1, kfreq*2.6637, gifnSquare, -1 a808 sum asqr1, asqr2, asqr3, asqr4, asqr5, asqr6 a808 butterhp a808, 3270 a808 butterhp a808, 3270 aout = a808 * aenv * iamp * 0.64 aL delay aout, idel1 aR delay aout, idel2 bus_mix("master", aL, aR) endin /* Lightly distorted 808 style kick */ instr play_kick iamp = bid_getparameter(p4, p5, 2) aout1 wgbowedbar 1, 60, 0.9, 0.1, 0.1 aout1 distort aout1, 0.25, gifnSquare aout1 pareq aout1, 130, 0.3, 0.6 aout1 pareq aout1, 9000, 5, 0.6 aout1 *= 0.8 bus_mix("master", aout1, aout1) endin #end