mirror of
https://codeberg.org/armin/rmx-19.git
synced 2026-10-11 16:51:55 +02:00
add generative evolution, cross-mod and reverb FX; expand preset bank
- 4 new params (xmod/xmix/evolve/warp) with free-running brownian evolution - evolution: tune drift, osc2 detune sway, osc-mix crossfade, filter cutoff wander, resonance growl, warp drive/bias, cross-mod bloom - per-voice unison detune spread for fat stacks - FX engine: 3-tap ensemble chorus, filtered-feedback ping-pong delay, Schroeder hall reverb; new FX types 4-7 (REV HALL/ENS+REV/DLY+REV/CATHEDRAL) - 195 presets: 40-field realignment, genre-tuned FX identities, showcase eval - calibrate banks vs attack-inclusive peak (median 0.263); fix square-LFO on filter sustain collapse
This commit is contained in:
parent
bc417e1cc1
commit
35d6cd014a
8 changed files with 2016 additions and 601 deletions
|
|
@ -5,8 +5,8 @@ namespace prm {
|
|||
|
||||
static const Desc table[num] = {
|
||||
// id name short min max def disc fine coarse
|
||||
{ "osc1wave", "OSC1 WAVE", "O1WV", 0, 4, 2, true, 1, 1 },
|
||||
{ "osc2wave", "OSC2 WAVE", "O2WV", 0, 4, 3, true, 1, 1 },
|
||||
{ "osc1wave", "OSC1 WAVE", "O1WV", 0, 14, 2, true, 1, 1 },
|
||||
{ "osc2wave", "OSC2 WAVE", "O2WV", 0, 14, 3, true, 1, 1 },
|
||||
{ "detune", "DETUNE 2", "DT2", -50, 50, 8, false, 1, 6 },
|
||||
{ "oscmix", "OSC BAL", "MIX", 0, 100, 52, false, 1, 8 },
|
||||
{ "flttype", "FILTER TYPE", "FTYP", 0, 3, 1, true, 1, 1 },
|
||||
|
|
@ -26,7 +26,7 @@ static const Desc table[num] = {
|
|||
{ "lfoshape", "LFO SHAPE", "LFS", 0, 3, 0, true, 1, 1 },
|
||||
{ "lfodepth", "LFO DEPTH", "LFD", 0, 1, 0.22f, false, 0.01f, 0.08f },
|
||||
{ "lfotarget", "LFO TARGET", "LFT", 0, 2, 0, true, 1, 1 },
|
||||
{ "fxtype", "FX TYPE", "FXT", 0, 3, 1, true, 1, 1 },
|
||||
{ "fxtype", "FX TYPE", "FXT", 0, 7, 1, true, 1, 1 },
|
||||
{ "fxamt", "FX DEPTH", "FXD", 0, 1, 0.30f, false, 0.01f, 0.08f },
|
||||
{ "fxtime", "FX TIME", "FXT", 0.05f, 1.2f, 0.28f, false, 0.01f, 0.12f },
|
||||
{ "vol", "MASTER VOL", "VOL", 0, 1, 0.85f, false, 0.01f, 0.08f },
|
||||
|
|
@ -41,6 +41,10 @@ static const Desc table[num] = {
|
|||
{ "arpoct", "ARP OCTAVES", "AOC", 1, 4, 1, true, 1, 1 },
|
||||
{ "arpgate", "ARP GATE", "AGT", 10, 100, 70, false, 1, 10 },
|
||||
{ "detune1", "DETUNE 1", "DT1", -50, 50, 0, false, 1, 6 },
|
||||
{ "xmod", "CROSS MOD", "XML", 0, 3, 0, true, 1, 1 },
|
||||
{ "xmix", "XMIX AMT", "XMX", 0, 1, 0, false, 0.01f, 0.08f },
|
||||
{ "evolve", "EVOLVE", "EVO", 0, 1, 0, false, 0.01f, 0.08f },
|
||||
{ "warp", "WARP", "WRP", 0, 1, 0, false, 0.01f, 0.08f },
|
||||
};
|
||||
|
||||
const Desc& desc (Id id) { return table[static_cast<int>(id)]; }
|
||||
|
|
@ -74,7 +78,11 @@ juce::AudioProcessorValueTreeState::ParameterLayout createLayout()
|
|||
const char* waveName (int w)
|
||||
{
|
||||
switch (w) { case 0: return "SINE"; case 1: return "TRIANG"; case 2: return "SAWTOOTH";
|
||||
case 3: return "PULSE"; case 4: return "NOISE"; default: return "-----"; }
|
||||
case 3: return "PULSE"; case 4: return "NOISE"; case 5: return "FM ";
|
||||
case 6: return "PWM "; case 7: return "SUPRSW "; case 8: return "DBLSAW ";
|
||||
case 9: return "WARP "; case 10: return "HSYNC "; case 11: return "TINE ";
|
||||
case 12: return "SEQ "; case 13: return "CHORD "; case 14: return "SUPRPL ";
|
||||
default: return "-----"; }
|
||||
}
|
||||
|
||||
const char* fltTypeName (int t)
|
||||
|
|
@ -97,8 +105,15 @@ const char* lfoTargetName (int t)
|
|||
|
||||
const char* fxTypeName (int t)
|
||||
{
|
||||
switch (t) { case 0: return "OFF"; case 1: return "CHORUS"; case 2: return "DELAY ";
|
||||
case 3: return "SPACE"; default: return "OFF"; }
|
||||
switch (t) { case 0: return "OFF"; case 1: return "CHORUS"; case 2: return "DELAY ";
|
||||
case 3: return "SPACE"; case 4: return "REV HALL"; case 5: return "ENS+REV";
|
||||
case 6: return "DLY+REV"; case 7: return "CATHEDRAL"; default: return "OFF"; }
|
||||
}
|
||||
|
||||
const char* xmodTypeName (int t)
|
||||
{
|
||||
switch (t) { case 0: return "OFF "; case 1: return "RING "; case 2: return "FM ";
|
||||
case 3: return "AM "; default: return "OFF "; }
|
||||
}
|
||||
|
||||
const char* arpRateName (int r)
|
||||
|
|
@ -204,6 +219,10 @@ juce::String formatParam (Id id, float v)
|
|||
return juce::String (t > 0 ? "+" : "") + juce::String (t) + "ST";
|
||||
}
|
||||
case Id::hq: return v >= 0.5f ? "HQ" : "ECO";
|
||||
case Id::xmod: return xmodTypeName ((int) v);
|
||||
case Id::xmix:
|
||||
case Id::evolve:
|
||||
case Id::warp: return fmtPercent (v);
|
||||
case Id::arpOn: return v >= 0.5f ? "ON " : "OFF";
|
||||
case Id::arpRate: return arpRateName ((int) v);
|
||||
case Id::arpPattern: return arpPatternName ((int) v);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue