zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit e304c61f051c56ad3a83c7076c71f619e1fceb1a
parent 59abef3bd13487a772bca9f2ebe51bb60126c2be
Author: Johannes Lorenz <johannes89@ist-einmalig.de>
Date:   Wed,  8 Nov 2017 19:43:14 +0100

rPreset fixes and improvements

Diffstat:
Msrc/Effects/EffectMgr.cpp | 2+-
Msrc/Params/ADnoteParameters.cpp | 32++++++++++++++++----------------
Msrc/Params/EnvelopeParams.cpp | 37++++++++++++++++++-------------------
Msrc/Params/FilterParams.cpp | 28++++++++++++++--------------
Msrc/Params/LFOParams.cpp | 47++++++++++++++++++++++++-----------------------
Msrc/Params/PADnoteParameters.cpp | 14+++++++-------
Msrc/Params/Presets.h | 24++++++++++++------------
Msrc/Params/SUBnoteParameters.cpp | 10+++++-----
8 files changed, 97 insertions(+), 97 deletions(-)

diff --git a/src/Effects/EffectMgr.cpp b/src/Effects/EffectMgr.cpp @@ -169,7 +169,7 @@ EffectMgr::EffectMgr(Allocator &alloc, const SYNTH_T &synth_, :insertion(insertion_), efxoutl(new float[synth_.buffersize]), efxoutr(new float[synth_.buffersize]), - filterpars(new FilterParams(loc_effect, time_)), + filterpars(new FilterParams(in_effect, time_)), nefx(0), efx(NULL), time(time_), diff --git a/src/Params/ADnoteParameters.cpp b/src/Params/ADnoteParameters.cpp @@ -413,17 +413,17 @@ ADnoteGlobalParam::ADnoteGlobalParam(const AbsTime *time_) : time(time_), last_update_timestamp(0) { FreqEnvelope = new EnvelopeParams(0, 0, time_); - FreqEnvelope->init(loc_ad_global_freq); - FreqLfo = new LFOParams(loc_ad_global_freq, time_); + FreqEnvelope->init(ad_global_freq); + FreqLfo = new LFOParams(ad_global_freq, time_); AmpEnvelope = new EnvelopeParams(64, 1, time_); - AmpEnvelope->init(loc_ad_global_amp); - AmpLfo = new LFOParams(loc_ad_global_amp, time_); + AmpEnvelope->init(ad_global_amp); + AmpLfo = new LFOParams(ad_global_amp, time_); - GlobalFilter = new FilterParams(loc_ad_global_filter, time_); + GlobalFilter = new FilterParams(ad_global_filter, time_); FilterEnvelope = new EnvelopeParams(0, 1, time_); - FilterEnvelope->init(loc_ad_global_filter); - FilterLfo = new LFOParams(loc_ad_global_filter, time_); + FilterEnvelope->init(ad_global_filter); + FilterLfo = new LFOParams(ad_global_filter, time_); Reson = new Resonance(); } @@ -569,22 +569,22 @@ void ADnoteVoiceParam::enable(const SYNTH_T &synth, FFTwrapper *fft, FMSmp = new OscilGen(synth, fft, NULL); AmpEnvelope = new EnvelopeParams(64, 1, time); - AmpEnvelope->init(loc_ad_voice_amp); - AmpLfo = new LFOParams(loc_ad_voice_amp, time); + AmpEnvelope->init(ad_voice_amp); + AmpLfo = new LFOParams(ad_voice_amp, time); FreqEnvelope = new EnvelopeParams(0, 0, time); - FreqEnvelope->init(loc_ad_voice_freq); - FreqLfo = new LFOParams(loc_ad_voice_freq, time); + FreqEnvelope->init(ad_voice_freq); + FreqLfo = new LFOParams(ad_voice_freq, time); - VoiceFilter = new FilterParams(loc_ad_voice_filter, time); + VoiceFilter = new FilterParams(ad_voice_filter, time); FilterEnvelope = new EnvelopeParams(0, 0, time); - FilterEnvelope->init(loc_ad_voice_filter); - FilterLfo = new LFOParams(loc_ad_voice_filter, time); + FilterEnvelope->init(ad_voice_filter); + FilterLfo = new LFOParams(ad_voice_filter, time); FMFreqEnvelope = new EnvelopeParams(0, 0, time); - FMFreqEnvelope->init(loc_ad_voice_fm_freq); + FMFreqEnvelope->init(ad_voice_fm_freq); FMAmpEnvelope = new EnvelopeParams(64, 1, time); - FMAmpEnvelope->init(loc_ad_voice_fm_amp); + FMAmpEnvelope->init(ad_voice_fm_amp); } /* diff --git a/src/Params/EnvelopeParams.cpp b/src/Params/EnvelopeParams.cpp @@ -41,7 +41,7 @@ static const rtosc::Ports localPorts = { rOptions(ad_global_amp, ad_global_freq, ad_global_filter, ad_voice_amp, ad_voice_freq, ad_voice_filter, ad_voice_fm_amp, ad_voice_fm_freq, - sub_freq_env, sub_bandwidth_env), + sub_freq, sub_bandwidth), "location of the envelope"), rToggle(Pfreemode, rDefault(false), "Complex Envelope Definitions"), #undef rChangeCb @@ -50,13 +50,13 @@ static const rtosc::Ports localPorts = { rParamZyn(Penvpoints, rProp(internal), rDefaultDepends(loc), rPresetAtMulti(3, ad_global_freq, ad_voice_freq, ad_voice_fm_freq, - sub_freq_env, sub_bandwidth_env), + sub_freq, sub_bandwidth), rDefault(4), "Number of points in complex definition"), rParamZyn(Penvsustain, rDefaultDepends(loc), rPresetAtMulti(1, ad_global_freq, ad_voice_freq, ad_voice_fm_freq, - sub_freq_env, sub_bandwidth_env), + sub_freq, sub_bandwidth), rDefault(2), "Location of the sustain point"), rParams(Penvdt, MAX_ENVELOPE_POINTS, "Envelope Delay Times"), @@ -77,13 +77,13 @@ static const rtosc::Ports localPorts = { rPreset(ad_global_freq, 50), rPreset(ad_global_filter, 40), rPreset(ad_voice_freq, 40), rPreset(ad_voice_filter, 70), rPreset(ad_voice_fm_freq, 90), rPreset(ad_voice_fm_amp, 80), - rPreset(sub_freq_env, 50), rPreset(sub_bandwidth_env, 70), + rPreset(sub_freq, 50), rPreset(sub_bandwidth, 70), rDefault(0), "Attack Time"), rParamZyn(PA_val, rShort("a.val"), rDefaultDepends(loc), - rPreset(ad_global_freq, 30), rPreset(ad_global_filter, 90), - rPreset(ad_voice_fm_freq, 20), rPreset(ad_voice_fm_amp, 64), - rPreset(sub_freq_env, 30), rPreset(sub_bandwidth_env, 100), + rPreset(ad_voice_freq, 30), rPreset(ad_voice_filter, 90), + rPreset(ad_voice_fm_freq, 20), + rPreset(sub_freq, 30), rPreset(sub_bandwidth, 100), rDefault(64), "Attack Value"), rParamZyn(PD_dt, rShort("d.dt"), rDefaultDepends(loc), @@ -256,18 +256,17 @@ void EnvelopeParams::init(zyn::consumer_location_t _loc) { switch(loc = _loc) { - case loc_ad_global_amp: ADSRinit_dB(0, 40, 127, 25); break; - case loc_ad_global_freq: ASRinit(64, 50, 64, 60); break; - case loc_ad_global_filter: - case loc_sub_filter: - case loc_ad_voice_amp: ADSRinit_dB(0, 100, 127, 100); break; - case loc_ad_voice_freq: ASRinit(30, 40, 64, 60); break; - case loc_ad_voice_filter: ADSRinit_filter(90, 70, 40, 70, 10, 40); - break; - case loc_ad_voice_fm_freq: ASRinit(20, 90, 40, 80); break; - case loc_ad_voice_fm_amp: ADSRinit(80, 90, 127, 100); break; - case loc_sub_freq: ASRinit(30, 50, 64, 60); break; - case loc_sub_bandwidth: ASRinit_bw(100, 70, 64, 60); break; + case ad_global_amp: ADSRinit_dB(0, 40, 127, 25); break; + case ad_global_freq: ASRinit(64, 50, 64, 60); break; + case ad_global_filter: + case sub_filter: ADSRinit_filter(64, 40, 64, 70, 60, 64); break; + case ad_voice_amp: ADSRinit_dB(0, 100, 127, 100); break; + case ad_voice_freq: ASRinit(30, 40, 64, 60); break; + case ad_voice_filter: ADSRinit_filter(90, 70, 40, 70, 10, 40); break; + case ad_voice_fm_freq: ASRinit(20, 90, 40, 80); break; + case ad_voice_fm_amp: ADSRinit(80, 90, 127, 100); break; + case sub_freq: ASRinit(30, 50, 64, 60); break; + case sub_bandwidth: ASRinit_bw(100, 70, 64, 60); break; default: throw std::logic_error("Invalid envelope consumer location"); }; } diff --git a/src/Params/FilterParams.cpp b/src/Params/FilterParams.cpp @@ -66,7 +66,7 @@ const rtosc::Ports FilterParams::ports = { rPaste, rArrayPaste, rOption(loc, rProp(internal), - rOptions(ad_global_filter, ad_voice_filter, sub_filter, effect), + rOptions(ad_global_filter, ad_voice_filter, sub_filter, in_effect), "location of the filter"), rOption(Pcategory, rShort("class"), rOptions(analog, formant, st.var.), rDefault(analog), @@ -78,18 +78,18 @@ const rtosc::Ports FilterParams::ports = { rLinear(0,5), rDefault(0), "Filter Stages"), rParamF(baseq, rShort("q"), rUnit(none), rLog(0.1, 1000), rDefaultDepends(loc), - rPreset(loc_ad_global_filter, 0x1.1592acp+0), - rPreset(loc_ad_voice_filter, 0x1.e2f3ap+1), - rPreset(loc_sub_filter, 0x1.1592acp+0), - rPreset(loc_effect, 0x1.384298p+2), + rPreset(ad_global_filter, 0x1.1592acp+0), + rPreset(ad_voice_filter, 0x1.e2f3ap+1), + rPreset(sub_filter, 0x1.1592acp+0), + rPreset(in_effect, 0x1.384298p+2), "Quality Factor (resonance/bandwidth)"), rParamF(basefreq, rShort("cutoff"), rUnit(Hz), rLog(31.25, 32000), rDefaultDepends(loc), - rPreset(loc_ad_global_filter, 0x1.3d434p+12), - rPreset(loc_ad_voice_filter, 0x1.d48ab6p+8), - rPreset(loc_sub_filter, 0x1.294d3ep+11), - rPreset(loc_effect, 0x1.f3fffcp+9), + rPreset(ad_global_filter, 0x1.3d434p+12), + rPreset(ad_voice_filter, 0x1.d48ab6p+8), + rPreset(sub_filter, 0x1.294d3ep+11), + rPreset(in_effect, 0x1.f3fffcp+9), "Base cutoff frequency"), rParamF(freqtracking, rShort("f.track"), rUnit(%), rLinear(-100, 100), rDefault(0.0f), @@ -323,7 +323,7 @@ void FilterParams::setup() } FilterParams::FilterParams(const AbsTime *time_) - :FilterParams(loc_effect, time_) + :FilterParams(in_effect, time_) { } @@ -352,10 +352,10 @@ FilterParams::FilterParams(consumer_location_t loc, switch(loc) { - case loc_ad_global_filter: init(2, 94, 40); break; - case loc_ad_voice_filter: init(2, 50, 60); break; - case loc_sub_filter: init(2, 80, 40); break; - case loc_effect: init(0, 64, 64); break; + case ad_global_filter: init(2, 94, 40); break; + case ad_voice_filter: init(2, 50, 60); break; + case sub_filter: init(2, 80, 40); break; + case in_effect: init(0, 64, 64); break; default: throw std::logic_error("Invalid filter consumer location"); } diff --git a/src/Params/LFOParams.cpp b/src/Params/LFOParams.cpp @@ -39,22 +39,22 @@ static const rtosc::Ports _ports = { "location of the filter"), rParamF(Pfreq, rShort("freq"), rLinear(0.0,1.0), rDefaultDepends(loc), - rPreset(loc_ad_global_amp, 80.0f), - rPreset(loc_ad_global_freq, 70.0f), - rPreset(loc_ad_global_filter, 80.0f), - rPreset(loc_ad_voice_amp, 90.0f), - rPreset(loc_ad_voice_freq, 50.0f), - rPreset(loc_ad_voice_filter, 50.0f), + rPreset(ad_global_amp, 0x1.42850ap-1), // 80 + rPreset(ad_global_freq, 0x1.1a3468p-1), // 70 + rPreset(ad_global_filter, 0x1.42850ap-1), + rPreset(ad_voice_amp, 0x1.6ad5acp-1), // 90 + rPreset(ad_voice_freq, 0x1.93264cp-2), // 50 + rPreset(ad_voice_filter, 0x1.93264cp-2), "frequency of LFO\n" "lfo frequency = (2^(10*Pfreq)-1)/12 * stretch\n" "true frequency is [0,85.33] Hz"), rParamZyn(Pintensity, rShort("depth"), rDefaultDepends(loc), - rDefault(0), rPreset(loc_ad_voice_amp, 32), - rPreset(loc_ad_voice_freq, 40), rPreset(loc_ad_voice_filter, 20), + rDefault(0), rPreset(ad_voice_amp, 32), + rPreset(ad_voice_freq, 40), rPreset(ad_voice_filter, 20), "Intensity of LFO"), rParamZyn(Pstartphase, rShort("start"), rSpecial(random), - rDefaultDepends(loc), rDefault(64), rPreset(loc_ad_voice_freq, 0), + rDefaultDepends(loc), rDefault(64), rPreset(ad_voice_freq, 0), "Starting Phase"), rOption(PLFOtype, rShort("type"), rOptions(sine, triangle, square, up, down, exp1, exp2), rDefault(sine), "Shape of LFO"), @@ -63,9 +63,10 @@ static const rtosc::Ports _ports = { rParamZyn(Pfreqrand, rShort("f.r."), rSpecial(disable), rDefault(0), "Frequency Randomness (calculated uniformly at each cycle)"), rParamZyn(Pdelay, rShort("delay"), rSpecial(disable), - rDefaultDepends(loc), rDefault(0), rPreset(loc_ad_voice_amp, 30), + rDefaultDepends(loc), rDefault(0), rPreset(ad_voice_amp, 30), "Delay before LFO start\n0..4 second delay"), - rToggle(Pcontinous, rShort("c"), rDefault(0), "Enable for global operation"), + rToggle(Pcontinous, rShort("c"), rDefault(false), + "Enable for global operation"), rParamZyn(Pstretch, rShort("str"), rCentered, rDefault(64), "Note frequency stretch"), // these are currently not yet implemented at must be hidden therefore @@ -94,18 +95,18 @@ void LFOParams::setup() case loc_unspecified: fel = consumer_location_type_t::unspecified; break; - case loc_ad_global_freq: - case loc_ad_voice_freq: + case ad_global_freq: + case ad_voice_freq: fel = consumer_location_type_t::freq; setpresettype("Plfofrequency"); break; - case loc_ad_global_amp: - case loc_ad_voice_amp: + case ad_global_amp: + case ad_voice_amp: fel = consumer_location_type_t::amp; setpresettype("Plfoamplitude"); break; - case loc_ad_global_filter: - case loc_ad_voice_filter: + case ad_global_filter: + case ad_voice_filter: fel = consumer_location_type_t::filter; setpresettype("Plfofilter"); break; @@ -164,12 +165,12 @@ LFOParams::LFOParams(consumer_location_t loc, switch(loc) { - case loc_ad_global_amp: init(80, 0, 64, 0, 0, 0, 0); break; - case loc_ad_global_freq: init(70, 0, 64, 0, 0, 0, 0); break; - case loc_ad_global_filter: init(80, 0, 64, 0, 0, 0, 0); break; - case loc_ad_voice_amp: init(90, 32, 64, 0, 0, 30, 0); break; - case loc_ad_voice_freq: init(50, 40, 0, 0, 0, 0, 0); break; - case loc_ad_voice_filter: init(50, 20, 64, 0, 0, 0, 0); break; + case ad_global_amp: init(80, 0, 64, 0, 0, 0, 0); break; + case ad_global_freq: init(70, 0, 64, 0, 0, 0, 0); break; + case ad_global_filter: init(80, 0, 64, 0, 0, 0, 0); break; + case ad_voice_amp: init(90, 32, 64, 0, 0, 30, 0); break; + case ad_voice_freq: init(50, 40, 0, 0, 0, 0, 0); break; + case ad_voice_filter: init(50, 20, 64, 0, 0, 0, 0); break; default: throw std::logic_error("Invalid LFO consumer location"); } diff --git a/src/Params/PADnoteParameters.cpp b/src/Params/PADnoteParameters.cpp @@ -311,17 +311,17 @@ PADnoteParameters::PADnoteParameters(const SYNTH_T &synth_, FFTwrapper *fft_, oscilgen->ADvsPAD = true; FreqEnvelope = new EnvelopeParams(0, 0, time_); - FreqEnvelope->init(loc_ad_global_freq); - FreqLfo = new LFOParams(loc_ad_global_freq, time_); + FreqEnvelope->init(ad_global_freq); + FreqLfo = new LFOParams(ad_global_freq, time_); AmpEnvelope = new EnvelopeParams(64, 1, time_); - AmpEnvelope->init(loc_ad_global_amp); - AmpLfo = new LFOParams(loc_ad_global_amp, time_); + AmpEnvelope->init(ad_global_amp); + AmpLfo = new LFOParams(ad_global_amp, time_); - GlobalFilter = new FilterParams(loc_ad_global_filter, time_); + GlobalFilter = new FilterParams(ad_global_filter, time_); FilterEnvelope = new EnvelopeParams(0, 1, time_); - FilterEnvelope->init(loc_ad_global_filter); - FilterLfo = new LFOParams(loc_ad_global_filter, time_); + FilterEnvelope->init(ad_global_filter); + FilterLfo = new LFOParams(ad_global_filter, time_); for(int i = 0; i < PAD_MAX_SAMPLES; ++i) sample[i].smp = NULL; diff --git a/src/Params/Presets.h b/src/Params/Presets.h @@ -52,22 +52,22 @@ class Presets //enum consumer_location_t //{ -#define loc_ad_global_amp 0 -#define loc_ad_global_freq 1 -#define loc_ad_global_filter 2 +#define ad_global_amp 0 +#define ad_global_freq 1 +#define ad_global_filter 2 -#define loc_ad_voice_amp 3 -#define loc_ad_voice_freq 4 -#define loc_ad_voice_filter 5 +#define ad_voice_amp 3 +#define ad_voice_freq 4 +#define ad_voice_filter 5 -#define loc_ad_voice_fm_amp 6 -#define loc_ad_voice_fm_freq 7 +#define ad_voice_fm_amp 6 +#define ad_voice_fm_freq 7 -#define loc_sub_freq 8 -#define loc_sub_filter 9 -#define loc_sub_bandwidth 10 +#define sub_freq 8 +#define sub_filter 9 +#define sub_bandwidth 10 -#define loc_effect 11 +#define in_effect 11 #define loc_unspecified 12 //}; diff --git a/src/Params/SUBnoteParameters.cpp b/src/Params/SUBnoteParameters.cpp @@ -201,15 +201,15 @@ SUBnoteParameters::SUBnoteParameters(const AbsTime *time_) { setpresettype("Psubsynth"); AmpEnvelope = new EnvelopeParams(64, 1, time_); - AmpEnvelope->init(loc_ad_global_amp); + AmpEnvelope->init(ad_global_amp); FreqEnvelope = new EnvelopeParams(64, 0, time_); - FreqEnvelope->init(loc_sub_freq); + FreqEnvelope->init(sub_freq); BandWidthEnvelope = new EnvelopeParams(64, 0, time_); - BandWidthEnvelope->init(loc_sub_bandwidth); + BandWidthEnvelope->init(sub_bandwidth); - GlobalFilter = new FilterParams(loc_sub_filter, time_); + GlobalFilter = new FilterParams(sub_filter, time_); GlobalFilterEnvelope = new EnvelopeParams(0, 1, time_); - GlobalFilterEnvelope->init(loc_sub_filter); + GlobalFilterEnvelope->init(sub_filter); defaults(); }