From 0f09f0882ed87bea9ff3e745c73f5d4743854fbb Mon Sep 17 00:00:00 2001 From: Richard Date: Fri, 28 Feb 2025 02:08:19 +0000 Subject: added bug6 --- BUG6/BUG6.csd | 139 +++++++++++++------------------------------- BUG6/bid.udo | 150 +++++++++++++++++++++++++++++++++++++----------- BUG6/bid_source.udo | 158 +++++++++++++++++++++++++++++++++++++++++++++++++-- BUG6/bussing.udo | 17 ++++++ BUG6/instruments.udo | 11 ++-- 5 files changed, 333 insertions(+), 142 deletions(-) (limited to 'BUG6') diff --git a/BUG6/BUG6.csd b/BUG6/BUG6.csd index 076d5f2..c9cbea4 100644 --- a/BUG6/BUG6.csd +++ b/BUG6/BUG6.csd @@ -9,7 +9,7 @@ http://git.1bpm.net/csd-unfixedbugs1/about/ - By Richard Knight 2021 + By Richard Knight 2021, 2023, 2024 http://1bpm.net q@1bpm.net @@ -18,14 +18,14 @@ sr = 44100 ksmps = 64 nchnls = 2 -0dbfs = 1 +0dbfs = 1.1 seed 0 #define NOFILEIO ## ; file IO with readfi not supported on all platforms: disables bid_loadfile gkmastergain init 1 ; master gain gkpump = 0 ; kick ducking control -gksection init -1 +gksection init 1 #include "wavetables.udo" ; general waveforms #include "bussing.udo" ; global audio bussing @@ -95,19 +95,13 @@ instr global_delay3 bus_mix("master", aLdel, aRdel) endin -/* - Master audio output -*/ -instr global_master - igain = 1 - aL, aR bus_read "master" - awindex phasor giglitchsamples/sr - tablew aL, awindex*giglitchsamples, giglitchbufferL - tablew aR, awindex*giglitchsamples, giglitchbufferR - - if (gksection == 1) then - ilen = tab_i(1, gibid_sectionlengths) * gibid_beattime +instr section_bus + isection = p4 + ilen = p3 + aL, aR bus_read "section_bus_send" + + if (isection == 1) then khpf linseg 0, ilen*0.5, 0, ilen*0.3, 100, ilen*0.1, 200, ilen*0.1, 900 knoiseamp linseg 0, ilen*0.8, 0.04, ilen*0.1, 0.1, ilen*0.1, 0.6 anL = noise(0.5, 0.2) @@ -119,8 +113,7 @@ instr global_master aR += resony(anR, kfreq*4, 8, 24, 4) * 0.01 * knoiseamp aL butterhp aL, khpf aR butterhp aR, khpf - elseif (gksection == 3) then - ilen = tab_i(3, gibid_sectionlengths) * gibid_beattime + elseif (isection == 3 || isection == 8 || isection == 12) then anL = noise(0.5, 0.5) anR = noise(0.5, 0.5) knoiseamp linseg 0, ilen*0.7, 0.1, ilen*0.1, 0.2, ilen*0.2, 0.9 @@ -129,34 +122,37 @@ instr global_master kfreq linseg ifreq1, ilen*0.8, ifreq1, ilen*0.2, ifreq2 aL += resony(anL, kfreq*4, 3, 24, 4) * 0.005 * knoiseamp aR += resony(anR, kfreq*4, 3, 24, 4) * 0.005 * knoiseamp - bus_mix("delay1", aL*knoiseamp*0.5, aR*knoiseamp*0.5) + bus_mix("delay1", aL*knoiseamp*0.3, aR*knoiseamp*0.3) khpf expseg 1, ilen*0.4, 300, ilen*0.4, 600, ilen*0.1, 20, ilen*0.1, 20 aL butterhp aL, khpf aR butterhp aR, khpf endif - aL limit aL*0.5, -1, 1 - aR limit aR*0.5, -1, 1 - outs aL*gkmastergain*igain, aR*gkmastergain*igain -endin + bus_set("section_bus_return", aL, aR) +endin /* - Print notification of performance time since last notification - or if isection is -1, print completion notification + Master audio output */ -gitimetrack times -instr notify_change - isection = p4 - itime times - if (isection == -1) then - tt_notify(sprintf"Complete, runtime: %s", tt_parsetime(itime))) - exitnow - else - isectiontime = itime - gitimetrack - tt_notify(sprintf("%s : section %d complete in %s", tt_parsetime(itime), isection, tt_parsetime(isectiontime))) - gitimetrack = itime +instr global_master + igain = 1 + aL, aR bus_read "master" + + awindex phasor giglitchsamples/sr + tablew aL, awindex*giglitchsamples, giglitchbufferL + tablew aR, awindex*giglitchsamples, giglitchbufferR + + if (changed:k(gksection) == 1) then + schedulek("section_bus", 0, tab:k(gksection, gibid_sectionlengths) * gibid_beattime, gksection) endif - turnoff + + bus_set("section_bus_send", aL, aR) + aL, aR bus_read "section_bus_return" + + + aL limit aL*0.5, -1, 1 + aR limit aR*0.5, -1, 1 + outs aL*gkmastergain*igain, aR*gkmastergain*igain endin @@ -170,77 +166,22 @@ instr parseandrun bid_loadtext(SBID) tt_notify("Running sequencer") - event_i "i", "sequencer", 0, 3600 + schedule("sequencer", 0, 3600) turnoff endin -instr endfade - exitnow -endin - - instr sequencer isection = 1 - event_i "i", "bid_setcurrentchord", 0, 1, isection, 0 - event_i "i", "global_master", 0, p3 - event_i "i", "global_delay1", 0, p3 - event_i "i", "global_delay2", 0, p3 - event_i "i", "global_delay3", 0, p3 - kmetro metro (gibid_tempo / 60) * 4 - kpos init 0 - kposabs init 0 - ksection init isection - kposchord init 0 - gksection = ksection - if (kmetro == 1) then - if (ksection > gibid_maxsection) then - ;event "i", "endfade", 0, gibid_beattime*8 - event "i", "notify_change", p3, 1, -1 - turnoff - endif - - bid_seq "kick", kpos, ksection - bid_seq "kick2", kpos, ksection - bid_seq "clap", kpos, ksection - bid_seq "303", kpos, ksection - bid_seq "hat1", kpos, ksection - bid_seq "snare", kpos, ksection - bid_seq "hat2", kpos, ksection - bid_seq "303b", kpos, ksection - bid_seq "glitchread", kpos, ksection - bid_seq "blip", kpos, ksection - bid_seq "shaker", kpos, ksection - - - kpos = (kpos < 31) ? kpos + 1 : 0 - ksection16ths = bid_getsectionlength(ksection) * 4 - - if (kposabs+1 < ksection16ths) then - kposabs += 1 - else - event "i", "notify_change", 0, 1, ksection - ;event "i", "play_crash", 0, gibid_beattime*4 - ksection += 1 - kposchord = 0 - kpos = 0 - kposabs = 0 - event "i", "bid_setcurrentchord", 0, 1, ksection, 1 - endif - - - if (kposchord+1 < gkbid_chordlength*4) then - kposchord += 1 - else - kposchord = 0 - event "i", "bid_setcurrentchord", 0, 1, ksection, 1 - endif - - - endif - + schedule "bid_setcurrentchord", 0, 1, isection, 0 + schedule "global_master", 0, p3 + schedule "global_delay1", 0, p3 + schedule "global_delay2", 0, p3 + schedule "global_delay3", 0, p3 + gksection bid_seq_all isection endin + i"parseandrun" 0 1 diff --git a/BUG6/bid.udo b/BUG6/bid.udo index 17e9be2..05f5372 100644 --- a/BUG6/bid.udo +++ b/BUG6/bid.udo @@ -9,7 +9,7 @@ */ -#define BID_VERSION #1.1# +#define BID_VERSION #1.2# #include "txt_tools.udo" @@ -118,37 +118,6 @@ opcode _bid_parserowitems, i, Siii endop -/* - Read BID data for specified element and trigger accordingly. - - bid_seq Splayer, kposition, ksection - - Splayer name of BID element - kposition position in pattern provided by master sequencer - ksection section in composition provided by master sequencer - -*/ -opcode bid_seq, 0, Skk - Splayer, kpos, ksection xin - Sinstrument = sprintf("play_%s", Splayer) - instrindex = _bid_gettextindex(Splayer) - kdata = gibid_sections[ksection][instrindex] - - if (kdata != -1) then ; null section - kon = tablekt:k(kpos, gibid_sectiondata[kdata][0]) - - if (kon == 1) then - kchance = tablekt:k(kpos, gibid_sectiondata[kdata][3]) - if (random:k(0, 1) < kchance) then - ktime = (kpos % 2 == 0) ? 0 : gibid_swingtime - kdur = tablekt:k(kpos, gibid_sectiondata[kdata][1]) * gibid_beattime - ;kamp = tablekt:k(kpos, gisectiondata[kdata][2]) - event "i", Sinstrument, ktime, kdur, kpos, kdata - endif - endif - endif -endop - /* Get a parameter for the specified pattern position. @@ -345,6 +314,123 @@ complete: endop + +/* + Read BID data for specified element and trigger accordingly. + + bid_seq Splayer, kposition, ksection + + Splayer name of BID element + kposition position in pattern provided by master sequencer + ksection section in composition provided by master sequencer + +*/ +opcode bid_seq, 0, Skk + Splayer, kpos, ksection xin + Sinstrument = sprintf("play_%s", Splayer) + instrindex = _bid_gettextindex(Splayer) + kdata = gibid_sections[ksection][instrindex] + + if (kdata != -1) then ; null section + kon = tablekt:k(kpos, gibid_sectiondata[kdata][0]) + + if (kon == 1) then + kchance = tablekt:k(kpos, gibid_sectiondata[kdata][3]) + if (random:k(0, 1) < kchance) then + ktime = (kpos % 2 == 0) ? 0 : gibid_swingtime + kdur = tablekt:k(kpos, gibid_sectiondata[kdata][1]) * gibid_beattime + ;kamp = tablekt:k(kpos, gisectiondata[kdata][2]) + event "i", Sinstrument, ktime, kdur, kpos, kdata + endif + endif + endif +endop + + +instr _bid_exit + exitnow +endin + +/* + Print notification of performance time since last notification + or if isection is -1, print completion notification +*/ +gibid_timetrack times +instr bid_notify_change + isection = p4 + itime times + if (isection == -1) then + tt_notify(sprintf"Complete, runtime: %s", tt_parsetime(itime))) + exitnow + else + isectiontime = itime - gibid_timetrack + tt_notify(sprintf("%s : section %d complete in %s", tt_parsetime(itime), isection, tt_parsetime(isectiontime))) + gibid_timetrack = itime + endif + turnoff +endin + + +opcode bid_seq_all, k, oo + istartsection, index xin + ksection init istartsection + kpos init 0 + kposabs init 0 + kposchord init 0 + imaxinstruments = lenarray(gSbid_sequenced) + + kmetro metro (gibid_tempo / 60) * 4 + + if (kmetro == 1) then + if (ksection > gibid_maxsection) then + schedulek("bid_notify_change", 0, 1, -1) + endif + + kindex = 0 + while (kindex < imaxinstruments) do + kdata = gibid_sections[ksection][kindex] + if (kdata != -1) then ; null section + kon = tablekt:k(kpos, gibid_sectiondata[kdata][0]) + + if (kon == 1) then + kchance = tablekt:k(kpos, gibid_sectiondata[kdata][3]) + if (random:k(0, 1) < kchance) then + ktime = (kpos % 2 == 0) ? 0 : gibid_swingtime + kdur = tablekt:k(kpos, gibid_sectiondata[kdata][1]) * gibid_beattime + ;kamp = tablekt:k(kpos, gisectiondata[kdata][2]) + schedulek(sprintfk("play_%s", gSbid_sequenced[kindex]), ktime, kdur, kpos, kdata) + endif + endif + endif + kindex += 1 + od + + kpos = (kpos < 31) ? kpos + 1 : 0 + ksection16ths = bid_getsectionlength(ksection) * 4 + + if (kposabs + 1 < ksection16ths) then + kposabs += 1 + else + schedulek("bid_notify_change", 0, 1, ksection) + ksection += 1 + kposchord = 0 + kpos = 0 + kposabs = 0 + schedulek("bid_setcurrentchord", 0, 1, ksection, 1) + endif + + if (kposchord + 1 < gkbid_chordlength * 4) then + kposchord += 1 + else + kposchord = 0 + schedulek("bid_setcurrentchord", 0, 1, ksection, 1) + endif + endif + xout ksection +endop + + + /* Parse a Bug Infested Directive Format string to global arrays, ftables and variables. Handles patterns, tempo, chord groups and sections etc accordingly. diff --git a/BUG6/bid_source.udo b/BUG6/bid_source.udo index 76d508a..05b9fff 100644 --- a/BUG6/bid_source.udo +++ b/BUG6/bid_source.udo @@ -1,5 +1,5 @@ /* - Debugger - Unfixed Bugs : BUG #4 + Debugger - Unfixed Bugs : BUG #6 Bug Infested Directives source Provided as a string due to readfi not being available on all platforms. @@ -7,8 +7,8 @@ */ SBID = {{ -; Bug Infested Directives : Debugger - Unfixed Bugs : BUG #4 -v 1.1 +; Bug Infested Directives : Debugger - Unfixed Bugs : BUG #6 +v 1.2 ; tempo, swing percent b 128, 40 @@ -25,8 +25,16 @@ c 2 s 1, 64, 1 s 2, 64, 1 s 3, 8, 2 -s 4, 56, 1 -s 5, 32, 2 +s 4, 52, 1 +s 5, 4, 2 +s 6, 64, 1 +s 7, 60, 1 +s 8, 4, 2 +s 9, 64, 1 +s 10, 28, 1 +s 11, 4, 2 +s 12, 32, 1 +s 13, 1, 1 i glitchread, 1, -1 i glitchread, 2, -1 @@ -38,6 +46,14 @@ i glitchread, 4 1, 1, 1, 1, 1,.9, 1,.8, 1, 1, 1,.9, 1,.8,.6, 1, 1, 1, 1, 1, 1,.9, 1,.8, 1, 1, 1,.9, 1,.8, 1, 1 1, 1, 1,.8, 1,.8, 1,.8, 1,.8, 1,.8, 1,.8,.3, 1, 1, 1, 1,.8, 1,.8, 1,.8, 1,.8, 1,.8, 1,.8, 1, 1 i glitchread, 5, -1 +i glitchread, 6, 4 +i glitchread, 7, -1 +i glitchread, 8, 4 +i glitchread, 9, -1 +i glitchread, 10, 4 +i glitchread, 11, 4 +i glitchread, 12, 4 +i glitchread, 13, -1 i 303, 1, -1 @@ -55,6 +71,19 @@ i 303, 5 .1,.1,.1,.3,.1,.1,.1,.3,.1,.1,.1,.3,.1,.1,.1,.3,.1,.1,.1,.3,.1,.1,.1,.3,.1,.1,.1,.3,.1,.1,.3,.1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +i 303, 6 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1 + .1,.1,.1,.3,.1,.1,.1,.3,.1,.1,.1,.3,.1,.1,.1,.3,.1,.1,.1,.3,.1,.1,.1,.3,.1,.1,.1,.3,.1,.1,.3,.1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +i 303, 7, 2 +i 303, 8, -1 +i 303, 9, 2 +i 303, 10, -1 +i 303, 11, -1 +i 303, 12, -1 +i 303, 13, -1 i 303b, 1 @@ -72,6 +101,15 @@ i 303b, 5 .1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +i 303b, 6, 5 +i 303b, 7, 5 +i 303b, 8, 5 +i 303b, 9, 1 +i 303b, 10, 1 +i 303b, 11, 5 +i 303b, 12, -1 +i 303b, 13, -1 + i blip, 1 ; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - @@ -88,6 +126,25 @@ i blip, 5 .1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +i blip, 6, -1 +i blip, 7 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0 + .1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6,.6 +i blip, 8, 1 +i blip, 9, 1 +i blip, 10, 1 +i blip, 11, 1 +i blip, 12, -1 +i blip, 13 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + .1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.6, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.6, 1,.4, 1, 1, 1, 1, 1, 1, 1, 1 + i clap, 1, -1 i clap, 2 @@ -104,6 +161,19 @@ i clap, 3 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 i clap, 4, 2 i clap, 5, 3 +i clap, 6 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 + 0, 0, 0, 0,.1, 0, 0,.1, 0, 0, 0, 0,.1, 0, 0, 0, 0,.1, 0, 0,.1, 1, 0, 0, 0, 0, 0, 0,.1, 0, 0, 1 + 1, 1, 1, 1, 1, 1, 1,.6, 1, 1, 1, 1, 1, 1, 1, 1, 1,.6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1,.4, 1, 1, 1, 1, 1, 1, 1, 1, 1,.4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +i clap, 7, 6 +i clap, 8, -1 +i clap, 9, 6 +i clap, 10, 6 +i clap, 11, -1 +i clap, 12, -1 +i clap, 13, -1 i snare, 1 @@ -121,6 +191,19 @@ i snare, 3 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.3, 1, 1,.3,.3, 1, 1, 1, 1, 1, 1, 1, 1, 1,.3, 1,.3, 1,.3,.3,.3 i snare, 4, 1 i snare, 5, 3 +i snare, 6, -1 +i snare, 7, 1 +i snare, 8 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + .1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1,.1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.3, 1, 1,.3,.3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +i snare, 9, -1 +i snare, 10, 1 +i snare, 11, 8 +i snare, 12, -1 +i snare, 13, -1 i hat1, 1 @@ -133,6 +216,19 @@ i hat1, 2, 1 i hat1, 3, 1 i hat1, 4, 1 i hat1, 5, 1 +i hat1, 6 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +i hat1, 7, 6 +i hat1, 8, -1 +i hat1, 9, 1 +i hat1, 10, -1 +i hat1, 11, -1 +i hat1, 12, -1 +i hat1, 13, -1 i hat2, 1, -1 @@ -152,6 +248,20 @@ i hat2, 3 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 i hat2, 4, 2 i hat2, 5, 2 +i hat2, 6 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1,.5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.5, 1,.5, 1, 1, 1, 1, 1, 1 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +i hat2, 7, 6 +i hat2, 8, -1 +i hat2, 9, 2 +i hat2, 10, -1 +i hat2, 11, -1 +i hat2, 12, -1 +i hat2, 13, -1 i shaker, 1 @@ -164,6 +274,20 @@ i shaker, 2, 1 i shaker, 3, 1 i shaker, 4, 1 i shaker, 5, -1 +i shaker, 6 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1,.6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.6, 1,.6, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1,.5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.5, 1,.5, 1, 1, 1, 1, 1, 1 +i shaker, 7, 6 +i shaker, 8, -1 +i shaker, 9, 1 +i shaker, 10, 1 +i shaker, 11, -1 +i shaker, 12, -1 +i shaker, 13, -1 + i kick, 1 ; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - @@ -184,7 +308,21 @@ i kick, 5 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 .4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.3 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1 - 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1 + 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.4, 1, 1, 1,.1, 1 +i kick, 6 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0 + .4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.4,.3 + 1, 0,.8, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,.8, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,.7,.6 + 1, 1,.1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.4,.2 +i kick, 7, 6 +i kick, 8, -1 +i kick, 9, 1 +i kick, 10, 1 +i kick, 11, -1 +i kick, 12, 1 +i kick, 13, -1 + i kick2, 1 ; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - @@ -196,4 +334,12 @@ i kick2, 2, 1 i kick2, 3, 1 i kick2, 4, 1 i kick2, 5, 1 +i kick2, 6, -1 +i kick2, 7, 1 +i kick2, 8, -1 +i kick2, 9, 1 +i kick2, 10, 1 +i kick2, 11, -1 +i kick2, 12, -1 +i kick2, 13, -1 }} diff --git a/BUG6/bussing.udo b/BUG6/bussing.udo index 78755ce..56ea46a 100644 --- a/BUG6/bussing.udo +++ b/BUG6/bussing.udo @@ -36,6 +36,7 @@ endop + /* Read from a stereo bus, and then clear the bus @@ -57,6 +58,22 @@ opcode bus_read, aa, S endop +/* + Set to a stereo bus + + bus_set Sbus, aL, aR + + Sbus bus name + aL left channel + aR right channel +*/ +opcode bus_set, 0, Saa + Sbus, aL, aR xin + SbusL, SbusR bus_name Sbus + chnset aL, SbusL + chnset aR, SbusR +endop + #end diff --git a/BUG6/instruments.udo b/BUG6/instruments.udo index a6d3458..0b91a1e 100644 --- a/BUG6/instruments.udo +++ b/BUG6/instruments.udo @@ -78,10 +78,10 @@ endin instr play_blip iamp = bid_getparameter(p4, p5, 2) - inote1 = table(p4+3, gibid_chordfn, 0, 0, 1) +12 - inote2 = table(p4+5, gibid_chordfn, 0, 0, 1) +12 - a1 oscil 1, cpsmidinn(inote1) - a2 oscil 1, cpsmidinn(inote2) + inote1 = table(p4+3, gibid_chordfn, 0, 0, 1) + 12 + inote2 = table(p4+5, gibid_chordfn, 0, 0, 1) + 12 + a1 oscil 1.2, cpsmidinn(inote1) + a2 oscil 1.2, cpsmidinn(inote2) kamp linseg 1, p3*0.2, 0, p3*0.8, 0 aL = a1 * kamp aR = a2 * kamp @@ -160,7 +160,8 @@ instr play_hat2 aout = a808 * aenv * iamp * 1.1 aL delay aout, idel1 aR delay aout, idel2 - if (i(gksection) == 1 && random(0, 1) > 0.7) then + isection = i(gksection) + if ((isection == 1 || isection == 9) && random(0, 1) > 0.7) then bus_mix("delay2", aL*0.4, aR*0.4) endif bus_mix("master", aL, aR) -- cgit v1.2.3