2026-09-07 21:03:31 +02:00
|
|
|
#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,
|
2026-09-08 15:10:12 +02:00
|
|
|
vol, pan, poly, glide, tune,
|
2026-09-08 21:57:34 +02:00
|
|
|
hq,
|
|
|
|
|
arpOn, arpRate, arpPattern, arpOct, arpGate
|
2026-09-07 21:03:31 +02:00
|
|
|
};
|
|
|
|
|
|
2026-09-08 21:57:34 +02:00
|
|
|
constexpr int num = 35;
|
2026-09-07 21:03:31 +02:00
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
2026-09-08 21:57:34 +02:00
|
|
|
const char* arpRateName (int r);
|
|
|
|
|
const char* arpPatternName (int p);
|
|
|
|
|
|
2026-09-08 15:10:12 +02:00
|
|
|
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
|
|
|
|
|
|
2026-09-07 21:03:31 +02:00
|
|
|
} // namespace prm
|