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

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

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

revision 2113 by persson, Sat Jan 30 10:30:02 2010 UTC revision 2114 by persson, Tue Aug 10 12:05:19 2010 UTC
# Line 34  namespace LinuxSampler { namespace sfz { Line 34  namespace LinuxSampler { namespace sfz {
34    
35      // TODO: add support for loops      // TODO: add support for loops
36      // TODO: optimization: use segment_lin for linear stages      // TODO: optimization: use segment_lin for linear stages
37        // TODO: support cancel_release events?
38    
39      void EG::update(event_t Event, uint SampleRate) {      void EG::update(event_t Event, uint SampleRate) {
40          if (atEnd(Event)) return;          if (atEnd(Event)) return;
41    
42            // ignore duplicated release events
43            if (Event == event_release) {
44                if (GotRelease) return;
45                GotRelease = true;
46            }
47    
48          if (Event == event_stage_end || Event == event_release) {          if (Event == event_stage_end || Event == event_release) {
49              if (Stage == eg->node.size() - 1) {              if (Stage == eg->node.size() - 1) {
50                  enterFadeOutStage();                  enterFadeOutStage();
# Line 83  namespace LinuxSampler { namespace sfz { Line 90  namespace LinuxSampler { namespace sfz {
90          Stage = 0;          Stage = 0;
91          this->eg = ⪚          this->eg = ⪚
92          TimeCoeff = exp(0.0054578518 * Velocity); // pow(2, Velcocity / 127)          TimeCoeff = exp(0.0054578518 * Velocity); // pow(2, Velcocity / 127)
93            GotRelease = false;
94    
95          enterFirstStage();          enterFirstStage();
96          update(event_stage_end, SampleRate);          update(event_stage_end, SampleRate);

Legend:
Removed from v.2113  
changed lines
  Added in v.2114

  ViewVC Help
Powered by ViewVC