Written from devices/yamaha/fs1r.electra-thor-zollinger-performance-editor.fw-unknown.jsonEdit on GitHubJSON

Yamaha 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:

osc-bridge osc-send /fs1r/master_volume 63

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>.

JSON

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.