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.
Roland SH-4d MIDI implementation
The MIDI implementation of the Roland SH-4d: what it answers to, and the 32 controls it offers, on firmware 2.00.
At a glance
- Firmware
- This page describes firmware 2.00.
- MIDI channel
- Any one of 1 to 16.
- Parts
- Tone part, 4 of them: each on a MIDI channel of its own.
Rhythm part: on a MIDI channel of its own. - MIDI mode
- 3: omni off, poly.
- Voices
- 60, shared by the parts that play notes.
- Note range
- 0 to 127: C-1 to G9, counting middle C as C4.
- Velocity
- Sent and received. Release velocity is ignored.
- Aftertouch
- Channel pressure, one value for every key. It sends aftertouch too.
- Pitch bend
- How far it bends is not recorded, and the range can be changed.
- Program change
- Received and sent, with 128 presets.
- MIDI clock
- Sent and received.
- Start and stop
- Sent and received.
- Control change
- 32 controls, in the tables below.
- NRPN
- Not recorded.
- System exclusive
- None.
Controls
In the order the definition gives them, by part and group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("roland/sh_4d") has loaded them.
Tone part
Amplifier
| Control | CC | Values |
|---|---|---|
AMP LEVEL (Pattern Part Level)amp_level |
7 | 0-127 |
AMP PAN (Pattern Part Pan)amp_pan |
10 | 0-127 |
AMP SUSTAINamp_sustain |
31 | 0-127 |
AMP RELEASEamp_release |
72 | 0-127 |
AMP ATTACKamp_attack |
73 | 0-127 |
AMP DECAYamp_decay |
75 | 0-127 |
Filter
| Control | CC | Values |
|---|---|---|
FILTER SUSTAINfilter_sustain |
28 | 0-127 |
FILTER RELEASEfilter_release |
29 | 0-127 |
FILTER RESONANCEfilter_resonance |
71 | 0-127 |
FILTER CUTOFFfilter_cutoff |
74 | 0-127 |
FILTER KBDfilter_kbd |
78 | 0-127 |
FILTER HPFfilter_hpf |
79 | 0-127 |
FILTER ENVfilter_env |
81 | 0-127 |
FILTER ATTACKfilter_attack |
82 | 0-127 |
FILTER DECAYfilter_decay |
83 | 0-127 |
FILTER DRIVEfilter_drive |
90 | 0-127 |
LFO
| Control | CC | Values |
|---|---|---|
LFO AMPlfo_amp |
80 | 0-127 |
LFO RATElfo_rate |
16 | 0-127 |
LFO PITCHlfo_pitch |
18 | 0-127 |
LFO FILTERlfo_filter |
19 | 0-127 |
LFO FADElfo_fade |
20 | 0-127 |
Pedals and portamento
| Control | CC | Values |
|---|---|---|
Hold Pedalhold_pedal |
64 | 0-127 Received, never sent |
Porta Swporta_sw |
65 | 0-127 Received, never sent |
Sostenutosostenuto |
66 | 0-127 Received, never sent |
Portamento Controlportamento_control |
84 | 0-127 Received, never sent |
Sliders
| Control | CC | Values |
|---|---|---|
SLIDER 1slider_1 |
85 | 0-127 |
SLIDER 2slider_2 |
86 | 0-127 |
SLIDER 3slider_3 |
87 | 0-127 |
SLIDER 4slider_4 |
88 | 0-127 |
Tone
| Control | CC | Values |
|---|---|---|
Modulation Wheelmodulation |
1 | 0-127 |
PITCHpitch |
21 | 0-127 |
TIMBREtimbre |
77 | 0-127 |
Where these facts come from
Source documents
- SH-4d Owner's Manual (Version 2.00), 2.00, dated 1 May 2025, owner's manual, read on 6 October 2026 (the file read).
- SH-4d Quick Start, dated 9 September 2022, quick start guide, read on 6 October 2026 (the file read).
How they were read
A 244-SHEET OWNER'S MANUAL AND NO SEPARATE MIDI DOCUMENT AT ALL. Roland gave roland/tb_3 a one-sheet chart and a six-sheet MIDI Implementation of its own; for this instrument the support page offers a quick start in eight languages and this manual, and nothing else. The MIDI is sheets 240 to 243, and the printed folio is the file sheet throughout.
THREE WHOLE CHARTS, IN FORCE AT THE SAME TIME, one per kind of destination: "MIDI implementation chart (Tone)" (manual p. 240), "MIDI implementation chart (Rhythm)" (manual p. 241) and "MIDI implementation chart (SYSTEM)" (manual p. 242). Only the first has any control change - the other two cross the whole row - so every control below belongs to a tone part.
THE THIRTY-TWO ROWS ARE READ BY COORDINATE, from the chart's own heading row at x=167 Transmitted, x=296 Recognized and x=426 Remarks, because the footnote markers sit beside the marks and a flat reading joins them to the wrong row. Twelve of the thirty-two carry the name the MIDI standard gives that number - 1 modulation, 7 level, 10 pan, 64 hold, 65 and 84 portamento, 66 sostenuto, 71 resonance, 72 release, 73 attack, 74 cutoff, 75 decay - which is the cheapest check there is that the rows were paired with the right names rather than one off.
THE BANK NUMBERS ARE PUBLISHED, AND SO IS WHAT THEY SELECT. Every bank and program row of the tone and rhythm charts carries footnote "*3 See Sound List" (manual p. 241), and the list is in the manual itself, on sheets 199 to 238 under a header printed Sound list with a lower-case l - which is why an exact search for the footnote's capitals found only the footnotes, and an earlier reading of this file said no list was published. Its tone list gives every preset tone's bank and program, from MSB 88 and LSB 64 (manual p. 213), and its rhythm set list every kit's, at MSB 86 and LSB 64 (manual p. 237). The list and the chart do not quite meet: the chart prints MSB 87–88 and LSB 64–77 for tones (manual p. 241), while the list uses no MSB 87 and runs to LSB 79 (manual p. 237).
AND THE PITCH BEND RANGE WAS NEARLY RECORDED AS ABSENT, BECAUSE THIS MAKER WRITES IT AS ONE WORD. A search of all 244 sheets for Bend Range returns nothing; the parameter is "BendRange Up 0-48 Sets how much the pitch changes (in semitones) when the [PITCH +] button is pressed." (manual p. 43), with "BendRange Dw 0-48" (manual p. 43) beside it. A sweep that drops everything but letters and digits finds it at once, and an exact search does not. So an absence has to be swept for with the text squashed, which is the same fault as a ligature or a low line standing in for a letter.
AND WHAT THAT PARAMETER GOVERNS IS NOT FULLY SAID. Both sentences describe the panel's [PITCH +] and [PITCH -] buttons, and the tone chart marks Pitch Bend in both columns without naming a depth. Nothing states whether a received pitch bend message bends by the same amount. programmable: true is carried because a settable bend range plainly exists; no semitones figure is carried, because 0-48 is the setting's range and no document gives the value in force.