Teenage Engineering TX-6: MIDI CC, NRPN and OSC map¶
The Teenage Engineering TX-6 as named OSC addresses — 143 CC — ready to use from Claude (MCP), SuperCollider, Sonic Pi, TouchDesigner or any OSC app via osc-bridge.
| Device | Teenage Engineering TX-6 |
|---|---|
| Vendor | Teenage Engineering |
| OSC prefix | /tx_6 |
| Source | 🎛️ Derived from an Electra One community preset |
| Revision | per Electra preset |
| Upstream | electra-preset |
| Driver file | devices/teenage-engineering/tx_6.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/teenage-engineering/tx_6.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 tx_6: ask “what can the Teenage Engineering TX-6 do?” and it reads this map with list_routes. See the MCP guide.
MIDI CC and NRPN parameters (143)¶
| OSC address | CC | NRPN (MSB/LSB) | Range | Nature | Section |
|---|---|---|---|---|---|
/tx_6/vol |
7 | 0–127 | continuous | ||
/tx_6/vol |
7 | 0–127 | continuous | ||
/tx_6/vol |
7 | 0–127 | continuous | ||
/tx_6/vol |
7 | 0–127 | continuous | ||
/tx_6/vol |
7 | 0–127 | continuous | ||
/tx_6/vol |
7 | 0–127 | continuous | ||
/tx_6/pan |
8 | 0–127 | continuous | ||
/tx_6/pan |
8 | 0–127 | continuous | ||
/tx_6/pan |
8 | 0–127 | continuous | ||
/tx_6/pan |
8 | 0–127 | continuous | ||
/tx_6/pan |
8 | 0–127 | continuous | ||
/tx_6/pan |
8 | 0–127 | continuous | ||
/tx_6/filter |
74 | 0–127 | continuous | ||
/tx_6/filter |
74 | 0–127 | continuous | ||
/tx_6/filter |
74 | 0–127 | continuous | ||
/tx_6/filter |
74 | 0–127 | continuous | ||
/tx_6/filter |
74 | 0–127 | continuous | ||
/tx_6/filter |
74 | 0–127 | continuous | ||
/tx_6/eq_high |
85 | 0–127 | continuous | ||
/tx_6/eq_high |
85 | 0–127 | continuous | ||
/tx_6/eq_high |
85 | 0–127 | continuous | ||
/tx_6/eq_high |
85 | 0–127 | continuous | ||
/tx_6/eq_high |
85 | 0–127 | continuous | ||
/tx_6/eq_high |
85 | 0–127 | continuous | ||
/tx_6/eq_mid |
86 | 0–127 | continuous | ||
/tx_6/eq_mid |
86 | 0–127 | continuous | ||
/tx_6/eq_mid |
86 | 0–127 | continuous | ||
/tx_6/eq_mid |
86 | 0–127 | continuous | ||
/tx_6/eq_mid |
86 | 0–127 | continuous | ||
/tx_6/eq_mid |
86 | 0–127 | continuous | ||
/tx_6/eq_low |
87 | 0–127 | continuous | ||
/tx_6/eq_low |
87 | 0–127 | continuous | ||
/tx_6/eq_low |
87 | 0–127 | continuous | ||
/tx_6/eq_low |
87 | 0–127 | continuous | ||
/tx_6/eq_low |
87 | 0–127 | continuous | ||
/tx_6/eq_low |
87 | 0–127 | continuous | ||
/tx_6/mute |
120 | 0–127 | continuous | ||
/tx_6/mute |
120 | 0–127 | continuous | ||
/tx_6/mute |
120 | 0–127 | continuous | ||
/tx_6/mute |
120 | 0–127 | continuous | ||
/tx_6/mute |
120 | 0–127 | continuous | ||
/tx_6/mute |
120 | 0–127 | continuous | ||
/tx_6/gain |
9 | 0–127 | continuous | ||
/tx_6/gain |
9 | 0–127 | continuous | ||
/tx_6/gain |
9 | 0–127 | continuous | ||
/tx_6/gain |
9 | 0–127 | continuous | ||
/tx_6/gain |
9 | 0–127 | continuous | ||
/tx_6/gain |
9 | 0–127 | continuous | ||
/tx_6/compressor |
93 | 0–127 | continuous | ||
/tx_6/compressor |
93 | 0–127 | continuous | ||
/tx_6/compressor |
93 | 0–127 | continuous | ||
/tx_6/compressor |
93 | 0–127 | continuous | ||
/tx_6/compressor |
93 | 0–127 | continuous | ||
/tx_6/compressor |
93 | 0–127 | continuous | ||
/tx_6/aux_send |
92 | 0–127 | continuous | ||
/tx_6/aux_send |
92 | 0–127 | continuous | ||
/tx_6/aux_send |
92 | 0–127 | continuous | ||
/tx_6/aux_send |
92 | 0–127 | continuous | ||
/tx_6/aux_send |
92 | 0–127 | continuous | ||
/tx_6/aux_send |
92 | 0–127 | continuous | ||
/tx_6/aux_ii_send |
94 | 0–127 | continuous | ||
/tx_6/aux_ii_send |
94 | 0–127 | continuous | ||
/tx_6/aux_ii_send |
94 | 0–127 | continuous | ||
/tx_6/aux_ii_send |
94 | 0–127 | continuous | ||
/tx_6/aux_ii_send |
94 | 0–127 | continuous | ||
/tx_6/aux_ii_send |
94 | 0–127 | continuous | ||
/tx_6/fx_i_send |
91 | 0–127 | continuous | ||
/tx_6/fx_i_send |
91 | 0–127 | continuous | ||
/tx_6/fx_i_send |
91 | 0–127 | continuous | ||
/tx_6/fx_i_send |
91 | 0–127 | continuous | ||
/tx_6/fx_i_send |
91 | 0–127 | continuous | ||
/tx_6/fx_i_send |
91 | 0–127 | continuous | ||
/tx_6/fx_i_enable |
82 | 0–127 | continuous | ||
/tx_6/fx_ii_enable |
82 | 0–127 | continuous | ||
/tx_6/tx_6_vol |
7 | 0–127 | continuous | ||
/tx_6/cue_vol |
15 | 0–127 | continuous | ||
/tx_6/aux_vol |
14 | 0–127 | continuous | ||
/tx_6/fx_i_engine |
15 | 0–127 | continuous | ||
/tx_6/fx_ii_engine |
15 | 0–127 | continuous | ||
/tx_6/local_control |
122 | 0–127 | continuous | ||
/tx_6/encoder |
31 | 0–127 | continuous | ||
/tx_6/fx_i_parm_1 |
12 | 0–127 | continuous | ||
/tx_6/fx_ii_parm_1 |
12 | 0–127 | continuous | ||
/tx_6/tempo_relative |
47 | 0–127 | continuous | ||
/tx_6/fx_i_parm_2 |
13 | 0–127 | continuous | ||
/tx_6/fx_ii_parm_2 |
13 | 0–127 | continuous | ||
/tx_6/fx_i_parm_3 |
14 | 0–127 | continuous | ||
/tx_6/fx_ii_parm_3 |
14 | 0–127 | continuous | ||
/tx_6/macro_levels |
1 | 0–127 | continuous | ||
/tx_6/macro_levels |
5 | 0–127 | continuous | ||
/tx_6/macro_levels |
2 | 0–127 | continuous | ||
/tx_6/macro_levels |
6 | 0–127 | continuous | ||
/tx_6/macro_levels |
3 | 0–127 | continuous | ||
/tx_6/macro_levels |
7 | 0–127 | continuous | ||
/tx_6/macro_levels |
4 | 0–127 | continuous | ||
/tx_6/macro_levels |
8 | 0–127 | continuous | ||
/tx_6/macro_knobs |
9 | 0–127 | continuous | ||
/tx_6/macro_knobs |
10 | 0–127 | continuous | ||
/tx_6/macro_knobs |
11 | 0–127 | continuous | ||
/tx_6/macro_knobs |
12 | 0–127 | continuous | ||
/tx_6/macro_knobs |
13 | 0–127 | continuous | ||
/tx_6/macro_knobs |
14 | 0–127 | continuous | ||
/tx_6/macro_knobs |
15 | 0–127 | continuous | ||
/tx_6/macro_knobs |
16 | 0–127 | continuous | ||
/tx_6/fx_i_return |
7 | 0–127 | continuous | ||
/tx_6/fx_ii_track |
9 | 0–127 | continuous | ||
/tx_6/track1_button |
25 | 0–127 | continuous | ||
/tx_6/track1_button |
25 | 0–127 | continuous | ||
/tx_6/track1_button |
25 | 0–127 | continuous | ||
/tx_6/track1_button |
25 | 0–127 | continuous | ||
/tx_6/track1_button |
25 | 0–127 | continuous | ||
/tx_6/track1_button |
25 | 0–127 | continuous | ||
/tx_6/length |
90 | 0–127 | continuous | ||
/tx_6/length |
90 | 0–127 | continuous | ||
/tx_6/length |
90 | 0–127 | continuous | ||
/tx_6/length |
90 | 0–127 | continuous | ||
/tx_6/length |
90 | 0–127 | continuous | ||
/tx_6/length |
90 | 0–127 | continuous | ||
/tx_6/detune |
95 | 0–127 | continuous | ||
/tx_6/detune |
95 | 0–127 | continuous | ||
/tx_6/detune |
95 | 0–127 | continuous | ||
/tx_6/detune |
95 | 0–127 | continuous | ||
/tx_6/detune |
95 | 0–127 | continuous | ||
/tx_6/detune |
95 | 0–127 | continuous | ||
/tx_6/pattern |
14 | 0–127 | continuous | ||
/tx_6/pattern |
14 | 0–127 | continuous | ||
/tx_6/pattern |
14 | 0–127 | continuous | ||
/tx_6/pattern |
14 | 0–127 | continuous | ||
/tx_6/pattern |
14 | 0–127 | continuous | ||
/tx_6/pattern |
14 | 0–127 | continuous | ||
/tx_6/frequency |
89 | 0–127 | continuous | ||
/tx_6/frequency |
89 | 0–127 | continuous | ||
/tx_6/frequency |
89 | 0–127 | continuous | ||
/tx_6/frequency |
89 | 0–127 | continuous | ||
/tx_6/frequency |
89 | 0–127 | continuous | ||
/tx_6/frequency |
89 | 0–127 | continuous | ||
/tx_6/waveform |
3 | 0–127 | continuous | ||
/tx_6/waveform |
3 | 0–127 | continuous | ||
/tx_6/waveform |
3 | 0–127 | continuous | ||
/tx_6/waveform |
3 | 0–127 | continuous | ||
/tx_6/waveform |
3 | 0–127 | continuous | ||
/tx_6/waveform |
3 | 0–127 | continuous | ||
/tx_6/chromatic_1 |
13 | 0–127 | continuous |
Performance MIDI¶
Notes, pitch bend and any CC are also available: /tx_6/note/on <note> <velocity>, /tx_6/cc/<number> <value>, /tx_6/pitchbend <0-16383>, /tx_6/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.