104 |
|
|
105 |
SignalUnit::Increment(); |
SignalUnit::Increment(); |
106 |
|
|
107 |
Level = lfo.render(); |
Level = pLFO->Render(); |
108 |
} |
} |
109 |
|
|
110 |
void LFOUnit::Trigger() { |
void LFOUnit::Trigger() { |
126 |
lfo.update(0); |
lfo.update(0); |
127 |
} |
} |
128 |
|
|
129 |
|
|
130 |
|
LFOv2Unit::LFOv2Unit(SfzSignalUnitRack* rack) |
131 |
|
: LFOUnit(rack), lfos(8), lfo0(1200.0f), lfo1(1200.0f), lfo2(1200.0f), |
132 |
|
lfo3(1200.0f), lfo4(1200.0f), lfo5(1200.0f), lfo6(1200.0f), lfo7(1200.0f) |
133 |
|
{ |
134 |
|
lfos.add(&lfo0); |
135 |
|
lfos.add(&lfo1); |
136 |
|
lfos.add(&lfo2); |
137 |
|
lfos.add(&lfo3); |
138 |
|
lfos.add(&lfo4); |
139 |
|
lfos.add(&lfo5); |
140 |
|
lfos.add(&lfo6); |
141 |
|
lfos.add(&lfo7); |
142 |
|
} |
143 |
|
|
144 |
void LFOv2Unit::Trigger() { |
void LFOv2Unit::Trigger() { |
145 |
LFOUnit::Trigger(); |
LFOUnit::Trigger(); |
146 |
|
|
147 |
lfo.trigger ( |
if (pLfoInfo->wave < 0 || pLfoInfo->wave >= lfos.size()) pLFO = &lfo0; |
148 |
|
else pLFO = lfos[pLfoInfo->wave]; |
149 |
|
|
150 |
|
pLFO->Trigger ( |
151 |
pLfoInfo->freq, |
pLfoInfo->freq, |
152 |
start_level_mid, |
start_level_mid, |
153 |
1, 0, false, GetSampleRate() |
1, 0, false, GetSampleRate() |
154 |
); |
); |
155 |
lfo.update(0); |
pLFO->Update(0); |
156 |
} |
} |
157 |
|
|
158 |
void AmpLFOUnit::Trigger() { |
void AmpLFOUnit::Trigger() { |
181 |
|
|
182 |
LFOv1Unit::Trigger(); |
LFOv1Unit::Trigger(); |
183 |
} |
} |
184 |
|
|
185 |
|
CCUnit::CCUnit(SfzSignalUnitRack* rack): CCSignalUnit(rack) { } |
186 |
|
|
187 |
|
void CCUnit::Trigger() { |
188 |
|
for (int i = 0; i < Ctrls.size(); i++) { |
189 |
|
Ctrls[i].Value = pVoice->GetControllerValue(Ctrls[i].Controller); |
190 |
|
} |
191 |
|
CCSignalUnit::Trigger(); |
192 |
|
} |
193 |
|
|
194 |
|
void CCUnit::SetCCs(::sfz::Array<int>& cc) { |
195 |
|
RemoveAllCCs(); |
196 |
|
for (int i = 0; i < 128; i++) { |
197 |
|
if (cc[i] != 0) AddCC(i, cc[i]); |
198 |
|
} |
199 |
|
} |
200 |
|
|
201 |
|
|
202 |
EndpointUnit::EndpointUnit(SfzSignalUnitRack* rack): EndpointSignalUnit(rack) { |
EndpointUnit::EndpointUnit(SfzSignalUnitRack* rack): EndpointSignalUnit(rack) { |
263 |
p = u->Active() ? RTMath::CentsToFreqRatioUnlimited(u->GetLevel() * u->depth) : 1; |
p = u->Active() ? RTMath::CentsToFreqRatioUnlimited(u->GetLevel() * u->depth) : 1; |
264 |
|
|
265 |
PitchLFOUnit* u2 = &(GetRack()->suPitchLFO); |
PitchLFOUnit* u2 = &(GetRack()->suPitchLFO); |
266 |
p *= u2->Active() ? RTMath::CentsToFreqRatioUnlimited(u2->GetLevel() * u2->pLfoInfo->pitch) : 1; |
CCSignalUnit* u3 = &(GetRack()->suPitchLFO.suDepthCC); |
267 |
|
float f = u3->Active() ? u3->GetLevel() : 0; |
268 |
|
p *= u2->Active() ? RTMath::CentsToFreqRatioUnlimited(u2->GetLevel() * (u2->pLfoInfo->pitch + f)) : 1; |
269 |
return p; |
return p; |
270 |
} |
} |
271 |
|
|
307 |
{ |
{ |
308 |
suEndpoint.pVoice = suVolEG.pVoice = suFilEG.pVoice = suPitchEG.pVoice = voice; |
suEndpoint.pVoice = suVolEG.pVoice = suFilEG.pVoice = suPitchEG.pVoice = voice; |
309 |
suAmpLFO.pVoice = suPitchLFO.pVoice = suFilLFO.pVoice = voice; |
suAmpLFO.pVoice = suPitchLFO.pVoice = suFilLFO.pVoice = voice; |
310 |
|
suPitchLFO.suDepthCC.pVoice = voice; |
311 |
|
|
312 |
for (int i = 0; i < EGs.capacity(); i++) { |
for (int i = 0; i < EGs.capacity(); i++) { |
313 |
EGs[i] = new EGv2Unit(this); |
EGs[i] = new EGv2Unit(this); |
388 |
} |
} |
389 |
} |
} |
390 |
|
|
391 |
|
suPitchLFO.suDepthCC.SetCCs(pRegion->pitchlfo_depthcc); |
392 |
|
|
393 |
Units.clear(); |
Units.clear(); |
394 |
|
|
395 |
Units.add(&suVolEG); |
Units.add(&suVolEG); |
396 |
Units.add(&suFilEG); |
Units.add(&suFilEG); |
397 |
Units.add(&suPitchEG); |
Units.add(&suPitchEG); |
398 |
Units.add(&suPitchLFO); |
Units.add(&suPitchLFO); |
399 |
|
Units.add(&suPitchLFO.suDepthCC); |
400 |
Units.add(&suAmpLFO); |
Units.add(&suAmpLFO); |
401 |
Units.add(&suFilLFO); |
Units.add(&suFilLFO); |
402 |
|
|