aboutsummaryrefslogtreecommitdiff
path: root/BID-rework/BUG5.csd
diff options
context:
space:
mode:
Diffstat (limited to 'BID-rework/BUG5.csd')
-rw-r--r--BID-rework/BUG5.csd154
1 files changed, 154 insertions, 0 deletions
diff --git a/BID-rework/BUG5.csd b/BID-rework/BUG5.csd
new file mode 100644
index 0000000..4f05983
--- /dev/null
+++ b/BID-rework/BUG5.csd
@@ -0,0 +1,154 @@
+<CsoundSynthesizer>
+<CsOptions>
+-odac
+</CsOptions>
+<CsInstruments>
+/*
+ Debugger - Unfixed Bugs : BUG #5
+
+ http://git.1bpm.net/csd-unfixedbugs1/about/
+
+ By Richard Knight 2022
+ http://1bpm.net
+ q@1bpm.net
+
+*/
+
+sr = 44100
+ksmps = 10
+nchnls = 2
+0dbfs = 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 "instruments.udo" ; sound generators
+#include "txt_tools.udo" ; text tools
+
+
+instr global_delay1
+ aL, aR bus_read "delay1"
+ aL *= abs(oscil(1, 1))
+ aR *= abs(oscil(1, 1))
+ aLdlr delayr 0.8
+ kdeltime = abs(oscil(0.02, 0.04)) + (gibid_beattime* 0.5)
+ aLdel deltapi kdeltime + 0.002
+ delayw aL + (aLdel * 0.7)
+ aRdlr delayr 0.8
+ aRdel deltapi kdeltime + 0.001
+ delayw aR + (aRdel * 0.7)
+ ;aLdel *= 1-gkpump
+ ;aRdel *= 1-gkpump
+ bus_mix("master", aLdel, aRdel)
+endin
+
+/*
+ Global send effects: reverb
+*/
+instr global_reverb
+ aL, aR bus_read "reverb"
+ aL, aR freeverb aL, aR, 0.6, 0.3
+ bus_mix("master", aL, aR)
+endin
+
+/*
+ Master audio output
+*/
+instr global_master
+ igain = 1
+ 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
+
+
+/*
+ Parse BID file and run the sequencer
+*/
+instr parseandrun
+ tt_notify("Parsing events")
+
+ #include "bid_source.udo"
+ bid_loadtext(SBID)
+
+ tt_notify("Running sequencer")
+ event_i "i", "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_delay1", 0, p3
+ event_i "i", "global_reverb", 0, p3
+ 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", "endfade", 0, gibid_beattime*8
+ turnoff
+ endif
+
+
+ bid_seq "kick", kpos, ksection
+ bid_seq "hat1", kpos, ksection
+ bid_seq "hat2", kpos, ksection
+ bid_seq "snare", kpos, ksection
+ bid_seq "mel1", kpos, ksection
+ bid_seq "stringchord", kpos, ksection
+ bid_seq "chord1", kpos, ksection
+ bid_seq "bass", kpos, ksection
+ bid_seq "clap", kpos, ksection
+ bid_seq "303", kpos, ksection
+
+
+ kpos = (kpos < 31) ? kpos + 1 : 0
+ ksection16ths = bid_getsectionlength(ksection) * 4
+
+ if (kposabs+1 < ksection16ths) then
+ kposabs += 1
+ else
+ 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
+endin
+
+</CsInstruments>
+<CsScore>
+i"parseandrun" 0 1
+
+</CsScore>
+</CsoundSynthesizer> \ No newline at end of file