The Yamaha Mobile Music Sequencer (MMS) is an iPad app developed and supported by Yamaha. MMS is a music composition tool that is based upon a few simple, structural ideas: a song is composed of a sequence of sections and each section is composed of one or more phrases that play concurrently. Each section has a chord progression and MMS harmonizes the section’s phrases with the progression. A phrase consists of one or more measures of music represented in MIDI data. MMS plays the phrases back through software virtual instruments (voices). MMS comes with rock/pop phrases. Additional phrases and instruments (expansion packs) may be purchased from Yamaha.
Most of all, Yamaha Mobile Music Sequencer is fun!
MMS supports Apple’s Core MIDI and Inter-App Audio (IAA). You may connect an external MIDI keyboard or sound source to your iPad and MMS will respond to it and send MIDI messages to it. This page covers several aspects of MMS’s MIDI implementation and internal sound generation. To date, Yamaha has not documented these capabilities, so anything written here is subject to change by Yamaha. However, MMS provides a powerful way to get more out of your synthesizer (Motif, MOX, MX) or arranger workstation (Tyros).
Sound engine
The MMS sound engine is an XG-like, multi-timbral sound generator. It implements 32 General MIDI voices and 50+ additional, MMS-specific voices. Some of the MMS-specific voices are part of an expansion pack (e.g., R&B pack) and are unlocked through an in-app purchase.
The General MIDI voices are in the usual GM bank (Bank select MSB 0, Bank select LSB 0). The MMS-specific voices are in a separate bank (Bank select MSB 3FH, Bank select LSB 0). Positive integer values in hexadecimal such as “3FH” are denoted by a trailing “H”. All other integer values are decimal.
MMS implements a subset of Yamaha XG standard effects. The effects follow the XG signal routing convention.
- Reverb: No effect, HALL 1, HALL 2, ROOM 1, ROOM 2, ROOM 3, STAGE 1, STAGE 2, PLATE, GM PLATE
- Chorus: No effect, CHORUS 1, CHORUS 2, FLANGER 1, FLANGER 2
- Variation: No effect, HALL 1 HALL 2, ROOM 1, ROOM 2, ROOM 3, STAGE 1, STAGE 2, PLATE, TEMPO DELAY L,R, DELAY L,R, CROSS DELAY, ER 1, ER 2, GATE REVERB, REVERSE REVERB, CHORUS 1, CHORUS 2, FLANGER 1, FLANGER 2, ROTARY SPEAKER, PHASER, DISTORTION, OVER DRIVE, AMP SIMULATOR, AUTO WAH
The variation effect is connected as an XG system effect. All parts are routed to the variation effect with the level determined by the variation send control.
MIDI messages
MMS sends and responds to specific MIDI messages such as note on, note off, pitch bend, modulation and control change. MMS does not respond to program change. Thus, MMX can control external certain aspects of an external MIDI device, but may not always respond in kind.
MMS sends Yamaha XG MIDI messages, but does not necessarily respond to XG messages itself. If an XG-compatible device (synthesizer, etc.) is connected to MMS, MMS can control certain specific aspects of the XG device, such as setting the variation effect. MMS appears to ignore incoming XG messages.
MIDI and XG messages from MMS were observed using MIDI-OX and are documented in the following tables. The first column in each table identifies the MMS user interface (UI) widget (button, knob, etc.) that produces a message. Only a small number of XG-related widgets/messages were tried and identified.
MMS UI widget | Raw message | MIDI function |
---|---|---|
MIXER Volume | BnH 07H dd | Channel volume |
MIXER Pan | BnH 0AH dd | Pan |
MIXER Var send | BnH 5EH dd | Celeste depth/variation send |
MIXER Cho send | BnH 5DH dd | Chorus depth/chorus send |
MIXER Rev send | BnH 5BH dd | Reverb depth/reverb send |
MMS UI widget | XG message | XG function |
---|---|---|
EFFECT Var return | F0 43 10 4C 02 01 56 dd F7 | Variation return |
EFFECT Cho return | F0 43 10 4C 02 01 2C dd F7 | Chorus return |
EFFECT Rev return | F0 43 10 4C 02 01 0C dd F7 | Reverb return |
EFFECT Reverb pan | F0 43 10 4C 02 01 0D dd F7 | Reverb pan |
MMS UI widget | Raw message | MIDI function |
---|---|---|
PART EDIT Volume | BnH 07H dd | Channel volume |
PART EDIT Pan | BnH 0AH dd | Pan |
PART EDIT Var dry | F0 43 10 4C 08 02 11 dd F7 | Variation dry |
PART EDIT Var send | BnH 5EH dd | Variation send |
PART EDIT Cho send | BnH 5DH dd | Chorus send |
PART EDIT Rev send | BnH 5BH dd | Reverb send |
MMS UI widget | Raw message | MIDI function |
---|---|---|
PART EDIT Cutoff | BnH 4AH dd | Filter cutoff |
PART EDIT Resonance | BnH 47H dd | Filter resonance |
PART EDIT Attack | BnH 49H dd | AMP EG attack |
PART EDIT Decay | BnH 4BH dd | AMP EG decay |
PART EDIT Release | BnH 48H dd | AMP EG release |
PART EDIT Rate | BnH 4CH dd | Vibrato rate |
PART EDIT Depth | BnH 4DH dd | Vibrato depth |
PART EDIT Delay | BnH 4EH dd | Vibrato delay |
MMS UI widget | Raw message | MIDI function |
---|---|---|
PART EDIT On/Off | BnH 41H dd | Portamento on/off |
PART EDIT Time | BnH 05H dd | Portamento time |
PART EDIT Mono/poly | F0 43 10 4C 08 02 05 dd F7 | Mono/poly mode |
PART EDIT PB range | F0 43 10 4C 08 02 23 dd F7 | Pitch bend range |
MMS UI widget | Raw message | MIDI function |
---|---|---|
VOICE SELECT | BnH 00H dd | Bank select MSB |
VOICE SELECT | BnH 20H dd | Bank select LSB |
VOICE SELECT | CnH dd | Program change |
SYSTEM settings
A few of the SYSTEM setting widgets send MIDI messages. Widgets on the System GENERAL tab send the following MIDI messages.
- Set Sound OFF to turn off tone generation.
- Sends SysEx: F0 43 10 4C 00 00 04 00 F7
- This XG command sets the master volume to 00.
- This XG command is sent to MIDI OUT and affects any attached XG module.
- Set Sound ON to turn on tone generation.
- Sends SysEx: F0 43 10 4C 00 00 04 7F F7
- This XG command resets the master volume to 127.
- This XG command is sent to MIDI OUT.
- Turn MIDI SYNC clock ON to send MIDI timing clock (message F8H).
The ALL SOUND OFF button on the System OTHER tab sends MIDI All Sound Off to each MIDI channel. The MIDI All Sound Off message is Control Change (CC) 78H, e.g., BnH 78H 00H.
MMS voices
MMS has two banks of built-in voices: a subset of the General MIDI voices and a set of MMS-specific voices. MMS sends MIDI bank select messages along with program change. The bank select messages chose between two banks of built-in voices:
Bank select MSB | Bank select LSB | MMS voice bank |
---|---|---|
00H | 00H | General MIDI subset voices |
3FH | 00H | MMS-specific voices |
Voice names in the General MIDI subset bank do not always have the usual GM voice names. Perhaps Yamaha used different names to avoid implying GM compatibility. Some of the voices in the MMS-specific voice bank are enabled through in-app purchases, that is, when you’ve purchased an expansion pack.
Please remember that MMS sends MIDI program change messages, but ignores incoming program change messages. Thus, you cannot use an external device to change the voice assigned to a part.
List of General MIDI subset voices
Bank MSB=0, Bank LSB=0
Category | Prog# | PC# | GM voice |
---|---|---|---|
Piano | 1 | 00H | Grand Piano |
2 | 01H | Aggressive (Bright acoustic piano) | |
5 | 04H | Case EP (Electric piano 1) | |
6 | 05H | DX Modern EP (Electric piano 2) | |
7 | 06H | Harpsichord | |
8 | 07H | Clavinet | |
Chromatic | 10 | 09H | Glockenspiel |
12 | 0BH | Vibraphone | |
13 | 0CH | Marimba | |
14 | 0DH | Xylophone | |
Organ | 17 | 10H | Jazz Organ 1 |
18 | 11H | Click Organ (Percussive organ) | |
19 | 12H | Rock Organ | |
Guitar | 25 | 18H | Nylon Guitar |
26 | 19H | Steel Guitar 1 | |
27 | 1AH | Jazz Guitar | |
28 | 1BH | Clean Guitar 1 | |
29 | 1CH | Muted Guitar | |
30 | 1DH | Overdriver Gt 1 | |
31 | 1EH | Distortion Gt | |
Bass | 33 | 20H | Acoustic Bass |
34 | 21H | Finger Bass | |
35 | 22H | Pick Bass | |
37 | 24H | Slap Bass | |
39 | 26H | Simple Bass (Synth Bass 1) | |
40 | 27H | Dance Bass (Synth Bass 2) | |
Strings | 46 | 2DH | Pizzacato Strings |
47 | 2EH | Harp | |
Ensemble | 49 | 30H | String Ensemble |
51 | 32H | Synth Strings | |
Brass | 57 | 38H | Trumpet |
58 | 39H | Trombone | |
62 | 3DH | Pop Brass (Brass Section) | |
63 | 3EH | 80’s Brass (Synth Brass 1) | |
Reed | 66 | 41H | Alto Sax |
Pipe | 74 | 49H | Flute |
Synth Lead | 81 | 50H | Square Lead 1 |
82 | 51H | Sawtooth Lead 1 | |
Pad | 92 | 5BH | Big Squish (Choir Pad) |
93 | 5CH | After 1984 (Bowed Pad) | |
Ethnic | 105 | 68H | Sitar |
109 | 6CH | Kalimba |
List of MMS-specific voices
Bank MSB=3FH, Bank LSB=0
Bank MSB | Bank LSB | Prog# | PC# | MMS-specific voice |
---|---|---|---|---|
3FH | 00H | 1 | 00H | Boogie A |
3FH | 00H | 2 | 01H | Big Bass |
3FH | 00H | 3 | 02H | Trance Bass |
3FH | 00H | 4 | 03H | Velo Master |
3FH | 00H | 5 | 04H | Analogon |
3FH | 00H | 6 | 05H | Orbit Sine |
3FH | 00H | 7 | 06H | Punch Lead |
3FH | 00H | 8 | 07H | Trance Lead |
3FH | 00H | 9 | 08H | Sync Lead |
3FH | 00H | 10 | 09H | Digital Seq |
3FH | 00H | 11 | 0AH | Short Pulse |
3FH | 00H | 12 | 0BH | Chord Seq |
3FH | 00H | 13 | 0CH | Aqua Lead |
3FH | 00H | 14 | 0DH | Amb Sine |
3FH | 00H | 15 | 0EH | Analog 1 |
3FH | 00H | 16 | 0FH | Glass Pad |
3FH | 00H | 38 | 25H | Raw Square Oct |
3FH | 00H | 40 | 27H | Growl Square |
3FH | 00H | 45 | 2CH | Trance Pad |
3FH | 00H | 49 | 30H | Spectrum Baz |
3FH | 00H | 50 | 31H | Dub BAXX |
3FH | 00H | 51 | 32H | Vowel Bass |
3FH | 00H | 56 | 37H | In da Night |
3FH | 00H | 57 | 38H | Analog 2 (R&B Pack) |
3FH | 00H | 65 | 40H | Mellow Piano (R&B Pack) |
3FH | 00H | 68 | 43H | Oct Fuzz (R&B Pack) |
3FH | 00H | 69 | 44H | Almighty |
3FH | 00H | 71 | 46H | Ice Bells (R&B Pack) |
3FH | 00H | 75 | 4AH | Clean Guitar 2 |
3FH | 00H | 76 | 4BH | Overdriven Gt 2 |
3FH | 00H | 77 | 4CH | Over The Top |
3FH | 00H | 81 | 50H | Dark Bass (R&B Pack) |
3FH | 00H | 82 | 51H | One Voice |
3FH | 00H | 83 | 52H | Mini Sub |
3FH | 00H | 84 | 53H | Ballad Bass |
3FH | 00H | 87 | 56H | Kick Bass (R&B Pack) |
3FH | 00H | 92 | 5BH | Big Squish |
3FH | 00H | 93 | 5CH | After 1984 |
3FH | 00H | 97 | 60H | Mini Three (R&B Pack) |
3FH | 00H | 98 | 61H | Trojan |
3FH | 00H | 99 | 62H | Simple Oct (R&B Pack) |
3FH | 00H | 102 | 65H | Faaat Dance |
3FH | 00H | 103 | 66H | Mr.Finger |
3FH | 00H | 104 | 67H | Mini Soft |
3FH | 00H | 105 | 68H | Early Lead |
3FH | 00H | 108 | 6BH | Sawtooth Lead 2 |
3FH | 00H | 112 | 6FH | Noble Pad |
3FH | 00H | 113 | 70H | Dark Light |
3FH | 00H | 114 | 71H | Chorus Pad |
3FH | 00H | 119 | 76H | Trance Seq |
3FH | 00H | 120 | 77H | Sine Comp (R&B Pack) |
3FH | 00H | 122 | 79H | Twist (R&B Pack) |
3FH | 00H | 126 | 7DH | Square Lead 3 (R&B Pack) |
List of MMS drum kits
Bank MSB | Bank LSB | Prog# | PC# | Drum kit |
---|---|---|---|---|
7FH | 00H | 1 | 00H | Standard Kit |
7FH | 00H | 26 | 19H | Analog T8 Kit |
7FH | 00H | 27 | 1AH | Analog T9 Kit |
7FH | 00H | 28 | 1BH | Dance Kit |
7FH | 00H | 41 | 28H | Brush Kit |
7FH | 00H | 84 | 53H | Break Kit |
7FH | 00H | 85 | 54H | Hip Hop Kit 1Kit |
7FH | 00H | 88 | 57H | R&B Kit 1 |
7FH | 00H | 89 | 58H | R&B Kit 2 |
3FH | 20H | 1 | 00H | SFX Kit |
3FH | 20H | 2 | 01H | Percussion Kit |
Initialization
Creating a new file or loading an old file sends many SysEx set-up messages followed by SysEx/controller messages to set up each of the eight parts. The last messages to be sent are the program change messages to select the voice for each part.
MMS first sends MIDI All Sound Off and Reset Control messages to all sixteen MIDI channels. The messages have the following form (where “n” is the MIDI channel identifier 0H to FH).
B0 78 00 CC: All Sound Off B0 79 00 CC: Reset All Controllers
Next, MMS sends a large number (100+) XG parameter change messages (too many to list explicitly here).
MMS sends the following per-part MIDI messages (where “n” is the channel identifier 0H to 7H).
Bn 07 64 CC: Volume Bn 0A 40 CC: PAN F0 43 10 4C 08 0n 11 7F F7 Variation dry Bn 5E 00 CC: Celeste Depth (Variation send) Bn 5D 00 CC: Chorus Depth (Chorus send) Bn 5B 28 CC: Reverb Depth (Reverb send) Bn 4A 40 CC: Brightness Bn 47 40 CC: Harmonic Content Bn 49 40 CC: Attack Time Bn 4B 40 CC: Decay Time Bn 48 40 CC: Release Time Bn 4C 40 CC: Vibrato Rate Bn 4D 40 CC: Vibrato Depth Bn 4E 40 CC: Vibrato Delay Bn 41 00 CC: Portamento Bn 05 00 CC: Portamento Time F0 43 10 4C 08 0n 05 7F F7 Mono/poly mode F0 43 10 4C 08 0n 23 42 F7 Pitch bend range
The per-part set-up messages are followed by program change messages with the following form (where “n” is the MIDI channel idenfier 0H to 7H).
Bn 00 7F CC: Bank MSB Bn 20 00 CC: Bank LSB Cn XX -- PC: XX is the program number
When MMS runs for the first time (i.e., when the app launches), it send one final SYSEX message:
F0 7E 7F 06 01 F7
This message is the an Identity Request SYSEX message (Universal non-realtime message). The receiving device should reply with its identity. For example, the MOX6 replies with:
F0 7E 7F 06 02 43 00 41 44 06 00 00 00 7F F7
I believe that these messages should adequately set up an external XG sound source. Beware, however, when using MMS-specific voices. The external sound source may ignore program change messages for MMS-specific voices because the target sound source does not implement the intended bank.
List of styles
The following preset styles are installed with Yamaha Mobile Music Sequencer when you buy MMS.
Category: Rock/Pop | Jazz/World |
---|---|
BluesRck | Funky Jaz |
ChartPop | JzGroove |
ChartRck | Reggae |
FunkPpRk | |
HardRock | |
PianoBld | |
PowerRck | |
RkShffle | |
RockPop | |
RootRock |
The following styles are in the optional R&B pack.
Category: R&B |
---|
IzzleRB |
JazzyRnB |
RB Chrt1 |
RB Chrt2 |
RnB Bld1 |
RnB Bld2 |
RnB Pop1 |
RnB Pop2 |
RnB Soul |
The following 32 styles are installed with the QY expansion pack. Please note that these styles are only a subset of the 128 built-in styles in the QY-70.
Rock/Pop | Jazz/World | R&B | Dance/Pop | Hip Hop | Electronic |
---|---|---|---|---|---|
6_8 Ballad | Bossa | JB Funk | Disco | HipHop | Drum’n’Bs |
8beatRock | ComboJz | SlowBlues | Eurobeat | ||
16Country | CoolJazz | Smooth | House | ||
24beatPop | Fusion | Soul | |||
AmericaHR | Jazz Waltz | ||||
ArpBallad | Salsa | ||||
DetroitPop | Samba | ||||
GrungeRk | Ska | ||||
HardCore | |||||
HardRock | |||||
LitePop | |||||
Liverpool | |||||
PopWaltz | |||||
RkShuffle | |||||
RocknRoll |