Jump to content

Opalthira's MML Guide


Recommended Posts

*This guide is a work in progress*

This guide will teach you how to understand and write mml code, "basic music theory", and how to use the 3ml editor.

Table Of Contents

     1.Chapter One: MML Coding List

  • Coding List
     

       2.Chapter Two: 3MLE

  • Setting Up 3MLE
  • 3MLE Tools
  • 3MLE Terminology
  • Problems With 3MLE

     3.Chapter Three: Types of Writing

  • MIDI
    MIDI Import Video
  • Synthesia
  • Sheet Music

 

Chapter One: MML Coding List

Coding List

Symbol

Usage Example

Description

 t

 t136

This sets the speed of all notes played after it is set. 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. To change a tempo during a tie, you must add the tempo before the tie. Like this “a16t136&b12”.

 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. 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.

v

v15

This sets the volume of all notes played after it is set. It only affects notes in one section. 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. It is always followed by a number which is the actual octave it is being set to. If it is not set, the octave will default to 4. It is possible to use octave 0 or o0, however it will not register in 3mle.

 <,>

 a<b>c

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.

 

 +, -, #

 

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 it does not work in Maplestory2. 

 &

 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,  any rests without a number will play for the default length. 

n

 n64

(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".

 

 

Chapter Two: 3MLE

Setting Up 3MLE

To set up 3mle you will need to download a extracting software such as winrar, and download 3ml. (see 3ml editor tab)
Make a new folder on your desktop (or desired area) and open the 3mle download.
Click the "extract to" button and then find and click on the new folder you made.
extracting.pngLocation.png

If it says the Download had failed or the data is corrupted extract the folder using winrar.

The Text box

To set up the text box all you need to do is move your mouse to the bottom of the screen.
Where it says "Tempo 120, Octave 4,  Velocity 8, L4"
Then move the mouse till you see this cursor and drag up to reveal the textbox.

firefox_2018-10-05_10-05-27.png.8ea97f2dba62131e8e393e2b9c63e158.png

You can use this box to type out your mml with having to leave the editor (or use notepad).
Pressing enter will drop down one line. After doing so it will make a new line underneath with another number to the left of it.

dropping the boxes.png

This can be an easy way to keep track of what measure you are currently working on.
So i recommend doing this as often as possible to make your mmls neater and easier to access.

3MLE Tools

Tracks

Tracks are used to keep track of melodies, harmonies, and to make jams.
To add track you simply click on track and then "append track".
2018-05-24.png.ed9e574f2079139da0dbf0eba1db4e84.png

You can change the instruments for each track by clicking on the track, and then clicking on the box underneath the track.
You can also mute a track by clicking on the speaker icon next to the instrument box.

2017-01-20 (8).png

Exporting & Importing Mmls

In 3mle you can import mmls written in Mabinogi format into 3mle or export mmls into Mabinogi format.
You can do this by clicking one of the icons below the help button.
The red one being export and the green one being import.

2018-10-21.png.e3b023cfd4c270a495225fbae5ba12c5.png

Setting Time

You can change the time of your mml by clicking on "File" and then "properties" or press F8.
After doing that you click on the arrows beside "Beat" to change the Time.
You can only change the time setting once in 3mle.
If you need to change it multiple time per song it is recommended to do so in multiple 3mles and then add it back in later via copy pasting.
(I'll get into the importance of time later)

2017-01-20 (10).png

Optimize

Optimize is a tool that is by default used in 3mle, it is listed under track and is near the bottom.
You can also use CTRL+SHIFT+Y to optimize all tracks at once.
It will cut out midi notes and text from the song.
Such as "Measure 1 = L8eeee".
It also shortens any text into a more compact size making it so you use less characters. 
Ie. e8e8e8e8 > L8eeee

3ML Terminology

Gate - Gate determines the length of a note.

Vel/Value - Determines the volume

Measure and Tick - Measures are the bars that hold the notes and are typically 4 beats in length. Tick is number that is represents the total value of the notes being played in a song, commonly refereed to as "Ticks".
This is used to determine where tempo changes go.

2058126642_2018-05-12(2).png.ddaf7869c781e065b14ca3ba486007ad.png

*** All tempo changes need to be in EXACT same spot as they are in the first track of a song regardless of game otherwise the song will desync.*** 
Ticks are used for determining where tempos changes go in jams for Mabinogi and finding where tempo changes go in every track of Maplestory 2. In Mabinogi you primarily use ticks to determine where to add tempos for jams, specifically when there is another instrument being played by another person. You only need to do this for the first track in Mabinogi as the game supports global tempo, meaning that it applies all tempos from one track to everything being played by that one person.
For Maplestory 2 however you need to add the tempos from the first track to EVERY track and it has to be in the EXACT same spot as the first track.

Using Ticks - Using tick can be annoying at time as you need to determine where tempos go.
Sometimes you may luck out and the tempos can just be easily placed without issues. Where as other times you will need to break up the notes to fit the tempos in there and then put them back together. 
For the first instance, all you need to do is find a track that has the tempos listed in it. Sometimes it is on the first track and has notes, while other times it may have the tempos listed on a track of its own. From there all you need to do is match the tick lengths from track one to all tracks and add the tempo. be sure to double check where you are adding the tempos so that you are not breaking up any notes such as sharps (ex. b+), on top of that make sure after you added the tempo its in the right place. Sometimes you might add it in and it will be too far to the right of the note and add the tempo after that note and not where you wanted it to go.

If you have to break down notes to add in the tempos you are gonna need to do math to determine where the tempos need to go.
This can be frustrating however it can be easy If you follow this chart.

1068310952_unknown(3).png.a9be74e178c72b7d1ba60a874226d25d.png

By following this chart you can determine the amount of notes required to add in the tempo changes.
An easy way to make sure your songs don't desync is to write down the total tick length for each track.
You can do this by scrolling down to the bottom of each track and writing the last number under the tick section.
From there if there is a rest you can write out the length of the rest, delete it and then determine the difference needed to match the same tick in the first track.

For example;
We need a tempo of 89 on tick 111.0000 but the nearest point is 111.0012 and there is r with the value of 32. in the way.
1549491668_2018-10-21(1).png.af995ba398852bd6038d3140462e544f.png576676147_2018-10-21(1).png.3e9ded7fc7e9475e51da5bafad02260b.png

First we find our total tick value which is 112.0000
We would delete the r and the nearest tick value would change to 110.0378.
From here we can subtract 110.0378 from 111.0000 to determine our difference and we get 0.9622.
Following our chart that is equal to 5 r2s... However if we add 1 r2 we go over our target.
So instead of doing that we are gonna add a rest descending from r2 until we find a number at or below our target.
After descending in order we get to r64 which is equal to our target number so we add our tempo.
Now the song is desynced, and we need to fix that. To do this we are gonna take our final tick tempo that we wrote down which was 112.
And subtract the new tick final tick from it to get the difference. So 112 - 11.0372 = 0.9628 which is again not usable.
So we start from the top and make our way down to where we are below the target of 112 or at it. 
After working down the ladder we get to r32 and the song is back into sync and ready to be played in ms2.

This is the process you need to repeat for every track and every single tempo change within a song.
 

Known Problems With 3MLE

3MLE isn't perfect there are problems with it and they are not fixable at this time here is a list of problems with the program.

  1. You cannot turn off global tempo for Maplestory 2.
    This is problem because you cannot test for desyncs within 3mle you must do in game.
    3mle was designed 10 years ago for Mabinogi and re-purposed for Maplestory 2.
  2. Triplets do not load properly in 3MLE.
    You will have to manually edit the code to fix this.

 

Chapter Three - Types of Writing

There are lots of ways to write mml but the three most common ones (to my knowledge) Are; Midi, Synthesia, and Sheet music.

Midi

Midi's are the easiest way to make songs for Mabinogi and Maplestory 2.
They are premade songs that you just need to import into 3MLE and set the tempos and volumes for to play.

Importing Midi's 

You must import midi files a specific way into 3mle in order to get the full song to play.

  1. Open two instances of 3mle
  2. On the first 3mle go to import (CTRL+SHIFT+I) and select 1 TRACK from the total list
    Your settings should look like this
    1586244217_2018-10-21(2).png.b6320aa624329155313f48e188f1a711.png
  3. After importing the Midi track go to the second 3mle and import the next Midi track
  4. When the second Midi track is imported all you are gonna do is press CTRL+A then CTRL+C
  5. Go to the first 3mle and press CTRL+T and then CTRL+V
  6. Repeat steps 3-5 until all Midi tracks are imported

Importing Midi Video
Made by Free/Phrasia
http://puu.sh/BKqxI/12496185dd.mp4

Mabinogi
After importing a song you may need to;

  1. Optimize the song 
  2. Change the octaves of certain tracks, to match the instrument that you want to use for that track.
  3. Set the tempo If the song requires more than one person to play it (you only need to set the first track per player)
  4. After doing all of these things you just need to test the song by pressing the play button.
  5. If it meets your qualifications just export the song and click read from clip board to put it in game.

Maplestory 2
After Importing the song you will need to;

  1. Optimize the song
  2. Set the tempo from the first track to be the exact same on all the other tracks (See "Ticks")
  3. Adjust the volume to your liking 
  4. Copy one track at a time into the in game composer and create the score.
     

Synthesia

Synthesia are visual videos that show notes being played, you can find a lot of them on youtube.
It is very similar to the way 3mls player looks. However instead of the notes going from top (high octave) to down (low octave) Synthesia's go Left (low octave) to right (high octave).
measure in 3ml.png                 58d494d6be3a1_2017-03-23(2).png.d4d68aceec30d908cf8c39476a0a48e7.png.325125684d2e3b79377682ef6f4ff50f.png
To convert them to 3mle all you need to is copy the notes from the video into 3mle.
The notes are normally NOT listed in the videos though. So I recommend using the Keyboard tool to copy out notes.
The only note that is normally marked is "c4" which is marked with a dot on the key. 

octavio.png
"But that sounds like ALOT of work. I don't want to count up and down to figure out each note >:L"
Well do i have some Great news for you! You don't need to count up or down from c4, because the octaves are also marked in the videos.
The octaves are marked by a little rectangle followed by a large rectangle.
The little rectangle has the notes C,D and E. And the large rectangle has the Notes F,G,A and B.

58d494d6be3a1_2017-03-23(2).png.d4d68aceec30d908cf8c39476a0a48e7.png.325125684d2e3b79377682ef6f4ff50f.png

Synthesia tips

Sometimes Synthesia's use Time, It will not affect how the song sounds.
Time determines how many beats can be played within a Measure. Such as 3/4 time, where only three beats will play in one measure.
Using Time will reduce stress greatly because you can make it so that your measures match up in 3mle and in the video.
Time can also only be changed once in 3MLE so if it changes again you would be better off doing it a separate 3MLE window. 
However most Synthesia's have a one to three measure gap before actually starting the song. 
Be sure to take this into account when writing songs using this method, will save lots of time and stress.

Sheet music

 

*to be continued*

 

 

 

 

 

 

 

 

 

 

 

 

 

Edited by opalthira
Updates for ms2 and overall quality updates
Link to comment
  • 4 months later...

 @opalthira When I import a MIDI separately, 1 track at a time, it causes the other MIDI to disappear. (Example, in the picture below when I import 'A01 MIDI Out', it works, however when I import 'A01 MIDI Out #2' it works, but 'A01 MIDI Out' is replaced with 'A01 MIDI Out #2'. Any ideas? P.S Sometimes on other songs, it doesn't replace it but combines. Which is what I want. 

d1901b20afb6f722f38012b05496ec8f.png

Edited by MyNameIsMichael
Link to comment
20 hours ago, MyNameIsMichael said:

 @opalthira When I import a MIDI separately, 1 track at a time, it causes the other MIDI to disappear. (Example, in the picture below when I import 'A01 MIDI Out', it works, however when I import 'A01 MIDI Out #2' it works, but 'A01 MIDI Out' is replaced with 'A01 MIDI Out #2'. Any ideas? P.S Sometimes on other songs, it doesn't replace it but combines. Which is what I want. 

 

What you need to do is open a second 3MLE and copy paste them into the first 3MLE.
http://puu.sh/BKqxI/12496185dd.mp4
This video by Free/Phrasia Shows the process you need to do to import midi songs.

Link to comment

Occasionally when I import MIDI songs into 3MLE, I get a few tracks with tempo changes in the middle of the song. When I attempt to translate the MIDI into maplestory 2, the music desyncs and doesn't work well. I can only figure that it's the tempo changes in the middle of the first track that dont translate to the other tracks. How do I remedy this? It's incredibly hard to find the right spot to put the tempo change in for all tracks in the song. 

Link to comment
2 hours ago, MedicalKit said:

Occasionally when I import MIDI songs into 3MLE, I get a few tracks with tempo changes in the middle of the song. When I attempt to translate the MIDI into maplestory 2, the music desyncs and doesn't work well. I can only figure that it's the tempo changes in the middle of the first track that dont translate to the other tracks. How do I remedy this? It's incredibly hard to find the right spot to put the tempo change in for all tracks in the song. 

This is because Maple does not use global tempo, which 3MLE and Mabi do. If there is a tempo change somewhere else in the track, you have to make it match on all the tracks. This can be fairly tedious depending on how many tracks there are, and how many changes there are. It can also involve editing notes and rests to make sure the tempo goes exactly where it needs to be. This is what the Tick Step Event box is for. It will tell you exactly where everything is. So if there is a tempo change at 78.0192 (which basically means measure 78 at the halfway mark), then there needs to be a tempo change across all tracks at 78.0192.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...