diff options
author | Richard <q@1bpm.net> | 2025-04-13 18:48:02 +0100 |
---|---|---|
committer | Richard <q@1bpm.net> | 2025-04-13 18:48:02 +0100 |
commit | 9fbf91db06a6d4f4b5cd8bb45389a731bb86bf22 (patch) | |
tree | 291bd79ce340e67affa755a8a6b4f6a83cce93ea /site/udo/_TESTS/mixer_emulator_1604a.csd | |
download | apps.csound.1bpm.net-9fbf91db06a6d4f4b5cd8bb45389a731bb86bf22.tar.gz apps.csound.1bpm.net-9fbf91db06a6d4f4b5cd8bb45389a731bb86bf22.tar.bz2 apps.csound.1bpm.net-9fbf91db06a6d4f4b5cd8bb45389a731bb86bf22.zip |
initial
Diffstat (limited to 'site/udo/_TESTS/mixer_emulator_1604a.csd')
-rwxr-xr-x | site/udo/_TESTS/mixer_emulator_1604a.csd | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/site/udo/_TESTS/mixer_emulator_1604a.csd b/site/udo/_TESTS/mixer_emulator_1604a.csd new file mode 100755 index 0000000..03ebeed --- /dev/null +++ b/site/udo/_TESTS/mixer_emulator_1604a.csd @@ -0,0 +1,144 @@ +<CsoundSynthesizer>
+<CsOptions>
+-odac
+;--env:INCDIR="D:/Documents/Csound/_UDO"
+--omacro:HOST=AUDIO
+;-m0
+</CsOptions>
+<CsInstruments>
+sr = 48000
+ksmps = 8
+nchnls = 2
+0dbfs = 1
+seed 0
+
+#include "feedback.udo"
+
+gimaxeq init 2
+gimaxsend init 2
+gimaxamp init 1.5
+
+
+opcode FLchannel, ik[], ii
+ ix, ichannumber xin
+ iwidth = 100
+ iy = -50
+ kp[] init 14
+ ih1 FLbox sprintf("Channel %d", ichannumber), 1, 2, 14, iwidth*2, 50, ix, iy+50
+ kp[0], ih2 FLbutton "Low Cut", 1, 0, 2, iwidth, 30, ix, iy+100, -1
+ kp[8], ihx FLbutton "CModel", 1, 0, 2, iwidth, 30, ix+100, iy+100, -1
+
+ kp[1], ih3 FLknob "High", 0, gimaxeq, 0, 1, -1, 70, ix+15, iy+130
+ kp[2], ih4 FLknob "Mid", 0, gimaxeq, 0, 1, -1, 70, ix+15, iy+215
+ kp[3], ih5 FLknob "Low", 0, gimaxeq, 0, 1, -1, 70, ix+15, iy+300
+
+ FLsetColor 0, 0, 128, ih3
+ FLsetColor 0, 0, 128, ih4
+ FLsetColor 0, 0, 128, ih5
+ FLsetVal_i gimaxeq*0.5, ih3
+ FLsetVal_i gimaxeq*0.5, ih4
+ FLsetVal_i gimaxeq*0.5, ih5
+
+ kp[4], ih6 FLknob "Aux1", 0, gimaxsend, 0, 1, -1, 70, ix+85, iy+130
+ kp[5], ih7 FLknob "Aux2", 0, gimaxsend, 0, 1, -1, 70, ix+85, iy+215
+ ;kp[6], ih8 FLknob "Aux3", 0, gimaxsend, 0, 1, -1, 70, ix+85, iy+300
+ ;kp[7], ih9 FLknob "Aux4", 0, gimaxsend, 0, 1, -1, 70, ix+85, iy+385
+
+ FLsetColor 128, 0, 0, ih6
+ FLsetColor 128, 0, 0, ih7
+ ;FLsetColor 128, 0, 0, ih8
+ ;FLsetColor 128, 0, 0, ih9
+
+
+
+ kp[8], ih10 FLbutton "Pre", 1, 0, 2, 45, 70, ix+155, iy+130, -1
+ kp[9], ih11 FLbutton "CModel", 1, 0, 2, 45, 70, ix+155, iy+215, -1
+ ;kp[10], ih12 FLbutton "Pre", 1, 0, 2, 45, 70, ix+155, iy+300, -1
+ ;kp[11], ih13 FLbutton "Pre", 1, 0, 2, 45, 70, ix+155, iy+385, -1
+
+ kp[12], ih14 FLslider "Gain", gimaxamp, 0, 0, 6, -1, 50, 200, ix+25, iy+385
+
+ kp[13], ih15 FLbutton "Mute", 1, 0, 2, 70, 25, ix+80, iy+560, -1
+ ix += 200
+
+
+ xout ix, kp
+endop
+
+instr controller
+ ix = 0
+ iy = 0
+ FLpanel "FBMix", 1024, 600
+ ix, gkc1[] FLchannel ix, 1
+ ix, gkc2[] FLchannel ix, 2
+ ix, gkc3[] FLchannel ix, 3
+ ix, gkc4[] FLchannel ix, 4
+ FLpanelEnd
+ FLrun
+
+ event_i "i", "mixer", 0, p3
+endin
+
+
+
+instr mixer
+ icrosstalk[] fillarray 0.0001, 0.001
+ ain1 init 0
+ ain2 init 0
+ ain3 init 0
+ ain4 init 0
+
+ aout1 = fbk_channel(ain1, gkc1[0], gkc1[3], gkc1[2], gkc1[1], gkc1[9])
+ aout2 = fbk_channel(ain2, gkc2[0], gkc2[3], gkc2[2], gkc2[1], gkc2[9])
+ aout3 = fbk_channel(ain3, gkc3[0], gkc3[3], gkc3[2], gkc3[1], gkc3[9])
+ aout4 = fbk_channel(ain4, gkc4[0], gkc4[3], gkc4[2], gkc4[1], gkc4[9])
+ ain1 = 0
+ ain2 = 0
+ ain3 = 0
+ ain4 = 0
+
+ /* crosstalk */
+ ain1 += ain2 * random:k(icrosstalk[0], icrosstalk[1])
+ ain2 += (ain1 * random:k(icrosstalk[0], icrosstalk[1])) + (ain3 * random:k(icrosstalk[0], icrosstalk[1]))
+ ain3 += (ain2 * random:k(icrosstalk[0], icrosstalk[1])) + (ain4 * random:k(icrosstalk[0], icrosstalk[1]))
+ ain4 += ain3 * random:k(icrosstalk[0], icrosstalk[1])
+
+ /* sends chan 1 */
+ ain1 = ain1 + ((gkc1[8] == 1) ? aout1*gkc1[4] : aout1*gkc1[4]*gkc1[12])
+ ain2 = ain2 + aout1*gkc1[5]*gkc1[12]
+ if (gkc1[13] == 1) then
+ ain3 = ain3 + aout1
+ aout1 = 0
+ endif
+
+
+ /* sends chan 2 */
+ ain1 = ain1 + ((gkc2[8] == 1) ? aout2*gkc2[4] : aout2*gkc2[4]*gkc2[12])
+ ain2 = ain2 + aout2*gkc2[5]*gkc2[12]
+ if (gkc2[13] == 1) then
+ ain3 = ain3 + aout2
+ aout2 = 0
+ endif
+
+
+ /* sends chan 3 */
+ ain1 = ain1 + ((gkc3[8] == 1) ? aout3*gkc3[4] : aout3*gkc3[4]*gkc3[12])
+ ain2 = ain2 + aout3*gkc3[5]*gkc3[12]
+ ; ...
+
+ /* sends chan 4 */
+ ain1 = ain1 + ((gkc4[8] == 1) ? aout4*gkc4[4] : aout4*gkc4[4]*gkc4[12])
+ ain2 = ain2 + aout4*gkc4[5]*gkc4[12]
+ ; ...
+
+
+ aout = (aout1*gkc1[12]) + (aout2*gkc2[12]) + (aout3*gkc3[12]) + (aout4*gkc4[12])
+ aout *= 0.25
+ outs aout, aout
+endin
+
+</CsInstruments>
+<CsScore>
+i"controller" 0 3600
+</CsScore>
+</CsoundSynthesizer>
\ No newline at end of file |