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.

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 Selection
wave_selection
90 0 sine, 1 triangle, 2 super_saw, 3 animoog_1, 4 animoog_2, 5 animoog_3, 6 etherwave
Received, never sent
Wavetable Scan Rate
wavetable_scan_rate
9
fine 41
0-127
Received, never sent
Scan Amount
scan_amount
20
fine 52
0-127
Received, never sent
Scan Position
scan_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 Amount
pitch_mod_scan_amount
24
fine 56
0-127
Received, never sent
Vol Mod Scan Amount
vol_mod_scan_amount
25
fine 57
0-127
Received, never sent
Vol Mod Volume
vol_mod_volume
26
fine 58
0-127
Received, never sent
Vol Mod Cutoff
vol_mod_cutoff
27
fine 59
0-127
Received, never sent
Vol Mod Resonance
vol_mod_resonance
28
fine 60
0-127
Received, never sent
Pitch Mod Resonance
pitch_mod_resonance
30
fine 62
0-127
Received, never sent

Filter

Control CC Values
Filter Type
filter_type
80 0 none, 1 two_pole_lowpass, 2 two_pole_bandpass, 3 two_pole_highpass, 4 two_pole_notch, 5 animoog_3, 6 etherwave
Received, never sent
Filter Cutoff Freq
filter_cutoff_freq
74 0-127
Received, never sent
Filter Resonance
filter_resonance
71 0-127
Received, never sent
Filter Pitch Tracking
filter_pitch_tracking
29
fine 61
0-127
Received, never sent

Delay

Control CC Values
Delay Time
delay_time
12
fine 44
0-127
Received, never sent
Delay Feedback
delay_feedback
14
fine 46
0-127
Received, never sent
Effect Mix
effect_mix
91 0-127
Received, never sent

Pitch correction and range

Control CC Values
Pitch Correction Amount
pitch_correction_amount
84 0-127
Received, never sent
Scale
scale
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 fifth
Received, never sent
Root Note
root_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 b
Received, never sent
Low Note
low_note
87 0-127
Received, never sent
High Note
high_note
88 0-127
Received, never sent

Preset and output

Control CC Values
Master Volume
master_volume
7
fine 39
0-127
Received, never sent
Transpose
transpose
102 0-127
Received, never sent
Preset Volume
preset_volume
103 0-127
Received, never sent
Save To Current Preset
save_to_current_preset
119 0-127
Received, never sent

Where these facts come from

Source documents

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: