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 Muse MIDI implementation
The MIDI implementation of the Moog Music Muse: what it answers to, and the 102 controls it offers, on firmware 1.4.0.
At a glance
- Firmware
- This page describes firmware 1.4.0.
- MIDI channel
- Any one of 1 to 16.
- Parts
- Timbre, 2 of them: each on a MIDI channel of its own, taking notes and controls.
- Voices
- 8, or 1 as set on the instrument, shared by the parts that play notes.
- Note range
- Not recorded.
- Velocity
- Sent. Whether it is received is not recorded.
- Aftertouch
- Sent. Whether it answers to any is not recorded.
- Pitch bend
- 7 semitones, and the range can be changed.
- Program change
- Received and sent, with 256 presets.
- MIDI clock
- Sent and received.
- Start and stop
- Sent and received.
- Control change
- 102 controls, in the tables below.
- NRPN
- None.
- System exclusive
- Not recorded.
Controls
In the order the definition gives them, by part and group. Under each control is the name a program calls it by, once pymidiinstrumentdefs.load("moog/muse") has loaded them.
Timbre
Controllers
| Control | CC | Values |
|---|---|---|
Mod Wheelmod_wheel |
1 | 0-127 |
Expressionexpression |
11 | 0-127 |
Sustain Pedalsustain_pedal |
64 | 0-63 off, 64-127 on |
Holdhold |
71 | 0-63 off, 64-127 on |
Glide
| Control | CC | Values |
|---|---|---|
Glide Timeglide_time |
5 | 0-127 |
LFO 1+2
| Control | CC | Values |
|---|---|---|
LFO 1 Ratelfo_1_rate |
12 | 0-127 |
LFO 1 Amountlfo_1_amount |
13 | 0-127 |
LFO 1 Waveformlfo_1_waveform |
14 | 0-24 triangle, 25-49 saw, 50-74 square, 75-99 random, 100-127 user_wave |
LFO 2 Ratelfo_2_rate |
15 | 0-127 |
LFO 2 Amountlfo_2_amount |
16 | 0-127 |
LFO 2 Waveformlfo_2_waveform |
17 | 0-24 triangle, 25-49 saw, 50-74 square, 75-99 random, 100-127 user_wave |
Pitch LFO
| Control | CC | Values |
|---|---|---|
Pitch LFO Ratepitch_lfo_rate |
18 | 0-127 |
Pitch LFO Shapepitch_lfo_shape |
19 | 0-127 |
Pitch LFO Amountpitch_lfo_amount |
20 | 0-127 |
Pitch LFO OSC 1pitch_lfo_osc_1 |
21 | 0-63 off, 64-127 on |
Pitch LFO OSC 2pitch_lfo_osc_2 |
22 | 0-63 off, 64-127 on |
Pitch LFO Mod Oscpitch_lfo_mod_osc |
23 | 0-63 off, 64-127 on |
Pitch LFO Detunepitch_lfo_detune |
24 | 0-63 off, 64-127 on |
Modulation oscillator
| Control | CC | Values |
|---|---|---|
Modulation Oscillator Frequencymodulation_oscillator_frequency |
25 | 0-127 |
Modulation Oscillator Audiomodulation_oscillator_audio |
26 | 0-63 off, 64-127 on |
Modulation Oscillator KB Trackmodulation_oscillator_kb_track |
27 | 0-63 off, 64-127 on |
Modulation Oscillator Waveformmodulation_oscillator_waveform |
28 | 0-24 sine, 25-49 sawtooth, 50-74 ramp, 75-99 square, 100-127 noise |
Modulation Oscillator KB Resetmodulation_oscillator_kb_reset |
29 | 0-63 off, 64-127 on |
Modulation Oscillator Unipolarmodulation_oscillator_unipolar |
30 | 0-63 off, 64-127 on |
Modulation Oscillator Pitch Amountmodulation_oscillator_pitch_amount |
31 | 0-127 |
Modulation Oscillator Pitch OSC 1modulation_oscillator_pitch_osc_1 |
33 | 0-127 |
Modulation Oscillator Pitch OSC 2modulation_oscillator_pitch_osc_2 |
34 | 0-127 |
Modulation Oscillator PWM Amountmodulation_oscillator_pwm_amount |
35 | 0-127 |
Modulation Oscillator PWM OSC 1modulation_oscillator_pwm_osc_1 |
36 | 0-127 |
Modulation Oscillator PWM OSC 2modulation_oscillator_pwm_osc_2 |
37 | 0-127 |
Modulation Oscillator Filter Amountmodulation_oscillator_filter_amount |
39 | 0-127 |
Modulation Oscillator Filter 1modulation_oscillator_filter_1 |
40 | 0-127 |
Modulation Oscillator Filter 2modulation_oscillator_filter_2 |
41 | 0-127 |
Modulation Oscillator VCA Amountmodulation_oscillator_vca_amount |
42 | 0-127 |
Modulation Oscillator VCA PANmodulation_oscillator_vca_pan |
43 | 0-127 |
Oscillators
| Control | CC | Values |
|---|---|---|
Oscillator 1 Octaveoscillator_1_octave |
44 | 0-31 ft_16, 32-63 ft_8, 64-95 ft_4, 96-127 ft_2 |
Oscillator 1 Frequencyoscillator_1_frequency |
45 | 0-127 |
Oscillator 1 Tri/Saw Mixoscillator_1_tri_saw_mix |
46 | 0-127 |
Oscillator 1 PWoscillator_1_pw |
47 | 0-127 |
Oscillator 1 Wave Mixoscillator_1_wave_mix |
48 | 0-127 |
Oscillator 2 Octaveoscillator_2_octave |
49 | 0-31 ft_16, 32-63 ft_8, 64-95 ft_4, 96-127 ft_2 |
Oscillator 2 Frequencyoscillator_2_frequency |
50 | 0-127 |
Oscillator 2 Tri/Saw Mixoscillator_2_tri_saw_mix |
51 | 0-127 |
Oscillator 2 PWoscillator_2_pw |
52 | 0-127 |
Oscillator 2 Wave Mixoscillator_2_wave_mix |
53 | 0-127 |
Oscillator 2>1 SYNCoscillator_2_to_1_sync |
54 | 0-63 off, 64-127 on |
Oscillator 2>1 FMoscillator_2_to_1_fm |
55 | 0-63 off, 64-127 on |
Oscillator 1>2 FMoscillator_1_to_2_fm |
56 | 0-63 off, 64-127 on |
FM Amountfm_amount |
57 | 0-127 |
Mixer
| Control | CC | Values |
|---|---|---|
Oscillator 1 Leveloscillator_1_level |
58 | 0-127 |
Oscillator 2 Leveloscillator_2_level |
59 | 0-127 |
Ring Mod Levelring_mod_level |
60 | 0-127 |
Modulation Oscillator Levelmodulation_oscillator_level |
61 | 0-127 |
Noise Levelnoise_level |
62 | 0-127 |
Clipping Levelclipping_level |
65 | 0-127 |
Filters
| Control | CC | Values |
|---|---|---|
Filter 1 High Passfilter_1_high_pass |
66 | 0-127 |
Filter 1 Cutofffilter_1_cutoff |
67 | 0-127 |
Filter 1 Resonancefilter_1_resonance |
68 | 0-127 |
Filter 1 Envelope Amountfilter_1_envelope_amount |
69 | 0-127 |
Filter 1 KB Trackingfilter_1_kb_tracking |
70 | 0-42 off, 43-84 half, 85-127 full |
Filter 2 Frequencyfilter_2_frequency |
72 | 0-127 |
Filter 2 Resonancefilter_2_resonance |
73 | 0-127 |
Filter 2 Envelope Amountfilter_2_envelope_amount |
75 | 0-127 |
Filter 2 KB Trackingfilter_2_kb_tracking |
76 | 0-42 off, 43-84 half, 85-127 full |
Link Filterslink_filters |
77 | 0-63 off, 64-127 on |
Filters Orderfilters_order |
78 | 0-42 ser, 43-84 str, 85-127 par |
Filter envelope
| Control | CC | Values |
|---|---|---|
Filter Env Attackfilter_env_attack |
79 | 0-127 |
Filter Env Decayfilter_env_decay |
80 | 0-127 |
Filter Env Sustainfilter_env_sustain |
81 | 0-127 |
Filter Env Releasefilter_env_release |
82 | 0-127 |
Filter Env Loopfilter_env_loop |
83 | 0-63 off, 64-127 on |
Filter Env Velocityfilter_env_velocity |
85 | 0-63 off, 64-127 on |
VCA envelope
| Control | CC | Values |
|---|---|---|
VCA Env Attackvca_env_attack |
86 | 0-127 |
VCA Env Decayvca_env_decay |
87 | 0-127 |
VCA Env Sustainvca_env_sustain |
88 | 0-127 |
VCA Env Releasevca_env_release |
89 | 0-127 |
VCA Env Loopvca_env_loop |
90 | 0-63 off, 64-127 on |
VCA Env Velocityvca_env_velocity |
91 | 0-63 off, 64-127 on |
VCA
| Control | CC | Values |
|---|---|---|
Timbre Volumetimbre_volume |
7 | 0-127 |
Pan Spreadpan_spread |
9 | 0-127 |
Panpan |
10 | 0-127 |
Voice control
| Control | CC | Values |
|---|---|---|
Voice Detunevoice_detune |
92 | 0-127 |
Voice Unisonvoice_unison |
108 | 0-63 off, 64-127 on |
Voice Monovoice_mono |
109 | 0-63 off, 64-127 on |
Arpeggiator
| Control | CC | Values |
|---|---|---|
Arpeggiator Clock Divarpeggiator_clock_div |
111 | 0-127 |
Arpeggiator On/Offarpeggiator_on_off |
112 | 0-63 off, 64-127 on |
Arpeggiator FW/BKarpeggiator_fw_bk |
113 | 0-63 off, 64-127 on |
Arpeggiator Directionarpeggiator_direction |
114 | 0-42 ord, 43-84 ptn, 85-127 rnd |
Arpeggiator Octave Rangearpeggiator_octave_range |
115 | 0-31 one, 32-63 two, 64-95 three, 96-127 four |
On the base MIDI channel
Output
| Control | CC | Values |
|---|---|---|
Mutemute |
3 | 0-63 off, 64-127 on |
Low Cutlow_cut |
8 | 0-127 |
Diffusion delay
| Control | CC | Values |
|---|---|---|
Delay Time Leftdelay_time_left |
93 | 0-127 |
Delay Time Rightdelay_time_right |
94 | 0-127 |
Link Delayslink_delays |
95 | 0-63 off, 64-127 on |
Delay Clock Syncdelay_clock_sync |
102 | 0-63 off, 64-127 on |
Delay Feedbackdelay_feedback |
103 | 0-127 |
Delay Characterdelay_character |
104 | 0-127 |
Delay Mixdelay_mix |
105 | 0-127 |
Delay Timbre Adelay_timbre_a |
106 | 0-63 off, 64-127 on |
Delay Timbre Bdelay_timbre_b |
107 | 0-63 off, 64-127 on |
Sequencer
| Control | CC | Values |
|---|---|---|
Sequencer Clock Divsequencer_clock_div |
110 | 0-127 |
Clock
| Control | CC | Values |
|---|---|---|
Clock Tempoclock_tempo |
116 | 0-127 |
Where these facts come from
Source documents
- Muse User Guide, 1.4.0, dated 22 May 2025, its user manual, read on 3 October 2026 (the file read).
- Muse Firmware 1.4.0 Release Notes, 1.4.0, dated 24 May 2025, its release notes, read on 3 October 2026 (the file read).
- Muse Firmware 1.3.0 Release Notes, 1.3.0, dated 16 December 2024, its release notes, read on 3 October 2026 (the file read).
- Muse Firmware 1.2.0 Release Notes, 1.2.0, dated 29 August 2024, its release notes, read on 3 October 2026 (the file read).
- Muse Quickstart Guide, dated 2 February 2024, its user manual, read on 3 October 2026 (the file read).
How they were read
Muse User Guide, 124 pages, the edition for firmware 1.4.0 - "This manual reflects Muse as of firmware Version 1.4.0" (manual p. 5). Moog publishes no separate MIDI implementation document for this instrument, so the manual's own "APPENDIX A: MIDI CC" (manual pp. 120-122) is the whole published control map: three columns headed MIDI CC, MUSE CONTROL and RANGE, and 102 controller numbers from 1 to 116.
ONE APPENDIX, FOUR DOCUMENTS, NO DISAGREEMENT. The same table is printed at the back of the 1.2.0, 1.3.0 and 1.4.0 release notes as well as the manual, and Notes/4253_compare_editions.py reads all four off their own vector rules and diffs them: 102 rows, identical in every cell. The appendix arrived with firmware 1.1.0 - "MIDI CC map implemented - see APPENDIX A at the end of this document" (release_notes p. 8), under the heading "CHANGES IN V1.1.0" (release_notes p. 8) - and has not been revised since. Every controller number below is therefore four times attested, and a second reader who had not seen the first extraction and was told not to use its method read all 102 rows again and agreed on each one, name and range alike (Notes/4253_compare_readings.py).
THE TWO MISPRINTS. cc 28, the modulation oscillator's waveform, is printed "0-24: SINE 25-49: SAWTOOTH 50-74: RAMP 5-99: SQUARE 100-127: NOISE" (manual p. 120). Its neighbours are 25 apart and 5-99 overlaps every band before it, so the definition carries 75. The cell was rendered at 600 dpi and read by eye, and it reads the same in all four documents, so this is the maker's slip standing unfixed since 1.2.0 and not a rendering accident. The same call the Bass Station II's 23.55 got.
cc 114, the arpeggiator's direction, names its first band "ODR" (manual p. 120) where the arpeggiator's own DIRECTION switch is "ORD" - "the order the notes were played (ORD)" (manual p. 23), and "Arpeggiated notes will play in the same order they were originally played on the keyboard" (manual p. 69) under the heading ORD. A transposition the same manual disproves twice, which is a better position than cc 28's: no arithmetic is needed, only the two other places the word is printed. The definition carries ord.
BI-TIMBRAL, AND THE TWO TIMBRES ARE SEPARATELY ADDRESSABLE BY DEFAULT. "Muse is a bi-timbral synthesizer, meaning that at any time it can play two completely different sounds, both of which can be stored in a single patch" (manual p. 22), and "MULTI MODE (OFF/ON. DEFAULT: ON)" (manual p. 110) is on as shipped: "Engages MULTI MODE, allowing Muse's two timbres to be controlled independently via external MIDI control" (manual p. 110). Which channel reaches which is stated outright - "messages at MIDI CHANNEL IN will control TIMBRE A of Muse while TIMBRE B will be in- dependently controlled via messages at MULTI IN B CHANNEL" (manual p. 110), the line break the manual's own - with "MIDI IN CHANNEL (OMNI, 1-16. DEFAULT: 1)" (manual p. 110) and "MULTI IN B CHANNEL (OMNI, 1-16. DEFAULT: 1)" (manual p. 110).
Both default to 1, which is a collision, and the maker noticed. Firmware 1.4.0 lists "Prevent collisions between MIDI IN channel numbers" (release_notes p. 6) among its improvements. The two defaults are recorded as printed because that is what the manual for this firmware says; what the instrument does when they are equal is not published.
WHICH ROWS ARE A TIMBRE'S. The panel edits one timbre at a time - "TIMBRE A/B Selects either TIMBRE A or B for editing via the main panel controls" (manual p. 104) - and MULTI MODE puts a MIDI channel where those two buttons are. So a panel row addresses whichever timbre the channel maps to, and the exceptions are the modules the manual itself calls global: "The OUTPUT section controls the final output signal from Muse" (manual p. 50), "As the Diffusion Delay is a global signal processor" (release_notes p. 2), "the SEQUENCER allows you to create global sequences that can be used with any patch in Muse" (manual p. 24) and "The CLOCK section establishes the global tempo for Muse" (manual p. 65). Thirteen rows fall in those four and carry no part; the other 89 carry part: timbre.
The arpeggiator is in the other camp and the specification says so: "ARPEGGIATOR Per-timbre with Clock Division, Octave range, Pattern, Direction, Gate time" (manual p. 117). So its five rows are a timbre's where the sequencer's one row is not.
TRANSMITTED ON TWO CHANNELS, NEITHER OF THEM A TIMBRE'S. On the way out the instrument splits its own controls between two settings rather than between its timbres: "KEYBOARD MIDI OUT CHANNEL (ALL, 1-16. DEFAULT: 1)" (manual p. 110) carries "MIDI NOTE, NOTE ON/ OFF, VELOCITY, AFTERTOUCH, and MIDI CCs messages" (manual p. 110), and "LHC MIDI OUT CHANNEL (ALL, 1-16. DEFAULT: 1)" (manual p. 110) carries "PITCH WHEEL and MOD WHEEL" (manual p. 110) alone. So cc 1 below goes out on a different channel from every other row, and part describes what a received message reaches rather than what a transmitted one leaves on.
SENT BY DEFAULT AND NOT ANSWERED BY DEFAULT. "SEND CC (ON/OFF. DEFAULT: ON)" (manual p. 111) with "Sets whether Muse sends CC messages via the MIDI OUT and USB outputs" (manual p. 111), against "RECIEVE CC (ON/OFF. DEFAULT: OFF)" (manual p. 111) with "Sets whether Muse receives CC messages via the MIDI IN and USB inputs" (manual p. 111) - the maker's own spelling of "recieve", kept. Program change the same way round: "SEND PGM CHNG (ON, OFF. DEFAULT: ON)" (manual p. 111) and "RECIEVE PGM CHNG (ON, OFF. DEFAULT: OFF)" (manual p. 111). Every control below is both because the instrument does both; the factory position of two switches is not a direction.
TWO CONTROLLER NUMBERS ARE STATED A SECOND TIME, IN BOTH DIRECTIONS, AND THEY ARE THE PEDALS. The v1.1.0 change list gives each as a pair of sentences: "Sustain pedal will output on MIDI CC64" (release_notes p. 8) and "Muse will now respond to incoming sustain pedal messages on MIDI CC64" (release_notes p. 8); "Expression pedal connected to EXPRESSION IN will output on MIDI CC11" (release_notes p. 8) and "Muse will now respond to incoming expression pedal messages on CC11" (release_notes p. 8). So for two of the 102 the appendix's silence about direction is filled in by prose.
THE OLDEST RELEASE NOTES CARRY THE FULLEST ACCOUNT OF THE CHANGE THAT MATTERS. The v1.1.0 list appears in all three sets, and 1.2.0's is the longest: it alone carries "If SUSTAIN PEDAL POLARITY in CV menu set to 'CV', MIDI CC will not be output on CC64" (release_notes_1_2_0 p. 6) and the whole of how AUTO picks a clock, including "If an external MIDI START signal is received at either the DIN or USB ports, MIDI clock will automatically be chosen for the user" (release_notes_1_2_0 p. 6). The 1.3.0 and 1.4.0 editions abridge both away. So the newest document is not always the fullest, even when it is the same list.
PROGRAM CHANGE IS A BANK AND A NUMBER, AND THERE ARE TWO SEPARATE MAPS OF THEM. For patches: "MSB is 0, LSB is 1-16 (selecting a BANK), PC is 1-16 (selecting a PATCH within that BANK)" (manual p. 111), which is "Each of the 16 banks contains 16 patches (for a total of 256 available patches)" (manual p. 95). For sequences there is a channel of its own - "SEQ PGM CHNG CHANNEL (1-16. DEFAULT: 16)" (manual p. 110) with "MSB is 0, LSB is 1-16 (selects SEQ BANK), PC 1-16" (manual p. 110) - and "Muse contains 16 banks of 16 presets and its SEQUENCER contains 16 banks of 16 sequences" (release_notes_1_2_0 p. 2). Both arrived in 1.4.0: "MIDI program change control over patches and sequences" (release_notes p. 5).
EIGHT VOICES ACROSS THE PAIR, NOT EACH. "POLYPHONY 8 Voices" (manual p. 116) for an instrument that always holds two timbres, and the arithmetic is stated: "The Voice Count settings for TIMBRE A and B will move with respect to each other and always sum to eight" (manual p. 106). Stacking costs what sharing implies - "Engaging STACK also reduces available polyphony by half (or more) depending on the UNISON settings of either TIMBRE" (manual p. 105) - and a timbre may take the other's voices if allowed: "DYNAMIC VOICE ALLOCATION (OFF, ON. DEFAULT: OFF)" (manual p. 106), "allowing a TIMBRE to steal voices from the other TIMBRE if its voice count is exceeded" (manual p. 106).
CLOCK AND TRANSPORT BOTH WAYS, AND BOTH ARE OFF ON THE WAY OUT. "CLOCK SOURCE (AUTO, INTERNAL, ANALOG, MIDI IN, USB. DEFAULT: AUTO)" (manual p. 66) takes a clock in; "MIDI CLOCK OUT (OFF, SEQ, ON. DEFAULT: OFF)" (manual p. 66) sends one. "MIDI START/STOP OUT (ON, OFF. DEFAULT: OFF)" (manual p. 66) against "SEQ START/STOP IN (ON, IGNORE. DEFAULT: ON)" (manual p. 66) and "ARP START/STOP IN (ON, IGNORE. DEFAULT: ON)" (manual p. 66). All of it arrived at once: "MIDI CLOCK IN/OUT and START/STOP functionality fully implemented" (release_notes p. 5), so a Muse on an earlier firmware is a different instrument in this respect.
NOT RECORDED, AND EACH FOR A STATED REASON. No system exclusive, because the words system exclusive and sysex appear in none of the five documents - a silence over 161 pages rather than a denial, so the field is left out instead of being set to false. No NRPN, and that one is checked: the appendix's gaps are 2, 4, 6, 32, 38, 63, 74, 84 and 96 to 101, which is the whole of the MIDI specification's data-entry and NRPN and RPN block left alone, and the words NRPN and RPN appear nowhere either. No mode, because Moog publishes no implementation chart and the only statement near it is that OMNI is one of the choices for the receive channel (manual p. 110). No note range, because the keybed is given as "61 full-size semi-weighted Fatar keybed with Velocity and channel Aftertouch" (manual p. 116) and a key count is not a span of note numbers; "KB OCTAVE Shifts the octave of the keyboard down" (manual p. 13) moves it and the manual never says how far. No note-off velocity. No kind of aftertouch received: no page names aftertouch among what arrives, and the comment beside aftertouch_transmits has the sentence that comes nearest. And nothing from the Quickstart Guide, which carries no controller number and no MIDI setting.