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 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 Wheel
mod_wheel
1 0-127
Expression
expression
11 0-127
Sustain Pedal
sustain_pedal
64 0-63 off, 64-127 on
Hold
hold
71 0-63 off, 64-127 on

Glide

Control CC Values
Glide Time
glide_time
5 0-127

LFO 1+2

Control CC Values
LFO 1 Rate
lfo_1_rate
12 0-127
LFO 1 Amount
lfo_1_amount
13 0-127
LFO 1 Waveform
lfo_1_waveform
14 0-24 triangle, 25-49 saw, 50-74 square, 75-99 random, 100-127 user_wave
LFO 2 Rate
lfo_2_rate
15 0-127
LFO 2 Amount
lfo_2_amount
16 0-127
LFO 2 Waveform
lfo_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 Rate
pitch_lfo_rate
18 0-127
Pitch LFO Shape
pitch_lfo_shape
19 0-127
Pitch LFO Amount
pitch_lfo_amount
20 0-127
Pitch LFO OSC 1
pitch_lfo_osc_1
21 0-63 off, 64-127 on
Pitch LFO OSC 2
pitch_lfo_osc_2
22 0-63 off, 64-127 on
Pitch LFO Mod Osc
pitch_lfo_mod_osc
23 0-63 off, 64-127 on
Pitch LFO Detune
pitch_lfo_detune
24 0-63 off, 64-127 on

Modulation oscillator

Control CC Values
Modulation Oscillator Frequency
modulation_oscillator_frequency
25 0-127
Modulation Oscillator Audio
modulation_oscillator_audio
26 0-63 off, 64-127 on
Modulation Oscillator KB Track
modulation_oscillator_kb_track
27 0-63 off, 64-127 on
Modulation Oscillator Waveform
modulation_oscillator_waveform
28 0-24 sine, 25-49 sawtooth, 50-74 ramp, 75-99 square, 100-127 noise
Modulation Oscillator KB Reset
modulation_oscillator_kb_reset
29 0-63 off, 64-127 on
Modulation Oscillator Unipolar
modulation_oscillator_unipolar
30 0-63 off, 64-127 on
Modulation Oscillator Pitch Amount
modulation_oscillator_pitch_amount
31 0-127
Modulation Oscillator Pitch OSC 1
modulation_oscillator_pitch_osc_1
33 0-127
Modulation Oscillator Pitch OSC 2
modulation_oscillator_pitch_osc_2
34 0-127
Modulation Oscillator PWM Amount
modulation_oscillator_pwm_amount
35 0-127
Modulation Oscillator PWM OSC 1
modulation_oscillator_pwm_osc_1
36 0-127
Modulation Oscillator PWM OSC 2
modulation_oscillator_pwm_osc_2
37 0-127
Modulation Oscillator Filter Amount
modulation_oscillator_filter_amount
39 0-127
Modulation Oscillator Filter 1
modulation_oscillator_filter_1
40 0-127
Modulation Oscillator Filter 2
modulation_oscillator_filter_2
41 0-127
Modulation Oscillator VCA Amount
modulation_oscillator_vca_amount
42 0-127
Modulation Oscillator VCA PAN
modulation_oscillator_vca_pan
43 0-127

Oscillators

Control CC Values
Oscillator 1 Octave
oscillator_1_octave
44 0-31 ft_16, 32-63 ft_8, 64-95 ft_4, 96-127 ft_2
Oscillator 1 Frequency
oscillator_1_frequency
45 0-127
Oscillator 1 Tri/Saw Mix
oscillator_1_tri_saw_mix
46 0-127
Oscillator 1 PW
oscillator_1_pw
47 0-127
Oscillator 1 Wave Mix
oscillator_1_wave_mix
48 0-127
Oscillator 2 Octave
oscillator_2_octave
49 0-31 ft_16, 32-63 ft_8, 64-95 ft_4, 96-127 ft_2
Oscillator 2 Frequency
oscillator_2_frequency
50 0-127
Oscillator 2 Tri/Saw Mix
oscillator_2_tri_saw_mix
51 0-127
Oscillator 2 PW
oscillator_2_pw
52 0-127
Oscillator 2 Wave Mix
oscillator_2_wave_mix
53 0-127
Oscillator 2>1 SYNC
oscillator_2_to_1_sync
54 0-63 off, 64-127 on
Oscillator 2>1 FM
oscillator_2_to_1_fm
55 0-63 off, 64-127 on
Oscillator 1>2 FM
oscillator_1_to_2_fm
56 0-63 off, 64-127 on
FM Amount
fm_amount
57 0-127

Mixer

Control CC Values
Oscillator 1 Level
oscillator_1_level
58 0-127
Oscillator 2 Level
oscillator_2_level
59 0-127
Ring Mod Level
ring_mod_level
60 0-127
Modulation Oscillator Level
modulation_oscillator_level
61 0-127
Noise Level
noise_level
62 0-127
Clipping Level
clipping_level
65 0-127

Filters

Control CC Values
Filter 1 High Pass
filter_1_high_pass
66 0-127
Filter 1 Cutoff
filter_1_cutoff
67 0-127
Filter 1 Resonance
filter_1_resonance
68 0-127
Filter 1 Envelope Amount
filter_1_envelope_amount
69 0-127
Filter 1 KB Tracking
filter_1_kb_tracking
70 0-42 off, 43-84 half, 85-127 full
Filter 2 Frequency
filter_2_frequency
72 0-127
Filter 2 Resonance
filter_2_resonance
73 0-127
Filter 2 Envelope Amount
filter_2_envelope_amount
75 0-127
Filter 2 KB Tracking
filter_2_kb_tracking
76 0-42 off, 43-84 half, 85-127 full
Link Filters
link_filters
77 0-63 off, 64-127 on
Filters Order
filters_order
78 0-42 ser, 43-84 str, 85-127 par

Filter envelope

Control CC Values
Filter Env Attack
filter_env_attack
79 0-127
Filter Env Decay
filter_env_decay
80 0-127
Filter Env Sustain
filter_env_sustain
81 0-127
Filter Env Release
filter_env_release
82 0-127
Filter Env Loop
filter_env_loop
83 0-63 off, 64-127 on
Filter Env Velocity
filter_env_velocity
85 0-63 off, 64-127 on

VCA envelope

Control CC Values
VCA Env Attack
vca_env_attack
86 0-127
VCA Env Decay
vca_env_decay
87 0-127
VCA Env Sustain
vca_env_sustain
88 0-127
VCA Env Release
vca_env_release
89 0-127
VCA Env Loop
vca_env_loop
90 0-63 off, 64-127 on
VCA Env Velocity
vca_env_velocity
91 0-63 off, 64-127 on

VCA

Control CC Values
Timbre Volume
timbre_volume
7 0-127
Pan Spread
pan_spread
9 0-127
Pan
pan
10 0-127

Voice control

Control CC Values
Voice Detune
voice_detune
92 0-127
Voice Unison
voice_unison
108 0-63 off, 64-127 on
Voice Mono
voice_mono
109 0-63 off, 64-127 on

Arpeggiator

Control CC Values
Arpeggiator Clock Div
arpeggiator_clock_div
111 0-127
Arpeggiator On/Off
arpeggiator_on_off
112 0-63 off, 64-127 on
Arpeggiator FW/BK
arpeggiator_fw_bk
113 0-63 off, 64-127 on
Arpeggiator Direction
arpeggiator_direction
114 0-42 ord, 43-84 ptn, 85-127 rnd
Arpeggiator Octave Range
arpeggiator_octave_range
115 0-31 one, 32-63 two, 64-95 three, 96-127 four

On the base MIDI channel

Output

Control CC Values
Mute
mute
3 0-63 off, 64-127 on
Low Cut
low_cut
8 0-127

Diffusion delay

Control CC Values
Delay Time Left
delay_time_left
93 0-127
Delay Time Right
delay_time_right
94 0-127
Link Delays
link_delays
95 0-63 off, 64-127 on
Delay Clock Sync
delay_clock_sync
102 0-63 off, 64-127 on
Delay Feedback
delay_feedback
103 0-127
Delay Character
delay_character
104 0-127
Delay Mix
delay_mix
105 0-127
Delay Timbre A
delay_timbre_a
106 0-63 off, 64-127 on
Delay Timbre B
delay_timbre_b
107 0-63 off, 64-127 on

Sequencer

Control CC Values
Sequencer Clock Div
sequencer_clock_div
110 0-127

Clock

Control CC Values
Clock Tempo
clock_tempo
116 0-127

Where these facts come from

Source documents

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.