4 |
* * |
* * |
5 |
* Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck * |
* Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck * |
6 |
* Copyright (C) 2005-2008 Christian Schoenebeck * |
* Copyright (C) 2005-2008 Christian Schoenebeck * |
7 |
* Copyright (C) 2009-2011 Christian Schoenebeck and Grigor Iliev * |
* Copyright (C) 2009-2012 Christian Schoenebeck and Grigor Iliev * |
8 |
* * |
* * |
9 |
* This program is free software; you can redistribute it and/or modify * |
* This program is free software; you can redistribute it and/or modify * |
10 |
* 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 * |
84 |
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) |
85 |
int MIDIKey; ///< MIDI key number of the key that triggered the voice |
int MIDIKey; ///< MIDI key number of the key that triggered the voice |
86 |
uint8_t MIDIVelocity; ///< MIDI velocity of the key that triggered the voice |
uint8_t MIDIVelocity; ///< MIDI velocity of the key that triggered the voice |
87 |
uint8_t MIDIPan; ///< the current MIDI pan value |
int MIDIPan; ///< the current MIDI pan value plus the value from RegionInfo |
88 |
|
|
89 |
SignalUnitRack* const pSignalUnitRack; |
SignalUnitRack* const pSignalUnitRack; |
90 |
|
|
123 |
void UpdatePortamentoPos(Pool<Event>::Iterator& itNoteOffEvent); |
void UpdatePortamentoPos(Pool<Event>::Iterator& itNoteOffEvent); |
124 |
void Kill(Pool<Event>::Iterator& itKillEvent); |
void Kill(Pool<Event>::Iterator& itKillEvent); |
125 |
void CreateEq(); |
void CreateEq(); |
126 |
|
void onScaleTuningChanged(); |
127 |
|
|
128 |
bool Orphan; ///< true if this voice is playing a sample from an instrument that is unloaded. When the voice dies, the sample (and dimension region) will be handed back to the instrument resource manager. |
bool Orphan; ///< true if this voice is playing a sample from an instrument that is unloaded. When the voice dies, the sample (and dimension region) will be handed back to the instrument resource manager. |
129 |
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 |
294 |
|
|
295 |
virtual void GetFirstEventOnKey(uint8_t MIDIKey, RTList<Event>::Iterator& itEvent) = 0; |
virtual void GetFirstEventOnKey(uint8_t MIDIKey, RTList<Event>::Iterator& itEvent) = 0; |
296 |
virtual void ProcessCCEvent(RTList<Event>::Iterator& itEvent) = 0; |
virtual void ProcessCCEvent(RTList<Event>::Iterator& itEvent) = 0; |
297 |
|
virtual void ProcessChannelPressureEvent(RTList<Event>::Iterator& itEvent) = 0; |
298 |
|
virtual void ProcessPolyphonicKeyPressureEvent(RTList<Event>::Iterator& itEvent) = 0; |
299 |
virtual void ProcessCutoffEvent(RTList<Event>::Iterator& itEvent) = 0; |
virtual void ProcessCutoffEvent(RTList<Event>::Iterator& itEvent) = 0; |
300 |
virtual double GetVelocityRelease(uint8_t MIDIKeyVelocity) = 0; |
virtual double GetVelocityRelease(uint8_t MIDIKeyVelocity) = 0; |
301 |
|
|
303 |
|
|
304 |
virtual void ProcessGroupEvent(RTList<Event>::Iterator& itEvent) = 0; |
virtual void ProcessGroupEvent(RTList<Event>::Iterator& itEvent) = 0; |
305 |
void EnterReleaseStage(); |
void EnterReleaseStage(); |
306 |
|
|
307 |
|
virtual int CalculatePan(uint8_t pan) = 0; |
308 |
}; |
}; |
309 |
} // namespace LinuxSampler |
} // namespace LinuxSampler |
310 |
|
|