Novation Ultranova: MIDI CC, NRPN and OSC map¶
The Novation Ultranova as named OSC addresses — 78 CC, 20 NRPN — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | Novation Ultranova |
|---|---|
| Vendor | Novation |
| OSC prefix | /ultranova |
| Source | 🎛️ Derived from an Electra One community preset |
| Revision | per Electra preset |
| Upstream | electra-preset |
| Driver file | devices/novation/ultranova.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/ultranova.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 ultranova: ask “what can the Novation Ultranova do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (98)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/ultranova/poly_mode |
3 | 0–127 | continuous | ||
/ultranova/unison_voices |
14 | 0–127 | continuous | ||
/ultranova/detune_amount |
15 | 0–127 | continuous | ||
/ultranova/pre_glide |
9 | 0–127 | continuous | ||
/ultranova/glide_rate |
5 | 0–127 | continuous | ||
/ultranova/glide_type |
12 | 0–127 | continuous | ||
/ultranova/osc_free_phase |
17 | 0–127 | continuous | ||
/ultranova/osc_drift |
16 | 0–127 | continuous | ||
/ultranova/ez_vibratorate |
76 | 0–127 | continuous | ||
/ultranova/ez_vibrtodepth |
77 | 0–127 | continuous | ||
/ultranova/pan_position |
10 | -64–63 | continuous | ||
/ultranova/osc_1_level |
51 | 0–127 | continuous | ||
/ultranova/osc_2_level |
52 | 0–127 | continuous | ||
/ultranova/osc_3_level |
53 | 0–127 | continuous | ||
/ultranova/noise_level |
56 | 0–127 | continuous | ||
/ultranova/osc_1_3_rngmod |
54 | 0–127 | continuous | ||
/ultranova/osc_2_3_rngmod |
55 | 0–127 | continuous | ||
/ultranova/arp_on_off |
0 / 122 | 0–127 | continuous | ||
/ultranova/fx_slot_1 |
91 | 0–127 | continuous | ||
/ultranova/fx_slot_1 |
92 | 0–127 | continuous | ||
/ultranova/fx_slot_3 |
93 | 0–127 | continuous | ||
/ultranova/fx_slot_4 |
94 | 0–127 | continuous | ||
/ultranova/fx_slot_5 |
95 | 0–127 | continuous | ||
/ultranova/fx_config |
0 / 97 | 0–127 | continuous | ||
/ultranova/pre_fx |
57 | 0–97 | continuous | ||
/ultranova/post_fx |
59 | 0–76 | continuous | ||
/ultranova/fx_dry_wet |
8 | 0–127 | continuous | ||
/ultranova/fx_feedback |
0 / 98 | 0–127 | continuous | ||
/ultranova/volume_main |
7 | 0–127 | continuous | ||
/ultranova/amp_attack |
73 | 0–127 | continuous | ||
/ultranova/amp_attack |
75 | 0–127 | continuous | ||
/ultranova/amp_attack |
70 | 0–127 | continuous | ||
/ultranova/amp_attack |
72 | 0–127 | continuous | ||
/ultranova/attack_slope |
115 | 0–127 | continuous | ||
/ultranova/attack_velocit |
108 | 0–127 | continuous | ||
/ultranova/filt_attack |
0 / 1 | 0–127 | continuous | ||
/ultranova/filt_attack |
0 / 2 | 0–127 | continuous | ||
/ultranova/filt_attack |
0 / 3 | 0–127 | continuous | ||
/ultranova/filt_attack |
0 / 4 | 0–127 | continuous | ||
/ultranova/f_attack_slope |
0 / 11 | 0–127 | continuous | ||
/ultranova/f_attack_velo |
0 / 0 | 0–127 | continuous | ||
/ultranova/env_3_attack |
0 / 15 | 0–127 | continuous | ||
/ultranova/env_3_attack |
0 / 16 | 0–127 | continuous | ||
/ultranova/env_3_attack |
0 / 17 | 0–127 | continuous | ||
/ultranova/env_3_attack |
0 / 18 | 0–127 | continuous | ||
/ultranova/env_3_delay |
0 / 14 | 0–127 | continuous | ||
/ultranova/nrpn |
0 / 116 | 0–511 | continuous | ||
/ultranova/nrpn |
0 / 117 | 0–511 | continuous | ||
/ultranova/nrpn |
0 / 118 | 0–511 | continuous | ||
/ultranova/nrpn |
0 / 119 | 0–511 | continuous | ||
/ultranova/osc_1_wave |
19 | 0–127 | continuous | ||
/ultranova/wt_interpolate |
20 | 0–127 | continuous | ||
/ultranova/pw_wt_index |
21 | 0–127 | continuous | ||
/ultranova/sync_depth |
22 | 0–127 | continuous | ||
/ultranova/hardness |
23 | 0–127 | continuous | ||
/ultranova/density |
24 | 0–127 | continuous | ||
/ultranova/semitn_offset |
26 | -64–63 | continuous | ||
/ultranova/cents_offset |
27 | -50–50 | continuous | ||
/ultranova/density_detune |
25 | 0–127 | continuous | ||
/ultranova/osc_2_wave |
29 | 0–127 | continuous | ||
/ultranova/wt_interpolate |
30 | 0–127 | continuous | ||
/ultranova/pw_wt_index |
31 | 0–127 | continuous | ||
/ultranova/sync_depth |
33 | 0–127 | continuous | ||
/ultranova/hardness |
34 | 0–127 | continuous | ||
/ultranova/density |
35 | 0–127 | continuous | ||
/ultranova/semitn_offset |
37 | -64–63 | continuous | ||
/ultranova/cents_offset |
39 | -50–50 | continuous | ||
/ultranova/density_detune |
36 | 0–127 | continuous | ||
/ultranova/osc_2_wave |
41 | 0–127 | continuous | ||
/ultranova/wt_interpolate |
42 | 0–127 | continuous | ||
/ultranova/pw_wt_index |
43 | 0–127 | continuous | ||
/ultranova/sync_depth |
44 | 0–127 | continuous | ||
/ultranova/hardness |
45 | 0–127 | continuous | ||
/ultranova/density |
46 | 0–127 | continuous | ||
/ultranova/semitn_offset |
48 | -64–63 | continuous | ||
/ultranova/cents_offset |
49 | -50–50 | continuous | ||
/ultranova/density_detune |
47 | 0–127 | continuous | ||
/ultranova/filter_config |
60 | 0–127 | continuous | ||
/ultranova/resonance_link |
62 | 0–127 | continuous | ||
/ultranova/filter_balance |
61 | -64–63 | continuous | ||
/ultranova/decay_slope |
0 / 12 | 0–127 | continuous | ||
/ultranova/a_d_repeats |
0 / 7 | 0–127 | continuous | ||
/ultranova/filter_1_type |
68 | 0–127 | continuous | ||
/ultranova/filter1_freq |
74 | 0–127 | continuous | ||
/ultranova/filter1_res |
71 | 0–127 | continuous | ||
/ultranova/f1_q_normalise |
78 | 0–127 | continuous | ||
/ultranova/f1_keytrack |
69 | 0–127 | continuous | ||
/ultranova/f1_env_amt |
79 | 0–127 | continuous | ||
/ultranova/f1_drive_type |
65 | 0–127 | continuous | ||
/ultranova/filter1_drive |
63 | 0–127 | continuous | ||
/ultranova/filter_2_type |
82 | 0–127 | continuous | ||
/ultranova/filter2_freq |
83 | 0–127 | continuous | ||
/ultranova/filter2_res |
85 | 0–127 | continuous | ||
/ultranova/f2_q_normalise |
86 | 0–127 | continuous | ||
/ultranova/f2_keytrack |
84 | 0–127 | continuous | ||
/ultranova/f2_env_amt |
87 | 0–127 | continuous | ||
/ultranova/f2_drive_type |
81 | 0–127 | continuous | ||
/ultranova/filter2_drive |
80 | 0–127 | continuous |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /ultranova/note/on <note> <velocity>, /ultranova/cc/<number> <value>, /ultranova/pitchbend <0-16383>, /ultranova/program_change <n>.
Limitations¶
Imported from an Electra One community preset. The mapping reflects the preset author's editorial choices: parameter naming, ranges, and which params are exposed. Untested on hardware in this repo.