Polyend Synth MIDI CC chart, NRPN and OSC map¶
The Polyend Synth MIDI implementation: 195 CC, 1 SysEx commands, each named, for Claude (MCP), SuperCollider or any OSC app.
| Device | Polyend Synth |
|---|---|
| Vendor | Polyend |
| OSC prefix | /polysynth |
| Source | π From the manufacturer's documentation |
| Revision | fw as of 2025 |
| Upstream | vendor-doc |
| Driver file | devices/polyend/synth.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/polyend/synth.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 polysynth: ask βwhat can the Polyend Synth do?β and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (195)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/polysynth/acd/engine/saw_mix |
20 | 0β127 | continuous | ACD / Engine | |
/polysynth/fat/engine/fatness |
27 | 0β127 | continuous | FAT / Engine | |
/polysynth/wavs/engine_p1/position_1 |
22 | 0β127 | continuous | WAVS / Engine P1 | |
/polysynth/acd/engine/square_mix |
21 | 0β127 | continuous | ACD / Engine | |
/polysynth/fat/engine/brightness |
23 | 0β127 | continuous | FAT / Engine | |
/polysynth/wavs/engine_p1/position_2 |
27 | 0β127 | continuous | WAVS / Engine P1 | |
/polysynth/acd/engine/sub_mix |
22 | 0β127 | continuous | ACD / Engine | |
/polysynth/fat/engine/timbre |
20 | 0β127 | continuous | FAT / Engine | |
/polysynth/wavs/engine_p1/mix |
20 | 0β127 | continuous | WAVS / Engine P1 | |
/polysynth/acd/engine/noise |
23 | 0β127 | continuous | ACD / Engine | |
/polysynth/fat/engine/fatness_lfo |
24 | 0β127 | continuous | FAT / Engine | |
/polysynth/wavs/engine_p1/warp_1 |
21 | 0β127 | continuous | WAVS / Engine P1 | |
/polysynth/acd/engine/pw |
24 | 0β127 | continuous | ACD / Engine | |
/polysynth/fat/engine/noise |
21 | 0β127 | continuous | FAT / Engine | |
/polysynth/wavs/engine_p1/warp_2 |
28 | 0β127 | continuous | WAVS / Engine P1 | |
/polysynth/acd/engine/pitch_lfo |
27 | 0β127 | continuous | ACD / Engine | |
/polysynth/wavs/engine_p1/noise |
29 | 0β127 | continuous | WAVS / Engine P1 | |
/polysynth/acd/engine/pw_env |
26 | 0β127 | continuous | ACD / Engine | |
/polysynth/wavs/engine_p2/tune_1 |
25 | 0β127 | continuous | WAVS / Engine P2 | |
/polysynth/fat/filter/cutoff |
74 | 0β127 | continuous | FAT / Filter | |
/polysynth/acd/engine/pw_lfo |
25 | 0β127 | continuous | ACD / Engine | |
/polysynth/wavs/engine_p2/tune_2 |
30 | 0β127 | continuous | WAVS / Engine P2 | |
/polysynth/fat/filter/resonance |
71 | 0β127 | continuous | FAT / Filter | |
/polysynth/wavs/engine_p2/detune |
31 | 0β127 | continuous | WAVS / Engine P2 | |
/polysynth/fat/filter/env_amount |
77 | 0β127 | continuous | FAT / Filter | |
/polysynth/wavs/engine_p3/finetune |
26 | 0β127 | continuous | WAVS / Engine P3 | |
/polysynth/acd/filter/cutoff |
74 | 0β127 | continuous | ACD / Filter | |
/polysynth/fat/filter/filter_lfo |
78 | 0β127 | continuous | FAT / Filter | |
/polysynth/acd/filter/resonance |
71 | 0β127 | continuous | ACD / Filter | |
/polysynth/acd/filter/env_amount |
77 | 0β127 | continuous | ACD / Filter | |
/polysynth/wavs/filter/cutoff |
74 | 0β127 | continuous | WAVS / Filter | |
/polysynth/fat/env_amp/attack |
75 | 0β127 | continuous | FAT / Env Amp | |
/polysynth/acd/filter/filter_lfo |
78 | 0β127 | continuous | ACD / Filter | |
/polysynth/wavs/filter/resonance |
71 | 0β127 | continuous | WAVS / Filter | |
/polysynth/fat/env_amp/decay |
72 | 0β127 | continuous | FAT / Env Amp | |
/polysynth/wavs/filter/env_amount |
77 | 0β127 | continuous | WAVS / Filter | |
/polysynth/fat/env_amp/sustain |
76 | 0β127 | continuous | FAT / Env Amp | |
/polysynth/acd/env_amp/attack |
75 | 0β127 | continuous | ACD / Env Amp | |
/polysynth/fat/env_amp/release |
73 | 0β127 | continuous | FAT / Env Amp | |
/polysynth/acd/env_amp/decay |
72 | 0β127 | continuous | ACD / Env Amp | |
/polysynth/wavs/env_amp/attack |
75 | 0β127 | continuous | WAVS / Env Amp | |
/polysynth/acd/env_amp/sustain |
76 | 0β127 | continuous | ACD / Env Amp | |
/polysynth/wavs/env_amp/decay |
72 | 0β127 | continuous | WAVS / Env Amp | |
/polysynth/fat/env_filter/attack |
80 | 0β127 | continuous | FAT / Env Filter | |
/polysynth/acd/env_amp/release |
73 | 0β127 | continuous | ACD / Env Amp | |
/polysynth/wavs/env_amp/sustain |
76 | 0β127 | continuous | WAVS / Env Amp | |
/polysynth/fat/env_filter/decay |
81 | 0β127 | continuous | FAT / Env Filter | |
/polysynth/wavs/env_amp/release |
73 | 0β127 | continuous | WAVS / Env Amp | |
/polysynth/fat/env_filter/sustain |
82 | 0β127 | continuous | FAT / Env Filter | |
/polysynth/acd/env_filter/attack |
80 | 0β127 | continuous | ACD / Env Filter | |
/polysynth/fat/env_filter/release |
83 | 0β127 | continuous | FAT / Env Filter | |
/polysynth/acd/env_filter/decay |
81 | 0β127 | continuous | ACD / Env Filter | |
/polysynth/wavs/env_filter/attack |
80 | 0β127 | continuous | WAVS / Env Filter | |
/polysynth/acd/env_filter/sustain |
82 | 0β127 | continuous | ACD / Env Filter | |
/polysynth/wavs/env_filter/decay |
81 | 0β127 | continuous | WAVS / Env Filter | |
/polysynth/acd/env_filter/release |
83 | 0β127 | continuous | ACD / Env Filter | |
/polysynth/wavs/env_filter/sustain |
82 | 0β127 | continuous | WAVS / Env Filter | |
/polysynth/wavs/env_filter/release |
83 | 0β127 | continuous | WAVS / Env Filter | |
/polysynth/acd/lfo/frequency |
54 | 0β127 | continuous | ACD / LFO | |
/polysynth/wavs/env_aux/attack |
46 | 0β127 | continuous | WAVS / Env Aux | |
/polysynth/wavs/env_aux/decay |
47 | 0β127 | continuous | WAVS / Env Aux | |
/polysynth/acd/mod/pitch_lfo |
27 | 0β127 | continuous | ACD / MOD | |
/polysynth/fat/lfo/frequency |
54 | 0β127 | continuous | FAT / LFO | |
/polysynth/wavs/env_aux/sustain |
48 | 0β127 | continuous | WAVS / Env Aux | |
/polysynth/acd/mod/pw_envelope |
26 | 0β127 | continuous | ACD / MOD | |
/polysynth/wavs/env_aux/release |
49 | 0β127 | continuous | WAVS / Env Aux | |
/polysynth/acd/mod/pw_lfo |
25 | 0β127 | continuous | ACD / MOD | |
/polysynth/fat/mod/fatness_lfo |
24 | 0β127 | continuous | FAT / MOD | |
/polysynth/acd/mod/filter_lfo |
78 | 0β127 | continuous | ACD / MOD | |
/polysynth/fat/mod/filter_lfo |
78 | 0β127 | continuous | FAT / MOD | |
/polysynth/vap/engine_p1/shape_1 |
22 | 0β127 | continuous | VAP / Engine P1 | |
/polysynth/wtfm/engine_p1/ratio_1 |
23 | 0β127 | continuous | WTFM / Engine P1 | |
/polysynth/pmd/exciter/bow_level |
20 | 0β127 | continuous | PMD / Exciter | |
/polysynth/vap/engine_p1/shape_2 |
27 | 0β127 | continuous | VAP / Engine P1 | |
/polysynth/wtfm/engine_p1/ratio_2 |
24 | 0β127 | continuous | WTFM / Engine P1 | |
/polysynth/pmd/exciter/air_level |
22 | 0β127 | continuous | PMD / Exciter | |
/polysynth/vap/engine_p1/mix |
20 | 0β127 | continuous | VAP / Engine P1 | |
/polysynth/wtfm/engine_p1/fm |
20 | 0β127 | continuous | WTFM / Engine P1 | |
/polysynth/pmd/exciter/strike_level |
25 | 0β127 | continuous | PMD / Exciter | |
/polysynth/vap/engine_p1/pw_1 |
21 | 0β127 | continuous | VAP / Engine P1 | |
/polysynth/wtfm/engine_p1/shape_1 |
22 | 0β127 | continuous | WTFM / Engine P1 | |
/polysynth/pmd/exciter/bow_timbre |
21 | 0β127 | continuous | PMD / Exciter | |
/polysynth/vap/engine_p1/pw_2 |
28 | 0β127 | continuous | VAP / Engine P1 | |
/polysynth/wtfm/engine_p1/shape_2 |
27 | 0β127 | continuous | WTFM / Engine P1 | |
/polysynth/pmd/exciter/air_timbre |
24 | 0β127 | continuous | PMD / Exciter | |
/polysynth/vap/engine_p1/tune_1 |
25 | 0β127 | continuous | VAP / Engine P1 | |
/polysynth/wtfm/engine_p1/feedback_1 |
21 | 0β127 | continuous | WTFM / Engine P1 | |
/polysynth/pmd/exciter/strike_timbre |
27 | 0β127 | continuous | PMD / Exciter | |
/polysynth/vap/engine_p1/tune_2 |
30 | 0β127 | continuous | VAP / Engine P1 | |
/polysynth/wtfm/engine_p1/feedback_2 |
28 | 0β127 | continuous | WTFM / Engine P1 | |
/polysynth/pmd/exciter/air_flow |
23 | 0β127 | continuous | PMD / Exciter | |
/polysynth/vap/engine_p1/detune |
26 | 0β127 | continuous | VAP / Engine P1 | |
/polysynth/wtfm/engine_p1/feedback_2_1 |
29 | 0β127 | continuous | WTFM / Engine P1 | |
/polysynth/pmd/exciter/strike_mallet |
26 | 0β127 | continuous | PMD / Exciter | |
/polysynth/vap/engine_p2/noise |
23 | 0β127 | continuous | VAP / Engine P2 | |
/polysynth/wtfm/engine_p2/finetune_1 |
26 | 0β127 | continuous | WTFM / Engine P2 | |
/polysynth/vap/engine_p2/finetune |
31 | 0β127 | continuous | VAP / Engine P2 | |
/polysynth/wtfm/engine_p2/finetune_2 |
25 | 0β127 | continuous | WTFM / Engine P2 | |
/polysynth/pmd/resonator/form |
70 | 0β127 | continuous | PMD / Resonator | |
/polysynth/pmd/resonator/position |
85 | 0β127 | continuous | PMD / Resonator | |
/polysynth/vap/filter/cutoff |
74 | 0β127 | continuous | VAP / Filter | |
/polysynth/wtfm/filter/cutoff |
74 | 0β127 | continuous | WTFM / Filter | |
/polysynth/pmd/resonator/space |
86 | 0β127 | continuous | PMD / Resonator | |
/polysynth/vap/filter/resonance |
71 | 0β127 | continuous | VAP / Filter | |
/polysynth/wtfm/filter/resonance |
71 | 0β127 | continuous | WTFM / Filter | |
/polysynth/pmd/resonator/brightness |
74 | 0β127 | continuous | PMD / Resonator | |
/polysynth/vap/filter/env_amount |
77 | 0β127 | continuous | VAP / Filter | |
/polysynth/wtfm/filter/env_amount |
77 | 0β127 | continuous | WTFM / Filter | |
/polysynth/pmd/resonator/damping |
71 | 0β127 | continuous | PMD / Resonator | |
/polysynth/vap/env_amp/attack |
75 | 0β127 | continuous | VAP / Env Amp | |
/polysynth/wtfm/env_amp/attack |
75 | 0β127 | continuous | WTFM / Env Amp | |
/polysynth/pmd/env_exciter/attack |
75 | 0β127 | continuous | PMD / Env Exciter | |
/polysynth/vap/env_amp/decay |
72 | 0β127 | continuous | VAP / Env Amp | |
/polysynth/wtfm/env_amp/decay |
72 | 0β127 | continuous | WTFM / Env Amp | |
/polysynth/pmd/env_exciter/decay |
72 | 0β127 | continuous | PMD / Env Exciter | |
/polysynth/vap/env_amp/sustain |
76 | 0β127 | continuous | VAP / Env Amp | |
/polysynth/wtfm/env_amp/sustain |
76 | 0β127 | continuous | WTFM / Env Amp | |
/polysynth/pmd/env_exciter/sustain |
76 | 0β127 | continuous | PMD / Env Exciter | |
/polysynth/vap/env_amp/release |
73 | 0β127 | continuous | VAP / Env Amp | |
/polysynth/wtfm/env_amp/release |
73 | 0β127 | continuous | WTFM / Env Amp | |
/polysynth/pmd/env_exciter/release |
73 | 0β127 | continuous | PMD / Env Exciter | |
/polysynth/vap/env_filter/attack |
80 | 0β127 | continuous | VAP / Env Filter | |
/polysynth/wtfm/env_filter/attack |
80 | 0β127 | continuous | WTFM / Env Filter | |
/polysynth/pmd/env_aux/attack |
46 | 0β127 | continuous | PMD / Env Aux | |
/polysynth/vap/env_filter/decay |
81 | 0β127 | continuous | VAP / Env Filter | |
/polysynth/wtfm/env_filter/decay |
81 | 0β127 | continuous | WTFM / Env Filter | |
/polysynth/pmd/env_aux/decay |
47 | 0β127 | continuous | PMD / Env Aux | |
/polysynth/vap/env_filter/sustain |
82 | 0β127 | continuous | VAP / Env Filter | |
/polysynth/wtfm/env_filter/sustain |
82 | 0β127 | continuous | WTFM / Env Filter | |
/polysynth/pmd/env_aux/sustain |
48 | 0β127 | continuous | PMD / Env Aux | |
/polysynth/vap/env_filter/release |
83 | 0β127 | continuous | VAP / Env Filter | |
/polysynth/wtfm/env_filter/release |
83 | 0β127 | continuous | WTFM / Env Filter | |
/polysynth/pmd/env_aux/release |
49 | 0β127 | continuous | PMD / Env Aux | |
/polysynth/vap/env_aux/attack |
46 | 0β127 | continuous | VAP / Env Aux | |
/polysynth/wtfm/env_aux/attack |
46 | 0β127 | continuous | WTFM / Env Aux | |
/polysynth/vap/env_aux/decay |
47 | 0β127 | continuous | VAP / Env Aux | |
/polysynth/wtfm/env_aux/decay |
47 | 0β127 | continuous | WTFM / Env Aux | |
/polysynth/vap/env_aux/sustain |
48 | 0β127 | continuous | VAP / Env Aux | |
/polysynth/wtfm/env_aux/sustain |
48 | 0β127 | continuous | WTFM / Env Aux | |
/polysynth/vap/env_aux/release |
49 | 0β127 | continuous | VAP / Env Aux | |
/polysynth/wtfm/env_aux/release |
49 | 0β127 | continuous | WTFM / Env Aux | |
/polysynth/phz/engine_p1/shape_1 |
22 | 0β127 | continuous | PHZ / Engine P1 | |
/polysynth/grain/engine_p1/position |
20 | 0β127 | continuous | GRAIN / Engine P1 | |
/polysynth/phz/engine_p1/shape_2 |
27 | 0β127 | continuous | PHZ / Engine P1 | |
/polysynth/grain/engine_p1/position_spread |
21 | 0β127 | continuous | GRAIN / Engine P1 | |
/polysynth/phz/engine_p1/mix |
20 | 0β127 | continuous | PHZ / Engine P1 | |
/polysynth/grain/engine_p1/grain_size |
24 | 0β127 | continuous | GRAIN / Engine P1 | |
/polysynth/phz/engine_p1/osc1_xmod |
21 | 0β127 | continuous | PHZ / Engine P1 | |
/polysynth/grain/engine_p1/density |
23 | 0β127 | continuous | GRAIN / Engine P1 | |
/polysynth/phz/engine_p1/osc2_xmod |
28 | 0β127 | continuous | PHZ / Engine P1 | |
/polysynth/grain/engine_p1/time_spread |
22 | 0β127 | continuous | GRAIN / Engine P1 | |
/polysynth/phz/engine_p1/osc1_ymod |
23 | 0β127 | continuous | PHZ / Engine P1 | |
/polysynth/grain/engine_p1/grain_shape |
25 | 0β127 | continuous | GRAIN / Engine P1 | |
/polysynth/phz/engine_p1/osc2_ymod |
29 | 0β127 | continuous | PHZ / Engine P1 | |
/polysynth/grain/engine_p1/pan_spread |
27 | 0β127 | continuous | GRAIN / Engine P1 | |
/polysynth/phz/engine_p2/detune |
24 | 0β127 | continuous | PHZ / Engine P2 | |
/polysynth/grain/engine_p2/tune |
30 | 0β127 | continuous | GRAIN / Engine P2 | |
/polysynth/phz/engine_p2/tune_1 |
25 | 0β127 | continuous | PHZ / Engine P2 | |
/polysynth/grain/engine_p2/detune_spread |
26 | 0β127 | continuous | GRAIN / Engine P2 | |
/polysynth/phz/engine_p2/tune_2 |
30 | 0β127 | continuous | PHZ / Engine P2 | |
/polysynth/grain/engine_p2/finetune |
31 | 0β127 | continuous | GRAIN / Engine P2 | |
/polysynth/phz/engine_p2/finetune |
26 | 0β127 | continuous | PHZ / Engine P2 | |
/polysynth/grain/engine_p2/size_spread |
87 | 0β127 | continuous | GRAIN / Engine P2 | |
/polysynth/grain/engine_p2/direction |
86 | 0β127 | continuous | GRAIN / Engine P2 | |
/polysynth/grain/engine_p2/space |
85 | 0β127 | continuous | GRAIN / Engine P2 | |
/polysynth/phz/filter/cutoff |
74 | 0β127 | continuous | PHZ / Filter | |
/polysynth/phz/filter/resonance |
71 | 0β127 | continuous | PHZ / Filter | |
/polysynth/phz/filter/env_amount |
77 | 0β127 | continuous | PHZ / Filter | |
/polysynth/grain/filter/cutoff |
74 | 0β127 | continuous | GRAIN / Filter | |
/polysynth/grain/filter/resonance |
71 | 0β127 | continuous | GRAIN / Filter | |
/polysynth/grain/filter/env_amount |
77 | 0β127 | continuous | GRAIN / Filter | |
/polysynth/phz/env_amp/attack |
75 | 0β127 | continuous | PHZ / Env Amp | |
/polysynth/phz/env_amp/decay |
72 | 0β127 | continuous | PHZ / Env Amp | |
/polysynth/phz/env_amp/sustain |
76 | 0β127 | continuous | PHZ / Env Amp | |
/polysynth/grain/env_amp/attack |
75 | 0β127 | continuous | GRAIN / Env Amp | |
/polysynth/phz/env_amp/release |
73 | 0β127 | continuous | PHZ / Env Amp | |
/polysynth/grain/env_amp/decay |
72 | 0β127 | continuous | GRAIN / Env Amp | |
/polysynth/grain/env_amp/sustain |
76 | 0β127 | continuous | GRAIN / Env Amp | |
/polysynth/grain/env_amp/release |
73 | 0β127 | continuous | GRAIN / Env Amp | |
/polysynth/phz/env_filter/attack |
80 | 0β127 | continuous | PHZ / Env Filter | |
/polysynth/phz/env_filter/decay |
81 | 0β127 | continuous | PHZ / Env Filter | |
/polysynth/phz/env_filter/sustain |
82 | 0β127 | continuous | PHZ / Env Filter | |
/polysynth/grain/env_filter/attack |
80 | 0β127 | continuous | GRAIN / Env Filter | |
/polysynth/phz/env_filter/release |
83 | 0β127 | continuous | PHZ / Env Filter | |
/polysynth/grain/env_filter/decay |
81 | 0β127 | continuous | GRAIN / Env Filter | |
/polysynth/grain/env_filter/sustain |
82 | 0β127 | continuous | GRAIN / Env Filter | |
/polysynth/grain/env_filter/release |
83 | 0β127 | continuous | GRAIN / Env Filter | |
/polysynth/phz/env_aux/attack |
46 | 0β127 | continuous | PHZ / Env Aux | |
/polysynth/phz/env_aux/decay |
47 | 0β127 | continuous | PHZ / Env Aux | |
/polysynth/phz/env_aux/sustain |
48 | 0β127 | continuous | PHZ / Env Aux | |
/polysynth/grain/env_aux/attack |
46 | 0β127 | continuous | GRAIN / Env Aux | |
/polysynth/phz/env_aux/release |
49 | 0β127 | continuous | PHZ / Env Aux | |
/polysynth/grain/env_aux/decay |
47 | 0β127 | continuous | GRAIN / Env Aux | |
/polysynth/grain/env_aux/sustain |
48 | 0β127 | continuous | GRAIN / Env Aux | |
/polysynth/grain/env_aux/release |
49 | 0β127 | continuous | GRAIN / Env Aux |
SysEx commands (1)¶
| OSC address | Arguments |
|---|---|
/polysynth/program_change |
program: u7 |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /polysynth/note/on <note> <velocity>, /polysynth/cc/<number> <value>, /polysynth/pitchbend <0-16383>, /polysynth/program_change <n>.
Frequently asked questions¶
Which MIDI CC controls the filter cutoff on the Polyend Synth?
CC 23 (0β127), named /polysynth/fat/engine/brightness in SynthHub's map.
How many parameters of the Polyend Synth can be controlled over MIDI?
SynthHub's map of the Polyend Synth lists 195 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 Polyend Synth?
Yes: SynthHub's hosted MCP server knows the Polyend Synth's MIDI map, and its browser relay lets the agent send it parameter changes or load a sound, each sound change confirmed by you.