414 |
void serialize(Serialization::Archive* archive); |
void serialize(Serialization::Archive* archive); |
415 |
}; |
}; |
416 |
|
|
417 |
|
/** @brief Defines behaviour of release triggered sample(s) on sustain pedal up event. |
418 |
|
* |
419 |
|
* This option defines whether a sustain pedal up event (CC#64) would cause |
420 |
|
* release triggered samples to be played (if any). |
421 |
|
* |
422 |
|
* @b Note: This option is an extension to the original gig file format, |
423 |
|
* so this option is not available with the original Gigasampler/GigaStudio |
424 |
|
* software! Currently only LinuxSampler and gigedit support this option! |
425 |
|
* |
426 |
|
* By default (which equals the original Gigasampler/GigaStudio behaviour) |
427 |
|
* no release triggered samples are played if the sustain pedal is released. |
428 |
|
* So usually in the gig format release triggered samples are only played |
429 |
|
* on MIDI note-off events. |
430 |
|
* |
431 |
|
* @see enumCount(), enumKey(), enumKeys(), enumValue() |
432 |
|
*/ |
433 |
|
GIG_DECLARE_ENUM(sust_rel_trg_t, |
434 |
|
sust_rel_trg_none = 0x00, /**< No release triggered sample(s) are played on sustain pedal up (default). */ |
435 |
|
sust_rel_trg_maxvelocity = 0x01, /**< Play release trigger sample(s) on sustain pedal up, and simply use 127 as MIDI velocity for playback. */ |
436 |
|
sust_rel_trg_keyvelocity = 0x02, /**< Play release trigger sample(s) on sustain pedal up, and use the key's last MIDI note-on velocity for playback. */ |
437 |
|
); |
438 |
|
|
439 |
// just symbol prototyping |
// just symbol prototyping |
440 |
class File; |
class File; |
441 |
class Instrument; |
class Instrument; |
576 |
uint8_t DimensionUpperLimits[8]; ///< gig3: defines the upper limit of the dimension values for this dimension region. In case you wondered why this is defined on DimensionRegion level and not on Region level: the zone sizes (upper limits) of the velocity dimension can indeed differ in the individual dimension regions, depending on which zones of the other dimension types are currently selected. So this is exceptional for the velocity dimension only. All other dimension types have the same dimension zone sizes for every single DimensionRegion (of the sample Region). |
uint8_t DimensionUpperLimits[8]; ///< gig3: defines the upper limit of the dimension values for this dimension region. In case you wondered why this is defined on DimensionRegion level and not on Region level: the zone sizes (upper limits) of the velocity dimension can indeed differ in the individual dimension regions, depending on which zones of the other dimension types are currently selected. So this is exceptional for the velocity dimension only. All other dimension types have the same dimension zone sizes for every single DimensionRegion (of the sample Region). |
577 |
eg_opt_t EG1Options; ///< [gig extension]: Behavior options which should be used for envelope generator 1 (volume amplitude EG). |
eg_opt_t EG1Options; ///< [gig extension]: Behavior options which should be used for envelope generator 1 (volume amplitude EG). |
578 |
eg_opt_t EG2Options; ///< [gig extension]: Behavior options which should be used for envelope generator 2 (filter cutoff EG). |
eg_opt_t EG2Options; ///< [gig extension]: Behavior options which should be used for envelope generator 2 (filter cutoff EG). |
579 |
|
sust_rel_trg_t SustainReleaseTrigger; ///< [gig extension]: Whether a sustain pedal up event shall play release trigger sample. |
580 |
|
|
581 |
// derived attributes from DLS::Sampler |
// derived attributes from DLS::Sampler |
582 |
using DLS::Sampler::UnityNote; |
using DLS::Sampler::UnityNote; |