;-iadc:system:capture_
-odac:system:playback_ -+rtaudio=jack
;-+rtmidi=null -Mhw:1,0 -b 80 -B 1024
;-odac; -b512 -B4096
sr = 48000
kr = 4800
nchnls = 2
zakinit 24, 1
#define SEQINTERFACE(NUM'NAM)
#FLcolor 255, 255, 255, 0, 255, 0
gkoo$NUM, gioo$NUM FLbutton "$NAM", 1, 0, 2, 100, 50, 0, ($NUM - 1) * 50, 105, $NUM + 1, 0, -1
gklen$NUM, gilen$NUM FLcount "", 1, 32, 1, 1, 2, 100, 50, 100, ($NUM - 1) * 50, -1
gktiming$NUM, gitiming$NUM FLknob "tim", 0, 1, 0, 3, -1, 30, 200 + gipotlarge * 32, ($NUM - 1) * 50
gkvoll$NUM, givoll$NUM FLknob "v_va", 0, 1, 0, 3, -1, 30, 200 + gipotlarge * 32 + 30, ($NUM - 1) * 50
gkVoll$NUM, giVoll$NUM FLknob "VOL", 0, 2, 0, 3, -1, 30, 200 + gipotlarge * 32 + 30 * 2, ($NUM - 1) * 50
gkRev$NUM, giRev$NUM FLknob "Rev", 0, 1, 0, 3, -1, 30, 200 + gipotlarge * 32 + 30 * 3, ($NUM - 1) * 50
gkvol00$NUM, givol00$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200, ($NUM - 1) * 50
FLcolor 170, 170, 170, 255, 255, 255
gkvol01$NUM, givol01$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 1, ($NUM - 1) * 50
gkvol02$NUM, givol02$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 2, ($NUM - 1) * 50
gkvol03$NUM, givol03$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 3, ($NUM - 1) * 50
FLcolor 255, 255, 255, 255, 255, 255
gkvol04$NUM, givol04$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 4, ($NUM - 1) * 50
FLcolor 170, 170, 170, 255, 255, 255
gkvol05$NUM, givol05$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 5, ($NUM - 1) * 50
gkvol06$NUM, givol06$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 6, ($NUM - 1) * 50
gkvol07$NUM, givol07$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 7, ($NUM - 1) * 50
FLcolor 255, 255, 255, 255, 255, 255
gkvol08$NUM, givol08$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 8, ($NUM - 1) * 50
FLcolor 170, 170, 170, 255, 255, 255
gkvol09$NUM, givol09$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 9, ($NUM - 1) * 50
gkvol10$NUM, givol10$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 10, ($NUM - 1) * 50
gkvol11$NUM, givol11$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 11, ($NUM - 1) * 50
FLcolor 255, 255, 255, 255, 255, 255
gkvol12$NUM, givol12$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 12, ($NUM - 1) * 50
FLcolor 170, 170, 170, 255, 255, 255
gkvol13$NUM, givol13$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 13, ($NUM - 1) * 50
gkvol14$NUM, givol14$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 14, ($NUM - 1) * 50
gkvol15$NUM, givol15$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 15, ($NUM - 1) * 50
FLcolor 255, 255, 255, 255, 255, 255
gkvol16$NUM, givol16$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 16, ($NUM - 1) * 50
FLcolor 170, 170, 170, 255, 255, 255
gkvol17$NUM, givol17$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 17, ($NUM - 1) * 50
gkvol18$NUM, givol18$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 18, ($NUM - 1) * 50
gkvol19$NUM, givol19$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 19, ($NUM - 1) * 50
FLcolor 255, 255, 255, 255, 255, 255
gkvol20$NUM, givol20$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 20, ($NUM - 1) * 50
FLcolor 170, 170, 170, 255, 255, 255
gkvol21$NUM, givol21$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 21, ($NUM - 1) * 50
gkvol22$NUM, givol22$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 22, ($NUM - 1) * 50
gkvol23$NUM, givol23$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 23, ($NUM - 1) * 50
FLcolor 255, 255, 255, 255, 255, 255
gkvol24$NUM, givol24$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 24, ($NUM - 1) * 50
FLcolor 170, 170, 170, 255, 255, 255
gkvol25$NUM, givol25$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 25, ($NUM - 1) * 50
gkvol26$NUM, givol26$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 26, ($NUM - 1) * 50
gkvol27$NUM, givol27$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 27, ($NUM - 1) * 50
FLcolor 255, 255, 255, 255, 255, 255
gkvol28$NUM, givol28$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 28, ($NUM - 1) * 50
FLcolor 170, 170, 170, 255, 255, 255
gkvol29$NUM, givol29$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 29, ($NUM - 1) * 50
gkvol30$NUM, givol30$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 30, ($NUM - 1) * 50
gkvol31$NUM, givol31$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 31, ($NUM - 1) * 50
gkpan00$NUM, gipan00$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200, ($NUM - 1) * 50 + 25
gkpan01$NUM, gipan01$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 1, ($NUM - 1) * 50 + 25
gkpan02$NUM, gipan02$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 2, ($NUM - 1) * 50 + 25
gkpan03$NUM, gipan03$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 3, ($NUM - 1) * 50 + 25
gkpan04$NUM, gipan04$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 4, ($NUM - 1) * 50 + 25
gkpan05$NUM, gipan05$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 5, ($NUM - 1) * 50 + 25
gkpan06$NUM, gipan06$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 6, ($NUM - 1) * 50 + 25
gkpan07$NUM, gipan07$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 7, ($NUM - 1) * 50 + 25
gkpan08$NUM, gipan08$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 8, ($NUM - 1) * 50 + 25
gkpan09$NUM, gipan09$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 9, ($NUM - 1) * 50 + 25
gkpan10$NUM, gipan10$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 10, ($NUM - 1) * 50 + 25
gkpan11$NUM, gipan11$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 11, ($NUM - 1) * 50 + 25
gkpan12$NUM, gipan12$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 12, ($NUM - 1) * 50 + 25
gkpan13$NUM, gipan13$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 13, ($NUM - 1) * 50 + 25
gkpan14$NUM, gipan14$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 14, ($NUM - 1) * 50 + 25
gkpan15$NUM, gipan15$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 15, ($NUM - 1) * 50 + 25
gkpan16$NUM, gipan16$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 16, ($NUM - 1) * 50 + 25
gkpan17$NUM, gipan17$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 17, ($NUM - 1) * 50 + 25
gkpan18$NUM, gipan18$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 18, ($NUM - 1) * 50 + 25
gkpan19$NUM, gipan19$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 19, ($NUM - 1) * 50 + 25
gkpan20$NUM, gipan20$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 20, ($NUM - 1) * 50 + 25
gkpan21$NUM, gipan21$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 21, ($NUM - 1) * 50 + 25
gkpan22$NUM, gipan22$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 22, ($NUM - 1) * 50 + 25
gkpan23$NUM, gipan23$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 23, ($NUM - 1) * 50 + 25
gkpan24$NUM, gipan24$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 24, ($NUM - 1) * 50 + 25
gkpan25$NUM, gipan25$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 25, ($NUM - 1) * 50 + 25
gkpan26$NUM, gipan26$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 26, ($NUM - 1) * 50 + 25
gkpan27$NUM, gipan27$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 27, ($NUM - 1) * 50 + 25
gkpan28$NUM, gipan28$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 28, ($NUM - 1) * 50 + 25
gkpan29$NUM, gipan29$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 29, ($NUM - 1) * 50 + 25
gkpan30$NUM, gipan30$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 30, ($NUM - 1) * 50 + 25
gkpan31$NUM, gipan31$NUM FLknob "", 0, 1, 0, 3, -1, gipotlarge, 200 + gipotlarge * 31, ($NUM - 1) * 50 + 25
#
#define RESONINT(NUM)
#FLcolor 255, 255, 255, 0, 255, 0
gkreson$NUM, gireson$NUM FLbutBank 2, 12, 1, 500, 20, 50, giyreson + 20 * ($NUM - 1), -1
gkoores$NUM, gioores$NUM FLbutton "Res$NUM", 1, 0, 2, 50, 20, 0, giyreson + 20 * ($NUM - 1), 105, 200 + ($NUM - 1), 0, -1
gkminoct$NUM, giminoct$NUM FLcount "", 3, 8, 1, 1, 2, 100, 20, 550, giyreson + 20 * ($NUM - 1), -1
gkcutoff$NUM, gicutoff$NUM FLknob "", 100, 10000, 0, 3, -1, gipotlarge, 650, giyreson + 20 * ($NUM - 1)
gkfeedback$NUM, gifeedback$NUM FLknob "", .82, .999, 0, 3, -1, gipotlarge, 650 + gipotlarge, giyreson + 20 * ($NUM - 1)
#
#define SOLOINT(NUM)
#gkoosol$NUM, gioosol$NUM FLbutton "Sol$NUM", 1, 0, 2, 50, 40, 0, giysolo + 40 * ($NUM - 1), 105, 250 + ($NUM - 1), 0, -1
gkminsol$NUM, giminsol$NUM FLcount "", 5, 9, 1, 1, 2, 100, 40, 50, giysolo + 40 * ($NUM - 1), -1
gkmaxsol$NUM, gimaxsol$NUM FLcount "", 5, 9, 1, 1, 2, 100, 40, 150, giysolo + 40 * ($NUM - 1), -1
gkspeedsol$NUM, gispeedsol$NUM FLcount "", 1, 8, 1, 1, 2, 100, 40, 250, giysolo + 40 * ($NUM - 1), -1
gksolopan$NUM, gisolopan$NUM FLknob "pan", 0, 1, 0, 3, -1, 30, 350, giysolo + 40 * ($NUM - 1)
gksolovol$NUM, gisolovol$NUM FLknob "vol", 0, 2, 0, 3, -1, 30, 400, giysolo + 40 * ($NUM - 1)
gksolorev$NUM, gisolorev$NUM FLknob "rev", 0, 1, 0, 3, -1, 30, 450, giysolo + 40 * ($NUM - 1)
#
#define PANCENTER(NUM)
#FLsetVal_i .5, gipan00$NUM
FLsetVal_i .5, gipan01$NUM
FLsetVal_i .5, gipan02$NUM
FLsetVal_i .5, gipan03$NUM
FLsetVal_i .5, gipan04$NUM
FLsetVal_i .5, gipan05$NUM
FLsetVal_i .5, gipan06$NUM
FLsetVal_i .5, gipan07$NUM
FLsetVal_i .5, gipan08$NUM
FLsetVal_i .5, gipan09$NUM
FLsetVal_i .5, gipan10$NUM
FLsetVal_i .5, gipan11$NUM
FLsetVal_i .5, gipan12$NUM
FLsetVal_i .5, gipan13$NUM
FLsetVal_i .5, gipan14$NUM
FLsetVal_i .5, gipan15$NUM
FLsetVal_i .5, gipan16$NUM
FLsetVal_i .5, gipan17$NUM
FLsetVal_i .5, gipan18$NUM
FLsetVal_i .5, gipan19$NUM
FLsetVal_i .5, gipan20$NUM
FLsetVal_i .5, gipan21$NUM
FLsetVal_i .5, gipan22$NUM
FLsetVal_i .5, gipan23$NUM
FLsetVal_i .5, gipan24$NUM
FLsetVal_i .5, gipan25$NUM
FLsetVal_i .5, gipan26$NUM
FLsetVal_i .5, gipan27$NUM
FLsetVal_i .5, gipan28$NUM
FLsetVal_i .5, gipan29$NUM
FLsetVal_i .5, gipan30$NUM
FLsetVal_i .5, gipan31$NUM
#
#define STEPSEQ(NUM'PERC)
#if gkoo$NUM == 0 then
turnoff
endif
kcount init 0
kvol = 0
if gkpulse == 1 then
if kcount == 0 then
kvol = gkvol00$NUM
kpan = gkpan00$NUM
elseif kcount == 1 then
kvol = gkvol01$NUM
kpan = gkpan01$NUM
elseif kcount == 2 then
kvol = gkvol02$NUM
kpan = gkpan02$NUM
elseif kcount == 3 then
kvol = gkvol03$NUM
kpan = gkpan03$NUM
elseif kcount == 4 then
kvol = gkvol04$NUM
kpan = gkpan04$NUM
elseif kcount == 5 then
kvol = gkvol05$NUM
kpan = gkpan05$NUM
elseif kcount == 6 then
kvol = gkvol06$NUM
kpan = gkpan06$NUM
elseif kcount == 7 then
kvol = gkvol07$NUM
kpan = gkpan07$NUM
elseif kcount == 8 then
kvol = gkvol08$NUM
kpan = gkpan08$NUM
elseif kcount == 9 then
kvol = gkvol09$NUM
kpan = gkpan09$NUM
elseif kcount == 10 then
kvol = gkvol10$NUM
kpan = gkpan10$NUM
elseif kcount == 11 then
kvol = gkvol11$NUM
kpan = gkpan11$NUM
elseif kcount == 12 then
kvol = gkvol12$NUM
kpan = gkpan12$NUM
elseif kcount == 13 then
kvol = gkvol13$NUM
kpan = gkpan13$NUM
elseif kcount == 14 then
kvol = gkvol14$NUM
kpan = gkpan14$NUM
elseif kcount == 15 then
kvol = gkvol15$NUM
kpan = gkpan15$NUM
elseif kcount == 16 then
kvol = gkvol16$NUM
kpan = gkpan16$NUM
elseif kcount == 17 then
kvol = gkvol17$NUM
kpan = gkpan17$NUM
elseif kcount == 18 then
kvol = gkvol18$NUM
kpan = gkpan18$NUM
elseif kcount == 19 then
kvol = gkvol19$NUM
kpan = gkpan19$NUM
elseif kcount == 20 then
kvol = gkvol20$NUM
kpan = gkpan20$NUM
elseif kcount == 21 then
kvol = gkvol21$NUM
kpan = gkpan21$NUM
elseif kcount == 22 then
kvol = gkvol22$NUM
kpan = gkpan22$NUM
elseif kcount == 23 then
kvol = gkvol23$NUM
kpan = gkpan23$NUM
elseif kcount == 24 then
kvol = gkvol24$NUM
kpan = gkpan24$NUM
elseif kcount == 25 then
kvol = gkvol25$NUM
kpan = gkpan25$NUM
elseif kcount == 26 then
kvol = gkvol26$NUM
kpan = gkpan26$NUM
elseif kcount == 27 then
kvol = gkvol27$NUM
kpan = gkpan27$NUM
elseif kcount == 28 then
kvol = gkvol28$NUM
kpan = gkpan28$NUM
elseif kcount == 29 then
kvol = gkvol29$NUM
kpan = gkpan29$NUM
elseif kcount == 30 then
kvol = gkvol30$NUM
kpan = gkpan30$NUM
elseif kcount == 31 then
kvol = gkvol31$NUM
kpan = gkpan31$NUM
endif
kcount = kcount + 1
endif
;randomization timing
kwhenn rand gktiming$NUM
kwhen = abs(kwhenn)
;randomization timing
kvoll rand gkvoll$NUM
;printk .5, kinstru
if kvol == 0 goto no
schedkwhen gkpulse, -1, -1, 100 + $PERC + .1 * p1 + .001 * kcount, kwhen * 60 / (4 * gkBpM), 1, (kvol * 20000 - kvol * kvoll * 20000) * gkVoll$NUM, kpan
no:
if kcount > (gklen$NUM - 1) then
kcount = 0
endif
#
#define RESONATOR(NUM)
#if gkoores$NUM == 0 then
turnoff
endif
kmp1 init 1
iextime init .5
;------- complex envelope block ------
xtratim iextime ;extra-time, i.e. release dur
krel init 0
krel release ;outputs release-stage flag (0 or 1 values)
if (krel == 1) kgoto rel ;if in release-stage goto release section
;
;************ attack and sustain section ***********
kmp1 linseg 0, .5, 1
kmp = kmp1
kgoto done
;
;--------- release section --------
rel:
kmp2 linseg 1, iextime, 0
kmp = kmp1*kmp2
done:
a1 zar 0
a2 zar 1
a3 zar 2
a4 zar 3
a5 zar 4
a6 zar 5
a7 zar 6
a8 zar 7
a9 zar 8
a10 zar 9
a11 zar 10
a12 zar 11
asig = .015 * (a1 + a2 + a3 + a4 + a5 + a7 + a8 + a9 + a10 + a11 + a12)
afoll follow asig, 1/kr
ksig downsamp afoll / 120000
ksig limit ksig, .002, .99
kgain = 1 - ksig
kcfr = cpspch(gkminoct$NUM + gkreson$NUM *.01)
kcf port kcfr, .1
ares1 wguide1 asig * kgain, kcf, gkcutoff$NUM, gkfeedback$NUM
ares2 wguide1 asig * kgain, kcf * 2, gkcutoff$NUM, gkfeedback$NUM
ares3 wguide1 asig * kgain, kcf * 4, gkcutoff$NUM, gkfeedback$NUM
aout = (ares1 + ares2 + ares3) * .8 * kmp
zawm aout * .95, 15
#
#define SOLISM(NUM'INSTR)
#if gkoosol$NUM == 0 then
turnoff
endif
kcount init 0
kactivo active $INSTR
if (gkpulse == 1) && (kactivo == 0) then
kcount = kcount + .25
kmodul = kcount % 1
if kmodul == 0 then
kres1 random 0, 4
if kres1 < 1 then
kdec = gkreson1
elseif kres1 >= 1 && kres1 < 2 then
kdec = gkreson2
elseif kres1 >= 2 && kres1 < 3 then
kdec = gkreson3
else
kdec = gkreson4
endif
kdur = int(kres1) * .25
kvol random 1000, 5000
elseif kmodul != 0 then
kres2 random 0, 11.99
kdec = int(kres2)
kdur = int(kres2) / (11.99 * 2)
kvol random 500, 2500
endif
koctaver random 0, 1
knote = gkminsol$NUM + int((gkmaxsol$NUM - gkminsol$NUM) * koctaver) + .01 * kdec
;printk2 knote
kpan = .5
schedkwhen gkpulse, -1, 1, $INSTR, 0, kdur / (gkspeedsol$NUM * .5), kvol * gksolovol$NUM, knote, gksolopan$NUM
endif
#
gipotlarge init 18
giyreson init 320
giysolo init 420
;GUI--------------------------------------
FLpanel "bla bla bla", 900, 600, 0, 0, 0, 1, 0
$SEQINTERFACE(1'explode)
$SEQINTERFACE(2'BassDr)
$SEQINTERFACE(3'snare)
$SEQINTERFACE(4'Plac)
$SEQINTERFACE(5'ringmod)
$SEQINTERFACE(6'cymbal)
$RESONINT(1)
$RESONINT(2)
$RESONINT(3)
$RESONINT(4)
gkResonDist, giResonDist FLknob "Res\nDist", 0, 1, 0, 3, -1, gipotlarge * 1.5, 690, giyreson
gkvolRS1, givolRS1 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720, giyreson
gkpanRS1, gipanRS1 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720, giyreson + gipotlarge
gkvolRS2, givolRS2 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + gipotlarge, giyreson
gkpanRS2, gipanRS2 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + gipotlarge, giyreson + gipotlarge
gkvolRS3, givolRS3 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + 2 * gipotlarge, giyreson
gkpanRS3, gipanRS3 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + 2 * gipotlarge, giyreson + gipotlarge
gkvolRS4, givolRS4 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + 3 * gipotlarge, giyreson
gkpanRS4, gipanRS4 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + 3 * gipotlarge, giyreson + gipotlarge
gkvolRS5, givolRS5 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + 4 * gipotlarge, giyreson
gkpanRS5, gipanRS5 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + 4 * gipotlarge, giyreson + gipotlarge
gkvolRS6, givolRS6 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + 5 * gipotlarge, giyreson
gkpanRS6, gipanRS6 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + 5 * gipotlarge, giyreson + gipotlarge
gkvolRS7, givolRS7 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + 6 * gipotlarge, giyreson
gkpanRS7, gipanRS7 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + 6 * gipotlarge, giyreson + gipotlarge
gkvolRS8, givolRS8 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + 7 * gipotlarge, giyreson
gkpanRS8, gipanRS8 FLknob "", 0, 1, 0, 3, -1, gipotlarge, 720 + 7 * gipotlarge, giyreson + gipotlarge
$SOLOINT(1)
$SOLOINT(2)
$SOLOINT(3)
$SOLOINT(4)
gkBpM, giBpM FLtext "BpM", 30, 250, .5, 1, 100, 30, 530, 450
gkpercMvol, gipercMvol FLknob "Perc", 0, 2, 0, 3, -1, 50, 700, 450
gkresoMvol, giresoMvol FLknob "Reso", 0, 2, 0, 3, -1, 50, 750, 450
gksoloMvol, gisoloMvol FLknob "Solo", 0, 2, 0, 3, -1, 50, 800, 450
FLpanel_end
/*
FLpanel "Shortcuts", 200, 600, 910, 0, 0, 0, 0
ihandle FLbox "Num 1 - 6: activate/deactivate single percussion sequencer", 1, 1, 9, 150, 30, 0, 0
ihandle FLbox "9: activate all percussion sequencers", 1, 1, 9, 150, 30, 0, 30
ihandle FLbox "0: deactivate all percussion sequencers", 1, 1, 9, 150, 30, 0, 60
ihandle FLbox "Resonators preset Chords", 1, 1, 9, 150, 30, 0, 120
ihandle FLbox "q: major triad", 1, 1, 9, 150, 30, 0, 150
ihandle FLbox "w: minor triad", 1, 1, 9, 150, 30, 0, 180
ihandle FLbox "e: dim triad", 1, 1, 9, 150, 30, 0, 210
ihandle FLbox "r: sus chord", 1, 1, 9, 150, 30, 0, 240
ihandle FLbox "a: Maj 7 chord", 1, 1, 9, 150, 30, 0, 270
ihandle FLbox "s: 7 chord", 1, 1, 9, 150, 30, 0, 300
ihandle FLbox "d: min 7 chord", 1, 1, 9, 150, 30, 0, 330
ihandle FLbox "f: dim 7 chord", 1, 1, 9, 150, 30, 0, 360
FLpanel_end
*/
FLrun
FLsetVal_i 0, giResonDist
FLsetVal_i 16, gilen1
FLsetVal_i 16, gilen2
FLsetVal_i 16, gilen3
FLsetVal_i 16, gilen4
FLsetVal_i 16, gilen5
FLsetVal_i 16, gilen6
FLsetVal_i 1, giVoll1
FLsetVal_i 1, giVoll2
FLsetVal_i 1, giVoll3
FLsetVal_i 1, giVoll4
FLsetVal_i 1, giVoll5
FLsetVal_i 1, giVoll6
$PANCENTER(1)
$PANCENTER(2)
$PANCENTER(3)
$PANCENTER(4)
$PANCENTER(5)
$PANCENTER(6)
FLsetVal_i 8000, gicutoff1
FLsetVal_i 8000, gicutoff2
FLsetVal_i 8000, gicutoff3
FLsetVal_i 8000, gicutoff4
FLsetVal_i 6, giminsol1
FLsetVal_i 6, gimaxsol1
FLsetVal_i 1, gispeedsol1
FLsetVal_i .5, gisolopan1
FLsetVal_i 1, gisolovol1
FLsetVal_i 6, giminsol2
FLsetVal_i 6, gimaxsol2
FLsetVal_i 1, gispeedsol2
FLsetVal_i .5, gisolopan2
FLsetVal_i 1, gisolovol2
FLsetVal_i 6, giminsol3
FLsetVal_i 6, gimaxsol3
FLsetVal_i 1, gispeedsol3
FLsetVal_i .5, gisolopan3
FLsetVal_i 1, gisolovol3
FLsetVal_i 6, giminsol4
FLsetVal_i 6, gimaxsol4
FLsetVal_i 1, gispeedsol4
FLsetVal_i .5, gisolopan4
FLsetVal_i 1, gisolovol4
FLsetVal_i 1, gipercMvol
FLsetVal_i 1, giresoMvol
FLsetVal_i 1, gisoloMvol
FLsetVal_i .95, gifeedback1
FLsetVal_i .95, gifeedback2
FLsetVal_i .95, gifeedback3
FLsetVal_i .95, gifeedback4
FLsetVal_i .5, gipanRS1
FLsetVal_i .5, gipanRS2
FLsetVal_i .5, gipanRS3
FLsetVal_i .5, gipanRS4
FLsetVal_i .5, gipanRS5
FLsetVal_i .5, gipanRS6
FLsetVal_i .5, gipanRS7
FLsetVal_i .5, gipanRS8
giOsciStorage ftgen 101, 0, 128, -2, 0
giPattStorage ftgen 102, 0, 128, -2, 0
;INSTRUMENTS--------------------------------------------
instr 1 ;Main
gkpulse metro 4 * gkBpM / 60
;Keyboard managing
kascii FLkeyIn
ktigKey changed kascii
if kascii == 49 && ktigKey == 1 then ;1 activate/deactivate seq 1
if gkoo1 == 0 then
FLsetVal 1, 1, gioo1
else
FLsetVal 1, 0, gioo1
endif
elseif kascii == 50 && ktigKey == 1 then ;2 activate/deactivate seq 2
if gkoo2 == 0 then
FLsetVal 1, 1, gioo2
else
FLsetVal 1, 0, gioo2
endif
elseif kascii == 51 && ktigKey == 1 then ;3 activate/deactivate seq 3
if gkoo3 == 0 then
FLsetVal 1, 1, gioo3
else
FLsetVal 1, 0, gioo3
endif
elseif kascii == 52 && ktigKey == 1 then ;4 activate/deactivate seq 4
if gkoo4 == 0 then
FLsetVal 1, 1, gioo4
else
FLsetVal 1, 0, gioo4
endif
elseif kascii == 53 && ktigKey == 1 then ;5 activate/deactivate seq 5
if gkoo5 == 0 then
FLsetVal 1, 1, gioo5
else
FLsetVal 1, 0, gioo5
endif
elseif kascii == 54 && ktigKey == 1 then ;6 activate/deactivate seq 6
if gkoo6 == 0 then
FLsetVal 1, 1, gioo6
else
FLsetVal 1, 0, gioo6
endif
elseif kascii == 57 && ktigKey == 1 then ;9 activate/deactivate all seq on
FLsetVal 1, 1, gioo1
FLsetVal 1, 1, gioo2
FLsetVal 1, 1, gioo3
FLsetVal 1, 1, gioo4
FLsetVal 1, 1, gioo5
FLsetVal 1, 1, gioo6
elseif kascii == 48 && ktigKey == 1 then ;0 activate/deactivate all seq on
FLsetVal 1, 0, gioo1
FLsetVal 1, 0, gioo2
FLsetVal 1, 0, gioo3
FLsetVal 1, 0, gioo4
FLsetVal 1, 0, gioo5
FLsetVal 1, 0, gioo6
;Resonators chords presets
;q resonator major chord
elseif kascii == 113 && ktigKey == 1 then
kthird = gkreson1 + 4
kthird wrap kthird, 0, 12
FLsetVal 1, kthird, gireson2
kfifth = kthird + 3
kfifth wrap kfifth, 0, 12
FLsetVal 1, kfifth, gireson3
FLsetVal 1, gkreson1, gireson4
;w resonator minor chord
elseif kascii == 119 && ktigKey == 1 then
kthird = gkreson1 + 3
kthird wrap kthird, 0, 12
FLsetVal 1, kthird, gireson2
kfifth = kthird + 4
kfifth wrap kfifth, 0, 12
FLsetVal 1, kfifth, gireson3
FLsetVal 1, gkreson1, gireson4
;e resonator dim chord
elseif kascii == 101 && ktigKey == 1 then
kthird = gkreson1 + 3
kthird wrap kthird, 0, 12
FLsetVal 1, kthird, gireson2
kfifth = kthird + 3
kfifth wrap kfifth, 0, 12
FLsetVal 1, kfifth, gireson3
FLsetVal 1, gkreson1, gireson4
;r resonator sus chord
elseif kascii == 114 && ktigKey == 1 then
kthird = gkreson1 + 5
kthird wrap kthird, 0, 12
FLsetVal 1, kthird, gireson2
kfifth = kthird + 2
kfifth wrap kfifth, 0, 12
FLsetVal 1, kfifth, gireson3
FLsetVal 1, gkreson1, gireson4
;a resonator major 7 chord
elseif kascii == 97 && ktigKey == 1 then
kthird = gkreson1 + 4
kthird wrap kthird, 0, 12
FLsetVal 1, kthird, gireson2
kfifth = kthird + 3
kfifth wrap kfifth, 0, 12
FLsetVal 1, kfifth, gireson3
kseventh = kfifth + 4
kseventh wrap kseventh, 0, 12
FLsetVal 1, kseventh, gireson4
;s resonator 7 chord
elseif kascii == 115 && ktigKey == 1 then
kthird = gkreson1 + 4
kthird wrap kthird, 0, 12
FLsetVal 1, kthird, gireson2
kfifth = kthird + 3
kfifth wrap kfifth, 0, 12
FLsetVal 1, kfifth, gireson3
kseventh = kfifth + 3
kseventh wrap kseventh, 0, 12
FLsetVal 1, kseventh, gireson4
;d resonator min 7 chord
elseif kascii == 100 && ktigKey == 1 then
kthird = gkreson1 + 3
kthird wrap kthird, 0, 12
FLsetVal 1, kthird, gireson2
kfifth = kthird + 4
kfifth wrap kfifth, 0, 12
FLsetVal 1, kfifth, gireson3
kseventh = kfifth + 3
kseventh wrap kseventh, 0, 12
FLsetVal 1, kseventh, gireson4
;d resonator dim 7 chord
elseif kascii == 102 && ktigKey == 1 then
kthird = gkreson1 + 3
kthird wrap kthird, 0, 12
FLsetVal 1, kthird, gireson2
kfifth = kthird + 3
kfifth wrap kfifth, 0, 12
FLsetVal 1, kfifth, gireson3
kseventh = kfifth + 3
kseventh wrap kseventh, 0, 12
FLsetVal 1, kseventh, gireson4
endif
endin
instr 2;seq1 STEPSEQ(NUM'PERC)
$STEPSEQ(1'0)
endin
instr 3;seq2
$STEPSEQ(2'1)
endin
instr 4;seq3
$STEPSEQ(3'2)
endin
instr 5;seq4
$STEPSEQ(4'3)
endin
instr 6;seq4
$STEPSEQ(5'4)
endin
instr 7;seq4
$STEPSEQ(6'5)
endin
;PERCUSSION SOUNDS -----------------------------------------------
instr 100 ;explosion by orangey on csound forum
k1 linseg 0, .01, 1, p3-.01, 0 ;envelope for noise amplitude
k2 line 55, p3, 20 ;envelope for fofilter frequency peak
a1 noise p4 * k1 *.02, .7 ;Generate noise
a2 fofilter a1, k2, 0.01, 0.04
aL, aR pan2 a2 * .9, p5
zawm aL * .7, 0
zawm aR * .7, 1
endin
instr 101 ;bass drum
;Bass drum USABLEEEEEE!!!!!!
ituning init 6.05
;attack
attack_env expseg 0.0001, 0.04, p4*.05, 0.08, 0.0001
anoise_att noise attack_env, -.2
afilter_att butlp anoise_att, 1600
;noise percussion at variable frequency
aenvvol linseg 0.0001, 0.04, p4, p3-0.01, 0.0001 ;volume envelope
kenvfil linseg 0.1, 0.01, cpspch(ituning )*.5, 0.1, cpspch(ituning )*.25, p3-0.01, cpspch(ituning)*.2 ;filter envelope
anoise rand aenvvol
;anoise noise aenvvol, 1
afilter_main butlp anoise, kenvfil; tuned noise
;bass
abassboost1 eqfil afilter_att+afilter_main, 250, 500, 16
aL, aR pan2 3 * (abassboost1 * .5 + afilter_main), p5
zawm aL * .8, 2
zawm aR * .8, 3
endin
instr 102 ;snare
kdrumvol = .6
ksnarevol = .15
;attackkkk
kvol = p4 * .3
;drum
ktuning = .9;.8
asine1 oscil kvol, 330*ktuning, 1
asine2 oscil kvol, 180*ktuning, 1
kenvelope_b expseg .0001, .0001, 1, .4, .0001
asii2 = (asine1 + asine2) * kenvelope_b * kdrumvol
;snare
anoi rand kvol
asii3 butterlp anoi, p4 * .5
kenvelope_c expseg .0001, .0001, 1, .7, .0001
asii3 = asii3 * kenvelope_c * ksnarevol
asii3 butterbr asii3, 500, 10
asii3 butterbr asii3, 1511, 100
;aL, aR pan2 (asii1 + asii2 + asii3) * 1.1, p5
aL, aR pan2 (asii2 + asii3) * 1.1, p5
zawm aL * .8, 4
zawm aR * .8, 5
endin
instr 103 ;GENERATES A SHORT SYNTHESISED IMPULSE SOUND
aenv expseg 0.0001, 0.01, 1, p3-0.01, 0.0001 ;PERCUSSIVE-TYPE AMPLITUDE ENVELOPE
asig1 noise p4 * aenv, 0 ;GENERATE A 'WHITE NOISE' SIGNAL
iCutoff_Oct random 6,10 ;CREATE A RANDOM VALUE FOR CUTOFF FREQUENCY (IN OCT FORMAT)
asig2 butlp asig1, cpsoct(iCutoff_Oct) ;LOWPASS FILTER WHITE NOISE
asig balance asig2, asig1 ;BALANCE FILTERED SIGNAL WITH UNFILTERED WHITE NOISE SIGNAL TO COMPENSATE FOR AMPLITUDE LOSS
aL, aR pan2 asig * .4, p5
zawm aL * .8, 6
zawm aR * .8, 7
endin
instr 104 ;ring modulated percussion
kevelopetotal expseg .0001, .0001, 1, .01, .7, p3 - .01, .0001
kover3 line 2, p3, .5
kover4 line .5, p3, 2
a1 oscil 1, 70, 3
a2 oscil 1, 105, 1
a3 oscil kover3, 203, 1
a4 oscil kover4, 411, 2
a5 oscil 1, 511, 3
a6 oscil 1, 737, 4
atot = kevelopetotal * p4 * a1 * a2 * a3 * a4 * a5 * a6
aL, aR pan2 atot * 2, p5
zawm aL * .6, 8
zawm aR * .6, 9
endin
instr 105 ;sound on sound cymbal SYNTH SECRETS Published in SOS June 2002
kvol = p4
aOscA1 vco kvol, 1047, 2, .8
;aOscA1 oscili kvol, 1047, 2 ;pulse width
aOscA2 oscili kvol, 2490+aOscA1, 2
;ping
kfreqping line 22000, .2, 100
kband = kfreqping *.5
aPing butterbp aOscA2, kfreqping, kband
kenvping expon 1, p3, .000001
aPing = aPing * kenvping
;tail
kfreqtail expseg 2640, .2, 22000 , 3.7, 2640
aTail butterhp aOscA2, kfreqtail
;total envelope
kevelopetotal expseg .0001, .0001, 1, p3, .0001
aout = (aPing + aTail*.1) * kevelopetotal *.3
aL, aR pan2 aout * 2, p5
zawm aL * .5, 10
zawm aR * .5, 11
endin
instr 200 ;resonator 1
$RESONATOR(1)
endin
instr 201 ;resonator 2
$RESONATOR(2)
endin
instr 202 ;resonator 3
$RESONATOR(3)
endin
instr 203 ;resonator 4
$RESONATOR(4)
endin
instr 250 ;solo
$SOLISM(1'260)
endin
instr 251 ;solo
$SOLISM(2'261)
endin
instr 252 ;solo
$SOLISM(3'262)
endin
instr 253 ;solo
$SOLISM(4'263)
endin
instr 260 ; audio solo 1
ifreq = cpspch(p5)
aout oscil p4 * .4, ifreq, 2
klinepart line 0, .7, 1
aoutsin1 oscil p4 * .55 * klinepart, ifreq * 2.01, 3
aoutsin2 oscil p4 * .55 * klinepart, ifreq * 2.03, 4
kenvelope linseg 0, .01, 1, .1, .7, p3 - .11, 0
kdeclick linseg 1, p3 - .01, 1, .01, 0
aout = kenvelope * (aout + aoutsin1 + aoutsin2) * kdeclick
aL, aR pan2 aout, p6
zawm aL * .7, 16
zawm aR * .7, 17
endin
instr 261 ; audio solo 2
ifreq = cpspch(p5)
aout oscil p4 * .8, ifreq, 1
klinepart line 0, .27, 1
aoutsin1 oscil p4 * .45 * klinepart, ifreq * 2.01, 2
aoutsin2 oscil p4 * .45 * klinepart, ifreq * 1.98, 3
kenvelope linseg 0, .01, 1, .1, .7, p3 - .11, 0
kdeclick linseg 1, p3 - .01, 1, .01, 0
aout = kenvelope * (aout + aoutsin1 + aoutsin2) * kdeclick
aL, aR pan2 aout, p6
;outs aL, aR
zawm aL * .7, 18
zawm aR * .7, 19
endin
instr 262 ; audio solo 3
ifreq = cpspch(p5)
a1 oscil 1, ifreq, 1
a2 oscil 1, ifreq * .97, 2
a3 oscil 1, ifreq * 2.01, 1
aout = a1 * a2 * a3
ares moogvcf aout, ifreq, 1
kenvelope linseg 0, .05, 1, .1, .9, p3 - .11, 0
kdeclick linseg 1, p3 - .01, 1, .01, 0
aout = kenvelope * ares * kdeclick * p4 * 10
aL, aR pan2 aout, p6
zawm aL * .7, 20
zawm aR * .7, 21
endin
instr 263 ; audio solo 4
ifreq = cpspch(p5)
a1 oscil 1, ifreq, 2
a2 oscil 1, ifreq * .97, 1
a3 oscil 1, ifreq * 2.01, 3
aout = a1 * a2 * a3
ares moogvcf aout, ifreq, 1
kenvelope linseg 0, .05, 1, .1, .9, p3 - .11, 0
kdeclick linseg 1, p3 - .01, 1, .01, 0
aout = kenvelope * ares * kdeclick * p4 * 10
aL, aR pan2 aout, p6
zawm aL * .7, 22
zawm aR * .7, 23
endin
instr 290;resonators effects
aresIn zar 15
zacl 15, 15
ifn init 10
;distortion
aresD distort aresIn * .07, gkResonDist, ifn
ares balance aresD, aresIn
;delay
abuffer delayr 20
a1 deltap .25 * 60 / gkBpM
a2 deltap .5 * 60 / gkBpM
a3 deltap .75 * 60 / gkBpM
a4 deltap 60 / gkBpM
a5 deltap 1.25 * 60 / gkBpM
a6 deltap 1.5 * 60 / gkBpM
a7 deltap 1.75 * 60 / gkBpM
a8 deltap 2 * 60 / gkBpM
delayw ares * .8
;Pan for the delay lines
a1L, a1R pan2 a1 * gkvolRS1, gkpanRS1
a2L, a2R pan2 a2 * gkvolRS2, gkpanRS2
a3L, a3R pan2 a3 * gkvolRS3, gkpanRS3
a4L, a4R pan2 a4 * gkvolRS4, gkpanRS4
a5L, a5R pan2 a5 * gkvolRS5, gkpanRS5
a6L, a6R pan2 a6 * gkvolRS6, gkpanRS6
a7L, a7R pan2 a7 * gkvolRS7, gkpanRS7
a8L, a8R pan2 a8 * gkvolRS8, gkpanRS8
;Sum of direct and delayed signals
aL = ares * .6 + a1L + a2L + a3L + a4L + a5L + a6L + a7L + a8L
aR = ares * .6 + a1R + a2R + a3R + a4R + a5R + a6R + a7R + a8R
zawm aL * 2, 12
zawm aR * 2, 13
endin
instr 300 ;out mixer
;percussions
a1 zar 0
a2 zar 1
a3 zar 2
a4 zar 3
a5 zar 4
a6 zar 5
a7 zar 6
a8 zar 7
a9 zar 8
a10 zar 9
a11 zar 10
a12 zar 11
;resonators
aresL zar 12
aresR zar 13
;solists
asol1 zar 16
asol2 zar 17
asol3 zar 18
asol4 zar 19
asol5 zar 20
asol6 zar 21
asol7 zar 22
asol8 zar 23
;smoothing continuos controllers From Csound Floss Manual
;avoid clicks due to fast knob movements
;gkpercMvol, gipercMvol FLknob "Perc", 0, 2, 0, 3, -1, 50, 700, 450
;gkresoMvol, giresoMvol FLknob "Reso", 0, 2, 0, 3, -1, 50, 750, 450
;gksoloMvol, gisoloMvol FLknob "Solo", 0, 2, 0, 3, -1, 50, 800, 450
kPortTime linseg 0,0.001,0.01
kpercMvolP portk gkpercMvol, kPortTime
kresoMvolP portk gkresoMvol, kPortTime
ksoloMvolP portk gksoloMvol, kPortTime
;Sum of signals
aLd = kpercMvolP * (a1 * (1 - gkRev1) + a3 * (1 - gkRev2) + a5 * (1 - gkRev3) + a7 * (1 - gkRev4) + a9 * (1 - gkRev5) + a11 * (1 - gkRev6)) + kresoMvolP * aresL + ksoloMvolP * 2 * (asol1 * (1 - gksolorev1) + asol3 * (1 - gksolorev2) + asol5 * (1 - gksolorev3) + asol7 * (1 - gksolorev4))
aRd = kpercMvolP * (a2 * (1 - gkRev1) + a4 * (1 - gkRev2) + a6 * (1 - gkRev3) + a8 * (1 - gkRev4) + a10 * (1 - gkRev5) + a12 * (1 - gkRev6)) + kresoMvolP * aresR + ksoloMvolP * 2 * (asol2 * (1 - gksolorev1) + asol4 * (1 - gksolorev2) + asol6 * (1 - gksolorev3) + + asol8 * (1 - gksolorev4))
;Reverb on pecussion and solists
aLr = kpercMvolP * (a1 * gkRev1 + a3 * gkRev2 + a5 * gkRev3 + a7 * gkRev4 + a9 * gkRev5 + a11 * gkRev6) + ksoloMvolP * 2 * (asol1 * gksolorev1 + asol3 * gksolorev2 + asol5 * gksolorev3 + asol7 * gksolorev4)
aRr = kpercMvolP * (a2 * gkRev1 + a4 * gkRev2 + a6 * gkRev3 + a8 * gkRev4 + a10 * gkRev5 + a12 * gkRev6) + ksoloMvolP * 2 * (asol2 * gksolorev1 + asol4 * gksolorev2 + asol6 * gksolorev3 + asol8 * gksolorev4)
aoutL, aoutR reverbsc aLr, aRr, .8, sr/4
;Output
ioutRedux init 1.9
aLFinal dcblock2 (aLd + aoutL) * ioutRedux
aRFinal dcblock2 (aRd + aoutR) * ioutRedux
outs aLFinal, aRFinal
zacl 0, 23
;Record the output
idata date
Sdata sprintf "%i", idata
Sfile strcat Sdata, ".wav"
aLHmonitor, aRHmonitor monitor
fout Sfile, 4, aLHmonitor, aRHmonitor
endin
f 0 3600
;sine
f 1 0 16384 10 1
;saw
f 2 0 16384 10 1 1/2 1/3 1/4 1/5 1/6 1/7 1/8 1/9
;triangle
f 3 0 16384 10 1 0 -1/9 0 1/25 0 -1/49 0 1/81
;square
f 4 0 16384 10 1 0 1/3 0 1/5 0 1/7 0 1/9
;Distortion F table
f 10 0 257 9 .5 1.2 270 1.5 .383 90 2.5 .1 270 3.5 .123 90 4.5 .111 270
i 1 0 -1
i 290 0 -1
i 300 0 -1
e