{
  "_sources": [
    {
      "type": "vendor-doc",
      "url": "https://archive.org/details/manual_MPC2500_OM_AKAI_EN",
      "notes": "Akai MPC2500 Operator's Manual rev 1.0 (MIDI implementation charts dated June 2005, 'Changing sequence by Program Change') and MPC2500 Manual Addendum v1.21 ('MIDI Machine Control', http://akaipro.com/documents/MPC2500/MPC2500_manual_addendumV1.21.pdf).",
      "firmware": "1.21",
      "imported_at": "2026-10-26"
    }
  ],
  "_limitations": "Source: Akai MPC2500 Operator's Manual rev 1.0 (MIDI implementation charts dated June 2005, 'Changing sequence by Program Change') and MPC2500 Manual Addendum v1.21 ('MIDI Machine Control', http://akaipro.com/documents/MPC2500/MPC2500_manual_addendumV1.21.pdf). The MIDI charts list the sampler (sound generator) section: notes 35-98 play the program's pads on its MIDI channel, Program Change 0-127 selects the program, channel pressure drives Note Repeat; the sequencer records and plays any channel message, which the performance routes cover. System Exclusive: recognized by the sequencer for recording only, no format given; not mapped. The manual gives no default pad-to-note table, so pads are not listed as triggers: notes 35-98 play whatever the program assigns to them. The MMC byte values are the MIDI standard's for the commands the addendum names; it does not print them. Untested on hardware.",
  "_coverage": {
    "entries_total": 12,
    "cc_entries": 1,
    "rpn_entries": 0,
    "nrpn_entries": 0,
    "sysex_commands": 5,
    "realtime_commands": 4,
    "channel_and_common_commands": 2,
    "note_triggers": 0,
    "replies": 0
  },
  "device": {
    "name": "MPC2500",
    "vendor": "Akai",
    "revision": "MPC2500 Operator's Manual rev 1.0 (June 2005) + Manual Addendum v1.21",
    "osc_prefix": "/mpc2500",
    "manufacturer_id": [
      71
    ],
    "device_id": []
  },
  "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": "/sequence/select",
      "section": "Sequencer",
      "args": [
        {
          "name": "sequence",
          "type": "u7",
          "range": [
            0,
            127
          ]
        }
      ],
      "_notes": "Program Change on channel 1 selects the sequence of that number when 'Sequence change by program change' is ON (MIDI/SYNC mode, MIDI page). For another channel use /program_change {program} {channel}.",
      "frame": [
        192,
        "{sequence}"
      ]
    },
    {
      "osc": "/transport/clock",
      "section": "Sync",
      "args": [],
      "_notes": "Timing Clock (F8H): followed when Sync In mode is MIDI CLOCK (MIDI/SYNC, SYNC page).",
      "frame": [
        248
      ]
    },
    {
      "osc": "/transport/start",
      "section": "Sync",
      "args": [],
      "_notes": "System Realtime Start (FAH): sequencer chart, Commands recognized.",
      "frame": [
        250
      ]
    },
    {
      "osc": "/transport/continue",
      "section": "Sync",
      "args": [],
      "_notes": "System Realtime Continue (FBH): sequencer chart, Commands recognized.",
      "frame": [
        251
      ]
    },
    {
      "osc": "/transport/stop",
      "section": "Sync",
      "args": [],
      "_notes": "System Realtime Stop (FCH): sequencer chart, Commands recognized.",
      "frame": [
        252
      ]
    },
    {
      "osc": "/song/position",
      "section": "Sync",
      "args": [
        {
          "name": "beats",
          "type": "u14",
          "range": [
            0,
            16383
          ]
        }
      ],
      "_notes": "Song Position Pointer (F2H), in MIDI beats (sixteenth notes). Sequencer chart: Song Position recognized.",
      "frame": [
        242,
        "{beats:u14_lsb}",
        "{beats:u14_msb}"
      ]
    },
    {
      "osc": "/mmc/deferred_play",
      "section": "MMC",
      "args": [],
      "_notes": "MIDI Machine Control (universal realtime F0 7F 7F 06 ..), received when Receive MMC is ON (MIDI/SYNC, SYNC page). MMC Deferred Play = Play.",
      "frame": [
        240,
        127,
        127,
        6,
        3,
        247
      ]
    },
    {
      "osc": "/mmc/stop",
      "section": "MMC",
      "args": [],
      "_notes": "MIDI Machine Control (universal realtime F0 7F 7F 06 ..), received when Receive MMC is ON (MIDI/SYNC, SYNC page). MMC Stop = Stop.",
      "frame": [
        240,
        127,
        127,
        6,
        1,
        247
      ]
    },
    {
      "osc": "/mmc/pause",
      "section": "MMC",
      "args": [],
      "_notes": "MIDI Machine Control (universal realtime F0 7F 7F 06 ..), received when Receive MMC is ON (MIDI/SYNC, SYNC page). MMC Pause = Stop.",
      "frame": [
        240,
        127,
        127,
        6,
        9,
        247
      ]
    },
    {
      "osc": "/mmc/record_strobe",
      "section": "MMC",
      "args": [],
      "_notes": "MIDI Machine Control (universal realtime F0 7F 7F 06 ..), received when Receive MMC is ON (MIDI/SYNC, SYNC page). MMC Record Strobe = Record.",
      "frame": [
        240,
        127,
        127,
        6,
        6,
        247
      ]
    },
    {
      "osc": "/mmc/locate",
      "section": "MMC",
      "args": [
        {
          "name": "hours",
          "type": "u7",
          "range": [
            0,
            23
          ]
        },
        {
          "name": "minutes",
          "type": "u7",
          "range": [
            0,
            59
          ]
        },
        {
          "name": "seconds",
          "type": "u7",
          "range": [
            0,
            59
          ]
        },
        {
          "name": "frames",
          "type": "u7",
          "range": [
            0,
            29
          ]
        }
      ],
      "_notes": "MIDI Machine Control (universal realtime F0 7F 7F 06 ..), received when Receive MMC is ON (MIDI/SYNC, SYNC page). MMC Locate (target time hh mm ss ff, subframes 0) = Locate; Locate 0 0 0 0 then Deferred Play = Play Start. Hours are sent without frame-rate bits.",
      "frame": [
        240,
        127,
        127,
        6,
        68,
        6,
        1,
        "{hours}",
        "{minutes}",
        "{seconds}",
        "{frames}",
        0,
        247
      ]
    }
  ],
  "cc_params": {
    "channel": 0,
    "_source": "",
    "entries": [
      {
        "osc": "/all_notes_off",
        "cc": 123,
        "range": [
          0,
          0
        ],
        "expects": "trigger",
        "section": "Channel mode",
        "_usage": "All Notes Off: recognized by the sampler section."
      }
    ]
  }
}
