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 S-1 MIDI implementation

The MIDI implementation of the Roland S-1: what it answers to, and the 54 controls it offers, on firmware 1.02.

At a glance

Firmware
This page describes firmware 1.02.
MIDI channel
Any one of 1 to 16.
Parts
Synth: on a MIDI channel of its own, taking notes and controls, with 4 voices.
Pattern: on a MIDI channel of its own, taking program changes.
MIDI mode
3: omni off, poly.
Voices
Each part's own, under Parts.
Note range
0 to 127: C-1 to G9, counting middle C as C4.
Velocity
Sent and received. Release velocity is ignored.
Aftertouch
None, sent or answered.
Pitch bend
Not recorded.
Program change
Received and sent, with 64 presets.
MIDI clock
Sent and received.
Start and stop
Sent and received.
Control change
54 controls, in the tables below.
NRPN
None.
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/s_1") has loaded them.

Synth

MIDI

Control CC Values
Modulation Wheel
modulation_wheel
1 0-127
Received, never sent
Pan
pan
10 0-127
Received, never sent
Expression Pedal
expression_pedal
11 0-127
Received, never sent
Damper Pedal
damper_pedal
64 0-127
Received, never sent

LFO

Control CC Values
LFO RATE
lfo_rate
3 0-127
LFO WAVE FORM
lfo_wave_form
12 0-127
LFO MODULATION DEPTH
lfo_modulation_depth
17 0-127
LFO MODE
lfo_mode
79 0-127
LFO KEY TRIGGER
lfo_key_trigger
105 0-127
LFO SYNC
lfo_sync
106 0-127

Portamento

Control CC Values
PORTAMENTO TIME
portamento_time
5 0-127
PORTAMENTO MODE
portamento_mode
31 0-127
PORTAMENTO
portamento
65 0-127
Received, never sent

Oscillator

Control CC Values
OSC LFO
osc_lfo
13 0-127
OSC RANGE
osc_range
14 0-127
OSC PULSE WIDTH
osc_pulse_width
15 0-127
OSC PWM SOURCE
osc_pwm_source
16 0-127
OSC BEND SENS
osc_bend_sens
18 0-127
OSC LEVEL
osc_level_19
19 0-127
OSC LEVEL
osc_level_20
20 0-127
OSC SUB OSC LEVEL
osc_sub_osc_level
21 0-127
OSC SUB OCT TYPE
osc_sub_oct_type
22 0-127
OSC NOISE LEVEL
osc_noise_level
23 0-127
FINE TUNE
fine_tune
76 0-127
OSC DRAW MULTIPLY
osc_draw_multiply
102 0-127
OSC CHOP OVERTONE
osc_chop_overtone
103 0-127
OSC CHOP COMB
osc_chop_comb
104 0-127
OSC DRAW SW
osc_draw_sw
107 0-127

Filter

Control CC Values
FILTER ENVELOPE
filter_envelope
24 0-127
FILTER LFO
filter_lfo
25 0-127
FILTER KEYBOARD FOLLOW
filter_keyboard_follow
26 0-127
FILTER BEND SENS
filter_bend_sens
27 0-127
FILTER RESONANCE
filter_resonance
71 0-127
FILTER FREQUENCY
filter_frequency
74 0-127

Amp

Control CC Values
AMP ENVELOPE MODE SW
amp_envelope_mode_sw
28 0-127

Envelope

Control CC Values
ENV TRIGGER MODE
env_trigger_mode
29 0-127
ENV SUSTAIN
env_sustain
30 0-127
ENV RELEASE
env_release
72 0-127
ENV ATTACK
env_attack
73 0-127
ENV DECAY
env_decay
75 0-127

Chord

Control CC Values
POLY MODE
poly_mode
80 0-127
CHORD VOICE 2 SW
chord_voice_2_sw
81 0-127
CHORD VOICE 3 SW
chord_voice_3_sw
82 0-127
CHORD VOICE 4 SW
chord_voice_4_sw
83 0-127
CHORD VOICE 2 KEY SHIFT
chord_voice_2_key_shift
85 0-127
CHORD VOICE 3 KEY SHIFT
chord_voice_3_key_shift
86 0-127
CHORD VOICE 4 KEY SHIFT
chord_voice_4_key_shift
87 0-127

Effects

Control CC Values
REVERB TIME
reverb_time
89 0-127
DELAY TIME
delay_time
90 0-127
REVERB LEVEL
reverb_level
91 0-127
DELAY LEVEL
delay_level
92 0-127
CHORUS
chorus
93 0-127

Without a group

Control CC Values
TRANSPOSE SW
transpose_sw
77 0-127
Received, never sent
NOISE MODE
noise_mode
78 0-127

Where these facts come from

Source documents

How they were read

S-1 Owner's Manual, version 1.02, 75 pages: every controller number below is on p. 73 or 74. Its MIDI implementation chart is p. 73, and its control change list runs from the foot of that page to the end of the next, where each number has a row and a name of its own (manual pp. 73-74). Until 2026-10-12 this said the list ran to the end of p. 75, which the paragraph on the running head below contradicts. The rest is cited for the two channels, the patterns, the polyphony and the connectors. And Roland's owner's manuals page for the S-1, for what is published, with its updates page and the 1.02 system program's page for the firmware.

ROLAND PUBLISHES THIS MANUAL AS WEB PAGES AND AS A PDF, in nine languages each, and they are the same document: the listing offers "S-1 Owner's Manual (Version 1.02) [HTML]" (downloads) and "S-1 Owner's Manual (Version 1.02) [PDF]" (downloads) side by side, both at version 1.02, and the PDF is what this definition reads because it is the one a machine can check.

THE CHART'S MARKS ARE LETTERS AND NOT DRAWINGS, which was the first thing checked - another maker's chart in this library draws every one of its yes and no marks as a vector and returns none of them to a machine. Roland's are lower-case o and x, where most makers use capitals, so a check that looked for the capitals would have found nothing and concluded the same thing wrongly.

TRYING THE NUMBERS FOUND AN UNLISTED EDITION, AND IT IS THE SAME DOCUMENT. The PDF is served as S-1_eng02_W.pdf; S-1_eng01_W.pdf is live and unlisted beside it, at 4,322,959 bytes against 2,835,392, and eng00 and eng03 to eng05 all answer 403. The two were built six days apart in May 2023 and are identical in text on 72 of their 75 sheets: what differs is a five-word phrase about charging temperature that moves from one page to the next, and the edition number on the last page. Both say "Version 1.02" (manual p. 73) inside. So this is a re-export rather than a correction, and nothing in the definition changes either way. The method found a missing edition for another Roland in this library and found nothing here; both are worth having.

THE TWO TABLES AGREE ABOUT WHICH NUMBERS EXIST, which is asserted rather than assumed. The chart's thirteen Control Change rows carry ranges - 1, 3, 5, 10, 11, 12-31, 64, 65, 71-76, 77, 78-83, 85-87, 89-93 and 102-107 - and expanding them gives exactly the fifty-four numbers the list names, with nothing in one and not the other.

AND FIVE OF THE LIST'S EXPLANATIONS HAVE A HOLE IN THEM. Controllers 15, 19, 20, 102 and 107 each have an empty bracket where the manual draws a waveform - a small bitmap, not a character - that no text extraction returns. Read off the page, the pulse wave is in 15, 19 and 102 and the sawtooth in 20 and 107. For three of them the symbol is inside the panel route and costs nothing; for 19 and 20 it is the only thing that tells two identically-named controls apart, and it is what says 19 is the pulse oscillator's level and 20 the sawtooth's.

THE LIST ENDS ON P. 74 AND THE RUNNING HEAD SAYS OTHERWISE. Printed p. 75 carries the heading "MIDI implementation chart" (manual p. 75) and no table at all: it is the colophon. A reader turning to the last page for the last of the controllers finds nothing and might conclude the list was truncated.

THE CHART HAS NO LEGEND. The block that normally sits under a chart of this shape - the one that says what Mode 1 to Mode 4 are and that o means yes and x means no - is absent, so this chart's marks are never defined anywhere in the manual. They are read here as every other chart in this library reads them.

WHAT IS ABSENT, from the chart's own rows. System exclusive is x in both columns, and so are song position, song select, tune request, and omni, mono and poly mode. Continue is x in both columns where start and stop are o in both, so it answers to a transport it cannot be told to resume. Aftertouch is x in all four of its cells. Pitch bend is x transmitted and o received. And the words NRPN, RPN and Registered Parameter appear nowhere in the manual's 75 pages.