#pragma once #include 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 }; constexpr int num = 29; 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); } // namespace prm