Subsystem Search

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
MODULATION
modulation
1 0-127
Received, never sent
VOLUME
volume
7 0-127
Received, never sent
EXPRESSION
expression
11 0-127
Received, never sent
SUSTAIN SWITCH
sustain_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 MODE
op1_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 MODE
op2_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 MODE
op3_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 MODE
op4_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

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.