Novation Circuit Rhythm: MIDI CC, NRPN and OSC map¶
The Novation Circuit Rhythm as named OSC addresses — 58 CC — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | Novation Circuit Rhythm |
|---|---|
| Vendor | Novation |
| OSC prefix | /circuit_rhythm |
| 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/novation/circuit_rhythm.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/novation/circuit_rhythm.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 circuit_rhythm: ask “what can the Novation Circuit Rhythm do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (58)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/circuit_rhythm/macro_knobs/1_tune |
21 | 0–127 | continuous | Macro knobs | |
/circuit_rhythm/macro_knobs/2_start |
22 | 0–127 | continuous | Macro knobs | |
/circuit_rhythm/macro_knobs/3_length |
23 | 0–127 | continuous | Macro knobs | |
/circuit_rhythm/macro_knobs/4_slope |
24 | 0–127 | continuous | Macro knobs | |
/circuit_rhythm/macro_knobs/5_distortion |
25 | 0–127 | continuous | Macro knobs | |
/circuit_rhythm/macro_knobs/6_hp_filter |
26 | 0–127 | continuous | Macro knobs | |
/circuit_rhythm/macro_knobs/7_lp_filter |
27 | 0–127 | continuous | Macro knobs | |
/circuit_rhythm/macro_knobs/8_resonance |
28 | 0–127 | continuous | Macro knobs | |
/circuit_rhythm/voice/sample_choice |
8 | 0–127 | continuous | Voice | |
/circuit_rhythm/voice/playback_mode |
12 | 0–2 | continuous | Voice | |
/circuit_rhythm/voice/reverse |
14 | 0–1 | switch | Voice | |
/circuit_rhythm/voice/choke |
15 | 0–1 | switch | Voice | |
/circuit_rhythm/voice/slice |
16 | 0–1 | switch | Voice | |
/circuit_rhythm/voice/number_of_slices |
17 | 1–16 | continuous | Voice | |
/circuit_rhythm/sampler/pitch |
21 | 4–124 | continuous | Sampler | |
/circuit_rhythm/sampler/start_coarse |
22 | 0–127 | continuous | Sampler | |
/circuit_rhythm/sampler/length_coarse |
23 | 0–127 | continuous | Sampler | |
/circuit_rhythm/sampler/slope |
24 | 0–127 | continuous | Sampler | |
/circuit_rhythm/sampler/distortion |
25 | 0–127 | continuous | Sampler | |
/circuit_rhythm/sampler/hpf |
26 | 0–127 | continuous | Sampler | |
/circuit_rhythm/sampler/lpf |
27 | 0–127 | continuous | Sampler | |
/circuit_rhythm/sampler/resonance |
28 | 0–127 | continuous | Sampler | |
/circuit_rhythm/sampler/start_fine |
86 | 0–127 | continuous | Sampler | |
/circuit_rhythm/sampler/length_fine |
87 | 0–127 | continuous | Sampler | |
/circuit_rhythm/mixer/level |
29 | 0–127 | continuous | Mixer | |
/circuit_rhythm/mixer/pan |
30 | 0–127 | continuous | Mixer | |
/circuit_rhythm/mixer/reverb_send |
31 | 0–127 | continuous | Mixer | |
/circuit_rhythm/mixer/delay_send |
32 | 0–127 | continuous | Mixer | |
/circuit_rhythm/beat_repeat/on_off |
39 | 0–1 | switch | Beat repeat | |
/circuit_rhythm/beat_repeat/rate |
40 | 0–10 | continuous | Beat repeat | |
/circuit_rhythm/beat_repeat/dry_wet |
41 | 0–127 | continuous | Beat repeat | |
/circuit_rhythm/reverser/reverse_on_off |
42 | 0–1 | switch | Reverser | |
/circuit_rhythm/reverser/rate |
43 | 0–3 | continuous | Reverser | |
/circuit_rhythm/gator/on_off |
44 | 0–1 | switch | Gator | |
/circuit_rhythm/gator/rate |
45 | 0–11 | continuous | Gator | |
/circuit_rhythm/autofilter/on_off |
46 | 0–1 | switch | Autofilter | |
/circuit_rhythm/autofilter/filter_type |
47 | 0–3 | continuous | Autofilter | |
/circuit_rhythm/autofilter/frequency |
48 | 0–127 | continuous | Autofilter | |
/circuit_rhythm/autofilter/lfo_amount |
49 | 0–127 | continuous | Autofilter | |
/circuit_rhythm/autofilter/lfo_shape |
50 | 0–2 | continuous | Autofilter | |
/circuit_rhythm/autofilter/lfo_rate |
51 | 0–13 | continuous | Autofilter | |
/circuit_rhythm/autofilter/resonance |
52 | 0–127 | continuous | Autofilter | |
/circuit_rhythm/digital_lofi/on_off |
53 | 0–1 | switch | Digital lofi | |
/circuit_rhythm/digital_lofi/bits |
54 | 0–127 | continuous | Digital lofi | |
/circuit_rhythm/digital_lofi/sample_rate |
55 | 0–127 | continuous | Digital lofi | |
/circuit_rhythm/phaser/on_off |
56 | 0–1 | switch | Phaser | |
/circuit_rhythm/phaser/rate |
57 | 0–13 | continuous | Phaser | |
/circuit_rhythm/phaser/depth |
58 | 0–127 | continuous | Phaser | |
/circuit_rhythm/phaser/feedback |
59 | 0–127 | continuous | Phaser | |
/circuit_rhythm/phaser/centre |
64 | 0–127 | continuous | Phaser | |
/circuit_rhythm/vinyl/on_off |
60 | 0–1 | switch | Vinyl | |
/circuit_rhythm/vinyl/filter |
61 | 0–127 | continuous | Vinyl | |
/circuit_rhythm/vinyl/wobble |
62 | 0–127 | continuous | Vinyl | |
/circuit_rhythm/vinyl/crackle |
63 | 0–127 | continuous | Vinyl | |
/circuit_rhythm/vinyl/hiss |
65 | 0–127 | continuous | Vinyl | |
/circuit_rhythm/lp_hp_filter/frequency |
79 | 0–127 | continuous | LP HP filter | |
/circuit_rhythm/lp_hp_filter/resonance |
71 | 0–127 | continuous | LP HP filter | |
/circuit_rhythm/audio_input/level |
90 | 0–127 | continuous | Audio input |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /circuit_rhythm/note/on <note> <velocity>, /circuit_rhythm/cc/<number> <value>, /circuit_rhythm/pitchbend <0-16383>, /circuit_rhythm/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.