diff options
author | Richard <richard@1bpm.net> | 2025-02-28 02:08:19 +0000 |
---|---|---|
committer | Richard <richard@1bpm.net> | 2025-02-28 02:08:19 +0000 |
commit | 0f09f0882ed87bea9ff3e745c73f5d4743854fbb (patch) | |
tree | 62d04024200a4942ce4e012227822fdaae6a2e25 /BUG9 | |
parent | 6a8342a78bb65afbec9eac5693438a3107ff1dd3 (diff) | |
download | csd-unfixedbugs1-0f09f0882ed87bea9ff3e745c73f5d4743854fbb.tar.gz csd-unfixedbugs1-0f09f0882ed87bea9ff3e745c73f5d4743854fbb.tar.bz2 csd-unfixedbugs1-0f09f0882ed87bea9ff3e745c73f5d4743854fbb.zip |
Diffstat (limited to 'BUG9')
-rw-r--r-- | BUG9/BUG9.csd | 101 | ||||
-rw-r--r-- | BUG9/bid.udo | 157 | ||||
-rw-r--r-- | BUG9/bid_source.udo | 238 | ||||
-rw-r--r-- | BUG9/instruments.udo | 191 |
4 files changed, 535 insertions, 152 deletions
diff --git a/BUG9/BUG9.csd b/BUG9/BUG9.csd index f320921..196d0cd 100644 --- a/BUG9/BUG9.csd +++ b/BUG9/BUG9.csd @@ -5,11 +5,11 @@ </CsOptions> <CsInstruments> /* - Debugger - Unfixed Bugs : BUG #8 + Debugger - Unfixed Bugs : BUG #9 http://git.1bpm.net/csd-unfixedbugs1/about/ - By Richard Knight 2021 + By Richard Knight 2022, 2024 http://1bpm.net q@1bpm.net @@ -18,20 +18,13 @@ sr = 44100 ksmps = 100 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 - -#include "wavetables.udo" ; general waveforms #include "bussing.udo" ; global audio bussing -#include "bid.udo" ; Bug Infested Directive tools and parsing +#include "bid.udo" ; Bug Infested Directive tools and parsing #include "instruments.udo" ; sound generators -#include "txt_tools.udo" ; text tools /* @@ -42,27 +35,7 @@ instr global_master aL, aR bus_read "master" aL limit aL*0.5, -1, 1 aR limit aR*0.5, -1, 1 - outs aL*gkmastergain*igain, aR*gkmastergain*igain -endin - - -/* - Print notification of performance time since last notification - or if isection is -1, print completion notification -*/ -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 - endif - turnoff + outs aL * igain, aR * igain endin @@ -70,73 +43,25 @@ endin Parse BID file and run the sequencer */ instr parseandrun - tt_notify("Parsing events") + tt_notify "Parsing events" #include "bid_source.udo" bid_loadtext(SBID) - tt_notify("Running sequencer") - event_i "i", "sequencer", 0, 3600 + tt_notify "Running sequencer" + schedule "sequencer", 0, 3600 turnoff endin - -/* - Sequence BID elements -*/ instr sequencer - isection = 1 - event_i "i", "bid_setcurrentchord", 0, 1, isection, 0 - event_i "i", "global_master", 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", "notify_change", p3, 1, -1 - turnoff - endif - - ; sequence BID elements - bid_seq "kick", kpos, ksection - bid_seq "clap", kpos, ksection - bid_seq "hat1", kpos, ksection - bid_seq "hat2", kpos, ksection - bid_seq "bass", kpos, ksection - bid_seq "mel1", kpos, ksection - bid_seq "mel2", 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 - 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 - + isection = 2 + schedule "bid_setcurrentchord", 0, 1, isection, 0 + schedule "global_master", 0, p3 + gksection bid_seq_all isection +endin - endif -endin </CsInstruments> <CsScore> diff --git a/BUG9/bid.udo b/BUG9/bid.udo index 17e9be2..a31a603 100644 --- a/BUG9/bid.udo +++ b/BUG9/bid.udo @@ -1,7 +1,7 @@ #ifndef UDO_BID #define UDO_BID ## /* - Debugger - Unfixed Bugs : BUG #5 + Debugger - Unfixed Bugs : BUG #9 Bug Infested Directive file parser v1 and tools @@ -9,7 +9,7 @@ */ -#define BID_VERSION #1.1# +#define BID_VERSION #1.3# #include "txt_tools.udo" @@ -23,7 +23,7 @@ gkbid_chordlength init -1 ; current chord length ; BID internals gibid_sectionlengths ftgen 0, 0, -64, -7, 0 ; section lengths gibid_sections[][] init 64, 64 ; section pointers to data -gibid_sectiondata[][] init 99, 6 ; section data, ftables contained +gibid_sectiondata[][] init 99, 8 ; section data, ftables contained gibid_chordgroups[][] init 16, 12 ; chord groups, pointers to sectionchords by section gibid_sectionchords[] init 16 ; ftables of section chords @@ -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. @@ -192,8 +161,8 @@ endop _bid_parserow Sline, ix1, ix2, imode Sline line to parse - ix1 array dimension 1 index of target storage - ix2 array dimension 2 index of target storage + ix1 array dimension 1 index of target storage + ix2 array dimension 2 index of target storage imode 1=section patterns, 2=chords */ opcode _bid_parserow, 0, Siii @@ -345,6 +314,122 @@ 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/BUG9/bid_source.udo b/BUG9/bid_source.udo index 205939b..bf5f7cb 100644 --- a/BUG9/bid_source.udo +++ b/BUG9/bid_source.udo @@ -1,5 +1,5 @@ /* - Debugger - Unfixed Bugs : BUG #8 + Debugger - Unfixed Bugs : BUG #9 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 #9 +v 1.3 ; tempo, swing percent b 121, 42 @@ -17,11 +17,23 @@ b 121, 42 c 1 4, 60, 65, 67, 75, 77 4, 63, 65, 66, 71, 72 - +c 2 + 4, 60, 65, 67, 75, 77 + 4, 63, 65, 66, 71, 72 + 4, 61, 66, 68, 73, 76 +c 3 + 8, 60, 65, 67, 75, 77 + 8, 63, 65, 66, 71, 72 + 8, 63, 65, 67, 75, 77 + 8, 63, 65, 67, 77, 79, 82 ; sections: section number, length, chordgroup s 1, 64, 1 - +s 2, 8, 1 +s 3, 60, 3 +s 4, 4, 1 +s 5, 4, 1 +s 6, 64, 1 ; patterns: trig , dur, amp, chance @@ -32,6 +44,15 @@ i clap, 1 0, 0, 0, 0,.2, 0, 0, 0, 0, 0, 0, 0,.2, 0, 0,.2, 0, 0, 0, 0,.2, 1, 0, 0, 0, 0, 0, 0,.2, 0, 0, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.9, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +i clap, 2 + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 + 0, 0, 0, 0,.2, 0, 0, 0, 0, 0,.6, 0,.2, 0, 0,.2, 0, 0, 0, 0,.2, 1, 0, 0, 0, 0, 0, 0,.2, 0, 0, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.5, 1, 1, 1, 1,.9, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +i clap, 3, 1 +i clap, 4, -1 +i clap, 5, 2 +i clap, 6, 1 i bass, 1 ; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - @@ -39,16 +60,62 @@ i bass, 1 .2,.2,.2,.2,.2,.4,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.4,.2,.2,.2,.2,.4,.2,.2,.2,.2,.2,.2,.2,.2,.2 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 .8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8 - + 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 bass, 2 +; 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, 1, 1, 0 + .2,.2,.2,.2,.2,.4,.5,.2,.2,.2,.2,.2,.2,.2,.5,.2,.2,.1,.2,.2,.2,.2,.5,.2,.2,.2,.2,.2,.2,.2,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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 bass, 3 + 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0 + .2,.2,.2,.2,.2,.4,.5,.2,.2,.2,.2,.2,.2,.2,.5,.2,.2,.1,.2,.2,.2,.2,.5,.2,.2,.2,.2,.2,.2,.2,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 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 bass, 4 + 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0 + .2,.2,.2,.2,.2,.2,.5,.2,.2,.2,.1,.2,.2,.2,.5,.2,.2,.1,.2,.2,.2,.2,.5,.2,.2,.2,.2,.2,.2,.2,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +i bass, 5, 2 +i bass, 6, 1 i mel1, 1 ; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 - .2,.2,.2,.2,.2,.4,.2,.4,.2,.2,.4,.2,.2,.2,.9,.2,.5,.4,.2,.2,.2,.2,.4,.2,.2,.2,.2,.2,.2,.2,.2,.2 + .2,.2,.2,.2,.2,.4,.2,.4,.2,.2,.4,.2,.2,.9,.9,.2,.5,.4,.2,.2,.2,.2,.4,.2,.2,.2,.2,.2,.2,.2,.2,.2 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 .8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8 +i mel1, 2, -1 +i mel1, 3, 1 +i mel1, 4 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 + .2,.2,.2,.2,.2,.4,.2,.4,.2,.2,.4,.2,.2,.6,.9,.2,.5,.4,.2,.2,.2,.2,.4,.2,.2,.2,.2,.2,.2,.2,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + .8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8,.8 +i mel1, 5, -1 +i mel1, 6, 1 - +i kick, 1 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 1, 0, 0, 0, 1, 0, 1, 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 + .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,.3 + 1, 0,.8, 0, 1, 0,.5, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,.8, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,.6,.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,.6,.2 +i kick, 2 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 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,.3,.3 + 1, 0, 1, 0, 1, 1,.5, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0,.8, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,.6,.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,.6,.2 +i kick, 3, 1 +i kick, 4, -1 +i kick, 5, 2 +i kick, 6, 1 i hat1, 1 ; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - @@ -56,7 +123,11 @@ i hat1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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,.6, 1,.6, 1, 1, 1, 1, 1,.6, 1, 1, 1, 1, 1, 1, 1,.2 1, 1, 1, 1, 1, 1, 1, 1, 1,.5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.5, 1,.5, 1, 1, 1, 1, 1, 1 - +i hat1, 2, 1 +i hat1, 3, 1 +i hat1, 4, -1 +i hat1, 5, 1 +i hat1, 6, 1 i hat2, 1 ; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - @@ -64,7 +135,35 @@ i hat2, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.2,.05, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 2 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + .5,.1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,.2,.05, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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 +i hat2, 3, 1 +i hat2, 4, -1 +i hat2, 5, 2 +i hat2, 6, 1 +i shaker, 1, -1 +i shaker, 2, -1 +i shaker, 3, -1 +i shaker, 4 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 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 shaker, 5 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 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 shaker, 6, 2 i mel2, 1 ; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - @@ -72,13 +171,124 @@ i mel2, 1 .2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.1,.1,.1,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 1, 1, 1, 1, 1, 1, 1, 1, 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 mel2, 2 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0 + .2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.1,.1,.1,.2,.2,.1,.2,.2,.2,.2,.1,.1,.1,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 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 mel2, 3, 1 +i mel2, 4 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0 + .2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.4,.2,.2,.1,.1,.1,.2,.2,.1,.2,.2,.2,.2,.1,.1,.1,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 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 mel2, 5, 2 +i mel2, 6, 1 -i kick, 1 + +i chord1, 1 ; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - - 1, 0, 0, 0, 1, 0, 1, 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 - .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,.3 - 1, 0,.8, 0, 1, 0,.5, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,.8, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0,.6,.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,.6,.2 + 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 + .2,.2,.2,.1,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0 + 0, 0, 0, 1, 0, 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 +i chord1, 2 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 0, 0, 0, 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 + .2,.2,.2,.3,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.1,.2,.2,.2,.2,.2,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0 + 0, 0, 0, 1, 0, 0, 2, 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 chord1, 3 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 + .2,.2,.2,.3,.2,.2,.2,.2,.2,.2,.2,.2,.2,.8,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.1,.2,.2,.2,.2,.2,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0 + 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +i chord1, 4 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 1,.3,.2,.2,.2,.2,.2,.2, 1,.2,.2,.2,.2,.2,.3,.4,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 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, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 + 2, 1, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0 + 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +i chord1, 5, 2 +i chord1, 6, 1 + + +i chord2, 1 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 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, 0 + .2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 + 0, 0, 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, 1, 2, 0 +i chord2, 2 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + .1,.3,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.3,.4,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 + 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0 +i chord2, 3 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 + .2,.2,.2,.2,.2,.2,.2,.2,.2,.1,.1,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1,.7,.7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 + 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0 +i chord2, 4, 2 +i chord2, 5, 2 +i chord2, 6, 1 + +i chord3, 1, -1 +i chord3, 2, -1 +i chord3, 3 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 1, 0, 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 + .5, 0,.2, 0,.2, 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 + 1, 0,.5, 0,.4, 0,.3, 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, 0, 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 +i chord3, 4, -1 +i chord3, 5, -1 +i chord3, 6, 3 + +i 303, 1 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 + .2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.06,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.06,.06,.2,.2,.2,.2,.2,.2,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,0.2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +i 303, 2 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 + .2,.2,.2,.03,.2,.04,.2,.2,.2,.2,.06,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.2,.06,.06,.2,.2,.2,.2,.2,.2,.2,.2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,0.2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +i 303, 3, 1 +i 303, 4 +; 1 - - - 2 - - - 3 - - - 4 - - - 5 - - - 6 - - - 7 - - - 8 - - - + 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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,.9, 1,.8,.7,.6,.5,.4,.3, 1,.4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 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, 5, 2 +i 303, 6, 1 }} 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 |