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 Grandmother MIDI implementation
The MIDI implementation of the Moog Music Grandmother: what it answers to, and the 24 controls it offers, on firmware 1.1.3.
At a glance
- Firmware
- This page describes firmware 1.1.3.
- MIDI channel
- Any one of 1 to 16.
- Voices
- One, so it plays one note at a time.
- Note range
- Not recorded.
- Velocity
- Not recorded.
- Aftertouch
- Not recorded.
- Pitch bend
- 2 semitones, and the range can be changed.
- Program change
- Received and sent.
- MIDI clock
- Sent and received.
- Start and stop
- Sent and received.
- Control change
- 24 controls, in the tables below, 5 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/grandmother") has loaded them.
Modulation
| Control | CC | Values |
|---|---|---|
Mod Wheelmod_wheel |
1 fine 33 |
0-16383 |
Modulation Ratemodulation_rate |
3 fine 35 |
0-16383 |
Glide
| Control | CC | Values |
|---|---|---|
Glide Timeglide_time |
5 fine 37 |
0-16383 |
Glide On/Offglide_on |
65 | 0-63 off, 64-127 on |
Legato Glidelegato_glide |
94 | 0-63 off, 64-127 on |
Gated Glidegated_glide |
103 | 0-63 off, 64-127 on |
Glide Typeglide_type |
85 | 0-42 lcr, 43-84 lct, 85-127 exponential |
Arp / seq
| Control | CC | Values |
|---|---|---|
Arp/Seq Ratearp_seq_rate |
8 fine 40 |
0-16383 |
Arp/Seq Holdarp_seq_hold |
69 | 0-63 off, 64-127 on |
Arp/Seq Playarp_seq_play |
73 | 0-63 off, 64-127 on |
Arp/Seq Modearp_seq_mode |
91 | 0-42 arp, 43-84 seq, 85-127 rec |
Arp/Seq Patternarp_seq_pattern |
92 | 0-42 ordr, 43-84 fwd_bkwd, 85-127 rndm |
Arp Range/Seq Numberarp_range_seq_number |
93 | 0-42 one, 43-84 two, 85-127 three |
Arp/Seq Clock Divisionarp_seq_clock_division |
90 | 0-4 four_whole_notes, 5-10 three_whole_notes, 11-15 two_whole_notes, 16-20 dotted_whole_note, 21-26 whole_note, 27-31 dotted_half_note, 32-36 whole_note_triplet, 37-42 half_note, 43-47 dotted_quarter_note, 48-52 half_note_triplet, 53-58 quarter_note, 59-63 dotted_eighth_note, 64-68 quarter_note_triplet, 69-74 eighth_note, 75-79 dotted_sixteenth_note, 80-84 eighth_note_triplet, 85-90 sixteenth_note, 91-95 dotted_thirty_second_note, 96-100 sixteenth_note_triplet, 101-106 thirty_second_note, 107-111 dotted_sixty_fourth_note, 112-116 thirty_second_note_triplet, 117-122 sixty_fourth_note, 123-127 sixty_fourth_note_triplet |
Oscillators
| Control | CC | Values |
|---|---|---|
Oscillator 2 Frequencyosc_2_frequency |
12 fine 44 |
0-16383 |
Oscillator 2 Syncosc_2_sync |
77 | 0-63 off, 64-127 on |
Oscillator 1 Octaveosc_1_octave |
74 | 0-31 thirty_two_foot, 32-63 sixteen_foot, 64-95 eight_foot, 96-127 four_foot |
Oscillator 2 Octaveosc_2_octave |
75 | 0-31 thirty_two_foot, 32-63 sixteen_foot, 64-95 eight_foot, 96-127 four_foot |
Keyboard
| Control | CC | Values |
|---|---|---|
Sustain Pedalsustain_pedal |
64 | 0-63 off, 64-127 on |
Keyboard Octavekeyboard_octave |
89 | 0-25 minus_2, 26-50 minus_1, 51-76 zero, 77-101 plus_1, 102-127 plus_2 |
KB Transpose (Semitones)kb_transpose |
119 | 0-4 minus_12, 5-9 minus_11, 10-14 minus_10, 15-19 minus_9, 20-25 minus_8, 26-30 minus_7, 31-35 minus_6, 36-40 minus_5, 41-45 minus_4, 46-50 minus_3, 51-55 minus_2, 56-60 minus_1, 61-66 zero, 67-71 plus_1, 72-76 plus_2, 77-81 plus_3, 82-86 plus_4, 87-91 plus_5, 92-96 plus_6, 97-101 plus_7, 102-107 plus_8, 108-112 plus_9, 113-117 plus_10, 118-122 plus_11, 123-127 plus_12 |
Multi Trigmulti_trig |
95 | 0-127 Received, never sent |
Pitch bend range
| Control | CC | Values |
|---|---|---|
Pitch Bend Up Amtpitch_bend_up_amount |
107 | 0-4 off, 5-9 semitones_1, 10-14 semitones_2, 15-19 semitones_3, 20-25 semitones_4, 26-30 semitones_5, 31-35 semitones_6, 36-40 semitones_7, 41-45 semitones_8, 46-50 semitones_9, 51-55 semitones_10, 56-60 semitones_11, 61-66 semitones_12, 67-71 semitones_13, 72-76 semitones_14, 77-81 semitones_15, 82-86 semitones_16, 87-91 semitones_17, 92-96 semitones_18, 97-101 semitones_19, 102-107 semitones_20, 108-112 semitones_21, 113-117 semitones_22, 118-122 semitones_23, 123-127 semitones_24 |
Pitch Bend Down Amtpitch_bend_down_amount |
108 | 0-4 off, 5-9 semitones_1, 10-14 semitones_2, 15-19 semitones_3, 20-25 semitones_4, 26-30 semitones_5, 31-35 semitones_6, 36-40 semitones_7, 41-45 semitones_8, 46-50 semitones_9, 51-55 semitones_10, 56-60 semitones_11, 61-66 semitones_12, 67-71 semitones_13, 72-76 semitones_14, 77-81 semitones_15, 82-86 semitones_16, 87-91 semitones_17, 92-96 semitones_18, 97-101 semitones_19, 102-107 semitones_20, 108-112 semitones_21, 113-117 semitones_22, 118-122 semitones_23, 123-127 semitones_24 |
Where these facts come from
Source documents
- Grandmother User Guide English, its user manual, read on 1 October 2026 (the file read).
- Grandmother v1.1.3 Release Notes, V 1.1.3, its release notes, read on 1 October 2026 (the file read).
How they were read
User guide (56pp), pp. 8, 36-38, 43-44, 54, and the firmware v1.1.3 release notes (10pp), which are published inside the firmware package rather than beside it. The release notes print no page numbers, so they are cited the way they number themselves: by global setting, as 0.5 or 1.8, and by system exclusive parameter ID. The one controller number that comes from them sits on the file's own fifth page, cited here as p. 5 so that it can be checked, since a page of this document needs no offset to reach. The control-change map is the guide's MIDI DOCUMENTATION section, pp. 43-44, whose columns are FUNCTION | CC # | values. It holds 22 numbered rows and every one of them is here, with its value column quoted. Three tables printed with it carry the value lists the chart refers to: the Grandmother Clock Divisions for CC 90 (24 named divisions), table 2 for the two pitch bend amounts (25 rows, 0 OFF to 24 TWO OCTAVES), and table 3 for the keyboard transpose (25 rows, -12 to +12). All three are reproduced in full below, as band starts, because that is what the maker's own numbers are: 24 divisions over 0-127 do not divide into exact values. A twenty-third row is listed under ADDITIONAL MIDI FUNCTIONS rather than in the chart, and is a control: SUSTAIN PEDAL, CC 64.
AND A TWENTY-FOURTH CONTROL IS IN NEITHER, and is marked in place: CC 95, Multi Trig. One sentence of the release notes carries it - "Multi Trig can also be turned on/off via MIDI CC 95" (release_notes p. 5), under global setting 1.8 - and the guide's chart steps from CC 94 straight to CC 103 with no mention of it anywhere in 56 pages. The release notes give no values for it, only the panel's own Off and On, so none are claimed here.
FIVE CONTROLS ARE 14-BIT PAIRS, and the chart gives both halves: CC 1 & 33, 3 & 35, 5 & 37, 8 & 40, 12 & 44, each printed as "0-127 (or 0-16383 using CC n & CC n+32)". That is the MMA's own pairing, so lsb carries it. Whether the instrument sends both halves is a setting, not a fact about the model: the release notes' parameter 15, "Output 14-bit MIDI CCs" (release_notes p. 9), defaults to Off. EXCLUDED, and not missed: three numbers the same ADDITIONAL MIDI FUNCTIONS block lists. CC 122 is Local Control On/Off and CC 120 with CC 123 are All Sounds Off and All Notes Off: channel mode messages, which belong to the MIDI specification rather than to a definition, and which the validator refuses as controls. The guide also says the instrument sends All Notes Off itself, when all three Left-Hand Controller buttons are held for about a second (p. 36).
ALSO NOT CARRIED, because the format has no field for it: RPN 0, 1 and 2, which the same block gives as Pitch Bend Amount, Fine Tuning and Coarse Tuning - registered parameter numbers are the MMA's, not this instrument's - and the 48 global parameters of the release notes' own table, pages 8 to 10, addressable by system exclusive as "F0 04 16 23 [Parameter ID], [value MSB], [value LSB], 00 00 00 00 00 00 00 00 [Unit ID] F7" (release_notes p. 8) with a matching request message at 3E. That table is where this instrument keeps its MIDI settings, and it is the only place several of the facts below are stated at all.
NOT RECORDED, and marked in place:
- the note range, since neither document gives a MIDI note number for anything;
- what the instrument does with velocity that arrives over MIDI;
- aftertouch, which neither document mentions;
- and how many presets a program change selects, since the release notes say program change is sent and received and never say what it selects.
The two documents disagree five times and the file records both readings each time: how many MIDI channel settings there are, how far the pitch bend range reaches, whether local control is one switch or three, what the clock's pulses-per-quarter-note default is, and whether the three CV output jacks still carry the keyboard when local control is off. The release notes are also where the guide's own loose end leads. The guide says "For information on advanced Global Settings visit www.moogmusic.com/grandmother" (p. 37), and what that points at is in these notes: 25 global settings in four groups, reached by keyboard commands, of which the guide documents only the first ten. Four of the fifteen it does not mention gate what the instrument transmits - MIDI OUT filters for the panel knobs, the wheels and the keys, and the separate MIDI OUT channel - so a reader of the guide alone cannot tell why a Grandmother might send nothing at all.