{
  "_sources": [
    {
      "type": "vendor-doc",
      "url": "https://usa.yamaha.com/files/download/other_assets/3/328693/A3000E.PDF",
      "notes": "Yamaha A3000 Owner's Manual (A3000E), Appendix 'MIDI data format': reception/transmission block diagram, channel messages (2.1), realtime (3), universal SysEx (4: sample dump, loop points, identity), Yamaha SysEx (5: bulk dump, dump request, parameter change and request), Table 2 (system parameters) and Table 3 (switch remote). Every route comes from these pages.",
      "firmware": "unknown",
      "imported_at": "2026-10-26"
    }
  ],
  "_limitations": "Source: A3000 Owner's Manual (version 1), Appendix 'MIDI data format'. Most controllers (0-120) are assigned per program or sample by the Control Matrix, so only the fixed ones are listed; Program Change selects a program on the basic receive channel when Program Change SW is on; pitch bend (MSB only) and channel aftertouch are received, polyphonic aftertouch is not. Parameter change frames carry 6 parameter bytes: the tables print only P1-P4, so unprinted bytes are sent as 00H. Signed system parameters (master fine/coarse tune, transpose) are left out: their two's-complement nibbles cannot be built from one value here. Program, sample bank and sample parameters (Table 1) are left out: they need an object select carrying the exact 16-byte object name first. Bulk dumps of programs, banks, samples, wave data and sequences, and sending a sample, are not exposed. Untested on hardware.",
  "_coverage": {
    "entries_total": 86,
    "cc_entries": 11,
    "rpn_entries": 0,
    "nrpn_entries": 0,
    "sysex_commands": 75,
    "realtime_commands": 0,
    "channel_and_common_commands": 0,
    "note_triggers": 0,
    "replies": 7
  },
  "device": {
    "name": "A3000",
    "vendor": "Yamaha",
    "revision": "A3000 Owner's Manual, Appendix 'MIDI data format' (version 1 manual)",
    "osc_prefix": "/a3000",
    "manufacturer_id": [
      67
    ],
    "device_id": [
      88
    ]
  },
  "sysex": {
    "header": [],
    "footer": [],
    "_notes": "Empty on purpose: each command frame carries its complete message."
  },
  "midi_out": {
    "default_channel": 0,
    "note_offset": 0
  },
  "midi_in": {
    "note_on": "/note/on {note} {velocity} {channel}",
    "note_off": "/note/off {note} {velocity} {channel}",
    "cc": "/cc/{num} {value} {channel}",
    "program_change": "/program_change {program} {channel}"
  },
  "commands": [
    {
      "osc": "/identity/request",
      "section": "Universal SysEx",
      "args": [],
      "_notes": "Universal Identity Request (F0 7E 00 06 01 F7). Identity Request on device channel 00H (the document says messages are valid when the channel matches the device number).",
      "frame": [
        240,
        126,
        0,
        6,
        1,
        247
      ]
    },
    {
      "osc": "/sample_dump/request",
      "section": "Sample dump",
      "args": [
        {
          "name": "sample",
          "type": "u14",
          "range": [
            0,
            1024
          ]
        }
      ],
      "_notes": "Sample Dump Request (sample number LSB first, 0-1024 = displayed 1-1025): if the sample exists the A3000 sends a dump header then data packets; answer each packet with ACK. Built for device number 1 (n = 0).",
      "frame": [
        240,
        126,
        0,
        3,
        "{sample:u14_lsb}",
        "{sample:u14_msb}",
        247
      ]
    },
    {
      "osc": "/sample_dump/ack",
      "section": "Sample dump",
      "args": [
        {
          "name": "packet",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "ACK: packet received correctly. Built for device number 1 (n = 0).",
      "frame": [
        240,
        126,
        0,
        127,
        "{packet}",
        247
      ]
    },
    {
      "osc": "/sample_dump/nak",
      "section": "Sample dump",
      "args": [
        {
          "name": "packet",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "NAK: packet received incorrectly. Built for device number 1 (n = 0).",
      "frame": [
        240,
        126,
        0,
        126,
        "{packet}",
        247
      ]
    },
    {
      "osc": "/sample_dump/cancel",
      "section": "Sample dump",
      "args": [
        {
          "name": "packet",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Cancel: terminate the dump. Built for device number 1 (n = 0).",
      "frame": [
        240,
        126,
        0,
        125,
        "{packet}",
        247
      ]
    },
    {
      "osc": "/sample_dump/wait",
      "section": "Sample dump",
      "args": [
        {
          "name": "packet",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Wait: pause the dump. Built for device number 1 (n = 0).",
      "frame": [
        240,
        126,
        0,
        124,
        "{packet}",
        247
      ]
    },
    {
      "osc": "/loop_points/request",
      "section": "Sample dump",
      "args": [
        {
          "name": "sample",
          "type": "u14",
          "range": [
            0,
            1024
          ]
        },
        {
          "name": "loop",
          "type": "u14",
          "range": [
            0,
            16383
          ]
        }
      ],
      "_notes": "Loop Point Request (sample and loop numbers LSB first; loop 16383 = all loops). Built for device number 1 (n = 0).",
      "frame": [
        240,
        126,
        0,
        5,
        2,
        "{sample:u14_lsb}",
        "{sample:u14_msb}",
        "{loop:u14_lsb}",
        "{loop:u14_msb}",
        247
      ]
    },
    {
      "osc": "/dump/request/system_parameters",
      "section": "Bulk dump",
      "args": [],
      "_notes": "Dump Request 'SY' (system parameters): header LM__0278SY, object name ignored for this type (sent as 16 spaces). The block diagram prints the request as F0 43 2n 7A (byte 2 of the frame table reads 0000nnnn; 2n is used). Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        32,
        122,
        76,
        77,
        32,
        32,
        48,
        50,
        55,
        56,
        83,
        89,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        247
      ]
    },
    {
      "osc": "/dump/request/object_list",
      "section": "Bulk dump",
      "args": [],
      "_notes": "Dump Request 'OL' (object list): header LM__0278OL, object name ignored for this type (sent as 16 spaces). The block diagram prints the request as F0 43 2n 7A (byte 2 of the frame table reads 0000nnnn; 2n is used). Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        32,
        122,
        76,
        77,
        32,
        32,
        48,
        50,
        55,
        56,
        79,
        76,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        32,
        247
      ]
    },
    {
      "osc": "/system/velocity_curve",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            17
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 3 -, value 0-17 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        3,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/velocity_curve",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 3: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        3,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/midi_receive_channel",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            15
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 4 -, value 0-15 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        4,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/midi_receive_channel",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 4: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        4,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/midi_omni",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            1
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 5 -, value 0-1 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        5,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/midi_omni",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 5: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        5,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/midi_program_change_enable",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            1
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 6 -, value 0-1 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        6,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/midi_program_change_enable",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 6: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        6,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/{index}/knob_midi_channel",
      "section": "System parameters",
      "args": [
        {
          "name": "index",
          "type": "u7",
          "range": [
            0,
            3
          ]
        },
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            16
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 7 index 0-3 for knob 2-5 (index 0-3), value 0-16 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        7,
        "{index}",
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/{index}/knob_midi_channel",
      "section": "System parameters",
      "args": [
        {
          "name": "index",
          "type": "u7",
          "range": [
            0,
            3
          ]
        }
      ],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 7: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        7,
        "{index}",
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/{index}/knob_control_device",
      "section": "System parameters",
      "args": [
        {
          "name": "index",
          "type": "u7",
          "range": [
            0,
            3
          ]
        },
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            120
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 8 index 0-3 for knob 2-5 (index 0-3), value 0-120 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        8,
        "{index}",
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/{index}/knob_control_device",
      "section": "System parameters",
      "args": [
        {
          "name": "index",
          "type": "u7",
          "range": [
            0,
            3
          ]
        }
      ],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 8: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        8,
        "{index}",
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/{index}/fkey_midi_channel",
      "section": "System parameters",
      "args": [
        {
          "name": "index",
          "type": "u7",
          "range": [
            0,
            5
          ]
        },
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            16
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 9 index 0-5 for F key 1-6 (index 0-5), value 0-16 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        9,
        "{index}",
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/{index}/fkey_midi_channel",
      "section": "System parameters",
      "args": [
        {
          "name": "index",
          "type": "u7",
          "range": [
            0,
            5
          ]
        }
      ],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 9: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        9,
        "{index}",
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/{index}/fkey_note",
      "section": "System parameters",
      "args": [
        {
          "name": "index",
          "type": "u7",
          "range": [
            0,
            5
          ]
        },
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 10 index 0-5 for F key 1-6 (index 0-5), value 0-127 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        10,
        "{index}",
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/{index}/fkey_note",
      "section": "System parameters",
      "args": [
        {
          "name": "index",
          "type": "u7",
          "range": [
            0,
            5
          ]
        }
      ],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 10: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        10,
        "{index}",
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/{index}/fkey_velocity",
      "section": "System parameters",
      "args": [
        {
          "name": "index",
          "type": "u7",
          "range": [
            0,
            5
          ]
        },
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 11 index 0-5 for F key 1-6 (index 0-5), value 0-127 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        11,
        "{index}",
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/{index}/fkey_velocity",
      "section": "System parameters",
      "args": [
        {
          "name": "index",
          "type": "u7",
          "range": [
            0,
            5
          ]
        }
      ],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 11: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        11,
        "{index}",
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/eq_low_boost_gain",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            52,
            76
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 12 -, value 52-76 sent as upper then lower nibble. Gain is the raw value 52-76 as printed. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        12,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/eq_low_boost_gain",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 12: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        12,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/eq_low_boost_frequency",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            4,
            40
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 13 -, value 4-40 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        13,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/eq_low_boost_frequency",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 13: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        13,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/eq_low_gain",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            52,
            76
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 14 -, value 52-76 sent as upper then lower nibble. Gain is the raw value 52-76 as printed. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        14,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/eq_low_gain",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 14: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        14,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/eq_low_frequency",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            4,
            40
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 15 -, value 4-40 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        15,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/eq_low_frequency",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 15: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        15,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/eq_low_width",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            10,
            120
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 16 -, value 10-120 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        16,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/eq_low_width",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 16: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        16,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/eq_mid_gain",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            52,
            76
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 17 -, value 52-76 sent as upper then lower nibble. Gain is the raw value 52-76 as printed. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        17,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/eq_mid_gain",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 17: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        17,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/eq_mid_frequency",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            4,
            58
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 18 -, value 4-58 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        18,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/eq_mid_frequency",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 18: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        18,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/eq_mid_width",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            10,
            120
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 19 -, value 10-120 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        19,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/eq_mid_width",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 19: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        19,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/eq_high_gain",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            52,
            76
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 20 -, value 52-76 sent as upper then lower nibble. Gain is the raw value 52-76 as printed. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        20,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/eq_high_gain",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 20: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        20,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/eq_high_frequency",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            28,
            58
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 21 -, value 28-58 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        21,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/eq_high_frequency",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 21: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        21,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/eq_high_width",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            10,
            120
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 22 -, value 10-120 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        22,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/eq_high_width",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 22: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        22,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/system/stereo_to_assignable_out",
      "section": "System parameters",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            5
          ]
        }
      ],
      "_notes": "System parameter change P1-P4 = 1 1 23 -, value 0-5 sent as upper then lower nibble. Built for device number 1 (n = 0).",
      "pre": [
        {
          "bind": "_g1",
          "expr": "value > 15"
        },
        {
          "bind": "_g2",
          "expr": "value > 31"
        },
        {
          "bind": "_g3",
          "expr": "value > 47"
        },
        {
          "bind": "_g4",
          "expr": "value > 63"
        },
        {
          "bind": "_g5",
          "expr": "value > 79"
        },
        {
          "bind": "_g6",
          "expr": "value > 95"
        },
        {
          "bind": "_g7",
          "expr": "value > 111"
        },
        {
          "bind": "_s2",
          "expr": "_g1 + _g2"
        },
        {
          "bind": "_s3",
          "expr": "_s2 + _g3"
        },
        {
          "bind": "_s4",
          "expr": "_s3 + _g4"
        },
        {
          "bind": "_s5",
          "expr": "_s4 + _g5"
        },
        {
          "bind": "_s6",
          "expr": "_s5 + _g6"
        },
        {
          "bind": "_s7",
          "expr": "_s6 + _g7"
        },
        {
          "bind": "_m",
          "expr": "_s7 * 16"
        },
        {
          "bind": "_lo",
          "expr": "value - _m"
        }
      ],
      "frame": [
        240,
        67,
        16,
        88,
        2,
        1,
        1,
        23,
        0,
        0,
        0,
        "{_s7}",
        "{_lo}",
        247
      ]
    },
    {
      "osc": "/system/request/stereo_to_assignable_out",
      "section": "System parameters",
      "args": [],
      "_notes": "Parameter request (system parameter) for P1-P4 = 1 1 23: the A3000 answers with a parameter change. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        48,
        88,
        2,
        1,
        1,
        23,
        0,
        0,
        0,
        247
      ]
    },
    {
      "osc": "/switch/fkey1",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 0 (FKEY1): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/fkey2",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 1 (FKEY2): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        1,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/fkey3",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 2 (FKEY3): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        2,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/fkey4",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 3 (FKEY4): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        3,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/fkey5",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 4 (FKEY5): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        4,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/fkey6",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 5 (FKEY6): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        5,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/command",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 6 (COMMAND): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        6,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/assignable",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 7 (ASSIGNABLE): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        7,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/audition",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 8 (AUDITION): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        8,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/play",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 9 (PLAY): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        9,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/edit",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 10 (EDIT): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        10,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/rec",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 11 (REC): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        11,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/disk",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 12 (DISK): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        12,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/utility",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 13 (UTILITY): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        13,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/knob1",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 14 (KNOB1 SW): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        14,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/knob2",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 15 (KNOB2 SW): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        15,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/knob3",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 16 (KNOB3 SW): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        16,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/knob4",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 17 (KNOB4 SW): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        17,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/switch/knob5",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 18 (KNOB5 SW): data 00-3F = off, 40-7F = on. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        18,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/knob/1/turn",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 123 (KNOB1 ENCODER): value - 64 = pulses (10 per rotation), positive turns right, negative left. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        123,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/knob/2/turn",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 124 (KNOB2 ENCODER): value - 64 = pulses (10 per rotation), positive turns right, negative left. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        124,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/knob/3/turn",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 125 (KNOB3 ENCODER): value - 64 = pulses (10 per rotation), positive turns right, negative left. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        125,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/knob/4/turn",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 126 (KNOB4 ENCODER): value - 64 = pulses (10 per rotation), positive turns right, negative left. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        126,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    },
    {
      "osc": "/knob/5/turn",
      "section": "Switch remote",
      "args": [
        {
          "name": "value",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Switch remote 127 (KNOB5 ENCODER): value - 64 = pulses (10 per rotation), positive turns right, negative left. Built for device number 1 (n = 0).",
      "frame": [
        240,
        67,
        16,
        88,
        3,
        127,
        0,
        0,
        0,
        0,
        0,
        "{value}",
        247
      ]
    }
  ],
  "cc_params": {
    "channel": 0,
    "_source": "A3000 MIDI data format, 2.1.4 Control changes and 2.1.5 Mode messages.",
    "entries": [
      {
        "osc": "/portamento_time",
        "cc": 5,
        "range": [
          0,
          127
        ],
        "section": "Controllers",
        "_usage": "Portamento time (per program)."
      },
      {
        "osc": "/volume",
        "cc": 7,
        "range": [
          0,
          127
        ],
        "section": "Controllers",
        "_usage": "Volume (level), per MIDI channel of a program."
      },
      {
        "osc": "/pan",
        "cc": 10,
        "range": [
          0,
          127
        ],
        "orientation": "centered",
        "section": "Controllers",
        "_usage": "Pan, per MIDI channel of a program."
      },
      {
        "osc": "/sustain",
        "cc": 64,
        "range": [
          0,
          127
        ],
        "expects": "switch",
        "section": "Controllers",
        "_usage": "Sustain."
      },
      {
        "osc": "/portamento",
        "cc": 65,
        "range": [
          0,
          127
        ],
        "expects": "switch",
        "section": "Controllers",
        "_usage": "Portamento on/off."
      },
      {
        "osc": "/sostenuto",
        "cc": 66,
        "range": [
          0,
          127
        ],
        "expects": "switch",
        "section": "Controllers",
        "_usage": "Sostenuto."
      },
      {
        "osc": "/all_sounds_off",
        "cc": 120,
        "range": [
          0,
          0
        ],
        "expects": "trigger",
        "section": "Channel mode",
        "_usage": "All sound off (always)."
      },
      {
        "osc": "/reset_all_controllers",
        "cc": 121,
        "range": [
          0,
          0
        ],
        "expects": "trigger",
        "section": "Channel mode",
        "_usage": "Reset all controllers (always)."
      },
      {
        "osc": "/all_notes_off",
        "cc": 123,
        "range": [
          0,
          0
        ],
        "expects": "trigger",
        "section": "Channel mode",
        "_usage": "All notes off (always)."
      },
      {
        "osc": "/mono",
        "cc": 126,
        "range": [
          0,
          0
        ],
        "expects": "trigger",
        "section": "Channel mode",
        "_usage": "Mono mode, for samples or sample banks."
      },
      {
        "osc": "/poly",
        "cc": 127,
        "range": [
          0,
          0
        ],
        "expects": "trigger",
        "section": "Channel mode",
        "_usage": "Poly mode, for samples or sample banks."
      }
    ]
  },
  "replies": [
    {
      "match_frame": [
        240,
        126,
        "{ch}",
        6,
        2,
        67,
        65,
        0,
        22,
        1,
        "{v1}",
        "{v2}",
        "{v3}",
        "{v4}",
        247
      ],
      "emit_osc": "/identity/reply {v1} {v2} {v3} {v4}",
      "_notes": "Identity Reply: family code 0041 (LM), family number 0116 (#0278), both LSB first; then the 4-byte software revision (0100-nnnn, LSB first)."
    },
    {
      "match_frame": [
        240,
        126,
        "{ch}",
        127,
        "{packet}",
        247
      ],
      "emit_osc": "/sample_dump/ack {packet}",
      "_notes": "ACK: packet received correctly. (sent by the A3000)"
    },
    {
      "match_frame": [
        240,
        126,
        "{ch}",
        126,
        "{packet}",
        247
      ],
      "emit_osc": "/sample_dump/nak {packet}",
      "_notes": "NAK: packet received incorrectly. (sent by the A3000)"
    },
    {
      "match_frame": [
        240,
        126,
        "{ch}",
        125,
        "{packet}",
        247
      ],
      "emit_osc": "/sample_dump/cancel {packet}",
      "_notes": "Cancel: terminate the dump. (sent by the A3000)"
    },
    {
      "match_frame": [
        240,
        126,
        "{ch}",
        124,
        "{packet}",
        247
      ],
      "emit_osc": "/sample_dump/wait {packet}",
      "_notes": "Wait: pause the dump. (sent by the A3000)"
    },
    {
      "match_frame": [
        240,
        126,
        "{ch}",
        1,
        "{s_lsb}",
        "{s_msb}",
        "{bits}",
        "{p0}",
        "{p1}",
        "{p2}",
        "{l0}",
        "{l1}",
        "{l2}",
        "{ls0}",
        "{ls1}",
        "{ls2}",
        "{le0}",
        "{le1}",
        "{le2}",
        "{loop}",
        247
      ],
      "emit_osc": "/sample_dump/header {s_lsb} {s_msb} {bits} {l0} {l1} {l2} {loop}",
      "_notes": "Dump Header: sample number, format (8-28 bits), period (ns), length in words, sustain loop start/end (all LSB first), loop type (00 forward, 01 backward/forward, 7F off)."
    },
    {
      "match_frame": [
        240,
        67,
        "{dev}",
        88,
        2,
        1,
        1,
        "{param}",
        "{index}",
        0,
        0,
        "{hi}",
        "{lo}",
        247
      ],
      "emit_osc": "/system/reply {param} {index} {hi} {lo}",
      "_notes": "Parameter change (system parameter) sent in answer to a request: value = hi x 16 + lo."
    }
  ]
}
