mirror of
https://codeberg.org/armin/rmx-19.git
synced 2026-10-11 16:51:55 +02:00
- 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
54 lines
No EOL
1.5 KiB
C++
54 lines
No EOL
1.5 KiB
C++
#pragma once
|
|
#include <juce_audio_processors/juce_audio_processors.h>
|
|
|
|
namespace prm {
|
|
|
|
enum class Id : int {
|
|
osc1Wave, osc2Wave, detune, oscMix,
|
|
fltType, fltCutoff, fltRes, fltEnv, fltKey,
|
|
ampA, ampD, ampS, ampR,
|
|
fenvA, fenvD, fenvS, fenvR,
|
|
lfoRate, lfoShape, lfoDepth, lfoTarget,
|
|
fxType, fxAmt, fxTime,
|
|
vol, pan, poly, glide, tune,
|
|
hq,
|
|
arpOn, arpRate, arpPattern, arpOct, arpGate,
|
|
detune1,
|
|
xmod, xmix, evolve, warp
|
|
};
|
|
|
|
constexpr int num = 40;
|
|
|
|
struct Desc {
|
|
const char* id;
|
|
const char* name;
|
|
const char* shortName;
|
|
float min, max, def;
|
|
bool discrete;
|
|
float fine, coarse;
|
|
};
|
|
|
|
const Desc& desc (Id id);
|
|
bool validId (int i);
|
|
|
|
juce::AudioProcessorValueTreeState::ParameterLayout createLayout();
|
|
|
|
juce::String formatParam (Id id, float v);
|
|
float changeParam (Id id, float cur, int dir, bool coarse);
|
|
|
|
const char* waveName (int w);
|
|
const char* fltTypeName (int t);
|
|
const char* lfoShapeName (int s);
|
|
const char* lfoTargetName (int t);
|
|
const char* fxTypeName (int t);
|
|
const char* xmodTypeName (int t);
|
|
|
|
const char* arpRateName (int r);
|
|
const char* arpPatternName (int p);
|
|
|
|
constexpr int delaySyncCount = 11;
|
|
const char* delaySyncName (int s); // "OFF", "1/16", ...
|
|
double delaySyncBeats (int s); // beat multiple for sync delay
|
|
float delaySyncMaxTime(); // max delay seconds needed for slow sync
|
|
|
|
} // namespace prm
|