Skip to content

Polyend Synth: MIDI CC, NRPN and OSC map

The Polyend Synth as named OSC addresses — 101 CC — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.

Device Polyend Synth
Vendor Polyend
OSC prefix /synth
Source 📦 Derived from MIDI Guide (community CC/NRPN data)
Firmware unknown
Revision per pencilresearch canonical CSV
Upstream pencilresearch
Data licence CC-BY-SA-4.0 — MIDI Guide (https://midi.guide) by Pencil Research and contributors
Driver file devices/polyend/synth.pencilresearch.fw-unknown.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.pencilresearch.fw-unknown.json --out-port <N> --in-port <M>

Then send OSC to 127.0.0.1:7777, for example:

osc-bridge osc-send /synth/acd_engine/saw_mix 63

From Claude or any MCP client, the osc-bridge mcp server exposes this driver as synth: ask “what can the Polyend Synth do?” and it reads this map with list_routes. See the MCP guide.

MIDI CC and NRPN parameters (101)

OSC address CC NRPN (MSB/LSB) Range Nature Section
/synth/acd_engine/saw_mix 20 0–127 continuous ACD engine
/synth/acd_engine/square_mix 21 0–127 continuous ACD engine
/synth/acd_engine/sub_mix 22 0–127 continuous ACD engine
/synth/acd_engine/noise 23 0–127 continuous ACD engine
/synth/acd_engine/pulse_width 24 0–127 continuous ACD engine
/synth/acd_engine/pulse_width_lfo 25 0–127 continuous ACD engine
/synth/acd_engine/pulse_width_envelope 26 0–127 continuous ACD engine
/synth/acd_engine/pitch_lfo 27 0–127 continuous ACD engine
/synth/fat_engine/timbre 20 0–127 continuous FAT engine
/synth/fat_engine/noise 21 0–127 continuous FAT engine
/synth/fat_engine/brightness 23 0–127 continuous FAT engine
/synth/fat_engine/fatness 27 0–127 continuous FAT engine
/synth/fat_engine/fatness_lfo 24 0–127 continuous FAT engine
/synth/wavs_engine_p1/position_1 22 0–127 continuous WAVS engine P1
/synth/wavs_engine_p1/position_2 27 0–127 continuous WAVS engine P1
/synth/wavs_engine_p1/mix 20 0–127 continuous WAVS engine P1
/synth/wavs_engine_p1/warp_1 21 0–127 continuous WAVS engine P1
/synth/wavs_engine_p1/warp_2 28 0–127 continuous WAVS engine P1
/synth/wavs_engine_p1/noise 29 0–127 continuous WAVS engine P1
/synth/wavs_engine_p2/tune_1 25 0–127 continuous WAVS engine P2
/synth/wavs_engine_p2/tune_2 30 0–127 continuous WAVS engine P2
/synth/wavs_engine_p2/detune 31 0–127 continuous WAVS engine P2
/synth/wavs_engine_p3/finetune 26 0–127 continuous WAVS engine P3
/synth/vap_engine_p1/shape_1 22 0–127 continuous VAP engine P1
/synth/vap_engine_p1/shape_2 27 0–127 continuous VAP engine P1
/synth/vap_engine_p1/mix 20 0–127 continuous VAP engine P1
/synth/vap_engine_p1/pulse_width_1 21 0–127 continuous VAP engine P1
/synth/vap_engine_p1/pulse_width_2 28 0–127 continuous VAP engine P1
/synth/vap_engine_p1/tune_1 25 0–127 continuous VAP engine P1
/synth/vap_engine_p1/tune_2 30 0–127 continuous VAP engine P1
/synth/vap_engine_p1/detune 26 0–127 continuous VAP engine P1
/synth/vap_engine_p2/noise 23 0–127 continuous VAP engine P2
/synth/vap_engine_p2/finetune 31 0–127 continuous VAP engine P2
/synth/wtfm_engine_p1/ratio_1 23 0–127 continuous WTFM engine P1
/synth/wtfm_engine_p1/ratio_2 24 0–127 continuous WTFM engine P1
/synth/wtfm_engine_p1/frequency_modulation 20 0–127 continuous WTFM engine P1
/synth/wtfm_engine_p1/shape_1 22 0–127 continuous WTFM engine P1
/synth/wtfm_engine_p1/shape_2 27 0–127 continuous WTFM engine P1
/synth/wtfm_engine_p1/feedback_1 21 0–127 continuous WTFM engine P1
/synth/wtfm_engine_p1/feedback_2 28 0–127 continuous WTFM engine P1
/synth/wtfm_engine_p1/feedback_2_to_1 29 0–127 continuous WTFM engine P1
/synth/wtfm_engine_p2/finetune_1 26 0–127 continuous WTFM engine P2
/synth/wtfm_engine_p2/finetune_2 25 0–127 continuous WTFM engine P2
/synth/pmd_exciter/bow_level 20 0–127 continuous PMD exciter
/synth/pmd_exciter/bow_timbre 21 0–127 continuous PMD exciter
/synth/pmd_exciter/air_level 22 0–127 continuous PMD exciter
/synth/pmd_exciter/air_flow 23 0–127 continuous PMD exciter
/synth/pmd_exciter/air_timbre 24 0–127 continuous PMD exciter
/synth/pmd_exciter/strike_level 25 0–127 continuous PMD exciter
/synth/pmd_exciter/strike_mallet 26 0–127 continuous PMD exciter
/synth/pmd_exciter/strike_timbre 27 0–127 continuous PMD exciter
/synth/pmd_exciter_envelope/attack 75 0–127 continuous PMD exciter envelope
/synth/pmd_exciter_envelope/decay 72 0–127 continuous PMD exciter envelope
/synth/pmd_exciter_envelope/sustain 76 0–127 continuous PMD exciter envelope
/synth/pmd_exciter_envelope/release 73 0–127 continuous PMD exciter envelope
/synth/pmd_resonator/form 70 0–127 continuous PMD resonator
/synth/pmd_resonator/damping 71 0–127 continuous PMD resonator
/synth/pmd_resonator/brightness 74 0–127 continuous PMD resonator
/synth/pmd_resonator/position 85 0–127 continuous PMD resonator
/synth/pmd_resonator/space 86 0–127 continuous PMD resonator
/synth/phz_engine_p1/shape_1 22 0–127 continuous PHZ engine P1
/synth/phz_engine_p1/shape_2 27 0–127 continuous PHZ engine P1
/synth/phz_engine_p1/mix 20 0–127 continuous PHZ engine P1
/synth/phz_engine_p1/oscillator_1_x_modulation 21 0–127 continuous PHZ engine P1
/synth/phz_engine_p1/oscillator_2_x_modulation 28 0–127 continuous PHZ engine P1
/synth/phz_engine_p1/oscillator_1_y_modulation 23 0–127 continuous PHZ engine P1
/synth/phz_engine_p1/oscillator_2_y_modulation 29 0–127 continuous PHZ engine P1
/synth/phz_engine_p2/detune 24 0–127 continuous PHZ engine P2
/synth/phz_engine_p2/tune_1 25 0–127 continuous PHZ engine P2
/synth/phz_engine_p2/tune_2 30 0–127 continuous PHZ engine P2
/synth/phz_engine_p2/finetune 26 0–127 continuous PHZ engine P2
/synth/grain_engine_p1/position 20 0–127 continuous GRAIN engine P1
/synth/grain_engine_p1/position_spread 21 0–127 continuous GRAIN engine P1
/synth/grain_engine_p1/grain_size 24 0–127 continuous GRAIN engine P1
/synth/grain_engine_p1/density 23 0–127 continuous GRAIN engine P1
/synth/grain_engine_p1/time_spread 22 0–127 continuous GRAIN engine P1
/synth/grain_engine_p1/grain_shape 25 0–127 continuous GRAIN engine P1
/synth/grain_engine_p1/pan_spread 27 0–127 continuous GRAIN engine P1
/synth/grain_engine_p2/tune 30 0–127 continuous GRAIN engine P2
/synth/grain_engine_p2/detune_spread 26 0–127 continuous GRAIN engine P2
/synth/grain_engine_p2/finetune 31 0–127 continuous GRAIN engine P2
/synth/grain_engine_p2/size_spread 87 0–127 continuous GRAIN engine P2
/synth/grain_engine_p2/direction 86 0–127 continuous GRAIN engine P2
/synth/grain_engine_p2/space 85 0–127 continuous GRAIN engine P2
/synth/filter/cutoff 74 0–127 continuous Filter
/synth/filter/resonance 71 0–127 continuous Filter
/synth/filter/envelope_amount 77 0–127 continuous Filter
/synth/filter/lfo 78 0–127 continuous Filter
/synth/lfo/frequency 54 0–127 continuous LFO
/synth/amplifier_envelope/attack 75 0–127 continuous Amplifier envelope
/synth/amplifier_envelope/decay 72 0–127 continuous Amplifier envelope
/synth/amplifier_envelope/sustain 76 0–127 continuous Amplifier envelope
/synth/amplifier_envelope/release 73 0–127 continuous Amplifier envelope
/synth/filter_envelope/attack 80 0–127 continuous Filter envelope
/synth/filter_envelope/decay 81 0–127 continuous Filter envelope
/synth/filter_envelope/sustain 82 0–127 continuous Filter envelope
/synth/filter_envelope/release 83 0–127 continuous Filter envelope
/synth/auxiliary_envelope/attack 46 0–127 continuous Auxiliary envelope
/synth/auxiliary_envelope/decay 47 0–127 continuous Auxiliary envelope
/synth/auxiliary_envelope/sustain 48 0–127 continuous Auxiliary envelope
/synth/auxiliary_envelope/release 49 0–127 continuous Auxiliary envelope

Performance MIDI

Notes, pitch bend and any CC are also available: /synth/note/on <note> <velocity>, /synth/cc/<number> <value>, /synth/pitchbend <0-16383>, /synth/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.