/[svn]/linuxsampler/trunk/src/engines/gig/EGADSR.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/gig/EGADSR.h

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

revision 53 by schoenebeck, Mon Apr 26 17:15:51 2004 UTC revision 273 by schoenebeck, Fri Oct 8 21:04:51 2004 UTC
# Line 2  Line 2 
2   *                                                                         *   *                                                                         *
3   *   LinuxSampler - modular, streaming capable sampler                     *   *   LinuxSampler - modular, streaming capable sampler                     *
4   *                                                                         *   *                                                                         *
5   *   Copyright (C) 2003 by Benno Senoner and Christian Schoenebeck         *   *   Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck   *
6   *                                                                         *   *                                                                         *
7   *   This program is free software; you can redistribute it and/or modify  *   *   This program is free software; you can redistribute it and/or modify  *
8   *   it under the terms of the GNU General Public License as published by  *   *   it under the terms of the GNU General Public License as published by  *
# Line 27  Line 27 
27    
28  #include "../../common/global.h"  #include "../../common/global.h"
29  #include "../../common/RTMath.h"  #include "../../common/RTMath.h"
30  #include "../../common/RTELMemoryPool.h"  #include "../../common/Pool.h"
31  #include "../common/Event.h"  #include "../common/Event.h"
32  #include "Manipulator.h"  #include "Manipulator.h"
33  #include "Engine.h"  #include "Engine.h"
34    
35  #define EG_ENVELOPE_LIMIT       0.001  #define EG_ENVELOPE_LIMIT       0.001
36  #define EG_MIN_RELEASE_TIME     0.005  #define EG_MIN_RELEASE_TIME     0.0001
37    
38  namespace LinuxSampler { namespace gig {  namespace LinuxSampler { namespace gig {
39    
# Line 53  class EGADSR { Line 53  class EGADSR {
53              stage_decay2,              stage_decay2,
54              stage_sustain,              stage_sustain,
55              stage_release,              stage_release,
56                stage_fadeout,
57              stage_end              stage_end
58          };          };
59    
60          EGADSR(gig::Engine* pEngine, Event::destination_t ModulationDestination);          EGADSR(gig::Engine* pEngine, Event::destination_t ModulationDestination);
61          void Process(uint Samples, RTEList<Event>* pEvents, Event* pTriggerEvent, double SamplePos, double CurrentPitch);          void Process(uint TotalSamples, RTList<Event>* pEvents, RTList<Event>::Iterator itTriggerEvent, double SamplePos, double CurrentPitch, RTList<Event>::Iterator itKillEvent = RTList<Event>::Iterator());
62          void Trigger(uint PreAttack, double AttackTime, bool HoldAttack, long LoopStart, double Decay1Time, double Decay2Time, bool InfiniteSustain, uint SustainLevel, double ReleaseTime, uint Delay);          void Trigger(uint PreAttack, double AttackTime, bool HoldAttack, long LoopStart, double Decay1Time, double Decay2Time, bool InfiniteSustain, uint SustainLevel, double ReleaseTime, uint Delay);
63          inline EGADSR::stage_t GetStage() { return Stage; }          inline EGADSR::stage_t GetStage() { return Stage; }
64      protected:      protected:
# Line 78  class EGADSR { Line 79  class EGADSR {
79          float   ReleaseCoeff;          float   ReleaseCoeff;
80          long    ReleaseStepsLeft;  ///< number of sample points til end of release stage          long    ReleaseStepsLeft;  ///< number of sample points til end of release stage
81          bool    ReleasePostponed;  ///< If a "release" event occured in the previous audio fragment, but wasn't processed yet.          bool    ReleasePostponed;  ///< If a "release" event occured in the previous audio fragment, but wasn't processed yet.
82            const static float FadeOutCoeff;
83        private:
84            static float CalculateFadeOutCoeff();
85  };  };
86    
87  }} // namespace LinuxSampler::gig  }} // namespace LinuxSampler::gig

Legend:
Removed from v.53  
changed lines
  Added in v.273

  ViewVC Help
Powered by ViewVC