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.

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 SUSTAIN
amp_sustain
31 0-127
AMP RELEASE
amp_release
72 0-127
AMP ATTACK
amp_attack
73 0-127
AMP DECAY
amp_decay
75 0-127

Filter

Control CC Values
FILTER SUSTAIN
filter_sustain
28 0-127
FILTER RELEASE
filter_release
29 0-127
FILTER RESONANCE
filter_resonance
71 0-127
FILTER CUTOFF
filter_cutoff
74 0-127
FILTER KBD
filter_kbd
78 0-127
FILTER HPF
filter_hpf
79 0-127
FILTER ENV
filter_env
81 0-127
FILTER ATTACK
filter_attack
82 0-127
FILTER DECAY
filter_decay
83 0-127
FILTER DRIVE
filter_drive
90 0-127

LFO

Control CC Values
LFO AMP
lfo_amp
80 0-127
LFO RATE
lfo_rate
16 0-127
LFO PITCH
lfo_pitch
18 0-127
LFO FILTER
lfo_filter
19 0-127
LFO FADE
lfo_fade
20 0-127

Pedals and portamento

Control CC Values
Hold Pedal
hold_pedal
64 0-127
Received, never sent
Porta Sw
porta_sw
65 0-127
Received, never sent
Sostenuto
sostenuto
66 0-127
Received, never sent
Portamento Control
portamento_control
84 0-127
Received, never sent

Sliders

Control CC Values
SLIDER 1
slider_1
85 0-127
SLIDER 2
slider_2
86 0-127
SLIDER 3
slider_3
87 0-127
SLIDER 4
slider_4
88 0-127

Tone

Control CC Values
Modulation Wheel
modulation
1 0-127
PITCH
pitch
21 0-127
TIMBRE
timbre
77 0-127

Where these facts come from

Source documents

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.