MIDI and sheet music to MML
Turning a MIDI file, or a PDF or photograph of sheet music, into something Mabinogi can play
Why it cannot just be converted
MIDI and MML differ enormously in what they can express, and that is the root of the whole business:
| MIDI | Mabinogi MML | |
|---|---|---|
| Simultaneous notes | One voice can sound several notes at once | One track sounds one note at a time |
| Number of voices | 16 channels, each unlimited | 4 tracks per score (Melody, Harmony 1, Harmony 2, Vocal) |
| Instruments | A track can change instrument part-way | One instrument per track, no changes part-way |
| Timing precision | Very fine — it can record the small imperfections of a human performance | It has to land on the grid to be writable at all |
So conversion is fundamentally about giving things up: at every moment, one note out of several is kept. What comes out is always less than the original; the only question is whether what went missing is the part you cared about — and that is exactly what the capture mode decides.
Sheet music is the same story, with one extra burden. The two hands of a piano part, the four notes of a chord, still have to be squeezed onto Mabinogi's 4 tracks; the difference is that sheet music first has to go through a layer of reading an image as notes, and that layer gets things wrong. MIDI never does — the pitches and timings in a MIDI file are numbers already written down. So sheet music has one more thing to check than MIDI does; see Known limitations.
Step by step: MIDI files and sheet music
The two sources go in by different routes, but once they are in, the road is the same — both open the same track list, use the same capture modes, and answer to the same budget of 16 scores. Read whichever section matches what you have, then carry on to Reading the track list.
MIDI files
- Click File in the editor's title bar
- Pick your
.midfile in the import section - The file box closes itself and is replaced by the track list
- Tick the rows you want, and choose a capture mode for each one
- Press Import
Sheet music as images or PDF
This route needs you to be signed in. Recognition runs on our server, and it is the only import on the site that requires an account. The button stops you before you choose any files, rather than waiting until you have arranged them all.
- Click File in the editor's title bar
- In the import section press Choose a PDF or images… — it is in the same block as the
.midpicker, just below it - Bring your files in; the thumbnails can be dragged into order
- Press Start recognition and let it run
- What comes next is the track list, exactly as it is for MIDI
If you have a PDF, send the PDF. The whole thing is recognised in one go, tempo and time signatures follow the piece as a whole, and you do not have to pick a resolution yourself. With images, one piece is one stack of pictures; scan at 300 DPI or better if you can — a photograph taken with a phone is noticeably worse than a scan.
The order of the thumbnails is the page order, and getting it wrong ruins the whole piece. Top left to bottom right is the order it reads them in. Put page 3 where page 5 belongs and the piece that comes out is wrong, and recognition will not complain — it simply reads them in the order you gave. Check once before you send.
| What you can send | |
|---|---|
| Images | Up to 12, PNG or JPEG |
| One, up to 40 pages. It cannot be mixed with images | |
| Size | 20 MB per file, 25 MB for everything together |
Recognition takes tens of seconds to several minutes; do not close that box while it runs. Offline will not do either — you can still choose and arrange the images, but Start recognition is disabled until you are back online. If any page fails, no half result is imported; the files you sent stay on screen, so you can swap out the one that went wrong and try again.
Reading the track list
Both sources open the same box, and the first thing it asks you is this: importing defaults to Fresh capture, which replaces every score. To add on after what you already have, switch to Append — when a run really would wipe something, that box warns you first. So if you bring in different voices over several passes, remember to switch to Append from the second pass onwards.
Each row in the list is shown in the form Ch 3 · Bright Acoustic Piano. Two things are worth explaining:
One row is not one channel
A row stands for one (MIDI track, channel) pair, not simply a channel. The reason is that piano scores often write the left and right hands as two tracks sharing a single channel — merging by channel would fold the two hands together, and the capture would have to choose between them, giving you something unlistenable.
By the same token, a track is not split apart just because it changes instrument part-way. Mabinogi cannot change instrument mid-track anyway, so splitting would not express the change either; it would just consume two track slots and leave both half empty. Rows like this are marked "▸ N instruments" as a heads-up.
What is shown is the GM instrument, not the track name
That is deliberate. A track name is free text typed by a person; the GM instrument is written by a machine and is what a player actually sounds. Files really encountered in the wild:
| Track name in the file | Actual GM instrument |
|---|---|
MIDI main | Vibraphone — not something you could guess from the name |
MIDI violin | String Ensemble 1 — the name is wrong; this is a string section |
©MidiStar (identical on all 12 tracks) | All different — the name is just the exporting tool's watermark |
You use this row to decide the capture mode (which one for the piano, which one for the bass), and choosing by a name that may well be wrong means choosing wrong. The track name is only shown as a fallback, when the file records no instrument at all.
Channel 10 is the drum kit: it is marked "Percussion", and that row only offers the two drum modes — the GM spec pins this channel to percussion, so a pitch there is a drum number rather than a scale degree, and a melodic mode would capture nothing but a string of meaningless pitches. Percussion is no longer something that cannot be imported, though: all 47 GM drum sounds map onto Mabinogi's own percussion pitches, so drums do convert.
The other way round, every other channel is offered all seven modes, the two drum ones included — some DAWs put the drums on a different channel when exporting, and tightening this side would build a dead end nobody can get out of. The accepted cost: a file that really does put a melodic instrument on channel 10 (a non-GM source, an old tracker export) cannot be imported.
The seven capture modes
The mode decides one thing and one thing only: when several notes sound at the same instant, which one is kept. The first five are for ordinary voices, the last two for percussion.
| Mode | Keeps | Scores | Good for |
|---|---|---|---|
| Favour melody | The highest note | 1 | Melody lines, right hands, flutes, solos |
| Favour root | The lowest note | 1 | Bass, the root of left-hand chords |
| Melody + root | Runs high and low once each, into two tracks of the same score | 1 | Piano arrangements |
| Smart voice split | Lifts the melody out first, then splits the remaining chords into up to 3 accompaniment lines | 1–2 | Arrangements with only one or two channels in the whole piece |
| Full chord capture | One voice per score, losing as few notes as it can | 1–16 | Raw material to pick over and merge yourself |
| Drum kit split | Three lines, by right hand / left hand / foot | 1 | Percussion rows |
| Full percussion capture | One line per percussion sound, notes give way to each other | 1–16 | Percussion rows, as raw material to merge yourself |
Three consequences worth remembering:
- For a monophonic voice, the choice makes no difference. A bass, a melody line or a solo only ever has one note at a time, so Favour melody and Favour root capture exactly the same thing.
- "The long note disappeared" is not a fault, it is the wrong mode. Take an eighth-note ornament sitting on top of a whole note: Favour melody captures the ornament line, Favour root captures the held note. Which one you want is your decision, not something the program should guess. If you want to keep both, move up to the next mode.
- Full chord capture ⊃ smart voice split. Press the smaller one, hear whether it is enough, and if it is not, press the bigger one — everything you heard before is still in there untouched. The two percussion modes are not related that way: the drum kit split is "one score a single drummer could play", full percussion capture is "raw material split as far as it goes" — two products, not two sizes.
Try "smart voice split" on piano scores first. The most common material people import is a piano arrangement with only one or two channels in the whole file — imported one-to-one, most of Mabinogi's track slots sit idle. Smart voice split lifts the melody out into a line of its own and splits what remains into a few accompaniment lines, so one piano MIDI becomes "melody plus three chord lines" and sounds a great deal fuller. If you want it to cost only one score, use Melody + root, which puts the high and low lines into two tracks of the same score.
Percussion: two modes, two products
The drum kit split treats a percussion row as one drummer and splits it into right foot, right hand and left hand — three lines, exactly one score. When a limb has to do two things at once only the louder hit survives, and percussion outside the kit (shakers, tambourine, congas) is dropped wholesale: a drummer is not playing those, and folding them in would only knock out real hi-hat hits. What comes out can be pasted straight into the game.
Full percussion capture goes the other way: every percussion sound gets a line of its own — bass drum, snare, hi-hat, shaker, nobody has to give way. Mabinogi only has 15 percussion timbres, so the shaker will come out sounding like a hi-hat — but it is still a separate line, and whether to keep it is your call.
Notes are stretched forwards, but only up to the moment any other kind of drum is struck, and never further than half a beat. That rule exists for merging: when you merge, a note landing inside another line's note gets swallowed — so every line deliberately stops short of whatever sounds next, and merging a few of them together loses nothing. The time left over is written as rests, so the bar positions still line up.
Dense passages stay short by themselves (there is always another drum about to sound); only the empty stretches get long. Even so most lines will exceed the game's limit — that is expected. Hit "Optimise" once you have merged: it folds the rests back into the preceding notes and the count drops again.
Both modes produce Drum set scores, and on those the roll switches to a layout with one row per drum pad — for how to edit what you have just imported, see the percussion roll.
Broken chords are captured correctly
The capture rule is that any new note entering cuts off the note currently sounding, whether the new one is higher or lower. So a broken chord — notes entering staggered and released together (C → E → G) — is captured as c16 e16 g2.. rather than as the highest note G throughout. Had the rule been "take the highest note in each span", arpeggios would vanish entirely.
The score budget
At most 16 scores can be imported at a time, and it counts the total. Going over shows a red line telling you by how many, and the import button is disabled.
Every row’s figure is counted exactly, not estimated from a worst case. So the number in the mode dropdown is that row’s real cost — Full chord capture (10 scores) means it will take 10, and ticking it adds 10 to the counter.
What you notice most is that full chord capture no longer takes the whole budget: if a row only needs 4 scores, there is still room beside it for the drums and for other voices. It used to count as 16 no matter what, so ticking it turned everything else red.
A row’s figure always matches what actually comes in — the list and the import run the same calculation, so "it said 9 and 10 arrived" cannot happen.
What to check after importing
- With sheet music, read it against the original first. A misread note looks exactly like one you drew yourself — no red, no warning — because it is a perfectly legal note, just not the one printed on the page. Only the original can tell you which ones are wrong.
- Play it through first. The capture rule has no notion of "wrong"; a bad capture raises no error, it just sounds odd.
- Look at the character count. An import usually comes out over the game's limit. If it does, see the next point.
- Use Optimise in the toolbar to bring it down. Its six methods fall into three groups: Lossless and Regroup do not touch a single note; Non-standard durations changes nothing once pasted into the game either, but the piano roll and playback here drift; Fill the gap / Partial fill / Tail rest do change note length (holding on or releasing early), but they never move any note's start time, so the rhythm cannot be structurally broken. Only one method can run at a time, and it tells you how many characters it saved.
- Check the instruments. Importing does not pick Mabinogi instruments for you; choose them yourself on the tabs.
- Set the velocities. Drop the accompaniment tracks a few steps so the melody can come through.
Known limitations
The two sources are limited in different ways, and separating them avoids a misunderstanding. MIDI's limits are about what MML cannot express — convert the same file ten times and you get the same result, which makes it predictable. Sheet music carries one more layer, recognition getting things wrong, and that one is a matter of chance: the same piece at a different resolution, or sent as a PDF instead, can come out differently.
First, the ones both sources meet:
- Pitch bend, pedal and velocity curves are ignored. Mabinogi MML has no such things.
- An imported result is written out literally, not compressed. One
lfor the whole track, no merged rests, no rewriting spellings to save characters — this is deliberate: what you get is a score that is easy to read and edit, not a shortest-possible blob nobody can follow. The price is a higher character count, so if an import shows as over the limit, the first thing to press is Lossless (measured at 1–18% saved); it does not move a single note.
MIDI only
- Triplets played in by hand are not picked up. On import every note is snapped to a 1/32-note grid, and triplets do not land on that grid — so the importer finds the triplets first and places them on the exact thirds (all five bases are recognised: whole, half, quarter, eighth, 16th). But the test is "closer to the third than to the grid", and a recorded performance wobbles by a dozen ticks or more, which puts the whole file outside that line and back on the grid. Files made in notation software or a DAW have exact triplets and are picked up. Inside a triplet group, staccato is also stretched to legato. The reasoning is in the FAQ.
- Tempo changes are kept, but remember that tempo is shared by the whole piece (see the MML syntax guide).
Sheet music only
- Recognition reaches about ninety per cent at best, and always needs correcting by hand. That is not a fault, it is where the technology stands. Treat it as something that types most of the notes in for you, not as one press away from a finished score.
- Tempo markings are often not read. When none is found the default tempo is used and you are told so afterwards — the tempo printed on the page has to be put back by you.
- Where note values are misread, the rhythm stumbles. When the notes in a bar do not add up to a whole bar, you are told how many bars came out that way; those are the places to correct against the original.
- Tuplets other than triplets are snapped to the grid. Triplets keep their exact positions just as they do from MIDI, joins across pages included; quintuplets, septuplets and the like are quantised, with a warning.
- Something that is not a score, or is too low in resolution, is refused whole. When no staves can be found it will not hand you half a result. Scan at 300 DPI or better; if you have a PDF, do not turn it into images.
- Handwritten scores, crooked photographs, and scans with creases or binding shadows all bring the accuracy down. Printed music, held square, evenly lit, makes a large difference.
Not read the MML syntax yet? Start with the Mabinogi MML syntax guide — you will want it when it comes to fixing things by hand after an import. If the editor itself is unfamiliar, see the editor quick start and the editor reference. For anything else, the FAQ.