aboutsummaryrefslogtreecommitdiff
path: root/site/udo/_TESTS/mixer_emulator.csd
blob: 7f8fe3e28ae224f09bf5151453250a4826930fa3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<CsoundSynthesizer>
<CsOptions>
-odac8
;--env:INCDIR="D:/Documents/Csound/_UDO"
--omacro:HOST=AUDIO
;-m0
</CsOptions>
<CsInstruments>
sr = 48000
kr = 48000
nchnls = 2
0dbfs  = 1
seed 0

#include "feedback.udo"

gimaxeq init 1.5
gimaxsend init 1.5
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 "Pre", 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
	ain1 init 0
	ain2 init 0
	ain3 init 0
	ain4 init 0
	
	aout1 = (gkc1[13] == 0) ? fbk_channel(ain1, gkc1[0], gkc1[3], gkc1[2], gkc1[1], gkc1[8]) : 0
	aout2 = (gkc2[13] == 0) ? fbk_channel(ain2, gkc2[0], gkc2[3], gkc2[2], gkc2[1], gkc2[8]) : 0
	aout3 = (gkc3[13] == 0) ? fbk_channel(ain3, gkc3[0], gkc3[3], gkc3[2], gkc3[1], gkc3[8]) : 0
	aout4 = (gkc4[13] == 0) ? fbk_channel(ain4, gkc4[0], gkc4[3], gkc4[2], gkc4[1], gkc4[8]) : 0
	ain1 = 0
	ain2 = 0
	ain3 = 0
	ain4 = 0

	/* sends 1 */
	ain1 = ain1 + ((gkc1[8] == 1) ? aout1*gkc1[4] : aout1*gkc1[4]*gkc1[12])
	ain2 = ain2 + ((gkc1[9] == 1) ? aout1*gkc1[5] : aout1*gkc1[5]*gkc1[12])
	ain3 = ain3 + ((gkc1[10] == 1) ? aout1*gkc1[6] : aout1*gkc1[6]*gkc1[12])
	ain4 = ain4 + ((gkc1[11] == 1) ? aout1*gkc1[7] : aout1*gkc1[7]*gkc1[12])

	/* sends 2 */
	ain1 = ain1 + ((gkc2[8] == 1) ? aout2*gkc2[4] : aout1*gkc2[4]*gkc2[12])
	ain2 = ain2 + ((gkc2[9] == 1) ? aout2*gkc2[5] : aout1*gkc2[5]*gkc2[12])
	ain3 = ain3 + ((gkc2[10] == 1) ? aout2*gkc2[6] : aout1*gkc2[6]*gkc2[12])
	ain4 = ain4 + ((gkc2[11] == 1) ? aout2*gkc2[7] : aout1*gkc2[7]*gkc2[12])

	/* sends 3 */
	ain1 = ain1 + ((gkc3[8] == 1) ? aout3*gkc3[4] : aout1*gkc3[4]*gkc3[12])
	ain2 = ain2 + ((gkc3[9] == 1) ? aout3*gkc3[5] : aout1*gkc3[5]*gkc3[12])
	ain3 = ain3 + ((gkc3[10] == 1) ? aout3*gkc3[6] : aout1*gkc3[6]*gkc3[12])
	ain4 = ain4 + ((gkc3[11] == 1) ? aout3*gkc3[7] : aout1*gkc3[7]*gkc3[12])

	/* sends 4 */
	ain1 = ain1 + ((gkc4[8] == 1) ? aout4*gkc4[4] : aout1*gkc4[4]*gkc4[12])
	ain2 = ain2 + ((gkc4[9] == 1) ? aout4*gkc4[5] : aout1*gkc4[5]*gkc4[12])
	ain3 = ain3 + ((gkc4[10] == 1) ? aout4*gkc4[6] : aout1*gkc4[6]*gkc4[12])
	ain4 = ain4 + ((gkc4[11] == 1) ? aout4*gkc4[7] : aout1*gkc4[7]*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>