devices/yamaha/fs1r.electra-thor-zollinger-performance-editor.fw-unknown.jsonEdit on GitHubJSONYamaha FS1R (per Electra preset) MIDI CC chart, NRPN and OSC map
The Yamaha FS1R MIDI implementation: 1 CC, 254 SysEx commands, each named, for Claude (MCP), SuperCollider or any OSC app.
- sourceElectra One preset
- real unitnot yet checked
Not checked on a real Yamaha FS1R yet. Own one? Load a sound or send a control, and tell us whether it worked.
- Maker
- Yamaha
- Version
- per Electra preset
- Source
- Electra One preset
- OSC prefix
/fs1r
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/yamaha/fs1r.electra-thor-zollinger-performance-editor.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 fs1r: ask “what can the Yamaha FS1R do?” and it reads this map with list_routes. See the MCP guide.
MIDI controls
255 controls, each with its number, its range and the name to send
| Control | CC | Range | Name to send |
|---|---|---|---|
| Master volume | 7 | 0–127 | /fs1r/master_volume |
SysEx commands
| Command | Arguments | Name to send |
|---|---|---|
| Part 1 level | val: u7 | /fs1r/part_1_level |
| Part 2 level | val: u7 | /fs1r/part_2_level |
| Part 3 level | val: u7 | /fs1r/part_3_level |
| Part 4 level | val: u7 | /fs1r/part_4_level |
| Perf channel | val: u7 | /fs1r/perf_channel |
| Master tuning | val: u7 | /fs1r/master_tuning |
| Pt1 detune | val: u7 | /fs1r/pt1_detune |
| Pt2 detune | val: u7 | /fs1r/pt2_detune |
| Pt3 detune | val: u7 | /fs1r/pt3_detune |
| Pt4 detune | val: u7 | /fs1r/pt4_detune |
| Perf noteshift | val: u7 | /fs1r/perf_noteshift |
| Perf pan | val: u7 | /fs1r/perf_pan |
| Pt1 pan | val: u7 | /fs1r/pt1_pan |
| Pt2 pan | val: u7 | /fs1r/pt2_pan |
| Pt3 pan | val: u7 | /fs1r/pt3_pan |
| Pt4 pan | val: u7 | /fs1r/pt4_pan |
| Velocity curve | val: u7 | /fs1r/velocity_curve |
| Reverb return | val: u7 | /fs1r/reverb_return |
| Pt1 adr | val: u7 | /fs1r/pt1_adr |
| Pt2 adr | val: u7 | /fs1r/pt2_adr |
| Pt3 adr | val: u7 | /fs1r/pt3_adr |
| Pt4 adr | val: u7 | /fs1r/pt4_adr |
| Breath ctrl curve | val: u7 | /fs1r/breath_ctrl_curve |
| Variation return | val: u7 | /fs1r/variation_return |
| Pt1 fm | val: u7 | /fs1r/pt1_fm |
| Pt2 fm | val: u7 | /fs1r/pt2_fm |
| Pt3 fm | val: u7 | /fs1r/pt3_fm |
| Pt4 fm | val: u7 | /fs1r/pt4_fm |
| Perf volume | val: u7 | /fs1r/perf_volume |
| Pt1 frmt | val: u7 | /fs1r/pt1_frmt |
| Pt2 frmt | val: u7 | /fs1r/pt2_frmt |
| Pt3 frmt | val: u7 | /fs1r/pt3_frmt |
| Pt4 frmt | val: u7 | /fs1r/pt4_frmt |
| P1 bank | val: u7 | /fs1r/p1_bank |
| P1 program | val: u7 | /fs1r/p1_program |
| P1 lfo1 speed | val: u7 | /fs1r/p1_lfo1_speed |
| P1 filter on | val: u7 | /fs1r/p1_filter_on |
| P1 peg init lvl | val: u7 | /fs1r/p1_peg_init_lvl |
| P1 insertion on | val: u7 | /fs1r/p1_insertion_on |
| P1 receive chnl | val: u7 | /fs1r/p1_receive_chnl |
| P1 mono poly | val: u7 | /fs1r/p1_mono_poly |
| P1 lfo1 ptch md | val: u7 | /fs1r/p1_lfo1_ptch_md |
| P1 filter c o | val: u7 | /fs1r/p1_filter_c_o |
| P1 peg att time | val: u7 | /fs1r/p1_peg_att_time |
| P1 reverb send | val: u7 | /fs1r/p1_reverb_send |
| P1 velocity hi | val: u7 | /fs1r/p1_velocity_hi |
| P1 v n balance | val: u7 | /fs1r/p1_v_n_balance |
| P1 lfo1 delay | val: u7 | /fs1r/p1_lfo1_delay |
| P1 filt resonance | val: u7 | /fs1r/p1_filt_resonance |
| P1 peg rel lvl | val: u7 | /fs1r/p1_peg_rel_lvl |
| P1 variatn send | val: u7 | /fs1r/p1_variatn_send |
| P1 velocity lo | val: u7 | /fs1r/p1_velocity_lo |
| P1 express low | val: u7 | /fs1r/p1_express_low |
| P1 ptch nt shft | val: u7 | /fs1r/p1_ptch_nt_shft |
| P1 filt eg depth | val: u7 | /fs1r/p1_filt_eg_depth |
| P1 peg rel time | val: u7 | /fs1r/p1_peg_rel_time |
| P1 dry level | val: u7 | /fs1r/p1_dry_level |
| P1 vel sens depth | val: u7 | /fs1r/p1_vel_sens_depth |
| P1 pan scaling | val: u7 | /fs1r/p1_pan_scaling |
| P1 pb range hi | val: u7 | /fs1r/p1_pb_range_hi |
| P1 lfo2 speed | val: u7 | /fs1r/p1_lfo2_speed |
| P1 porta mode | val: u7 | /fs1r/p1_porta_mode |
| P1 vel sens offset | val: u7 | /fs1r/p1_vel_sens_offset |
| P1 pan lfo depth | val: u7 | /fs1r/p1_pan_lfo_depth |
| P1 pb range lo | val: u7 | /fs1r/p1_pb_range_lo |
| P1 lfo2 filt md | val: u7 | /fs1r/p1_lfo2_filt_md |
| P1 porta time | val: u7 | /fs1r/p1_porta_time |
| P2 bank | val: u7 | /fs1r/p2_bank |
| P2 program | val: u7 | /fs1r/p2_program |
| P2 lfo1 speed | val: u7 | /fs1r/p2_lfo1_speed |
| P2 filter on | val: u7 | /fs1r/p2_filter_on |
| P2 peg init lvl | val: u7 | /fs1r/p2_peg_init_lvl |
| P2 insertion on | val: u7 | /fs1r/p2_insertion_on |
| P2 receive chnl | val: u7 | /fs1r/p2_receive_chnl |
| P2 mono poly | val: u7 | /fs1r/p2_mono_poly |
| P2 lfo1 ptch md | val: u7 | /fs1r/p2_lfo1_ptch_md |
| P2 filter c o | val: u7 | /fs1r/p2_filter_c_o |
| P2 peg att time | val: u7 | /fs1r/p2_peg_att_time |
| P2 reverb send | val: u7 | /fs1r/p2_reverb_send |
| P2 velocity hi | val: u7 | /fs1r/p2_velocity_hi |
| P2 v n balance | val: u7 | /fs1r/p2_v_n_balance |
| P2 lfo1 delay | val: u7 | /fs1r/p2_lfo1_delay |
| P2 filt resonance | val: u7 | /fs1r/p2_filt_resonance |
| P2 peg rel lvl | val: u7 | /fs1r/p2_peg_rel_lvl |
| P2 variatn send | val: u7 | /fs1r/p2_variatn_send |
| P2 velocity lo | val: u7 | /fs1r/p2_velocity_lo |
| P2 express low | val: u7 | /fs1r/p2_express_low |
| P2 ptch nt shft | val: u7 | /fs1r/p2_ptch_nt_shft |
| P2 filt eg depth | val: u7 | /fs1r/p2_filt_eg_depth |
| P2 peg rel time | val: u7 | /fs1r/p2_peg_rel_time |
| P2 dry level | val: u7 | /fs1r/p2_dry_level |
| P2 vel sens depth | val: u7 | /fs1r/p2_vel_sens_depth |
| P2 pan scaling | val: u7 | /fs1r/p2_pan_scaling |
| P2 pb range hi | val: u7 | /fs1r/p2_pb_range_hi |
| P2 lfo2 speed | val: u7 | /fs1r/p2_lfo2_speed |
| P2 porta mode | val: u7 | /fs1r/p2_porta_mode |
| P2 vel sens offset | val: u7 | /fs1r/p2_vel_sens_offset |
| P2 pan lfo depth | val: u7 | /fs1r/p2_pan_lfo_depth |
| P2 pb range lo | val: u7 | /fs1r/p2_pb_range_lo |
| P2 lfo2 filt md | val: u7 | /fs1r/p2_lfo2_filt_md |
| P2 porta time | val: u7 | /fs1r/p2_porta_time |
| P3 bank | val: u7 | /fs1r/p3_bank |
| P3 program | val: u7 | /fs1r/p3_program |
| P3 lfo1 speed | val: u7 | /fs1r/p3_lfo1_speed |
| P3 filter on | val: u7 | /fs1r/p3_filter_on |
| P3 peg init lvl | val: u7 | /fs1r/p3_peg_init_lvl |
| P3 insertion on | val: u7 | /fs1r/p3_insertion_on |
| P3 receive chnl | val: u7 | /fs1r/p3_receive_chnl |
| P3 mono poly | val: u7 | /fs1r/p3_mono_poly |
| P3 lfo1 ptch md | val: u7 | /fs1r/p3_lfo1_ptch_md |
| P3 filter c o | val: u7 | /fs1r/p3_filter_c_o |
| P3 peg att time | val: u7 | /fs1r/p3_peg_att_time |
| P3 reverb send | val: u7 | /fs1r/p3_reverb_send |
| P3 velocity hi | val: u7 | /fs1r/p3_velocity_hi |
| P3 v n balance | val: u7 | /fs1r/p3_v_n_balance |
| P3 lfo1 delay | val: u7 | /fs1r/p3_lfo1_delay |
| P3 filt resonance | val: u7 | /fs1r/p3_filt_resonance |
| P3 peg rel lvl | val: u7 | /fs1r/p3_peg_rel_lvl |
| P3 variatn send | val: u7 | /fs1r/p3_variatn_send |
| P3 velocity lo | val: u7 | /fs1r/p3_velocity_lo |
| P3 express low | val: u7 | /fs1r/p3_express_low |
| P3 ptch nt shft | val: u7 | /fs1r/p3_ptch_nt_shft |
| P3 filt eg depth | val: u7 | /fs1r/p3_filt_eg_depth |
| P3 peg rel time | val: u7 | /fs1r/p3_peg_rel_time |
| P3 ins dry level | val: u7 | /fs1r/p3_ins_dry_level |
| P3 vel sens depth | val: u7 | /fs1r/p3_vel_sens_depth |
| P3 pan scaling | val: u7 | /fs1r/p3_pan_scaling |
| P3 pb range hi | val: u7 | /fs1r/p3_pb_range_hi |
| P3 lfo2 speed | val: u7 | /fs1r/p3_lfo2_speed |
| P3 porta mode | val: u7 | /fs1r/p3_porta_mode |
| P3 vel sens offset | val: u7 | /fs1r/p3_vel_sens_offset |
| P3 pan lfo depth | val: u7 | /fs1r/p3_pan_lfo_depth |
| P3 pb range lo | val: u7 | /fs1r/p3_pb_range_lo |
| P3 lfo2 filt md | val: u7 | /fs1r/p3_lfo2_filt_md |
| P3 porta time | val: u7 | /fs1r/p3_porta_time |
| P4 bank | val: u7 | /fs1r/p4_bank |
| P4 program | val: u7 | /fs1r/p4_program |
| P4 lfo1 speed | val: u7 | /fs1r/p4_lfo1_speed |
| P4 filter on | val: u7 | /fs1r/p4_filter_on |
| P4 peg init lvl | val: u7 | /fs1r/p4_peg_init_lvl |
| P4 insertion on | val: u7 | /fs1r/p4_insertion_on |
| P4 receive chnl | val: u7 | /fs1r/p4_receive_chnl |
| P4 mono poly | val: u7 | /fs1r/p4_mono_poly |
| P4 lfo1 ptch md | val: u7 | /fs1r/p4_lfo1_ptch_md |
| P4 filter c o | val: u7 | /fs1r/p4_filter_c_o |
| P4 peg att time | val: u7 | /fs1r/p4_peg_att_time |
| P4 reverb send | val: u7 | /fs1r/p4_reverb_send |
| P4 velocity hi | val: u7 | /fs1r/p4_velocity_hi |
| P4 v n balance | val: u7 | /fs1r/p4_v_n_balance |
| P4 lfo1 delay | val: u7 | /fs1r/p4_lfo1_delay |
| P4 filt resonance | val: u7 | /fs1r/p4_filt_resonance |
| P4 peg rel lvl | val: u7 | /fs1r/p4_peg_rel_lvl |
| P4 variatn send | val: u7 | /fs1r/p4_variatn_send |
| P4 velocity lo | val: u7 | /fs1r/p4_velocity_lo |
| P4 express low | val: u7 | /fs1r/p4_express_low |
| P4 ptch nt shft | val: u7 | /fs1r/p4_ptch_nt_shft |
| P4 filt eg depth | val: u7 | /fs1r/p4_filt_eg_depth |
| P4 peg rel time | val: u7 | /fs1r/p4_peg_rel_time |
| P4 dry level | val: u7 | /fs1r/p4_dry_level |
| P4 vel sens depth | val: u7 | /fs1r/p4_vel_sens_depth |
| P4 pan scaling | val: u7 | /fs1r/p4_pan_scaling |
| P4 pb range hi | val: u7 | /fs1r/p4_pb_range_hi |
| P4 lfo2 speed | val: u7 | /fs1r/p4_lfo2_speed |
| P4 porta mode | val: u7 | /fs1r/p4_porta_mode |
| P4 vel sens offset | val: u7 | /fs1r/p4_vel_sens_offset |
| P4 pan lfo depth | val: u7 | /fs1r/p4_pan_lfo_depth |
| P4 pb range lo | val: u7 | /fs1r/p4_pb_range_lo |
| P4 lfo2 filt md | val: u7 | /fs1r/p4_lfo2_filt_md |
| P4 porta time | val: u7 | /fs1r/p4_porta_time |
| Vc1 depth | val: u7 | /fs1r/vc1_depth |
| Vc7 depth | val: u7 | /fs1r/vc7_depth |
| Reverb type | val: u7 | /fs1r/reverb_type |
| 5a cch lvl | val: u7 | /fs1r/5a_cch_lvl |
| 64 er rev balance | val: u7 | /fs1r/64_er_rev_balance |
| 129 rev pan | val: u7 | /fs1r/129_rev_pan |
| Vc2 depth | val: u7 | /fs1r/vc2_depth |
| Vc8 depth | val: u7 | /fs1r/vc8_depth |
| 50 reverb time | val: u7 | /fs1r/50_reverb_time |
| 5c hi damp | val: u7 | /fs1r/5c_hi_damp |
| 65 hi damp | val: u7 | /fs1r/65_hi_damp |
| 12a rev return | val: u7 | /fs1r/12a_rev_return |
| Vc3 depth | val: u7 | /fs1r/vc3_depth |
| 52 reverb spread | val: u7 | /fs1r/52_reverb_spread |
| 5e delay2 lvl | val: u7 | /fs1r/5e_delay2_lvl |
| 66 fb level | val: u7 | /fs1r/66_fb_level |
| Vc4 depth | val: u7 | /fs1r/vc4_depth |
| 54 init delay | val: u7 | /fs1r/54_init_delay |
| 60 wallvary | val: u7 | /fs1r/60_wallvary |
| 67 eq hi gain | val: u7 | /fs1r/67_eq_hi_gain |
| Vc5 depth | val: u7 | /fs1r/vc5_depth |
| 56 hpf c o | val: u7 | /fs1r/56_hpf_c_o |
| 62 rev delay | val: u7 | /fs1r/62_rev_delay |
| Vc6 depth | val: u7 | /fs1r/vc6_depth |
| 58 lpf c o | val: u7 | /fs1r/58_lpf_c_o |
| 63 density | val: u7 | /fs1r/63_density |
| Variation type | val: u7 | /fs1r/variation_type |
| 72 eq lo freq | val: u7 | /fs1r/72_eq_lo_freq |
| 12c var pan | val: u7 | /fs1r/12c_var_pan |
| Insertion type | val: u7 | /fs1r/insertion_type |
| 112 eq lo freq | val: u7 | /fs1r/112_eq_lo_freq |
| 124 output lvl | val: u7 | /fs1r/124_output_lvl |
| 68 lfo freq | val: u7 | /fs1r/68_lfo_freq |
| 74 eq lo gain | val: u7 | /fs1r/74_eq_lo_gain |
| 12d var return | val: u7 | /fs1r/12d_var_return |
| 108 lfo freq | val: u7 | /fs1r/108_lfo_freq |
| 114 eq lo gain | val: u7 | /fs1r/114_eq_lo_gain |
| 126 release | val: u7 | /fs1r/126_release |
| 6a lfo depth | val: u7 | /fs1r/6a_lfo_depth |
| 76 eq hi freq | val: u7 | /fs1r/76_eq_hi_freq |
| 12e var rev send | val: u7 | /fs1r/12e_var_rev_send |
| 10a lfo depth | val: u7 | /fs1r/10a_lfo_depth |
| 116 eq hi freq | val: u7 | /fs1r/116_eq_hi_freq |
| 130 ins pan | val: u7 | /fs1r/130_ins_pan |
| 6c fb level | val: u7 | /fs1r/6c_fb_level |
| 78 eq hi gain | val: u7 | /fs1r/78_eq_hi_gain |
| 11a dry wet | val: u7 | /fs1r/11a_dry_wet |
| 10c fb level | val: u7 | /fs1r/10c_fb_level |
| 118 eq hi gain | val: u7 | /fs1r/118_eq_hi_gain |
| 131 ins rev send | val: u7 | /fs1r/131_ins_rev_send |
| 6e delay offset | val: u7 | /fs1r/6e_delay_offset |
| 11c eq mid freq | val: u7 | /fs1r/11c_eq_mid_freq |
| 10e delay offset | val: u7 | /fs1r/10e_delay_offset |
| 120 eq mid q | val: u7 | /fs1r/120_eq_mid_q |
| 132 ins var send | val: u7 | /fs1r/132_ins_var_send |
| 70 hi gain | val: u7 | /fs1r/70_hi_gain |
| 11e eq mid gain | val: u7 | /fs1r/11e_eq_mid_gain |
| 110 fb level | val: u7 | /fs1r/110_fb_level |
| 122 lfo phase | val: u7 | /fs1r/122_lfo_phase |
| 133 ins dry lvl | val: u7 | /fs1r/133_ins_dry_lvl |
| Fseq select | val: u7 | /fs1r/fseq_select |
| Start delay | val: u7 | /fs1r/start_delay |
| Fseq part | val: u7 | /fs1r/fseq_part |
| Start offset | val: u7 | /fs1r/start_offset |
| Eq lo shlf pk | val: u7 | /fs1r/eq_lo_shlf_pk |
| Eq hi shlf pk | val: u7 | /fs1r/eq_hi_shlf_pk |
| Scratch fseq | val: u7 | /fs1r/scratch_fseq |
| Loop start | val: u7 | /fs1r/loop_start |
| Eq low freq | val: u7 | /fs1r/eq_low_freq |
| Eq mid freq | val: u7 | /fs1r/eq_mid_freq |
| Eq hi freq | val: u7 | /fs1r/eq_hi_freq |
| Keyon 1st all | val: u7 | /fs1r/keyon_1st_all |
| Loop end | val: u7 | /fs1r/loop_end |
| Eq low gain | val: u7 | /fs1r/eq_low_gain |
| Eq mid gain | val: u7 | /fs1r/eq_mid_gain |
| Eq hi gain | val: u7 | /fs1r/eq_hi_gain |
| Pitch fseq fixed | val: u7 | /fs1r/pitch_fseq_fixed |
| Speed midi | val: u7 | /fs1r/speed_midi |
| Speed vel | val: u7 | /fs1r/speed_vel |
| Eq low q x10 | val: u7 | /fs1r/eq_low_q_x10 |
| Eq mid q x10 | val: u7 | /fs1r/eq_mid_q_x10 |
| Eq hi q x10 | val: u7 | /fs1r/eq_hi_q_x10 |
| Loop 1way round | val: u7 | /fs1r/loop_1way_round |
| Speed x10 | val: u7 | /fs1r/speed_x10 |
| Level vel | val: u7 | /fs1r/level_vel |
Performance MIDI
Notes, pitch bend and any CC are also available: /fs1r/note/on <note> <velocity>, /fs1r/cc/<number> <value>, /fs1r/pitchbend <0-16383>, /fs1r/program_change <n>.
Limitations
Imported from an Electra One community preset. The mapping reflects the preset author's editorial choices: parameter naming, ranges, and which params are exposed. Untested on hardware in this repo.
Other versions
The Yamaha FS1R is mapped in 2 versions. per Electra preset.
Frequently asked questions
How many parameters of the Yamaha FS1R can be controlled over MIDI?
SynthHub's map of the Yamaha FS1R lists 1 MIDI CC 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 Yamaha FS1R?
Yes: SynthHub's hosted MCP server knows the Yamaha FS1R's MIDI map, and its browser relay lets the agent send it parameter changes or load a sound, each sound change confirmed by you.