/[svn]/linuxsampler/trunk/src/engines/common/AbstractVoice.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/common/AbstractVoice.h

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

revision 3306 by schoenebeck, Tue Jul 11 15:50:05 2017 UTC revision 3612 by schoenebeck, Mon Sep 30 18:03:43 2019 UTC
# Line 39  Line 39 
39  #include "../gig/Synthesizer.h"  #include "../gig/Synthesizer.h"
40  #include "../gig/Profiler.h"  #include "../gig/Profiler.h"
41  #include "SignalUnitRack.h"  #include "SignalUnitRack.h"
42    #include "LFOAll.h"
 // include the appropriate (unsigned) triangle LFO implementation  
 #if CONFIG_UNSIGNED_TRIANG_ALGO == INT_MATH_SOLUTION  
 # include "LFOTriangleIntMath.h"  
 #elif CONFIG_UNSIGNED_TRIANG_ALGO == INT_ABS_MATH_SOLUTION  
 # include "LFOTriangleIntAbsMath.h"  
 #elif CONFIG_UNSIGNED_TRIANG_ALGO == DI_HARMONIC_SOLUTION  
 # include "LFOTriangleDiHarmonic.h"  
 #else  
 # error "Unknown or no (unsigned) triangle LFO implementation selected!"  
 #endif  
   
 // include the appropriate (signed) triangle LFO implementation  
 #if CONFIG_SIGNED_TRIANG_ALGO == INT_MATH_SOLUTION  
 # include "LFOTriangleIntMath.h"  
 #elif CONFIG_SIGNED_TRIANG_ALGO == INT_ABS_MATH_SOLUTION  
 # include "LFOTriangleIntAbsMath.h"  
 #elif CONFIG_SIGNED_TRIANG_ALGO == DI_HARMONIC_SOLUTION  
 # include "LFOTriangleDiHarmonic.h"  
 #else  
 # error "Unknown or no (signed) triangle LFO implementation selected!"  
 #endif  
43    
44  namespace LinuxSampler {  namespace LinuxSampler {
45    
     #if CONFIG_UNSIGNED_TRIANG_ALGO == INT_MATH_SOLUTION  
     typedef LFOTriangleIntMath<range_unsigned> LFOUnsigned;  
     #elif CONFIG_UNSIGNED_TRIANG_ALGO == INT_ABS_MATH_SOLUTION  
     typedef LFOTriangleIntAbsMath<range_unsigned> LFOUnsigned;  
     #elif CONFIG_UNSIGNED_TRIANG_ALGO == DI_HARMONIC_SOLUTION  
     typedef LFOTriangleDiHarmonic<range_unsigned> LFOUnsigned;  
     #endif  
   
     #if CONFIG_SIGNED_TRIANG_ALGO == INT_MATH_SOLUTION  
     typedef LFOTriangleIntMath<range_signed> LFOSigned;  
     #elif CONFIG_SIGNED_TRIANG_ALGO == INT_ABS_MATH_SOLUTION  
     typedef LFOTriangleIntAbsMath<range_signed> LFOSigned;  
     #elif CONFIG_SIGNED_TRIANG_ALGO == DI_HARMONIC_SOLUTION  
     typedef LFOTriangleDiHarmonic<range_signed> LFOSigned;  
     #endif  
   
46      class AbstractVoice : public Voice {      class AbstractVoice : public Voice {
47          public:          public:
48              type_t       Type;         ///< Voice Type (bit field, a voice may have several types)              type_t       Type;         ///< Voice Type (bit field, a voice may have several types)
# Line 108  namespace LinuxSampler { Line 71  namespace LinuxSampler {
71              virtual void VoiceFreed() { }              virtual void VoiceFreed() { }
72    
73              virtual void Synthesize(uint Samples, sample_t* pSrc, uint Skip);              virtual void Synthesize(uint Samples, sample_t* pSrc, uint Skip);
74                
75                virtual release_trigger_t GetReleaseTriggerFlags() = 0;
76    
77              uint GetSampleRate() { return GetEngine()->SampleRate; }              uint GetSampleRate() { return GetEngine()->SampleRate; }
78                            
79              uint8_t GetControllerValue(uint8_t Controller) {              uint8_t GetControllerValue(uint8_t Controller) {
# Line 154  namespace LinuxSampler { Line 119  namespace LinuxSampler {
119              float                       CutoffBase;         ///< Cutoff frequency before control change, EG and LFO are applied              float                       CutoffBase;         ///< Cutoff frequency before control change, EG and LFO are applied
120              float                       VolumeLeft;         ///< Left channel volume. This factor is calculated when the voice is triggered and doesn't change after that.              float                       VolumeLeft;         ///< Left channel volume. This factor is calculated when the voice is triggered and doesn't change after that.
121              float                       VolumeRight;        ///< Right channel volume. This factor is calculated when the voice is triggered and doesn't change after that.              float                       VolumeRight;        ///< Right channel volume. This factor is calculated when the voice is triggered and doesn't change after that.
122              float                       NotePanLeft;        ///< Updated by calls to built-in instrument script function change_pan() (defaults to 1.0, that is neutral).              Fade                        NotePan[2];         ///< Updated by calls to built-in instrument script function change_pan() (defaults to 1.0, that is neutral, index 0 for left pan, index 1 for right).
123              float                       NotePanRight;       ///< Updated by calls to built-in instrument script function change_pan() (defaults to 1.0, that is neutral).              NoteBase::Norm              NoteCutoff;         ///< Updated by calls to built-in instrument script function change_cutoff() (defaults to 1.0, that is neutral).
124              float                       NoteCutoff;         ///< Updated by calls to built-in instrument script function change_cutoff() (defaults to 1.0, that is neutral).              NoteBase::Norm              NoteResonance;      ///< Updated by calls to built-in instrument script function change_reso() (defaults to 1.0, that is neutral).
             float                       NoteResonance;      ///< Updated by calls to built-in instrument script function change_reso() (defaults to 1.0, that is neutral).  
125              gig::SmoothVolume           CrossfadeSmoother;  ///< Crossfade volume, updated by crossfade CC events              gig::SmoothVolume           CrossfadeSmoother;  ///< Crossfade volume, updated by crossfade CC events
126              gig::SmoothVolume           VolumeSmoother;     ///< Volume, updated by CC 7 (volume) events              gig::SmoothVolume           VolumeSmoother;     ///< Volume, updated by CC 7 (volume) events
127              gig::SmoothVolume           PanLeftSmoother;    ///< Left channel volume, updated by CC 10 (pan) events and change_pan() real-time instrument script calls.              gig::SmoothVolume           PanLeftSmoother;    ///< Left channel volume, updated by CC 10 (pan) events and change_pan() real-time instrument script calls.

Legend:
Removed from v.3306  
changed lines
  Added in v.3612

  ViewVC Help
Powered by ViewVC