bounds(0, 0, 0, 0)
form caption("SupSAW") size(800, 220), guiMode("queue"), pluginId("def1") colour( 0, 0, 0)
keyboard bounds(0, 114, 797, 95)
hslider bounds(0, 60, 144, 53) channel("chnDeviate") range(0, 10, 0, 1, 0.001) text("deviate") textColour(255, 255, 255, 255)outlineColour(255, 0, 0, 255) trackerColour(255, 255, 255, 255)
rslider bounds(0, 0, 60, 60) channel("chnA") range(0.001, 5, 0.1, 1, 0.001)text("A") textColour(255, 255, 255, 255)outlineColour(255, 0, 0, 255) trackerColour(255, 255, 255, 255)
rslider bounds(60, 0, 60, 60) channel("chnD") range(0, 5, 0.2, 1, 0.001)text("D") textColour(255, 255, 255, 255)outlineColour(255, 0, 0, 255) trackerColour(255, 255, 255, 255)
rslider bounds(118, 0, 60, 60) channel("chnS") range(0, 1, 0.6, 1, 0.001)text("S") textColour(255, 255, 255, 255)outlineColour(255, 0, 0, 255) trackerColour(255, 255, 255, 255)
rslider bounds(178, 0, 60, 60) channel("chnR") range(0, 5, 0.4, 1, 0.001)text("R") textColour(255, 255, 255, 255)outlineColour(255, 0, 0, 255) trackerColour(255, 255, 255, 255)
rslider bounds(316, 58, 60, 55) channel("chnCutoff") range(50, 15000, 4000, 1, 0.001) text("Cutoff") textColour(255, 255, 255, 255)outlineColour(255, 0, 0, 255) trackerColour(255, 255, 255, 255)
rslider bounds(376, 58, 60, 55) channel("chnQ") range(1, 500, 1, 1, 0.001) text("Q") textColour(255, 255, 255, 255)outlineColour(255, 0, 0, 255) trackerColour(255, 255, 255, 255)
rslider bounds(236, 0, 62, 60) channel("chnGain") range(0, 1, 0.1, 1, 0.001) text("Gain") textColour(255, 255, 255, 255)outlineColour(255, 0, 0, 255) trackerColour(255, 255, 255, 255)
checkbox bounds(198, 60, 100, 53) channel("chnFade") text("Fade") fontColour:1(255, 255, 255, 255) fontColour:0(255, 255, 255, 255)outlineColour(255, 0, 0, 255) trackerColour(255, 255, 255, 255)
rslider bounds(142, 60, 58, 53) channel("chnConst") range(0, 5, 0, 1, 0.001) text("Delay") textColour(255, 255, 255, 255)outlineColour(255, 0, 0, 255) trackerColour(255, 255, 255, 255)
rslider bounds(316, 0, 60, 60) channel("chnCutA") range(1e-05, 5, 1e-05, 1, 0.001) text("A")textColour(255, 255, 255, 255)outlineColour(255, 0, 0, 255) trackerColour(255, 255, 255, 255)
rslider bounds(376, 0, 60, 60) channel("chnCutD") range(1e-05, 3, 0, 1, 0.001) text("D")textColour(255, 255, 255, 255)outlineColour(255, 0, 0, 255) trackerColour(255, 255, 255, 255)
rslider bounds(436, 0, 60, 60) channel("chnCutS") range(1e-05, 1, 1, 1, 0.001) text("S")textColour(255, 255, 255, 255)outlineColour(255, 0, 0, 255) trackerColour(255, 255, 255, 255)
vmeter bounds(494, 0, 24, 114) channel("vMeter1") value(-inf) overlayColour(40, 40, 40, 255) outlineThickness(2) meterColour:0(255, 0, 0, 255) meterColour:1(255, 255, 0, 255) meterColour:2(0, 255, 0, 255)
vmeter bounds(522, 0, 23, 115) channel("vMeter2") value(-inf) overlayColour(40, 40, 40, 255) outlineThickness(2) meterColour:0(255, 0, 0, 255) meterColour:1(255, 255, 0, 255) meterColour:2(0, 255, 0, 255)
combobox bounds(690, 48, 86, 35) channel("combo10008") populate("*.snaps") automatable(0) channelType("string") text("0.5", "1", "2", "echoes", "confusion") value("1")
filebutton bounds(576, 46, 80, 40) channel("filebutton10009") mode("named preset") text("Save", "Save")populate("*.snaps")
-n -d -+rtmidi=NULL -M0 --midi-key-cps=4 --midi-velocity-amp=5 --limiter=0.9
; Initialize the global variables.
ksmps = 32
nchnls = 2
0dbfs = 1
;instrument will be triggered by keyboard widget
instr 1
iatk chnget "chnA"
idec chnget "chnD"
isus chnget "chnS"
irel chnget "chnR"
iatkCut chnget "chnCutA"
idecCut chnget "chnCutD"
isusCut chnget "chnCutS"
iFade chnget "chnFade"
if iFade == 0 then
kEnv madsr iatk, idec, isus, irel
;printk2 kEnv
kdeviate chnget "chnDeviate"
aOut vco2 .1*p5, p4, 10
aOut1 vco2 .1*p5, p4+kdeviate, 10
aOut2 vco2 .1*p5, p4+(2*kdeviate), 10
aOut3 vco2 .1*p5, p4+(3*kdeviate), 10
aOut4 vco2 .1*p5, p4+(4*kdeviate), 10
aOut5 vco2 .1*p5, p4+(5*kdeviate), 10
aOut6 vco2 .1*p5, p4+(6*kdeviate), 10
aOutOut = aOut+aOut1+aOut2+aOut3+aOut4+aOut5+aOut6
kCut chnget "chnCutoff"
kCutEnv madsr iatkCut, idecCut, isusCut, irel
printk2 kCutEnv
kQ chnget "chnQ"
aFilt lowpass2 aOutOut, kCutEnv*kCut, kQ
kGain chnget "chnGain"
aOut = kGain*aFilt*kEnv
outs aOut, aOut
kMeterLstuff rms aFilt*kGain*kEnv
kMeterLstuff = (80-abs(dbamp(kMeterLstuff)))/60
kMeterL limit kMeterLstuff, -50, 1
;printk2 kMeterL
kMeterRstuff rms aFilt*kGain*kEnv, 50
kMeterRstuff = (80-abs(dbamp(kMeterRstuff)))/60
kMeterR limit kMeterRstuff,-50, 1
cabbageSetValue "vMeter1", 0
cabbageSetValue "vMeter1", 0
kmetro metro 10
;printk2 kmetro
if kmetro == 1 then
;chnset kMeterL, "vMeter1"'
cabbageSetValue "vMeter1", kMeterL
;chnset kMeterR, "vMeter2"
cabbageSetValue "vMeter2", kMeterR
endif
else
kConst chnget "chnConst"
kEnv madsr iatk+i(kConst), idec, isus, irel*1.3
kEnv1 madsr iatk+1+i(kConst), idec, isus, irel*1.25
kEnv2 madsr iatk+2+i(kConst), idec, isus, irel*1.2
kEnv3 madsr iatk+3+i(kConst), idec, isus, irel*1.15
kEnv4 madsr iatk+4+i(kConst), idec, isus, irel*1.1
kEnv5 madsr iatk+5+i(kConst), idec, isus, irel*1.05
kEnv6 madsr iatk+6+i(kConst), idec, isus, irel
kdeviate chnget "chnDeviate"
aOut vco2 .1*p5, p4, 10
aOut1 vco2 .1*p5, p4+kdeviate, 10
aOut2 vco2 .1*p5, p4+(2*kdeviate), 10
aOut3 vco2 .1*p5, p4+(3*kdeviate), 10
aOut4 vco2 .1*p5, p4+(4*kdeviate), 10
aOut5 vco2 .1*p5, p4+(5*kdeviate), 10
aOut6 vco2 .1*p5, p4+(6*kdeviate), 10
aOutOut= (aOut*kEnv)+(aOut1*kEnv1)+(aOut2*kEnv2)+(aOut3*kEnv3)+(aOut4*kEnv4)+(aOut5*kEnv5)+(aOut6*kEnv6)
kCut chnget "chnCutoff"
kCutEnv madsr iatkCut, idecCut, isusCut, irel*1.25
;printk2 kCutEnv
kQ chnget "chnQ"
aFilt lowpass2 aOutOut, kCutEnv*kCut, kQ
kGain chnget "chnGain"
outs kGain*aFilt*kEnv, kGain*aFilt*kEnv
kMeterLstuff rms aFilt*kGain*kEnv
kMeterLstuff = (80-abs(dbamp(kMeterLstuff)))/60
kMeterL limit kMeterLstuff, -50, 1
;printk2 kGain
kMeterRstuff rms aFilt*kGain*kEnv
kMeterRstuff = (80-abs(dbamp(kMeterRstuff)))/60
kMeterR limit kMeterRstuff,-50, 1
cabbageSetValue "vMeter1", 0
cabbageSetValue "vMeter1", 0
kmetro metro 10
;printk2 kmetro
if kmetro == 1 then
;chnset kMeterL, "vMeter1"'
cabbageSetValue "vMeter1", kMeterL
;chnset kMeterR, "vMeter2"
cabbageSetValue "vMeter2", kMeterR
endif
endif
endin
;causes Csound to run for about 7000 years...
f0 z