{
    "schema_version": 2,
    "family": [
        "lead",
        "bass",
        "pad",
        "pluck",
        "keys",
        "arp",
        "fx"
    ],
    "wave": [
        "saw",
        "square",
        "pulse",
        "tri",
        "sine"
    ],
    "filter_type": [
        "lp24",
        "lp12",
        "hp12",
        "bp12"
    ],
    "lfo_shape": [
        "tri",
        "sine",
        "square",
        "saw",
        "sh"
    ],
    "lfo_dest": [
        "pitch",
        "cutoff",
        "amp",
        "pw"
    ],
    "max_oscs": 3,
    "max_lfos": 2,
    "params": [
        {
            "id": "osc1.wave",
            "label": "WAVE",
            "group": "OSC 1",
            "kind": "choice",
            "min": 0,
            "max": 4,
            "default": 0,
            "choices": [
                "SAW",
                "SQUARE",
                "PULSE",
                "TRI",
                "SINE"
            ]
        },
        {
            "id": "osc1.octave",
            "label": "OCT",
            "group": "OSC 1",
            "kind": "int",
            "min": -3,
            "max": 3,
            "default": 0
        },
        {
            "id": "osc1.detune_cents",
            "label": "DETUNE",
            "group": "OSC 1",
            "kind": "float",
            "min": -50,
            "max": 50,
            "default": 0,
            "unit": "ct"
        },
        {
            "id": "osc1.pw",
            "label": "PW",
            "group": "OSC 1",
            "kind": "float",
            "min": 0.05,
            "max": 0.95,
            "default": 0.5
        },
        {
            "id": "osc1.level",
            "label": "LEVEL",
            "group": "OSC 1",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 1
        },
        {
            "id": "osc1.unison",
            "label": "UNISON",
            "group": "OSC 1",
            "kind": "int",
            "min": 1,
            "max": 7,
            "default": 1
        },
        {
            "id": "osc1.unison_detune_cents",
            "label": "SPREAD",
            "group": "OSC 1",
            "kind": "float",
            "min": 0,
            "max": 60,
            "default": 10,
            "unit": "ct"
        },
        {
            "id": "osc2.wave",
            "label": "WAVE",
            "group": "OSC 2",
            "kind": "choice",
            "min": 0,
            "max": 4,
            "default": 0,
            "choices": [
                "SAW",
                "SQUARE",
                "PULSE",
                "TRI",
                "SINE"
            ]
        },
        {
            "id": "osc2.octave",
            "label": "OCT",
            "group": "OSC 2",
            "kind": "int",
            "min": -3,
            "max": 3,
            "default": 0
        },
        {
            "id": "osc2.detune_cents",
            "label": "DETUNE",
            "group": "OSC 2",
            "kind": "float",
            "min": -50,
            "max": 50,
            "default": 0,
            "unit": "ct"
        },
        {
            "id": "osc2.pw",
            "label": "PW",
            "group": "OSC 2",
            "kind": "float",
            "min": 0.05,
            "max": 0.95,
            "default": 0.5
        },
        {
            "id": "osc2.level",
            "label": "LEVEL",
            "group": "OSC 2",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 1
        },
        {
            "id": "osc2.unison",
            "label": "UNISON",
            "group": "OSC 2",
            "kind": "int",
            "min": 1,
            "max": 7,
            "default": 1
        },
        {
            "id": "osc2.unison_detune_cents",
            "label": "SPREAD",
            "group": "OSC 2",
            "kind": "float",
            "min": 0,
            "max": 60,
            "default": 10,
            "unit": "ct"
        },
        {
            "id": "osc3.wave",
            "label": "WAVE",
            "group": "OSC 3",
            "kind": "choice",
            "min": 0,
            "max": 4,
            "default": 0,
            "choices": [
                "SAW",
                "SQUARE",
                "PULSE",
                "TRI",
                "SINE"
            ]
        },
        {
            "id": "osc3.octave",
            "label": "OCT",
            "group": "OSC 3",
            "kind": "int",
            "min": -3,
            "max": 3,
            "default": 0
        },
        {
            "id": "osc3.detune_cents",
            "label": "DETUNE",
            "group": "OSC 3",
            "kind": "float",
            "min": -50,
            "max": 50,
            "default": 0,
            "unit": "ct"
        },
        {
            "id": "osc3.pw",
            "label": "PW",
            "group": "OSC 3",
            "kind": "float",
            "min": 0.05,
            "max": 0.95,
            "default": 0.5
        },
        {
            "id": "osc3.level",
            "label": "LEVEL",
            "group": "OSC 3",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 1
        },
        {
            "id": "osc3.unison",
            "label": "UNISON",
            "group": "OSC 3",
            "kind": "int",
            "min": 1,
            "max": 7,
            "default": 1
        },
        {
            "id": "osc3.unison_detune_cents",
            "label": "SPREAD",
            "group": "OSC 3",
            "kind": "float",
            "min": 0,
            "max": 60,
            "default": 10,
            "unit": "ct"
        },
        {
            "id": "oscs.count",
            "label": "OSCS",
            "group": "OSC 1",
            "kind": "int",
            "min": 1,
            "max": 3,
            "default": 1
        },
        {
            "id": "sub.wave",
            "label": "SUB WAVE",
            "group": "SUB",
            "kind": "choice",
            "min": 0,
            "max": 1,
            "default": 0,
            "choices": [
                "SQUARE",
                "SINE"
            ]
        },
        {
            "id": "sub.octave",
            "label": "SUB OCT",
            "group": "SUB",
            "kind": "int",
            "min": -2,
            "max": 0,
            "default": -1
        },
        {
            "id": "sub.level",
            "label": "SUB",
            "group": "SUB",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 0
        },
        {
            "id": "noise",
            "label": "NOISE",
            "group": "SUB",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 0
        },
        {
            "id": "filter.type",
            "label": "TYPE",
            "group": "FILTER",
            "kind": "choice",
            "min": 0,
            "max": 3,
            "default": 0,
            "choices": [
                "LP24",
                "LP12",
                "HP12",
                "BP12"
            ]
        },
        {
            "id": "filter.cutoff_hz",
            "label": "CUTOFF",
            "group": "FILTER",
            "kind": "float",
            "min": 30,
            "max": 18000,
            "default": 4000,
            "unit": "Hz",
            "skew": 0.3
        },
        {
            "id": "filter.res",
            "label": "RES",
            "group": "FILTER",
            "kind": "float",
            "min": 0,
            "max": 0.98,
            "default": 0.1
        },
        {
            "id": "filter.env_amount",
            "label": "ENV",
            "group": "FILTER",
            "kind": "float",
            "min": -1,
            "max": 1,
            "default": 0
        },
        {
            "id": "filter.key_track",
            "label": "KEY",
            "group": "FILTER",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 0.5
        },
        {
            "id": "filter.drive",
            "label": "DRIVE",
            "group": "FILTER",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 0
        },
        {
            "id": "amp_env.a_ms",
            "label": "ATTACK",
            "group": "AMP ENV",
            "kind": "float",
            "min": 0.5,
            "max": 8000,
            "default": 5,
            "unit": "ms",
            "skew": 0.35
        },
        {
            "id": "amp_env.d_ms",
            "label": "DECAY",
            "group": "AMP ENV",
            "kind": "float",
            "min": 5,
            "max": 12000,
            "default": 200,
            "unit": "ms",
            "skew": 0.35
        },
        {
            "id": "amp_env.s",
            "label": "SUSTAIN",
            "group": "AMP ENV",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 0.8
        },
        {
            "id": "amp_env.r_ms",
            "label": "RELEASE",
            "group": "AMP ENV",
            "kind": "float",
            "min": 5,
            "max": 12000,
            "default": 300,
            "unit": "ms",
            "skew": 0.35
        },
        {
            "id": "filter_env.a_ms",
            "label": "ATTACK",
            "group": "FILTER ENV",
            "kind": "float",
            "min": 0.5,
            "max": 8000,
            "default": 5,
            "unit": "ms",
            "skew": 0.35
        },
        {
            "id": "filter_env.d_ms",
            "label": "DECAY",
            "group": "FILTER ENV",
            "kind": "float",
            "min": 5,
            "max": 12000,
            "default": 200,
            "unit": "ms",
            "skew": 0.35
        },
        {
            "id": "filter_env.s",
            "label": "SUSTAIN",
            "group": "FILTER ENV",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 0.8
        },
        {
            "id": "filter_env.r_ms",
            "label": "RELEASE",
            "group": "FILTER ENV",
            "kind": "float",
            "min": 5,
            "max": 12000,
            "default": 300,
            "unit": "ms",
            "skew": 0.35
        },
        {
            "id": "lfo1.shape",
            "label": "SHAPE",
            "group": "LFO 1",
            "kind": "choice",
            "min": 0,
            "max": 4,
            "default": 0,
            "choices": [
                "TRI",
                "SINE",
                "SQUARE",
                "SAW",
                "S&H"
            ]
        },
        {
            "id": "lfo1.rate_hz",
            "label": "RATE",
            "group": "LFO 1",
            "kind": "float",
            "min": 0.02,
            "max": 40,
            "default": 5,
            "unit": "Hz",
            "skew": 0.35
        },
        {
            "id": "lfo1.dest",
            "label": "DEST",
            "group": "LFO 1",
            "kind": "choice",
            "min": 0,
            "max": 3,
            "default": 1,
            "choices": [
                "PITCH",
                "CUTOFF",
                "AMP",
                "PW"
            ]
        },
        {
            "id": "lfo1.amount",
            "label": "AMOUNT",
            "group": "LFO 1",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 0
        },
        {
            "id": "lfo1.delay_ms",
            "label": "DELAY",
            "group": "LFO 1",
            "kind": "float",
            "min": 0,
            "max": 5000,
            "default": 0,
            "unit": "ms",
            "skew": 0.4
        },
        {
            "id": "lfo2.shape",
            "label": "SHAPE",
            "group": "LFO 2",
            "kind": "choice",
            "min": 0,
            "max": 4,
            "default": 0,
            "choices": [
                "TRI",
                "SINE",
                "SQUARE",
                "SAW",
                "S&H"
            ]
        },
        {
            "id": "lfo2.rate_hz",
            "label": "RATE",
            "group": "LFO 2",
            "kind": "float",
            "min": 0.02,
            "max": 40,
            "default": 5,
            "unit": "Hz",
            "skew": 0.35
        },
        {
            "id": "lfo2.dest",
            "label": "DEST",
            "group": "LFO 2",
            "kind": "choice",
            "min": 0,
            "max": 3,
            "default": 1,
            "choices": [
                "PITCH",
                "CUTOFF",
                "AMP",
                "PW"
            ]
        },
        {
            "id": "lfo2.amount",
            "label": "AMOUNT",
            "group": "LFO 2",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 0
        },
        {
            "id": "lfo2.delay_ms",
            "label": "DELAY",
            "group": "LFO 2",
            "kind": "float",
            "min": 0,
            "max": 5000,
            "default": 0,
            "unit": "ms",
            "skew": 0.4
        },
        {
            "id": "glide_ms",
            "label": "GLIDE",
            "group": "VOICE",
            "kind": "float",
            "min": 0,
            "max": 3000,
            "default": 0,
            "unit": "ms",
            "skew": 0.4
        },
        {
            "id": "mono",
            "label": "MONO",
            "group": "VOICE",
            "kind": "bool",
            "min": 0,
            "max": 1,
            "default": 0
        },
        {
            "id": "velocity_to.amp",
            "label": "VEL>AMP",
            "group": "VOICE",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 0.5
        },
        {
            "id": "velocity_to.cutoff",
            "label": "VEL>CUT",
            "group": "VOICE",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 0
        },
        {
            "id": "fx.chorus.on",
            "label": "CHORUS",
            "group": "CHORUS",
            "kind": "bool",
            "min": 0,
            "max": 1,
            "default": 0
        },
        {
            "id": "fx.chorus.rate_hz",
            "label": "RATE",
            "group": "CHORUS",
            "kind": "float",
            "min": 0.05,
            "max": 8,
            "default": 0.8,
            "unit": "Hz",
            "skew": 0.4
        },
        {
            "id": "fx.chorus.depth_ms",
            "label": "DEPTH",
            "group": "CHORUS",
            "kind": "float",
            "min": 0.2,
            "max": 12,
            "default": 3,
            "unit": "ms"
        },
        {
            "id": "fx.chorus.mix",
            "label": "MIX",
            "group": "CHORUS",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 0.4
        },
        {
            "id": "fx.delay.on",
            "label": "DELAY",
            "group": "DELAY",
            "kind": "bool",
            "min": 0,
            "max": 1,
            "default": 0
        },
        {
            "id": "fx.delay.time_ms",
            "label": "TIME",
            "group": "DELAY",
            "kind": "float",
            "min": 10,
            "max": 2000,
            "default": 380,
            "unit": "ms",
            "skew": 0.5
        },
        {
            "id": "fx.delay.feedback",
            "label": "FEEDBACK",
            "group": "DELAY",
            "kind": "float",
            "min": 0,
            "max": 0.95,
            "default": 0.35
        },
        {
            "id": "fx.delay.mix",
            "label": "MIX",
            "group": "DELAY",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 0.2
        },
        {
            "id": "ir.mix",
            "label": "IR MIX",
            "group": "IR",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 0
        },
        {
            "id": "ir.blend",
            "label": "BLEND",
            "group": "IR",
            "kind": "float",
            "min": 0,
            "max": 1,
            "default": 1
        },
        {
            "id": "ir.pre_gain",
            "label": "IR DRIVE",
            "group": "IR",
            "kind": "float",
            "min": -24,
            "max": 24,
            "default": 0,
            "unit": "dB"
        }
    ]
}