Subsystem Search

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.

Dreadbox Typhon MIDI implementation

The MIDI implementation of the Dreadbox Typhon: what it answers to, and the 98 controls it offers, on firmware 4.2.

At a glance

Firmware
This page describes firmware 4.2.
MIDI channel
Any one of 1 to 16.
Voices
Not recorded.
Note range
Not recorded.
Velocity
Received.
Aftertouch
Answered, of a kind its documents do not say.
Pitch bend
How far it bends is not recorded, and the range can be changed.
Program change
Received and sent, with 256 presets.
MIDI clock
Sent and received.
Start and stop
Received.
Control change
98 controls, in the tables below.
NRPN
Not recorded.
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("dreadbox/typhon") has loaded them.

Controllers

Control CC Values
MOD WHEEL
mod_wheel
1 0-127
CC2
cc2
2 0-127
SUSTAIN PEDAL
sustain_pedal
64 0-127

Oscillators

Control CC Values
WAVESHAPE
waveshape
70 0-127
VCO LEVEL
vco_level
76 0-127
OSC2 OFFSET
osc2_offset
77 0-127

Filter

Control CC Values
FILTER FM
filter_fm
4 0-127
VCO RESONANCE
vco_resonance
71 0-127
CUTOFF
cutoff
74 0-127
FILTER TRACKING
filter_tracking
75 0-127

Filter EG

Control CC Values
FILTER EG LEVEL
filter_eg_level
6 0-127
FILTER EG ATTACK
filter_eg_attack
8 0-127
FILTER EG DECAY
filter_eg_decay
9 0-127
FILTER EG SUSTAIN
filter_eg_sustain
10 0-127
FILTER EG RELEASE
filter_eg_release
11 0-127
FILTER EG TIME
filter_eg_time
12 0-127

Amplifier

Control CC Values
PRESET VOLUME
preset_volume
7 0-127

VCA EG

Control CC Values
VCA EG RELEASE
vca_eg_release
72 0-127
VCA EG ATTACK
vca_eg_attack
73 0-127
VCA EG TIME
vca_eg_time
78 0-127
VCA EG SUSTAIN
vca_eg_sustain
79 0-127
VCA EG DECAY
vca_eg_decay
80 0-127

Playing

Control CC Values
GLIDE
glide
5 0-127
GLIDE MODE
glide_mode
67 0-127
LEGATO
legato
68 0-127

Modulator M1

Control CC Values
M1 PARAMETER 1
m1_parameter_1
13 0-127
M1 PARAMETER 2
m1_parameter_2
14 0-127
M1 PARAMETER 3
m1_parameter_3
15 0-127
M1 MODE
m1_mode
16 0-127
M1 CV LEVEL
m1_cv_level
17 0-127
M1 CV1 LEVEL
m1_cv1_level
18 0-127
M1 CV2 LEVEL
m1_cv2_level
19 0-127
M1 WAVE LEVEL
m1_wave_level
20 0-127
M1 CUTOFF LEVEL
m1_cutoff_level
21 0-127
M1 VCA LEVEL
m1_vca_level
22 0-127
M1 FX1 LEVEL
m1_fx1_level
23 0-127
M1 FFM LEVEL
m1_ffm_level
24 0-127
M1 FX2 LEVEL
m1_fx2_level
25 0-127
M1 FX3 LEVEL
m1_fx3_level
26 0-127
M1 CUSTOM 1 LVL
m1_custom_1_lvl
27 0-127
M1 CUSTOM 2 LVL
m1_custom_2_lvl
28 0-127
M1 CUSTOM 3 LVL
m1_custom_3_lvl
29 0-127

Modulator M2

Control CC Values
M2 PARAMETER 1
m2_parameter_1
30 0-127
M2 PARAMETER 2
m2_parameter_2
31 0-127
M2 PARAMETER 3
m2_parameter_3
33 0-127
M2 MODE
m2_mode
34 0-127
M2 CV LEVEL
m2_cv_level
35 0-127
M2 CV1 LEVEL
m2_cv1_level
36 0-127
M2 CV2 LEVEL
m2_cv2_level
37 0-127
M2 WAVE LEVEL
m2_wave_level
38 0-127
M2 CUTOFF LEVEL
m2_cutoff_level
39 0-127
M2 VCA LEVEL
m2_vca_level
40 0-127
M2 FX1 LEVEL
m2_fx1_level
41 0-127
M2 FFM LEVEL
m2_ffm_level
42 0-127
M2 FX2 LEVEL
m2_fx2_level
43 0-127
M2 FX3 LEVEL
m2_fx3_level
44 0-127
M2 CUSTOM 1 LVL
m2_custom_1_lvl
45 0-127
M2 CUSTOM 2 LVL
m2_custom_2_lvl
46 0-127
M2 CUSTOM 3 LVL
m2_custom_3_lvl
47 0-127

Modulator M3

Control CC Values
M3 PARAMETER 1
m3_parameter_1
48 0-127
M3 PARAMETER 2
m3_parameter_2
49 0-127
M3 PARAMETER 3
m3_parameter_3
50 0-127
M3 MODE
m3_mode
51 0-127
M3 CV LEVEL
m3_cv_level
52 0-127
M3 CV1 LEVEL
m3_cv1_level
53 0-127
M3 CV2 LEVEL
m3_cv2_level
54 0-127
M3 WAVE LEVEL
m3_wave_level
55 0-127
M3 CUTOFF LEVEL
m3_cutoff_level
56 0-127
M3 VCA LEVEL
m3_vca_level
57 0-127
M3 FX1 LEVEL
m3_fx1_level
58 0-127
M3 FFM LEVEL
m3_ffm_level
59 0-127
M3 FX2 LEVEL
m3_fx2_level
60 0-127
M3 FX3 LEVEL
m3_fx3_level
61 0-127
M3 CUSTOM 1 LVL
m3_custom_1_lvl
62 0-127
M3 CUSTOM 2 LVL
m3_custom_2_lvl
63 0-127
M3 CUSTOM 3 LVL
m3_custom_3_lvl
65 0-127

FX1

Control CC Values
FX1 HP CUTOFF
fx1_hp_cutoff
81 0-127
FX1 HP RESONANCE
fx1_hp_resonance
82 0-127
FX1 PARAMETER 1
fx1_parameter_1
83 0-127
FX1 PARAMETER 2
fx1_parameter_2
84 0-127
FX1 MIX
fx1_mix
85 0-127
FX1 TYPE
fx1_type
86 0-127

FX2

Control CC Values
FX2 PARAMETER 1
fx2_parameter_1
87 0-127
FX2 PARAMETER 2
fx2_parameter_2
88 0-127
FX2 PARAMETER 3
fx2_parameter_3
89 0-127
FX2 FEED
fx2_feed
90 0-127
FX2 MIX
fx2_mix
91 0-127
FX2 TYPE
fx2_type
92 0-127

FX3

Control CC Values
FX3 PARAMETER 1
fx3_parameter_1
93 0-127
FX3 PARAMETER 2
fx3_parameter_2
94 0-127
FX3 FEED
fx3_feed
95 0-127
FX3 PARAMETER 4
fx3_parameter_4
96 0-127
FX3 MIX
fx3_mix
97 0-127
FX3 TYPE
fx3_type
98 0-127

Sequencer

Control CC Values
SEQ LENGTH
seq_length
99 0-127
SEQ DIVISION
seq_division
100 0-127
SEQ PROBABILITY
seq_probability
101 0-127
SEQ SWING
seq_swing
102 0-127

Where these facts come from

Source documents

How they were read

User's Manual, 24 pages, firmware 4.2 of April 2026. Section 11, "MIDI implementation" (pp. 23-24) is the whole of the controller map and the list of messages the instrument accepts. The settings that are not controllers are on printed p. 20, where the menu table gives the channel options, the master clock, the program change switches and the pitch wheel range, and printed pp. 21-22, where the channels, the clock and the pitch wheel are described in prose; program change appears there only in a note under the CC switch, which says that switch covers it too, and the PC IN and PC OUT switches have no prose. The preset count is printed p. 9, the note range printed p. 19, the sockets printed p. 24. Plus the product page, the support page and the notes for the one firmware release since the manual, each named below for what it settles.

THERE IS NO MIDI IMPLEMENTATION CHART IN THE CONVENTIONAL SENSE, and what stands in its place is a list with a claim in it: "Typhon can accept the following MIDI messages" (manual p. 23), followed by ten items - note on and off, note number, aftertouch, velocity, modulation wheel, pitch bend, MIDI CC, program changes, clock and transport messages. It is a list of what is received and says nothing about what is sent, which has to be got from the settings menu instead, where CC OUT, PC OUT and the master clock's Transmit are each a switch. mode is absent because nothing resembling a Basic Channel or Mode row exists to read it from.

THE PRINTED PAGE IS THE PAGE OF THE FILE, CHECKED ON EVERY PAGE THAT HAS ONE. 24 pages by pypdf and by PyMuPDF, which agree; file says 14, the sixteenth document in this library it has been wrong about. 22 of the 24 print their own number and every one of the 22 matches the file's, so the offset is zero and it was measured rather than assumed. The two without are the cover and the contents.

THE COLUMNS WERE READ DOWN AND THEN CHECKED BY ARITHMETIC, WHICH IS WHAT MAKES THIS MORE THAN A CAREFUL TRANSCRIPTION. Three things had to hold and all three do. First, the gaps are printed: a number that is not open is not left out, its row holds an ellipsis, so each column's printed numbers plus its ellipsis rows make one unbroken run and a label against the wrong number breaks that sum at once. Second, the three modulators carry identical parameters, so each should own a block of the same size - and they do, 17 numbers each, M1 at 13-29 with no gap, M2 at 30-47 stepping over 32, M3 at 48-65 stepping over 64. Third, those two gaps are numbers MIDI had already claimed: 32 is Bank Select LSB and 64 is the damper pedal, which this instrument opens under its own name as SUSTAIN PEDAL. A reading with a label one row out cannot produce three equal blocks whose gaps fall on exactly the numbers the standard reserves.

NINE OF THE OPEN NUMBERS CARRY THE MEANING MIDI GIVES THEM, which is the same check from the other direction: 1 is MOD WHEEL, 2 is CC2, 5 is GLIDE where MIDI has portamento time, 7 is PRESET VOLUME where MIDI has channel volume, 64 is SUSTAIN PEDAL, 71 is resonance, 72 and 73 are the amplifier's release and attack, and 74 is the cutoff. Three of the four gaps below 103 are reserved switches - 32, and 66 and 69, which MIDI gives to sostenuto and hold 2. The fourth gap, 3, is unexplained: MIDI leaves it undefined and so does this manual.

ONE LABEL LOOKS WRONG AND IS CARRIED AS PRINTED. CC 71 is listed as "VCO RESONANCE" (manual p. 23), where 71 is MIDI's own resonance controller and this instrument's panel calls the same thing a filter control: "Reson: Controls the amount of filter feedback (Q or resonance)" (p. 8). So the number is where it belongs and the word VCO is almost certainly a slip for the filter. It is recorded as the maker printed it, and doubted here, because a reader comparing a panel with a definition needs to find the maker's word in it.

THE LABELS KEEP THE LIST'S CAPITALS, AND THE CAPITALS ARE THE LIST'S AND NOT THE MAKER'S. Dreadbox sets this list in capitals while writing the same panel controls in mixed case in its prose - "Cutoff", "Reson", "Filter Time", "Amp Time" (p. 8). So the capitals are typography. They are kept anyway, because normalising them means choosing a capitalisation for 98 labels that no page of the document prints, and two definitions already here keep their makers' capitals for the same reason.

WHAT THE INSTRUMENT SENDS IS A SHORTER LIST THAN WHAT IT ACCEPTS, and notes are not on it. The menu offers "CC OUT Enable or Disable" (manual p. 20), "PC OUT Enable or Disable" (manual p. 20) and a master clock whose "Transmit" is "Enable or Disable" (manual p. 20), and the output channel setting is "Through or 1-16" (p. 20), where Through reads as MIDI thru rather than a channel, though no page says what it does. Nothing in 24 pages says the note sequencer sends its notes out, so velocity is recorded as received rather than as both, and transport as received rather than both - the transport messages are in the accept list and no switch sends them.

THE CC SWITCH ALSO GOVERNS PROGRAM CHANGE, WHICH IS WORTH KNOWING BEFORE DEBUGGING ONE. "CC - ENABLED / DISABLED. This will also include the program change messeges. Better to turn these off when not used, as some controllers send CC orders by default" (manual p. 22). So a player who turned controllers off to stop a noisy controller has turned program change off as well, and no page says so twice. The misspelling is the manual's.

AND THE MENU IS DESCRIBED TWICE, WITH THE TWO DESCRIPTIONS DISAGREEING. The table lists eleven items in its tenth row, "Global settings" (p. 20) - Midi channels, Master clock, Port Configuration, MIDI CC, MIDI PC, Control Handling, Preset Preview, Master Tune, Screensaver, Hardware check, Firmware version. The prose at "10.9 Global settings" (p. 22) lists six, renumbered, and leaves out Port Configuration, MIDI CC, MIDI PC, Preset Preview and Master Tune - the first three of which are the MIDI ones. The same pair disagrees about a word: the table's control handling offers "Catch or Jump" (p. 20) and the prose offers "JUMP" or "GRAB". Every MIDI value in this file is taken from the table, which is the fuller of the two, and the prose is cited only where it says something the table does not.

WHAT NOTES IT SOUNDS IS STATED AND STILL NOT RECORDED, BECAUSE THE DOCUMENT USES TWO OCTAVE CONVENTIONS. The range is given plainly - "the note range that the synth can reproduce (A0 to C8)" (manual p. 19) - and that is the right kind of statement, about the engine rather than about a key window, which is what the Blofeld's and the Iridium's note_range turned on. But a note name is not a number until the octave numbering is settled, and this page settles it the other way. Four lines above, the same paragraph calls middle C "the middle C note found on a keyboard controller (C3)" (p. 19), and middle C is MIDI note 60 - so C3 is 60, which puts A0 at 33 and C8 at 120. Read as the scientific pitch notation that A0 to C8 is the idiom of - it is exactly an 88-key piano's compass - the same two names are 21 and 108. The two readings are twelve semitones apart and the document supports both, so neither is recorded: a consumer drawing a keyboard from the wrong one would grey out an octave that sounds. Nothing else in the manual settles it; the sequencer's own "6-octave range of notes" (p. 17) is its octave slider's span and not the engine's.

NEITHER IS POLYPHONY, WHICH IS NEVER STATED AT ALL. The words monophonic, polyphonic, paraphonic and voice appear nowhere about this instrument in 24 pages - the one "polyphonic" is an effect, "Ensemble (a polyphonic chorus)" (p. 15). Two controls imply a single voice, GLIDE MODE and LEGATO, and the panel has one filter and one amplifier envelope; implication is not a statement, so polyphony is absent rather than set to 1.

NOR WHICH KIND OF AFTERTOUCH IT ANSWERS TO. The accept list says "Aftertouch" and the menu routes it to destinations, so the instrument plainly answers to it, but MIDI has two aftertouch messages and no page of this manual says which - the nearest it comes is the generic "Aftertouch is controlled by the amount of pressure applied to a key, and can be found on many synths" (p. 21), which is true of both. So the field says received, its word for an aftertouch whose kind is not published. Channel pressure is the likely answer, and that would be a reading of the instrument rather than of the document.

SYSTEM EXCLUSIVE IS LEFT UNSET FOR THE DRUMBRUTE IMPACT'S REASON. Something very like it exists - Dreadbox publishes a Preset Manager for both platforms and the manual says to "Manage and exchange presets with the freely provided software" (p. 3) - and no document names the message type that software uses. The accept list does not mention system exclusive, but it is a list of ten things rather than a claim to be exhaustive, so its silence is not a no. nrpn is absent on the same footing: the word appears nowhere in the manual.

THE PRODUCT PAGE CLAIMS A FULL IMPLEMENTATION AND IS WORTH NOTHING AS EVIDENCE. "Powered via USB with full MIDI and CC implementation through MIDI DIN5" (product_page) - and the manual it links to shows no system exclusive, no NRPN, no note output and an aftertouch whose kind is unstated. A claim to completeness is a claim like any other, which is the EP-133's lesson about a chapter that called itself a complete list and was short by two. The page also disagrees with the manual about the socket: "MIDI Din IN and OUT" (product_page) against "MIDI Din5 IN and OUT" (manual p. 24), which is the same fact written two ways rather than two facts.

ONE THING ABOUT GETTING THE DOCUMENTS AT ALL, because the next person will meet it. This maker's front end answers 403 to some requests and 200 to others, and the pattern is not what it first looks like. Every request was refused at first, under every user agent and every set of browser headers; forcing HTTP/1.1 then appeared to fix it and that was a coincidence, because minutes later the same URLs served over both protocol versions. What survives testing is narrower: /support/ refuses a user agent containing this project's own identification and serves a bare Mozilla/5.0, while the product page and the manual serve either. The site's robots.txt disallows only its shop logs, its form uploads and wp-admin, and permits /support/ explicitly. So the refusals are an over-broad front-end rule plus a rate limit, not a policy - and the thing to do with a 403 from a CDN is to wait and try once, rather than vary the request until something works and then write down whatever was being varied as the cause.

THE SECOND READING AGREED ON EVERY NUMBER AND FOUND TWO THINGS THE FIRST HAD NOT. A second reader was given the document and the warnings above, was not shown the first reading, and was required to use a different library. It reached the same 100 numbered entries, the same 23 absences and the same one irregular column, by a different route - taking each cell's position from the text matrix of every text-showing operator and rebuilding word spaces from measured gaps - and not one label differed, not even in its spacing.

What it added: the absences come in two kinds and only one is marked. Seven cells hold an ellipsis, which accounts for 3, 32, 66, 69, 103 and the two unnumberable rows after 120; but 104 to 119 are not marked at all - the second column of printed p. 24 ends at 103, the third begins at 120, and sixteen numbers simply never appear. So the ellipsis is not a complete account of what is closed, and a reader who took it for one would conclude this instrument opens 119 controllers.

And it named a trap the first reading had cleared by luck: a bare 4.2 sits inside the table's horizontal span, on the same line as the sentence introducing the list, marking which firmware opened these controllers - five more are on printed p. 20. The first reading's band cleared it by twelve points without meaning to. It would have refused rather than mis-read, because 4.2 parses as neither an entry nor an ellipsis, but a check that passes by accident is worth writing down. The running folio is the same shape of hazard from the other end: 23 printed at the foot of printed p. 23, in the third column's span, and a plausible-looking controller number.

ONE COLUMN OF THE LIST DOES NOT ADD UP, AND BOTH READINGS SAY SO. The last column reads 120. ALL SOUNDS OFF, an ellipsis, 123. ALL NOTES OFF, an ellipsis. One ellipsis to one number - which holds everywhere else in the list - would put 122 where 123 is printed. So either the first ellipsis stands for two numbers or the printed 123 is an error. Which cannot be told from the page, and nothing here rests on it: 120 and 123 are channel mode messages rather than controls, the corpus refuses them as controls, and neither appears in the block below.