82 |
class AbstractVoice : public Voice { |
class AbstractVoice : public Voice { |
83 |
public: |
public: |
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 |
NoteBase* pNote; ///< Note this voice belongs to and was caused by. |
|
uint8_t MIDIVelocity; ///< MIDI velocity of the key that triggered the voice |
|
86 |
int MIDIPan; ///< the current MIDI pan value plus the value from RegionInfo |
int MIDIPan; ///< the current MIDI pan value plus the value from RegionInfo |
87 |
|
|
88 |
SignalUnitRack* const pSignalUnitRack; |
SignalUnitRack* const pSignalUnitRack; |
89 |
|
|
90 |
AbstractVoice(SignalUnitRack* pRack); |
AbstractVoice(SignalUnitRack* pRack); |
114 |
return (Controller > 128) ? 0 : pEngineChannel->ControllerTable[Controller]; |
return (Controller > 128) ? 0 : pEngineChannel->ControllerTable[Controller]; |
115 |
} |
} |
116 |
|
|
117 |
|
/// Keyboard key on which this voice should listen to transitional events (i.e. note-off events to release the voice). |
118 |
|
inline uint8_t HostKey() const { return pNote->hostKey; } |
119 |
|
/// Keyboard key which the voice should use for calculating any synthesis relevant parameters (i.e. pitch). |
120 |
|
inline uint8_t MIDIKey() const { return pNote->cause.Param.Note.Key; } |
121 |
|
/// MIDI note-on velocity value which the voice should use for calculating any synthesis relevant parameters (i.e. amplitude). |
122 |
|
inline uint8_t MIDIVelocity() const { return pNote->cause.Param.Note.Velocity; } |
123 |
|
|
124 |
void processCCEvents(RTList<Event>::Iterator& itEvent, uint End); |
void processCCEvents(RTList<Event>::Iterator& itEvent, uint End); |
125 |
void processPitchEvent(RTList<Event>::Iterator& itEvent); |
void processPitchEvent(RTList<Event>::Iterator& itEvent); |
126 |
void processResonanceEvent(RTList<Event>::Iterator& itEvent); |
void processResonanceEvent(RTList<Event>::Iterator& itEvent); |