Access Virus C: MIDI CC, NRPN and OSC map¶
The Access Virus C as named OSC addresses — 91 CC, 1 NRPN, 117 SysEx commands — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | Access Virus C |
|---|---|
| Vendor | Access |
| OSC prefix | /virus_c |
| Source | 🎛️ Derived from an Electra One community preset |
| Revision | per Electra preset |
| Upstream | electra-preset |
| Driver file | devices/access/virus_c.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/access/virus_c.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 virus_c: ask “what can the Access Virus C do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (92)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/virus_c/shape |
17 | 0–127 | continuous | ||
/virus_c/pulse_width |
18 | 0–127 | continuous | ||
/virus_c/wavetable |
19 | 0–99 | continuous | ||
/virus_c/semitone |
20 | -48–48 | continuous | ||
/virus_c/key_follow |
21 | -64–63 | continuous | ||
/virus_c/sync |
28 | 0–1 | switch | ||
/virus_c/shape |
22 | 0–127 | continuous | ||
/virus_c/pulse_width |
23 | 50–100 | continuous | ||
/virus_c/wavetable |
24 | 0–99 | continuous | ||
/virus_c/detune |
26 | 0–127 | continuous | ||
/virus_c/semitone |
25 | -48–48 | continuous | ||
/virus_c/key_follow |
31 | -64–63 | continuous | ||
/virus_c/fm_amount |
27 | 0–127 | continuous | ||
/virus_c/filt_env_pitch |
29 | -100–100 | continuous | ||
/virus_c/filt_env_fm |
30 | -100–100 | continuous | ||
/virus_c/osc_balance |
33 | -100–100 | continuous | ||
/virus_c/osc_volume |
36 | 0–127 | continuous | ||
/virus_c/sub_osc_volume |
34 | 0–127 | continuous | ||
/virus_c/sub_osc_wave |
35 | 0–1 | switch | ||
/virus_c/noise_color |
39 | 0–127 | continuous | ||
/virus_c/noise_level |
37 | 0–127 | continuous | ||
/virus_c/ring_mod_level |
38 | 0–127 | continuous | ||
/virus_c/mode |
51 | 0–7 | continuous | ||
/virus_c/cutoff |
40 | 0–127 | continuous | ||
/virus_c/resonance |
42 | 0–127 | continuous | ||
/virus_c/env_amount |
44 | 0–127 | continuous | ||
/virus_c/routing |
53 | 0–3 | continuous | ||
/virus_c/key_follow |
46 | -64–63 | continuous | ||
/virus_c/balance |
48 | -64–63 | continuous | ||
/virus_c/saturation |
49 | -64–63 | continuous | ||
/virus_c/mode |
52 | 0–3 | continuous | ||
/virus_c/cutoff |
41 | 0–127 | continuous | ||
/virus_c/resonance |
43 | 0–127 | continuous | ||
/virus_c/env_amount |
45 | 0–127 | continuous | ||
/virus_c/key_follow |
47 | -64–63 | continuous | ||
/virus_c/filter_attack |
54 | 0–127 | continuous | ||
/virus_c/filter_attack |
55 | 0–127 | continuous | ||
/virus_c/filter_attack |
56 | 0–127 | continuous | ||
/virus_c/filter_attack |
58 | 0–127 | continuous | ||
/virus_c/filt_sus_time |
57 | 0–127 | continuous | ||
/virus_c/bank |
0 | 0–29 | continuous | ||
/virus_c/amp_attack |
59 | 0–127 | continuous | ||
/virus_c/amp_attack |
60 | 0–127 | continuous | ||
/virus_c/amp_attack |
61 | 0–127 | continuous | ||
/virus_c/amp_attack |
63 | 0–127 | continuous | ||
/virus_c/amp_env_time |
62 | 0–127 | continuous | ||
/virus_c/rate |
67 | 0–127 | continuous | ||
/virus_c/shape |
68 | 0–67 | continuous | ||
/virus_c/contour |
71 | -64–63 | continuous | ||
/virus_c/mode |
70 | 0–1 | switch | ||
/virus_c/key_follow |
72 | 0–100 | continuous | ||
/virus_c/envelope_mode |
69 | 0–1 | switch | ||
/virus_c/osc_1_pitch |
74 | -100–100 | continuous | ||
/virus_c/osc_2_pitch |
75 | -100–100 | continuous | ||
/virus_c/pulse_width |
76 | -100–100 | continuous | ||
/virus_c/resonance |
77 | -100–100 | continuous | ||
/virus_c/filter_gain |
78 | -100–100 | continuous | ||
/virus_c/rate |
79 | 0–127 | continuous | ||
/virus_c/shape |
80 | 0–67 | continuous | ||
/virus_c/contour |
83 | -64–63 | continuous | ||
/virus_c/mode |
82 | 0–1 | switch | ||
/virus_c/key_follow |
84 | 0–100 | continuous | ||
/virus_c/envelope_mode |
81 | 0–1 | switch | ||
/virus_c/filtr_1_cutoff |
88 | -100–100 | continuous | ||
/virus_c/filtr_2_cutoff |
89 | -100–100 | continuous | ||
/virus_c/panorama |
90 | -100–100 | continuous | ||
/virus_c/fm_amount |
87 | -100–100 | continuous | ||
/virus_c/shape_1_2 |
86 | -100–100 | continuous | ||
/virus_c/type |
103 | 0–6 | continuous | ||
/virus_c/rate |
106 | 0–127 | continuous | ||
/virus_c/depth |
107 | 0–100 | continuous | ||
/virus_c/feedback |
109 | -100–100 | continuous | ||
/virus_c/delay |
108 | 0–127 | continuous | ||
/virus_c/classic_mix |
105 | 0–127 | continuous | ||
/virus_c/lfo_wave |
110 | 0–5 | continuous | ||
/virus_c/mix |
104 | 0–127 | continuous | ||
/virus_c/x_over |
111 | 0–127 | continuous | ||
/virus_c/send |
113 | 0–127 | continuous | ||
/virus_c/feedback |
115 | 0–200 | continuous | ||
/virus_c/frequency |
119 | 0–127 | continuous | ||
/virus_c/modulation |
117 | 0–100 | continuous | ||
/virus_c/time |
114 | 0–694 | continuous | ||
/virus_c/volume |
91 | 0–127 | continuous | ||
/virus_c/panorama |
10 | -100–100 | continuous | ||
/virus_c/transpose |
93 | -64–63 | continuous | ||
/virus_c/trigger_phase |
73 | 0–127 | continuous | ||
/virus_c/pitch_bend |
7 / 104 | -8192–8191 | continuous | ||
/virus_c/modulation |
1 | 0–127 | continuous | ||
/virus_c/trigger_phase |
85 | 0–127 | continuous | ||
/virus_c/control_3 |
3 | 0–127 | continuous | ||
/virus_c/control_11 |
11 | 0–127 | continuous | ||
/virus_c/control_9 |
9 | 0–127 | continuous |
SysEx commands (117)¶
| OSC address | Arguments |
|---|---|
/virus_c/part |
val: u7 |
/virus_c/fm_mode |
val: u7 |
/virus_c/mode_wave |
val: u7 |
/virus_c/semitone |
val: u7 |
/virus_c/detune |
val: u7 |
/virus_c/osc_3_volume |
val: u7 |
/virus_c/key_follw_base |
val: u7 |
/virus_c/env_polarity |
val: u7 |
/virus_c/res_velocity |
val: u7 |
/virus_c/env_velocity |
val: u7 |
/virus_c/cutoff_link |
val: u7 |
/virus_c/clock |
val: u7 |
/virus_c/rate |
val: u7 |
/virus_c/shape |
val: u7 |
/virus_c/fade_in |
val: u7 |
/virus_c/mode |
val: u7 |
/virus_c/key_follow |
val: u7 |
/virus_c/target |
val: u7 |
/virus_c/amount |
val: u7 |
/virus_c/type |
val: u7 |
/virus_c/intensity |
val: u7 |
/virus_c/frequency |
val: u7 |
/virus_c/mix |
val: u7 |
/virus_c/treble_boost |
val: u7 |
/virus_c/high_cut |
val: u7 |
/virus_c/left_clock |
val: u7 |
/virus_c/right_clock |
val: u7 |
/virus_c/bandwidth |
val: u7 |
/virus_c/ratio |
val: u7 |
/virus_c/feedback |
val: u7 |
/virus_c/mod_rate |
val: u7 |
/virus_c/mod_depth |
val: u7 |
/virus_c/q_factor |
val: u7 |
/virus_c/gain |
val: u7 |
/virus_c/send |
val: u7 |
/virus_c/time |
val: u7 |
/virus_c/damping |
val: u7 |
/virus_c/coloration |
val: u7 |
/virus_c/pre_delay |
val: u7 |
/virus_c/poles |
val: u7 |
/virus_c/slope |
val: u7 |
/virus_c/input |
val: u7 |
/virus_c/resonance |
val: u7 |
/virus_c/filter_type |
val: u7 |
/virus_c/stereo_phase |
val: u7 |
/virus_c/shape_l |
val: u7 |
/virus_c/shape_r |
val: u7 |
/virus_c/volume |
val: u7 |
/virus_c/panorama |
val: u7 |
/virus_c/fm_amount |
val: u7 |
/virus_c/osc_1_shape |
val: u7 |
/virus_c/osc_2_shape |
val: u7 |
/virus_c/pulse_width |
val: u7 |
/virus_c/filter_1_env |
val: u7 |
/virus_c/resonance_1 |
val: u7 |
/virus_c/filter_2_env |
val: u7 |
/virus_c/resonance_2 |
val: u7 |
/virus_c/atomizer |
val: u7 |
/virus_c/output |
val: u7 |
/virus_c/balance |
val: u7 |
/virus_c/source |
val: u7 |
/virus_c/target_1 |
val: u7 |
/virus_c/target_2 |
val: u7 |
/virus_c/target_3 |
val: u7 |
/virus_c/amount_1 |
val: u7 |
/virus_c/amount_2 |
val: u7 |
/virus_c/amount_3 |
val: u7 |
/virus_c/multi_tempo |
val: u7 |
/virus_c/smooth_mode |
val: u7 |
/virus_c/down |
val: u7 |
/virus_c/up |
val: u7 |
/virus_c/scale |
val: u7 |
/virus_c/tempo |
val: u7 |
/virus_c/pattern |
val: u7 |
/virus_c/octave_range |
val: u7 |
/virus_c/resolution |
val: u7 |
/virus_c/hold |
val: u7 |
/virus_c/note_length |
val: u7 |
/virus_c/note_swing |
val: u7 |
/virus_c/steps |
val: u7 |
/virus_c/voices |
val: u7 |
/virus_c/pan_spread |
val: u7 |
/virus_c/lfo_phase |
val: u7 |
/virus_c/function |
val: u7 |
/virus_c/name |
val: u7 |
/virus_c/step_1 |
val: u7 |
/virus_c/step_2 |
val: u7 |
/virus_c/step_3 |
val: u7 |
/virus_c/step_4 |
val: u7 |
/virus_c/step_5 |
val: u7 |
/virus_c/step_6 |
val: u7 |
/virus_c/step_7 |
val: u7 |
/virus_c/step_8 |
val: u7 |
/virus_c/step_9 |
val: u7 |
/virus_c/step_10 |
val: u7 |
/virus_c/step_11 |
val: u7 |
/virus_c/step_12 |
val: u7 |
/virus_c/step_13 |
val: u7 |
/virus_c/step_14 |
val: u7 |
/virus_c/step_15 |
val: u7 |
/virus_c/step_16 |
val: u7 |
/virus_c/step_17 |
val: u7 |
/virus_c/step_18 |
val: u7 |
/virus_c/step_19 |
val: u7 |
/virus_c/step_20 |
val: u7 |
/virus_c/step_21 |
val: u7 |
/virus_c/step_22 |
val: u7 |
/virus_c/step_23 |
val: u7 |
/virus_c/step_24 |
val: u7 |
/virus_c/step_25 |
val: u7 |
/virus_c/step_26 |
val: u7 |
/virus_c/step_27 |
val: u7 |
/virus_c/step_28 |
val: u7 |
/virus_c/step_29 |
val: u7 |
/virus_c/step_30 |
val: u7 |
/virus_c/step_31 |
val: u7 |
/virus_c/step_32 |
val: u7 |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /virus_c/note/on <note> <velocity>, /virus_c/cc/<number> <value>, /virus_c/pitchbend <0-16383>, /virus_c/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.