108 |
double Pos; ///< Current playback position in sample |
double Pos; ///< Current playback position in sample |
109 |
float PitchBase; ///< Basic pitch depth, stays the same for the whole life time of the voice |
float PitchBase; ///< Basic pitch depth, stays the same for the whole life time of the voice |
110 |
float PitchBend; ///< Current pitch value of the pitchbend wheel |
float PitchBend; ///< Current pitch value of the pitchbend wheel |
111 |
|
float CutoffBase; ///< Cutoff frequency before control change, EG and LFO are applied |
112 |
::gig::Sample* pSample; ///< Pointer to the sample to be played back |
::gig::Sample* pSample; ///< Pointer to the sample to be played back |
113 |
::gig::DimensionRegion* pDimRgn; ///< Pointer to the articulation information of current dimension region of this voice |
::gig::DimensionRegion* pDimRgn; ///< Pointer to the articulation information of current dimension region of this voice |
114 |
playback_state_t PlaybackState; ///< When a sample will be triggered, it will be first played from RAM cache and after a couple of sample points it will switch to disk streaming and at the end of a disk stream we have to add null samples, so the interpolator can do it's work correctly |
playback_state_t PlaybackState; ///< When a sample will be triggered, it will be first played from RAM cache and after a couple of sample points it will switch to disk streaming and at the end of a disk stream we have to add null samples, so the interpolator can do it's work correctly |
135 |
LFO<gig::VCAManipulator>* pLFO1; ///< Low Frequency Oscillator 1 (Amplification) |
LFO<gig::VCAManipulator>* pLFO1; ///< Low Frequency Oscillator 1 (Amplification) |
136 |
LFO<gig::VCFCManipulator>* pLFO2; ///< Low Frequency Oscillator 2 (Filter cutoff frequency) |
LFO<gig::VCFCManipulator>* pLFO2; ///< Low Frequency Oscillator 2 (Filter cutoff frequency) |
137 |
LFO<gig::VCOManipulator>* pLFO3; ///< Low Frequency Oscillator 3 (Pitch) |
LFO<gig::VCOManipulator>* pLFO3; ///< Low Frequency Oscillator 3 (Pitch) |
138 |
|
bool bLFO1Enabled; ///< Should we use the Amplitude LFO for this voice? |
139 |
|
bool bLFO2Enabled; ///< Should we use the Filter Cutoff LFO for this voice? |
140 |
|
bool bLFO3Enabled; ///< Should we use the Pitch LFO for this voice? |
141 |
Pool<Event>::Iterator itTriggerEvent; ///< First event on the key's list the voice should process (only needed for the first audio fragment in which voice was triggered, after that it will be set to NULL). |
Pool<Event>::Iterator itTriggerEvent; ///< First event on the key's list the voice should process (only needed for the first audio fragment in which voice was triggered, after that it will be set to NULL). |
142 |
//public: // FIXME: just made public for debugging (sanity check in Engine::RenderAudio()), should be changed to private before the final release |
//public: // FIXME: just made public for debugging (sanity check in Engine::RenderAudio()), should be changed to private before the final release |
143 |
Pool<Event>::Iterator itKillEvent; ///< Event which caused this voice to be killed |
Pool<Event>::Iterator itKillEvent; ///< Event which caused this voice to be killed |