This page is read from MIDI Instrument Definitions, a Python library used in the author's other projects, in which every number is traced to a document its maker published. Its source is on GitHub.
Yamaha DX7 MIDI implementation
The MIDI implementation of the Yamaha DX7: what it answers to, and the 10 controls it offers.
At a glance
- Firmware
- Not recorded.
- MIDI channel
- Any one of 1 to 16.
- Voices
- 16, or 1 as set on the instrument.
- Note range
- 0 to 127: C-1 to G9, counting middle C as C4.
- Velocity
- Sent and received. Release velocity is ignored.
- Aftertouch
- Sent, and none is answered.
- Pitch bend
- Not recorded.
- Program change
- Received and sent, with 64 presets.
- MIDI clock
- Not recorded.
- Start and stop
- Not recorded.
- Control change
- 10 controls, in the tables below.
- NRPN
- Not recorded.
- System exclusive
- Supported.
Controls
In the order the definition gives them, by group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("yamaha/dx7") has loaded them.
Controllers
| Control | CC | Values |
|---|---|---|
Modulation wheelmodulation_wheel |
1 | 0-127 |
Breath controllerbreath_controller |
2 | 0-127 |
Foot controllerfoot_controller |
4 | 0-127 |
Portamento
| Control | CC | Values |
|---|---|---|
Portamento timeportamento_time |
5 | 0-127 Received, never sent |
Portamento foot switchportamento_foot_switch |
65 | 0 off, 127 on |
Data entry
| Control | CC | Values |
|---|---|---|
Data entry knobdata_entry |
6 | 0-127 |
Data entry +1data_entry_increment |
96 | 127 on |
Data entry -1data_entry_decrement |
97 | 127 on |
Volume
| Control | CC | Values |
|---|---|---|
Volumevolume |
7 | 0-127 Received, never sent |
Foot switch
| Control | CC | Values |
|---|---|---|
Sustain foot switchsustain_foot_switch |
64 | 0 off, 127 on |
Where these facts come from
Source documents
- DX7 Operating Manual (Image), its user manual, read on 1 October 2026 (the file read).
How they were read
Operating manual (34pp scanned), pp. 21-22, 27, 30-32. The controller numbers are the two tables in the MIDI DATA FORMAT appendix, pp. 30 and 32, whose columns are C | Parameter | V - one table for what the instrument transmits and a second, longer one for what it receives.
This instrument is transcribed from a scan. Yamaha publishes the same manual as a text edition, and that edition omits this appendix entirely: its specifications chapter ends "(MIDI Data Format is not available.)" and its contents says "Some lists, the score, and the index are not available". So every controller number here was read by eye from the scanned page, twice and independently, because no machine on this side can read it: the scan has no text layer, and tools/check_citations.py reports that it checked none of these numbers rather than that it failed to find them. The text edition is not cited for anything, because where the two disagree it is the one that is wrong: it prints the external ROM memory as "(54 Memory)" where the scan says 64.
What the instrument transmits and what it receives are different sets, so each control says which. Received but never transmitted: portamento time and volume. The received table also lists controllers 125, 126 and 127 as OMNI, MONO and POLY all key off, which are channel mode messages and belong to the MIDI specification rather than to a definition; they are excluded for that reason and not because they were missed. Aftertouch is the other asymmetry: the instrument transmits channel aftertouch (p. 30) and the received data format (p. 32), which sets out the received messages one by one - key off, key on, control change, program change and pitch bender - has no aftertouch at all, so aftertouch is none and aftertouch_transmits is true.
NOT RECORDED, and marked in place:
- the pitch bend range as a number, since the bend range is a front panel setting of 0 to 12 and the instrument ignores the fine half of a bend it receives;
- and any firmware version, which the manual never states.
Also not carried, because the format has no field for it: the 156 voice parameters and 14 function parameters of p. 31, which are addressable over MIDI by system exclusive parameter change rather than by any controller number or NRPN. That is the whole of this instrument's deep editing, and the appendix prints every parameter number for it.