Studio Electronics ATC-1: MIDI CC, NRPN and OSC map¶
The Studio Electronics ATC-1 as named OSC addresses — 73 CC — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | Studio Electronics ATC-1 |
|---|---|
| Vendor | Studio Electronics |
| OSC prefix | /atc_1 |
| Source | 🎛️ Derived from an Electra One community preset |
| Revision | per pencilresearch canonical CSV |
| Upstream | electra-preset |
| Driver file | devices/studio-electronics/atc_1.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/studio-electronics/atc_1.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 atc_1: ask “what can the Studio Electronics ATC-1 do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (73)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/atc_1/osc1_freq |
54 | 0–127 | continuous | ||
/atc_1/osc1_tri_on |
55 | 0–127 | continuous | ||
/atc_1/osc1_saw_on |
56 | 0–127 | continuous | ||
/atc_1/osc1_pul_on |
57 | 0–127 | continuous | ||
/atc_1/osc1_pul_width |
58 | 0–127 | continuous | ||
/atc_1/osc2_freq |
59 | 0–127 | continuous | ||
/atc_1/osc2_tri_on |
60 | 0–127 | continuous | ||
/atc_1/osc2_saw_on |
61 | 0–127 | continuous | ||
/atc_1/osc2_pul_on |
62 | 0–127 | continuous | ||
/atc_1/osc2_pul_width |
63 | 0–127 | continuous | ||
/atc_1/lfo1_rate |
70 | 0–127 | continuous | ||
/atc_1/lfo1_depth |
71 | 0–127 | continuous | ||
/atc_1/lfo2_rate |
72 | 0–127 | continuous | ||
/atc_1/lfo2_depth |
73 | 0–127 | continuous | ||
/atc_1/env3_amnt |
84 | 0–127 | continuous | ||
/atc_1/env3_attack |
85 | 0–127 | continuous | ||
/atc_1/env3_decay |
86 | 0–127 | continuous | ||
/atc_1/env3_sustain |
87 | 0–127 | continuous | ||
/atc_1/env3_release |
88 | 0–127 | continuous | ||
/atc_1/mix1 |
102 | 0–127 | continuous | ||
/atc_1/mix2 |
103 | 0–127 | continuous | ||
/atc_1/mix_noise |
104 | 0–127 | continuous | ||
/atc_1/vcf_freq |
105 | 0–127 | continuous | ||
/atc_1/vcf_res |
106 | 0–127 | continuous | ||
/atc_1/env1_amnt |
107 | 0–127 | continuous | ||
/atc_1/env1_attack |
108 | 0–127 | continuous | ||
/atc_1/env1_decay |
109 | 0–127 | continuous | ||
/atc_1/env1_sustain |
110 | 0–127 | continuous | ||
/atc_1/env1_release |
111 | 0–127 | continuous | ||
/atc_1/env2_attack |
114 | 0–127 | continuous | ||
/atc_1/env2_decay |
115 | 0–127 | continuous | ||
/atc_1/env2_sustain |
116 | 0–127 | continuous | ||
/atc_1/env2_release |
117 | 0–127 | continuous | ||
/atc_1/303_accent_macro |
119 | 0–127 | continuous | ||
/atc_1/frequency |
54 | 0–127 | continuous | ||
/atc_1/triangle |
55 | 0–127 | continuous | ||
/atc_1/saw |
56 | 0–127 | continuous | ||
/atc_1/pulse |
57 | 0–127 | continuous | ||
/atc_1/pw |
58 | 0–127 | continuous | ||
/atc_1/volume |
7 | 0–127 | continuous | ||
/atc_1/frequency |
59 | 0–127 | continuous | ||
/atc_1/triange |
60 | 0–127 | continuous | ||
/atc_1/saw |
61 | 0–127 | continuous | ||
/atc_1/pulse |
62 | 0–127 | continuous | ||
/atc_1/pw |
63 | 0–127 | continuous | ||
/atc_1/mod_wheel |
1 | 0–127 | continuous | ||
/atc_1/osc1 |
102 | 0–127 | continuous | ||
/atc_1/osc2 |
103 | 0–127 | continuous | ||
/atc_1/noise |
104 | 0–127 | continuous | ||
/atc_1/x_mod |
74 | 0–127 | continuous | ||
/atc_1/rate |
70 | 0–127 | continuous | ||
/atc_1/depth |
71 | 0–127 | continuous | ||
/atc_1/vcf_reso |
106 | 0–127 | continuous | ||
/atc_1/vcf_evn1_amt |
107 | 0–127 | continuous | ||
/atc_1/accent_macro |
119 | 0–127 | continuous | ||
/atc_1/rate |
72 | 0–127 | continuous | ||
/atc_1/depth |
73 | 0–127 | continuous | ||
/atc_1/attack |
108 | 0–127 | continuous | ||
/atc_1/decay |
109 | 0–127 | continuous | ||
/atc_1/sustain |
110 | 0–127 | continuous | ||
/atc_1/release |
111 | 0–127 | continuous | ||
/atc_1/attack |
114 | 0–127 | continuous | ||
/atc_1/decay |
115 | 0–127 | continuous | ||
/atc_1/sustain |
116 | 0–127 | continuous | ||
/atc_1/release |
117 | 0–127 | continuous | ||
/atc_1/attack |
85 | 0–127 | continuous | ||
/atc_1/decay |
86 | 0–127 | continuous | ||
/atc_1/sustain |
87 | 0–127 | continuous | ||
/atc_1/release |
88 | 0–127 | continuous | ||
/atc_1/portamento |
5 | 0–127 | continuous | ||
/atc_1/porta_on_off |
65 | 0–127 | continuous | ||
/atc_1/sustainb_pedal |
64 | 0–127 | continuous | ||
/atc_1/all_notes_off |
123 | 0–127 | continuous |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /atc_1/note/on <note> <velocity>, /atc_1/cc/<number> <value>, /atc_1/pitchbend <0-16383>, /atc_1/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.