Skip to content

Lambda Synthetics PolyPulse MIDI CC chart, NRPN and OSC map

The Lambda Synthetics PolyPulse MIDI implementation: 128 CC, each named, for Claude (MCP), SuperCollider or any OSC app.

Device Lambda Synthetics PolyPulse
Vendor Lambda Synthetics
OSC prefix /polypulse
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/lambda-synthetics/polypulse.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/lambda-synthetics/polypulse.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 /polypulse/assignable_parameters_a/assignable_parameter_000 63

From Claude or any MCP client, the osc-bridge mcp server exposes this driver as polypulse: ask β€œwhat can the Lambda Synthetics PolyPulse do?” and it reads this map with list_routes. See the MCP guide.

MIDI CC and NRPN parameters (128)

OSC address CC NRPN (MSB/LSB) Range Nature Section
/polypulse/assignable_parameters_a/assignable_parameter_000 0 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_001 1 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_002 2 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_003 3 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_004 4 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_005 5 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_006 6 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_007 7 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_008 8 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_009 9 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_010 10 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_011 11 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_012 12 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_013 13 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_014 14 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_a/assignable_parameter_015 15 0–127 continuous Assignable parameters A
/polypulse/assignable_parameters_b/assignable_parameter_016 16 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_017 17 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_018 18 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_019 19 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_020 20 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_021 21 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_022 22 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_023 23 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_024 24 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_025 25 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_026 26 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_027 27 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_028 28 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_029 29 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_030 30 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_b/assignable_parameter_031 31 0–127 continuous Assignable parameters B
/polypulse/assignable_parameters_c/assignable_parameter_032 32 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_033 33 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_034 34 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_035 35 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_036 36 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_037 37 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_038 38 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_039 39 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_040 40 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_041 41 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_042 42 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_043 43 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_044 44 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_045 45 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_046 46 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_c/assignable_parameter_047 47 0–127 continuous Assignable parameters C
/polypulse/assignable_parameters_d/assignable_parameter_048 48 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_049 49 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_050 50 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_051 51 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_052 52 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_053 53 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_054 54 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_055 55 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_056 56 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_057 57 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_058 58 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_059 59 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_060 60 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_061 61 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_062 62 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_d/assignable_parameter_063 63 0–127 continuous Assignable parameters D
/polypulse/assignable_parameters_e/assignable_parameter_064 64 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_065 65 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_066 66 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_067 67 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_068 68 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_069 69 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_070 70 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_071 71 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_072 72 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_073 73 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_074 74 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_075 75 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_076 76 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_077 77 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_078 78 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_e/assignable_parameter_079 79 0–127 continuous Assignable parameters E
/polypulse/assignable_parameters_f/assignable_parameter_080 80 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_081 81 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_082 82 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_083 83 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_084 84 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_085 85 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_086 86 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_087 87 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_088 88 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_089 89 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_090 90 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_091 91 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_092 92 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_093 93 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_094 94 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_f/assignable_parameter_095 95 0–127 continuous Assignable parameters F
/polypulse/assignable_parameters_g/assignable_parameter_096 96 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_097 97 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_098 98 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_099 99 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_100 100 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_101 101 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_102 102 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_103 103 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_104 104 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_105 105 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_106 106 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_107 107 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_108 108 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_109 109 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_110 110 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_g/assignable_parameter_111 111 0–127 continuous Assignable parameters G
/polypulse/assignable_parameters_h/assignable_parameter_112 112 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_113 113 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_114 114 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_115 115 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_116 116 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_117 117 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_118 118 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_119 119 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_120 120 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_121 121 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_122 122 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_123 123 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_124 124 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_125 125 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_126 126 0–127 continuous Assignable parameters H
/polypulse/assignable_parameters_h/assignable_parameter_127 127 0–127 continuous Assignable parameters H

Performance MIDI

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

Frequently asked questions

How many parameters of the Lambda Synthetics PolyPulse can be controlled over MIDI?

SynthHub's map of the Lambda Synthetics PolyPulse lists 128 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 Lambda Synthetics PolyPulse?

Yes: SynthHub's hosted MCP server knows the Lambda Synthetics PolyPulse's MIDI map, and its browser relay lets the agent send it parameter changes or load a sound, each sound change confirmed by you.