Both 3MLE & MS2 (MapleStory 2)
Sustain commands work on most instruments (see this comment for the list)
The sustain commands in both 3MLE and MS2 are global; e.g. putting 's1' in track 1 will start sustaining all notes in all tracks
Sustain commands can be put in any track; e.g. putting 's1' in track 1 to start sustaining notes and then putting 's0' in track 2 to stop sustaining notes
You can use 's0s1' to reset sustain (end the notes currently being sustained and then start sustaining all further notes)
3MLE
**If you are using sustain commands in 3MLE: Never use the Optimise Tool because it will remove all sustain commands
For sustain commands to be recognised in 3MLE every track needs to have this at the top (including two blank lines):
//#using_extension
//#using_channel = 1
It should look like this:
These two lines assign this track to channel 1.
If you are using more than one instrument, you need to make sure that the tracks of different instruments use different channels
Example: If you are creating a pianio, violin and cello trio performance then all piano tracks could have "#using_channel=1", all violin tracks could have "#using_channel=2" and all cello tracks could have "#using_channel=3"
The 3MLE sustain commands are:
'y64,[1-127]' will START sustain (the "[1-127]" means any number between 1 and 127, so an actual command might look like this: 'y64,99')
'y64,0' will STOP sustain
MS2
The MS2 sustain commands are:
's1' will START sustain
's0' will STOP sustain
---Tips---
All of the methods below involve using Notepad++ (You can download it for free here: https://notepad-plus-plus.org/download)
Replace sustain commands
3MLE recognises sustain command values between '0' and '127', however MS2 only recognises two values: '0' and '1', so if a 3MLE file contains only two sustain values: 'y64,0' and 'y64,127', you can use replace tool in Notepad++ to quickly replace 3MLE sustain commands with MS2 sustain commands:
Select the 'Wrap around' option:
Find what: "y64,0"
Replace with: "s0"
select: 'Replace All' or 'Replace All in All Opened Documents' if you are using multiple tabs
and then do the same thing but with different values:
Find what: "y64,127"
Replace with: "s1"
Replace sustain commands with varying values
Some imported .mid files contain sustain commands with varying values, such as 'y64,34', 'y64,11', 'y64,101', so to replace them you can use replace tool in Notepad++:
*make sure only the following options are selected: 'Wrap around' + 'Regular expression' + '. matches newline'
It should look like this:
then perform the steps in order: 1: replace "y64,0" with "s0"
Find what: "y64,0"
Replace with: "s0"
select: 'Replace All' or 'Replace All in All Opened Documents' if you are using multiple tabs
2: replace "y64,[0-9]+" with "s1"
Find what: "y64,[0-9]+"
Replace with: "s1"
select: 'Replace All' or 'Replace All in All Opened Documents' if you are using multiple tabs
Remove 3MLE comments
You can use replace tool in Notepad++ to quickly remove the 3MLE comments at the beginning of each line e.g. "/*M 0 */ " :
Find what: "\/\*.*?\*\/ " (without quotation marks, but including whitespace characters)
Replace with: "" (make sure it contains nothing, not even whitespace characters)
*select only the following options: 'Wrap around' + 'Regular expression' + '. matches newline':
It should look like this:
Then select: 'Replace All' or 'Replace All in All Opened Documents' if you are using multiple tabs
*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.
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.
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.
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".
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.
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.
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)
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.
*** 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.
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.
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.
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.
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.
Open two instances of 3mle
On the first 3mle go to import (CTRL+SHIFT+I) and select 1 TRACK from the total list
Your settings should look like this
After importing the Midi track go to the second 3mle and import the next Midi track
When the second Midi track is imported all you are gonna do is press CTRL+A then CTRL+C
Go to the first 3mle and press CTRL+T and then CTRL+V
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;
Optimize the song
Change the octaves of certain tracks, to match the instrument that you want to use for that track.
Set the tempo If the song requires more than one person to play it (you only need to set the first track per player)
After doing all of these things you just need to test the song by pressing the play button.
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;
Optimize the song
Set the tempo from the first track to be the exact same on all the other tracks (See "Ticks")
Adjust the volume to your liking
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).
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.
"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.
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
Finally decided to post my guide here. Doubt its the best and I'm sure someone will make a better one once GMS2 is released, but I haven't seen a video guide that goes over all this information yet. I did make a few mistakes but its good enough.
Somethings I could have explained better were note lengths and character limits.
Note length explanation:
1 = whole note
2 = half note
4 = quarter note
Etc.
So two half notes equals a whole note, four quarter notes is a whole note, sixteen 32nd notes is a half note. Just a little bit of basic math.
Character limits:
MapleStory 2 has 3 different music sheets, one for 3000 characters, one for 5000, and one for 10,000. The 10k sheet is locked by default, you will need to unlock it (which can be done by just playing music and leveling up your mastery). 3ML will show you the amount of characters used in a track at the bottom.
Midi used in this video can be found here:
https://musescore.com/scorpio5/scores/5043474
I've also posted the final product here: