Yamaha AN1x: MIDI CC, NRPN and OSC map¶
The Yamaha AN1x as named OSC addresses — 74 CC, 1 SysEx commands — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | Yamaha AN1x |
|---|---|
| Vendor | Yamaha |
| OSC prefix | /an1x |
| Source | 🎛️ Derived from an Electra One community preset |
| Revision | per pencilresearch canonical CSV |
| Upstream | electra-preset |
| Driver file | devices/yamaha/an1x.json |
Not tested on the device yet
This driver comes from documentation or community data and has not been checked on real hardware. If you own one, a quick test and a pull request promoting it helps everyone — see CONTRIBUTING.
How do you control 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/an1x.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 an1x: ask “what can the Yamaha AN1x do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (74)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/an1x/general/main_volume |
7 | 0–127 | continuous | General | |
/an1x/general/pan_position |
10 | 0–127 | continuous | General | |
/an1x/general/scene_select |
3 | 0–127 | continuous | General | |
/an1x/general/layer_mode |
8 | 0–127 | continuous | General | |
/an1x/general/poly_mono_mode |
9 | 0–127 | continuous | General | |
/an1x/general/portamento_switch |
65 | 0–127 | continuous | General | |
/an1x/general/portamento_mode |
85 | 0–127 | continuous | General | |
/an1x/general/portamento_time |
5 | 0–127 | continuous | General | |
/an1x/general/sustain_switch |
64 | 0–127 | continuous | General | |
/an1x/general/mod_wheel |
1 | 0–127 | continuous | General | |
/an1x/general/expression |
11 | 0–127 | continuous | General | |
/an1x/general/foot_controller |
4 | 0–127 | continuous | General | |
/an1x/general/ribbon_z_controller |
12 | 0–127 | continuous | General | |
/an1x/general/ribbon_x_controller |
13 | 0–127 | continuous | General | |
/an1x/general/arpeggio_step_seq_switch |
90 | 0–127 | continuous | General | |
/an1x/oscillators/vco_1_wave_type |
50 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_1_pitch_coarse_tune |
21 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_1_pitch_fine_tune |
77 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_1_pitch_mod_depth |
18 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_1_edge |
76 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_1_pulse_width |
78 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_1_pwm_source |
86 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_1_pwm_depth |
79 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_sync_algorithm |
33 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_sync_pitch |
22 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_sync_pitch_source |
24 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_sync_pitch_depth |
23 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_sync_pitch_mod_switch |
34 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/fm_depth |
35 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/fm_source_1 |
36 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/fm_source_2 |
37 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_2_wave_type |
51 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_2_pitch_coarse_tune |
52 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_2_pitch_fine_tune |
53 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_2_pitch_mod_depth |
57 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_2_edge |
54 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_2_pulse_width |
55 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_2_pwm_source |
87 | 0–127 | continuous | Oscillators | |
/an1x/oscillators/vco_2_pwm_depth |
56 | 0–127 | continuous | Oscillators | |
/an1x/mixer/vco_1_level |
68 | 0–127 | continuous | Mixer | |
/an1x/mixer/vco_2_level |
69 | 0–127 | continuous | Mixer | |
/an1x/mixer/ring_modulator_level |
70 | 0–127 | continuous | Mixer | |
/an1x/mixer/noise_level |
39 | 0–127 | continuous | Mixer | |
/an1x/filter/vcf_hpf_cutoff |
58 | 0–127 | continuous | Filter | |
/an1x/filter/vcf_type |
59 | 0–127 | continuous | Filter | |
/an1x/filter/vcf_cutoff_brightness |
74 | 0–127 | continuous | Filter | |
/an1x/filter/vcf_resonance_harmonic_content |
71 | 0–127 | continuous | Filter | |
/an1x/filter/vcf_filter_mod_depth |
19 | 0–127 | continuous | Filter | |
/an1x/filter/vcf_cutoff_keyboard_track |
30 | 0–127 | continuous | Filter | |
/an1x/filter_envelope/filter_eg_atack |
82 | 0–127 | continuous | Filter Envelope | |
/an1x/filter_envelope/filter_eg_decay |
83 | 0–127 | continuous | Filter Envelope | |
/an1x/filter_envelope/filter_eg_sustain_level |
28 | 0–127 | continuous | Filter Envelope | |
/an1x/filter_envelope/filter_eg_release |
29 | 0–127 | continuous | Filter Envelope | |
/an1x/filter_envelope/filter_eg_depth |
81 | 0–127 | continuous | Filter Envelope | |
/an1x/filter_envelope/filter_eg_velocity_sensitivity |
60 | 0–127 | continuous | Filter Envelope | |
/an1x/amp/vca_volume |
62 | 0–127 | continuous | Amp | |
/an1x/amp/vca_feedback_level |
63 | 0–127 | continuous | Amp | |
/an1x/amp/vca_mod_depth |
80 | 0–127 | continuous | Amp | |
/an1x/amp_envelope/amp_eg_attack |
73 | 0–127 | continuous | Amp Envelope | |
/an1x/amp_envelope/amp_eg_decay |
75 | 0–127 | continuous | Amp Envelope | |
/an1x/amp_envelope/amo_eg_sustain_level |
31 | 0–127 | continuous | Amp Envelope | |
/an1x/amp_envelope/amp_eg_release |
72 | 0–127 | continuous | Amp Envelope | |
/an1x/amp_envelope/amp_eg_velocity_sensitivity |
61 | 0–127 | continuous | Amp Envelope | |
/an1x/lfos/lfo_1_wave |
15 | 0–127 | continuous | LFOs | |
/an1x/lfos/lfo_1_speed |
16 | 0–127 | continuous | LFOs | |
/an1x/lfos/lfo_1_delay |
20 | 0–127 | continuous | LFOs | |
/an1x/lfos/lfo_2_speed |
17 | 0–127 | continuous | LFOs | |
/an1x/lfos/lfo_reset_mode |
14 | 0–127 | continuous | LFOs | |
/an1x/peg/decay |
27 | 0–127 | continuous | PEG | |
/an1x/peg/depth |
25 | 0–127 | continuous | PEG | |
/an1x/peg/switch |
26 | 0–127 | continuous | PEG | |
/an1x/fx/reverb_depth |
91 | 0–127 | continuous | FX | |
/an1x/fx/chorus_variation_depth |
93 | 0–127 | continuous | FX | |
/an1x/fx/delay_depth |
94 | 0–127 | continuous | FX |
SysEx commands (1)¶
| OSC address | Arguments |
|---|---|
/an1x/fm_src_2 |
val: u7 |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /an1x/note/on <note> <velocity>, /an1x/cc/<number> <value>, /an1x/pitchbend <0-16383>, /an1x/program_change <n>.
Limitations¶
CC/NRPN only. SysEx (preset management, display control, bulk dump/load, vendor-proprietary opcodes) is NOT covered by pencilresearch. To extend this device with SysEx, sniff the vendor editor, add `sysex.header/footer` + `commands` blocks, and use `update_device.md` PR template.