- MML is short for Music Macro Language. It is the code used by the Compose skill to create music in Mabinogi.
- MML uses a system which is very similar to .midi files. The notes, tempo, and octave are defined in code.
- Every instrument can play every piece of code in the MML system.
The elements of MML are listed in the table below. MML is not case-sensitive, so either upper or lower case can be used for the same result.
|T||T136||This sets the tempo of all notes played after it is set. It affects notes in the melody and both harmonies at the same time, regardless in which of the three it is set. It is always followed by a number which is the actual tempo it is being set to. A tempo of 32 is the slowest and 255 is the fastest. If it is not within this range or not set, the tempo will default to 120.|
|L||L8||This sets the default length of all default notes (notes without numbers after them) played after it is set. It only affects notes in one section, so the melody can be set to a different length than either harmony at the same time. It is always followed by a number which is the actual length it is being set to. If a "." is included the length of the note is increased by 50%, and more than one "." will be ignored. A length of 1. is the longest and 64 is the shortest. (any higher value will set it to 64) If it is not set, the length will default to 4.|
|.||L16., B2., E.||This increases the length of notes by 50% of the length they are set to. It is always placed after what is being lengthened. In essence, it fulfills exactly the same function as a dot in traditional music notation, except in that it cannot itself be modified by a dot. For example, the note "A2." will play 50% longer than "A2". Also, "B." will play 50% longer than "B".|
|V||V10||This sets the volume of all notes played after it is set. It only affects notes in one section, so the melody can be set to a different volume than either harmony at the same time. It is always followed by a number which is the actual volume it is being set to. A volume of 1 is the quietest and 15 is the loudest. (any higher value will set it to 15) If it is not set, the volume will default to 8.|
|O||O6||This sets the octave of all notes played after it is set. It only affects notes in one section, so the melody can be set to a different octave than either harmony at the same time. It is always followed by a number which is the actual octave it is being set to. This octave number corresponds to a popular description in music theory. "O4" indicates the octave which contains the standard tuning note A440 (the A below middle C). An octave of 1 (any lower value will set it to 1) is the lowest and 8 is the highest. (any higher value will set it to 8) If it is not set, the octave will default to 4. Also, the symbol "<" can be used to lower the octave by 1 and ">" can be used to raise the octave by 1.|
|<, >||<, >||The symbol "<" can be used to lower the octave by 1 and ">" can be used to raise the octave by 1. All notes after these are affected by the octave change. As with the "O" symbol, it only affects the section it is used in. These are mostly used to reduce complexity if only single octave changes are needed.|
|A, B, C, D, E, F, G||A4, B+2., C, D-16, E+, F., G1, F#||These are the actual notes which play during the song. They are often followed by a number to determine the length of the note, but any notes without a number will play for the default length. (set by "L") As with "L", if a "." is included the length of the note is increased by 50%, and more than one "." will be ignored. A length of 1. is the longest and 64 is the shortest. Any higher value will result in the note being ignored. These letters indicate the same pitches that they do in traditional music notation. Octave breaks are also treated the same way as in traditional music theory: the octave breaks between B and C. Thus if you wrote "CB", rather than going down a half step, the music would jump up a major seventh. They are also modified by "+"'s (or "#"'s) and "-"'s, which produce sharp notes and flat notes, respectively. They are affected by the settings used with "T", "L", "V", and "O". Without at least some of these, nothing will be heard when a song is played.|
|+, -, #||B+4, D-8, F+, E#, A#1||"+" and "-" indicate sharps and flats, respectively, and are placed between the note they modify and the length modifier. "#" is also another symbol used for a sharp. If you are unfamiliar with how sharps and flats work, think of them as between notes. For example, a "C#" is between a "C" and a "D" in pitch. Sharps raise pitch by a half step and flats lower pitch by a half step. Note that B and C are only a half step apart to start; likewise with E and F, thus writing "E#" will produce the same pitch as writing "F". Because of the octave break between B and C, this can be used to reduce the number of characters in a passage slightly in certain situations: for example, "BB+B" is one character shorter than the equivalent "B>C<B".|
|&||G2&G4., G4&G8.||This is a tie, which means the note will play for duration of all of the same-pitched notes tied to it combined. For example, G2&G4. will play the note G for the duration of 3 1/2 beats [2(half note) + 1(quarter note) + 1/2(50% increase of quarter note) = 3 1/2 beats (common time)].|
|R||R8, R1.||This is a rest, which means there will be no note played during its duration. (a silent note) They act just like notes otherwise, which means they are often followed by a number to determine the length of the silence, but any rests without a number will play for the default length. (set by "L") As with "L", if a "." is included the length of the rest is increased by 50%, and more than one "." will be ignored. A length of 1. is the longest and 64 is the shortest. (any higher value will set it to 64) They are affected by the settings used with "T", "L", and "O".|
|N||N72||(Not recommended for novices.) Plays a note depending on the number after the "N". (This is a Midi Note Number) This can be useful for situations such as "g+>c+<g+>c+<g+>c+" which can be shorted to "g+n61g+n61g+n61". The note played is affected by the settings used with "T", "L", and "V".|
- All score scrolls can have three parts that make up the music: the melody, the first harmony, and the second harmony.
- There is an additional line for Song, which is used exclusively for Fantastic Chorus and Song.
- All three parts are played at the same time and thus, only three notes can be played at one time during a song.
- For Song, only the Song line is read. Be sure to incorporate the tempo and volume along with the rest of the MML code for Song.
- Only one tempo ("T") can be set at a time across the three parts. All three parts can have their own length ("L"), octave ("O"), and volume ("V").
- The Compose skill determines the number of characters allowed in each part.
- Every letter, number, and symbol is included in the character count. For example, the single note "A32." takes four characters, and so do the four notes "AAAA". The "L" character can be used to reduce song complexity. If, for example, you have many "A32." notes in the same part of a song, you can simply use "L32." first and then replace every "A32." with "A". This will automatically make each "A" note have the "32." attached.
- To use the " Read from the Clipboard " feature to create Score Scrolls, the clipboard must contain valid format MML complete with language format text. This includes the MML text header, the part separators, and the end symbol. Failure to have the MML formatted correctly will prevent the Read from the Clipboard feature from working. While tools like 3MLE can place these codes, to create Mabinogi clipboard readable MML in a text editor (such as Notepad) they must be placed manually.
- The text must start with the header "MML@"
- If there is more than one part then there must be a part separator comma "," between the parts. The last part, regardless of it being a 1 or 2 or 3 part song, does not need the separator since there is no other part after it.
- The MML text must end with a semicolon ";"
- Example: a simple MML to concurrently play notes E and B each in its own part
- MML@ e, b ;
There are tools and programs that can help you create songs, make things easier to understand, and reduce the amount of wasted scrolls.
Nexon's Mabinogi Composer lets you write songs without installing anything and uses a relatively easy-to-use interface. It also allows you to hear the songs in some of the instruments in the game. However, it doesn't provide the proper clipboard format, so you have to copy and paste three times to create a song in the game. Also, you have to keep track of the default settings yourself as it doesn't display any feedback on their effects until you have it play the song.
- The composer has been taken down by Nexon to accommodate new changes to the website.
3ML Editor is a free program which has more visualization and feedback. It tells you onscreen what the tempo, volume, octave, and default length is at the location of your cursor. It also gives you visual feedback on the length of notes so you can see and try to visually match up your notes. It even lets you play the melody or either harmony alone without the others to see how they sound that way. Another great feature is that it converts the song to proper clipboard format for easy pasting into Mabinogi and it even will optimize the song to reduce the complexity and tell you what composing rank will be required to compose the song. However, it has to be downloaded and extracted before it can be used and it doesn't perfectly follow Mabinogi rules in a few ways. If it is provided an invalid value that is either too high or low for "T", "L", "O", or "V" it will ignore them rather than setting them to the closest as Mabinogi does. Also, it offers the standard .midi library of instruments to play the songs on, which do not have the same sounds as the instruments in Mabinogi.