Skip to content

PWM Mantis MIDI CC chart, NRPN and OSC map

The PWM Mantis MIDI implementation: 30 CC, 61 NRPN, each named, for Claude (MCP), SuperCollider or any OSC app.

Device PWM Mantis
Vendor PWM
OSC prefix /mantis
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/pwm/mantis.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/pwm/mantis.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 /mantis/standard_controls/bank_select 63

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

MIDI CC and NRPN parameters (91)

OSC address CC NRPN (MSB/LSB) Range Nature Section
/mantis/standard_controls/bank_select 0 0–127 continuous Standard controls
/mantis/standard_controls/modulation_wheel 1 0–127 continuous Standard controls
/mantis/standard_controls/expression 11 0–127 continuous Standard controls
/mantis/standard_controls/sustain_pedal 64 0–127 continuous Standard controls
/mantis/standard_controls/all_sound_off 120 0–127 continuous Standard controls
/mantis/standard_controls/local_control 122 0–127 continuous Standard controls
/mantis/standard_controls/all_notes_off 123 0–127 continuous Standard controls
/mantis/voicing/mode 0 / 66 0–2 discrete Voicing
/mantis/voicing/voice_spread 0 / 51 0–127 continuous Voicing
/mantis/keyboard/octave 0 / 5 60–67 discrete Keyboard
/mantis/glide/time 5 0–127 continuous Glide
/mantis/glide/auto 35 0–1 switch Glide
/mantis/oscillator_1/wave 0 / 14 0–5 discrete Oscillator 1
/mantis/oscillator_1/shape 12 / 44 0–16383 continuous Oscillator 1
/mantis/oscillator_1/shape_modulation_amount 0 / 21 0–127 continuous Oscillator 1
/mantis/oscillator_1/pitch_modulation_amount 0 / 22 0–127 continuous Oscillator 1
/mantis/oscillator_1/octave 0 / 24 0–5 discrete Oscillator 1
/mantis/oscillator_2/wave 0 / 23 0–5 discrete Oscillator 2
/mantis/oscillator_2/shape 19 / 51 0–16383 continuous Oscillator 2
/mantis/oscillator_2/shape_modulation_amount 0 / 30 0–127 continuous Oscillator 2
/mantis/oscillator_2/pitch_modulation_amount 0 / 31 0–127 continuous Oscillator 2
/mantis/oscillator_2/octave 0 / 32 0–5 discrete Oscillator 2
/mantis/oscillator_2/semitone 0 / 28 52–76 discrete Oscillator 2
/mantis/oscillator_2/cents 0 / 29 0–127 continuous Oscillator 2
/mantis/oscillator_2/density 0 / 26 0–127 continuous Oscillator 2
/mantis/oscillator_2/density_rate 0 / 27 0–127 continuous Oscillator 2
/mantis/oscillators/sub_oscillator 24 0–127 continuous Oscillators
/mantis/oscillators/oscillator_drift 0 / 10 0–127 continuous Oscillators
/mantis/mix/oscillator_balance 23 0–127 continuous Mix
/mantis/mix/noise_balance 27 0–127 continuous Mix
/mantis/mix/ring_modulation_balance 26 0–127 continuous Mix
/mantis/mix/oscillator_level_trim 7 0–127 continuous Mix
/mantis/mix/noise_density 0 / 123 0–127 continuous Mix
/mantis/filter/cutoff 74 / 61 0–16383 continuous Filter
/mantis/filter/resonance 71 0–127 continuous Filter
/mantis/filter/width 75 0–127 continuous Filter
/mantis/filter/drive 80 0–127 continuous Filter
/mantis/filter/type 0 / 46 0–7 discrete Filter
/mantis/filter/keytrack 0 / 48 0–127 continuous Filter
/mantis/filter/cutoff_modulation_amount 0 / 49 0–127 continuous Filter
/mantis/filter/width_modulation_amount 0 / 50 0–127 continuous Filter
/mantis/envelope_1/attack 82 0–127 continuous Envelope 1
/mantis/envelope_1/decay 83 0–127 continuous Envelope 1
/mantis/envelope_1/sustain 84 0–127 continuous Envelope 1
/mantis/envelope_1/release 85 0–127 continuous Envelope 1
/mantis/envelope_1/sustain_fall 0 / 57 0–127 continuous Envelope 1
/mantis/envelope_1/velocity 0 / 55 0–127 continuous Envelope 1
/mantis/envelope_1/repeat 0 / 25 0–1 switch Envelope 1
/mantis/envelope_1/legato 0 / 56 0–1 switch Envelope 1
/mantis/envelope_2/attack 86 0–127 continuous Envelope 2
/mantis/envelope_2/decay 87 0–127 continuous Envelope 2
/mantis/envelope_2/sustain 88 0–127 continuous Envelope 2
/mantis/envelope_2/release 89 0–127 continuous Envelope 2
/mantis/envelope_2/sustain_fall 0 / 62 0–127 continuous Envelope 2
/mantis/envelope_2/velocity 0 / 60 0–127 continuous Envelope 2
/mantis/envelope_2/repeat 0 / 33 0–1 switch Envelope 2
/mantis/envelope_2/legato 0 / 61 0–1 switch Envelope 2
/mantis/lfo_1/wave 0 / 69 0–5 discrete LFO 1
/mantis/lfo_1/sync_mode 0 / 68 0–2 discrete LFO 1
/mantis/lfo_1/rate_sync_off 0 / 70 0–127 continuous LFO 1
/mantis/lfo_1/rate_sync_on 0 / 71 0–127 continuous LFO 1
/mantis/lfo_1/fade 0 / 67 0–127 continuous LFO 1
/mantis/lfo_1/retrigger 0 / 74 0–1 switch LFO 1
/mantis/lfo_2/wave 0 / 78 0–5 discrete LFO 2
/mantis/lfo_2/sync_mode 0 / 77 0–2 discrete LFO 2
/mantis/lfo_2/rate_sync_off 0 / 79 0–127 continuous LFO 2
/mantis/lfo_2/rate_sync_on 0 / 80 0–127 continuous LFO 2
/mantis/lfo_2/fade 0 / 76 0–127 continuous LFO 2
/mantis/lfo_2/retrigger 0 / 83 0–1 switch LFO 2
/mantis/modulation_routing/oscillator_1_shape_modulation_source 1 / 0 0–5 discrete Modulation routing
/mantis/modulation_routing/oscillator_1_shape_modulation_scale 1 / 1 0–5 discrete Modulation routing
/mantis/modulation_routing/oscillator_2_shape_modulation_source 2 / 0 0–5 discrete Modulation routing
/mantis/modulation_routing/oscillator_2_shape_modulation_scale 2 / 1 0–5 discrete Modulation routing
/mantis/modulation_routing/oscillator_1_pitch_modulation_source 3 / 0 0–5 discrete Modulation routing
/mantis/modulation_routing/oscillator_1_pitch_modulation_scale 3 / 1 0–5 discrete Modulation routing
/mantis/modulation_routing/oscillator_2_pitch_modulation_source 4 / 0 0–5 discrete Modulation routing
/mantis/modulation_routing/oscillator_2_pitch_modulation_scale 4 / 1 0–5 discrete Modulation routing
/mantis/modulation_routing/filter_cutoff_modulation_source 5 / 0 0–5 discrete Modulation routing
/mantis/modulation_routing/filter_cutoff_modulation_scale 5 / 1 0–5 discrete Modulation routing
/mantis/modulation_routing/filter_width_modulation_source 6 / 0 0–5 discrete Modulation routing
/mantis/modulation_routing/filter_width_modulation_scale 6 / 1 0–5 discrete Modulation routing
/mantis/arpeggiator/enable 0 / 121 0–1 switch Arpeggiator
/mantis/arpeggiator/mode 0 / 117 0–5 discrete Arpeggiator
/mantis/arpeggiator/octave 0 / 119 0–5 discrete Arpeggiator
/mantis/arpeggiator/swing 0 / 120 0–127 continuous Arpeggiator
/mantis/arpeggiator/sync 0 / 116 3–15 discrete Arpeggiator
/mantis/effects/reverb_level 91 0–127 continuous Effects
/mantis/effects/reverb_type 0 / 102 0–7 discrete Effects
/mantis/effects/reverb_time 0 / 103 0–127 continuous Effects
/mantis/effects/chorus_level 93 0–127 continuous Effects
/mantis/effects/chorus_type 0 / 111 0–3 discrete Effects

Performance MIDI

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

Which MIDI CC controls the filter cutoff on the PWM Mantis?

CC 74 (0–16383), named /mantis/filter/cutoff in SynthHub's map.

How many parameters of the PWM Mantis can be controlled over MIDI?

SynthHub's map of the PWM Mantis lists 30 MIDI CC and 61 NRPN 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 PWM Mantis?

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