rmx-19/Source/Params.h

41 lines
No EOL
1 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
};
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