204 |
* applied relatively against other sources (i.e. LFOs, EGs) |
* applied relatively against other sources (i.e. LFOs, EGs) |
205 |
* for the same synthesis parameter. |
* for the same synthesis parameter. |
206 |
*/ |
*/ |
207 |
SELF_RELATIVE, |
SELF_RELATIVE = 1, |
208 |
/** |
/** |
209 |
* The new synthesis paramater value of itself should be |
* The new synthesis paramater value of itself should be |
210 |
* replaced, and then applied relatively to other sources |
* replaced, and then applied relatively to other sources |
211 |
* (i.e. LFOs, EGs) for the same synthesis parameter. |
* (i.e. LFOs, EGs) for the same synthesis parameter. |
212 |
*/ |
*/ |
213 |
RELATIVE, |
RELATIVE = 0, //IMPORANT: must remain 0 because of the union structure below which would otherwise i.e. assign invalid pointers/IDs to Param.Note structure in Init() |
214 |
/** |
/** |
215 |
* The new synthesis parameter value should be applied |
* The new synthesis parameter value should be applied |
216 |
* relatively to itself (as normalized value range), and then |
* relatively to itself (as normalized value range), and then |
218 |
* of this synthesis chain, thus all other sources (i.e. LFOs, |
* of this synthesis chain, thus all other sources (i.e. LFOs, |
219 |
* EGs) should entirely be ignored. |
* EGs) should entirely be ignored. |
220 |
*/ |
*/ |
221 |
FINAL_SELF_RELATIVE, |
FINAL_SELF_RELATIVE = 2, |
222 |
/** |
/** |
223 |
* The new synthesis parameter value of itself should be |
* The new synthesis parameter value of itself should be |
224 |
* replaced, and then applied directly (as normalized value |
* replaced, and then applied directly (as normalized value |
225 |
* range) as final value of this synthesis chain, thus all other |
* range) as final value of this synthesis chain, thus all other |
226 |
* sources (i.e. LFOs, EGs) should entirely be ignored. |
* sources (i.e. LFOs, EGs) should entirely be ignored. |
227 |
*/ |
*/ |
228 |
FINAL_NORM, |
FINAL_NORM = 3, |
229 |
/** |
/** |
230 |
* Same as @c FINAL_NORM, but this one is already in the native |
* Same as @c FINAL_NORM, but this one is already in the native |
231 |
* unit (i.e. seconds, Hz) of this synthesis parameter. |
* unit (i.e. seconds, Hz) of this synthesis parameter. |
232 |
*/ |
*/ |
233 |
FINAL_NATIVE, |
FINAL_NATIVE = 4, |
234 |
}; |
}; |
235 |
union { |
union { |
236 |
/// Note-on and note-off event specifics |
/// Note-on and note-off event specifics |
286 |
MidiInputPort* pMidiInputPort; ///< Pointer to the MIDI input port on which this event occured (NOTE: currently only for global events, that is SysEx messages) |
MidiInputPort* pMidiInputPort; ///< Pointer to the MIDI input port on which this event occured (NOTE: currently only for global events, that is SysEx messages) |
287 |
|
|
288 |
inline void Init() { |
inline void Init() { |
289 |
|
//FIXME: probably we should memset() zero entire structure here, due to potential union initialization conflicts (see comment on ValueScope::RELATIVE) |
290 |
Param.Note.ID = 0; |
Param.Note.ID = 0; |
291 |
Param.Note.ParentNoteID = 0; |
Param.Note.ParentNoteID = 0; |
292 |
Param.NoteSynthParam.NoteID = 0; |
Param.NoteSynthParam.NoteID = 0; |