|
@@ -240,6 +240,7 @@ public: |
|
|
int getCurrentIRSize() const { return irSize; }
|
|
|
int getCurrentIRSize() const { return irSize; }
|
|
|
|
|
|
|
|
|
using Parameter = AudioProcessorValueTreeState::Parameter;
|
|
|
using Parameter = AudioProcessorValueTreeState::Parameter;
|
|
|
|
|
|
using Attributes = AudioProcessorValueTreeStateParameterAttributes;
|
|
|
|
|
|
|
|
|
// This struct holds references to the raw parameters, so that we don't have to search
|
|
|
// This struct holds references to the raw parameters, so that we don't have to search
|
|
|
// the APVTS (involving string comparisons and map lookups!) every time a parameter
|
|
|
// the APVTS (involving string comparisons and map lookups!) every time a parameter
|
|
@@ -261,45 +262,52 @@ public: |
|
|
template <typename Param, typename Group, typename... Ts>
|
|
|
template <typename Param, typename Group, typename... Ts>
|
|
|
static Param& addToLayout (Group& layout, Ts&&... ts)
|
|
|
static Param& addToLayout (Group& layout, Ts&&... ts)
|
|
|
{
|
|
|
{
|
|
|
auto param = std::make_unique<Param> (std::forward<Ts> (ts)...);
|
|
|
|
|
|
|
|
|
auto param = new Param (std::forward<Ts> (ts)...);
|
|
|
auto& ref = *param;
|
|
|
auto& ref = *param;
|
|
|
add (layout, std::move (param));
|
|
|
|
|
|
|
|
|
add (layout, rawToUniquePtr (param));
|
|
|
return ref;
|
|
|
return ref;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
static String valueToTextFunction (float x) { return String (x, 2); }
|
|
|
|
|
|
|
|
|
static String valueToTextFunction (float x, int) { return String (x, 2); }
|
|
|
static float textToValueFunction (const String& str) { return str.getFloatValue(); }
|
|
|
static float textToValueFunction (const String& str) { return str.getFloatValue(); }
|
|
|
|
|
|
|
|
|
static String valueToTextPanFunction (float x) { return getPanningTextForValue ((x + 100.0f) / 200.0f); }
|
|
|
|
|
|
|
|
|
static auto getBasicAttributes()
|
|
|
|
|
|
{
|
|
|
|
|
|
return Attributes().withStringFromValueFunction (valueToTextFunction)
|
|
|
|
|
|
.withValueFromStringFunction (textToValueFunction);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static auto getDbAttributes() { return getBasicAttributes().withLabel ("dB"); }
|
|
|
|
|
|
static auto getMsAttributes() { return getBasicAttributes().withLabel ("ms"); }
|
|
|
|
|
|
static auto getHzAttributes() { return getBasicAttributes().withLabel ("Hz"); }
|
|
|
|
|
|
static auto getPercentageAttributes() { return getBasicAttributes().withLabel ("%"); }
|
|
|
|
|
|
static auto getRatioAttributes() { return getBasicAttributes().withLabel (":1"); }
|
|
|
|
|
|
|
|
|
|
|
|
static String valueToTextPanFunction (float x, int) { return getPanningTextForValue ((x + 100.0f) / 200.0f); }
|
|
|
static float textToValuePanFunction (const String& str) { return getPanningValueForText (str) * 200.0f - 100.0f; }
|
|
|
static float textToValuePanFunction (const String& str) { return getPanningValueForText (str) * 200.0f - 100.0f; }
|
|
|
|
|
|
|
|
|
struct MainGroup
|
|
|
struct MainGroup
|
|
|
{
|
|
|
{
|
|
|
explicit MainGroup (AudioProcessorParameterGroup& layout)
|
|
|
explicit MainGroup (AudioProcessorParameterGroup& layout)
|
|
|
: inputGain (addToLayout<Parameter> (layout,
|
|
|
: inputGain (addToLayout<Parameter> (layout,
|
|
|
ID::inputGain,
|
|
|
|
|
|
|
|
|
ParameterID { ID::inputGain, 1 },
|
|
|
"Input",
|
|
|
"Input",
|
|
|
"dB",
|
|
|
|
|
|
NormalisableRange<float> (-40.0f, 40.0f),
|
|
|
NormalisableRange<float> (-40.0f, 40.0f),
|
|
|
0.0f,
|
|
|
0.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getDbAttributes())),
|
|
|
outputGain (addToLayout<Parameter> (layout,
|
|
|
outputGain (addToLayout<Parameter> (layout,
|
|
|
ID::outputGain,
|
|
|
|
|
|
|
|
|
ParameterID { ID::outputGain, 1 },
|
|
|
"Output",
|
|
|
"Output",
|
|
|
"dB",
|
|
|
|
|
|
NormalisableRange<float> (-40.0f, 40.0f),
|
|
|
NormalisableRange<float> (-40.0f, 40.0f),
|
|
|
0.0f,
|
|
|
0.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getDbAttributes())),
|
|
|
pan (addToLayout<Parameter> (layout,
|
|
|
pan (addToLayout<Parameter> (layout,
|
|
|
ID::pan,
|
|
|
|
|
|
|
|
|
ParameterID { ID::pan, 1 },
|
|
|
"Panning",
|
|
|
"Panning",
|
|
|
"",
|
|
|
|
|
|
NormalisableRange<float> (-100.0f, 100.0f),
|
|
|
NormalisableRange<float> (-100.0f, 100.0f),
|
|
|
0.0f,
|
|
|
0.0f,
|
|
|
valueToTextPanFunction,
|
|
|
|
|
|
textToValuePanFunction)) {}
|
|
|
|
|
|
|
|
|
Attributes().withStringFromValueFunction (valueToTextPanFunction)
|
|
|
|
|
|
.withValueFromStringFunction (textToValuePanFunction))) {}
|
|
|
|
|
|
|
|
|
Parameter& inputGain;
|
|
|
Parameter& inputGain;
|
|
|
Parameter& outputGain;
|
|
|
Parameter& outputGain;
|
|
@@ -310,57 +318,46 @@ public: |
|
|
{
|
|
|
{
|
|
|
explicit DistortionGroup (AudioProcessorParameterGroup& layout)
|
|
|
explicit DistortionGroup (AudioProcessorParameterGroup& layout)
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
ID::distortionEnabled,
|
|
|
|
|
|
|
|
|
ParameterID { ID::distortionEnabled, 1 },
|
|
|
"Distortion",
|
|
|
"Distortion",
|
|
|
true,
|
|
|
|
|
|
"")),
|
|
|
|
|
|
|
|
|
true)),
|
|
|
type (addToLayout<AudioParameterChoice> (layout,
|
|
|
type (addToLayout<AudioParameterChoice> (layout,
|
|
|
ID::distortionType,
|
|
|
|
|
|
|
|
|
ParameterID { ID::distortionType, 1 },
|
|
|
"Waveshaper",
|
|
|
"Waveshaper",
|
|
|
StringArray { "std::tanh", "Approx. tanh" },
|
|
|
StringArray { "std::tanh", "Approx. tanh" },
|
|
|
0)),
|
|
|
0)),
|
|
|
inGain (addToLayout<Parameter> (layout,
|
|
|
inGain (addToLayout<Parameter> (layout,
|
|
|
ID::distortionInGain,
|
|
|
|
|
|
|
|
|
ParameterID { ID::distortionInGain, 1 },
|
|
|
"Gain",
|
|
|
"Gain",
|
|
|
"dB",
|
|
|
|
|
|
NormalisableRange<float> (-40.0f, 40.0f),
|
|
|
NormalisableRange<float> (-40.0f, 40.0f),
|
|
|
0.0f,
|
|
|
0.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getDbAttributes())),
|
|
|
lowpass (addToLayout<Parameter> (layout,
|
|
|
lowpass (addToLayout<Parameter> (layout,
|
|
|
ID::distortionLowpass,
|
|
|
|
|
|
|
|
|
ParameterID { ID::distortionLowpass, 1 },
|
|
|
"Post Low-pass",
|
|
|
"Post Low-pass",
|
|
|
"Hz",
|
|
|
|
|
|
NormalisableRange<float> (20.0f, 22000.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (20.0f, 22000.0f, 0.0f, 0.25f),
|
|
|
22000.0f,
|
|
|
22000.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getHzAttributes())),
|
|
|
highpass (addToLayout<Parameter> (layout,
|
|
|
highpass (addToLayout<Parameter> (layout,
|
|
|
ID::distortionHighpass,
|
|
|
|
|
|
|
|
|
ParameterID { ID::distortionHighpass, 1 },
|
|
|
"Pre High-pass",
|
|
|
"Pre High-pass",
|
|
|
"Hz",
|
|
|
|
|
|
NormalisableRange<float> (20.0f, 22000.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (20.0f, 22000.0f, 0.0f, 0.25f),
|
|
|
20.0f,
|
|
|
20.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getHzAttributes())),
|
|
|
compGain (addToLayout<Parameter> (layout,
|
|
|
compGain (addToLayout<Parameter> (layout,
|
|
|
ID::distortionCompGain,
|
|
|
|
|
|
|
|
|
ParameterID { ID::distortionCompGain, 1 },
|
|
|
"Compensat.",
|
|
|
"Compensat.",
|
|
|
"dB",
|
|
|
|
|
|
NormalisableRange<float> (-40.0f, 40.0f),
|
|
|
NormalisableRange<float> (-40.0f, 40.0f),
|
|
|
0.0f,
|
|
|
0.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getDbAttributes())),
|
|
|
mix (addToLayout<Parameter> (layout,
|
|
|
mix (addToLayout<Parameter> (layout,
|
|
|
ID::distortionMix,
|
|
|
|
|
|
|
|
|
ParameterID { ID::distortionMix, 1 },
|
|
|
"Mix",
|
|
|
"Mix",
|
|
|
"%",
|
|
|
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
100.0f,
|
|
|
100.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getPercentageAttributes())),
|
|
|
oversampler (addToLayout<AudioParameterChoice> (layout,
|
|
|
oversampler (addToLayout<AudioParameterChoice> (layout,
|
|
|
ID::distortionOversampler,
|
|
|
|
|
|
|
|
|
ParameterID { ID::distortionOversampler, 1 },
|
|
|
"Oversampling",
|
|
|
"Oversampling",
|
|
|
StringArray { "2X",
|
|
|
StringArray { "2X",
|
|
|
"4X",
|
|
|
"4X",
|
|
@@ -384,34 +381,27 @@ public: |
|
|
{
|
|
|
{
|
|
|
explicit MultiBandGroup (AudioProcessorParameterGroup& layout)
|
|
|
explicit MultiBandGroup (AudioProcessorParameterGroup& layout)
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
ID::multiBandEnabled,
|
|
|
|
|
|
|
|
|
ParameterID { ID::multiBandEnabled, 1 },
|
|
|
"Multi-band",
|
|
|
"Multi-band",
|
|
|
false,
|
|
|
|
|
|
"")),
|
|
|
|
|
|
|
|
|
false)),
|
|
|
freq (addToLayout<Parameter> (layout,
|
|
|
freq (addToLayout<Parameter> (layout,
|
|
|
ID::multiBandFreq,
|
|
|
|
|
|
|
|
|
ParameterID { ID::multiBandFreq, 1 },
|
|
|
"Sep. Freq.",
|
|
|
"Sep. Freq.",
|
|
|
"Hz",
|
|
|
|
|
|
NormalisableRange<float> (20.0f, 22000.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (20.0f, 22000.0f, 0.0f, 0.25f),
|
|
|
2000.0f,
|
|
|
2000.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getHzAttributes())),
|
|
|
lowVolume (addToLayout<Parameter> (layout,
|
|
|
lowVolume (addToLayout<Parameter> (layout,
|
|
|
ID::multiBandLowVolume,
|
|
|
|
|
|
|
|
|
ParameterID { ID::multiBandLowVolume, 1 },
|
|
|
"Low volume",
|
|
|
"Low volume",
|
|
|
"dB",
|
|
|
|
|
|
NormalisableRange<float> (-40.0f, 40.0f),
|
|
|
NormalisableRange<float> (-40.0f, 40.0f),
|
|
|
0.0f,
|
|
|
0.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getDbAttributes())),
|
|
|
highVolume (addToLayout<Parameter> (layout,
|
|
|
highVolume (addToLayout<Parameter> (layout,
|
|
|
ID::multiBandHighVolume,
|
|
|
|
|
|
|
|
|
ParameterID { ID::multiBandHighVolume, 1 },
|
|
|
"High volume",
|
|
|
"High volume",
|
|
|
"dB",
|
|
|
|
|
|
NormalisableRange<float> (-40.0f, 40.0f),
|
|
|
NormalisableRange<float> (-40.0f, 40.0f),
|
|
|
0.0f,
|
|
|
0.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)) {}
|
|
|
|
|
|
|
|
|
getDbAttributes())) {}
|
|
|
|
|
|
|
|
|
AudioParameterBool& enabled;
|
|
|
AudioParameterBool& enabled;
|
|
|
Parameter& freq;
|
|
|
Parameter& freq;
|
|
@@ -423,23 +413,19 @@ public: |
|
|
{
|
|
|
{
|
|
|
explicit ConvolutionGroup (AudioProcessorParameterGroup& layout)
|
|
|
explicit ConvolutionGroup (AudioProcessorParameterGroup& layout)
|
|
|
: cabEnabled (addToLayout<AudioParameterBool> (layout,
|
|
|
: cabEnabled (addToLayout<AudioParameterBool> (layout,
|
|
|
ID::convolutionCabEnabled,
|
|
|
|
|
|
|
|
|
ParameterID { ID::convolutionCabEnabled, 1 },
|
|
|
"Cabinet",
|
|
|
"Cabinet",
|
|
|
false,
|
|
|
|
|
|
"")),
|
|
|
|
|
|
|
|
|
false)),
|
|
|
reverbEnabled (addToLayout<AudioParameterBool> (layout,
|
|
|
reverbEnabled (addToLayout<AudioParameterBool> (layout,
|
|
|
ID::convolutionReverbEnabled,
|
|
|
|
|
|
|
|
|
ParameterID { ID::convolutionReverbEnabled, 1 },
|
|
|
"Reverb",
|
|
|
"Reverb",
|
|
|
false,
|
|
|
|
|
|
"")),
|
|
|
|
|
|
|
|
|
false)),
|
|
|
reverbMix (addToLayout<Parameter> (layout,
|
|
|
reverbMix (addToLayout<Parameter> (layout,
|
|
|
ID::convolutionReverbMix,
|
|
|
|
|
|
|
|
|
ParameterID { ID::convolutionReverbMix, 1 },
|
|
|
"Reverb Mix",
|
|
|
"Reverb Mix",
|
|
|
"%",
|
|
|
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
50.0f,
|
|
|
50.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)) {}
|
|
|
|
|
|
|
|
|
getPercentageAttributes())) {}
|
|
|
|
|
|
|
|
|
AudioParameterBool& cabEnabled;
|
|
|
AudioParameterBool& cabEnabled;
|
|
|
AudioParameterBool& reverbEnabled;
|
|
|
AudioParameterBool& reverbEnabled;
|
|
@@ -450,42 +436,33 @@ public: |
|
|
{
|
|
|
{
|
|
|
explicit CompressorGroup (AudioProcessorParameterGroup& layout)
|
|
|
explicit CompressorGroup (AudioProcessorParameterGroup& layout)
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
ID::compressorEnabled,
|
|
|
|
|
|
|
|
|
ParameterID { ID::compressorEnabled, 1 },
|
|
|
"Comp.",
|
|
|
"Comp.",
|
|
|
false,
|
|
|
|
|
|
"")),
|
|
|
|
|
|
|
|
|
false)),
|
|
|
threshold (addToLayout<Parameter> (layout,
|
|
|
threshold (addToLayout<Parameter> (layout,
|
|
|
ID::compressorThreshold,
|
|
|
|
|
|
|
|
|
ParameterID { ID::compressorThreshold, 1 },
|
|
|
"Threshold",
|
|
|
"Threshold",
|
|
|
"dB",
|
|
|
|
|
|
NormalisableRange<float> (-100.0f, 0.0f),
|
|
|
NormalisableRange<float> (-100.0f, 0.0f),
|
|
|
0.0f,
|
|
|
0.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getDbAttributes())),
|
|
|
ratio (addToLayout<Parameter> (layout,
|
|
|
ratio (addToLayout<Parameter> (layout,
|
|
|
ID::compressorRatio,
|
|
|
|
|
|
|
|
|
ParameterID { ID::compressorRatio, 1 },
|
|
|
"Ratio",
|
|
|
"Ratio",
|
|
|
":1",
|
|
|
|
|
|
NormalisableRange<float> (1.0f, 100.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (1.0f, 100.0f, 0.0f, 0.25f),
|
|
|
1.0f,
|
|
|
1.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getRatioAttributes())),
|
|
|
attack (addToLayout<Parameter> (layout,
|
|
|
attack (addToLayout<Parameter> (layout,
|
|
|
ID::compressorAttack,
|
|
|
|
|
|
|
|
|
ParameterID { ID::compressorAttack, 1 },
|
|
|
"Attack",
|
|
|
"Attack",
|
|
|
"ms",
|
|
|
|
|
|
NormalisableRange<float> (0.01f, 1000.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (0.01f, 1000.0f, 0.0f, 0.25f),
|
|
|
1.0f,
|
|
|
1.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getMsAttributes())),
|
|
|
release (addToLayout<Parameter> (layout,
|
|
|
release (addToLayout<Parameter> (layout,
|
|
|
ID::compressorRelease,
|
|
|
|
|
|
|
|
|
ParameterID { ID::compressorRelease, 1 },
|
|
|
"Release",
|
|
|
"Release",
|
|
|
"ms",
|
|
|
|
|
|
NormalisableRange<float> (10.0f, 10000.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (10.0f, 10000.0f, 0.0f, 0.25f),
|
|
|
100.0f,
|
|
|
100.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)) {}
|
|
|
|
|
|
|
|
|
getMsAttributes())) {}
|
|
|
|
|
|
|
|
|
AudioParameterBool& enabled;
|
|
|
AudioParameterBool& enabled;
|
|
|
Parameter& threshold;
|
|
|
Parameter& threshold;
|
|
@@ -498,42 +475,33 @@ public: |
|
|
{
|
|
|
{
|
|
|
explicit NoiseGateGroup (AudioProcessorParameterGroup& layout)
|
|
|
explicit NoiseGateGroup (AudioProcessorParameterGroup& layout)
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
ID::noiseGateEnabled,
|
|
|
|
|
|
|
|
|
ParameterID { ID::noiseGateEnabled, 1 },
|
|
|
"Gate",
|
|
|
"Gate",
|
|
|
false,
|
|
|
|
|
|
"")),
|
|
|
|
|
|
|
|
|
false)),
|
|
|
threshold (addToLayout<Parameter> (layout,
|
|
|
threshold (addToLayout<Parameter> (layout,
|
|
|
ID::noiseGateThreshold,
|
|
|
|
|
|
|
|
|
ParameterID { ID::noiseGateThreshold, 1 },
|
|
|
"Threshold",
|
|
|
"Threshold",
|
|
|
"dB",
|
|
|
|
|
|
NormalisableRange<float> (-100.0f, 0.0f),
|
|
|
NormalisableRange<float> (-100.0f, 0.0f),
|
|
|
-100.0f,
|
|
|
-100.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getDbAttributes())),
|
|
|
ratio (addToLayout<Parameter> (layout,
|
|
|
ratio (addToLayout<Parameter> (layout,
|
|
|
ID::noiseGateRatio,
|
|
|
|
|
|
|
|
|
ParameterID { ID::noiseGateRatio, 1 },
|
|
|
"Ratio",
|
|
|
"Ratio",
|
|
|
":1",
|
|
|
|
|
|
NormalisableRange<float> (1.0f, 100.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (1.0f, 100.0f, 0.0f, 0.25f),
|
|
|
10.0f,
|
|
|
10.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getRatioAttributes())),
|
|
|
attack (addToLayout<Parameter> (layout,
|
|
|
attack (addToLayout<Parameter> (layout,
|
|
|
ID::noiseGateAttack,
|
|
|
|
|
|
|
|
|
ParameterID { ID::noiseGateAttack, 1 },
|
|
|
"Attack",
|
|
|
"Attack",
|
|
|
"ms",
|
|
|
|
|
|
NormalisableRange<float> (0.01f, 1000.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (0.01f, 1000.0f, 0.0f, 0.25f),
|
|
|
1.0f,
|
|
|
1.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getMsAttributes())),
|
|
|
release (addToLayout<Parameter> (layout,
|
|
|
release (addToLayout<Parameter> (layout,
|
|
|
ID::noiseGateRelease,
|
|
|
|
|
|
|
|
|
ParameterID { ID::noiseGateRelease, 1 },
|
|
|
"Release",
|
|
|
"Release",
|
|
|
"ms",
|
|
|
|
|
|
NormalisableRange<float> (10.0f, 10000.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (10.0f, 10000.0f, 0.0f, 0.25f),
|
|
|
100.0f,
|
|
|
100.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)) {}
|
|
|
|
|
|
|
|
|
getMsAttributes())) {}
|
|
|
|
|
|
|
|
|
AudioParameterBool& enabled;
|
|
|
AudioParameterBool& enabled;
|
|
|
Parameter& threshold;
|
|
|
Parameter& threshold;
|
|
@@ -546,26 +514,21 @@ public: |
|
|
{
|
|
|
{
|
|
|
explicit LimiterGroup (AudioProcessorParameterGroup& layout)
|
|
|
explicit LimiterGroup (AudioProcessorParameterGroup& layout)
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
ID::limiterEnabled,
|
|
|
|
|
|
|
|
|
ParameterID { ID::limiterEnabled, 1 },
|
|
|
"Limiter",
|
|
|
"Limiter",
|
|
|
false,
|
|
|
|
|
|
"")),
|
|
|
|
|
|
|
|
|
false)),
|
|
|
threshold (addToLayout<Parameter> (layout,
|
|
|
threshold (addToLayout<Parameter> (layout,
|
|
|
ID::limiterThreshold,
|
|
|
|
|
|
|
|
|
ParameterID { ID::limiterThreshold, 1 },
|
|
|
"Threshold",
|
|
|
"Threshold",
|
|
|
"dB",
|
|
|
|
|
|
NormalisableRange<float> (-40.0f, 0.0f),
|
|
|
NormalisableRange<float> (-40.0f, 0.0f),
|
|
|
0.0f,
|
|
|
0.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getDbAttributes())),
|
|
|
release (addToLayout<Parameter> (layout,
|
|
|
release (addToLayout<Parameter> (layout,
|
|
|
ID::limiterRelease,
|
|
|
|
|
|
|
|
|
ParameterID { ID::limiterRelease, 1 },
|
|
|
"Release",
|
|
|
"Release",
|
|
|
"ms",
|
|
|
|
|
|
NormalisableRange<float> (10.0f, 10000.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (10.0f, 10000.0f, 0.0f, 0.25f),
|
|
|
100.0f,
|
|
|
100.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)) {}
|
|
|
|
|
|
|
|
|
getMsAttributes())) {}
|
|
|
|
|
|
|
|
|
AudioParameterBool& enabled;
|
|
|
AudioParameterBool& enabled;
|
|
|
Parameter& threshold;
|
|
|
Parameter& threshold;
|
|
@@ -576,39 +539,32 @@ public: |
|
|
{
|
|
|
{
|
|
|
explicit DirectDelayGroup (AudioProcessorParameterGroup& layout)
|
|
|
explicit DirectDelayGroup (AudioProcessorParameterGroup& layout)
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
ID::directDelayEnabled,
|
|
|
|
|
|
|
|
|
ParameterID { ID::directDelayEnabled, 1 },
|
|
|
"DL Dir.",
|
|
|
"DL Dir.",
|
|
|
false,
|
|
|
|
|
|
"")),
|
|
|
|
|
|
|
|
|
false)),
|
|
|
type (addToLayout<AudioParameterChoice> (layout,
|
|
|
type (addToLayout<AudioParameterChoice> (layout,
|
|
|
ID::directDelayType,
|
|
|
|
|
|
|
|
|
ParameterID { ID::directDelayType, 1 },
|
|
|
"DL Type",
|
|
|
"DL Type",
|
|
|
StringArray { "None", "Linear", "Lagrange", "Thiran" },
|
|
|
StringArray { "None", "Linear", "Lagrange", "Thiran" },
|
|
|
1)),
|
|
|
1)),
|
|
|
value (addToLayout<Parameter> (layout,
|
|
|
value (addToLayout<Parameter> (layout,
|
|
|
ID::directDelayValue,
|
|
|
|
|
|
|
|
|
ParameterID { ID::directDelayValue, 1 },
|
|
|
"Delay",
|
|
|
"Delay",
|
|
|
"smps",
|
|
|
|
|
|
NormalisableRange<float> (0.0f, 44100.0f),
|
|
|
NormalisableRange<float> (0.0f, 44100.0f),
|
|
|
0.0f,
|
|
|
0.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getBasicAttributes().withLabel ("smps"))),
|
|
|
smoothing (addToLayout<Parameter> (layout,
|
|
|
smoothing (addToLayout<Parameter> (layout,
|
|
|
ID::directDelaySmoothing,
|
|
|
|
|
|
|
|
|
ParameterID { ID::directDelaySmoothing, 1 },
|
|
|
"Smooth",
|
|
|
"Smooth",
|
|
|
"ms",
|
|
|
|
|
|
NormalisableRange<float> (20.0f, 10000.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (20.0f, 10000.0f, 0.0f, 0.25f),
|
|
|
200.0f,
|
|
|
200.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getMsAttributes())),
|
|
|
mix (addToLayout<Parameter> (layout,
|
|
|
mix (addToLayout<Parameter> (layout,
|
|
|
ID::directDelayMix,
|
|
|
|
|
|
|
|
|
ParameterID { ID::directDelayMix, 1 },
|
|
|
"Delay Mix",
|
|
|
"Delay Mix",
|
|
|
"%",
|
|
|
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
50.0f,
|
|
|
50.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)) {}
|
|
|
|
|
|
|
|
|
getPercentageAttributes())) {}
|
|
|
|
|
|
|
|
|
AudioParameterBool& enabled;
|
|
|
AudioParameterBool& enabled;
|
|
|
AudioParameterChoice& type;
|
|
|
AudioParameterChoice& type;
|
|
@@ -621,55 +577,44 @@ public: |
|
|
{
|
|
|
{
|
|
|
explicit DelayEffectGroup (AudioProcessorParameterGroup& layout)
|
|
|
explicit DelayEffectGroup (AudioProcessorParameterGroup& layout)
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
ID::delayEffectEnabled,
|
|
|
|
|
|
|
|
|
ParameterID { ID::delayEffectEnabled, 1 },
|
|
|
"DL Effect",
|
|
|
"DL Effect",
|
|
|
false,
|
|
|
|
|
|
"")),
|
|
|
|
|
|
|
|
|
false)),
|
|
|
type (addToLayout<AudioParameterChoice> (layout,
|
|
|
type (addToLayout<AudioParameterChoice> (layout,
|
|
|
ID::delayEffectType,
|
|
|
|
|
|
|
|
|
ParameterID { ID::delayEffectType, 1 },
|
|
|
"DL Type",
|
|
|
"DL Type",
|
|
|
StringArray { "None", "Linear", "Lagrange", "Thiran" },
|
|
|
StringArray { "None", "Linear", "Lagrange", "Thiran" },
|
|
|
1)),
|
|
|
1)),
|
|
|
value (addToLayout<Parameter> (layout,
|
|
|
value (addToLayout<Parameter> (layout,
|
|
|
ID::delayEffectValue,
|
|
|
|
|
|
|
|
|
ParameterID { ID::delayEffectValue, 1 },
|
|
|
"Delay",
|
|
|
"Delay",
|
|
|
"ms",
|
|
|
|
|
|
NormalisableRange<float> (0.01f, 1000.0f),
|
|
|
NormalisableRange<float> (0.01f, 1000.0f),
|
|
|
100.0f,
|
|
|
100.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getMsAttributes())),
|
|
|
smoothing (addToLayout<Parameter> (layout,
|
|
|
smoothing (addToLayout<Parameter> (layout,
|
|
|
ID::delayEffectSmoothing,
|
|
|
|
|
|
|
|
|
ParameterID { ID::delayEffectSmoothing, 1 },
|
|
|
"Smooth",
|
|
|
"Smooth",
|
|
|
"ms",
|
|
|
|
|
|
NormalisableRange<float> (20.0f, 10000.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (20.0f, 10000.0f, 0.0f, 0.25f),
|
|
|
400.0f,
|
|
|
400.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getMsAttributes())),
|
|
|
lowpass (addToLayout<Parameter> (layout,
|
|
|
lowpass (addToLayout<Parameter> (layout,
|
|
|
ID::delayEffectLowpass,
|
|
|
|
|
|
|
|
|
ParameterID { ID::delayEffectLowpass, 1 },
|
|
|
"Low-pass",
|
|
|
"Low-pass",
|
|
|
"Hz",
|
|
|
|
|
|
NormalisableRange<float> (20.0f, 22000.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (20.0f, 22000.0f, 0.0f, 0.25f),
|
|
|
22000.0f,
|
|
|
22000.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getHzAttributes())),
|
|
|
mix (addToLayout<Parameter> (layout,
|
|
|
mix (addToLayout<Parameter> (layout,
|
|
|
ID::delayEffectMix,
|
|
|
|
|
|
|
|
|
ParameterID { ID::delayEffectMix, 1 },
|
|
|
"Delay Mix",
|
|
|
"Delay Mix",
|
|
|
"%",
|
|
|
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
50.0f,
|
|
|
50.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getPercentageAttributes())),
|
|
|
feedback (addToLayout<Parameter> (layout,
|
|
|
feedback (addToLayout<Parameter> (layout,
|
|
|
ID::delayEffectFeedback,
|
|
|
|
|
|
|
|
|
ParameterID { ID::delayEffectFeedback, 1 },
|
|
|
"Feedback",
|
|
|
"Feedback",
|
|
|
"dB",
|
|
|
|
|
|
NormalisableRange<float> (-100.0f, 0.0f),
|
|
|
NormalisableRange<float> (-100.0f, 0.0f),
|
|
|
-100.0f,
|
|
|
-100.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)) {}
|
|
|
|
|
|
|
|
|
getDbAttributes())) {}
|
|
|
|
|
|
|
|
|
AudioParameterBool& enabled;
|
|
|
AudioParameterBool& enabled;
|
|
|
AudioParameterChoice& type;
|
|
|
AudioParameterChoice& type;
|
|
@@ -684,50 +629,39 @@ public: |
|
|
{
|
|
|
{
|
|
|
explicit PhaserGroup (AudioProcessorParameterGroup& layout)
|
|
|
explicit PhaserGroup (AudioProcessorParameterGroup& layout)
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
ID::phaserEnabled,
|
|
|
|
|
|
|
|
|
ParameterID { ID::phaserEnabled, 1 },
|
|
|
"Phaser",
|
|
|
"Phaser",
|
|
|
false,
|
|
|
|
|
|
"")),
|
|
|
|
|
|
|
|
|
false)),
|
|
|
rate (addToLayout<Parameter> (layout,
|
|
|
rate (addToLayout<Parameter> (layout,
|
|
|
ID::phaserRate,
|
|
|
|
|
|
|
|
|
ParameterID { ID::phaserRate, 1 },
|
|
|
"Rate",
|
|
|
"Rate",
|
|
|
"Hz",
|
|
|
|
|
|
NormalisableRange<float> (0.05f, 20.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (0.05f, 20.0f, 0.0f, 0.25f),
|
|
|
1.0f,
|
|
|
1.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getHzAttributes())),
|
|
|
depth (addToLayout<Parameter> (layout,
|
|
|
depth (addToLayout<Parameter> (layout,
|
|
|
ID::phaserDepth,
|
|
|
|
|
|
|
|
|
ParameterID { ID::phaserDepth, 1 },
|
|
|
"Depth",
|
|
|
"Depth",
|
|
|
"%",
|
|
|
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
50.0f,
|
|
|
50.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getPercentageAttributes())),
|
|
|
centreFrequency (addToLayout<Parameter> (layout,
|
|
|
centreFrequency (addToLayout<Parameter> (layout,
|
|
|
ID::phaserCentreFrequency,
|
|
|
|
|
|
|
|
|
ParameterID { ID::phaserCentreFrequency, 1 },
|
|
|
"Center",
|
|
|
"Center",
|
|
|
"Hz",
|
|
|
|
|
|
NormalisableRange<float> (20.0f, 20000.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (20.0f, 20000.0f, 0.0f, 0.25f),
|
|
|
600.0f,
|
|
|
600.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getHzAttributes())),
|
|
|
feedback (addToLayout<Parameter> (layout,
|
|
|
feedback (addToLayout<Parameter> (layout,
|
|
|
ID::phaserFeedback,
|
|
|
|
|
|
|
|
|
ParameterID { ID::phaserFeedback, 1 },
|
|
|
"Feedback",
|
|
|
"Feedback",
|
|
|
"%",
|
|
|
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
50.0f,
|
|
|
50.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getPercentageAttributes())),
|
|
|
mix (addToLayout<Parameter> (layout,
|
|
|
mix (addToLayout<Parameter> (layout,
|
|
|
ID::phaserMix,
|
|
|
|
|
|
|
|
|
ParameterID { ID::phaserMix, 1 },
|
|
|
"Mix",
|
|
|
"Mix",
|
|
|
"%",
|
|
|
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
50.0f,
|
|
|
50.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)) {}
|
|
|
|
|
|
|
|
|
getPercentageAttributes())) {}
|
|
|
|
|
|
|
|
|
AudioParameterBool& enabled;
|
|
|
AudioParameterBool& enabled;
|
|
|
Parameter& rate;
|
|
|
Parameter& rate;
|
|
@@ -741,50 +675,39 @@ public: |
|
|
{
|
|
|
{
|
|
|
explicit ChorusGroup (AudioProcessorParameterGroup& layout)
|
|
|
explicit ChorusGroup (AudioProcessorParameterGroup& layout)
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
ID::chorusEnabled,
|
|
|
|
|
|
|
|
|
ParameterID { ID::chorusEnabled, 1 },
|
|
|
"Chorus",
|
|
|
"Chorus",
|
|
|
false,
|
|
|
|
|
|
"")),
|
|
|
|
|
|
|
|
|
false)),
|
|
|
rate (addToLayout<Parameter> (layout,
|
|
|
rate (addToLayout<Parameter> (layout,
|
|
|
ID::chorusRate,
|
|
|
|
|
|
|
|
|
ParameterID { ID::chorusRate, 1 },
|
|
|
"Rate",
|
|
|
"Rate",
|
|
|
"Hz",
|
|
|
|
|
|
NormalisableRange<float> (0.05f, 20.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (0.05f, 20.0f, 0.0f, 0.25f),
|
|
|
1.0f,
|
|
|
1.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getHzAttributes())),
|
|
|
depth (addToLayout<Parameter> (layout,
|
|
|
depth (addToLayout<Parameter> (layout,
|
|
|
ID::chorusDepth,
|
|
|
|
|
|
|
|
|
ParameterID { ID::chorusDepth, 1 },
|
|
|
"Depth",
|
|
|
"Depth",
|
|
|
"%",
|
|
|
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
50.0f,
|
|
|
50.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getPercentageAttributes())),
|
|
|
centreDelay (addToLayout<Parameter> (layout,
|
|
|
centreDelay (addToLayout<Parameter> (layout,
|
|
|
ID::chorusCentreDelay,
|
|
|
|
|
|
|
|
|
ParameterID { ID::chorusCentreDelay, 1 },
|
|
|
"Center",
|
|
|
"Center",
|
|
|
"ms",
|
|
|
|
|
|
NormalisableRange<float> (1.0f, 100.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (1.0f, 100.0f, 0.0f, 0.25f),
|
|
|
7.0f,
|
|
|
7.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getMsAttributes())),
|
|
|
feedback (addToLayout<Parameter> (layout,
|
|
|
feedback (addToLayout<Parameter> (layout,
|
|
|
ID::chorusFeedback,
|
|
|
|
|
|
|
|
|
ParameterID { ID::chorusFeedback, 1 },
|
|
|
"Feedback",
|
|
|
"Feedback",
|
|
|
"%",
|
|
|
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
50.0f,
|
|
|
50.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getPercentageAttributes())),
|
|
|
mix (addToLayout<Parameter> (layout,
|
|
|
mix (addToLayout<Parameter> (layout,
|
|
|
ID::chorusMix,
|
|
|
|
|
|
|
|
|
ParameterID { ID::chorusMix, 1 },
|
|
|
"Mix",
|
|
|
"Mix",
|
|
|
"%",
|
|
|
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
50.0f,
|
|
|
50.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)) {}
|
|
|
|
|
|
|
|
|
getPercentageAttributes())) {}
|
|
|
|
|
|
|
|
|
AudioParameterBool& enabled;
|
|
|
AudioParameterBool& enabled;
|
|
|
Parameter& rate;
|
|
|
Parameter& rate;
|
|
@@ -798,39 +721,32 @@ public: |
|
|
{
|
|
|
{
|
|
|
explicit LadderGroup (AudioProcessorParameterGroup& layout)
|
|
|
explicit LadderGroup (AudioProcessorParameterGroup& layout)
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
: enabled (addToLayout<AudioParameterBool> (layout,
|
|
|
ID::ladderEnabled,
|
|
|
|
|
|
|
|
|
ParameterID { ID::ladderEnabled, 1 },
|
|
|
"Ladder",
|
|
|
"Ladder",
|
|
|
false,
|
|
|
|
|
|
"")),
|
|
|
|
|
|
|
|
|
false)),
|
|
|
mode (addToLayout<AudioParameterChoice> (layout,
|
|
|
mode (addToLayout<AudioParameterChoice> (layout,
|
|
|
ID::ladderMode,
|
|
|
|
|
|
|
|
|
ParameterID { ID::ladderMode, 1 },
|
|
|
"Mode",
|
|
|
"Mode",
|
|
|
StringArray { "LP12", "LP24", "HP12", "HP24", "BP12", "BP24" },
|
|
|
StringArray { "LP12", "LP24", "HP12", "HP24", "BP12", "BP24" },
|
|
|
1)),
|
|
|
1)),
|
|
|
cutoff (addToLayout<Parameter> (layout,
|
|
|
cutoff (addToLayout<Parameter> (layout,
|
|
|
ID::ladderCutoff,
|
|
|
|
|
|
|
|
|
ParameterID { ID::ladderCutoff, 1 },
|
|
|
"Frequency",
|
|
|
"Frequency",
|
|
|
"Hz",
|
|
|
|
|
|
NormalisableRange<float> (10.0f, 22000.0f, 0.0f, 0.25f),
|
|
|
NormalisableRange<float> (10.0f, 22000.0f, 0.0f, 0.25f),
|
|
|
1000.0f,
|
|
|
1000.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getHzAttributes())),
|
|
|
resonance (addToLayout<Parameter> (layout,
|
|
|
resonance (addToLayout<Parameter> (layout,
|
|
|
ID::ladderResonance,
|
|
|
|
|
|
|
|
|
ParameterID { ID::ladderResonance, 1 },
|
|
|
"Resonance",
|
|
|
"Resonance",
|
|
|
"%",
|
|
|
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
NormalisableRange<float> (0.0f, 100.0f),
|
|
|
0.0f,
|
|
|
0.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)),
|
|
|
|
|
|
|
|
|
getPercentageAttributes())),
|
|
|
drive (addToLayout<Parameter> (layout,
|
|
|
drive (addToLayout<Parameter> (layout,
|
|
|
ID::ladderDrive,
|
|
|
|
|
|
|
|
|
ParameterID { ID::ladderDrive, 1 },
|
|
|
"Drive",
|
|
|
"Drive",
|
|
|
"dB",
|
|
|
|
|
|
NormalisableRange<float> (0.0f, 40.0f),
|
|
|
NormalisableRange<float> (0.0f, 40.0f),
|
|
|
0.0f,
|
|
|
0.0f,
|
|
|
valueToTextFunction,
|
|
|
|
|
|
textToValueFunction)) {}
|
|
|
|
|
|
|
|
|
getDbAttributes())) {}
|
|
|
|
|
|
|
|
|
AudioParameterBool& enabled;
|
|
|
AudioParameterBool& enabled;
|
|
|
AudioParameterChoice& mode;
|
|
|
AudioParameterChoice& mode;
|
|
|