4 tiers of progressive complexity (Beginner 15 params → Expert 126), 13 presets total with per-param min/max/curve overrides that bias distributions without clamping extremes. Preset dropdown in UI, persisted to localStorage, supports ?preset= URL param.
628 lines
28 KiB
JavaScript
628 lines
28 KiB
JavaScript
// Synth presets for NISPS playground
|
|
// Each preset defines which of the 126 C15 params are active (ML-controlled)
|
|
// and which are muted at safe defaults. Organized in 4 tiers of complexity.
|
|
|
|
export const SYNTH_PRESETS = [
|
|
// ======================================================================
|
|
// TIER 1 — Beginner (15 active params)
|
|
// ======================================================================
|
|
{
|
|
id: 'beginner-1',
|
|
name: '1.1',
|
|
tier: 1,
|
|
description: 'Mellow filtered tones with slow attack and long reverb tail',
|
|
active: [
|
|
'Env_A_Att', 'Env_A_Dec_1', 'Env_A_Sus', 'Env_A_Rel',
|
|
'Osc_A_Fluct', 'Osc_B_Fluct',
|
|
'Shp_A_Drive', 'Shp_A_Fold',
|
|
'SV_Flt_Cut', 'SV_Flt_Res', 'SV_Flt_LBH',
|
|
'Out_Mix_A_Lvl', 'Out_Mix_SVF_Lvl', 'Out_Mix_Lvl',
|
|
'Reverb_Mix',
|
|
],
|
|
overrides: {
|
|
'Env_A_Att': { min: 0.2, max: 0.7, curve: 0.6 },
|
|
'Env_A_Dec_1': { min: 0.3, max: 0.8, curve: 0.55 },
|
|
'Env_A_Sus': { min: 0.3, max: 0.8, curve: 0.6 },
|
|
'Env_A_Rel': { min: 0.3, max: 0.65, curve: 0.55 },
|
|
'Osc_A_Fluct': { min: 0.0, max: 0.3, curve: 0.35 },
|
|
'Osc_B_Fluct': { min: 0.0, max: 0.3, curve: 0.35 },
|
|
'Shp_A_Drive': { min: 0.05, max: 0.35, curve: 0.35 },
|
|
'Shp_A_Fold': { min: 0.3, max: 0.7, curve: 0.45 },
|
|
'SV_Flt_Cut': { min: 0.15, max: 0.55, curve: 0.35 },
|
|
'SV_Flt_Res': { min: 0.2, max: 0.6, curve: 0.4 },
|
|
'SV_Flt_LBH': { min: 0.0, max: 0.4, curve: 0.35 },
|
|
'Out_Mix_A_Lvl': { min: 0.4, max: 0.85, curve: 0.55 },
|
|
'Out_Mix_SVF_Lvl': { min: 0.3, max: 0.8, curve: 0.55 },
|
|
'Out_Mix_Lvl': { min: 0.25, max: 0.6, curve: 0.45 },
|
|
'Reverb_Mix': { min: 0.15, max: 0.55, curve: 0.4 },
|
|
},
|
|
mutedOverrides: {},
|
|
groupCurves: {},
|
|
},
|
|
|
|
{
|
|
id: 'beginner-2',
|
|
name: '1.2',
|
|
tier: 1,
|
|
description: 'Snappy attack, crisp shaper, filter biased high',
|
|
active: [
|
|
'Env_A_Att', 'Env_A_Dec_1', 'Env_A_Sus', 'Env_A_Rel',
|
|
'Osc_A_Fluct', 'Osc_B_Fluct',
|
|
'Shp_A_Drive', 'Shp_A_Fold',
|
|
'SV_Flt_Cut', 'SV_Flt_Res', 'SV_Flt_LBH',
|
|
'Out_Mix_A_Lvl', 'Out_Mix_SVF_Lvl', 'Out_Mix_Lvl',
|
|
'Reverb_Mix',
|
|
],
|
|
overrides: {
|
|
'Env_A_Att': { min: 0.0, max: 0.1, curve: 0.3 },
|
|
'Env_A_Dec_1': { min: 0.15, max: 0.5, curve: 0.35 },
|
|
'Env_A_Sus': { min: 0.0, max: 0.4, curve: 0.4 },
|
|
'Env_A_Rel': { min: 0.15, max: 0.45, curve: 0.4 },
|
|
'Osc_A_Fluct': { min: 0.0, max: 0.2, curve: 0.35 },
|
|
'Osc_B_Fluct': { min: 0.0, max: 0.2, curve: 0.35 },
|
|
'Shp_A_Drive': { min: 0.15, max: 0.55, curve: 0.6 },
|
|
'Shp_A_Fold': { min: 0.2, max: 0.8, curve: 0.55 },
|
|
'SV_Flt_Cut': { min: 0.5, max: 0.95, curve: 0.65 },
|
|
'SV_Flt_Res': { min: 0.3, max: 0.7, curve: 0.55 },
|
|
'SV_Flt_LBH': { min: 0.4, max: 1.0, curve: 0.6 },
|
|
'Out_Mix_A_Lvl': { min: 0.4, max: 0.85, curve: 0.55 },
|
|
'Out_Mix_SVF_Lvl': { min: 0.35, max: 0.8, curve: 0.55 },
|
|
'Out_Mix_Lvl': { min: 0.2, max: 0.55, curve: 0.45 },
|
|
'Reverb_Mix': { min: 0.0, max: 0.25, curve: 0.35 },
|
|
},
|
|
mutedOverrides: {},
|
|
groupCurves: {},
|
|
},
|
|
|
|
{
|
|
id: 'beginner-3',
|
|
name: '1.3',
|
|
tier: 1,
|
|
description: 'Slow attack, high sustain, wide filter sweep, deep reverb',
|
|
active: [
|
|
'Env_A_Att', 'Env_A_Dec_1', 'Env_A_Sus', 'Env_A_Rel',
|
|
'Osc_A_Fluct', 'Osc_B_Fluct',
|
|
'Shp_A_Drive', 'Shp_A_Fold',
|
|
'SV_Flt_Cut', 'SV_Flt_Res', 'SV_Flt_LBH',
|
|
'Out_Mix_A_Lvl', 'Out_Mix_SVF_Lvl', 'Out_Mix_Lvl',
|
|
'Reverb_Mix',
|
|
],
|
|
overrides: {
|
|
'Env_A_Att': { min: 0.3, max: 0.85, curve: 0.6 },
|
|
'Env_A_Dec_1': { min: 0.4, max: 0.9, curve: 0.6 },
|
|
'Env_A_Sus': { min: 0.5, max: 1.0, curve: 0.6 },
|
|
'Env_A_Rel': { min: 0.35, max: 0.7, curve: 0.55 },
|
|
'Osc_A_Fluct': { min: 0.0, max: 0.4, curve: 0.35 },
|
|
'Osc_B_Fluct': { min: 0.0, max: 0.4, curve: 0.35 },
|
|
'Shp_A_Drive': { min: 0.0, max: 0.25, curve: 0.3 },
|
|
'Shp_A_Fold': { min: 0.4, max: 0.65, curve: 0.45 },
|
|
'SV_Flt_Cut': { min: 0.1, max: 0.85, curve: 0.45 },
|
|
'SV_Flt_Res': { min: 0.15, max: 0.55, curve: 0.4 },
|
|
'SV_Flt_LBH': { min: 0.0, max: 0.6, curve: 0.4 },
|
|
'Out_Mix_A_Lvl': { min: 0.45, max: 0.85, curve: 0.55 },
|
|
'Out_Mix_SVF_Lvl': { min: 0.4, max: 0.85, curve: 0.55 },
|
|
'Out_Mix_Lvl': { min: 0.2, max: 0.55, curve: 0.45 },
|
|
'Reverb_Mix': { min: 0.2, max: 0.65, curve: 0.45 },
|
|
},
|
|
mutedOverrides: {},
|
|
groupCurves: {},
|
|
},
|
|
|
|
{
|
|
id: 'beginner-4',
|
|
name: '1.4',
|
|
tier: 1,
|
|
description: 'Zero attack, fast decay, low sustain, bright filter with steep curve',
|
|
active: [
|
|
'Env_A_Att', 'Env_A_Dec_1', 'Env_A_Sus', 'Env_A_Rel',
|
|
'Osc_A_Fluct', 'Osc_B_Fluct',
|
|
'Shp_A_Drive', 'Shp_A_Fold',
|
|
'SV_Flt_Cut', 'SV_Flt_Res', 'SV_Flt_LBH',
|
|
'Out_Mix_A_Lvl', 'Out_Mix_SVF_Lvl', 'Out_Mix_Lvl',
|
|
'Reverb_Mix',
|
|
],
|
|
overrides: {
|
|
'Env_A_Att': { min: 0.0, max: 0.02, curve: 0.3 },
|
|
'Env_A_Dec_1': { min: 0.1, max: 0.4, curve: 0.35 },
|
|
'Env_A_Sus': { min: 0.0, max: 0.15, curve: 0.3 },
|
|
'Env_A_Rel': { min: 0.1, max: 0.35, curve: 0.4 },
|
|
'Osc_A_Fluct': { min: 0.0, max: 0.15, curve: 0.3 },
|
|
'Osc_B_Fluct': { min: 0.0, max: 0.15, curve: 0.3 },
|
|
'Shp_A_Drive': { min: 0.1, max: 0.45, curve: 0.55 },
|
|
'Shp_A_Fold': { min: 0.3, max: 0.75, curve: 0.55 },
|
|
'SV_Flt_Cut': { min: 0.55, max: 1.0, curve: 0.65 },
|
|
'SV_Flt_Res': { min: 0.25, max: 0.65, curve: 0.6 },
|
|
'SV_Flt_LBH': { min: 0.3, max: 0.8, curve: 0.55 },
|
|
'Out_Mix_A_Lvl': { min: 0.4, max: 0.85, curve: 0.55 },
|
|
'Out_Mix_SVF_Lvl': { min: 0.35, max: 0.8, curve: 0.55 },
|
|
'Out_Mix_Lvl': { min: 0.2, max: 0.55, curve: 0.45 },
|
|
'Reverb_Mix': { min: 0.0, max: 0.3, curve: 0.3 },
|
|
},
|
|
mutedOverrides: {},
|
|
groupCurves: {},
|
|
},
|
|
|
|
// ======================================================================
|
|
// TIER 2 — Intermediate (adds 25 params → 40 total)
|
|
// ======================================================================
|
|
{
|
|
id: 'intermediate-1',
|
|
name: '2.1',
|
|
tier: 2,
|
|
description: 'Lush reverb and echo, wide stereo spread, gentle cabinet warmth',
|
|
active: [
|
|
// Tier 1 base
|
|
'Env_A_Att', 'Env_A_Dec_1', 'Env_A_Sus', 'Env_A_Rel',
|
|
'Osc_A_Fluct', 'Osc_B_Fluct',
|
|
'Shp_A_Drive', 'Shp_A_Fold',
|
|
'SV_Flt_Cut', 'SV_Flt_Res', 'SV_Flt_LBH',
|
|
'Out_Mix_A_Lvl', 'Out_Mix_SVF_Lvl', 'Out_Mix_Lvl',
|
|
'Reverb_Mix',
|
|
// Tier 2 additions
|
|
'Env_A_BP', 'Env_A_Dec_2', 'Env_A_Gain',
|
|
'Env_B_Att', 'Env_B_Dec_1', 'Env_B_Sus', 'Env_B_Rel',
|
|
'Env_C_Att', 'Env_C_Dec_1',
|
|
'Shp_A_Asym', 'Shp_A_Mix',
|
|
'SV_Flt_FM', 'SV_Flt_Spread',
|
|
'Out_Mix_A_Pan', 'Out_Mix_To_FX',
|
|
'Reverb_Size', 'Reverb_Color',
|
|
'Echo_Mix', 'Echo_Time',
|
|
'Flanger_Mix', 'Flanger_Time', 'Flanger_Rate',
|
|
'Cabinet_Drive', 'Cabinet_Tilt', 'Cabinet_Mix',
|
|
],
|
|
overrides: {
|
|
'Env_A_Att': { min: 0.15, max: 0.6, curve: 0.55 },
|
|
'Env_A_Dec_1': { min: 0.3, max: 0.8, curve: 0.55 },
|
|
'Env_A_Sus': { min: 0.3, max: 0.8, curve: 0.6 },
|
|
'Env_A_Rel': { min: 0.3, max: 0.65, curve: 0.55 },
|
|
'SV_Flt_Cut': { min: 0.2, max: 0.75, curve: 0.45 },
|
|
'SV_Flt_Spread': { min: 0.2, max: 0.8, curve: 0.6 },
|
|
'Out_Mix_A_Pan': { min: 0.2, max: 0.8, curve: 0.5 },
|
|
'Out_Mix_To_FX': { min: 0.2, max: 0.7, curve: 0.55 },
|
|
'Reverb_Size': { min: 0.25, max: 0.65, curve: 0.6 },
|
|
'Reverb_Color': { min: 0.3, max: 0.7, curve: 0.45 },
|
|
'Reverb_Mix': { min: 0.15, max: 0.6, curve: 0.45 },
|
|
'Echo_Mix': { min: 0.1, max: 0.5, curve: 0.4 },
|
|
'Echo_Time': { min: 0.2, max: 0.7, curve: 0.55 },
|
|
'Flanger_Mix': { min: 0.0, max: 0.3, curve: 0.35 },
|
|
'Flanger_Time': { min: 0.2, max: 0.6, curve: 0.45 },
|
|
'Flanger_Rate': { min: 0.1, max: 0.4, curve: 0.4 },
|
|
'Cabinet_Drive': { min: 0.1, max: 0.35, curve: 0.35 },
|
|
'Cabinet_Tilt': { min: 0.3, max: 0.7, curve: 0.45 },
|
|
'Cabinet_Mix': { min: 0.1, max: 0.5, curve: 0.4 },
|
|
'Out_Mix_Lvl': { min: 0.2, max: 0.55, curve: 0.45 },
|
|
},
|
|
mutedOverrides: {},
|
|
groupCurves: {},
|
|
},
|
|
|
|
{
|
|
id: 'intermediate-2',
|
|
name: '2.2',
|
|
tier: 2,
|
|
description: 'Short envelopes, echo with rhythmic timing, flanger movement',
|
|
active: [
|
|
'Env_A_Att', 'Env_A_Dec_1', 'Env_A_Sus', 'Env_A_Rel',
|
|
'Osc_A_Fluct', 'Osc_B_Fluct',
|
|
'Shp_A_Drive', 'Shp_A_Fold',
|
|
'SV_Flt_Cut', 'SV_Flt_Res', 'SV_Flt_LBH',
|
|
'Out_Mix_A_Lvl', 'Out_Mix_SVF_Lvl', 'Out_Mix_Lvl',
|
|
'Reverb_Mix',
|
|
'Env_A_BP', 'Env_A_Dec_2', 'Env_A_Gain',
|
|
'Env_B_Att', 'Env_B_Dec_1', 'Env_B_Sus', 'Env_B_Rel',
|
|
'Env_C_Att', 'Env_C_Dec_1',
|
|
'Shp_A_Asym', 'Shp_A_Mix',
|
|
'SV_Flt_FM', 'SV_Flt_Spread',
|
|
'Out_Mix_A_Pan', 'Out_Mix_To_FX',
|
|
'Reverb_Size', 'Reverb_Color',
|
|
'Echo_Mix', 'Echo_Time',
|
|
'Flanger_Mix', 'Flanger_Time', 'Flanger_Rate',
|
|
'Cabinet_Drive', 'Cabinet_Tilt', 'Cabinet_Mix',
|
|
],
|
|
overrides: {
|
|
'Env_A_Att': { min: 0.0, max: 0.08, curve: 0.3 },
|
|
'Env_A_Dec_1': { min: 0.1, max: 0.4, curve: 0.35 },
|
|
'Env_A_Sus': { min: 0.0, max: 0.25, curve: 0.3 },
|
|
'Env_A_Rel': { min: 0.1, max: 0.35, curve: 0.35 },
|
|
'Env_B_Att': { min: 0.0, max: 0.05, curve: 0.3 },
|
|
'Env_B_Dec_1': { min: 0.1, max: 0.35, curve: 0.35 },
|
|
'SV_Flt_Cut': { min: 0.3, max: 0.9, curve: 0.55 },
|
|
'SV_Flt_FM': { min: 0.3, max: 0.7, curve: 0.45 },
|
|
'Echo_Mix': { min: 0.15, max: 0.55, curve: 0.45 },
|
|
'Echo_Time': { min: 0.15, max: 0.6, curve: 0.35 },
|
|
'Flanger_Mix': { min: 0.1, max: 0.5, curve: 0.4 },
|
|
'Flanger_Time': { min: 0.1, max: 0.5, curve: 0.45 },
|
|
'Flanger_Rate': { min: 0.2, max: 0.7, curve: 0.45 },
|
|
'Cabinet_Drive': { min: 0.15, max: 0.45, curve: 0.55 },
|
|
'Out_Mix_To_FX': { min: 0.25, max: 0.7, curve: 0.55 },
|
|
'Out_Mix_Lvl': { min: 0.2, max: 0.55, curve: 0.45 },
|
|
'Reverb_Mix': { min: 0.0, max: 0.2, curve: 0.3 },
|
|
},
|
|
mutedOverrides: {},
|
|
groupCurves: {},
|
|
},
|
|
|
|
{
|
|
id: 'intermediate-3',
|
|
name: '2.3',
|
|
tier: 2,
|
|
description: 'Long envelope times, filter FM, slow flanger, lush reverb',
|
|
active: [
|
|
'Env_A_Att', 'Env_A_Dec_1', 'Env_A_Sus', 'Env_A_Rel',
|
|
'Osc_A_Fluct', 'Osc_B_Fluct',
|
|
'Shp_A_Drive', 'Shp_A_Fold',
|
|
'SV_Flt_Cut', 'SV_Flt_Res', 'SV_Flt_LBH',
|
|
'Out_Mix_A_Lvl', 'Out_Mix_SVF_Lvl', 'Out_Mix_Lvl',
|
|
'Reverb_Mix',
|
|
'Env_A_BP', 'Env_A_Dec_2', 'Env_A_Gain',
|
|
'Env_B_Att', 'Env_B_Dec_1', 'Env_B_Sus', 'Env_B_Rel',
|
|
'Env_C_Att', 'Env_C_Dec_1',
|
|
'Shp_A_Asym', 'Shp_A_Mix',
|
|
'SV_Flt_FM', 'SV_Flt_Spread',
|
|
'Out_Mix_A_Pan', 'Out_Mix_To_FX',
|
|
'Reverb_Size', 'Reverb_Color',
|
|
'Echo_Mix', 'Echo_Time',
|
|
'Flanger_Mix', 'Flanger_Time', 'Flanger_Rate',
|
|
'Cabinet_Drive', 'Cabinet_Tilt', 'Cabinet_Mix',
|
|
],
|
|
overrides: {
|
|
'Env_A_Att': { min: 0.3, max: 0.85, curve: 0.6 },
|
|
'Env_A_Dec_1': { min: 0.5, max: 0.9, curve: 0.6 },
|
|
'Env_A_Dec_2': { min: 0.5, max: 0.85, curve: 0.6 },
|
|
'Env_A_Sus': { min: 0.4, max: 0.9, curve: 0.6 },
|
|
'Env_A_Rel': { min: 0.35, max: 0.65, curve: 0.55 },
|
|
'Env_B_Att': { min: 0.2, max: 0.7, curve: 0.6 },
|
|
'Env_B_Dec_1': { min: 0.4, max: 0.85, curve: 0.6 },
|
|
'Env_B_Sus': { min: 0.3, max: 0.8, curve: 0.55 },
|
|
'Env_C_Att': { min: 0.2, max: 0.6, curve: 0.55 },
|
|
'SV_Flt_Cut': { min: 0.15, max: 0.8, curve: 0.4 },
|
|
'SV_Flt_FM': { min: 0.25, max: 0.75, curve: 0.45 },
|
|
'SV_Flt_Spread': { min: 0.2, max: 0.7, curve: 0.55 },
|
|
'Reverb_Size': { min: 0.3, max: 0.65, curve: 0.55 },
|
|
'Reverb_Color': { min: 0.3, max: 0.7, curve: 0.45 },
|
|
'Reverb_Mix': { min: 0.2, max: 0.6, curve: 0.45 },
|
|
'Echo_Mix': { min: 0.05, max: 0.35, curve: 0.35 },
|
|
'Flanger_Mix': { min: 0.05, max: 0.35, curve: 0.35 },
|
|
'Flanger_Rate': { min: 0.05, max: 0.25, curve: 0.35 },
|
|
'Flanger_Time': { min: 0.2, max: 0.6, curve: 0.45 },
|
|
'Out_Mix_To_FX': { min: 0.2, max: 0.6, curve: 0.5 },
|
|
'Out_Mix_Lvl': { min: 0.2, max: 0.55, curve: 0.45 },
|
|
'Cabinet_Mix': { min: 0.1, max: 0.4, curve: 0.35 },
|
|
},
|
|
mutedOverrides: {},
|
|
groupCurves: {},
|
|
},
|
|
|
|
{
|
|
id: 'intermediate-4',
|
|
name: '2.4',
|
|
tier: 2,
|
|
description: 'Cabinet drive pushed, asymmetric shaper, compressed envelope, dry',
|
|
active: [
|
|
'Env_A_Att', 'Env_A_Dec_1', 'Env_A_Sus', 'Env_A_Rel',
|
|
'Osc_A_Fluct', 'Osc_B_Fluct',
|
|
'Shp_A_Drive', 'Shp_A_Fold',
|
|
'SV_Flt_Cut', 'SV_Flt_Res', 'SV_Flt_LBH',
|
|
'Out_Mix_A_Lvl', 'Out_Mix_SVF_Lvl', 'Out_Mix_Lvl',
|
|
'Reverb_Mix',
|
|
'Env_A_BP', 'Env_A_Dec_2', 'Env_A_Gain',
|
|
'Env_B_Att', 'Env_B_Dec_1', 'Env_B_Sus', 'Env_B_Rel',
|
|
'Env_C_Att', 'Env_C_Dec_1',
|
|
'Shp_A_Asym', 'Shp_A_Mix',
|
|
'SV_Flt_FM', 'SV_Flt_Spread',
|
|
'Out_Mix_A_Pan', 'Out_Mix_To_FX',
|
|
'Reverb_Size', 'Reverb_Color',
|
|
'Echo_Mix', 'Echo_Time',
|
|
'Flanger_Mix', 'Flanger_Time', 'Flanger_Rate',
|
|
'Cabinet_Drive', 'Cabinet_Tilt', 'Cabinet_Mix',
|
|
],
|
|
overrides: {
|
|
'Env_A_Att': { min: 0.0, max: 0.1, curve: 0.3 },
|
|
'Env_A_Dec_1': { min: 0.15, max: 0.5, curve: 0.4 },
|
|
'Env_A_Sus': { min: 0.1, max: 0.5, curve: 0.45 },
|
|
'Env_A_Rel': { min: 0.15, max: 0.4, curve: 0.4 },
|
|
'Shp_A_Drive': { min: 0.2, max: 0.55, curve: 0.6 },
|
|
'Shp_A_Fold': { min: 0.2, max: 0.8, curve: 0.55 },
|
|
'Shp_A_Asym': { min: 0.1, max: 0.7, curve: 0.6 },
|
|
'Shp_A_Mix': { min: 0.2, max: 0.8, curve: 0.55 },
|
|
'SV_Flt_Cut': { min: 0.25, max: 0.8, curve: 0.55 },
|
|
'SV_Flt_Res': { min: 0.3, max: 0.75, curve: 0.55 },
|
|
'Cabinet_Drive': { min: 0.3, max: 0.58, curve: 0.6 },
|
|
'Cabinet_Tilt': { min: 0.2, max: 0.65, curve: 0.55 },
|
|
'Cabinet_Mix': { min: 0.3, max: 0.8, curve: 0.6 },
|
|
'Out_Mix_Lvl': { min: 0.2, max: 0.5, curve: 0.45 },
|
|
'Reverb_Mix': { min: 0.0, max: 0.15, curve: 0.3 },
|
|
'Echo_Mix': { min: 0.0, max: 0.15, curve: 0.3 },
|
|
'Flanger_Mix': { min: 0.0, max: 0.1, curve: 0.3 },
|
|
},
|
|
mutedOverrides: {},
|
|
groupCurves: {},
|
|
},
|
|
|
|
// ======================================================================
|
|
// TIER 3 — Advanced (adds 55 params → 95 total)
|
|
// ======================================================================
|
|
{
|
|
id: 'advanced-1',
|
|
name: '3.1',
|
|
tier: 3,
|
|
description: 'Cross-oscillator PM, ring modulation, comb filter resonance, clean effects',
|
|
active: [
|
|
// Tier 1
|
|
'Env_A_Att', 'Env_A_Dec_1', 'Env_A_Sus', 'Env_A_Rel',
|
|
'Osc_A_Fluct', 'Osc_B_Fluct',
|
|
'Shp_A_Drive', 'Shp_A_Fold',
|
|
'SV_Flt_Cut', 'SV_Flt_Res', 'SV_Flt_LBH',
|
|
'Out_Mix_A_Lvl', 'Out_Mix_SVF_Lvl', 'Out_Mix_Lvl',
|
|
'Reverb_Mix',
|
|
// Tier 2
|
|
'Env_A_BP', 'Env_A_Dec_2', 'Env_A_Gain',
|
|
'Env_B_Att', 'Env_B_Dec_1', 'Env_B_Sus', 'Env_B_Rel',
|
|
'Env_C_Att', 'Env_C_Dec_1',
|
|
'Shp_A_Asym', 'Shp_A_Mix',
|
|
'SV_Flt_FM', 'SV_Flt_Spread',
|
|
'Out_Mix_A_Pan', 'Out_Mix_To_FX',
|
|
'Reverb_Size', 'Reverb_Color',
|
|
'Echo_Mix', 'Echo_Time',
|
|
'Flanger_Mix', 'Flanger_Time', 'Flanger_Rate',
|
|
'Cabinet_Drive', 'Cabinet_Tilt', 'Cabinet_Mix',
|
|
// Tier 3 additions
|
|
'Env_B_BP', 'Env_B_Dec_2', 'Env_B_Gain',
|
|
'Env_C_BP', 'Env_C_Dec_2', 'Env_C_Rel', 'Env_C_Sus',
|
|
'Osc_A_PM_Self', 'Osc_A_PM_B', 'Osc_A_PM_FB', 'Osc_A_Phase',
|
|
'Osc_B_PM_Self', 'Osc_B_PM_A', 'Osc_B_PM_FB', 'Osc_B_Phase',
|
|
'Shp_A_FB_Mix', 'Shp_A_Ring_Mod',
|
|
'Shp_B_Drive', 'Shp_B_Fold', 'Shp_B_Asym', 'Shp_B_Mix', 'Shp_B_FB_Mix', 'Shp_B_Ring_Mod',
|
|
'Comb_Flt_Pitch', 'Comb_Flt_Decay', 'Comb_Flt_In_A_B', 'Comb_Flt_AP_Res', 'Comb_Flt_PM',
|
|
'SV_Flt_In_A_B', 'SV_Flt_Comb_Mix', 'SV_Flt_Par', 'SV_Flt_FM_A_B',
|
|
'Gap_Flt_Center', 'Gap_Flt_Gap', 'Gap_Flt_Res', 'Gap_Flt_Mix',
|
|
'FB_Mix_Comb', 'FB_Mix_SVF', 'FB_Mix_FX', 'FB_Mix_Osc', 'FB_Mix_Lvl', 'FB_Mix_Drive',
|
|
'Out_Mix_B_Lvl', 'Out_Mix_B_Pan', 'Out_Mix_Comb_Lvl',
|
|
'Flanger_Feedback', 'Flanger_Stereo', 'Flanger_Phase',
|
|
'Echo_Feedback', 'Echo_Stereo',
|
|
'Reverb_Pre_Dly', 'Reverb_Chorus',
|
|
'Cabinet_Fold', 'Cabinet_Asym', 'Cabinet_Hi_Cut', 'Cabinet_Lo_Cut', 'Cabinet_Cab_Lvl',
|
|
'Unison_Detune',
|
|
],
|
|
overrides: {
|
|
'Env_A_Att': { min: 0.0, max: 0.05, curve: 0.3 },
|
|
'Env_A_Dec_1': { min: 0.2, max: 0.6, curve: 0.35 },
|
|
'Env_A_Sus': { min: 0.0, max: 0.2, curve: 0.3 },
|
|
'Env_A_Rel': { min: 0.2, max: 0.55, curve: 0.4 },
|
|
'Osc_A_PM_Self': { min: 0.3, max: 0.7, curve: 0.4 },
|
|
'Osc_A_PM_B': { min: 0.25, max: 0.7, curve: 0.4 },
|
|
'Osc_A_PM_FB': { min: 0.3, max: 0.65, curve: 0.4 },
|
|
'Osc_B_PM_Self': { min: 0.3, max: 0.7, curve: 0.4 },
|
|
'Osc_B_PM_A': { min: 0.25, max: 0.7, curve: 0.4 },
|
|
'Osc_B_PM_FB': { min: 0.3, max: 0.65, curve: 0.4 },
|
|
'Shp_A_Ring_Mod': { min: 0.0, max: 0.5, curve: 0.35 },
|
|
'Shp_B_Ring_Mod': { min: 0.0, max: 0.5, curve: 0.35 },
|
|
'Comb_Flt_Pitch': { min: 0.3, max: 0.7, curve: 0.45 },
|
|
'Comb_Flt_Decay': { min: 0.3, max: 0.7, curve: 0.4 },
|
|
'Comb_Flt_AP_Res': { min: 0.2, max: 0.65, curve: 0.4 },
|
|
'SV_Flt_Cut': { min: 0.3, max: 0.85, curve: 0.55 },
|
|
'Reverb_Mix': { min: 0.15, max: 0.5, curve: 0.4 },
|
|
'Reverb_Size': { min: 0.2, max: 0.55, curve: 0.45 },
|
|
'Reverb_Chorus': { min: 0.1, max: 0.5, curve: 0.4 },
|
|
'Echo_Mix': { min: 0.0, max: 0.25, curve: 0.35 },
|
|
'Flanger_Mix': { min: 0.0, max: 0.2, curve: 0.3 },
|
|
'FB_Mix_Lvl': { min: 0.1, max: 0.4, curve: 0.4 },
|
|
'FB_Mix_Drive': { min: 0.1, max: 0.3, curve: 0.35 },
|
|
'Out_Mix_Lvl': { min: 0.2, max: 0.55, curve: 0.45 },
|
|
'Out_Mix_B_Lvl': { min: 0.15, max: 0.6, curve: 0.45 },
|
|
},
|
|
mutedOverrides: {},
|
|
groupCurves: {},
|
|
},
|
|
|
|
{
|
|
id: 'advanced-2',
|
|
name: '3.2',
|
|
tier: 3,
|
|
description: 'Feedback mixer active, dual shapers, gap filter, gritty cabinet',
|
|
active: [
|
|
// Tier 1
|
|
'Env_A_Att', 'Env_A_Dec_1', 'Env_A_Sus', 'Env_A_Rel',
|
|
'Osc_A_Fluct', 'Osc_B_Fluct',
|
|
'Shp_A_Drive', 'Shp_A_Fold',
|
|
'SV_Flt_Cut', 'SV_Flt_Res', 'SV_Flt_LBH',
|
|
'Out_Mix_A_Lvl', 'Out_Mix_SVF_Lvl', 'Out_Mix_Lvl',
|
|
'Reverb_Mix',
|
|
// Tier 2
|
|
'Env_A_BP', 'Env_A_Dec_2', 'Env_A_Gain',
|
|
'Env_B_Att', 'Env_B_Dec_1', 'Env_B_Sus', 'Env_B_Rel',
|
|
'Env_C_Att', 'Env_C_Dec_1',
|
|
'Shp_A_Asym', 'Shp_A_Mix',
|
|
'SV_Flt_FM', 'SV_Flt_Spread',
|
|
'Out_Mix_A_Pan', 'Out_Mix_To_FX',
|
|
'Reverb_Size', 'Reverb_Color',
|
|
'Echo_Mix', 'Echo_Time',
|
|
'Flanger_Mix', 'Flanger_Time', 'Flanger_Rate',
|
|
'Cabinet_Drive', 'Cabinet_Tilt', 'Cabinet_Mix',
|
|
// Tier 3 additions
|
|
'Env_B_BP', 'Env_B_Dec_2', 'Env_B_Gain',
|
|
'Env_C_BP', 'Env_C_Dec_2', 'Env_C_Rel', 'Env_C_Sus',
|
|
'Osc_A_PM_Self', 'Osc_A_PM_B', 'Osc_A_PM_FB', 'Osc_A_Phase',
|
|
'Osc_B_PM_Self', 'Osc_B_PM_A', 'Osc_B_PM_FB', 'Osc_B_Phase',
|
|
'Shp_A_FB_Mix', 'Shp_A_Ring_Mod',
|
|
'Shp_B_Drive', 'Shp_B_Fold', 'Shp_B_Asym', 'Shp_B_Mix', 'Shp_B_FB_Mix', 'Shp_B_Ring_Mod',
|
|
'Comb_Flt_Pitch', 'Comb_Flt_Decay', 'Comb_Flt_In_A_B', 'Comb_Flt_AP_Res', 'Comb_Flt_PM',
|
|
'SV_Flt_In_A_B', 'SV_Flt_Comb_Mix', 'SV_Flt_Par', 'SV_Flt_FM_A_B',
|
|
'Gap_Flt_Center', 'Gap_Flt_Gap', 'Gap_Flt_Res', 'Gap_Flt_Mix',
|
|
'FB_Mix_Comb', 'FB_Mix_SVF', 'FB_Mix_FX', 'FB_Mix_Osc', 'FB_Mix_Lvl', 'FB_Mix_Drive',
|
|
'Out_Mix_B_Lvl', 'Out_Mix_B_Pan', 'Out_Mix_Comb_Lvl',
|
|
'Flanger_Feedback', 'Flanger_Stereo', 'Flanger_Phase',
|
|
'Echo_Feedback', 'Echo_Stereo',
|
|
'Reverb_Pre_Dly', 'Reverb_Chorus',
|
|
'Cabinet_Fold', 'Cabinet_Asym', 'Cabinet_Hi_Cut', 'Cabinet_Lo_Cut', 'Cabinet_Cab_Lvl',
|
|
'Unison_Detune',
|
|
],
|
|
overrides: {
|
|
'Env_A_Att': { min: 0.0, max: 0.15, curve: 0.3 },
|
|
'Env_A_Dec_1': { min: 0.2, max: 0.6, curve: 0.4 },
|
|
'Env_A_Sus': { min: 0.1, max: 0.5, curve: 0.45 },
|
|
'Shp_A_Drive': { min: 0.2, max: 0.55, curve: 0.6 },
|
|
'Shp_A_Asym': { min: 0.1, max: 0.65, curve: 0.6 },
|
|
'Shp_B_Drive': { min: 0.15, max: 0.55, curve: 0.6 },
|
|
'Shp_B_Asym': { min: 0.1, max: 0.6, curve: 0.55 },
|
|
'Shp_B_FB_Mix': { min: 0.1, max: 0.5, curve: 0.4 },
|
|
'Gap_Flt_Center': { min: 0.2, max: 0.8, curve: 0.45 },
|
|
'Gap_Flt_Gap': { min: 0.05, max: 0.4, curve: 0.35 },
|
|
'Gap_Flt_Res': { min: 0.2, max: 0.7, curve: 0.45 },
|
|
'Gap_Flt_Mix': { min: 0.2, max: 0.7, curve: 0.45 },
|
|
'FB_Mix_Comb': { min: 0.3, max: 0.65, curve: 0.45 },
|
|
'FB_Mix_SVF': { min: 0.3, max: 0.65, curve: 0.45 },
|
|
'FB_Mix_FX': { min: 0.3, max: 0.6, curve: 0.4 },
|
|
'FB_Mix_Osc': { min: 0.3, max: 0.6, curve: 0.4 },
|
|
'FB_Mix_Lvl': { min: 0.2, max: 0.5, curve: 0.4 },
|
|
'FB_Mix_Drive': { min: 0.15, max: 0.38, curve: 0.4 },
|
|
'Cabinet_Drive': { min: 0.3, max: 0.58, curve: 0.6 },
|
|
'Cabinet_Fold': { min: 0.15, max: 0.5, curve: 0.55 },
|
|
'Cabinet_Asym': { min: 0.1, max: 0.5, curve: 0.55 },
|
|
'Cabinet_Mix': { min: 0.3, max: 0.75, curve: 0.6 },
|
|
'Out_Mix_Lvl': { min: 0.18, max: 0.5, curve: 0.45 },
|
|
'Reverb_Mix': { min: 0.0, max: 0.25, curve: 0.3 },
|
|
'Echo_Mix': { min: 0.0, max: 0.2, curve: 0.3 },
|
|
},
|
|
mutedOverrides: {},
|
|
groupCurves: {},
|
|
},
|
|
|
|
{
|
|
id: 'advanced-3',
|
|
name: '3.3',
|
|
tier: 3,
|
|
description: 'Both oscillators through both filters, stereo panning, full effects',
|
|
active: [
|
|
// Tier 1
|
|
'Env_A_Att', 'Env_A_Dec_1', 'Env_A_Sus', 'Env_A_Rel',
|
|
'Osc_A_Fluct', 'Osc_B_Fluct',
|
|
'Shp_A_Drive', 'Shp_A_Fold',
|
|
'SV_Flt_Cut', 'SV_Flt_Res', 'SV_Flt_LBH',
|
|
'Out_Mix_A_Lvl', 'Out_Mix_SVF_Lvl', 'Out_Mix_Lvl',
|
|
'Reverb_Mix',
|
|
// Tier 2
|
|
'Env_A_BP', 'Env_A_Dec_2', 'Env_A_Gain',
|
|
'Env_B_Att', 'Env_B_Dec_1', 'Env_B_Sus', 'Env_B_Rel',
|
|
'Env_C_Att', 'Env_C_Dec_1',
|
|
'Shp_A_Asym', 'Shp_A_Mix',
|
|
'SV_Flt_FM', 'SV_Flt_Spread',
|
|
'Out_Mix_A_Pan', 'Out_Mix_To_FX',
|
|
'Reverb_Size', 'Reverb_Color',
|
|
'Echo_Mix', 'Echo_Time',
|
|
'Flanger_Mix', 'Flanger_Time', 'Flanger_Rate',
|
|
'Cabinet_Drive', 'Cabinet_Tilt', 'Cabinet_Mix',
|
|
// Tier 3 additions
|
|
'Env_B_BP', 'Env_B_Dec_2', 'Env_B_Gain',
|
|
'Env_C_BP', 'Env_C_Dec_2', 'Env_C_Rel', 'Env_C_Sus',
|
|
'Osc_A_PM_Self', 'Osc_A_PM_B', 'Osc_A_PM_FB', 'Osc_A_Phase',
|
|
'Osc_B_PM_Self', 'Osc_B_PM_A', 'Osc_B_PM_FB', 'Osc_B_Phase',
|
|
'Shp_A_FB_Mix', 'Shp_A_Ring_Mod',
|
|
'Shp_B_Drive', 'Shp_B_Fold', 'Shp_B_Asym', 'Shp_B_Mix', 'Shp_B_FB_Mix', 'Shp_B_Ring_Mod',
|
|
'Comb_Flt_Pitch', 'Comb_Flt_Decay', 'Comb_Flt_In_A_B', 'Comb_Flt_AP_Res', 'Comb_Flt_PM',
|
|
'SV_Flt_In_A_B', 'SV_Flt_Comb_Mix', 'SV_Flt_Par', 'SV_Flt_FM_A_B',
|
|
'Gap_Flt_Center', 'Gap_Flt_Gap', 'Gap_Flt_Res', 'Gap_Flt_Mix',
|
|
'FB_Mix_Comb', 'FB_Mix_SVF', 'FB_Mix_FX', 'FB_Mix_Osc', 'FB_Mix_Lvl', 'FB_Mix_Drive',
|
|
'Out_Mix_B_Lvl', 'Out_Mix_B_Pan', 'Out_Mix_Comb_Lvl',
|
|
'Flanger_Feedback', 'Flanger_Stereo', 'Flanger_Phase',
|
|
'Echo_Feedback', 'Echo_Stereo',
|
|
'Reverb_Pre_Dly', 'Reverb_Chorus',
|
|
'Cabinet_Fold', 'Cabinet_Asym', 'Cabinet_Hi_Cut', 'Cabinet_Lo_Cut', 'Cabinet_Cab_Lvl',
|
|
'Unison_Detune',
|
|
],
|
|
overrides: {
|
|
'Env_A_Att': { min: 0.05, max: 0.5, curve: 0.45 },
|
|
'Env_B_Att': { min: 0.05, max: 0.5, curve: 0.45 },
|
|
'Osc_A_PM_B': { min: 0.2, max: 0.65, curve: 0.45 },
|
|
'Osc_B_PM_A': { min: 0.2, max: 0.65, curve: 0.45 },
|
|
'SV_Flt_In_A_B': { min: 0.2, max: 0.8, curve: 0.5 },
|
|
'Comb_Flt_In_A_B': { min: 0.2, max: 0.8, curve: 0.5 },
|
|
'Out_Mix_A_Lvl': { min: 0.3, max: 0.8, curve: 0.55 },
|
|
'Out_Mix_B_Lvl': { min: 0.3, max: 0.8, curve: 0.55 },
|
|
'Out_Mix_A_Pan': { min: 0.15, max: 0.45, curve: 0.4 },
|
|
'Out_Mix_B_Pan': { min: 0.55, max: 0.85, curve: 0.6 },
|
|
'Out_Mix_Comb_Lvl': { min: 0.15, max: 0.6, curve: 0.45 },
|
|
'Out_Mix_Lvl': { min: 0.18, max: 0.5, curve: 0.45 },
|
|
'SV_Flt_Cut': { min: 0.15, max: 0.85, curve: 0.45 },
|
|
'SV_Flt_Spread': { min: 0.15, max: 0.75, curve: 0.55 },
|
|
'Flanger_Stereo': { min: 0.2, max: 0.8, curve: 0.6 },
|
|
'Echo_Stereo': { min: 0.2, max: 0.8, curve: 0.6 },
|
|
'Reverb_Mix': { min: 0.1, max: 0.5, curve: 0.4 },
|
|
'Echo_Mix': { min: 0.05, max: 0.4, curve: 0.4 },
|
|
'Flanger_Mix': { min: 0.05, max: 0.35, curve: 0.35 },
|
|
'Unison_Detune': { min: 0.0, max: 0.3, curve: 0.3 },
|
|
'FB_Mix_Lvl': { min: 0.15, max: 0.45, curve: 0.4 },
|
|
},
|
|
mutedOverrides: {},
|
|
groupCurves: {},
|
|
},
|
|
|
|
// ======================================================================
|
|
// TIER 4 — Expert (all 126 params active)
|
|
// ======================================================================
|
|
{
|
|
id: 'expert-1',
|
|
name: '4.1',
|
|
tier: 4,
|
|
description: 'All parameters active with conservative tame-derived ranges',
|
|
active: null, // null means ALL params active
|
|
overrides: {
|
|
// Use tame-derived defaults for everything (no per-param overrides)
|
|
},
|
|
mutedOverrides: {},
|
|
groupCurves: {},
|
|
},
|
|
|
|
{
|
|
id: 'expert-2',
|
|
name: '4.2',
|
|
tier: 4,
|
|
description: 'All parameters active with wider ranges for extreme exploration',
|
|
active: null, // all active
|
|
overrides: {
|
|
// Push ranges wider than tame defaults — halve the tame constraint
|
|
'Osc_A_PM_Self': { min: 0.1, max: 0.9, curve: 0.45 },
|
|
'Osc_A_PM_B': { min: 0.1, max: 0.9, curve: 0.45 },
|
|
'Osc_A_PM_FB': { min: 0.15, max: 0.85, curve: 0.45 },
|
|
'Osc_B_PM_Self': { min: 0.1, max: 0.9, curve: 0.45 },
|
|
'Osc_B_PM_A': { min: 0.1, max: 0.9, curve: 0.45 },
|
|
'Osc_B_PM_FB': { min: 0.15, max: 0.85, curve: 0.45 },
|
|
'Shp_A_Drive': { min: 0.0, max: 0.8, curve: 0.55 },
|
|
'Shp_B_Drive': { min: 0.0, max: 0.8, curve: 0.55 },
|
|
'Shp_A_FB_Mix': { min: 0.0, max: 0.85, curve: 0.45 },
|
|
'Shp_B_FB_Mix': { min: 0.0, max: 0.85, curve: 0.45 },
|
|
'Comb_Flt_Decay': { min: 0.15, max: 0.85, curve: 0.45 },
|
|
'Comb_Flt_AP_Res': { min: 0.0, max: 0.9, curve: 0.4 },
|
|
'Comb_Flt_PM': { min: 0.15, max: 0.85, curve: 0.45 },
|
|
'SV_Flt_Res': { min: 0.0, max: 0.9, curve: 0.4 },
|
|
'SV_Flt_FM': { min: 0.1, max: 0.9, curve: 0.45 },
|
|
'Gap_Flt_Res': { min: 0.0, max: 0.9, curve: 0.4 },
|
|
'FB_Mix_Comb': { min: 0.15, max: 0.85, curve: 0.45 },
|
|
'FB_Mix_SVF': { min: 0.15, max: 0.85, curve: 0.45 },
|
|
'FB_Mix_FX': { min: 0.15, max: 0.85, curve: 0.45 },
|
|
'FB_Mix_Osc': { min: 0.15, max: 0.85, curve: 0.45 },
|
|
'FB_Mix_Lvl': { min: 0.0, max: 0.65, curve: 0.4 },
|
|
'FB_Mix_Drive': { min: 0.0, max: 0.5, curve: 0.4 },
|
|
'Out_Mix_Lvl': { min: 0.1, max: 0.8, curve: 0.45 },
|
|
'Out_Mix_Drive': { min: 0.0, max: 0.65, curve: 0.55 },
|
|
'Cabinet_Drive': { min: 0.0, max: 0.75, curve: 0.55 },
|
|
'Flanger_Feedback':{ min: 0.1, max: 0.9, curve: 0.45 },
|
|
'Flanger_Cross_FB':{ min: 0.15, max: 0.85, curve: 0.45 },
|
|
'Echo_Feedback': { min: 0.0, max: 0.85, curve: 0.4 },
|
|
'Echo_Mix': { min: 0.0, max: 0.8, curve: 0.4 },
|
|
'Reverb_Size': { min: 0.0, max: 0.8, curve: 0.45 },
|
|
'Reverb_Mix': { min: 0.0, max: 0.8, curve: 0.4 },
|
|
'Reverb_Send': { min: 0.0, max: 1.0, curve: 0.5 },
|
|
},
|
|
mutedOverrides: {},
|
|
groupCurves: {},
|
|
},
|
|
];
|
|
|
|
// Tier metadata for UI grouping
|
|
export const PRESET_TIERS = [
|
|
{ tier: 1, label: 'Beginner' },
|
|
{ tier: 2, label: 'Intermediate' },
|
|
{ tier: 3, label: 'Advanced' },
|
|
{ tier: 4, label: 'Expert' },
|
|
];
|