mirror of
https://codeberg.org/armin/justasample.git
synced 2026-09-01 12:20:48 +02:00
fixes, changes to gitignore
This commit is contained in:
parent
2ab046489f
commit
11d81cf1fd
17 changed files with 1160 additions and 16 deletions
|
|
@ -187,6 +187,32 @@ inline static const String CHORUS_CENTER_DELAY{ "Chorus Center Delay" };
|
|||
inline static constexpr Range CHORUS_CENTER_DELAY_RANGE{ 0.f, 100.f }; // in ms
|
||||
inline static const String CHORUS_MIX{ "Chorus Mix" };
|
||||
|
||||
// Modulation section parameters
|
||||
inline static const String MOD_FILTER_TYPE{ "Mod Filter Type" };
|
||||
inline static const StringArray MOD_FILTER_TYPE_LABELS{ "LP12", "LP24", "HP", "BP", "Notch" };
|
||||
|
||||
inline static const String MOD_FILTER_CUTOFF{ "Mod Filter Cutoff" };
|
||||
inline static constexpr Range MOD_FILTER_CUTOFF_RANGE{ 20.f, 20000.f };
|
||||
inline static const String MOD_FILTER_RESONANCE{ "Mod Filter Resonance" };
|
||||
|
||||
inline static const String MOD_LFO_RATE{ "Mod LFO Rate" };
|
||||
inline static constexpr Range MOD_LFO_RATE_RANGE{ 0.05f, 30.f };
|
||||
inline static const String MOD_LFO_SYNC{ "Mod LFO Sync" };
|
||||
inline static const String MOD_LFO_SYNC_DIV{ "Mod LFO Sync Division" };
|
||||
inline static const StringArray MOD_LFO_SYNC_DIV_LABELS{ "1/2", "1/3", "1/4" };
|
||||
inline static const String MOD_LFO_WAVEFORM{ "Mod LFO Waveform" };
|
||||
inline static const StringArray MOD_LFO_WAVEFORM_LABELS{ "Sine", "Tri", "Saw", "Sqr" };
|
||||
inline static const String MOD_LFO_FILTER_DEPTH{ "Mod LFO Filter Depth" };
|
||||
inline static const String MOD_LFO_SPEED_DEPTH{ "Mod LFO Speed Depth" };
|
||||
|
||||
inline static const String MOD_PHASER_ENABLED{ "Mod Phaser Enabled" };
|
||||
inline static const String MOD_PHASER_DEPTH{ "Mod Phaser Depth" };
|
||||
inline static const String MOD_PHASER_FEEDBACK{ "Mod Phaser Feedback" };
|
||||
inline static const String MOD_PHASER_STAGES{ "Mod Phaser Stages" };
|
||||
|
||||
inline static const String MOD_RINGMOD_ENABLED{ "Mod Ring Mod Enabled" };
|
||||
inline static const String MOD_RINGMOD_MIX{ "Mod Ring Mod Mix" };
|
||||
|
||||
inline static const String FX_PERM{ "FX Ordering" };
|
||||
|
||||
enum FxTypes : std::uint8_t
|
||||
|
|
@ -210,9 +236,9 @@ inline std::array<FxTypes, 4> paramToPerm(int fxParam)
|
|||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
int index = fxParam / factorial;
|
||||
perm[i] = types[index];
|
||||
perm[static_cast<size_t>(i)] = types[static_cast<size_t>(index)];
|
||||
for (int j = index; j < 3; j++)
|
||||
types[j] = types[j + 1];
|
||||
types[static_cast<size_t>(j)] = types[static_cast<size_t>(j + 1)];
|
||||
fxParam %= factorial;
|
||||
if (i < 3)
|
||||
factorial /= 3 - i;
|
||||
|
|
@ -229,12 +255,12 @@ static int permToParam(std::array<FxTypes, 4> fxPerm)
|
|||
for (int i = 0; i < 3; i++)
|
||||
{
|
||||
int type = fxPerm[i];
|
||||
int index;
|
||||
size_t index;
|
||||
for (index = 0; index < types.size(); index++)
|
||||
if (type == types[index])
|
||||
break;
|
||||
result += factorial * index;
|
||||
for (int j = index; j < 3 - i; j++)
|
||||
result += factorial * static_cast<int>(index);
|
||||
for (size_t j = static_cast<size_t>(index); j < static_cast<size_t>(3 - i); j++)
|
||||
types[j] = types[j + 1];
|
||||
if (i < 3)
|
||||
factorial /= 3 - i;
|
||||
|
|
@ -286,7 +312,7 @@ inline void addBool(juce::AudioProcessorValueTreeState::ParameterLayout& layout,
|
|||
layout.add(std::make_unique<juce::AudioParameterBool>(
|
||||
juce::ParameterID{ identifier, versionNum }, identifier, defaultValue, juce::AudioParameterBoolAttributes{}.withStringFromValueFunction(formatFunc)
|
||||
));
|
||||
};
|
||||
}
|
||||
|
||||
/** Utility to add a choice parameter to the layout */
|
||||
inline void addChoice(juce::AudioProcessorValueTreeState::ParameterLayout& layout, const juce::String& identifier, int defaultIndex,
|
||||
|
|
@ -432,6 +458,26 @@ inline juce::AudioProcessorValueTreeState::ParameterLayout createParameterLayout
|
|||
addFloat(layout, CHORUS_CENTER_DELAY, 7.f, { CHORUS_CENTER_DELAY_RANGE, 1.f }, Version::V1, suffixF(" " + TIME_UNIT, 1.f));
|
||||
addFloat(layout, CHORUS_MIX, 0.5f, { 0.f, 1.f, 0.01f }, Version::V1);
|
||||
|
||||
// Modulation section parameters
|
||||
addChoice(layout, MOD_FILTER_TYPE, 0, MOD_FILTER_TYPE_LABELS, Version::V1_3_2);
|
||||
addFloat(layout, MOD_FILTER_CUTOFF, 1000.f, addSkew({ 20.f, 20000.f, 1.f }, 1000.f), Version::V1_3_2, suffixF(" " + FREQUENCY_UNIT, 1.f));
|
||||
addFloat(layout, MOD_FILTER_RESONANCE, 0.f, { 0.f, 1.f, 0.01f }, Version::V1_3_2);
|
||||
|
||||
addFloat(layout, MOD_LFO_RATE, 1.f, addSkew({ 0.05f, 30.f, 0.01f }, 1.f), Version::V1_3_2, suffixF(" " + FREQUENCY_UNIT, 0.01f));
|
||||
addBool(layout, MOD_LFO_SYNC, false, Version::V1_3_2);
|
||||
addChoice(layout, MOD_LFO_SYNC_DIV, 2, MOD_LFO_SYNC_DIV_LABELS, Version::V1_3_2);
|
||||
addChoice(layout, MOD_LFO_WAVEFORM, 0, MOD_LFO_WAVEFORM_LABELS, Version::V1_3_2);
|
||||
addFloat(layout, MOD_LFO_FILTER_DEPTH, 0.f, { 0.f, 1.f, 0.01f }, Version::V1_3_2);
|
||||
addFloat(layout, MOD_LFO_SPEED_DEPTH, 0.f, { 0.f, 1.f, 0.01f }, Version::V1_3_2);
|
||||
|
||||
addBool(layout, MOD_PHASER_ENABLED, false, Version::V1_3_2);
|
||||
addFloat(layout, MOD_PHASER_DEPTH, 0.5f, { 0.f, 1.f, 0.01f }, Version::V1_3_2);
|
||||
addFloat(layout, MOD_PHASER_FEEDBACK, 0.f, { -0.95f, 0.95f, 0.01f }, Version::V1_3_2);
|
||||
addInt(layout, MOD_PHASER_STAGES, 3, { 1, 6 }, Version::V1_3_2, suffixI(" stg"));
|
||||
|
||||
addBool(layout, MOD_RINGMOD_ENABLED, false, Version::V1_3_2);
|
||||
addFloat(layout, MOD_RINGMOD_MIX, 0.5f, { 0.f, 1.f, 0.01f }, Version::V1_3_2);
|
||||
|
||||
// This is a dummy parameter to notify the host of state changes
|
||||
addBool(layout, State::UI_DUMMY_PARAM, true, Version::V1, [](bool, int) -> String { return "Dummy Param"; });
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue