/[svn]/linuxsampler/trunk/src/engines/sfz/SfzSignalUnitRack.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/sfz/SfzSignalUnitRack.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2223 by iliev, Fri Jul 29 13:39:58 2011 UTC revision 2224 by iliev, Mon Aug 1 19:08:09 2011 UTC
# Line 181  namespace LinuxSampler { namespace sfz { Line 181  namespace LinuxSampler { namespace sfz {
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) {
# Line 247  namespace LinuxSampler { namespace sfz { Line 263  namespace LinuxSampler { namespace sfz {
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            
# Line 290  namespace LinuxSampler { namespace sfz { Line 307  namespace LinuxSampler { namespace sfz {
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);
# Line 370  namespace LinuxSampler { namespace sfz { Line 388  namespace LinuxSampler { namespace sfz {
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                    

Legend:
Removed from v.2223  
changed lines
  Added in v.2224

  ViewVC Help
Powered by ViewVC