commit 542b708ac7f7b5a6d14482a9067a45fb8ffa9250
parent da1a658d77812fc2ac3f45f1ea9a7e07ffa2d361
Author: Johannes Lorenz <j.git@lorenz-ho.me>
Date: Sun, 2 Mar 2025 12:51:49 +0100
Fix presets of Reverse and Ensemble
Fixes presets of the commits
* Reverse 613658446bf6744a64b4436a744bc4c25af56a3c
* Ensemble aae63c815150bb7cd4535991b42d669404879d24
and adds the respective missing preset tests to SaveOSC.cpp.
Diffstat:
3 files changed, 26 insertions(+), 21 deletions(-)
diff --git a/src/Effects/Chorus.cpp b/src/Effects/Chorus.cpp
@@ -46,30 +46,32 @@ rtosc::Ports Chorus::ports = {
rEnd},
//Pvolume/Ppanning are common
- rEffParVol(rDefault(64)),
+ rEffParVol(rDefaultDepends(preset), rDefault(64), rPreset(10, 127), rPreset(11, 127)),
rEffParPan(),
rEffPar(Pfreq, 2, rShort("freq"),
- rPresets(50, 45, 29, 26, 29, 57, 33, 53, 40, 55),
+ rPresets(50, 45, 29, 26, 29, 57, 33, 53, 40, 55, 68, 55),
"Effect Frequency"),
rEffPar(Pfreqrnd, 3, rShort("rand"),
rPreset(4, 117) rPreset(6, 34) rPreset(7, 34) rPreset(9, 105)
+ rPreset(10, 25) rPreset(11, 25)
rDefault(0), "Frequency Randomness"),
rEffParOpt(PLFOtype, 4, rShort("shape"),
rOptions(sine, tri),
- rPresets(sine, sine, tri, sine, sine, sine, tri, tri, tri, sine),
+ rPresets(sine, sine, tri, sine, sine, sine, tri, tri, tri, sine, tri, tri),
"LFO Shape"),
rEffPar(PStereo, 5, rShort("stereo"),
- rPresets(90, 98, 42, 42, 50, 60, 40, 94, 62, 24), "Stereo Mode"),
+ rPresets(90, 98, 42, 42, 50, 60, 40, 94, 62, 24, 24, 24), "Stereo Mode"),
rEffPar(Pdepth, 6, rShort("depth"),
- rPresets(40, 56, 97, 115, 115, 23, 35, 35, 12, 39), "LFO Depth"),
+ rPresets(40, 56, 97, 115, 115, 23, 35, 35, 12, 39, 35, 32), "LFO Depth"),
rEffPar(Pdelay, 7, rShort("delay"),
- rPresets(85, 90, 95, 18, 9, 3, 3, 3, 19, 19), "Delay"),
+ rPresets(85, 90, 95, 18, 9, 3, 3, 3, 19, 19, 55, 55), "Delay"),
rEffPar(Pfeedback,8, rShort("fb"),
- rPresets(64, 64, 90, 90, 31, 62, 109, 54, 97, 17), "Feedback"),
+ rPresets(64, 64, 90, 90, 31, 62, 109, 54, 97, 17, 64, 80), "Feedback"),
rEffPar(Plrcross, 9, rShort("l/r"), rPresets(119, 19, 127, 127, 127),
rDefault(0), "Left/Right Crossover"),
- rEffParOpt(Pflangemode, 10, rShort("mode"), rDefault(CHORUS),rOptions(CHORUS_MODES),
- "Chorus Mode"),
+ rEffParOpt(Pflangemode, 10, rShort("mode"), rDefault(CHORUS), rOptions(CHORUS_MODES),
+ rPreset(10, TRIPLE), rPreset(11, DUAL),
+ "Chorus Mode"),
rEffParTF(Poutsub, 11, rShort("sub"),
rPreset(4, true), rPreset(7, true), rPreset(9, true),
rDefault(false), "Output Subtraction"),
diff --git a/src/Effects/Reverse.cpp b/src/Effects/Reverse.cpp
@@ -42,17 +42,19 @@ rtosc::Ports Reverse::ports = {
d.reply(d.loc, "i", o->Ppreset);
rEnd},
rPresetForVolume,
- rEffParVol(),
+ rEffParVol(rDefaultDepends(presetOfVolume),
+ rPresets(32, 32, 32),
+ rPresetsAt(16, 64, 64, 64)),
rEffParPan(),
- rEffPar(Pdelay, 2, rShort("delay"), rDefault(31),
+ rEffPar(Pdelay, 2, rShort("delay"), rDefault(25),
"Length of Reversed Segment"),
- rEffParTF(Pstereo,3, rShort("stereo"),
+ rEffParTF(Pstereo,3, rShort("stereo"), rDefault(false),
"Enable Stereo Processing"),
rEffPar(Pphase, 4, rShort("phase"), rDefault(64),
"Phase offset for Reversed Segment"),
- rEffPar(Pcrossfade, 5, rShort("fade"), rDefault(64), rUnit(1/100 s),
+ rEffPar(Pcrossfade, 5, rShort("fade"), rPresets(32, 16, 50), rUnit(1/100 s),
"Cross Fade Time between Reversed Segments"),
- rEffParOpt(Psyncmode, 6, rShort("mode"), rDefault(NOTEON),
+ rEffParOpt(Psyncmode, 6, rShort("mode"), rPresets(NOTEON, NOTEONOFF, AUTO),
rOptions(SYNCMODES),
"Sync Mode"),
};
@@ -61,7 +63,7 @@ rtosc::Ports Reverse::ports = {
#undef rObject
Reverse::Reverse(EffectParams pars, const AbsTime *time_)
- :Effect(pars),Pvolume(50),Pdelay(31),Pphase(64), Pcrossfade(64), PsyncMode(NOTEON), Pstereo(0),time(time_), tick_hist(0)
+ :Effect(pars),Pvolume(insertion?64:32),Pdelay(25),Pphase(64), Pcrossfade(32), PsyncMode(NOTEON), Pstereo(0),time(time_), tick_hist(0)
{
float tRef = float(time->time());
reverterL = memory.alloc<Reverter>(&memory, float(Pdelay+1)/128.0f*MAX_REV_DELAY_SECONDS, samplerate, buffersize, tRef, time);
diff --git a/src/Tests/SaveOSC.cpp b/src/Tests/SaveOSC.cpp
@@ -309,6 +309,7 @@ class SaveOSCTest
mw->transmitMsgGui(0, "/insefx6/efftype", "S", "Alienwah");
mw->transmitMsgGui(0, "/insefx7/efftype", "S", "EQ");
mw->transmitMsgGui(0, "/part0/partefx0/efftype", "S", "Chorus");
+ mw->transmitMsgGui(0, "/part0/partefx1/efftype", "S", "Reverse");
// use all effects as sys fx (except Chorus, it does not differ)
mw->transmitMsgGui(0, "/sysefx0/efftype", "S", "Reverb");
mw->transmitMsgGui(0, "/sysefx1/efftype", "S", "Phaser");
@@ -326,13 +327,13 @@ class SaveOSCTest
char partefxstr[] = "/part0/partefx0/preset";
char sysefxstr[] = "/sysefx0/preset";
int npresets_ins[] = {13, 12, 9, 6, 5, 5, 4, 2};
- int npresets_part[] = {10};
- for(; insefxstr[7] < '8'; ++insefxstr[7])
+ int npresets_part[] = {12, 3};
+ for(; insefxstr[7] < '0' + (char)(sizeof(npresets_ins) / sizeof(npresets_ins[0])); ++insefxstr[7])
if(preset < npresets_ins[insefxstr[7]-'0'])
- mw->transmitMsgGui(0, insefxstr, "i", preset);
- for(; partefxstr[14] < '1'; ++partefxstr[14])
+ mw->transmitMsgGui(0, insefxstr, "i", preset); // "/insefx?/preset ?"
+ for(; partefxstr[14] < '0' + (char)(sizeof(npresets_part) / sizeof(npresets_part[0])); ++partefxstr[14])
if(preset < npresets_part[partefxstr[14]-'0'])
- mw->transmitMsgGui(0, partefxstr, "i", preset);
+ mw->transmitMsgGui(0, partefxstr, "i", preset); // "/part0/partefx?/preset ?"
if(preset == 13) // for presets 13-17, test the up to 5 sysefx
{
mw->transmitMsgGui(0, "/sysefx0/efftype", "S", "Sympathetic");
@@ -343,7 +344,7 @@ class SaveOSCTest
int type_offset = (preset>=13)?4:0;
for(; sysefxstr[7] < '4'; ++sysefxstr[7])
if(preset%13 < npresets_ins[sysefxstr[7]-'0'+type_offset])
- mw->transmitMsgGui(0, sysefxstr, "i", preset%13);
+ mw->transmitMsgGui(0, sysefxstr, "i", preset%13); // "/sysefx?/preset ?"
char filename[] = "file0";
filename[4] += preset;