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.
UDO Audio Super 6 MIDI implementation
The MIDI implementation of the UDO Audio Super 6: what it answers to, and the 86 controls it offers.
At a glance
- Firmware
- Not recorded.
- MIDI channel
- 1 to 16.
- MPE
- Received: its voices are spread across its MIDI channels, a note to each.
- Voices
- 12, or 6 as set on the instrument.
- Note range
- Not recorded.
- Velocity
- Received. Release velocity is received.
- Aftertouch
- Channel pressure and polyphonic, each answered. It sends aftertouch too.
- Pitch bend
- 12 semitones, and the range can be changed.
- Program change
- Received and sent, with 128 presets.
- MIDI clock
- Sent and received.
- Start and stop
- Sent and received.
- Control change
- 81 controls, in the tables below.
- NRPN
- Supported. 46 of the controls below have one.
- System exclusive
- Not recorded.
Controls
In the order the definition gives them, by group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("udo_audio/super_6") has loaded them.
Global
| Control | CC | NRPN | Values |
|---|---|---|---|
MIDI Channelmidi_channel |
2051 MSB 16, LSB 3 |
0-14 midi_channel_1, 15-127 midi_channel_16 |
|
MIDI Clock Transmitmidi_clock_transmit |
2052 MSB 16, LSB 4 |
0 off, 1-127 on |
|
MIDI Clock Receivemidi_clock_receive |
2053 MSB 16, LSB 5 |
0 off, 1-127 on |
|
MIDI Program Change Transmitmidi_program_change_transmit |
2055 MSB 16, LSB 7 |
0 off, 1-127 on |
|
MIDI Program Change Receivemidi_program_change_receive |
2056 MSB 16, LSB 8 |
0 off, 1-127 on |
Without a group
| Control | CC | NRPN | Values |
|---|---|---|---|
Bank Selectbank_select |
0 | 0-127 | |
Modulation Levermodulation_lever |
1 | 0-127 | |
Tempotempo |
3 | 1027 MSB 8, LSB 3 |
0-127, or 0-16383 by NRPN |
Foot Controllerfoot_controller |
4 | 0-127 | |
Portamento Timeportamento_time |
5 | 1029 MSB 8, LSB 5 |
0-127, or 0-16383 by NRPN |
VCA Envelope Levelvca_envelope_level |
7 | 1031 MSB 8, LSB 7 |
0-127, or 0-16383 by NRPN |
Expressionexpression |
11 | 0-127 | |
Delay Timedelay_time |
12 | 1036 MSB 8, LSB 12 |
0-127, or 0-16383 by NRPN |
Delay Feedbackdelay_feedback |
13 | 1037 MSB 8, LSB 13 |
0-127, or 0-16383 by NRPN |
Sequence Loadsequence_load |
14 | 0-127 | |
LFO 1 Waveform/HF Modelfo_1_waveform_hf_mode |
16 | 0-20 triangle, 21-42 square, 43-63 random, 64-84 saw, 85-106 hf, 107-127 hf_trk |
|
LFO 1 Ratelfo_1_rate |
17 | 1041 MSB 8, LSB 17 |
0-127, or 0-16383 by NRPN |
LFO 1 Delaylfo_1_delay |
18 | 1042 MSB 8, LSB 18 |
0-127, or 0-16383 by NRPN |
LFO 1 LR Phaselfo_1_lr_phase |
19 | 1043 MSB 8, LSB 19 |
0-127, or 0-16383 by NRPN |
LFO 1 Modelfo_1_mode |
20 | 0-42 free_norm, 43-84 once_dds_1, 85-127 reset_dds_2 |
|
DDS LFO 1 Amountdds_lfo_1_amount |
21 | 1045 MSB 8, LSB 21 |
0-127, or 0-16383 by NRPN |
DDS Env 1 Amountdds_env_1_amount |
22 | 1046 MSB 8, LSB 22 |
0-127, or 0-16383 by NRPN |
DDS Modulator Destinationdds_modulator_destination |
23 | 0-42 dds_1, 43-84 both, 85-127 dds_2 |
|
Super Modesuper_mode |
24 | 0-42 off, 43-84 n1_2, 85-127 on |
|
PW/Detunepw_detune |
25 | 1049 MSB 8, LSB 25 |
0-127, or 0-16383 by NRPN |
PWM/SWMpwm_swm |
26 | 1050 MSB 8, LSB 26 |
0-127, or 0-16383 by NRPN |
PWM/SWM Sourcepwm_swm_source |
27 | 0-42 lfo_1, 43-84 both, 85-127 env_1 |
|
Cross Modulationcross_modulation |
28 | 1052 MSB 8, LSB 28 |
0-127, or 0-16383 by NRPN |
DDS 1 Waveformdds_1_waveform |
29 | 0-20 sine, 21-42 saw, 43-63 square, 64-84 triangle, 85-106 noise, 107-127 alternative_waveform |
|
DDS 1 Rangedds_1_range |
30 | 0-20 n64, 21-42 n32, 43-63 n16, 64-84 n8, 85-106 n4, 107-127 n2 |
|
DDS 2 Waveformdds_2_waveform |
31 | 0-20 sine, 21-42 saw, 43-63 square, 64-84 triangle, 85-106 noise, 107-127 pulse |
|
Envelope 1 Decay Holdenvelope_1_decay_hold |
32 | 1056 MSB 8, LSB 32 |
0-127, or 0-16383 by NRPN |
Envelope 2 Decay Holdenvelope_2_decay_hold |
33 | 1057 MSB 8, LSB 33 |
0-127, or 0-16383 by NRPN |
DDS 2 Rangedds_2_range |
34 | 0-20 lfo, 21-42 n32, 43-63 n16, 64-84 n8, 85-106 n4, 107-127 n2 |
|
DDS 2 Tunedds_2_tune |
35 | 1059 MSB 8, LSB 35 |
0-127, or 0-16383 by NRPN |
DDS 2 Modedds_2_mode |
36 | 0-42 norm, 43-84 x_fade_sub_osc, 85-127 sync_audio_in |
|
Oscillator Mix/Split Pointoscillator_mix_split_point |
37 | 1061 MSB 8, LSB 37 |
0-127, or 0-16383 by NRPN |
VCF HPF Modevcf_hpf_mode |
40 | 0-42 off, 43-84 fix, 85-127 trk |
|
VCF Drivevcf_drive |
41 | 0-42 off, 43-84 n1, 85-127 n2 |
|
VCF Keytrackvcf_keytrack |
43 | 0-42 off, 43-84 n1_2, 85-127 on |
|
VCF Envelope Sourcevcf_envelope_source |
44 | 0-42 env_1, 43-84 n1_2, 85-127 env_2 |
|
VCF Envelope Amountvcf_envelope_amount |
45 | 1069 MSB 8, LSB 45 |
0-127, or 0-16383 by NRPN |
VCF LFO 1 Amountvcf_lfo_1_amount |
46 | 1070 MSB 8, LSB 46 |
0-127, or 0-16383 by NRPN |
VCF DDS 2 Amountvcf_dds_2_amount |
47 | 1071 MSB 8, LSB 47 |
0-127, or 0-16383 by NRPN |
VCA Dynamicsvca_dynamics |
48 | 0-42 off, 43-84 n1_2, 85-127 on |
|
VCA Envelope Modevca_envelope_mode |
49 | 0-42 env_2, 43-84 fixed_env_1, 85-127 fixed_env_2 |
|
Envelope 1 Modeenvelope_1_mode |
50 | 0-42 normal, 43-84 inverted, 85-127 loop |
|
Envelope 1 Keytrackenvelope_1_keytrack |
51 | 0-42 off, 43-84 n1_2, 85-127 on |
|
Envelope 1 Attack Holdenvelope_1_attack_hold |
52 | 1076 MSB 8, LSB 52 |
0-127, or 0-16383 by NRPN |
Envelope 1 Attackenvelope_1_attack |
53 | 1077 MSB 8, LSB 53 |
0-127, or 0-16383 by NRPN |
Envelope 1 Decayenvelope_1_decay |
54 | 1078 MSB 8, LSB 54 |
0-127, or 0-16383 by NRPN |
Envelope 1 Sustainenvelope_1_sustain |
55 | 1079 MSB 8, LSB 55 |
0-127, or 0-16383 by NRPN |
Envelope 1 Releaseenvelope_1_release |
56 | 1080 MSB 8, LSB 56 |
0-127, or 0-16383 by NRPN |
Envelope 2 Decayenvelope_2_decay |
57 | 1081 MSB 8, LSB 57 |
0-127, or 0-16383 by NRPN |
Envelope 2 Sustainenvelope_2_sustain |
58 | 1082 MSB 8, LSB 58 |
0-127, or 0-16383 by NRPN |
Manual Modemanual_mode |
59 | 0-63 off, 64-127 on |
|
LFO 2 Trigger Sourcelfo_2_trigger_source |
60 | 0-42 trig, 43-84 at_trig, 85-127 on |
|
Performance Control Destinationperformance_control_destination |
61 | 0-42 dds_1, 43-84 n1_2, 85-127 dds_2 |
|
LFO 2 Ratelfo_2_rate |
62 | 1086 MSB 8, LSB 62 |
0-127, or 0-16383 by NRPN |
LFO 2 Delaylfo_2_delay |
63 | 1087 MSB 8, LSB 63 |
0-127, or 0-16383 by NRPN |
Sustain Pedalsustain_pedal |
64 | 0-63 off, 64-127 on |
|
Octave Selectoctave_select |
67 | 0-25 n2, 26-50 n1, 51-127 n0 |
|
Delay Freezedelay_freeze |
69 | 0-63 off, 64-127 on |
|
DDS LFO 2 Amountdds_lfo_2_amount |
70 | 1094 MSB 8, LSB 70 |
0-127, or 0-16383 by NRPN |
VCF Resonancevcf_resonance |
71 | 1095 MSB 8, LSB 71 |
0-127, or 0-16383 by NRPN |
Envelope 2 Releaseenvelope_2_release |
72 | 1096 MSB 8, LSB 72 |
0-127, or 0-16383 by NRPN |
Envelope 2 Attackenvelope_2_attack |
73 | 1097 MSB 8, LSB 73 |
0-127, or 0-16383 by NRPN |
VCF Cutoff Frequencyvcf_cutoff_frequency |
74 | 1098 MSB 8, LSB 74 |
0-127, or 0-16383 by NRPN |
VCF LFO 2 Amountvcf_lfo_2_amount |
75 | 1099 MSB 8, LSB 75 |
0-127, or 0-16383 by NRPN |
DDS Pitch Bend Amountdds_pitch_bend_amount |
76 | 1100 MSB 8, LSB 76 |
0-127, or 0-16383 by NRPN |
VCF Pitch Bend Amountvcf_pitch_bend_amount |
77 | 1101 MSB 8, LSB 77 |
0-127, or 0-16383 by NRPN |
Voice Assign Modevoice_assign_mode |
78 | 0-25 poly_2, 26-50 poly_1, 51-76 unison, 77-101 legato, 102-127 solo |
|
Unison Sizeunison_size |
79 | 0-25 n3_voices, 26-50 n6_voices, 51-76 n6_voices_octave, 77-101 n6_voices_octave_fifth, 102-127 n6_voices_major_chord |
|
Binaural Modebinaural_mode |
80 | 0-63 off, 64-127 on |
|
Clock Syncclock_sync |
81 | 0-63 off, 64-127 on |
|
Arpeggiator Rangearpeggiator_range |
82 | 0-31 n1_octave, 32-63 n2_octaves, 64-95 n3_octaves, 96-127 n4_octaves |
|
Arpeggiator/Sequencer Swingarpeggiator_sequencer_swing |
83 | 0-25 swing_0, 26-50 swing_1, 51-76 swing_2, 77-101 swing_3, 102-127 swing_4 |
|
Arpeggiator/Sequencer External Clockarpeggiator_sequencer_external_clock |
84 | 0-63 off, 64-127 on |
|
Arpeggiator/Sequencer Modearpeggiator_sequencer_mode |
85 | 0-25 up, 26-50 down, 51-76 up_down, 77-101 random, 102-127 sequencer |
|
Arpeggiator/Sequencer On/Offarpeggiator_sequencer_on_off |
86 | 0-63 off, 64-127 on |
|
Arpeggiator/Sequencer Holdarpeggiator_sequencer_hold |
87 | 0-63 off, 64-127 on |
|
Delay Leveldelay_level |
91 | 1115 MSB 8, LSB 91 |
0-127, or 0-16383 by NRPN |
VCA LFO 1 Amountvca_lfo_1_amount |
92 | 1116 MSB 8, LSB 92 |
0-127, or 0-16383 by NRPN |
Choruschorus |
93 | 0-31 off, 32-63 chorus_1, 64-95 chorus_2, 96-127 chorus_1_2 |
|
Driftdrift |
94 | 1118 MSB 8, LSB 94 |
0-127, or 0-16383 by NRPN |
HPF Fix Cutoff Frequencyhpf_fix_cutoff_frequency |
95 | 1119 MSB 8, LSB 95 |
0-127, or 0-16383 by NRPN |
Where these facts come from
Source documents
- UDO Super 6 Owner's Manual, 1.4, dated 24 May 2024, its user manual, read on 4 October 2026 (the file read).
- Super 6 | Support & Downloads, its download page, read on 4 October 2026.
How they were read
Owner's Manual, 140 pages, the PDF's own title Super_6_Manual_1.4: the MIDI Specifications chapter at pp. 120-132, which is where every number here comes from; the connections for both models at pp. 25-26; the patches at p. 16; the bender at pp. 70 and 77; the voice modes at pp. 54 and 93; the global settings at p. 103; and MPE support at pp. 105-106. And UDO's Super 6 support page, for the firmware on offer.
THE FRONT MATTER IS NUMBERED IN ROMAN NUMERALS AND THE BODY IN ARABIC, WHICH IS A TRAP THE CITATION GATE CANNOT CATCH. Sheets 1 to 13 print x, xi, xii, xiii; sheet 14 prints 14 and every sheet after it prints its own number. So page_offset is 0 for everything this file cites - and a citation to p. 12 would pass the gate while being wrong, because the arithmetic lands on sheet 12 and the text is there, under a folio the document calls xii. The clearest statement of the voice count is on that sheet and is not cited for exactly that reason; two others on numbered pages are cited instead.
THE MIDI SPECIFICATIONS CHAPTER IS IN FIVE TABLES AND THREE SHAPES:
p. 120 System Real-Time Messages, and Channel Messages - a direction for each
pp. 121-127 Continuous Controller Messages - CC # | Value Range | Parameter Name
pp. 127-128 Registered Parameter Numbers
p. 128 Non-Registered Parameter Numbers, Global Parameters
pp. 129-132 Non-Registered Parameter Numbers, Patch-Related Parameters
THE CONTROLLER TABLE GIVES EVERY NUMBER FROM 0 TO 127 A ROW, whether it does anything or not, with - in the other two columns where it does not. That is asserted rather than noticed, and it is what makes this table complete rather than selective: 97 of its 128 rows name a parameter and 31 are blank, and a blank row is the maker saying nothing rather than the reading losing something.
THE NRPN NUMBER IS PRINTED TWICE AND THE TWO FORMS CHECK EACH OTHER. A row gives the number in decimal and then its MSB and LSB in hexadecimal - 1027, 08H, 03H - and 8 x 128 + 3 is 1027, which is how this format holds an NRPN. All 46 rows that carry a pair agree, which is a free assertion and the one the PRO-800's hexadecimal column taught one rank earlier.
AND THE PATCH-RELATED NRPN IS THE CONTROLLER NUMBER PLUS 1024. Measured, not assumed: of the 41 patch-related NRPNs that name a parameter, 40 name the same parameter as controller N minus 1024, and the pairing below is made on those names rather than on the arithmetic. The 41st is joined anyway - see below - so 41 controls carry both numbers.
AND THE NRPN BLOCK IS A MIRROR OF THE CONTINUOUS PARAMETERS ONLY, which the second reader put more sharply than the arithmetic does: not one of the 40 controls whose value bands are named has an NRPN at all - every one of them is a blank row in the NRPN table. So the pattern is not that every parameter comes twice, but that every continuous patch parameter does, at two resolutions, and the switched ones, which have nothing to gain from fourteen bits, are left out of it. That is an observation about every row printed and not a rule the maker states.
THE ONE PAIR THE TWO TABLES NAME DIFFERENTLY IS NRPN 1119 AND CONTROLLER 95. The controller table says HPF Fix Cutoff Frequency and the NRPN table says HPF Cutoff Frequency - the word Fix in one and not the other. They are joined on three grounds: it is the only unmatched name on either side, the arithmetic puts it exactly where the other forty sit, and one name contains the other. The label below is the controller table's, because that is the table the control's number comes from.
THE VALUE RANGE COLUMN IS REAL, which most are not. Most rows read 0-127 or 0-16383, and 40 of the controls below have their bands named - 0 = Triangle, 21 = Square, 43 = Random, 64 = Saw, 85 = HF, 107 = HF TRK - which is what values holds, each band by its lowest number. A row reading a plain range is continuous and carries nothing.
SIXTEEN OF THE 97 NAMED CONTROLLER ROWS ARE THE PROTOCOL AND NOT THIS INSTRUMENT, and this table is unusual in listing them at all: controller 6 is Data Entry MSB and 38 is LSB for Control 6 (Data Entry), 96 and 97 the data increment and decrement, 98 and 99 the NRPN selects, 100 and 101 the RPN selects, and 120 to 127 the channel mode messages, which the validator refuses outright. The maker is being complete rather than claiming them - which is the opposite of the instrument one rank earlier, where the maker put its own MIDI track solos on 120 to 127. Bank Select on controller 0 is kept, as two other definitions here keep theirs. That leaves 81 controls off the table, plus the five global settings below.
AND THE SECOND READER FOUND THAT 38 BELONGED IN THAT LIST WHEN I HAD KEPT IT. The guide beside this corpus says to leave 6 and 38 out where they are only how an NRPN's value travels - and this maker names 38 in as many words - so keeping it was keeping half of a pair. The two readings agreed about the table and a second reader is for more than the numbers.
THE FIVE GLOBAL NRPNs ARE CONTROLS AND THAT IS A JUDGEMENT. They are this instrument's own MIDI settings - its channel, its clock transmit and receive, its program change transmit and receive - addressable over NRPN like anything else, and 2054 is absent from an otherwise contiguous run of 2051 to 2056, which the maker does not account for. Two of the five are the same facts midi.clock and midi.program_change record from the other side, which is not a contradiction: a field says what the instrument does and a control says how to change it from outside.
EVERY NUMBER WAS READ TWICE AND THE TWO READINGS AGREE. The second reading, made without sight of the first, used a different library's layout mode on a different interpreter and then checked itself against four of the sheets rendered and read by eye.
AND THE GRID HAD TO BE BOUNDED TWICE OVER, WHICH IS THE READING LESSON HERE. Every sheet of this manual carries a navigation sidebar down its left edge with its own ruled lines, so the grid is bounded by x - including the sidebar put the table's first column inside a cell forty points wide. And printed p. 127 holds the last ten rows of the controller table and the start of the Registered Parameter Numbers table, which has five columns where the controller table has three, so the grid is bounded by height as well: without that, controllers 118 to 127 were silently lost. A third bound was needed because the sheet the controller table opens on draws its heading row's cells differently from its data rows, adding two column edges that belong to nothing - so a column edge is one that recurs on many rows, measured at 21 to 52 times each against the spurious pair's once.
WHAT THE MESSAGE TABLES SAY, AND THEY SAY IT WITH DIRECTIONS. MIDI Timing Clock, Start and Stop are all Yes in both columns (manual p. 120); so are Note On, Note Off, Channel Pressure and Pitch Bend. Polyphonic Key Pressure is No transmitted and Yes received - it answers to polyphonic pressure and never sends it. Control Change and Program Change both read "See Global Settings" (manual p. 120), which is where their switches are.
CONTINUE IS NOT IN THE TABLE AT ALL. Start and Stop are there and Continue is not listed - which is an absence rather than a No, and is recorded as one. The S-1 in this corpus has Continue marked x in both columns, which is the maker saying so; this is the maker not saying.
AND THE QUOTATION GATE CAUGHT TWO SENTENCES THIS FILE HAD WRONG, WHICH IS WORTH RECORDING AGAINST THE METHOD THAT PRODUCED THEM. Reading a page by taking its words and sorting them by position - which is how the sidebar was dropped while this instrument was being read - puts a run set in a different style where its coordinates fall rather than where it is read. On p. 105 that turned "set the DYNAMICS switch in the VCA section to either 1/2 or ON." (manual p. 105) into set the switch in the VCA section to either DYNAMICS 1/2 ON, because DYNAMICS, 1/2 and ON are styled differently from the words around them. Both velocity sentences were quoted that way and the gate refused both. Reading order is what get_text() gives and what a quotation needs; sorting by position is for a table.
EVERY QUOTATION IN THIS FILE'S PROSE CARRIES A LOCATOR, AUDITED BY PAIRING THE QUOTE MARKS: 25 quotations, 25 locators - 24 citing a page and one naming the unpaginated support page - with the six remaining pairs being field values. The gate checks all 25 and none is under the twelve characters it requires, so the two counts reconcile exactly.
NOT RECORDED: system exclusive, and the mode. The words System Exclusive and SysEx appear nowhere in these 140 pages - but system exclusive is neither a channel message nor a system real-time message, so the two tables that do enumerate would not have listed it either. So its absence here is a silence and not an enumeration, and nothing is recorded. With no implementation chart in the classic form there is no omni or poly mode row to read, though controllers 124 to 127 are listed as the protocol's own.
ALSO NOT RECORDED: the note range, which no page states.