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 Wheelmodulation_wheel |
1 | 0-127 Received, never sent |
Panpan |
10 | 0-127 Received, never sent |
Expression Pedalexpression_pedal |
11 | 0-127 Received, never sent |
Damper Pedaldamper_pedal |
64 | 0-127 Received, never sent |
LFO
| Control | CC | Values |
|---|---|---|
LFO RATElfo_rate |
3 | 0-127 |
LFO WAVE FORMlfo_wave_form |
12 | 0-127 |
LFO MODULATION DEPTHlfo_modulation_depth |
17 | 0-127 |
LFO MODElfo_mode |
79 | 0-127 |
LFO KEY TRIGGERlfo_key_trigger |
105 | 0-127 |
LFO SYNClfo_sync |
106 | 0-127 |
Portamento
| Control | CC | Values |
|---|---|---|
PORTAMENTO TIMEportamento_time |
5 | 0-127 |
PORTAMENTO MODEportamento_mode |
31 | 0-127 |
PORTAMENTOportamento |
65 | 0-127 Received, never sent |
Oscillator
| Control | CC | Values |
|---|---|---|
OSC LFOosc_lfo |
13 | 0-127 |
OSC RANGEosc_range |
14 | 0-127 |
OSC PULSE WIDTHosc_pulse_width |
15 | 0-127 |
OSC PWM SOURCEosc_pwm_source |
16 | 0-127 |
OSC BEND SENSosc_bend_sens |
18 | 0-127 |
OSC LEVELosc_level_19 |
19 | 0-127 |
OSC LEVELosc_level_20 |
20 | 0-127 |
OSC SUB OSC LEVELosc_sub_osc_level |
21 | 0-127 |
OSC SUB OCT TYPEosc_sub_oct_type |
22 | 0-127 |
OSC NOISE LEVELosc_noise_level |
23 | 0-127 |
FINE TUNEfine_tune |
76 | 0-127 |
OSC DRAW MULTIPLYosc_draw_multiply |
102 | 0-127 |
OSC CHOP OVERTONEosc_chop_overtone |
103 | 0-127 |
OSC CHOP COMBosc_chop_comb |
104 | 0-127 |
OSC DRAW SWosc_draw_sw |
107 | 0-127 |
Filter
| Control | CC | Values |
|---|---|---|
FILTER ENVELOPEfilter_envelope |
24 | 0-127 |
FILTER LFOfilter_lfo |
25 | 0-127 |
FILTER KEYBOARD FOLLOWfilter_keyboard_follow |
26 | 0-127 |
FILTER BEND SENSfilter_bend_sens |
27 | 0-127 |
FILTER RESONANCEfilter_resonance |
71 | 0-127 |
FILTER FREQUENCYfilter_frequency |
74 | 0-127 |
Amp
| Control | CC | Values |
|---|---|---|
AMP ENVELOPE MODE SWamp_envelope_mode_sw |
28 | 0-127 |
Envelope
| Control | CC | Values |
|---|---|---|
ENV TRIGGER MODEenv_trigger_mode |
29 | 0-127 |
ENV SUSTAINenv_sustain |
30 | 0-127 |
ENV RELEASEenv_release |
72 | 0-127 |
ENV ATTACKenv_attack |
73 | 0-127 |
ENV DECAYenv_decay |
75 | 0-127 |
Chord
| Control | CC | Values |
|---|---|---|
POLY MODEpoly_mode |
80 | 0-127 |
CHORD VOICE 2 SWchord_voice_2_sw |
81 | 0-127 |
CHORD VOICE 3 SWchord_voice_3_sw |
82 | 0-127 |
CHORD VOICE 4 SWchord_voice_4_sw |
83 | 0-127 |
CHORD VOICE 2 KEY SHIFTchord_voice_2_key_shift |
85 | 0-127 |
CHORD VOICE 3 KEY SHIFTchord_voice_3_key_shift |
86 | 0-127 |
CHORD VOICE 4 KEY SHIFTchord_voice_4_key_shift |
87 | 0-127 |
Effects
| Control | CC | Values |
|---|---|---|
REVERB TIMEreverb_time |
89 | 0-127 |
DELAY TIMEdelay_time |
90 | 0-127 |
REVERB LEVELreverb_level |
91 | 0-127 |
DELAY LEVELdelay_level |
92 | 0-127 |
CHORUSchorus |
93 | 0-127 |
Without a group
| Control | CC | Values |
|---|---|---|
TRANSPOSE SWtranspose_sw |
77 | 0-127 Received, never sent |
NOISE MODEnoise_mode |
78 | 0-127 |
Where these facts come from
Source documents
- S-1 Owner's Manual, 1.02, dated 18 April 2023, its user manual, read on 4 October 2026 (the file read).
- S-1 Owner's Manual, 1.02, dated 18 April 2023, its user manual, read on 4 October 2026 (the file read).
- Roland - Support - S-1 - Owner's Manuals, its download page, read on 4 October 2026.
- Roland - Support - S-1 - Updates & Drivers, its download page, read on 9 October 2026.
- S-1 System Program (Ver 1.02), Ver 1.02, its release notes, read on 9 October 2026 (the file read).
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.