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.
Moog Music Theremini MIDI implementation
The MIDI implementation of the Moog Music Theremini: what it answers to, and the 28 controls it offers, on firmware 1.1.
At a glance
- Firmware
- This page describes firmware 1.1.
- MIDI channel
- Not recorded.
- Voices
- Not recorded.
- Note range
- Not recorded.
- Velocity
- Not recorded.
- Aftertouch
- Not recorded.
- Pitch bend
- Not recorded.
- Program change
- Not recorded.
- MIDI clock
- Not recorded.
- Start and stop
- Not recorded.
- Control change
- Assigned by the player, apart from the 28 controls below, 15 of them with a fine half on a second controller number.
- NRPN
- Not recorded.
- 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("moog/theremini") has loaded them.
Wavetable
| Control | CC | Values |
|---|---|---|
Wave Selectionwave_selection |
90 | 0 sine, 1 triangle, 2 super_saw, 3 animoog_1, 4 animoog_2, 5 animoog_3, 6 etherwaveReceived, never sent |
Wavetable Scan Ratewavetable_scan_rate |
9 fine 41 |
0-127 Received, never sent |
Scan Amountscan_amount |
20 fine 52 |
0-127 Received, never sent |
Scan Positionscan_position |
21 fine 53 |
0-127 Received, never sent |
Pitch mod and vol mod
| Control | CC | Values |
|---|---|---|
Pitch Mod Scan Freq.pitch_mod_scan_freq |
22 fine 54 |
0-127 Received, never sent |
Vol Mod Scan Freq.vol_mod_scan_freq |
23 fine 55 |
0-127 Received, never sent |
Pitch Mod Scan Amountpitch_mod_scan_amount |
24 fine 56 |
0-127 Received, never sent |
Vol Mod Scan Amountvol_mod_scan_amount |
25 fine 57 |
0-127 Received, never sent |
Vol Mod Volumevol_mod_volume |
26 fine 58 |
0-127 Received, never sent |
Vol Mod Cutoffvol_mod_cutoff |
27 fine 59 |
0-127 Received, never sent |
Vol Mod Resonancevol_mod_resonance |
28 fine 60 |
0-127 Received, never sent |
Pitch Mod Resonancepitch_mod_resonance |
30 fine 62 |
0-127 Received, never sent |
Filter
| Control | CC | Values |
|---|---|---|
Filter Typefilter_type |
80 | 0 none, 1 two_pole_lowpass, 2 two_pole_bandpass, 3 two_pole_highpass, 4 two_pole_notch, 5 animoog_3, 6 etherwaveReceived, never sent |
Filter Cutoff Freqfilter_cutoff_freq |
74 | 0-127 Received, never sent |
Filter Resonancefilter_resonance |
71 | 0-127 Received, never sent |
Filter Pitch Trackingfilter_pitch_tracking |
29 fine 61 |
0-127 Received, never sent |
Delay
| Control | CC | Values |
|---|---|---|
Delay Timedelay_time |
12 fine 44 |
0-127 Received, never sent |
Delay Feedbackdelay_feedback |
14 fine 46 |
0-127 Received, never sent |
Effect Mixeffect_mix |
91 | 0-127 Received, never sent |
Pitch correction and range
| Control | CC | Values |
|---|---|---|
Pitch Correction Amountpitch_correction_amount |
84 | 0-127 Received, never sent |
Scalescale |
85 | 0 chromatic, 1 ionian, 2 dorian, 3 phrygian, 4 lydian, 5 mixolydian, 6 aeolian, 7 locrian, 8 major_blues, 9 minor_blues, 10 diminished, 11 major_penta, 12 minor_penta, 13 spanish, 14 gypsy, 15 arabian, 16 egyptian, 17 ryukyu, 18 wholetone, 19 major_3rd, 20 minor_3rd, 21 fifthReceived, never sent |
Root Noteroot_note |
86 | 0 c, 1 c_sharp, 2 d, 3 d_sharp, 4 e, 5 f, 6 f_sharp, 7 g, 8 g_sharp, 9 a, 10 a_sharp, 11 bReceived, never sent |
Low Notelow_note |
87 | 0-127 Received, never sent |
High Notehigh_note |
88 | 0-127 Received, never sent |
Preset and output
| Control | CC | Values |
|---|---|---|
Master Volumemaster_volume |
7 fine 39 |
0-127 Received, never sent |
Transposetranspose |
102 | 0-127 Received, never sent |
Preset Volumepreset_volume |
103 | 0-127 Received, never sent |
Save To Current Presetsave_to_current_preset |
119 | 0-127 Received, never sent |
Where these facts come from
Source documents
- Theremini User's Manual, dated 2014, its user manual, read on 11 October 2026 (the file read).
- Theremini Bedienungsanleitung, OS 1.1.X, dated 2020, its user manual, read on 11 October 2026 (the file read).
- Downloads | Moog Music, dated 1 October 2026, a web page, read on 1 October 2026 (the file read).
How they were read
TWO MANUALS, AND THEY ARE TWO EDITIONS. Moog's downloads list has four entries for the Theremini: an English and a German manual and two editor packages (downloads_list). The English manual is 36 sheets, made in 2014: "© 2014 Moog Music" (manual p. 36). The German one is 40 sheets, headed OS 1.1.X, with an imprint of 2020, "©2020 Moog Music, Inc." (german_manual p. 38), in a file made in 2025. The German describes what the English does not: a MIDI channel for each antenna's controller, an interval between controller messages, a note source for the control voltage output and the pages of an Advanced menu (german_manual pp. 16-18), a menu the English mentions only in one answer among its questions, the one about the display's contrast (manual p. 32). The two pictures of one screen show the difference: the English MIDI CC OUT has a number and a type for each antenna (manual p. 18), and the German has a channel beside each and an interval under them (german_manual p. 16). So the English describes an earlier state of the instrument than OS 1.1.X, though it prints no version, whatever the list calls it. The editor packages hold programs and no document, and were not run.
THE TABLE IS THE SAME IN BOTH. The English manual's MIDI DATA page is a table of CC NO., FUNCTION and EFFECTIVE VALUE RANGE, 28 rows (manual p. 33). The German manual's table has the same 28 numbers, with the functions' names in German or in the English words hyphenated the German way, one left exactly as the English prints it, the ranges' words in German, and every figure the same (german_manual p. 36). The German table cannot be checked by machine: its text layer holds other letters and figures than the page shows, as its cover's does, so it was read by eye, twice. Every number and label below is the English table's.
THE TABLE IS WRITTEN FOR WHAT ARRIVES, AND EVERY CONTROL BELOW IS direction: receives. Its note says what a value does when it is sent to the instrument: "For these controllers, sending 0 sets the parameter to fully negative, 64 sets it to 0, and 127 sets it to fully positive." (manual p. 33). The front panel's chapter says the same of the presets: "Presets can be edited, modified and saved via MIDI." (manual p. 16). The German manual says it too, "Via MIDI lassen sich Presets bearbeiten und speichern." (german_manual p. 14), and names the means: an editor that Moog offers for download, which also reaches "einige versteckte Funktionen des Theremini" (german_manual p. 14), some hidden functions. No page says which functions those are, whether they are among the 28, or by what messages the editor works. No page of either manual says that the instrument sends any of the 28.
TWO CONTROLLERS HAVE SETTINGS FOR SENDING, AND THE OWNER NUMBERS THEM. The MIDI CV SETUP menu has a page headed MIDI CC OUT, with a number from 0 to 127 for each antenna: "PITCH: Use the PRESETS knob to assign a MIDI CC number" (manual p. 18) "to the output of the Pitch antenna." (manual p. 18), and the same for the other, "to the output of the Volume antenna." (manual p. 18), each with "TYPE: Choose either 7-bit or 14-bit MIDI output." (manual p. 18). A number an owner assigns is not a property of the model, so neither is a control here. The page's picture of the screen shows Pitch: CC 20 and Volume: CC 2, each Type 7bit (manual p. 18), which is a picture of a setting and not a statement of the factory's; 20 is also the number the table gives Scan Amount. No page says what number carries the fine half of an antenna's 14-bit output: the sentence about fine halves, below, stands over the table and speaks of implemented controller numbers, and whether it covers a number an owner gives an antenna is not said. control_change IS learned: the word says there are numbers that are the owner's and that no file can list, whichever way they travel, and here those are the two the antennas send. It stands beside the 28 below, which the maker fixes and which are all received. Until 2026-10-13 the field was left unset, for want of a word that said a maker fixes what is received and leaves what is sent to the owner.
THE LATER EDITION GIVES EACH OF THE TWO A CHANNEL, AND NO PAGE GIVES ONE TO WHAT IS RECEIVED. The German manual adds a setting beside each number, "PITCH CC CH. (MIDI Kanal)" (german_manual p. 16) and "VOLUME CC CH. (MIDI Kanal)" (german_manual p. 16), each over (0 – 16), without saying what 0 does. It also adds an interval, in milliseconds, that thins the stream of controller messages: by its two rules a controller goes out no more often than once in the interval, and only when its value has changed, except that one unchanged for a second or longer is sent again (german_manual p. 16). Its picture of the screen shows the English picture's two numbers, Ch 1 for each antenna and Interval: 50ms. Neither manual names a channel on which the 28 are heard: the word channel is not in the English manual at all, and Kanal is on that one German page alone. So channels is not recorded.
FIFTEEN OF THE 28 HAVE A FINE HALF. "All implemented controller numbers 0 - 31 have corresponding LSB (fine) controls at locations 32 - 63." (manual p. 33). Fifteen rows are below 32: 7, 9, 12, 14 and 20 to 30. Each carries lsb, its own number plus 32, and no row of the table uses a number from 32 to 63 for anything else.
SOME PARAMETERS ARE SIGNED, ABOUT A CENTRE OF 64. The table's range column gives each parameter's span in its own units, -400% - 400% or -64 - 63 Semitones, and the sentence quoted above says how a controller's 0 to 127 covers a signed one. The spans are in comments beside the controls; the format's range is the controller's.
FOUR ROWS TAKE NAMED VALUES, each sent to a table on the next page by See Below: 22 scales, 12 root notes, 7 waveforms and 7 filter types (manual p. 34). They are choices below, each name against the value printed beside it. The last two filter types are printed as Animoog 3 and Etherwave, which are the last two waveforms' names, in both manuals. They are recorded as printed; what filters values 5 and 6 select is not said anywhere else.
TWO RANGES ARE PRINTED AS MIDI NOTES, AND NO NOTE MESSAGE IS NAMED. 87 and 88 set the lowest and the highest note the antenna's range covers, their ranges printed as Lowest MIDI Note and Highest MIDI Note (manual p. 33) and read here as note numbers: the setup menu's note range, "the range of notes that can be played by the Theremini." (manual p. 17). No page of either manual names a note-on or a note-off, received or sent, a program change, a pitch bend message or a clock. One loose end is the German manual's: its paragraph on the interval lists three controllers, "(Pitch, Volume oder Note)" (german_manual p. 16), where its page has settings for Pitch and Volume alone, and no page says what Note would send. Note is also a third source for its control voltage output (german_manual p. 17). The instrument is played by hand in the air, and what a sequencer can do to it by these documents is set its sound.
CONTROLLER 119 WRITES TO MEMORY. "Any Value Saves All Edits To Currently Selected Preset" (manual p. 33). There are 32 presets (manual p. 32).
SYSTEM EXCLUSIVE RENAMES A PRESET AND AN EFFECT. Two messages are printed byte for byte. The first carries a preset's name, "nn are the 13 ASCII characters in the name." (manual p. 35), with "Use UPPER CASE characters only!" (manual p. 35) under it; the second an effect's, "nn are the 13 ASCII characters in the effect name." (manual p. 35). Neither says which preset or which effect it renames. The German manual prints the same bytes (german_manual p. 36).
MIDI IS BY USB ALONE. "The Theremini provides a full-speed USB 2.0 Mini-B jack that allows MIDI data to be transmitted and received between the Theremini and a compatible computer, tablet, or MIDI device." (manual p. 22). The rear panel has no other MIDI socket: its connections are two audio outputs, a control voltage output, that jack, a lock slot, a power switch, a power jack and a ground terminal (manual pp. 21-22), and the German manual's list shows none but the USB port either (german_manual pp. 26-27).
NOT RECORDED:
- a channel, which no page gives for what is received;
control_change, for the reason above;- the two controllers the antennas send, and what they are set to from the factory;
- program change, clock and transport, none of them named;
- and anything of notes or voices.