;------------------------------------------------------------------------- ; Drone Instrument/Sruti Box ; by Dave Seidel ; with contributions from joachim heintz ; and Andres Cabrera. ; ; http://mysterybear.net/article/51/drone-instrumentsruti-box-new-version ; ; Written with Csound 5.12.1 (http://www.csounds.com) ; and QuteCsound 0.6.0 (http://qutecsound.sourceforge.net/). ; ; To use, open in QuteCsound, make sure the Widgets window ; is open, and click the Start button. Then use On/Off ; buttons to play or stop the drones. ; ; version 2.8 (14-Nov-2010) ; - option to record session (WAV file) ; - use vco2 for higher-quality saw, square, and (new) triangle waves; ; still using poscil3 for other waves ; - add a fifth drone ; - add "All On" and "All Off" buttons to activate/deactivate all drones ; at once ; - rename "Notes" to "Pitch class" ; version 2.7 (09-Oct-2010) ; - always play primary oscillator for each tone, independent of ; harmonic arpeggio or binaural beat output ; - made all pitch controls (Ratio, 8ve, and Base) changeable in realtime ; - add option to tune base frequency to conventional (Western) pitches, ; using pitch-class or note name ; version 2.6 (26-Sep-2010) ; - add level control for Risset effect (now labeled Harmonic Arpeggio); ; this allows the use of binaural beating by itself ; - line up all effects horizontally ; - use SpinBox for Harmonic Arpeggio Offset and Binaural Beats BPS, for ; finer control ; - normalize level controls to use 0.0-1.0 range ; - change multiplier for BB level from 5x to 4x, seems to match HA level better ; - layout tweakage ; version 2.5 (12-Sep-2010) ; - add precision to the base freq. per David First ; version 2.4 (12-Sep-2010) ; - bugfix from Mark Van Peteghem in the binauralize UDO ; version 2.3 (10-Sep-2010) ; - fixes from Andres ; version 2.2 (09-Sep-2010) ; - binaural beat and reverb controls ; - make Risset offset realtime ; version 2.1 (06-Sep-2010) ; - fixed release on turnoff ; - better "on" indicators fron joachim ; - added binaural beating effect ; version 2.0 (06-Sep-2010) ; - rewrite for QuteCsound ; ; Copyright 2005,2010, Dave Seidel. Some rights reserved. ; This work is licensed under a Creative Commons ; Attribution-Noncommercial 3.0 Unported License: ; http://creativecommons.org/licenses/by-nc/3.0/ ;------------------------------------------------------------------------- -odac -f -W ;------------------------------------------------------------------------- ; globals ;------------------------------------------------------------------------- sr = 44100 ksmps = 100 nchnls = 2 0dbfs = 1 ;------------------------------------------------------------------------- ; global channels ;------------------------------------------------------------------------- gaL init 0 gaR init 0 ;------------------------------------------------------------------------- ; basic offset value for Risset effect ;------------------------------------------------------------------------- giofs init .01 ;------------------------------------------------------------------------- ; multipler for binaural beat level ;------------------------------------------------------------------------- gibblvl init 4 ;------------------------------------------------------------------------- ; FFT size for pvsanal ;------------------------------------------------------------------------- gifftsz init 2048 ;------------------------------------------------------------------------- ; initialize globals for values from UI ;------------------------------------------------------------------------- gktbl init 0 gkbase init 0 ;--------------------------------------------------------------------------- ; orchestra macros ;--------------------------------------------------------------------------- ; base pitch in specified octave above base #define BOCT(B'O) #$B.*(2^($O.))# ;--------------------------------------------------------------------------- ; ogen macros ;--------------------------------------------------------------------------- ; vco2 waveforms #define OGEN_VCO2 #0# #define OGEN_SAW #$OGEN_VCO2+0# #define OGEN_SQUARE #$OGEN_VCO2+10# #define OGEN_TRIANGLE #$OGEN_VCO2+12# ; poscil3 waveforms #define OGEN_POSC #100# #define OGEN_SINE #$OGEN_POSC+0# #define OGEN_PRIME #$OGEN_POSC+1# #define OGEN_FIB #$OGEN_POSC+2# #define OGEN_ASYMP #$OGEN_POSC+3# gitabsz init 1048576 ; sine wave giSine ftgen $OGEN_SINE, 0, gitabsz, 10, 1 ; prime wave giPrime ftgen $OGEN_PRIME, 0, gitabsz, 9, 1,1,0, 2,.5,0, 3,.3333,0, 5,.2,0, 7,.143,0, 11,.0909,0, 13,.077,0, 17,.0588,0, 19,.0526,0, 23,.0435,0, 27,.037,0 ; Fibonacci wave giFib ftgen $OGEN_FIB, 0, gitabsz, 9, 1,1,0, 2,.5,0, 3,.3333,0, 5,.2,0, 8,.125,0, 13,.0769,0, 21,.0476,0, 34,.0294,0, 55,.0182,0, 89,.0112,0 144,.0069,0 ; David First's asymptotic sawtooth wave giAsymp ftgen $OGEN_ASYMP, 0, gitabsz, 9, 1,1,0, 1.732050807568877,.5773502691896259,0, 2.449489742783178,.408248290463863,0, 3.162277660168379,.3162277660168379,0, 3.872983346207417,.2581988897471611,0, 4.58257569495584,.2182178902359924,0, 5.291502622129182,.1889822365046136,0, 6,.1666666666666667,0, 6.70820393249937,.1490711984999859,0, 7.416198487095663,.1348399724926484,0, 8.124038404635961,.1230914909793327,0, 9.539392014169456,.1048284836721918,0, 10.2469507659596,.0975900072948533,0, 10.95445115010332,.0912870929175277,0, 11.6619037896906,.0857492925712544,0 ;--------------------------------------------------------------------------- ; polymorphous oscillator ; in: iwaveform,kenvelope,kfrequency ; out: asignal ;--------------------------------------------------------------------------- opcode ogen, a, kki kenv,kfreq,iwave xin asig init 0 if (iwave >= $OGEN_POSC) then asig poscil3 kenv, kfreq, iwave else asig vco2 kenv, kfreq, iwave endif xout asig endop ;--------------------------------------------------------------------------------------- ; panner ;--------------------------------------------------------------------------------------- opcode pan_equal_power, aa, ak ain, kpan xin kangl = 1.57079633 * (kpan + 0.5) xout ain * sin(kangl), ain * cos(kangl) endop ;--------------------------------------------------------------------------- ; make binaural beats ;--------------------------------------------------------------------------- opcode binauralize, aa, akk ; collect inputs ain,kcent,kdiff xin ; determine pitches kp1 = kcent + (kdiff/2) kp2 = kcent - (kdiff/2) krat1 = kp1 / kcent krat2 = kp2 / kcent ; take it apart fsig pvsanal ain, gifftsz, gifftsz/4, gifftsz, 1 ; create derived streams fbinL pvscale fsig, krat1, 1 fbinR pvscale fsig, krat2, 1 ; put it back together abinL pvsynth fbinL abinR pvsynth fbinR ; send it out xout abinL, abinR endop ;--------------------------------------------------------------------------- ; oscillators with optional Risset harmonic arpeggio and binaural beating ;--------------------------------------------------------------------------- instr 3 itone = p4 iamp = ampdb(-15)/9 ipan = 0.0 itbl = i(gktbl) kgoto kpass ; Send this value only in the init pass Sdsp_c sprintf "disp_on_c%d", itone outvalue Sdsp_c, 1 kpass: ; which tone is being played? if (itone == 1) then knum invalue "n_1" kden invalue "d_1" k8ve1 invalue "8ve_1" kbase = $BOCT.(gkbase'k8ve1) elseif (itone == 2) then knum invalue "n_2" kden invalue "d_2" k8ve2 invalue "8ve_2" kbase = $BOCT.(gkbase'k8ve2) elseif (itone == 3) then knum invalue "n_3" kden invalue "d_3" k8ve3 invalue "8ve_3" kbase = $BOCT.(gkbase'k8ve3) elseif (itone == 4) then knum invalue "n_4" kden invalue "d_4" k8ve4 invalue "8ve_4" kbase = $BOCT.(gkbase'k8ve4) elseif (itone == 5) then knum invalue "n_5" kden invalue "d_5" k8ve5 invalue "8ve_5" kbase = $BOCT.(gkbase'k8ve5) endif ; determine pitch kfrac = knum/kden kfreq = kbase*kfrac ; set up Risset effect koff invalue "risset_offset" koff0 = ((kden*2)/knum)*koff ; inversely proportional to ratio koff1 = koff0 ; oscillator offset for arpeggio koff2 = 2*koff ; . koff3 = 3*koff ; . koff4 = 4*koff ; . ; envelope kenv linenr iamp, 2, 3, 0.01 ; env needs release segment for turnoff2 ; generate primary tone a1 ogen kenv, kfreq, itbl ; generate Risset tones a2 ogen kenv, kfreq+koff1, itbl ; nine oscillators with the same envelope a3 ogen kenv, kfreq+koff2, itbl ; and waveform, but slightly different a4 ogen kenv, kfreq+koff3, itbl ; frequencies, create harmonic arpeggio a5 ogen kenv, kfreq+koff4, itbl a6 ogen kenv, kfreq-koff1, itbl a7 ogen kenv, kfreq-koff2, itbl a8 ogen kenv, kfreq-koff3, itbl a9 ogen kenv, kfreq-koff4, itbl ; create simple output (just the primary oscillator) a1L, a1R pan_equal_power a1, ipan ; create Risset output krismix invalue "risset_mix" aout sum a2, a3, a4, a5, a6, a7, a8, a9 a2L,a2R pan_equal_power aout*krismix, ipan ; create binaural beating output kbbmix invalue "bb_mix" kbbrate invalue "bb_rate" a3L,a3R binauralize a1*(kbbmix*gibblvl), kfreq, kbbrate ; combine and send to global output channels gaL = gaL+a1L+a2L+a3L gaR = gaR+a1R+a2R+a3R endin ;------------------------------------------------------------------------- ; turn off a tone (or all tones) ;------------------------------------------------------------------------- instr 4 itone = p4 if (itone >= 1) then Sdsp_c sprintf "disp_on_c%d", itone outvalue Sdsp_c, 0 endif if (itone < 1) then turnoff2 3.1, 4, 1 outvalue "disp_on_c1", 0 turnoff2 3.2, 4, 1 outvalue "disp_on_c2", 0 turnoff2 3.3, 4, 1 outvalue "disp_on_c3", 0 turnoff2 3.4, 4, 1 outvalue "disp_on_c4", 0 turnoff2 3.5, 4, 1 outvalue "disp_on_c5", 0 elseif (itone == 1) then turnoff2 3.1, 4, 1 elseif (itone == 2) then turnoff2 3.2, 4, 1 elseif (itone == 3) then turnoff2 3.3, 4, 1 elseif (itone == 4) then turnoff2 3.4, 4, 1 elseif (itone == 5) then turnoff2 3.5, 4, 1 endif endin ;------------------------------------------------------------------------- ; turn on all tones (unless there are any running instances) ;------------------------------------------------------------------------- instr 6 iinst active 3 if (iinst == 0) then event_i "i", 3.1, 0, -1, 1 outvalue "disp_on_c1", 1 event_i "i", 3.2, 0, -1, 2 outvalue "disp_on_c2", 1 event_i "i", 3.3, 0, -1, 3 outvalue "disp_on_c3", 1 event_i "i", 3.4, 0, -1, 4 outvalue "disp_on_c4", 1 event_i "i", 3.5, 0, -1, 5 outvalue "disp_on_c5", 1 turnoff endif endin ;------------------------------------------------------------------------- ; stop everything and quit ;------------------------------------------------------------------------- instr 5 turnoff2 3.1, 4, 1 outvalue "disp_on_c1", 0 turnoff2 3.2, 4, 1 outvalue "disp_on_c2", 0 turnoff2 3.3, 4, 1 outvalue "disp_on_c3", 0 turnoff2 3.4, 4, 1 outvalue "disp_on_c4", 0 turnoff2 3.5, 4, 1 outvalue "disp_on_c5", 0 exitnow endin ;--------------------------------------------------------------------------- ; write output to a file ;--------------------------------------------------------------------------- instr 100 Sfile invalue "rec_filename" ; if no filename given, exit ilen strlen Sfile if (ilen == 0) then turnoff else aL, aR monitor fout Sfile, 2, aL, aR endif endin ;--------------------------------------------------------------------------- ; get/set base pitch and waveform ;--------------------------------------------------------------------------- instr 98 ; base pitch knotes invalue "cb_use_notes" if (knotes == 0) then ; tuning by cycles per second kbase0 invalue "base_freq" koct = octcps(kbase0) kpch = pchoct(koct) kpch_i = int(kpch) kpch_f = frac(kpch) ; outvalue "base_pch_int", kpch_i ; outvalue "base_pch_frac", kpch_f else ; tuning by pitch-class kpch_i invalue "base_pch_int" kpch_f invalue "base_pch_frac" kpch = kpch_i+(kpch_f/100) kbase0 = cpspch(kpch) outvalue "base_freq", kbase0 endif gkbase = kbase0 ; waveform ktbl invalue "menu_waveform" if (ktbl == 0) then gktbl = $OGEN_SINE elseif (ktbl = 1) then gktbl = $OGEN_SAW elseif (ktbl = 2) then gktbl = $OGEN_SQUARE elseif (ktbl = 3) then gktbl = $OGEN_TRIANGLE elseif (ktbl = 4) then gktbl = $OGEN_PRIME elseif (ktbl = 5) then gktbl = $OGEN_FIB elseif (ktbl = 6) then gktbl = $OGEN_ASYMP endif endin ;--------------------------------------------------------------------------- ; global output instrument with optional reverb ;--------------------------------------------------------------------------- instr 99 kfb invalue "reverb_feedback" outvalue "feedback_display", kfb kwet invalue "reverb_level" aL, aR reverbsc gaL, gaR, kfb, p4, sr/1.5, p5, 0 aoutL = (gaL * kwet) + (aL * (1 - kwet)) aoutR = (gaR * kwet) + (aR * (1 - kwet)) outs gaL+aoutL, gaR+aoutR gaL = 0 gaR = 0 endin ;--------------------------------------------------------------------------- ; score ;--------------------------------------------------------------------------- #define A_LONG_TIME #36000# ; start reading UI values i98 0 $A_LONG_TIME ; start output i99 1 $A_LONG_TIME 4000 .5 ; write output file i100 1 $A_LONG_TIME e 755 72 611 603 true 85 170 127 7 60 55 23 {e207fe11-0cdd-444e-930d-29bf13c11fb2} true 0 -3 center Arial 13 3 0 0 0 255 255 255 noborder 1 1 n_1 70 60 48 23 {69bad91e-0026-4238-862e-12c143685397} true 0 -3 center Arial 10 0 0 0 255 255 255 1.00000000 1 2048 false 13 118 60 11 25 {dac04e90-40e6-4165-b183-03b8f10511e3} true 0 -3 center Arial 13 3 0 0 0 255 255 255 noborder 1 1 d_1 129 60 48 23 {ef99bd92-1c6f-45f9-a32a-303c366b3332} true 0 -3 center Arial 10 0 0 0 255 255 255 1.00000000 1 2048 false 1 d_2 129 88 48 23 {aabc2b30-dc79-43af-88df-b977177aa58e} true 0 -3 center Arial 10 0 0 0 255 255 255 1.00000000 1 2048 false 1 118 90 11 25 {c3be46e9-f371-406a-ac25-0e0e07ac5c5f} true 0 -3 center Arial 13 3 0 0 0 255 255 255 noborder 1 1 n_2 70 88 48 23 {c32d5493-922d-4709-9f5a-56985fbb0475} true 0 -3 center Arial 10 0 0 0 255 255 255 1.00000000 1 2048 false 11 7 88 55 23 {e92844b5-0073-4da6-8d9b-991e8b0b0499} true 0 -3 center Arial 13 3 0 0 0 255 255 255 noborder 1 1 d_3 129 116 48 23 {af1ed01f-25bf-4565-85f8-0448d63214d8} true 0 -3 center Arial 10 0 0 0 255 255 255 1.00000000 1 2048 false 1 118 120 11 25 {07939aa1-6316-462f-8be9-976d94429e3a} true 0 -3 center Arial 13 3 0 0 0 255 255 255 noborder 1 1 n_3 70 116 48 23 {8e26cac5-5faa-410e-b2c2-1342978a5366} true 0 -3 center Arial 10 0 0 0 255 255 255 1.00000000 1 2048 false 7 7 116 55 23 {4df54217-074b-4984-b37d-2f9c0bfeadcc} true 0 -3 center Arial 13 3 0 0 0 255 255 255 noborder 1 1 7 144 55 25 {0ee4b373-0ead-405e-8333-c73008d4fd11} true 0 -3 center Arial 13 3 0 0 0 255 255 255 noborder 1 1 n_4 70 144 48 22 {09f87a96-555a-445a-82bd-478afb7abfb5} true 0 -3 center Arial 10 0 0 0 255 255 255 1.00000000 1 2048 false 5 118 150 11 25 {f216eb31-db8e-4ec4-be43-5c9f0c1aa2a0} true 0 -3 center Arial 13 3 0 0 0 255 255 255 noborder 1 1 d_4 129 144 48 23 {756d7d97-b16b-4877-a1a2-1a4f05a4753f} true 0 -3 center Arial 10 0 0 0 255 255 255 1.00000000 1 2048 false 1 _Play 69 524 100 30 {2f45e5ba-8d31-47a1-abfd-284ee246c74d} true 0 -3 value 1.00000000 Start / i 3 0 -1 false true btn_stop 176 524 100 30 {8cfc7c9f-c14b-4e0a-969e-8c73d0e76eca} true 0 -3 event 1.00000000 Stop / i5 0 1 false true base_freq 71 210 120 23 {983d831d-92f7-4f17-9b74-9dab7db7059f} true 0 -3 right Arial 12 0 0 0 255 255 255 0.00100000 1 20000 false 61.7337 7 211 65 23 {3505dfd5-a0ec-404f-8e71-ec9c3e53e7a6} true 0 -3 left Arial 13 3 0 0 0 255 255 255 noborder 1 1 menu_waveform 69 248 114 28 {5a9958a4-4a24-4c2e-8a93-9c900fc8b294} true 0 -3 Sine 0 Saw 1 Square 2 Triangle 3 Prime 4 Fibonacci 5 Asymptotic Saw 6 4 false 7 251 55 23 {d2a792b5-5a54-4a15-894b-ff3ddf0d8dbf} true 0 -3 center Arial 13 3 0 0 0 255 255 255 noborder 1 1 389 351 67 25 {2438c973-bcba-42b8-88c3-7adcaed53eb1} true 0 -3 right Arial 13 3 0 0 0 255 255 255 noborder 1 1 8ve_1 205 60 35 23 {c398c0c6-f76b-464f-a86c-51e15765a9dd} true 0 -3 right Arial 10 0 0 0 255 255 255 1.00000000 -6 6 false 0 8ve_2 205 88 35 23 {051c6d7f-a070-42a6-8a8e-710d1439c9f5} true 0 -3 right Arial 10 0 0 0 255 255 255 1.00000000 -6 6 false 0 8ve_3 205 116 35 23 {4e4f3e61-cb8d-49bd-94e4-92f77b8dda9f} true 0 -3 right Arial 10 0 0 0 255 255 255 1.00000000 -6 6 false 0 8ve_4 205 144 35 23 {7185c5c5-613c-4002-ad91-7d7351bf3e43} true 0 -3 right Arial 10 0 0 0 255 255 255 1.00000000 -6 6 false 0 99 31 50 25 {32c98c25-6b0c-44ae-8aab-66b7991a0c3c} true 0 -3 center Arial 13 3 0 0 0 255 255 255 noborder 1 1 205 31 35 25 {b6aa167a-e0fb-495a-82bf-45a5ef1fabee} true 0 -3 left Arial 13 3 0 0 0 255 255 255 noborder 1 1 btn_on1 270 60 50 25 {0597468a-539e-46ff-ac9e-d27938ee4929} true 0 -3 event 1.00000000 On / i 3.1 0 -1 1 false false btn_on2 270 88 50 25 {11e96f5c-80dd-4079-b41d-d64a0a0eeaf4} true 0 -3 event 1.00000000 On / i 3.2 0 -1 2 false false btn_on5 270 144 50 25 {92247f2b-7cb0-4ba8-bc03-03361e1a10bd} true 0 -3 event 1.00000000 On / i 3.4 0 -1 4 false false btn_on3 270 116 50 25 {2dcc0403-16c4-45e2-9427-3b5b46f1e84b} true 0 -3 event 1.00000000 On / i 3.3 0 -1 3 false true btn_off1 325 60 50 25 {08fb344f-e380-40a0-abd0-26225f0d1532} true 0 -3 event 1.00000000 Off / i 4 0 1 1 false false btn_off2 325 88 50 25 {c5b5e85b-86f3-45db-abf9-2399bda7e100} true 0 -3 event 1.00000000 Off / i 4 0 1 2 false false btn_off3 325 116 50 25 {f0946452-bea5-454b-876c-ec1571771c49} true 0 -3 event 1.00000000 Off / i 4 0 1 3 false false btn_off4 325 144 50 25 {c5a7748a-5eda-4033-9d22-aba27d00482a} true 0 -3 event 1.00000000 Off / i 4 0 1 4 false true 206 433 60 25 {f0263ce2-9501-41a2-b3ab-203447d7ec93} true 0 -3 right Arial 13 3 0 0 0 255 255 255 noborder 1 1 215 351 70 25 {4e5e56dd-ef75-421b-9168-48c7a3c2f396} true 0 -3 right Arial 13 3 0 0 0 255 255 255 noborder 1 1 bb_mix 283 324 80 80 {0764d8d5-22a9-489d-8ae5-4e19e0567038} true 0 -3 0.00000000 1.00000000 0.50000000 lin continuous 0.01000000 false disp_on_c4 384 144 24 24 {bd87c226-5077-4660-84e1-f4dafbfff356} true 0 -3 disp_on_c4 0.00000000 1.00000000 0.00000000 1.00000000 0.00000000 0.00000000 fill 1 0.00000000 jump 0 234 0 false 0 0 0 disp_on_c3 384 116 24 24 {ab7d8f5b-2b2a-462c-8199-050ead18ba84} true 0 -3 disp_on_c3 0.00000000 1.00000000 0.00000000 1.00000000 0.00000000 0.00000000 fill 1 0.00000000 jump 0 234 0 false 0 0 0 disp_on_c2 384 88 24 24 {137d21e6-b6a2-4f9c-8495-111e5d44117e} true 0 -3 disp_on_c2 0.00000000 1.00000000 0.00000000 1.00000000 0.00000000 0.00000000 fill 1 0.00000000 jump 0 234 0 false 0 0 0 disp_on_c1 384 61 24 24 {e4e782ae-e528-42d0-a9f3-57081bddbc78} true 0 -3 disp_on_c1 0.00000000 1.00000000 0.00000000 1.00000000 0.00000000 0.00000000 fill 1 0.00000000 jump 0 234 0 false 0 0 0 reverb_feedback 456 324 80 80 {77d49f7c-db91-404a-bede-14601a37da3d} true 0 -3 0.00000000 1.00000000 0.85000000 lin continuous 0.01000000 false 68 292 130 30 {f20e492d-a935-480f-b37f-8bce3552de37} true 0 -3 center Arial 14 3 0 0 0 255 255 255 border 1 2 395 433 42 26 {69b5965f-ef1f-449f-9e76-0f2c7ba86ae5} true 0 -3 right Arial 13 3 0 0 0 255 255 255 noborder 1 1 feedback_display 456 404 80 23 {bbaf98ce-16fe-4bea-82db-1aa7909b40bd} true 0 -3 right Arial 13 0 255 0 0 0 0 0.85000000 0.00100000 0.00000000 1.00000000 border 3 1 false bb_mix 283 404 80 23 {78afa9a1-f836-4547-8d80-81486db02073} true 0 -3 right Arial 13 0 255 0 0 0 0 0.50000000 0.01000000 0.00000000 5.00000000 border 3 1 false reverb_level 434 433 120 25 {4e72262c-67a7-4b25-b963-2cbae66d3ebd} true 0 -3 0.00000000 1.00000000 0.50833333 lin continuous -1.00000000 false 554 433 46 27 {f703a53a-5a85-4f19-8c0d-6d391fde0794} true 0 -3 left Arial 13 3 0 0 0 255 255 255 noborder 1 1 bb_rate 264 433 120 25 {5973dd8b-43a5-4e78-9fa9-19ff5ea90107} true 0 -3 0.00000000 50.00000000 0.83333333 lin continuous -1.00000000 false risset_offset 80 433 130 25 {5d4975a8-7006-449c-8c23-6d3b3dfa80f7} true 0 -3 0.00000000 1.00000000 0.01000000 lin continuous -1.00000000 false 268 292 102 30 {72bb78eb-c17b-444d-ab8c-458b1edf0e7d} true 0 -3 center Arial 14 3 0 0 0 255 255 255 border 1 2 465 292 60 30 {53253bed-f55d-4864-ab60-d4b0906df846} true 0 -3 center Arial 14 3 0 0 0 255 255 255 border 1 2 70 3 270 25 {6c37ef1c-719c-4f0b-915d-c8bb75376e39} true 0 -3 center Arial 11 3 255 255 255 0 0 0 noborder 1 1 risset_offset 99 460 90 23 {f82caad1-7fd6-447a-98af-1416902075f6} true 0 -3 left Arial 12 0 0 0 255 255 255 0.01000000 0 1 false 0.01 bb_rate 278 460 95 23 {e8c0a39e-2286-4754-bcd1-e6799ba36fa2} true 0 -3 left Arial 12 0 0 0 255 255 255 0.00100000 0 50 false 0.833333 21 433 60 25 {8e757ace-4ed5-4de8-b95f-c9fcba0f68d9} true 0 -3 right Arial 13 3 0 0 0 255 255 255 noborder 1 1 risset_mix 96 404 80 23 {50511459-bbcd-4f22-8b93-4eb9cea421d9} true 0 -3 right Arial 13 0 255 0 0 0 0 1.00000000 0.01000000 0.00000000 1.00000000 border 3 1 false risset_mix 96 324 80 80 {0740fcea-a7ec-4b55-b483-daf2f0f87e40} true 0 -3 0.00000000 1.00000000 1.00000000 lin continuous 0.01000000 false 28 351 70 25 {3ab28aff-4bce-4d36-ba26-65c92ebe6b8e} true 0 -3 right Arial 13 3 0 0 0 255 255 255 noborder 1 1 base_pch_int 278 210 40 23 {f234e643-9206-45d2-90cc-21903a1a0b08} true 0 -3 left Arial 12 0 0 0 255 255 255 1.00000000 1 9 false 5 base_pch_frac 327 210 40 23 {53ac49f4-196e-48d5-817c-dac614e8d692} true 0 -3 left Arial 12 0 0 0 255 255 255 1.00000000 0 11 false 11 base_pch_frac 373 210 43 23 {0f0d344d-e4ed-48c9-a710-9b2e2d5533c4} true 0 -3 C 0 C# 1 D 2 D# 3 E 4 F 5 F# 6 G 7 G# 8 A 9 A# 10 B 11 11 false cb_use_notes 256 213 20 18 {e14b7297-ea7c-42dd-9a08-e62468e528ad} true 0 -3 true 191 210 67 23 {05a8ce7a-1422-45f1-846a-93ef4493186f} true 0 -3 right Arial 12 3 0 0 0 255 255 255 noborder 1 1 316 195 11 25 {1e42d19e-eb6d-48ef-a29a-3392d8b898c3} true 0 -3 center Arial 13 3 0 0 0 255 255 255 noborder 1 1 rec_filename 400 526 160 25 {223cd9b0-5674-42e6-9bb6-c90a3c766194} true 0 -3 304 512 90 55 {263cced0-0082-4cde-ade7-b0c65c6fde17} true 0 -3 center Arial 12 3 0 0 0 255 255 255 border 1 1 7 172 55 25 {9f0b2cbb-48b5-42ee-b57d-d87f6ac41b80} true 0 -3 center Arial 13 3 0 0 0 255 255 255 noborder 1 1 n_5 70 172 48 22 {2936d9b1-e929-4188-9e68-1df7cf17f008} true 0 -3 center Arial 10 0 0 0 255 255 255 1.00000000 1 2048 false 3 118 180 11 25 {95aee8d9-cb9f-454d-a252-4a0d5e35998d} true 0 -3 center Arial 13 3 0 0 0 255 255 255 noborder 1 1 d_5 129 172 48 23 {45f2b05b-e47b-4e82-8a78-70c4f4b9aab2} true 0 -3 center Arial 10 0 0 0 255 255 255 1.00000000 1 2048 false 1 8ve_5 205 172 35 23 {000f7e94-a671-42e3-a7f7-5de441fbeb43} true 0 -3 right Arial 10 0 0 0 255 255 255 1.00000000 -6 6 false 0 btn_on5 270 172 50 25 {b3437cbe-0085-4b61-8d59-57129bfdda90} true 0 -3 event 1.00000000 On / i 3.5 0 -1 5 false false btn_off5 325 172 50 25 {f95465e2-487c-4c53-9394-567cd61224cc} true 0 -3 event 1.00000000 Off / i 4 0 1 5 false true disp_on_c5 384 172 24 24 {956c4503-360f-42c2-8c66-30755f3a633d} true 0 -3 disp_on_c5 0.00000000 1.00000000 0.00000000 1.00000000 0.00000000 0.00000000 fill 1 0.00000000 jump 0 234 0 false 0 0 0 btn_all_off 440 128 60 25 {660080f5-a5c6-40eb-b105-3339ffcea047} true 0 -3 event 1.00000000 All Off / i4 0 1 -1 false false btn_all_on 440 100 60 25 {3f3d8ba8-9013-4fa9-a4a2-430472d83077} true 0 -3 event 1.00000000 All On / i6 0 1 false false 4.00000000 3.00000000 2.00000000 3.00000000 8.00000000 9.00000000 6.00000000 5.00000000 0 0 60.00000000 5.00000000 2.00000000 1.00000000 2.00000000 1.00000000 0 0 0 0 0 0 0 0 2.54999995 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.86000001 0.86000001 1.25000000 0.52499998 3.33333325 3.33333325 0.01000000 0.01000000 4.00000000 3.00000000 2.00000000 3.00000000 8.00000000 9.00000000 6.00000000 5.00000000 0 0 60.00000000 7.00000000 1.00000000 1.00000000 2.00000000 1.00000000 2.00000000 1.00000000 0 0 0 0 0 0 0 0 0.00000000 + 0.00000000 + 0.00000000 + 0.00000000 + 1.87500000 2.54999995 15.00000000 8.00000000 15.00000000 16.00000000 1.00000000 2.00000000 1.00000000 1.00000000 0 0 60.00000000 7.00000000 1.00000000 1.00000000 1.00000000 2.00000000 1.00000000 1.00000000 0 0 0 0 0 0 0 0 1.87500000 4.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 15.00000000 8.00000000 15.00000000 16.00000000 1.00000000 2.00000000 3.00000000 2.00000000 0 0 60.00000000 7.00000000 1.00000000 1.00000000 1.00000000 2.00000000 1.00000000 1.00000000 0 0 0 0 0 0 0 0 1.87500000 4.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 2.00000000 1.00000000 2.00000000 3.00000000 3.00000000 4.00000000 1.00000000 1.00000000 0 0 60.00000000 5.00000000 1.00000000 1.00000000 1.00000000 1.00000000 0 0 0 0 0 0 0 0 2.04999995 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.86000001 0.86000001 2.04999995 0.52499998 1.25000000 1.25000000 0.01000000 0.01000000 9.00000000 8.00000000 4.00000000 7.00000000 2.00000000 3.00000000 1.00000000 1.00000000 0 0 60.00000000 5.00000000 2.00000000 1.00000000 1.00000000 1.00000000 0 0 0 0 0 0 0 0 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 0.86000001 0.86000001 1.00000000 0.52499998 1.25000000 0.02000000 0.02000000 0.33333334 1.00000000 1.00000000 Version: 3 Render: Real Ask: Yes Functions: ioObject Listing: Window WindowBounds: 755 72 611 603 CurrentView: io IOViewEdit: On Options: ioView background {21845, 43690, 32639} ioText {7, 60} {55, 23} label 0.000000 0.00100 "" center "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Drone 1 ioText {70, 60} {48, 23} editnum 13.000000 1.000000 "n_1" center "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 13.000000 ioText {118, 60} {11, 25} label 0.000000 0.00100 "" center "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder : ioText {129, 60} {48, 23} editnum 1.000000 1.000000 "d_1" center "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 1.000000 ioText {129, 88} {48, 23} editnum 1.000000 1.000000 "d_2" center "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 1.000000 ioText {118, 90} {11, 25} label 0.000000 0.00100 "" center "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder : ioText {70, 88} {48, 23} editnum 11.000000 1.000000 "n_2" center "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 11.000000 ioText {7, 88} {55, 23} label 0.000000 0.00100 "" center "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Drone 2 ioText {129, 116} {48, 23} editnum 1.000000 1.000000 "d_3" center "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 1.000000 ioText {118, 120} {11, 25} label 0.000000 0.00100 "" center "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder : ioText {70, 116} {48, 23} editnum 7.000000 1.000000 "n_3" center "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 7.000000 ioText {7, 116} {55, 23} label 0.000000 0.00100 "" center "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Drone 3 ioText {7, 144} {55, 25} label 0.000000 0.00100 "" center "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Drone 4 ioText {70, 144} {48, 22} editnum 5.000000 1.000000 "n_4" center "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 5.000000 ioText {118, 150} {11, 25} label 0.000000 0.00100 "" center "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder : ioText {129, 144} {48, 23} editnum 1.000000 1.000000 "d_4" center "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 1.000000 ioButton {69, 524} {100, 30} value 1.000000 "_Play" "Start" "/" i 3 0 -1 ioButton {176, 524} {100, 30} event 1.000000 "btn_stop" "Stop" "/" i5 0 1 ioText {71, 210} {120, 23} editnum 61.733671 0.001000 "base_freq" right "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 61.733671 ioText {7, 211} {65, 23} label 0.000000 0.00100 "" left "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Base (Hz) ioMenu {69, 248} {114, 28} 4 303 " Sine, Saw, Square, Triangle, Prime, Fibonacci, Asymptotic Saw" menu_waveform ioText {7, 251} {55, 23} label 0.000000 0.00100 "" center "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Wave ioText {389, 351} {67, 25} label 0.000000 0.00100 "" right "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Feedback ioText {205, 60} {35, 23} editnum 0.000000 1.000000 "8ve_1" right "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 0.000000 ioText {205, 88} {35, 23} editnum 0.000000 1.000000 "8ve_2" right "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 0.000000 ioText {205, 116} {35, 23} editnum 0.000000 1.000000 "8ve_3" right "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 0.000000 ioText {205, 144} {35, 23} editnum 0.000000 1.000000 "8ve_4" right "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 0.000000 ioText {99, 31} {50, 25} label 0.000000 0.00100 "" center "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Ratio ioText {205, 31} {35, 25} label 0.000000 0.00100 "" left "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 8ve ioButton {270, 60} {50, 25} event 1.000000 "btn_on1" "On" "/" i 3.1 0 -1 1 ioButton {270, 88} {50, 25} event 1.000000 "btn_on2" "On" "/" i 3.2 0 -1 2 ioButton {270, 144} {50, 25} event 1.000000 "btn_on5" "On" "/" i 3.4 0 -1 4 ioButton {270, 116} {50, 25} event 1.000000 "btn_on3" "On" "/" i 3.3 0 -1 3 ioButton {325, 60} {50, 25} event 1.000000 "btn_off1" "Off" "/" i 4 0 1 1 ioButton {325, 88} {50, 25} event 1.000000 "btn_off2" "Off" "/" i 4 0 1 2 ioButton {325, 116} {50, 25} event 1.000000 "btn_off3" "Off" "/" i 4 0 1 3 ioButton {325, 144} {50, 25} event 1.000000 "btn_off4" "Off" "/" i 4 0 1 4 ioText {206, 433} {60, 25} label 0.000000 0.00100 "" right "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder BPS ioText {215, 351} {70, 25} label 0.000000 0.00100 "" right "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Level ioKnob {283, 324} {80, 80} 1.000000 0.000000 0.010000 0.500000 bb_mix ioMeter {384, 144} {24, 24} {0, 59904, 0} "disp_on_c4" 0.000000 "disp_on_c4" 0.000000 fill 1 0 mouse ioMeter {384, 116} {24, 24} {0, 59904, 0} "disp_on_c3" 0.000000 "disp_on_c3" 0.000000 fill 1 0 mouse ioMeter {384, 88} {24, 24} {0, 59904, 0} "disp_on_c2" 0.000000 "disp_on_c2" 0.000000 fill 1 0 mouse ioMeter {384, 61} {24, 24} {0, 59904, 0} "disp_on_c1" 0.000000 "disp_on_c1" 0.000000 fill 1 0 mouse ioKnob {456, 324} {80, 80} 1.000000 0.000000 0.010000 0.850000 reverb_feedback ioText {68, 292} {130, 30} label 0.000000 0.00100 "" center "Arial" 14 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Harmonic Arpeggio ioText {395, 433} {42, 26} label 0.000000 0.00100 "" right "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Wet ioText {456, 404} {80, 23} scroll 0.850000 0.001000 "feedback_display" right "Arial" 13 {0, 65280, 0} {0, 0, 0} background noborder ioText {283, 404} {80, 23} scroll 0.500000 0.010000 "bb_mix" right "Arial" 13 {0, 65280, 0} {0, 0, 0} background noborder ioSlider {434, 433} {120, 25} 0.000000 1.000000 0.508333 reverb_level ioText {554, 433} {46, 27} label 0.000000 0.00100 "" left "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Dry ioSlider {264, 433} {120, 25} 0.000000 50.000000 0.833333 bb_rate ioSlider {80, 433} {130, 25} 0.000000 1.000000 0.010000 risset_offset ioText {268, 292} {102, 30} label 0.000000 0.00100 "" center "Arial" 14 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Binaural Beats ioText {465, 292} {60, 30} label 0.000000 0.00100 "" center "Arial" 14 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Reverb ioText {70, 3} {270, 25} label 0.000000 0.00100 "" center "Arial" 11 {65280, 65280, 65280} {0, 0, 0} nobackground noborder Sruti/Drone Box 2.8 - Dave Seidel ioText {99, 460} {90, 23} editnum 0.010000 0.010000 "risset_offset" left "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 0.010000 ioText {278, 460} {95, 23} editnum 0.833333 0.001000 "bb_rate" left "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 0.833333 ioText {21, 433} {60, 25} label 0.000000 0.00100 "" right "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Offset ioText {96, 404} {80, 23} scroll 1.000000 0.010000 "risset_mix" right "Arial" 13 {0, 65280, 0} {0, 0, 0} background noborder ioKnob {96, 324} {80, 80} 1.000000 0.000000 0.010000 1.000000 risset_mix ioText {28, 351} {70, 25} label 0.000000 0.00100 "" right "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Level ioText {278, 210} {40, 23} editnum 5.000000 1.000000 "base_pch_int" left "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 5.000000 ioText {327, 210} {40, 23} editnum 11.000000 1.000000 "base_pch_frac" left "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 11.000000 ioMenu {373, 210} {43, 23} 11 303 " C, C#, D, D#, E, F, F#, G, G#, A, A#, B" base_pch_frac ioCheckbox {256, 213} {20, 18} on cb_use_notes ioText {191, 210} {67, 23} label 0.000000 0.00100 "" right "Arial" 12 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Pitch class ioText {316, 195} {11, 25} label 0.000000 0.00100 "" center "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder . ioText {400, 526} {160, 25} edit 0.000000 0.00100 "rec_filename" "Arial" 12 {0, 0, 0} {61440, 61440, 61440} falsenoborder ioText {304, 512} {90, 55} label 0.000000 0.00100 "" center "Arial" 12 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Output file¬(complete path,¬blank for none) ioText {7, 172} {55, 25} label 0.000000 0.00100 "" center "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder Drone 5 ioText {70, 172} {48, 22} editnum 3.000000 1.000000 "n_5" center "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 3.000000 ioText {118, 180} {11, 25} label 0.000000 0.00100 "" center "Arial" 13 {0, 0, 0} {61440, 61440, 61440} nobackground noborder : ioText {129, 172} {48, 23} editnum 1.000000 1.000000 "d_5" center "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 1.000000 ioText {205, 172} {35, 23} editnum 0.000000 1.000000 "8ve_5" right "" 0 {0, 0, 0} {61440, 61440, 61440} nobackground noborder 0.000000 ioButton {270, 172} {50, 25} event 1.000000 "btn_on5" "On" "/" i 3.5 0 -1 5 ioButton {325, 172} {50, 25} event 1.000000 "btn_off5" "Off" "/" i 4 0 1 5 ioMeter {384, 172} {24, 24} {0, 59904, 0} "disp_on_c5" 0.000000 "disp_on_c5" 0.000000 fill 1 0 mouse ioButton {440, 128} {60, 25} event 1.000000 "btn_all_off" "All Off" "/" i4 0 1 -1 ioButton {440, 100} {60, 25} event 1.000000 "btn_all_on" "All On" "/" i6 0 1