devices/roland/mc-303.vendor.fw-unknown.jsonEdit on GitHubJSONRoland MC-303 MIDI CC chart, NRPN and OSC map
The Roland MC-303 MIDI implementation: 21 CC, 13 NRPN, 3 RPN, 192 SysEx commands, each named, for Claude (MCP), SuperCollider or any OSC app.
- sourcemaker's documentation
- real unitnot yet checked
Not checked on a real Roland MC-303 yet. Own one? Load a sound or send a control, and tell us whether it worked.
- Maker
- Roland
- Version
- MIDI Implementation Version 1.00 (Mar. 25, 1996); OS version not stated
- Source
- maker's documentation
- OSC prefix
/mc_303
Use it
Find the MIDI ports, then start the bridge with this driver:
osc-bridge detect # prints the ready-to-run line for what is plugged in
osc-bridge run --device devices/roland/mc-303.vendor.fw-unknown.json --out-port <N> --in-port <M>
Then send OSC to 127.0.0.1:7777, for example:
From Claude or any MCP client, the osc-bridge mcp server exposes this driver as mc_303: ask “what can the Roland MC-303 do?” and it reads this map with list_routes. See the MCP guide.
MIDI controls
229 controls, each with its number, its range and the name to send
Program
| Control | CC | Range | Name to send |
|---|---|---|---|
| Bank select msb | 0 | discrete | /mc_303/bank/select_msb |
| Bank select lsb | 32 | discrete | /mc_303/bank/select_lsb |
Controllers
| Control | CC | Range | Name to send |
|---|---|---|---|
| Modulation | 1 | 0–127 | /mc_303/modulation |
| Portamento time | 5 | 0–127 | /mc_303/portamento_time |
| Hold | 64 | switch | /mc_303/hold |
| Portamento | 65 | switch | /mc_303/portamento |
| Sostenuto | 66 | switch | /mc_303/sostenuto |
| Soft | 67 | switch | /mc_303/soft |
| Portamento control | 84 | discrete | /mc_303/portamento_control |
Mixer
| Control | CC | Range | Name to send |
|---|---|---|---|
| Volume | 7 | 0–127 | /mc_303/volume |
| Pan | 10 | 0–127 | /mc_303/pan |
| Expression | 11 | 0–127 | /mc_303/expression |
Effects
| Control | CC | Range | Name to send |
|---|---|---|---|
| Reverb send | 91 | 0–127 | /mc_303/reverb_send |
| Chorus send | 93 | 0–127 | /mc_303/chorus_send |
Channel mode
| Control | CC | Range | Name to send |
|---|---|---|---|
| All sounds off | 120 | trigger | /mc_303/all_sounds_off |
| Reset all controllers | 121 | trigger | /mc_303/reset_all_controllers |
| All notes off | 123 | trigger | /mc_303/all_notes_off |
| Omni off | 124 | trigger | /mc_303/omni_off |
| Omni on | 125 | trigger | /mc_303/omni_on |
| Poly | 127 | trigger | /mc_303/poly |
| Mono | 126 | discrete | /mc_303/mono |
Registered parameters
| Control | CC | RPN (MSB/LSB) | Range | Name to send |
|---|---|---|---|---|
| Rpn pitch bend sensitivity | RPN 0 / 0 | discrete | /mc_303/rpn/pitch_bend_sensitivity |
|
| Rpn master fine tuning | RPN 0 / 1 | 0–16383 | /mc_303/rpn/master_fine_tuning |
|
| Rpn master coarse tuning | RPN 0 / 2 | discrete | /mc_303/rpn/master_coarse_tuning |
NRPN
| Control | CC | NRPN (MSB/LSB) | Range | Name to send |
|---|---|---|---|---|
| Vibrato rate | 1 / 8 | 14–114 | /mc_303/nrpn/vibrato_rate |
|
| Vibrato depth | 1 / 9 | 14–114 | /mc_303/nrpn/vibrato_depth |
|
| Vibrato delay | 1 / 10 | 14–114 | /mc_303/nrpn/vibrato_delay |
|
| Tvf cutoff | 1 / 32 | 14–114 | /mc_303/nrpn/tvf_cutoff |
|
| Tvf resonance | 1 / 33 | 14–114 | /mc_303/nrpn/tvf_resonance |
|
| Env attack | 1 / 99 | 14–114 | /mc_303/nrpn/env_attack |
|
| Env decay | 1 / 100 | 14–114 | /mc_303/nrpn/env_decay |
|
| Env release | 1 / 102 | 14–114 | /mc_303/nrpn/env_release |
NRPN (drum)
| Control | CC | NRPN (MSB/LSB) | Range | Name to send |
|---|---|---|---|---|
| Nrpn drum pitch coarse | 24 / 0–127 | 0–127 | /mc_303/nrpn/drum/pitch_coarse |
|
| Nrpn drum level | 26 / 0–127 | 0–127 | /mc_303/nrpn/drum/level |
|
| Nrpn drum pan | 28 / 0–127 | 0–127 | /mc_303/nrpn/drum/pan |
|
| Nrpn drum reverb send | 29 / 0–127 | 0–127 | /mc_303/nrpn/drum/reverb_send |
|
| Nrpn drum chorus send | 30 / 0–127 | 0–127 | /mc_303/nrpn/drum/chorus_send |
SysEx commands
| Command | Arguments | Name to send |
|---|---|---|
| Transport clock | /mc_303/transport/clock |
|
| Transport start | /mc_303/transport/start |
|
| Transport continue | /mc_303/transport/continue |
|
| Transport stop | /mc_303/transport/stop |
|
| Identity request | /mc_303/identity/request |
|
| Master volume | value: u7 | /mc_303/master/volume |
| System master volume | value: u7 | /mc_303/system/master_volume |
| System master key shift | value: u7 | /mc_303/system/master_key_shift |
| System master pan | value: u7 | /mc_303/system/master_pan |
| System mode set | mode: enum | /mc_303/system/mode_set |
| System reverb macro | type: enum | /mc_303/system/reverb/macro |
| System reverb character | value: u7 | /mc_303/system/reverb/character |
| System reverb pre lpf | value: u7 | /mc_303/system/reverb/pre_lpf |
| System reverb level | value: u7 | /mc_303/system/reverb/level |
| System reverb time | value: u7 | /mc_303/system/reverb/time |
| System reverb delay feedback | value: u7 | /mc_303/system/reverb/delay_feedback |
| System reverb send to chorus | value: u7 | /mc_303/system/reverb/send_to_chorus |
| System chorus macro | type: enum | /mc_303/system/chorus/macro |
| System chorus pre lpf | value: u7 | /mc_303/system/chorus/pre_lpf |
| System chorus level | value: u7 | /mc_303/system/chorus/level |
| System chorus feedback | value: u7 | /mc_303/system/chorus/feedback |
| System chorus delay | value: u7 | /mc_303/system/chorus/delay |
| System chorus rate | value: u7 | /mc_303/system/chorus/rate |
| System chorus depth | value: u7 | /mc_303/system/chorus/depth |
| System chorus send to reverb | value: u7 | /mc_303/system/chorus/send_to_reverb |
| Part {block} tone number | block: u7, bank: u7, program: u7 | /mc_303/part/{block}/tone_number |
| Part {block} rx channel | block: u7, value: u7 | /mc_303/part/{block}/rx/channel |
| Part {block} rx pitch bend | block: u7, value: enum | /mc_303/part/{block}/rx/pitch_bend |
| Part {block} rx ch pressure | block: u7, value: enum | /mc_303/part/{block}/rx/ch_pressure |
| Part {block} rx program change | block: u7, value: enum | /mc_303/part/{block}/rx/program_change |
| Part {block} rx control change | block: u7, value: enum | /mc_303/part/{block}/rx/control_change |
| Part {block} rx poly pressure | block: u7, value: enum | /mc_303/part/{block}/rx/poly_pressure |
| Part {block} rx note message | block: u7, value: enum | /mc_303/part/{block}/rx/note_message |
| Part {block} rx rpn | block: u7, value: enum | /mc_303/part/{block}/rx/rpn |
| Part {block} rx nrpn | block: u7, value: enum | /mc_303/part/{block}/rx/nrpn |
| Part {block} rx modulation | block: u7, value: enum | /mc_303/part/{block}/rx/modulation |
| Part {block} rx volume | block: u7, value: enum | /mc_303/part/{block}/rx/volume |
| Part {block} rx panpot | block: u7, value: enum | /mc_303/part/{block}/rx/panpot |
| Part {block} rx expression | block: u7, value: enum | /mc_303/part/{block}/rx/expression |
| Part {block} rx hold1 | block: u7, value: enum | /mc_303/part/{block}/rx/hold1 |
| Part {block} rx portamento | block: u7, value: enum | /mc_303/part/{block}/rx/portamento |
| Part {block} rx sostenuto | block: u7, value: enum | /mc_303/part/{block}/rx/sostenuto |
| Part {block} rx soft | block: u7, value: enum | /mc_303/part/{block}/rx/soft |
| Part {block} rx bank select | block: u7, value: enum | /mc_303/part/{block}/rx/bank_select |
| Part {block} mono poly | block: u7, value: enum | /mc_303/part/{block}/mono_poly |
| Part {block} assign mode | block: u7, value: enum | /mc_303/part/{block}/assign_mode |
| Part {block} use for rhythm part | block: u7, value: enum | /mc_303/part/{block}/use_for_rhythm_part |
| Part {block} pitch key shift | block: u7, value: u7 | /mc_303/part/{block}/pitch_key_shift |
| Part {block} level | block: u7, value: u7 | /mc_303/part/{block}/level |
| Part {block} velocity sense depth | block: u7, value: u7 | /mc_303/part/{block}/velocity_sense_depth |
| Part {block} velocity sense offset | block: u7, value: u7 | /mc_303/part/{block}/velocity_sense_offset |
| Part {block} pan | block: u7, value: u7 | /mc_303/part/{block}/pan |
| Part {block} key range low | block: u7, value: u7 | /mc_303/part/{block}/key_range_low |
| Part {block} key range high | block: u7, value: u7 | /mc_303/part/{block}/key_range_high |
| Part {block} chorus send | block: u7, value: u7 | /mc_303/part/{block}/chorus_send |
| Part {block} reverb send | block: u7, value: u7 | /mc_303/part/{block}/reverb_send |
| Part {block} cc1 controller number | block: u7, value: u7 | /mc_303/part/{block}/cc1_controller_number |
| Part {block} cc2 controller number | block: u7, value: u7 | /mc_303/part/{block}/cc2_controller_number |
| Part {block} tone modify1 | block: u7, value: u7 | /mc_303/part/{block}/tone_modify1 |
| Part {block} tone modify2 | block: u7, value: u7 | /mc_303/part/{block}/tone_modify2 |
| Part {block} tone modify3 | block: u7, value: u7 | /mc_303/part/{block}/tone_modify3 |
| Part {block} tone modify4 | block: u7, value: u7 | /mc_303/part/{block}/tone_modify4 |
| Part {block} tone modify5 | block: u7, value: u7 | /mc_303/part/{block}/tone_modify5 |
| Part {block} tone modify6 | block: u7, value: u7 | /mc_303/part/{block}/tone_modify6 |
| Part {block} tone modify7 | block: u7, value: u7 | /mc_303/part/{block}/tone_modify7 |
| Part {block} tone modify8 | block: u7, value: u7 | /mc_303/part/{block}/tone_modify8 |
| Part {block} lfo waveform | block: u7, value: enum | /mc_303/part/{block}/lfo_waveform |
| Part {block} scale tuning c | block: u7, value: u7 | /mc_303/part/{block}/scale_tuning/c |
| Part {block} scale tuning cs | block: u7, value: u7 | /mc_303/part/{block}/scale_tuning/cs |
| Part {block} scale tuning d | block: u7, value: u7 | /mc_303/part/{block}/scale_tuning/d |
| Part {block} scale tuning ds | block: u7, value: u7 | /mc_303/part/{block}/scale_tuning/ds |
| Part {block} scale tuning e | block: u7, value: u7 | /mc_303/part/{block}/scale_tuning/e |
| Part {block} scale tuning f | block: u7, value: u7 | /mc_303/part/{block}/scale_tuning/f |
| Part {block} scale tuning fs | block: u7, value: u7 | /mc_303/part/{block}/scale_tuning/fs |
| Part {block} scale tuning g | block: u7, value: u7 | /mc_303/part/{block}/scale_tuning/g |
| Part {block} scale tuning gs | block: u7, value: u7 | /mc_303/part/{block}/scale_tuning/gs |
| Part {block} scale tuning a | block: u7, value: u7 | /mc_303/part/{block}/scale_tuning/a |
| Part {block} scale tuning as | block: u7, value: u7 | /mc_303/part/{block}/scale_tuning/as |
| Part {block} scale tuning b | block: u7, value: u7 | /mc_303/part/{block}/scale_tuning/b |
| Part {block} mod pitch control | block: u7, value: u7 | /mc_303/part/{block}/mod/pitch_control |
| Part {block} mod tvf cutoff control | block: u7, value: u7 | /mc_303/part/{block}/mod/tvf_cutoff_control |
| Part {block} mod amplitude control | block: u7, value: u7 | /mc_303/part/{block}/mod/amplitude_control |
| Part {block} mod lfo1 rate control | block: u7, value: u7 | /mc_303/part/{block}/mod/lfo1_rate_control |
| Part {block} mod lfo1 pitch depth | block: u7, value: u7 | /mc_303/part/{block}/mod/lfo1_pitch_depth |
| Part {block} mod lfo1 tvf depth | block: u7, value: u7 | /mc_303/part/{block}/mod/lfo1_tvf_depth |
| Part {block} mod lfo1 tva depth | block: u7, value: u7 | /mc_303/part/{block}/mod/lfo1_tva_depth |
| Part {block} mod lfo2 rate control | block: u7, value: u7 | /mc_303/part/{block}/mod/lfo2_rate_control |
| Part {block} mod lfo2 pitch depth | block: u7, value: u7 | /mc_303/part/{block}/mod/lfo2_pitch_depth |
| Part {block} mod lfo2 tvf depth | block: u7, value: u7 | /mc_303/part/{block}/mod/lfo2_tvf_depth |
| Part {block} mod lfo2 tva depth | block: u7, value: u7 | /mc_303/part/{block}/mod/lfo2_tva_depth |
| Part {block} bend pitch control | block: u7, value: u7 | /mc_303/part/{block}/bend/pitch_control |
| Part {block} bend tvf cutoff control | block: u7, value: u7 | /mc_303/part/{block}/bend/tvf_cutoff_control |
| Part {block} bend amplitude control | block: u7, value: u7 | /mc_303/part/{block}/bend/amplitude_control |
| Part {block} bend lfo1 rate control | block: u7, value: u7 | /mc_303/part/{block}/bend/lfo1_rate_control |
| Part {block} bend lfo1 pitch depth | block: u7, value: u7 | /mc_303/part/{block}/bend/lfo1_pitch_depth |
| Part {block} bend lfo1 tvf depth | block: u7, value: u7 | /mc_303/part/{block}/bend/lfo1_tvf_depth |
| Part {block} bend lfo1 tva depth | block: u7, value: u7 | /mc_303/part/{block}/bend/lfo1_tva_depth |
| Part {block} bend lfo2 rate control | block: u7, value: u7 | /mc_303/part/{block}/bend/lfo2_rate_control |
| Part {block} bend lfo2 pitch depth | block: u7, value: u7 | /mc_303/part/{block}/bend/lfo2_pitch_depth |
| Part {block} bend lfo2 tvf depth | block: u7, value: u7 | /mc_303/part/{block}/bend/lfo2_tvf_depth |
| Part {block} bend lfo2 tva depth | block: u7, value: u7 | /mc_303/part/{block}/bend/lfo2_tva_depth |
| Part {block} caf pitch control | block: u7, value: u7 | /mc_303/part/{block}/caf/pitch_control |
| Part {block} caf tvf cutoff control | block: u7, value: u7 | /mc_303/part/{block}/caf/tvf_cutoff_control |
| Part {block} caf amplitude control | block: u7, value: u7 | /mc_303/part/{block}/caf/amplitude_control |
| Part {block} caf lfo1 rate control | block: u7, value: u7 | /mc_303/part/{block}/caf/lfo1_rate_control |
| Part {block} caf lfo1 pitch depth | block: u7, value: u7 | /mc_303/part/{block}/caf/lfo1_pitch_depth |
| Part {block} caf lfo1 tvf depth | block: u7, value: u7 | /mc_303/part/{block}/caf/lfo1_tvf_depth |
| Part {block} caf lfo1 tva depth | block: u7, value: u7 | /mc_303/part/{block}/caf/lfo1_tva_depth |
| Part {block} caf lfo2 rate control | block: u7, value: u7 | /mc_303/part/{block}/caf/lfo2_rate_control |
| Part {block} caf lfo2 pitch depth | block: u7, value: u7 | /mc_303/part/{block}/caf/lfo2_pitch_depth |
| Part {block} caf lfo2 tvf depth | block: u7, value: u7 | /mc_303/part/{block}/caf/lfo2_tvf_depth |
| Part {block} caf lfo2 tva depth | block: u7, value: u7 | /mc_303/part/{block}/caf/lfo2_tva_depth |
| Part {block} paf pitch control | block: u7, value: u7 | /mc_303/part/{block}/paf/pitch_control |
| Part {block} paf tvf cutoff control | block: u7, value: u7 | /mc_303/part/{block}/paf/tvf_cutoff_control |
| Part {block} paf amplitude control | block: u7, value: u7 | /mc_303/part/{block}/paf/amplitude_control |
| Part {block} paf lfo1 rate control | block: u7, value: u7 | /mc_303/part/{block}/paf/lfo1_rate_control |
| Part {block} paf lfo1 pitch depth | block: u7, value: u7 | /mc_303/part/{block}/paf/lfo1_pitch_depth |
| Part {block} paf lfo1 tvf depth | block: u7, value: u7 | /mc_303/part/{block}/paf/lfo1_tvf_depth |
| Part {block} paf lfo1 tva depth | block: u7, value: u7 | /mc_303/part/{block}/paf/lfo1_tva_depth |
| Part {block} paf lfo2 rate control | block: u7, value: u7 | /mc_303/part/{block}/paf/lfo2_rate_control |
| Part {block} paf lfo2 pitch depth | block: u7, value: u7 | /mc_303/part/{block}/paf/lfo2_pitch_depth |
| Part {block} paf lfo2 tvf depth | block: u7, value: u7 | /mc_303/part/{block}/paf/lfo2_tvf_depth |
| Part {block} paf lfo2 tva depth | block: u7, value: u7 | /mc_303/part/{block}/paf/lfo2_tva_depth |
| Part {block} cc1 pitch control | block: u7, value: u7 | /mc_303/part/{block}/cc1/pitch_control |
| Part {block} cc1 tvf cutoff control | block: u7, value: u7 | /mc_303/part/{block}/cc1/tvf_cutoff_control |
| Part {block} cc1 amplitude control | block: u7, value: u7 | /mc_303/part/{block}/cc1/amplitude_control |
| Part {block} cc1 lfo1 rate control | block: u7, value: u7 | /mc_303/part/{block}/cc1/lfo1_rate_control |
| Part {block} cc1 lfo1 pitch depth | block: u7, value: u7 | /mc_303/part/{block}/cc1/lfo1_pitch_depth |
| Part {block} cc1 lfo1 tvf depth | block: u7, value: u7 | /mc_303/part/{block}/cc1/lfo1_tvf_depth |
| Part {block} cc1 lfo1 tva depth | block: u7, value: u7 | /mc_303/part/{block}/cc1/lfo1_tva_depth |
| Part {block} cc1 lfo2 rate control | block: u7, value: u7 | /mc_303/part/{block}/cc1/lfo2_rate_control |
| Part {block} cc1 lfo2 pitch depth | block: u7, value: u7 | /mc_303/part/{block}/cc1/lfo2_pitch_depth |
| Part {block} cc1 lfo2 tvf depth | block: u7, value: u7 | /mc_303/part/{block}/cc1/lfo2_tvf_depth |
| Part {block} cc1 lfo2 tva depth | block: u7, value: u7 | /mc_303/part/{block}/cc1/lfo2_tva_depth |
| Part {block} cc2 pitch control | block: u7, value: u7 | /mc_303/part/{block}/cc2/pitch_control |
| Part {block} cc2 tvf cutoff control | block: u7, value: u7 | /mc_303/part/{block}/cc2/tvf_cutoff_control |
| Part {block} cc2 amplitude control | block: u7, value: u7 | /mc_303/part/{block}/cc2/amplitude_control |
| Part {block} cc2 lfo1 rate control | block: u7, value: u7 | /mc_303/part/{block}/cc2/lfo1_rate_control |
| Part {block} cc2 lfo1 pitch depth | block: u7, value: u7 | /mc_303/part/{block}/cc2/lfo1_pitch_depth |
| Part {block} cc2 lfo1 tvf depth | block: u7, value: u7 | /mc_303/part/{block}/cc2/lfo1_tvf_depth |
| Part {block} cc2 lfo1 tva depth | block: u7, value: u7 | /mc_303/part/{block}/cc2/lfo1_tva_depth |
| Part {block} cc2 lfo2 rate control | block: u7, value: u7 | /mc_303/part/{block}/cc2/lfo2_rate_control |
| Part {block} cc2 lfo2 pitch depth | block: u7, value: u7 | /mc_303/part/{block}/cc2/lfo2_pitch_depth |
| Part {block} cc2 lfo2 tvf depth | block: u7, value: u7 | /mc_303/part/{block}/cc2/lfo2_tvf_depth |
| Part {block} cc2 lfo2 tva depth | block: u7, value: u7 | /mc_303/part/{block}/cc2/lfo2_tva_depth |
| Drum {map} {note} play note number | map: u7, note: u7, value: u7 | /mc_303/drum/{map}/{note}/play_note_number |
| Drum {map} {note} level | map: u7, note: u7, value: u7 | /mc_303/drum/{map}/{note}/level |
| Drum {map} {note} assign group | map: u7, note: u7, value: u7 | /mc_303/drum/{map}/{note}/assign_group |
| Drum {map} {note} pan | map: u7, note: u7, value: u7 | /mc_303/drum/{map}/{note}/pan |
| Drum {map} {note} reverb send | map: u7, note: u7, value: u7 | /mc_303/drum/{map}/{note}/reverb_send |
| Drum {map} {note} chorus send | map: u7, note: u7, value: u7 | /mc_303/drum/{map}/{note}/chorus_send |
| Drum {map} {note} rx note off | map: u7, note: u7, value: enum | /mc_303/drum/{map}/{note}/rx_note_off |
| Drum {map} {note} rx note on | map: u7, note: u7, value: enum | /mc_303/drum/{map}/{note}/rx_note_on |
| Request all | /mc_303/request/all |
|
| Request system1 | /mc_303/request/system1 |
|
| Request system2 | /mc_303/request/system2 |
|
| Request part block 0 | /mc_303/request/part_block_0 |
|
| Request part block 1 | /mc_303/request/part_block_1 |
|
| Request part block 2 | /mc_303/request/part_block_2 |
|
| Request part block 3 | /mc_303/request/part_block_3 |
|
| Request part block 4 | /mc_303/request/part_block_4 |
|
| Request part block 5 | /mc_303/request/part_block_5 |
|
| Request part block 6 | /mc_303/request/part_block_6 |
|
| Request part block 7 | /mc_303/request/part_block_7 |
|
| Request part block 8 | /mc_303/request/part_block_8 |
|
| Request part block 9 | /mc_303/request/part_block_9 |
|
| Request part block A | /mc_303/request/part_block_A |
|
| Request part block B | /mc_303/request/part_block_B |
|
| Request part block C | /mc_303/request/part_block_C |
|
| Request part block D | /mc_303/request/part_block_D |
|
| Request part block E | /mc_303/request/part_block_E |
|
| Request part block F | /mc_303/request/part_block_F |
|
| Request drum map1 play note number | /mc_303/request/drum_map1/play_note_number |
|
| Request drum map2 play note number | /mc_303/request/drum_map2/play_note_number |
|
| Request drum map1 level | /mc_303/request/drum_map1/level |
|
| Request drum map2 level | /mc_303/request/drum_map2/level |
|
| Request drum map1 assign group number | /mc_303/request/drum_map1/assign_group_number |
|
| Request drum map2 assign group number | /mc_303/request/drum_map2/assign_group_number |
|
| Request drum map1 panpot | /mc_303/request/drum_map1/panpot |
|
| Request drum map2 panpot | /mc_303/request/drum_map2/panpot |
|
| Request drum map1 reverb send level | /mc_303/request/drum_map1/reverb_send_level |
|
| Request drum map2 reverb send level | /mc_303/request/drum_map2/reverb_send_level |
|
| Request drum map1 chorus send level | /mc_303/request/drum_map1/chorus_send_level |
|
| Request drum map2 chorus send level | /mc_303/request/drum_map2/chorus_send_level |
|
| Request drum map1 rx note on off | /mc_303/request/drum_map1/rx_note_on_off |
|
| Request drum map2 rx note on off | /mc_303/request/drum_map2/rx_note_on_off |
|
| Request drum map1 name | /mc_303/request/drum_map1/name |
|
| Request drum map2 name | /mc_303/request/drum_map2/name |
|
| Request variation setup | /mc_303/request/variation_setup |
|
| Request song setup | /mc_303/request/song_setup |
|
| Request pattern setup | /mc_303/request/pattern_setup |
|
| Request song | /mc_303/request/song |
Performance MIDI
Notes, pitch bend and any CC are also available: /mc_303/note/on <note> <velocity>, /mc_303/cc/<number> <value>, /mc_303/pitchbend <0-16383>, /mc_303/program_change <n>.
Limitations
Source: the scanned MC-303 Owner's Manual (MIDI implementation 1.00, 1996), read from the page images. Left out: MASTER TUNE (00 40 00 00) and PITCH OFFSET FINE (00 40 1x 17), sent as nibblized multi-byte data the bridge's frame engine cannot split; VOICE RESERVE (00 40 01 10, one 16-byte block whose other addresses cannot be starting addresses); the RPS Set, Pattern Set and User Pattern dump requests (11, 12 and 40 00 00 00), whose sizes are not legible in the scan. Bulk data is requested only, not decoded. Part parameters are addressed by block number, not MIDI channel (see each route). Notes play the part on that channel; the rhythm part's instruments depend on the drum map and are not listed as triggers. Normal Mode only transmits notes when Out Assign is Ext. Untested on hardware.
Frequently asked questions
How many parameters of the Roland MC-303 can be controlled over MIDI?
SynthHub's map of the Roland MC-303 lists 21 MIDI CC, 13 NRPN and 3 RPN parameters, each with its number, range and a readable name; the full chart is on this page.
Can an AI agent like Claude control the Roland MC-303?
Yes: SynthHub's hosted MCP server knows the Roland MC-303's MIDI map, and its browser relay lets the agent send it parameter changes or load a sound, each sound change confirmed by you.