Merge pull request #43 from yokemura/parameterID

Added ParameterID
This commit is contained in:
Takeshi Yokemura 2024-01-14 19:43:30 +09:00 committed by GitHub
commit f6116fe0b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -20,18 +20,31 @@
Magical8bitPlug2AudioProcessor::Magical8bitPlug2AudioProcessor() Magical8bitPlug2AudioProcessor::Magical8bitPlug2AudioProcessor()
: parameters( : parameters(
*this, nullptr, Identifier("Params"), *this, nullptr, Identifier("Params"),
{ {//
//
// Meta // Meta
// //
std::make_unique<AudioParameterBool> ("isAdvancedPanelOpen_raw", "Advanced", false), std::make_unique<AudioParameterBool>(ParameterID{"isAdvancedPanelOpen_raw", 1},
std::make_unique<AudioParameterChoice> ("colorScheme", "Color Scheme", StringArray ({"YMCK", "YMCK Dark", "Japan", "Worldwide", "Monotone", "Mono Dark"}), 0), "Advanced",
false),
std::make_unique<AudioParameterChoice>(ParameterID{"colorScheme", 1},
"Color Scheme",
StringArray({"YMCK", "YMCK Dark", "Japan", "Worldwide", "Monotone", "Mono Dark"}),
0),
// //
// Basic // Basic
// //
std::make_unique<AudioParameterChoice> ("osc", "OSC Type", StringArray ({"Pulse/Square", "Triangle", "Noise"}), 0), std::make_unique<AudioParameterChoice>(ParameterID{"osc", 1},
std::make_unique<AudioParameterFloat> ("gain", "Gain", 0.0f, 1.0f, 0.5f), "OSC Type",
std::make_unique<AudioParameterFloat> ("maxPoly", "Max Poly", NormalisableRange<float> (1.0f, //min StringArray({"Pulse/Square", "Triangle", "Noise"}),
0),
std::make_unique<AudioParameterFloat>(ParameterID{"gain", 1},
"Gain",
0.0f,
1.0f,
0.5f),
std::make_unique<AudioParameterFloat>(ParameterID{"maxPoly", 1},
"Max Poly",
NormalisableRange<float>(1.0f, // min
64.0f, // max 64.0f, // max
1.0f, // step 1.0f, // step
1.0f), // skew 1.0f), // skew
@ -39,26 +52,26 @@ Magical8bitPlug2AudioProcessor::Magical8bitPlug2AudioProcessor()
// //
// ADSR // ADSR
// //
std::make_unique<AudioParameterFloat> ("attack", //ID std::make_unique<AudioParameterFloat>(ParameterID{"attack", 1},
"Attack", // name "Attack", // name
NormalisableRange<float>(0.0f, // min NormalisableRange<float>(0.0f, // min
5.0f, // max 5.0f, // max
0.001f, // step 0.001f, // step
0.5f), // skew 0.5f), // skew
0.0f), // default 0.0f), // default
std::make_unique<AudioParameterFloat> ("decay", //ID std::make_unique<AudioParameterFloat>(ParameterID{"decay", 1},
"Decay", // name "Decay", // name
NormalisableRange<float>(0.0f, // min NormalisableRange<float>(0.0f, // min
5.0f, // max 5.0f, // max
0.001f, // step 0.001f, // step
0.5f), // skew 0.5f), // skew
0.0f), // default 0.0f), // default
std::make_unique<AudioParameterFloat> ("suslevel", //ID std::make_unique<AudioParameterFloat>(ParameterID{"suslevel", 1},
"Sustain", // name "Sustain", // name
0.0f, // min 0.0f, // min
1.0f, // max 1.0f, // max
1.0f), // default 1.0f), // default
std::make_unique<AudioParameterFloat> ("release", //ID std::make_unique<AudioParameterFloat>(ParameterID{"release", 1},
"Release", // name "Release", // name
NormalisableRange<float>(0.0f, // min NormalisableRange<float>(0.0f, // min
5.0f, // max 5.0f, // max
@ -68,38 +81,66 @@ Magical8bitPlug2AudioProcessor::Magical8bitPlug2AudioProcessor()
// //
// Monophonic // Monophonic
// //
std::make_unique<AudioParameterChoice> ("monophonicBehavior_raw", "Behavior", StringArray ({"Legato", "Arpeggio Up", "Arpeggio Down", "Non-legato"}), 0), std::make_unique<AudioParameterChoice>(ParameterID{"monophonicBehavior_raw", 1},
std::make_unique<AudioParameterChoice> ("arpeggioIntervalType_raw", "Interval", StringArray ({"1 frame", "2 frames", "3 frames", "96th", "64th", "48th", "32nd", "24th", "Slider"}), 0), "Behavior",
std::make_unique<AudioParameterFloat> ("arpeggioIntervalSliderValue", //ID StringArray({"Legato", "Arpeggio Up", "Arpeggio Down", "Non-legato"}),
0),
std::make_unique<AudioParameterChoice>(ParameterID{"arpeggioIntervalType_raw", 1},
"Interval",
StringArray({"1 frame", "2 frames", "3 frames", "96th", "64th", "48th", "32nd", "24th", "Slider"}),
0),
std::make_unique<AudioParameterFloat>(ParameterID{"arpeggioIntervalSliderValue", 1},
"Interval", // name "Interval", // name
NormalisableRange<float>(0.001f, // min NormalisableRange<float>(0.001f, // min
0.3f, // max 0.3f, // max
0.001f, // step 0.001f, // step
0.5f), // skew 0.5f), // skew
0.001f), // default 0.001f), // default
std::make_unique<AudioParameterFloat> ("portamentoTime", "Portamento Time", 0.0f, 1.0f, 0.0f), std::make_unique<AudioParameterFloat>(ParameterID{"portamentoTime", 1},
"Portamento Time",
0.0f,
1.0f,
0.0f),
// //
// Bend // Bend
// //
std::make_unique<AudioParameterInt> ("bendRange", "Bend Range", 0, 24, 2), std::make_unique<AudioParameterInt>(ParameterID{"bendRange", 1},
"Bend Range",
0,
24,
2),
// //
// Vibrato // Vibrato
// //
std::make_unique<AudioParameterFloat> ("vibratoRate", //ID std::make_unique<AudioParameterFloat>(ParameterID{"vibratoRate", 1},
"Rate", // name "Rate", // name
NormalisableRange<float>(0.01f, // min NormalisableRange<float>(0.01f, // min
1.0f, // max 1.0f, // max
0.001f, // step 0.001f, // step
0.5f), // skew 0.5f), // skew
0.15f), // default 0.15f), // default
std::make_unique<AudioParameterFloat> ("vibratoDepth", "Depth", 0.0f, 2.0f, 0.0f), std::make_unique<AudioParameterFloat>(ParameterID{"vibratoDepth", 1},
std::make_unique<AudioParameterFloat> ("vibratoDelay", "Delay", 0.0f, 1.0f, 0.3f), "Depth",
std::make_unique<AudioParameterBool> ("vibratoIgnoresWheel_raw", "Ignores Wheel", true), 0.0f,
2.0f,
0.0f),
std::make_unique<AudioParameterFloat>(ParameterID{"vibratoDelay", 1},
"Delay",
0.0f,
1.0f,
0.3f),
std::make_unique<AudioParameterBool>(ParameterID{"vibratoIgnoresWheel_raw", 1},
"Ignores Wheel",
true),
// //
// Sweep // Sweep
// //
std::make_unique<AudioParameterInt> ("sweepInitialPitch", "Ini.Pitch", -24, 24, 0), std::make_unique<AudioParameterInt>(ParameterID{"sweepInitialPitch", 1},
std::make_unique<AudioParameterFloat> ("sweepTime", //ID "Ini.Pitch",
-24,
24,
0),
std::make_unique<AudioParameterFloat>(ParameterID{"sweepTime", 1},
"Time", // name "Time", // name
NormalisableRange<float>(0.01f, // min NormalisableRange<float>(0.01f, // min
5.0f, // max 5.0f, // max
@ -109,25 +150,40 @@ Magical8bitPlug2AudioProcessor::Magical8bitPlug2AudioProcessor()
// //
// For Pulse // For Pulse
// //
std::make_unique<AudioParameterChoice> ("duty", "Duty", StringArray ({"12.5%", "25%", "50%"}), 0), std::make_unique<AudioParameterChoice>(ParameterID{"duty", 1},
"Duty",
StringArray({"12.5%", "25%", "50%"}),
0),
// //
// For Noise // For Noise
// //
std::make_unique<AudioParameterChoice> ("noiseAlgorithm_raw", "Algorithm", StringArray ({"4bit Pure Random", "1bit Long Cycle", "1bit Short Cycle"}), 0), std::make_unique<AudioParameterChoice>(ParameterID{"noiseAlgorithm_raw", 1},
std::make_unique<AudioParameterBool> ("restrictsToNESFrequency_raw", "Restricts to NES frequency", false), "Algorithm", StringArray({"4bit Pure Random", "1bit Long Cycle", "1bit Short Cycle"}),
0),
std::make_unique<AudioParameterBool>(ParameterID{"restrictsToNESFrequency_raw", 1},
"Restricts to NES frequency",
false),
// //
// Sequence // Sequence
// //
std::make_unique<AudioParameterBool> ("isVolumeSequenceEnabled_raw", "Enabled", false), std::make_unique<AudioParameterBool>(ParameterID{"isVolumeSequenceEnabled_raw", 1},
std::make_unique<AudioParameterBool> ("isPitchSequenceEnabled_raw", "Enabled", false), "Enabled",
std::make_unique<AudioParameterBool> ("isDutySequenceEnabled_raw", "Enabled", false), false),
std::make_unique<AudioParameterChoice> ("pitchSequenceMode_raw", "Mode", StringArray ({"Coarse", "Fine"}), 0) std::make_unique<AudioParameterBool>(ParameterID{"isPitchSequenceEnabled_raw", 1},
} "Enabled",
) false),
, settingRefs (&parameters) std::make_unique<AudioParameterBool>(ParameterID{"isDutySequenceEnabled_raw", 1},
, synth(*this) "Enabled",
false),
std::make_unique<AudioParameterChoice>(ParameterID{"pitchSequenceMode_raw", 1},
"Mode",
StringArray({"Coarse", "Fine"}),
0)
}),
settingRefs(&parameters), synth(*this)
#ifndef JucePlugin_PreferredChannelConfigurations #ifndef JucePlugin_PreferredChannelConfigurations
, AudioProcessor (BusesProperties() ,
AudioProcessor(BusesProperties()
#if !JucePlugin_IsMidiEffect #if !JucePlugin_IsMidiEffect
#if !JucePlugin_IsSynth #if !JucePlugin_IsSynth
.withInput("Input", AudioChannelSet::stereo(), true) .withInput("Input", AudioChannelSet::stereo(), true)
@ -186,7 +242,8 @@ void Magical8bitPlug2AudioProcessor::setupVoice()
double Magical8bitPlug2AudioProcessor::getCurrentBPM() double Magical8bitPlug2AudioProcessor::getCurrentBPM()
{ {
auto ph = getPlayHead(); auto ph = getPlayHead();
if (ph == NULL) { if (ph == NULL)
{
return 120.0; return 120.0;
} }
juce::AudioPlayHead::CurrentPositionInfo result; juce::AudioPlayHead::CurrentPositionInfo result;
@ -281,8 +338,7 @@ bool Magical8bitPlug2AudioProcessor::isBusesLayoutSupported (const BusesLayout&
// This is the place where you check if the layout is supported. // This is the place where you check if the layout is supported.
// In this template code we only support mono or stereo. // In this template code we only support mono or stereo.
if (layouts.getMainOutputChannelSet() != AudioChannelSet::mono() if (layouts.getMainOutputChannelSet() != AudioChannelSet::mono() && layouts.getMainOutputChannelSet() != AudioChannelSet::stereo())
&& layouts.getMainOutputChannelSet() != AudioChannelSet::stereo())
return false; return false;
// This checks if the input layout matches the output layout // This checks if the input layout matches the output layout