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 reface DX MIDI implementation
The MIDI implementation of the Yamaha reface DX: what it answers to, and the 29 controls it offers, on firmware 1.30.
At a glance
- Firmware
- This page describes firmware 1.30.
- MIDI channel
- Any one of 1 to 16.
- Voices
- Not recorded.
- Note range
- Not recorded.
- Velocity
- Sent and received. Release velocity is ignored.
- Aftertouch
- None, sent or answered.
- Pitch bend
- How far it bends is not recorded, and the range can be changed.
- Program change
- Received and sent, with 32 presets.
- MIDI clock
- Sent and received.
- Start and stop
- Sent and received.
- Control change
- 29 controls, in the table below.
- NRPN
- None.
- 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/reface_dx") has loaded them.
| Control | CC | Values |
|---|---|---|
MODULATIONmodulation |
1 | 0-127 Received, never sent |
VOLUMEvolume |
7 | 0-127 Received, never sent |
EXPRESSIONexpression |
11 | 0-127 Received, never sent |
SUSTAIN SWITCHsustain_switch |
64 | 0-127 |
ALGO (algorithm)algo_algorithm |
80 | 0 algo_1, 12 algo_2, 23 algo_3, 35 algo_4, 46 algo_5, 58 algo_6, 69 algo_7, 81 algo_8, 92 algo_9, 104 algo_10, 115 algo_11, 127 algo_12 |
OP1 LEVEL (output level)op1_level_output_level |
85 | 0-127 |
OP1 FB (feedback level)op1_fb_feedback_level |
86 | 0-127 |
OP1 FB (feedback type)op1_fb_feedback_type |
87 | 0 sawtooth, 127 square |
OP1 FREQ MODEop1_freq_mode |
88 | 0 ratio, 127 fixed |
OP1 FREQ RATIO/FREQ (coarse)op1_freq_ratio_freq_coarse |
89 | 0-31 |
OP1 FREQ RATIO/FREQ (fine)op1_freq_ratio_freq_fine |
90 | 0-99 |
OP2 LEVEL (output level)op2_level_output_level |
102 | 0-127 |
OP2 FB (feedback level)op2_fb_feedback_level |
103 | 0-127 |
OP2 FB (feedback type)op2_fb_feedback_type |
104 | 0 sawtooth, 127 square |
OP2 FREQ MODEop2_freq_mode |
105 | 0 ratio, 127 fixed |
OP2 FREQ RATIO/FREQ (coarse)op2_freq_ratio_freq_coarse |
106 | 0-31 |
OP2 FREQ RATIO/FREQ (fine)op2_freq_ratio_freq_fine |
107 | 0-99 |
OP3 LEVEL (output level)op3_level_output_level |
108 | 0-127 |
OP3 FB (feedback level)op3_fb_feedback_level |
109 | 0-127 |
OP3 FB (feedback type)op3_fb_feedback_type |
110 | 0 sawtooth, 127 square |
OP3 FREQ MODEop3_freq_mode |
111 | 0 ratio, 127 fixed |
OP3 FREQ RATIO/FREQ (coarse)op3_freq_ratio_freq_coarse |
112 | 0-31 |
OP3 FREQ RATIO/FREQ (fine)op3_freq_ratio_freq_fine |
113 | 0-99 |
OP4 LEVEL (output level)op4_level_output_level |
114 | 0-127 |
OP4 FB (feedback level)op4_fb_feedback_level |
115 | 0-127 |
OP4 FB (feedback type)op4_fb_feedback_type |
116 | 0 sawtooth, 127 square |
OP4 FREQ MODEop4_freq_mode |
117 | 0 ratio, 127 fixed |
OP4 FREQ RATIO/FREQ (coarse)op4_freq_ratio_freq_coarse |
118 | 0-31 |
OP4 FREQ RATIO/FREQ (fine)op4_freq_ratio_freq_fine |
119 | 0-99 |
Where these facts come from
Source documents
- reface CS/DX/CP/YC Data List, b0, its MIDI implementation, read on 5 October 2026 (the file read).
- reface Version 1.30 Supplementary Manual, its user manual, read on 5 October 2026 (the file read).
- reface Reference Manual, its user manual, read on 5 October 2026 (the file read).
How they were read
reface CS/DX/CP/YC Data List, which carries this instrument's MIDI data format, its MIDI data table and its implementation chart on sheets 6 to 10, with the Version 1.30 Supplementary Manual for what that firmware added and the reface Reference Manual for the edit mode those controllers reach.
ONE SET OF DOCUMENTS COVERS FOUR INSTRUMENTS AND THE DATA LIST IS PARTITIONED BY MODEL. Its contents list gives the reface CS sheets 2 to 5, the DX 6 to 10, the CP 11 to 14 and the YC 15 to 19, each with its own format, table and chart, and the running head of every sheet names exactly one model. Two readers checked it independently and the second found the test a machine can apply: the system exclusive Model ID, 05H for the DX, which appears on sheets 6 and 7 and nowhere else in nineteen sheets. No material of this instrument's lies outside those five sheets and no other model's lies within them.
TWENTY-FIVE PARAMETERS CARRY A CONTROLLER NUMBER, and they are the algorithm plus six apiece for four operators - level, feedback level, feedback type, frequency mode, and frequency ratio coarse and fine. Both readers extracted the table independently, with different tools on different interpreters, and agree on every row and every value.
THE NUMBERS ARE 80, 85 TO 90, AND 102 TO 119. THEY ARE NOT 80 TO 119. Fifteen inside those endpoints are unused - 81 to 84 and 91 to 101 - and they are the specification's own assignments, so a reader expanding the endpoints into a span invents fifteen controllers this instrument does not answer to. The implementation chart prints the two groups as separate rows on a different sheet, which is a second table agreeing with the first.
AND THE TRAP IN THAT TABLE IS A REAL ONE RATHER THAN A HYPOTHETICAL. A parameter's number and a setting's transmitted value are both bare integers in the same column of the extracted text, and the algorithm's twelve settings transmit 0, 12, 23, 35, 46, 58, 69, 81, 92, 104 and 115 - of which 104 and 115 are controller numbers of other parameters in the same table. A reader taking the first integer on each line publishes four controllers that do not exist and gives two of them somebody else's parameter.
FOUR CONTROLLERS ARE FIXED AND ARE NOT PART OF THAT TABLE: modulation, volume and expression are received and never transmitted, and the sustain switch travels both ways. The maker's footnote on it is worth keeping: "When Sustain is set to 'FC4/5,' operating the foot switch transmits only values of 0 (off) or 127 (on)" (dl p. 6), so the pedal's own kind decides whether that controller is continuous or a switch.
THE TWENTY-FIVE ARE BEHIND A SETTING AND THE FOUR ARE NOT. "When MIDI Control Mode is turned on, Control Change numbers are assigned in order that voice parameter changes made using controllers on the front panel can be controlled via MIDI" (dl p. 6), and the table itself is headed "Transmitted and recognized Control Change Number and Value, when MIDI control is on" (dl p. 8). The implementation chart carries that qualification as a footnote against those two rows and against no others. So with MIDI Control off this instrument still answers to the four, to notes, to pitch bend and to program change, and to none of the twenty-five. The setting is reached from the panel or by system exclusive and by no controller.
NOT RECORDED: mode. The chart gives two different defaults - 3 transmitted and 1 recognised - and the field holds one number. This is roland/juno_106's case exactly, and it is settled the same way.
NOT RECORDED: polyphony. None of the three documents states a voice count, and the owner's manual that would is not among them.
A CHECKED ABSENCE: aftertouch. The chart marks both kinds, key's and channel's, as neither transmitted nor recognised, and nothing in the other two documents contradicts it.
A CHECKED ABSENCE: registered and non-registered parameters. Neither appears in any of the three documents, and controllers 96 to 101 are among the fifteen the table leaves unused.
AND ONE ABSENCE THAT IS NOT WHERE A READER WOULD LOOK FOR IT: there is no bank select of any kind. Controllers 0 and 32 appear nowhere, and the chart has no row for either. The 32 programs are reached by program change alone, eight to a bank across four banks, which the document states twice and consistently.
LOCAL CONTROL IS NOT REACHABLE BY CONTROLLER 122. The chart marks Local ON/OFF neither transmitted nor recognised, and the setting lives at a system exclusive address and on the panel instead. An instrument with local control that does not take the controller for it is worth saying out loud.
THE BEND RANGE IS A VOICE PARAMETER AND NOT A SYSTEM ONE, reached by system exclusive alone and settable from minus 24 to plus 24 semitones, so programmable records that it is the player's and no figure is given. The same parameter on the reface CS is a system parameter at an address this instrument leaves reserved, so its value is not transferable.
WHAT FIRMWARE 1.30 ADDED TO THIS INSTRUMENT, and it changed none of the tables above: master tuning, master transpose, a looper Quantize Mode and a guide or click sound switch. The supplement covers all four models and gave the reface CS nine new functions where this instrument got four - five of the CS's being things this one already had - so its list must not be read across.
THE CHART WAS NOT REDATED FOR THAT FIRMWARE AND THE SIBLING'S WAS. This instrument's is version 1.0 of 20 February 2015 while the CS's is version 1.1 of 31 March 2016, and the data table on sheet 8 does carry this instrument's 1.30 parameters at their system addresses. So either those addresses predate the firmware and 1.30 only gave them panel access, or the table was revised and the chart's version stamp was overlooked. The documents are consistent with both and this file does not choose. firmware records 1.30 because that is the newest the maker documents.