|
43 | 43 | vco(i_cv_pitch , btn) = internal_vco |
44 | 44 | with |
45 | 45 | { |
46 | | - freq = i_cv_pitch : rack.i_cv_pitch2freq; |
| 46 | + freq = i_cv_pitch : |
| 47 | + rack.i_cv_pitch2freq; |
47 | 48 |
|
48 | | - internal_vco = (freq : os.saw2) , (freq : os.square) , (freq : os.triangle) : ba.selectn(3 , btn); |
| 49 | + internal_vco = freq <: |
| 50 | + os.saw2 , os.square , os.triangle : |
| 51 | + ba.selectn(3 , btn); |
49 | 52 | }; |
50 | 53 |
|
51 | 54 |
|
52 | 55 | vcf(i_cv_cutoff , i_cv_resonance , btn , in) = internal_vcf |
53 | 56 | with |
54 | 57 | { |
55 | | - cutoff = (i_cv_cutoff * 1.5) - 0.5 : rack.i_cv_pitch2freq; |
56 | | - cutoff_limited = min(cutoff , (ma.SR / 2)); |
| 58 | + cutoff = i_cv_cutoff * 1.5 - 0.5 : |
| 59 | + rack.i_cv_pitch2freq; |
| 60 | + cutoff_limited = min(cutoff , ma.SR / 2); |
57 | 61 | resonance = max(i_cv_resonance * 5 , 0.1); |
58 | 62 | gain = 1; |
59 | 63 |
|
60 | | - internal_vcf = (cutoff_limited , resonance , gain , in : fi.resonhp) , |
61 | | - (cutoff_limited , resonance , gain , in : fi.resonlp) : |
| 64 | + internal_vcf = cutoff_limited , resonance , gain , in <: |
| 65 | + fi.resonhp , fi.resonlp : |
62 | 66 | ba.selectn(2 , btn); |
63 | 67 | }; |
64 | 68 |
|
65 | 69 |
|
66 | | -voices(i_cv_pitch , i_cv_cutoff , i_cv_resonance) = internal_voices |
| 70 | +voice(i_cv_pitch , volume, knob_coarse , knob_fine, btn_waveform) = internal_voice |
67 | 71 | with |
68 | 72 | { |
69 | | - i_cv_pitch_coarse_1 = int((knob_1 * 48) - 12) / 60 : si.smooth(1e-3); |
70 | | - i_cv_pitch_fine_1 = (knob_2 - 0.5) / 30 : si.smooth(1e-3); |
71 | | - |
72 | | - i_cv_pitch_coarse_2 = int((knob_3 * 48) - 12) / 60 : si.smooth(1e-3); |
73 | | - i_cv_pitch_fine_2 = (knob_4 - 0.5) / 30 : si.smooth(1e-3); |
| 73 | + i_cv_pitch_coarse = int(knob_coarse * 48 - 12) / 60; |
| 74 | + i_cv_pitch_fine = (knob_fine - 0.5) / 30; |
| 75 | + i_cv_pitch_final = i_cv_pitch + (i_cv_pitch_coarse + i_cv_pitch_fine : si.smooth(1e-3)); |
74 | 76 |
|
75 | | - i_cv_pitch_coarse_3 = int((knob_5 * 48) - 12) / 60 : si.smooth(1e-3); |
76 | | - i_cv_pitch_fine_3 = (knob_6 - 0.5) / 30 : si.smooth(1e-3); |
| 77 | + internal_voice = i_cv_pitch_final , btn_waveform : |
| 78 | + volume , vco : |
| 79 | + vca; |
| 80 | +}; |
77 | 81 |
|
78 | | - i_cv_pitch_final_1 = i_cv_pitch + i_cv_pitch_coarse_1 + i_cv_pitch_fine_1; |
79 | | - i_cv_pitch_final_2 = i_cv_pitch + i_cv_pitch_coarse_2 + i_cv_pitch_fine_2; |
80 | | - i_cv_pitch_final_3 = i_cv_pitch + i_cv_pitch_coarse_3 + i_cv_pitch_fine_3; |
81 | 82 |
|
82 | | - i_cv_cutoff_knob = knob_7 : si.smooth(1e-3); |
83 | | - i_cv_cutoff_final = i_cv_cutoff + i_cv_cutoff_knob; |
| 83 | +voices(i_cv_pitch , i_cv_cutoff , i_cv_resonance) = internal_voices |
| 84 | +with |
| 85 | +{ |
| 86 | + volume = -18 : ba.db2linear; |
84 | 87 |
|
85 | | - i_cv_resonance_knob = knob_8 : si.smooth(1e-3); |
86 | | - i_cv_resonance_final = i_cv_resonance + i_cv_resonance_knob; |
| 88 | + voice_1 = voice(i_cv_pitch , volume , knob_1 , knob_2 , button_1 * 2); |
| 89 | + voice_2 = voice(i_cv_pitch , volume , knob_3 , knob_4 , button_2 * 2); |
| 90 | + voice_3 = voice(i_cv_pitch , volume , knob_5 , knob_6 , button_3 * 2 + 1); |
87 | 91 |
|
88 | | - voice(i_cv_pitch , btn) = i_cv_pitch , btn : (-18 : ba.db2linear) , vco : vca; |
89 | | - mix(a1 , a2 , a3) = a1 + a2 + a3; |
| 92 | + i_cv_cutoff_final = i_cv_cutoff + (knob_7 : si.smooth(1e-3)); |
| 93 | + i_cv_resonance_final = i_cv_resonance + (knob_8 : si.smooth(1e-3)); |
90 | 94 |
|
91 | | - internal_voices = (i_cv_pitch_final_1 , (button_1 , 2 : *) : voice), |
92 | | - (i_cv_pitch_final_2 , (button_2 , 2 : *) : voice) , |
93 | | - (i_cv_pitch_final_3 , (button_3 , 2 : * , 1 : +) : voice) : mix : |
94 | | - i_cv_cutoff_final , i_cv_resonance_final , (button_4 , 2 : *) , _ : vcf : |
95 | | - 0.3 , 0.1 , _ : ef.cubicnl : fi.dcblocker; |
| 95 | + internal_voices = voice_1 + voice_2 + voice_3 : |
| 96 | + i_cv_cutoff_final , i_cv_resonance_final , button_4 * 2 , _ : vcf : |
| 97 | + 0.3 , 0.1 , _ : ef.cubicnl : |
| 98 | + fi.dcblocker; |
96 | 99 | }; |
97 | 100 |
|
98 | 101 |
|
|
154 | 157 | attach(_ , 0 : led_8_b) : |
155 | 158 | _; |
156 | 159 |
|
157 | | - internal_processor = (in1 : gui_attacher) , in2 , in3 : voices : _ , in2 , in3 , in4 , in5 , in6 , in7 , in8 : si.bus(8); |
| 160 | + internal_processor = (in1 : gui_attacher) , in2 , in3 : |
| 161 | + voices : |
| 162 | + _ , in2 , in3 , in4 , in5 , in6 , in7 , in8 : |
| 163 | + si.bus(8); |
158 | 164 | }; |
0 commit comments