205 lines
7.5 KiB
JavaScript
205 lines
7.5 KiB
JavaScript
|
|
// Additive synth presets for NISPS playground
|
||
|
|
// Each preset defines which params are active (ML-controlled) and which are
|
||
|
|
// muted at safe defaults. Param IDs match faustParamAddress() output from
|
||
|
|
// additive.json (e.g. '1_spectral_shape_00_h1_amp').
|
||
|
|
//
|
||
|
|
// 3 tiers of progressive complexity across 5 presets.
|
||
|
|
|
||
|
|
export const ADDITIVE_PRESETS = [
|
||
|
|
// ======================================================================
|
||
|
|
// TIER 1 — Beginner (~12-15 active params)
|
||
|
|
// ======================================================================
|
||
|
|
{
|
||
|
|
id: 'additive-1',
|
||
|
|
name: '1.1',
|
||
|
|
tier: 1,
|
||
|
|
description: 'Spectral Basics — H1-H4 amplitudes, global ADSR, spectral tilt, level',
|
||
|
|
active: [
|
||
|
|
'1_spectral_shape_00_h1_amp',
|
||
|
|
'1_spectral_shape_01_h2_amp',
|
||
|
|
'1_spectral_shape_02_h3_amp',
|
||
|
|
'1_spectral_shape_03_h4_amp',
|
||
|
|
'1_spectral_shape_11_spectral_tilt',
|
||
|
|
'2_temporal_00_attack',
|
||
|
|
'2_temporal_01_decay',
|
||
|
|
'2_temporal_02_sustain',
|
||
|
|
'2_temporal_03_release',
|
||
|
|
'5_master_00_level',
|
||
|
|
'5_master_04_saturation',
|
||
|
|
'3_phase_04_stereo_phase_spread',
|
||
|
|
],
|
||
|
|
overrides: {
|
||
|
|
'1_spectral_shape_00_h1_amp': { min: 0.3, max: 1.0, curve: 0.55 },
|
||
|
|
'1_spectral_shape_01_h2_amp': { min: 0.0, max: 0.8, curve: 0.45 },
|
||
|
|
'1_spectral_shape_02_h3_amp': { min: 0.0, max: 0.7, curve: 0.4 },
|
||
|
|
'1_spectral_shape_03_h4_amp': { min: 0.0, max: 0.6, curve: 0.4 },
|
||
|
|
'1_spectral_shape_11_spectral_tilt': { min: 0.2, max: 0.8, curve: 0.5 },
|
||
|
|
'2_temporal_00_attack': { min: 0.0, max: 0.7, curve: 0.35 },
|
||
|
|
'2_temporal_01_decay': { min: 0.05, max: 0.6, curve: 0.4 },
|
||
|
|
'2_temporal_02_sustain': { min: 0.2, max: 0.9, curve: 0.55 },
|
||
|
|
'2_temporal_03_release': { min: 0.1, max: 0.7, curve: 0.45 },
|
||
|
|
'5_master_00_level': { min: 0.3, max: 0.85, curve: 0.5 },
|
||
|
|
'5_master_04_saturation': { min: 0.0, max: 0.4, curve: 0.3 },
|
||
|
|
'3_phase_04_stereo_phase_spread': { min: 0.0, max: 0.5, curve: 0.4 },
|
||
|
|
},
|
||
|
|
mutedOverrides: {},
|
||
|
|
groupCurves: {},
|
||
|
|
},
|
||
|
|
|
||
|
|
{
|
||
|
|
id: 'additive-2',
|
||
|
|
name: '1.2',
|
||
|
|
tier: 1,
|
||
|
|
description: 'Formant Play — H1-H4, formant shaping, ADSR, level',
|
||
|
|
active: [
|
||
|
|
'1_spectral_shape_00_h1_amp',
|
||
|
|
'1_spectral_shape_01_h2_amp',
|
||
|
|
'1_spectral_shape_02_h3_amp',
|
||
|
|
'1_spectral_shape_03_h4_amp',
|
||
|
|
'4_modulation_07_formant1_freq',
|
||
|
|
'4_modulation_08_formant2_freq',
|
||
|
|
'4_modulation_09_formant_depth',
|
||
|
|
'2_temporal_00_attack',
|
||
|
|
'2_temporal_01_decay',
|
||
|
|
'2_temporal_02_sustain',
|
||
|
|
'2_temporal_03_release',
|
||
|
|
'5_master_00_level',
|
||
|
|
'1_spectral_shape_11_spectral_tilt',
|
||
|
|
],
|
||
|
|
overrides: {
|
||
|
|
'1_spectral_shape_00_h1_amp': { min: 0.3, max: 1.0, curve: 0.55 },
|
||
|
|
'1_spectral_shape_01_h2_amp': { min: 0.0, max: 0.8, curve: 0.45 },
|
||
|
|
'1_spectral_shape_02_h3_amp': { min: 0.0, max: 0.7, curve: 0.4 },
|
||
|
|
'1_spectral_shape_03_h4_amp': { min: 0.0, max: 0.6, curve: 0.4 },
|
||
|
|
'4_modulation_07_formant1_freq': { min: 0.05, max: 0.7, curve: 0.45 },
|
||
|
|
'4_modulation_08_formant2_freq': { min: 0.1, max: 0.8, curve: 0.5 },
|
||
|
|
'4_modulation_09_formant_depth': { min: 0.0, max: 0.8, curve: 0.4 },
|
||
|
|
'2_temporal_00_attack': { min: 0.0, max: 0.6, curve: 0.35 },
|
||
|
|
'2_temporal_01_decay': { min: 0.05, max: 0.5, curve: 0.4 },
|
||
|
|
'2_temporal_02_sustain': { min: 0.3, max: 0.9, curve: 0.55 },
|
||
|
|
'2_temporal_03_release': { min: 0.1, max: 0.65, curve: 0.45 },
|
||
|
|
'5_master_00_level': { min: 0.3, max: 0.85, curve: 0.5 },
|
||
|
|
'1_spectral_shape_11_spectral_tilt': { min: 0.2, max: 0.8, curve: 0.5 },
|
||
|
|
},
|
||
|
|
mutedOverrides: {},
|
||
|
|
groupCurves: {},
|
||
|
|
},
|
||
|
|
|
||
|
|
// ======================================================================
|
||
|
|
// TIER 2 — Intermediate (~25-30 active params)
|
||
|
|
// ======================================================================
|
||
|
|
{
|
||
|
|
id: 'additive-3',
|
||
|
|
name: '2.1',
|
||
|
|
tier: 2,
|
||
|
|
description: 'Harmonic Sculptor — all H amps, spectral tilt, inharmonicity, ADSR, brightness envelope, vibrato, level',
|
||
|
|
active: [
|
||
|
|
// All individual harmonics + groups
|
||
|
|
'1_spectral_shape_00_h1_amp',
|
||
|
|
'1_spectral_shape_01_h2_amp',
|
||
|
|
'1_spectral_shape_02_h3_amp',
|
||
|
|
'1_spectral_shape_03_h4_amp',
|
||
|
|
'1_spectral_shape_04_h5_amp',
|
||
|
|
'1_spectral_shape_05_h6_amp',
|
||
|
|
'1_spectral_shape_06_h7_amp',
|
||
|
|
'1_spectral_shape_07_h8_amp',
|
||
|
|
'1_spectral_shape_08_h9_16_amp',
|
||
|
|
'1_spectral_shape_09_h17_32_amp',
|
||
|
|
'1_spectral_shape_10_h33_64_amp',
|
||
|
|
'1_spectral_shape_11_spectral_tilt',
|
||
|
|
'1_spectral_shape_12_inharmonicity',
|
||
|
|
// Amplitude ADSR
|
||
|
|
'2_temporal_00_attack',
|
||
|
|
'2_temporal_01_decay',
|
||
|
|
'2_temporal_02_sustain',
|
||
|
|
'2_temporal_03_release',
|
||
|
|
// Brightness ADSR
|
||
|
|
'2_temporal_04_brightness_attack',
|
||
|
|
'2_temporal_05_brightness_decay',
|
||
|
|
'2_temporal_06_brightness_sustain',
|
||
|
|
'2_temporal_07_brightness_release',
|
||
|
|
// Vibrato
|
||
|
|
'4_modulation_00_vibrato_rate',
|
||
|
|
'4_modulation_01_vibrato_depth',
|
||
|
|
'4_modulation_02_vibrato_delay',
|
||
|
|
// Master
|
||
|
|
'5_master_00_level',
|
||
|
|
'5_master_04_saturation',
|
||
|
|
],
|
||
|
|
overrides: {
|
||
|
|
'1_spectral_shape_12_inharmonicity': { min: 0.0, max: 0.5, curve: 0.3 },
|
||
|
|
'4_modulation_01_vibrato_depth': { min: 0.0, max: 0.6, curve: 0.35 },
|
||
|
|
'5_master_04_saturation': { min: 0.0, max: 0.5, curve: 0.35 },
|
||
|
|
},
|
||
|
|
mutedOverrides: {},
|
||
|
|
groupCurves: {},
|
||
|
|
},
|
||
|
|
|
||
|
|
{
|
||
|
|
id: 'additive-4',
|
||
|
|
name: '2.2',
|
||
|
|
tier: 2,
|
||
|
|
description: 'Phase Explorer — H1-H8, phase randomisation, beating, stereo spread, noise floor, ADSR, formants, level',
|
||
|
|
active: [
|
||
|
|
// H1-H8
|
||
|
|
'1_spectral_shape_00_h1_amp',
|
||
|
|
'1_spectral_shape_01_h2_amp',
|
||
|
|
'1_spectral_shape_02_h3_amp',
|
||
|
|
'1_spectral_shape_03_h4_amp',
|
||
|
|
'1_spectral_shape_04_h5_amp',
|
||
|
|
'1_spectral_shape_05_h6_amp',
|
||
|
|
'1_spectral_shape_06_h7_amp',
|
||
|
|
'1_spectral_shape_07_h8_amp',
|
||
|
|
// Phase controls
|
||
|
|
'3_phase_00_phase_random',
|
||
|
|
'3_phase_02_beating_depth',
|
||
|
|
'3_phase_03_beating_rate',
|
||
|
|
'3_phase_04_stereo_phase_spread',
|
||
|
|
'3_phase_05_noise_floor',
|
||
|
|
'3_phase_06_noise_color',
|
||
|
|
// Amplitude ADSR
|
||
|
|
'2_temporal_00_attack',
|
||
|
|
'2_temporal_01_decay',
|
||
|
|
'2_temporal_02_sustain',
|
||
|
|
'2_temporal_03_release',
|
||
|
|
// Formants
|
||
|
|
'4_modulation_07_formant1_freq',
|
||
|
|
'4_modulation_08_formant2_freq',
|
||
|
|
'4_modulation_09_formant_depth',
|
||
|
|
// Odd/even
|
||
|
|
'1_spectral_shape_13_odd_even',
|
||
|
|
// Master
|
||
|
|
'5_master_00_level',
|
||
|
|
'5_master_04_saturation',
|
||
|
|
'3_phase_07_sub_harmonic',
|
||
|
|
],
|
||
|
|
overrides: {
|
||
|
|
'3_phase_05_noise_floor': { min: 0.0, max: 0.6, curve: 0.3 },
|
||
|
|
'3_phase_02_beating_depth': { min: 0.0, max: 0.6, curve: 0.3 },
|
||
|
|
'5_master_04_saturation': { min: 0.0, max: 0.5, curve: 0.35 },
|
||
|
|
},
|
||
|
|
mutedOverrides: {},
|
||
|
|
groupCurves: {},
|
||
|
|
},
|
||
|
|
|
||
|
|
// ======================================================================
|
||
|
|
// TIER 3 — Advanced (all 48 params)
|
||
|
|
// ======================================================================
|
||
|
|
{
|
||
|
|
id: 'additive-5',
|
||
|
|
name: '3.1',
|
||
|
|
tier: 3,
|
||
|
|
description: 'Full Spectrum — all 48 params active, no restrictions',
|
||
|
|
active: null, // null = all params active
|
||
|
|
overrides: {},
|
||
|
|
mutedOverrides: {},
|
||
|
|
groupCurves: {},
|
||
|
|
},
|
||
|
|
];
|
||
|
|
|
||
|
|
export const ADDITIVE_PRESET_TIERS = [
|
||
|
|
{ tier: 1, label: 'Beginner' },
|
||
|
|
{ tier: 2, label: 'Intermediate' },
|
||
|
|
{ tier: 3, label: 'Advanced' },
|
||
|
|
];
|