This page is read from MIDI Instrument Definitions, a Python library used in the author's other projects, in which every number is traced to a document its maker published. Its source is on GitHub.
Oberheim TEO-5 MIDI implementation
The MIDI implementation of the Oberheim TEO-5: what it answers to, and the 198 controls it offers.
At a glance
- Firmware
- Not recorded.
- MIDI channel
- Any one of 1 to 16.
- Voices
- 5.
- Note range
- Not recorded.
- Velocity
- Sent and received. Release velocity is ignored.
- Aftertouch
- Channel pressure and polyphonic, each answered. It sends aftertouch too.
- Pitch bend
- How far it bends is not recorded, and the range can be changed.
- Program change
- Received and sent, with 512 presets.
- MIDI clock
- Sent and received.
- Start and stop
- Sent and received.
- Control change
- 110 controls, in the tables below.
- NRPN
- Supported, and preferred to CC. 186 of the controls below have one.
- System exclusive
- Supported.
Controls
In the order the definition gives them, by group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("oberheim/teo_5") has loaded them.
Performance
| Control | CC | NRPN | Values |
|---|---|---|---|
Bank Select MSBbank_select_msb |
0 | 0-15 | |
Mod Wheelmod_wheel |
1 | 0-127 | |
Breath Controllerbreath_controller |
2 | 0-127 | |
Foot Controllerfoot_controller |
4 | 0-127 | |
Master Volumemaster_volume |
7 | 0-127 | |
Expressionexpression |
11 | 0-127 | |
Voice Volumevoice_volume |
12 | 93 MSB 0, LSB 93 |
0-127 |
Bank Select LSBbank_select_lsb |
32 | 0-127 | |
Sustain Pedalsustain_pedal |
64 | 0-127 | |
Brightnessbrightness |
74 | 0-127 | |
Panpan |
113 | 0-127 |
Oscillators
| Control | CC | NRPN | Values |
|---|---|---|---|
Osc 1 Freqosc_1_freq |
8 | 1 MSB 0, LSB 1 |
0-63 |
Osc 1 Onosc_1_on |
9 | 13 MSB 0, LSB 13 |
0-1 |
Osc 2 Onosc_2_on |
10 | 14 MSB 0, LSB 14 |
0-1 |
Osc 2 Freqosc_2_freq |
13 | 2 MSB 0, LSB 2 |
0-63 |
Sub Onsub_on |
14 | 17 MSB 0, LSB 17 |
0-1 |
Noise Onnoise_on |
15 | 19 MSB 0, LSB 19 |
0-1 |
Osc 1 Syncosc_1_sync |
39 | 27 MSB 0, LSB 27 |
0-1 |
Osc 1 Levelosc_1_level |
40 | 15 MSB 0, LSB 15 |
0-127 |
Osc 2 Levelosc_2_level |
41 | 16 MSB 0, LSB 16 |
0-127 |
Sub Levelsub_level |
42 | 18 MSB 0, LSB 18 |
0-127 |
Noise Levelnoise_level |
43 | 21 MSB 0, LSB 21 |
0-127 |
X-Mod Amtx_mod_amount |
44 | 26 MSB 0, LSB 26 |
0-127 |
Osc 1 Glideosc_1_glide |
65 | 22 MSB 0, LSB 22 |
0-127 |
Osc 2 Glideosc_2_glide |
66 | 23 MSB 0, LSB 23 |
0-127 |
Osc 1 Key Onosc_1_key_on |
87 | 24 MSB 0, LSB 24 |
0-1 |
Osc 2 Key Onosc_2_key_on |
88 | 25 MSB 0, LSB 25 |
0-1 |
Osc 1 PWosc_1_pw |
94 | 5 MSB 0, LSB 5 |
0-127 |
Osc 2 PWosc_2_pw |
95 | 6 MSB 0, LSB 6 |
0-127 |
Osc 1 Triosc_1_tri |
102 | 7 MSB 0, LSB 7 |
0-1 |
Osc 2 Triosc_2_tri |
103 | 8 MSB 0, LSB 8 |
0-1 |
Osc 1 Sawosc_1_saw |
104 | 9 MSB 0, LSB 9 |
0-1 |
Osc 2 Sawosc_2_saw |
105 | 10 MSB 0, LSB 10 |
0-1 |
Osc 1 Pulseosc_1_pulse |
106 | 11 MSB 0, LSB 11 |
0-1 |
Osc 2 Pulseosc_2_pulse |
107 | 12 MSB 0, LSB 12 |
0-1 |
Noise Typenoise_type |
108 | 20 MSB 0, LSB 20 |
0-1, or 0-127 by NRPN |
Osc 2 Detuneosc_2_detune |
109 | 4 MSB 0, LSB 4 |
0-63 |
Osc 2 Filter Bypassosc_2_filter_bypass |
117 | 28 MSB 0, LSB 28 |
0-1 |
Osc 1 Detuneosc_1_detune |
3 MSB 0, LSB 3 |
0-63 |
Glide
| Control | CC | NRPN | Values |
|---|---|---|---|
Glide Mode (Portamento Time)glide_mode |
5 | 30 MSB 0, LSB 30 |
0-3 |
Glide Onglide_on |
68 | 31 MSB 0, LSB 31 |
0-1 |
Filter
| Control | CC | NRPN | Values |
|---|---|---|---|
Filter Cutofffilter_cutoff |
33 | 34 MSB 0, LSB 34 |
0-127, or 0-1024 by NRPN |
Filter Resonancefilter_resonance |
34 | 36 MSB 0, LSB 36 |
0-127, or 0-265 by NRPN |
Filter Statefilter_state |
35 | 38 MSB 0, LSB 38 |
0-127, or 0-512 by NRPN |
Filter Key Amtfilter_key_amt |
36 | 40 MSB 0, LSB 40 |
0-127 |
Filter Bandpassfilter_bandpass |
110 | 37 MSB 0, LSB 37 |
0-1 |
Filter Cutoff MSBfilter_cutoff_msb |
35 MSB 0, LSB 35 |
0-7 | |
Filter State MSBfilter_state_msb |
39 MSB 0, LSB 39 |
0-127 |
Envelopes
| Control | CC | NRPN | Values |
|---|---|---|---|
Env Routenv_routes |
69 | 89 MSB 0, LSB 89 |
0-2 |
Env Retrigenv_retrig |
73 | 154 MSB 1, LSB 26 |
0-1 |
Env Repeatenv_repeat |
116 | 91 MSB 0, LSB 91 |
0-3 |
Envelope 1
| Control | CC | NRPN | Values |
|---|---|---|---|
Env 1 Delayenv_1_delay |
45 | 79 MSB 0, LSB 79 |
0-127 |
Env 1 Attackenv_1_attack |
46 | 81 MSB 0, LSB 81 |
0-127, or 0-256 by NRPN |
Env 1 Decayenv_1_decay |
47 | 83 MSB 0, LSB 83 |
0-127, or 0-256 by NRPN |
Env 1 Sustainenv_1_sustain |
48 | 85 MSB 0, LSB 85 |
0-127 |
Env 1 Releaseenv_1_release |
49 | 87 MSB 0, LSB 87 |
0-127, or 0-256 by NRPN |
Env 1 Amountenv_1_amount |
50 | 75 MSB 0, LSB 75 |
0-127, or 0-256 by NRPN |
Env 1 Vel Onenv_1_vel_on |
51 | 77 MSB 0, LSB 77 |
0-1 |
Env 1 Destenv_1_dest |
90 MSB 0, LSB 90 |
0-61 |
Envelope 2
| Control | CC | NRPN | Values |
|---|---|---|---|
Env 2 Delayenv_2_delay |
52 | 80 MSB 0, LSB 80 |
0-127 |
Env 2 Attackenv_2_attack |
53 | 82 MSB 0, LSB 82 |
0-127, or 0-256 by NRPN |
Env 2 Decayenv_2_decay |
54 | 84 MSB 0, LSB 84 |
0-127, or 0-256 by NRPN |
Env 2 Sustainenv_2_sustain |
55 | 86 MSB 0, LSB 86 |
0-127 |
Env 2 Releaseenv_2_release |
56 | 88 MSB 0, LSB 88 |
0-127, or 0-256 by NRPN |
Env 2 Amountenv_2_amount |
57 | 76 MSB 0, LSB 76 |
0-127, or 0-256 by NRPN |
Env 2 Vel Onenv_2_vel_on |
58 | 78 MSB 0, LSB 78 |
0-1 |
LFO 1
| Control | CC | NRPN | Values |
|---|---|---|---|
LFO 1 Freqlfo_1_freq |
75 | 58 MSB 0, LSB 58 |
0-127 |
LFO 1 Amtlfo_1_amt |
76 | 60 MSB 0, LSB 60 |
0-127, or 0-256 by NRPN |
LFO 1 Shapelfo_1_shape |
77 | 62 MSB 0, LSB 62 |
0-4 |
LFO 1 Synclfo_1_sync |
78 | 64 MSB 0, LSB 64 |
0-1 |
LFO 1 Note Resetlfo_1_note_reset |
79 | 70 MSB 0, LSB 70 |
0-1 |
LFO 1 Slewlfo_1_slew |
92 | 72 MSB 0, LSB 72 |
0-127 |
LFO 1 Freq Synclfo_1_freq_sync |
111 | 68 MSB 0, LSB 68 |
0-15 |
LFO 1 Destlfo_1_dest |
66 MSB 0, LSB 66 |
0-61 |
LFO 2
| Control | CC | NRPN | Values |
|---|---|---|---|
LFO 2 Freqlfo_2_freq |
80 | 59 MSB 0, LSB 59 |
0-127 |
LFO 2 Amtlfo_2_amt |
81 | 61 MSB 0, LSB 61 |
0-127, or 0-256 by NRPN |
LFO 2 Shapelfo_2_shape |
82 | 63 MSB 0, LSB 63 |
0-4 |
LFO 2 Synclfo_2_sync |
83 | 65 MSB 0, LSB 65 |
0-1 |
LFO 2 Note Resetlfo_2_note_reset |
84 | 71 MSB 0, LSB 71 |
0-1 |
LFO 2 Slewlfo_2_slew |
93 | 73 MSB 0, LSB 73 |
0-127 |
LFO 2 Freq Synclfo_2_freq_sync |
112 | 69 MSB 0, LSB 69 |
0-15 |
LFO 2 Destlfo_2_dest |
67 MSB 0, LSB 67 |
0-61 |
Effects
| Control | CC | NRPN | Values |
|---|---|---|---|
FX On/Offfx_on |
16 | 42 MSB 0, LSB 42 |
0-1 |
FX Selectfx_select |
17 | 43 MSB 0, LSB 43 |
0-12 |
FX Timefx_time |
18 | 45 MSB 0, LSB 45 |
0-127 |
FX Mixfx_mix |
19 | 44 MSB 0, LSB 44 |
0-127 |
FX Miscfx_misc |
20 | 46 MSB 0, LSB 46 |
0-127 |
FX Sync On/Offfx_sync |
21 | 47 MSB 0, LSB 47 |
0-1 |
FX Sync Ratefx_sync_rate |
22 | 48 MSB 0, LSB 48 |
0-10 |
Vintage Amtvintage |
37 | 96 MSB 0, LSB 96 |
0-127 |
Distortiondistortion |
67 | 95 MSB 0, LSB 95 |
0-127 |
Reverb
| Control | CC | NRPN | Values |
|---|---|---|---|
Reverb Onreverb_on |
23 | 50 MSB 0, LSB 50 |
0-1 |
Reverb Mixreverb_mix |
24 | 52 MSB 0, LSB 52 |
0-127 |
Reverb Sizereverb_size |
25 | 53 MSB 0, LSB 53 |
0-127 |
Reverb PreDelayreverb_predelay |
26 | 54 MSB 0, LSB 54 |
0-127 |
Reverb Decayreverb_decay |
27 | 55 MSB 0, LSB 55 |
0-127 |
Reverb Tonereverb_tone |
28 | 56 MSB 0, LSB 56 |
0-127 |
Unison
| Control | CC | NRPN | Values |
|---|---|---|---|
Unison Onunison_on |
31 | 97 MSB 0, LSB 97 |
0-1 |
Unison Voicesunison_voices |
70 | 98 MSB 0, LSB 98 |
0-5 |
Unison Detuneunison_detune |
71 | 99 MSB 0, LSB 99 |
0-7 |
Unison Note 1unison_note_1 |
100 MSB 0, LSB 100 |
0-43 | |
Unison Note 2unison_note_2 |
101 MSB 0, LSB 101 |
0-43 | |
Unison Note 3unison_note_3 |
102 MSB 0, LSB 102 |
0-43 | |
Unison Note 4unison_note_4 |
103 MSB 0, LSB 103 |
0-43 | |
Unison Note 5unison_note_5 |
104 MSB 0, LSB 104 |
0-43 |
Arpeggiator
| Control | CC | NRPN | Values |
|---|---|---|---|
Arp. Onarp_on |
59 | 183 MSB 1, LSB 55 |
0-1 |
Arp. Modearp_mode |
60 | 184 MSB 1, LSB 56 |
0-4 |
Arp. Rangearp_range |
61 | 185 MSB 1, LSB 57 |
0-2 |
Arp Repeatarp_repeat |
62 | 186 MSB 1, LSB 58 |
0-3 |
Arp Relatcharp_relatch |
187 MSB 1, LSB 59 |
0-1 |
Keyboard
| Control | CC | NRPN | Values |
|---|---|---|---|
Key Splitkey_split |
29 | 180 MSB 1, LSB 52 |
0-1 |
Key Split 2key_split_2 |
30 | 181 MSB 1, LSB 53 |
0-1 |
Key Modekey_mode |
72 | 153 MSB 1, LSB 25 |
0-2 |
PBend Range Uppitch_bend_range_up |
85 | 32 MSB 0, LSB 32 |
0-12 |
PBend Range Dnpitch_bend_range_down |
86 | 33 MSB 0, LSB 33 |
0-24 |
KeySplit Notekeysplit_note |
89 | 182 MSB 1, LSB 54 |
0-43 |
Scale Selectscale |
114 | 155 MSB 1, LSB 27 |
0-65, or 0-64 by NRPN |
Transposetranspose |
115 | 156 MSB 1, LSB 28 |
0-4 |
Sequencer
| Control | CC | NRPN | Values |
|---|---|---|---|
Seq On/Offseq_on |
90 | 0-1 | |
Seq Rec Armseq_rec_arm |
91 | 0-1 | |
Seq Play/Stopseq_play_stop |
4188 MSB 32, LSB 92 |
0-1 |
Clock
| Control | CC | NRPN | Values |
|---|---|---|---|
BPMclock_bpm |
3 | 157 MSB 1, LSB 29 |
15-127, or 30-250 by NRPN |
Clock Divideclock_divide |
63 | 158 MSB 1, LSB 30 |
0-7 |
Mod slot 1
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 1 Sourcemod_1_source |
105 MSB 0, LSB 105 |
0-19 | |
Mod 1 Amtmod_1_amt |
121 MSB 0, LSB 121 |
0-255 | |
Mod 1 Destmod_1_dest |
137 MSB 1, LSB 9 |
0-64 |
Mod slot 2
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 2 Sourcemod_2_source |
106 MSB 0, LSB 106 |
0-19 | |
Mod 2 Amtmod_2_amt |
122 MSB 0, LSB 122 |
0-255 | |
Mod 2 Destmod_2_dest |
138 MSB 1, LSB 10 |
0-64 |
Mod slot 3
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 3 Sourcemod_3_source |
107 MSB 0, LSB 107 |
0-19 | |
Mod 3 Amtmod_3_amt |
123 MSB 0, LSB 123 |
0-255 | |
Mod 3 Destmod_3_dest |
139 MSB 1, LSB 11 |
0-64 |
Mod slot 4
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 4 Sourcemod_4_source |
108 MSB 0, LSB 108 |
0-19 | |
Mod 4 Amtmod_4_amt |
124 MSB 0, LSB 124 |
0-255 | |
Mod 4 Destmod_4_dest |
140 MSB 1, LSB 12 |
0-64 |
Mod slot 5
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 5 Sourcemod_5_source |
109 MSB 0, LSB 109 |
0-19 | |
Mod 5 Amtmod_5_amt |
125 MSB 0, LSB 125 |
0-255 | |
Mod 5 Destmod_5_dest |
141 MSB 1, LSB 13 |
0-64 |
Mod slot 6
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 6 Sourcemod_6_source |
110 MSB 0, LSB 110 |
0-19 | |
Mod 6 Amtmod_6_amt |
126 MSB 0, LSB 126 |
0-255 | |
Mod 6 Destmod_6_dest |
142 MSB 1, LSB 14 |
0-64 |
Mod slot 7
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 7 Sourcemod_7_source |
111 MSB 0, LSB 111 |
0-19 | |
Mod 7 Amtmod_7_amt |
127 MSB 0, LSB 127 |
0-255 | |
Mod 7 Destmod_7_dest |
143 MSB 1, LSB 15 |
0-64 |
Mod slot 8
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 8 Sourcemod_8_source |
112 MSB 0, LSB 112 |
0-19 | |
Mod 8 Amtmod_8_amt |
128 MSB 1, LSB 0 |
0-255 | |
Mod 8 Destmod_8_dest |
144 MSB 1, LSB 16 |
0-64 |
Mod slot 9
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 9 Sourcemod_9_source |
113 MSB 0, LSB 113 |
0-19 | |
Mod 9 Amtmod_9_amt |
129 MSB 1, LSB 1 |
0-255 | |
Mod 9 Destmod_9_dest |
145 MSB 1, LSB 17 |
0-64 |
Mod slot 10
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 10 Sourcemod_10_source |
114 MSB 0, LSB 114 |
0-19 | |
Mod 10 Amtmod_10_amt |
130 MSB 1, LSB 2 |
0-255 | |
Mod 10 Destmod_10_dest |
146 MSB 1, LSB 18 |
0-64 |
Mod slot 11
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 11 Sourcemod_11_source |
115 MSB 0, LSB 115 |
0-19 | |
Mod 11 Amtmod_11_amt |
131 MSB 1, LSB 3 |
0-255 | |
Mod 11 Destmod_11_dest |
147 MSB 1, LSB 19 |
0-64 |
Mod slot 12
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 12 Sourcemod_12_source |
116 MSB 0, LSB 116 |
0-19 | |
Mod 12 Amtmod_12_amt |
132 MSB 1, LSB 4 |
0-255 | |
Mod 12 Destmod_12_dest |
148 MSB 1, LSB 20 |
0-64 |
Mod slot 13
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 13 Sourcemod_13_source |
117 MSB 0, LSB 117 |
0-19 | |
Mod 13 Amtmod_13_amt |
133 MSB 1, LSB 5 |
0-255 | |
Mod 13 Destmod_13_dest |
149 MSB 1, LSB 21 |
0-64 |
Mod slot 14
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 14 Sourcemod_14_source |
118 MSB 0, LSB 118 |
0-19 | |
Mod 14 Amtmod_14_amt |
134 MSB 1, LSB 6 |
0-255 | |
Mod 14 Destmod_14_dest |
150 MSB 1, LSB 22 |
0-64 |
Mod slot 15
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 15 Sourcemod_15_source |
119 MSB 0, LSB 119 |
0-19 | |
Mod 15 Amtmod_15_amt |
135 MSB 1, LSB 7 |
0-255 | |
Mod 15 Destmod_15_dest |
151 MSB 1, LSB 23 |
0-64 |
Mod slot 16
| Control | CC | NRPN | Values |
|---|---|---|---|
Mod 16 Sourcemod_16_source |
120 MSB 0, LSB 120 |
0-19 | |
Mod 16 Amtmod_16_amt |
136 MSB 1, LSB 8 |
0-255 | |
Mod 16 Destmod_16_dest |
152 MSB 1, LSB 24 |
0-64 |
Global settings
| Control | CC | NRPN | Values |
|---|---|---|---|
Master Coarse Tunemaster_coarse_tune |
4096 MSB 32, LSB 0 |
0-100 | |
Master Fine Tunemaster_fine_tune |
4097 MSB 32, LSB 1 |
0-24 | |
MIDI Channelmidi_channel |
4098 MSB 32, LSB 2 |
0 all |
|
MIDI Clock Modemidi_clock_mode |
4099 MSB 32, LSB 3 |
0 off, 1 out, 2 in, 3 in_thru |
|
MIDI Clock Cable Inmidi_clock_cable_in |
4100 MSB 32, LSB 4 |
0 midi_port, 1 usb |
|
MIDI Clock Cable Outmidi_clock_cable_out |
4101 MSB 32, LSB 5 |
0 none, 1 midi, 2 usb, 3 all |
|
MIDI Param Send*midi_param_send |
4102 MSB 32, LSB 6 |
0 nrpn, 1 cc, 2 off |
|
MIDI Param Receive†midi_param_receive |
4103 MSB 32, LSB 7 |
0 nrpn, 1 cc, 2 off |
|
MIDI Control Enablemidi_control_enable |
4104 MSB 32, LSB 8 |
0 off, 1 on |
|
MIDI SysEx Enablemidi_sysex_enable |
4105 MSB 32, LSB 9 |
0 off, 1 on |
|
MIDI SysEx Cablemidi_sysex_cable |
4106 MSB 32, LSB 10 |
0 midi, 1 usb |
|
MIDI Cable Outmidi_cable_out |
4107 MSB 32, LSB 11 |
0 midi, 1 usb, 2 all |
|
MIDI Program Sendmidi_program_send |
4108 MSB 32, LSB 12 |
0 off, 1 on |
|
MIDI Program Recvmidi_program_recv |
4109 MSB 32, LSB 13 |
0 off, 1 on |
|
MIDI Arp Notesmidi_arp_notes |
4110 MSB 32, LSB 14 |
0 off, 1 on |
|
Local Controllocal_control |
4111 MSB 32, LSB 15 |
0 all_off, 1 key_wheels_off, 2 on |
|
Mono/Stereomono_stereo |
4112 MSB 32, LSB 16 |
0 mono, 1 stereo |
|
Pot Modepot_mode |
4113 MSB 32, LSB 17 |
0 relative, 1 passthru, 2 jump |
|
Foot Pedal Assignfoot_pedal_assign |
4114 MSB 32, LSB 18 |
0 breath_cc2, 1 foot_cc4, 2 exp_cc11, 3 lpf_full, 4 lpf_half |
|
Sustain Pedal Polaritysustain_pedal_polarity |
4115 MSB 32, LSB 19 |
0 normal, 1 reversed |
|
Sustain Modesustain_mode |
4116 MSB 32, LSB 20 |
0 sustain, 1 arp_hold, 2 apr_hold_moment, 3 seq_start_stop |
|
Global Scaleglobal_scale |
4117 MSB 32, LSB 21 |
0-64 | |
Pressure Enablepressure_enable |
4118 MSB 32, LSB 22 |
0 off, 1 on |
|
Pressure Curvepressure_curve |
4119 MSB 32, LSB 23 |
0-7 | |
Velocity Curvevelocity_curve |
4120 MSB 32, LSB 24 |
0-7 | |
OLED Screensaveroled_screensaver |
4121 MSB 32, LSB 25 |
0 off, 1 on |
|
Arp Beat Syncarp_beat_sync |
4122 MSB 32, LSB 26 |
0 off, 1 quantize |
Where these facts come from
Source documents
- TEO-5 MIDI Implementation Document, v2, its MIDI implementation, read on 2 October 2026 (the file read).
- TEO-5 User's Guide, Version 2.0, dated June 2025, its user manual, read on 2 October 2026 (the file read).
- TEO-5 Synthesizer - Oberheim, its product page, read on 2 October 2026.
How they were read
MIDI Implementation Document v2, 16 pages: the global settings that govern MIDI response on pp. 1-2, received and transmitted messages on pp. 3-4, the control change table on pp. 5-6, how an NRPN travels on p. 7, the program parameter NRPNs on pp. 8-10, the global parameter NRPNs on p. 11, the one control NRPN and the system exclusive messages on pp. 12-15. The User's Guide Version 2.0 (116 pages) states what the instrument is and names the states some parameters step through; its pages are cited as file pages, because its front matter is unnumbered.
NRPN IS THE MAKER'S PREFERRED WAY IN, AND WHICH ONE IT USES IS A SETTING. "MIDI Param Send: Off, CC, NRPN" (p. 1) and "MIDI Param Receive: Off, CC, NRPN - Sets the method by which parameter changes are received via MIDI. As with transmission, NRPNs are the preferred method" (pp. 1-2). So a control below with both numbers is one parameter reachable either way, and which way depends on how the instrument is set.
SIXTEEN PARAMETERS GET A DIFFERENT RANGE IN EACH TABLE, and nrpn_range carries the NRPN's. Thirteen of those are NRPN being finer, which is the maker's own reason for preferring it - the two filter figures at 0-1024 and 0-512, and ten envelope and LFO figures at 0-256, where the control change gives 0-127. Three are not finer and are worth knowing about before trusting either number: Noise Type is a switch at 0-1 by control change and a value at 0-127 by NRPN; Scale is 0-65 by control change and 0-64 by NRPN, so the NRPN is the narrower of the two; and BPM is 15-127 by control change against 30-250 by NRPN, which do not even overlap at the top, so the control change cannot reach the tempos the NRPN can.
AND READ EVERY ONE OF THOSE WIDE RANGES AS A COUNT RATHER THAN A TOP, which is the one thing that makes them make sense. 0-256, 0-512 and 0-1024 all name one value more than the bit width they imply, while the forty-eight modulation amounts in the same table are 0-255, which is right. So the maker appears to have written the number of values where the highest value belongs, in some rows and not others. Both readings found this and neither corrected it: the figures below are the document's.
ONE RANGE IS THEN ALMOST CERTAINLY A TYPO, recorded as printed for the same reason. Filter Res is given 0-265 (p. 9) where every other wide parameter is 256, 512 or 1024. 265 falls out of no bit width and is one digit away from 255.
THE TWO TABLES ARE NOT SYMMETRICAL, and three absences are the maker's rather than this file's: there is a control change for Osc 2 Detune and none for Osc 1 Detune, though the NRPN table has both; there is an NRPN for Env 1 Dest and none for Env 2; and the whole modulation matrix - sixteen slots of source, amount and destination, forty-eight parameters - is reachable by NRPN only.
EXPRESSION IS CLAIMED AT TWO DIFFERENT NUMBERS IN THIS ONE DOCUMENT, which is the sharpest thing here for anybody building a controller. The control change table gives "11 Expression 0-127" (p. 5) and the global table agrees, naming the pedal assignment "2 = Exp CC11" (p. 11) - but the transmitted controller table sends Expression on 0000 1101, which is 13 (p. 4). expression below is CC 11, because two of the three statements say so and because 11 is where the MIDI specification puts expression. A host that listens on 11 alone may still miss what this instrument sends. AND THE PERFORMANCE CONTROLLERS DO NOT GO BOTH WAYS. Breath Controller and Expression are in the transmitted table and not the received one; All Notes Off and Reset All Controllers are in the received table and not the transmitted one (pp. 3-4). direction is not set on any control below, because the control change table on pp. 5-6 - which is where the numbers come from - says nothing about direction at all, and the two message tables are about a different and shorter list. Volume appears twice in the transmitted table, once as the pedal assignment and once as "Volume knob", both on CC 7.
THE DOCUMENT CANNOT AGREE WITH ITSELF ABOUT BANKS AND PROGRAMS, in five places. Received program change is "0-127 for Programs 1-127 within current Bank" (midi_impl p. 3) and transmitted is "0-127 for Programs 00-128 within current Bank" (pp. 3-4) - one is 127 programs for 128 numbers and the other is 129. Received bank select is "1 - 4 select user banks 1 - 4; 5 - 8 select factory banks 1 - 4; 9 - 12 select add-on banks 1 - 4 others ignored" (midi_impl p. 3) and transmitted bank select is "0 - 9" (pp. 3-4). The dump request takes "Bank Number, 0 - 15" (midi_impl p. 13) and "Program Number, 0 - 127" (midi_impl p. 13) while the dump itself carries "Bank Number: 0 - 9" (midi_impl p. 14) and "Program Number: 0 - 99" (pp. 13-14). presets below is the guide's plain count of the instrument instead: "The TEO-5 contains 512 programs. These are divided into two sets of 256 programs - a Factory set and a User set" (guide p. 13), which the four user and four factory banks of the received bank select agree with at sixty-four programs a bank.
THE GLOBAL TABLE CONTRADICTS THE PROSE TWO PAGES EARLIER, twice. MIDI Clock Mode is given six settings in words - "Off", "Out", "Out No S/S", "In", "In/Thru", "In No S/S" (p. 1) - and four in the table, 0-3 as Off, Out, In and In Thru (p. 11), so the two that suppress start and stop have no number. MIDI Out Select is "Off, MIDI, USB, All" (p. 2) in words and 0-2 as MIDI, USB and All in the table, so Off has none.
THE SISTER DOCUMENT AGREES WITH THE PROSE BOTH TIMES, which is as close to an answer as anything here gets. The Take 5's implementation document, numbering its globals identically, gives MIDI Clock Mode 0-5 at 4099 and MIDI Out Select 0-3 at 4107 - six settings and four, exactly the counts this document's own prose gives. So this table is very likely the stale one. It is still a deduction rather than a statement, so choices below carries the four and the three the table prints, and this paragraph is where the doubt lives.
ONE GLOBAL'S DESCRIPTION IS ANOTHER'S, copied and not corrected: "MIDI Sysex On: Off, On - When set to On, the synth will respond to MIDI controllers, including pitch wheel, mod wheel, pedal, and volume" (p. 2), which is word for word what the line above says about MIDI Control. What MIDI SysEx On does is said instead by the table, which calls 4105 "MIDI SysEx Enable" (midi_impl p. 11).
AND THE TWO SISTER DOCUMENTS SWAP TWO RANGES. Here Master Coarse Tune is 0-100 and Master Fine Tune is 0-24 (p. 11); the Take 5's document, at those same two numbers, gives 0-24 and 0-100. Twenty-four semitones of coarse tuning and a hundred steps of fine is the reading that makes musical sense, so this document is probably the one with them the wrong way round - but it is the document for this instrument, so its figures are what is below. The sibling is not the better document either: it spells the parameter "Master Course Tune".
THIS DOCUMENT IS AN EXTRACT FROM THE GUIDE, WHICH IS WHY ITS HEADERS ARE RIGHT AND ITS BODY IS NOT. Its own running footer reads "TEO-5 User's Guide" on every page. So the furniture was updated when Oberheim made it from Sequential's and the sentences inside were not, which is the same fault as the guide's nineteen Take 5 headers seen from the other side.
FIVE MORE THINGS IN IT DO NOT ADD UP, and none changes a number below. The program table is introduced as "TEO-5 program parameters 0-352" (p. 8) and then runs 1 to 187 in 159 rows with no parameter 0 and nothing above 187. The page describing how an NRPN travels says "The parameter number can be found in the two tables below" (midi_impl p. 7) where there are three, and says the number's high byte "will be zero or one, and never more than two" (p. 7) where every global is 4096 or above and so has a high byte of 32. MIDI Param Send and MIDI Param Receive carry an asterisk and a dagger in the global table and no footnote exists anywhere in the sixteen pages for either. The system real-time table lists MIDI Timing Clock and has no row for Start or Stop (p. 3), although the clock settings two pages earlier send and receive both - which is why transport below is both on the strength of the prose rather than the table. The dump request's bank byte is written 0000 00vv, which holds two bits and four values, under a stated range of 0 to 15 (p. 13).
THE GLOBAL TABLE'S OWN SPACING IS ERRATIC and the choices below do not reproduce it. The states are printed "1= MIDI", "0 =All Off", "1 =Passthru", "2= Off" and so on, with the space on either side of the equals or on neither. Both readings found the same unevenness, so it is the document's rather than a tool's; the names below are keys and carry none of it.
AND THE GLOBALS ARE NAMED TWICE, differently. The panel names on pp. 1-2 and the table names on p. 11 do not match for four of them: MIDI Control becomes MIDI Control Enable, MIDI Sysex On becomes MIDI SysEx Enable, MIDI Out Select becomes MIDI Cable Out, and MIDI Prog Send/Receive become MIDI Program Send/Recv. The labels below are the table's, because the table is what carries the numbers.
NOT RECORDED: which number means which named state for any program parameter. The implementation document gives those as bare ranges, and the guide names the states in words without numbering them - "Shape: Triangle, Sawtooth, Reverse Sawtooth, Square, S&H" (guide p. 42) against a range of 0-4 (pp. 6, 9) tells you there are five and not which is which. The globals are different, and choices below carries their states because that table does number them.
NOT RECORDED: the note range and the key numbers. The guide gives the keyboard as "its 44-note keyboard" (p. 17) and names no note number for either end of it; the implementation document says only "Note number 0-127" (p. 3) for what it receives.
NOT RECORDED: any system exclusive layout. The messages are published - device inquiry, three dump requests, three dumps, and the packed-data format - but a program dump is "4096 bytes expanded to 4690 MIDI bytes in 'packed MS bit' format" (p. 14) with no map of what those bytes mean. 4690 does not follow from the packing the same document describes: seven bytes to eight makes 4096 into 4682, which both readings worked out separately. Three more details in that section are worth a reader's attention: the instrument's own identity byte is written 0b1011010 where every other byte in the document is two binary nibbles; the manufacturer byte labelled "Oberheim ID" is 0000 0010, the same byte as the "Inquiry Reply" (midi_impl p. 12) label directly above it in the same table; and the global dump says it carries "50 nibbles (LS then MS) for 25 Global parameters" (p. 15) where the table on the page before lists twenty-seven.
NOT RECORDED, DELIBERATELY: parts. The instrument splits its keyboard and stays one instrument while it does - "The program is the same for both key ranges" (guide p. 17) - so Key Split, Key Split 2 and Key Split Note are controls below and not parts.