diff options
Diffstat (limited to 'BUG9/instruments.udo')
-rw-r--r-- | BUG9/instruments.udo | 191 |
1 files changed, 177 insertions, 14 deletions
diff --git a/BUG9/instruments.udo b/BUG9/instruments.udo index 198d196..14399ae 100644 --- a/BUG9/instruments.udo +++ b/BUG9/instruments.udo @@ -14,21 +14,36 @@ 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 + iamp = bid_getparameter(p4, p5, 2) + imode = bid_getparameter(p4, p5, 4) + if (imode == 0) then + 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 + else + ifreq = cpsmidinn(table(random(1, 4), gibid_chordfn, 0, 0, 1) - 48) + if (ifreq < 20) then + ifreq *= 2 + endif + k1 init round(random(1, 2)) + k2 init random(2, 4) + endif 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 + + if (imode == 0) then + aL butterlp aL, 150 + aR butterlp aR, 150 + endif 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) + iamp = bid_getparameter(p4, p5, 2) * 1.5 + ifreq = cpsmidinn(table(random(1, 4), gibid_chordfn, 0, 0, 1)) kamp init 1 aL wgbowedbar 1, ifreq, 0.5, 0.2, 0.995 aR wgbowedbar 1, ifreq, 0.3, 0.5, 0.995 @@ -37,7 +52,7 @@ endin instr play_mel2 iamp = bid_getparameter(p4, p5, 2) - ifreq = cpsmidinn(table(random(1, 4), gibid_chordfn, 0, 0, 1) - 12) + ifreq = cpsmidinn(table(random(1, 4), gibid_chordfn, 0, 0, 1) - 24) 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 @@ -48,19 +63,60 @@ instr play_mel2 bus_mix("master", aL*kamp*iamp, aR*kamp*iamp) endin + +instr play_shaker + iamp = bid_getparameter(p4, p5, 2) * 0.5 + p3 = 0.04 + kamp linseg iamp, p3, 0 + aL shaker kamp, random(4000, 4500), 4, 0.999, 4 + aR shaker kamp, random(4000, 4500), 4, 0.999, 4 + bus_mix("master", aL, aR) +endin + + +/* + tb303 style synth +*/ +instr play_303 + iamp = bid_getparameter(p4, p5, 2) + inote1 = tab_i(random(1, ftlen(gibid_chordfn) - 3), gibid_chordfn) + ifrq1 = random(200, 600) + kamp linseg 1, p3*0.9, 1, p3*0.1, 0 + ifreq1 = cpsmidinn(inote1) + kcps init ifreq1 + kffrq init ifrq1 + a1 phasor kcps ; oscillator + a1 = 1 - 2 * a1 + + a1x butterbp a1, kffrq, kcps * 1.0 ; filters + a1x = a1x * (2 + kffrq / kcps) ; correct amplitude + a1 = a1x + a1 * 0.25 ; 0.5 + a1 butterlp a1, kffrq + + a1 = taninv(a1 * 4 * iamp) ; distortion ; 2.5 + + keqf limit kffrq * 4, 10, sr * 0.48 ; EQ frequency + a1 pareq a1 * 0.4, keqf, 4.0, 1.0, 2 + a1 butterhp a1, 70 + a1 = a1 * kamp * 0.62 + aL, aR pan2 a1, random(0.2, 0.8) + bus_mix("master", aL, aR) +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 + iamp = bid_getparameter(p4, p5, 2) * 1.3 + p3 = (p3 <= 0.2) ? 0.07 : p3 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) + kfreqL line 1100+random(-100, 100), p3, 2500+random(-100, 100) + kfreqR line 1100+random(-100, 100), p3, 2500+random(-100, 100) apt oscil 1, line(50, p3, 2000) apt2 oscil 1, line(500, p3, 20) @@ -106,7 +162,7 @@ instr play_hat1 idel = random(0.001, 0.02) xtratim idel p3 = random(0.01, 0.04) - ifreq = 200 + ifreq = 300 aenv expsega .1, .0005, 1, p3 - .0005, .01 asqr1 oscil 1, ifreq, gifnSaw, -1 asqr2 oscil 1, ifreq*1.4471, gifnSquare, -1 @@ -137,10 +193,14 @@ endin instr play_hat2 iamp = bid_getparameter(p4, p5, 2) + imode = bid_getparameter(p4, p5, 4) idel1 = random(0.005, 0.02) idel2 = random(0.005, 0.02) xtratim(max:i(idel1, idel2)) kfreq = abs(oscil(50, 10)) + 800 + if (imode == 1) then + kfreq linseg 100, p3, 1000 + endif aenv expsega .1, .0005, 1, p3 - .0005, .01 asqr1 oscil 1, kfreq, gifnSquare, -1 asqr2 oscil 1, kfreq*1.4471, gifnSquare, -1 @@ -158,6 +218,109 @@ instr play_hat2 endin +instr play_chord1_note + inote = p4 + iplaymode = p5 + iamp = 0.4 + ivibdepthL = 0.01 + ivibdepthR = ivibdepthL + if (iplaymode = 1) then + klpf linseg 20, p3*0.5, 500, p3*0.5, 6000 + ic1 = 8 + elseif (iplaymode == 2) then + p3 = random(0.7, 2) + klpf linseg 20, p3*0.5, 6000, p3*0.5, 12000 + ivibdepthL = random(5, 10) + ivibdepthR = random(5, 10) + iamp *= 0.17 + ic1 = random(0.1, 2) + else + ic1 = random(4, 10) + klpf linseg 11000, p3, 200 + endif + kamp linseg 1, p3*0.9, 1, p3*0.1, 0 + + aL fmrhode kamp * iamp, cpsmidinn(inote), ic1 + random(-1, 1), 0.4, ivibdepthL, 3, gifnSine, gifnSine, gifnSine, gifnSine, gifnSine + aR fmrhode kamp * iamp, cpsmidinn(inote), ic1 + random(-1, 1), 0.4, ivibdepthR, 6, gifnSine, gifnSine, gifnSine, gifnSine, gifnSine + + aL butterhp aL, 450 + aL butterlp aL, klpf + aR butterhp aR, 450 + aR butterlp aR, klpf + + bus_mix("master", aL, aR) +endin + +instr play_chord1 + iamp = bid_getparameter(p4, p5, 2) + ichordgroup = bid_getparameter(p4, p5, 4) + ichordnum = bid_getparameter(p4, p5, 5) + iplaymode = bid_getparameter(p4, p5, 6) + ifn = gibid_chordgroups[ichordgroup][ichordnum] + index = 0 + while (index < ftlen(ifn)) do + schedule("play_chord1_note", 0, p3, tab_i(index, ifn), iplaymode) + index += 1 + od + turnoff +endin + + + +instr play_chord2_note + inote = p4 + kamp linseg 1, p3*0.9, 1, p3*0.1, 0 + iamp = 0.4 + aL fmbell kamp * iamp, cpsmidinn(inote), 1, 1, 0.01, 3, gifnSine, gifnSine, gifnSine, gifnSine, gifnSine + aR fmbell kamp * iamp, cpsmidinn(inote), 1.1, 1, 0.01, 6, gifnSine, gifnSine, gifnSine, gifnSine, gifnSine + klpf linseg 14000, p3, 200 + + aL butterhp aL, 450 + aL butterlp aL, klpf + aR butterhp aR, 450 + aR butterlp aR, klpf + + bus_mix("master", aL, aR) +endin + +instr play_chord2 + iamp = bid_getparameter(p4, p5, 2) + ichordgroup = bid_getparameter(p4, p5, 4) + ichordnum = bid_getparameter(p4, p5, 5) + ifn = gibid_chordgroups[ichordgroup][ichordnum] + index = 0 + while (index < ftlen(ifn)) do + schedule("play_chord2_note", 0, p3, tab_i(index, ifn)) + index += 1 + od + turnoff +endin + + + +instr play_chord3_note + inote = p4 + iamp = p5 + klfo lfo random(5, 10), random(0.1, 0.4) + a1 oscil 0.15 * iamp, cpsmidinn(inote) + klfo + a1 butterhp a1, 450 + kamp linseg 1, p3*0.8, 1, p3*0.1, 0 + a1 *= kamp + aL, aR pan2 a1, random(0, 1) + + bus_mix("master", aL, aR) +endin + +instr play_chord3 + iamp = bid_getparameter(p4, p5, 2) + ifn = gibid_chordfn + index = 0 + while (index < ftlen(ifn)) do + schedule("play_chord3_note", 0, p3, tab_i(index, ifn), iamp) + index += 1 + od + turnoff +endin /* @@ -166,10 +329,10 @@ endin 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 distort aout1, 0.45, gifnSquare aout1 pareq aout1, 130, 0.3, 0.6 aout1 pareq aout1, 9000, 5, 0.6 - aout1 *= 0.8 + aout1 *= 1.3 bus_mix("master", aout1, aout1) endin |