// 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' }, ];