1 |
/* |
/* |
2 |
* Copyright (C) 2006-2017 Andreas Persson |
* Copyright (C) 2006-2019 Andreas Persson |
3 |
* |
* |
4 |
* This program is free software; you can redistribute it and/or |
* This program is free software; you can redistribute it and/or |
5 |
* modify it under the terms of the GNU General Public License as |
* modify it under the terms of the GNU General Public License as |
272 |
eCrossfade_out_start(_("Crossfade-out start")), |
eCrossfade_out_start(_("Crossfade-out start")), |
273 |
eCrossfade_out_end(_("Crossfade-out end")), |
eCrossfade_out_end(_("Crossfade-out end")), |
274 |
ePitchTrack(_("Pitch track")), |
ePitchTrack(_("Pitch track")), |
275 |
|
eSustainReleaseTrigger(_("Sustain Release Trigger")), |
276 |
|
eNoNoteOffReleaseTrigger(_("No note-off release trigger")), |
277 |
eDimensionBypass(_("Dimension bypass")), |
eDimensionBypass(_("Dimension bypass")), |
278 |
ePan(_("Pan"), -64, 63), |
ePan(_("Pan"), -64, 63), |
279 |
eSelfMask(_("Kill lower velocity voices (a.k.a \"Self mask\")")), |
eSelfMask(_("Kill lower velocity voices (a.k.a \"Self mask\")")), |
321 |
&gig::DimensionRegion::EG1ControllerDecayInfluence); |
&gig::DimensionRegion::EG1ControllerDecayInfluence); |
322 |
connect(eEG1ControllerReleaseInfluence, |
connect(eEG1ControllerReleaseInfluence, |
323 |
&gig::DimensionRegion::EG1ControllerReleaseInfluence); |
&gig::DimensionRegion::EG1ControllerReleaseInfluence); |
324 |
{ |
connect(eEG1StateOptions.checkBoxAttack, &gig::DimensionRegion::EG1Options, |
325 |
ClassMemberPtr<gig::DimensionRegion, bool> mp(offsetof(gig::DimensionRegion, EG1Options.AttackCancel)); |
&gig::eg_opt_t::AttackCancel); |
326 |
connect(eEG1StateOptions.checkBoxAttack, mp.pmember); |
connect(eEG1StateOptions.checkBoxAttackHold, &gig::DimensionRegion::EG1Options, |
327 |
} |
&gig::eg_opt_t::AttackHoldCancel); |
328 |
{ |
connect(eEG1StateOptions.checkBoxDecay1, &gig::DimensionRegion::EG1Options, |
329 |
ClassMemberPtr<gig::DimensionRegion, bool> mp(offsetof(gig::DimensionRegion, EG1Options.AttackHoldCancel)); |
&gig::eg_opt_t::Decay1Cancel); |
330 |
connect(eEG1StateOptions.checkBoxAttackHold, mp.pmember); |
connect(eEG1StateOptions.checkBoxDecay2, &gig::DimensionRegion::EG1Options, |
331 |
} |
&gig::eg_opt_t::Decay2Cancel); |
332 |
{ |
connect(eEG1StateOptions.checkBoxRelease, &gig::DimensionRegion::EG1Options, |
333 |
ClassMemberPtr<gig::DimensionRegion, bool> mp(offsetof(gig::DimensionRegion, EG1Options.Decay1Cancel)); |
&gig::eg_opt_t::ReleaseCancel); |
|
connect(eEG1StateOptions.checkBoxDecay1, mp.pmember); |
|
|
} |
|
|
{ |
|
|
ClassMemberPtr<gig::DimensionRegion, bool> mp(offsetof(gig::DimensionRegion, EG1Options.Decay2Cancel)); |
|
|
connect(eEG1StateOptions.checkBoxDecay2, mp.pmember); |
|
|
} |
|
|
{ |
|
|
ClassMemberPtr<gig::DimensionRegion, bool> mp(offsetof(gig::DimensionRegion, EG1Options.ReleaseCancel)); |
|
|
connect(eEG1StateOptions.checkBoxRelease, mp.pmember); |
|
|
} |
|
334 |
connect(eLFO1Frequency, &gig::DimensionRegion::LFO1Frequency); |
connect(eLFO1Frequency, &gig::DimensionRegion::LFO1Frequency); |
335 |
connect(eLFO1InternalDepth, &gig::DimensionRegion::LFO1InternalDepth); |
connect(eLFO1InternalDepth, &gig::DimensionRegion::LFO1InternalDepth); |
336 |
connect(eLFO1ControlDepth, &gig::DimensionRegion::LFO1ControlDepth); |
connect(eLFO1ControlDepth, &gig::DimensionRegion::LFO1ControlDepth); |
352 |
&gig::DimensionRegion::EG2ControllerDecayInfluence); |
&gig::DimensionRegion::EG2ControllerDecayInfluence); |
353 |
connect(eEG2ControllerReleaseInfluence, |
connect(eEG2ControllerReleaseInfluence, |
354 |
&gig::DimensionRegion::EG2ControllerReleaseInfluence); |
&gig::DimensionRegion::EG2ControllerReleaseInfluence); |
355 |
{ |
connect(eEG2StateOptions.checkBoxAttack, &gig::DimensionRegion::EG2Options, |
356 |
ClassMemberPtr<gig::DimensionRegion, bool> mp(offsetof(gig::DimensionRegion, EG2Options.AttackCancel)); |
&gig::eg_opt_t::AttackCancel); |
357 |
connect(eEG2StateOptions.checkBoxAttack, mp.pmember); |
connect(eEG2StateOptions.checkBoxAttackHold, &gig::DimensionRegion::EG2Options, |
358 |
} |
&gig::eg_opt_t::AttackHoldCancel); |
359 |
{ |
connect(eEG2StateOptions.checkBoxDecay1, &gig::DimensionRegion::EG2Options, |
360 |
ClassMemberPtr<gig::DimensionRegion, bool> mp(offsetof(gig::DimensionRegion, EG2Options.AttackHoldCancel)); |
&gig::eg_opt_t::Decay1Cancel); |
361 |
connect(eEG2StateOptions.checkBoxAttackHold, mp.pmember); |
connect(eEG2StateOptions.checkBoxDecay2, &gig::DimensionRegion::EG2Options, |
362 |
} |
&gig::eg_opt_t::Decay2Cancel); |
363 |
{ |
connect(eEG2StateOptions.checkBoxRelease, &gig::DimensionRegion::EG2Options, |
364 |
ClassMemberPtr<gig::DimensionRegion, bool> mp(offsetof(gig::DimensionRegion, EG2Options.Decay1Cancel)); |
&gig::eg_opt_t::ReleaseCancel); |
|
connect(eEG2StateOptions.checkBoxDecay1, mp.pmember); |
|
|
} |
|
|
{ |
|
|
ClassMemberPtr<gig::DimensionRegion, bool> mp(offsetof(gig::DimensionRegion, EG2Options.Decay2Cancel)); |
|
|
connect(eEG2StateOptions.checkBoxDecay2, mp.pmember); |
|
|
} |
|
|
{ |
|
|
ClassMemberPtr<gig::DimensionRegion, bool> mp(offsetof(gig::DimensionRegion, EG2Options.ReleaseCancel)); |
|
|
connect(eEG2StateOptions.checkBoxRelease, mp.pmember); |
|
|
} |
|
365 |
connect(eLFO2Frequency, &gig::DimensionRegion::LFO2Frequency); |
connect(eLFO2Frequency, &gig::DimensionRegion::LFO2Frequency); |
366 |
connect(eLFO2InternalDepth, &gig::DimensionRegion::LFO2InternalDepth); |
connect(eLFO2InternalDepth, &gig::DimensionRegion::LFO2InternalDepth); |
367 |
connect(eLFO2ControlDepth, &gig::DimensionRegion::LFO2ControlDepth); |
connect(eLFO2ControlDepth, &gig::DimensionRegion::LFO2ControlDepth); |
409 |
connect(eCrossfade_out_start, &DimRegionEdit::set_Crossfade_out_start); |
connect(eCrossfade_out_start, &DimRegionEdit::set_Crossfade_out_start); |
410 |
connect(eCrossfade_out_end, &DimRegionEdit::set_Crossfade_out_end); |
connect(eCrossfade_out_end, &DimRegionEdit::set_Crossfade_out_end); |
411 |
connect(ePitchTrack, &gig::DimensionRegion::PitchTrack); |
connect(ePitchTrack, &gig::DimensionRegion::PitchTrack); |
412 |
|
connect(eSustainReleaseTrigger, &gig::DimensionRegion::SustainReleaseTrigger); |
413 |
|
connect(eNoNoteOffReleaseTrigger, &gig::DimensionRegion::NoNoteOffReleaseTrigger); |
414 |
connect(eDimensionBypass, &gig::DimensionRegion::DimensionBypass); |
connect(eDimensionBypass, &gig::DimensionRegion::DimensionBypass); |
415 |
connect(ePan, &gig::DimensionRegion::Pan); |
connect(ePan, &gig::DimensionRegion::Pan); |
416 |
connect(eSelfMask, &gig::DimensionRegion::SelfMask); |
connect(eSelfMask, &gig::DimensionRegion::SelfMask); |
876 |
|
|
877 |
addProp(eReleaseTriggerDecay); |
addProp(eReleaseTriggerDecay); |
878 |
{ |
{ |
879 |
|
const char* choices[] = { _("off"), _("on (max. velocity)"), _("on (key velocity)"), 0 }; |
880 |
|
static const gig::sust_rel_trg_t values[] = { |
881 |
|
gig::sust_rel_trg_none, |
882 |
|
gig::sust_rel_trg_maxvelocity, |
883 |
|
gig::sust_rel_trg_keyvelocity |
884 |
|
}; |
885 |
|
eSustainReleaseTrigger.set_choices(choices, values); |
886 |
|
} |
887 |
|
eSustainReleaseTrigger.set_tip(_( |
888 |
|
"By default release trigger samples are played on note-off events only. " |
889 |
|
"This option allows to play release trigger sample on sustain pedal up " |
890 |
|
"events as well. NOTE: This is a format extension!" |
891 |
|
)); |
892 |
|
addProp(eSustainReleaseTrigger); |
893 |
|
{ |
894 |
const char* choices[] = { _("none"), _("effect4depth"), _("effect5depth"), 0 }; |
const char* choices[] = { _("none"), _("effect4depth"), _("effect5depth"), 0 }; |
895 |
static const gig::dim_bypass_ctrl_t values[] = { |
static const gig::dim_bypass_ctrl_t values[] = { |
896 |
gig::dim_bypass_ctrl_none, |
gig::dim_bypass_ctrl_none, |
899 |
}; |
}; |
900 |
eDimensionBypass.set_choices(choices, values); |
eDimensionBypass.set_choices(choices, values); |
901 |
} |
} |
902 |
|
eNoNoteOffReleaseTrigger.set_tip(_( |
903 |
|
"By default release trigger samples are played on note-off events only. " |
904 |
|
"If this option is checked, then no release trigger sample is played " |
905 |
|
"when releasing a note. NOTE: This is a format extension!" |
906 |
|
)); |
907 |
|
addProp(eNoNoteOffReleaseTrigger); |
908 |
addProp(eDimensionBypass); |
addProp(eDimensionBypass); |
909 |
eSelfMask.widget.set_tooltip_text(_( |
eSelfMask.widget.set_tooltip_text(_( |
910 |
"If enabled: new notes with higher velocity value will stop older " |
"If enabled: new notes with higher velocity value will stop older " |
1268 |
eCrossfade_out_start.set_value(d->Crossfade.out_start); |
eCrossfade_out_start.set_value(d->Crossfade.out_start); |
1269 |
eCrossfade_out_end.set_value(d->Crossfade.out_end); |
eCrossfade_out_end.set_value(d->Crossfade.out_end); |
1270 |
ePitchTrack.set_value(d->PitchTrack); |
ePitchTrack.set_value(d->PitchTrack); |
1271 |
|
eSustainReleaseTrigger.set_value(d->SustainReleaseTrigger); |
1272 |
|
eNoNoteOffReleaseTrigger.set_value(d->NoNoteOffReleaseTrigger); |
1273 |
eDimensionBypass.set_value(d->DimensionBypass); |
eDimensionBypass.set_value(d->DimensionBypass); |
1274 |
ePan.set_value(d->Pan); |
ePan.set_value(d->Pan); |
1275 |
eSelfMask.set_value(d->SelfMask); |
eSelfMask.set_value(d->SelfMask); |