Editor Reference
What every button does
This page is for looking things up. If this is your first time, walk through the editor quick start first — that one is a single route from nothing to pasting into the game. If you only want to know what a key does, see keyboard and mouse shortcuts.
I want to do X — which section
| I want to… | See |
|---|---|
| Get the character count down so it pastes into the game | Optimise (start with Lossless) |
| Hear only a section in the middle | Partial playback |
| Control playback without the mouse | Playback shortcuts (Space and the four arrow keys) |
| Change the volume or the key of a whole span | Velocity, Transpose |
| A bar is missing in the middle, or a whole span needs pushing back | Right-click menus (insert / delete bars) |
| Turn a few notes into triplets | Right-click menus (on a note) |
| Fold two tracks into one | Merge tracks |
| Change the tempo of the piece, or change it part-way | Tempo |
| Move a score in from the game, or back out to it | Clipboard |
| Save to a file, or import one | File |
| Make an audio file for someone who does not play the game | Mixdown MP3 export |
| Make a video you can post on social media | Make MP4 video |
| Give a friend a link | Share |
| Find where a note in a long score sits in the text | Piano roll (double-click the note) |
| Change instrument, rename a score, mute one of them | Score tabs |
| Draw dotted notes, or dot notes you already drew | Dotted notes |
| Look up what a key or a mouse gesture does | Keyboard and mouse shortcuts (four tables) |
| Write music on a phone or tablet | Writing music on a phone or tablet (gestures and the control panel) |
Title bar
The top line. The site name on the left returns to the editor home page; five feature entrances sit on the right.
The 夜光 MML Workshop wordmark in the top-left only returns to the editor home page; it does not clear anything. To reload the demo, use About → Load demo score; Ctrl+Z undoes it.
Clipboard
This is how scores move to and from the game. MML is plain text, so everything goes through the clipboard. The box has two halves:
| Button | What it does |
|---|---|
| Paste | Reads the MML in the clipboard. Two modes above it: Append fills from the first empty score and leaves the existing ones alone; Replace all clears everything and fills from score 1 |
| Copy current score | Copies the current score as one MML@…; block with all four segments inside, ready to paste into the game |
| Copy all | Copies every score at once. The block as a whole cannot be pasted into the game (it is multi-line), but each line individually can; pasting it back into this site restores the score names and instruments too |
Copying strips whitespace — that is what the game counts. A score with a track over its limit still copies, but you are told that this one will not paste into a Blank Score.
Some browsers will not let a page read or write the clipboard directly; when that happens a small box opens asking you to press Ctrl+V or Ctrl+C yourself — nothing is broken.
File
Four blocks, top to bottom:
| Block | What it does |
|---|---|
| New / Save | Create New: starts a brand new file — score count, names, instruments and the file name all go back to default. Save to…: stores the whole session under a name; two tabs pick the destination — local (in the browser, 20 MB limit, gone if you switch machines) or web (on our server, comes back on another machine, needs a sign-in). Either side lets you open, delete, copy to the other side, and download a batch as one .zip. After the first save, Ctrl+S writes straight back to the same file |
| Import | Takes .mid, 3MLE .mml and MabiIcco .mmi, and you can also drop a file into the box. It lists the voices in the file that contain notes for you to tick, up to 16 scores. The same block also holds a separate Choose a PDF or images…, which recognises a PDF or photographs of sheet music as a score; it requires signing in, and is covered in MIDI and sheet music to MML |
| Export | Type a file name, pick a format (.mid / .mml / .mmi), press Download. Beside it sits Mixdown MP3 export, which is a different thing — see mixdown MP3 export |
| Clear | Clear all notes: clears the notes only — instruments, score names and the file name are all kept. To reset the whole line-up too, use Create New at the top. Ctrl+Z undoes it |
The import list has two modes: Fresh capture (replace everything) and Append (add after the existing tracks). Each row also gets a capture mode; the details of that are in MIDI and sheet music to MML — sheet music recognition opens the same list, with the same modes and the same budget.
To take a whole ensemble away with you, save as .mmi — one mml-track in it is one score. .mml holds at most 16 tracks, so a full ensemble does not fit and something is left out (you are told when that happens).
Share
Creates a link; whoever opens it gets this whole ensemble. Signing in is required (in a copyright dispute this site must be able to notify the sharer by law, so an email address has to be on record).
Before it is sent the score goes through character-count compression that is non-destructive to the original notes — notes, lengths and tempo are completely unchanged, only written more compactly. Sharing identical content again gives you the same link.
The lower half of the box is the list of links you have shared, 10 per page, each with three actions:
| Action | What it does |
|---|---|
| Load | Loads that one back into the current editor, replacing what you have (Ctrl+Z gets it back) |
| Copy link | Copies the URL to the clipboard |
| Delete | The link stops working immediately and anyone opening it sees "not found". The score in your editor is unaffected |
Settings
A drawer on the right; for its contents see the settings drawer section. Esc closes it.
About
A drawer on the right containing six guides, the demo score, credits, terms, privacy policy and version information. Load demo score replaces the current contents, but Ctrl+Z undoes it. Esc closes it.
Playback row
The left half of the toolbar.
| Button | What it does |
|---|---|
| ▶ Play | Plays. Becomes ❚❚ Pause while playing, and ▶ Resume once paused. The shortcut is Space |
| Stop | Stops and returns to the beginning. The shortcut is ↓ |
| Follow | The view follows the playhead across pages while playing. Scrolling horizontally yourself switches it off, and one click turns it back on |
| Whole / Range | Play the whole piece, or just a section. Pressing Whole clears the start and end markers on the bar ruler |
| Loop | On reaching the end (or the end marker), start again from the beginning (or the start marker) |
How to set the range for partial playback: the quickest way is the bar ruler — left click sets the start, right click opens a menu whose first three items are start, end and clear, and you can move the range live on the ruler during playback. In the roll, Select only mode plus a left click on empty space sets the start marker; a right click on empty space now opens a menu, whose first two items are exactly these two markers (see right-click menus). Selected notes can be bracketed directly too — right-click those notes and it is there.
Both panes are read-only while playing. Neither the roll nor the text pane can be changed during playback. You can edit while paused, and the changes take effect when you press Resume. The right of the roll toolbar shows whether you are currently Playing / Paused / Editing.
The keys down the left side do still sound while playing — press them against the accompaniment you are hearing to judge whether a note sits well on top of it. They use a channel of their own, so they never cut a note out of the piece, and a muted score can still be auditioned. The roll's other previews (clicking a note, drawing a note) stay silent during playback: clicking a note then means "select this", not "play this".
Playback shortcuts
Five keys, and none of them wants a modifier:
| Key | Effect | Requires |
|---|---|---|
| Space | Play / pause / resume (the same as pressing the button) | Engine ready |
| ←/→ | Playhead one bar back / forward | Playing or paused |
| ↑ | Back to the start (to the start marker if one is set) | Playing or paused |
| ↓ | Stop | Playing or paused |
The four arrow keys act only while playing or paused; when stopped they do not belong to playback, and neither do they during a drag — the arrow keys are half-cell fine-tuning then. Moving the playhead is clamped inside the playback range and stops at the edge, and never stops playback. With Follow switched off the view jumps to the playhead once, but Follow is not switched back on.
Holding a key does not repeat: one press, one step. To jump further, click straight onto the bar ruler.
Space belongs to playback only while nobody else wants it. With focus on a button, a checkbox, a dropdown or an input, the space bar keeps its usual meaning (it presses that button) — otherwise anyone working from the keyboard could not press anything in the settings drawer. Play and Stop are the exceptions: with focus on those two buttons the space bar is still play/pause, so pressing space after a Stop plays again.
The whole group stands down while a dialog or a right-click menu is open (the menu wants the arrow keys itself), and likewise while you are typing in the text pane.
Media keys on keyboards and headsets
The media keys along the top of a keyboard, and headset controls, drive playback here too:
| Media key | Effect |
|---|---|
| ⏯ | Play / pause |
| ⏹ | Stop |
| ⏮/⏭ or ⏪/⏩ | One bar back / forward. This site has no "previous track / next track", so those two are wired to rewind and fast-forward rather than being keys that do nothing |
Once you press Play, the system's media keys belong to this tab. Which is to say the player you were controlling with them stops receiving them, the operating system may raise a "now playing" notification, and on a phone background audio may be interrupted. That is the price of the feature, so it does not happen just from opening the site — it waits until you really press Play, and Stop hands the keys back.
Media keys depend on browser support and not every browser has it — if the whole group does nothing, that browser does not support it, and the five keys on the site are unaffected.
Roll toolbar
Select only, and note length
Select only (shortcut 0) is arrow mode: clicking empty space draws no note and sets the playback range instead. The six buttons to its right are the note length, shortcuts 1 to 6:
| Key | Length | Key | Length |
|---|---|---|---|
| 1 | Whole note | 4 | Eighth note |
| 2 | Half note | 5 | Sixteenth note |
| 3 | Quarter note | 6 | Thirty-second note |
Choosing a length puts you in drawing mode, and a left click on empty space draws a note of that length. To go back to clicking notes and reading along in the MML after drawing a few, press 0.
There is a seventh, 7, the sixty-fourth note — but no button for it in the toolbar. Press it and all seven go dark; that is not a fault, it means "the current length is not one of these seven". Two costs to know first: one is only 6px wide, so it is only comfortable once you zoom in (zoom far enough and an extra, finer grid line appears to aim at), and it cannot be dotted.
That note icon: what you are about to draw, and dots
The note icon to the left of the six length buttons is not decoration. It answers "what happens if I press on empty space":
| Current mode | Icon | Pressing it |
|---|---|---|
| Drawing (a length is chosen) | That note value, drawn with its dot if it has one | Adds or removes the dot |
| Select only (arrow) | A dashed box with a note inside — which is exactly what this mode does: marquee selection | Not clickable |
Thirteen shapes, all in a row:
l1 l1. l2 l2. l4 l4. l8 l8. l16 l16. l32 l32. l64
Dotted notes
A dot makes the note one and a half times as long: a dotted quarter is l4., the length of three eighth notes. Click that icon, or press ..
. toggles whether the notes you draw next carry a dot — it is the same kind of key as 1–6. The icon follows, and so does the dashed preview box on empty space, which becomes half again as wide. It works at any time, including right after drawing a note (when that note is selected).
So the usual rhythm goes like this:
4 pick the eighth note
draw x2 two eighths
. dot on
draw one dotted eighth
. dot off
draw x2 eighths again
To dot notes you have already drawn, take the other route: long-press (or right-click) the note and use the row in the menu. That route is the better one anyway, because the menu works out whether it is allowed first — if it is not, the grey text says so before you press.
When several are selected and they are not all the same: if any one of them has no dot, they all get one; only once they all have dots does another press take them all off. You never have to work out what the current mixture is — two presses at most gets you where you want.
Two things will stop it, for different reasons:
- The length does not take a dot. Only the six from whole down to thirty-second (and their dotted versions) can. Notes cut into triplets and notes fine-tuned with the arrow keys cannot, and neither can sixty-fourth notes (the result would be a length the interface cannot reach). One bad note stops the whole batch, and the message names the bar and the note.
- It would cover the note after it. Growing by half takes room on the right; if what follows is a rest it simply eats it (that is the common case and not destructive), but if what follows is another note, that note would disappear entirely — so this is refused. If you really want that, drag the note's right edge with the mouse instead: that route tells you how many notes it would delete, so you can see the price before you decide.
Removing a dot is always safe (a shorter note just leaves a rest behind), so that second guard only applies to adding.
The icon is not there on a phone (the toolbar folds away on narrow screens), so there is no way to set "draw dotted notes next" by finger. To dot a note you already drew, long-press it — the menu has a row for it.
Zoom
Two pairs of plus and minus buttons, one per axis: column width (how wide one cell is across) and row height (how tall one pitch row is). The wheel works too:
| Gesture | Effect |
|---|---|
| Ctrl+wheel | Column width (finer detail across, or more of the song) |
| Ctrl+Shift+wheel or Alt+wheel | Row height (clearer pitches, or more octaves at once) |
| Shift+wheel | Horizontal scrolling (the browser's own; very useful in a long score) |
Zoom is current state only and goes back to the default on refresh.
Undo and redo
Ctrl+Z undoes, Ctrl+Shift+Z or Ctrl+Y redoes. A continuous run of typing counts as one step, not one step per letter.
All five functions below can be taken back with Ctrl+Z, and so can importing, pasting, loading a share, Create New and Clear all notes — so there is no need to be afraid of any of them.
Tempo
Writes t into the score. You can type it by hand, but only this box deals with notes held across a tempo change (they are split in two and rejoined with a tie; it sounds identical, but it is what stops the game drifting out of tune).
- Tempo reference: whose tempo counts as the master. Sync all scores next to it writes that tempo map into every other score
- Position: Start of track (the tempo of the whole piece) or Before the selected note (a change part-way; select a note first)
- Tempo (BPM): a number or the slider. Preview plays a fixed rhythm pattern so you can hear the tempo on its own, and it sounds while you drag the slider too
- Where a tempo mark already exists at that position, an extra Remove this tempo mark button appears
Every score has to carry its own tempo. A score is copied to one person, and without a t that person plays at their own default speed.
And it sounds right here: playback always converts against the tempo reference, so there is nothing to hear on this site and it only drifts once you are in the game. When tempos disagree the status bar keeps a warning up, with the button that fixes it right beside it.
Velocity
Adjusts volume in bulk (MML's v, 0 to 15). Range has four levels: All scores / Current score / Current track / Selected notes; Adjust chooses how many steps louder or softer. The box first tells you how many notes are in that range and what velocities they span.
There is a quicker pair on the roll itself: with notes selected, press + or - for one step at a time. How far those two keys reach depends on how many notes you selected:
| Selected | What +/- means |
|---|---|
| One note | Everything after this point follows (a single v is written) |
| Several notes | Only those notes change; the original velocity resumes after them |
0 and 15 are the ends of the scale, and notes pushed past them are clamped, losing the dynamic differences between them — both the box and the hint say so first.
Transpose
Raises or lowers by semitones in bulk. Range again has four levels (All scores / Current score / Current track / Selected notes), and Adjust reads "Up / Down N keys", with an exact octave marked as such.
If it would push notes outside o0–o7 it does nothing at all, and tells you how many notes fall past the top or the bottom — MML simply cannot write pitches beyond that span, so clamping or dropping them would be the kind of damage you only notice later.
Moving notes outside the instrument’s range does go ahead, and afterwards you are told which scores are affected and how many notes each. Those notes are writable, visible and red — just drag them back. Blocking a whole song’s transpose for them would be out of all proportion. See Instrument range.
Optimise
Brings the character count down. This is the only thing that can change the sound, so the six methods come in three groups:
| Symptom | Which one |
|---|---|
| A little over, and you do not want the sound touched | Lossless — recomputes the shortest spelling; not one note moves |
| Lossless is not enough, and you still do not want the sound touched | Non-standard durations — recomputes at the game's timing resolution; not one note changes once pasted into the game. The cost is that the piano roll and playback here drift |
| You can live with note lengths changing a little | Fill the gap (saves the most), Partial fill (keeps some sense of separation), Tail rest (gives up the tail as a breath). These three do change note lengths |
| One track has burst its limit while others in the same score have room | Regroup — moves notes into the gaps of the other tracks; not a single note changes |
Why Non-standard durations can save more: the game's timing resolution is 384 steps to a whole note, and lengths that do not divide evenly are truncated — l9 is 384 / 9 = 42.6, so 42 steps. a16.&a64 happens to be 42 steps as well, so 8 characters become the 2 of a9 and the game sounds identical. This site uses a finer resolution (1920 steps to a whole note), so those spellings read back a few steps off — which is why the piano roll and playback here drift while the game does not. Keep it for last: compress, then paste; undo first if you want to carry on editing.
What Fill the gap, Partial fill and Tail rest do is bounded: no note's start time changes and the rhythm does not change, only lengths — extended by at most three times their original length and never beyond three whole notes, with the rest they give back no longer than an eighth note. So what you hear is the phrasing getting more or less legato, not the melody changing.
Every option button works out the cost for you first (characters saved, notes affected), and only runs once chosen. Range has the same four levels as before, with three exceptions worth remembering: Lossless always recomputes the whole track and ignores the selection; Non-standard durations does the same and is unavailable when the range is a selection; and Regroup only applies to the current score.
Regroup is best kept for last — it scatters the original three-track layout. And it barely saves any characters; its value is in "getting every track under its own limit". When it cannot move anything it distinguishes two cases and tells you whether what you need to free up is time or characters; follow what it says.
Not happy with any of it? Ctrl+Z.
Merge tracks
Folds this track (or the selected notes) into another one. The target dropdown is grouped by score, so you can merge into a different score as well.
Five methods, again chosen by symptom:
| What you want | Which one |
|---|---|
| The source moves across whole; the target survives only in the gaps | Source wins |
| The reverse: source notes only go into the target's gaps, and collisions are dropped | Target wins |
| Two into one, with the melody floating to the top | Favour melody (takes the highest note at every attack) |
| Two into one, keeping the bass line | Favour root (takes the lowest note at every attack) |
| That stretch of the target is not wanted; replace it wholesale | Source replaces target |
The last three either generate a fresh monophonic line or discard the target's content, and both the explanation in the box and the cost on the button (notes dropped, notes shortened) are worked out for you first. Range has two settings: current track, or selected notes.
Piano roll
Where you draw notes with the mouse. The keys are down the left side and clicking a key sounds that note (while playing too); the thin strip along the top is the bar ruler.
Mouse
| Action | Result | Requires |
|---|---|---|
| Left click on empty space | Draws a note (at the length chosen in the toolbar) | Drawing mode |
| Left click on empty space | Sets the playback start marker | Select only mode |
| Drag from empty space | Marquee: drags a dashed box; the selection becomes exactly what it caught | Select only mode, not playing |
| Ctrl+drag from empty space | Marquee add: what was already selected stays | Select only mode, not playing |
| Right click on empty space | Opens the right-click menu (playback markers, select before/after, paste, insert / delete bars) | — |
| Left click a note | Selects it and sounds it once | — |
| Right click a note | Opens the note menu (playback markers, triplets, velocity, copy/cut/paste, delete) | — |
| Drag a note | Moves it (up and down for pitch, left and right for position) | — |
| Drag a note's right edge | Changes its length | Single selection only |
| Ctrl+click a note | Adds it to or removes it from the selection | — |
| Shift+click a note | Selects everything from the last note clicked to this one | — |
| Double-click a note | The text cursor jumps to that note's position | Select only mode |
| Left / right click on the bar ruler | Sets the playback start marker / opens a menu | Tap and long-press by finger |
Press Esc before letting go to cancel a drag; with no drag in progress, Esc clears the selection. During a drag the arrow keys fine-tune by half a cell (only left and right do anything while resizing), and holding Shift moves an octave or a bar at a time. Whether a drag will crush other notes is written out on the right of the toolbar first: "will delete N notes / will shorten N notes".
Marquee selection
In Select only mode, drag a box from empty space and whatever it catches becomes the new selection — dashed outline, pale cyan fill, drawn over the notes (it is saying "I am circling this"), and the fill is faint enough that you can still see what you caught. Touching counts, it does not have to enclose; it does not snap to the grid; and it only selects the track you are on. Drag to the edge of the view and it scrolls by itself.
A plain marquee replaces: the selection becomes exactly what the box caught, and catching nothing clears it. Ctrl+marquee is what adds. Adding is not the default because a selection can be off-screen with nothing on screen to say so — otherwise "select a few notes in bar 3, scroll to bar 40, box the ones in front of you, then edit" would quietly edit bar 3 as well.
One asymmetry while you are here: Ctrl+clicking a note is a toggle (an already-selected note comes out), while Ctrl+marquee is add only (already-selected notes always stay). A box cannot reliably catch "only the ones not yet selected", so it does not try to toggle.
There is no marquee in drawing mode (dragging draws a note there), none during playback, and none by finger — a single finger drag pans the view, and multiple selection goes through the Multi key on the panel (see writing music on a phone or tablet).
Reading the picture
- Solid notes are the track you are editing; the other two tracks of the same score are filled a shade darker with no outline; other scores are outlined with no fill. The middle two are deliberately complementary, so they stay apart on the same screen. Colour is by score
- Selected notes get a white outline around them. The selection is linked to the text pane — select a span of text there and it is selected here too
- With Key signature turned on in the settings, the cell shading switches to talking about the key: in-key rows go darker (they read as empty — put your notes here) while out-of-key rows go one shade lighter (they read as occupied). It is only a hint and blocks nothing
- A dimmed key on the keyboard at the left is a pitch this instrument cannot produce, and those rows cannot be drawn on. See Instrument range
- Bar lines follow the score's real time signatures; the opening meter appears at the top left and meter changes are labelled
- Section marks are the coloured pills along the bottom of the roll. Click to jump; right-click or touch and hold to edit or remove. Matching dots on the native horizontal scrollbar also jump to the mark
- During playback, whatever the playhead passes over lights up
Selecting, deleting, clipboard
| Key | Effect | Requires |
|---|---|---|
| Delete/Backspace | Selected notes become rests of the same length | A selection, focus outside the text pane |
| +/- | Velocity one step up or down | A selection |
| Ctrl+C | Copies the selected notes | A selection |
| Ctrl+X | Cuts (copies, then leaves rests) | A selection |
| Ctrl+V | Pastes notes | See below |
Ctrl+V lands at "the selection, or wherever the mouse is right now". With neither, it reminds you to "select some notes, or move the mouse to where you want to paste". Pasting replaces whatever was at the landing point, and Ctrl+Z undoes it.
Instrument range
Every instrument can only produce a certain span of pitches, and notes outside it are silent in the game — the roll shows a perfectly reasonable note, and pressing play gives you nothing. So the roll draws that fact.
- On the keyboard at the left, the keys this instrument cannot produce are dimmed a shade, and a thin line marks each end of the range
- Those rows cannot be drawn on: move the pointer over them and not even the dashed outline appears
- Dragging up or down stops at the edge of the range. Notes already outside it are never pushed back in — they can stay where they are, or move inwards
- Notes typed or pasted outside the range are painted red on the roll, and the right of the toolbar counts them for the whole score — red paints only the track you are editing, the number covers all three
- That red line can be clicked: it opens a list of which score, which track and which bar across the whole piece, and every row jumps straight there
The range is computed from the sound bank you currently have loaded, not from a hard-coded table. Load a different sound bank and the dimmed rows follow it — what you see is always the one you are hearing.
Strings and voices are particularly narrow, some of them barely three octaves, so switching to one dims most of the roll — that is not a fault. The exact ends are the two lines on the keyboard; there is nothing to memorise.
Transposing is not blocked. If it pushes notes outside the range you are told which scores and how many notes each — those notes are red, so drag them back. Changing the instrument also reports how many notes in that score fall outside.
While the sound bank is still loading, or before a score has an instrument, nothing is restricted at all — exactly as it was before this feature existed. Unknown stays unknown; you are never blocked by a guessed range.
“Before a score has an instrument” means nobody has actually picked one. The dropdown always shows something, but that is a default the app filled in, and it does not count. So a freshly imported MIDI is never measured against the lute’s range for its whole length — none of that red would have been real. Pick one yourself, or import a .mmi / .mml that already carries instruments, and the range check starts working.
The percussion roll
On a score whose instrument is Drum set, the roll switches to a layout built for drums. You can turn it off in the settings; it is on by default.
Each of the 15 drum pads gets a row of its own, all of them gathered into the lowest two octaves; the strip down the left carries drum names instead of piano keys; and a note is no longer a long block but a shape at the moment of the hit plus a thin line for its length — drums and toms are circles, hi-hats are downward triangles, cymbals are diamonds and triangles, and the bass drum and side stick are squares.
Not a single character of the MML changes. All that changes is which row a note is drawn on. Turn the setting off and the same score's notes go back to their real pitches, with identical contents.
Dragging a note up or down swaps it to another drum rather than changing its pitch — the empty rows in between are skipped automatically. Transposing is switched off for these scores: adding or subtracting semitones would turn the bass drum into a pitch the game has no key for, which makes no sound at all.
Rows with no drum on them cannot be drawn on, and that covers both the empty rows and every other octave. Mabinogi's Drum set has exactly those 15 sounds, and the extra rows have nothing to play — and now you can see it at a glance: the 15 pad rows are the darkest cells (empty, put your notes here), every other row is a shade lighter (occupied), and the keys of the octaves above are dimmed along with them.
Move the mouse onto the keyboard at the left and the whole column of drum names turns into note names (BD becomes o2F); move away and they turn back. The percussion roll packs the 15 pads into the lowest two octaves, so the row on screen has nothing to do with the pitch that actually goes into the MML — when you are hand-writing MML, this is where you read which note that hit is.
Turning the setting off and going back to the piano roll does not take the drum names away: those 15 pitches still carry their drum names, only placed on the pitches they really are. Real pitch and drum name at the same time, no need to choose.
Red notes
When an imported score contains a duration this site cannot write out, those notes are painted red on the roll and the reason is spelled out at the right of the toolbar. The track stays editable — you can draw, drag, and delete the offending note right there; once it is dealt with the red clears itself.
There are three kinds of red. The duration cannot be written (editing moves it to the nearest legal length), outside the instrument’s range (see Instrument range — that note will not sound in the game), and a non-standard duration is in use (kept exactly as it is, not a tick moved, but the game may not accept it). The next step for the first two is the same one — open the list and work through it — so their message is a single "N notes to deal with", and which kind each one is is written on its row in the list.
Non-standard durations get a line of their own, and it holds the other one back: the toolbar says "This score has N non-standard durations" with a Restore standard durations button beside it. Pressing it converts the non-standard durations across this score's three tracks into standard spellings (one step; Ctrl+Z if you are not happy), the line disappears and the other one takes over. One thing at a time — restoring rewrites durations, so the other two counts would be a different set afterwards anyway.
The button only appears when pressing it would actually do something. Some non-standard durations cannot be restored (tuplets), and there you get the red text with no button — because that is not a defect, the original piece simply was not in standard durations.
Quintuplets and septuplets do not count: cutting a beat into 5 or 7 does not divide evenly into the game's 384 steps, so the remainder has to be spread across the notes. That is a fact about the music, not a mistake, so those notes are not marked red. The test is "they add up to exactly a whole, half or quarter note" — anything outside that (a quintuplet over an eighth, say) still counts.
Rests have no block on the roll, so the two duration kinds can only be marked by the bar shading — something is in that stretch, and the message gives the count. The range kind gets no bar shading: pick the wrong instrument and most of the notes qualify, and shading the whole song red would only make it harder to read.
Editing in the roll regenerates the whole track's MML. The notes themselves are unaffected, but any comments and manual formatting you wrote will be lost. Get the notes right in the roll first and format last.
Right-click menus
A right click on the roll opens one of two menus, and where you click decides which: on a note the menu is about "these notes", on empty space it is about "the timeline at this position". Both are independent of the mode — they open whether you are holding Select only or a note length.
A right click on the bar ruler used to set the end marker straight away; it now opens a menu: set playback start / set playback end / clear playback range / change this bar's meter / add a volume change here. Setting the end marker therefore takes two actions instead of one — that is a step backwards, traded for four things the ruler had no entry point for at all, two of which were simply impossible on a phone (no right click there, and no long press either). By finger, press and hold.
Every item in the menu acts on the selection, not on the one note you right-clicked. Right-clicking a note that is not selected selects it first (exactly as a left click would); right-clicking a note inside the selection leaves the whole group alone — so "select a phrase, right click, Set velocity" is the intended way to work.
Items that cannot run are greyed out with the reason written in ("Not editable while playing", "No notes on this side", "Nothing after this point"). Copy notes is the only item that still works while playing — it does not touch the editor.
On a note
The heading tells you the bar and how many notes are selected.
| Item | What it does |
|---|---|
| Start playback before these notes / End playback after these notes | Sets the two playback markers to the span of the whole selection — select a phrase, right click, and the range is bracketed |
| Select all notes before / Select all notes after | Takes the note you right-clicked as the cut point and selects everything on that side of the current track. The grey line tells you how many first |
| Make triplets | Cuts each selected note into three equal parts at the same pitch (l1c → l3ccc). Only whole, half, quarter, eighth and 16th notes can do it, and where a note cannot, you are told which one in which bar |
| Set velocity | Pick a value from 0 to 15 with ◀ ▶ and the selected notes are set to it. The grey line shows the velocity those notes are at now |
| Copy notes / Paste notes | The same thing as Ctrl+C/Ctrl+V. Paste lands on the start of this note (the grey line gives the bar and the beat) |
| Cut notes / Delete notes | The two red items. Deleting leaves a rest of the same length, and nothing after it shifts |
Set velocity and the roll's +/- are two different things: this one means "set it to 10", those two mean "one step up or down from where it is".
On empty space
The heading tells you which bar you right-clicked. The first few items are the same kind of thing as in the note menu (playback markers, selecting, pasting); the last six are the only edits on this site that shift the timeline:
| Item | What it does |
|---|---|
| Set playback start / Set playback end | Sets it where you right-clicked. The markers snap to a 1/32 cell, not to the bar line — otherwise "let me hear this phrase up to here" would be impossible |
| Select all notes before / Select all notes after | Takes this position as the cut point and selects that side of the current track |
| Paste notes | Pastes where you right-clicked (the grey line gives the bar and the beat) |
| Insert N bars into this part | Inserts empty bars before this bar, pushing this one track only |
| Insert N bars into the score | The same, but the tracks the current score is using move together (three for an instrument score, one for a vocal score) |
| Insert N bars into the whole project | Moves every live track in every open score together, including time signatures and section marks |
| Delete N bars from this part / the score / the whole project | The three red items. Those bars go and what follows closes up behind them |
The number of bars is set with ◀ ▶ (1 to 16 for inserting; deleting narrows to "how many bars are left from here to the end"), and it resets to 1 every time the menu opens, each of the six rows on its own. Moving multiple tracks still counts as one undo step, so a single Ctrl+Z puts all of it back.
The two "this part" items leave the other tracks of the same score a bar out of step — that is deliberate: this is the tool for "I captured this one wrong and the whole span has to move back". To move the whole score, use the two score items.
Part and score edits do not cross scores. To keep the whole ensemble aligned, use whole project; it also moves the global time signatures and section marks.
The keyboard inside the menu
| Key | Effect |
|---|---|
| ↑/↓ | Moves up and down the rows. On opening, no row is highlighted (your mouse is still somewhere else); one press takes you in |
| ←/→ | Changes that row's number, the same as pressing ◀ ▶ |
| Enter/Space | Runs the highlighted row |
| Esc/Tab | Closes it and gives focus back to where it was |
Changing a number does not close the menu (otherwise several bars could never be set); only pressing the runnable half closes it. The menu does not take the wheel — swallowing it would feel like the scrollbar had jammed — but scrolling the roll closes the menu (so does resizing the window).
Clicking outside also closes it, and that click does not count — closing the menu by clicking the roll in drawing mode does not draw a note on the way.
Score tabs and the editing area
The lower half of the screen. One tab is one complete score handed to one person, with its own instrument and name; up to 16 of them and at least 1 (a solo is a perfectly normal use).
The tab row
| Action | Result |
|---|---|
| Click a tab | Switches to it |
| Double-click the name | Renames it. In an ensemble, "Vibraphone - Sam" is easier to recognise than "Score 5" |
| Drag a tab | Changes the order of the scores |
| Click the dot to the left of the name | Shows or hides this score's notes in the piano roll (playback is unaffected) |
| The ✕ on the right | Removes this score. It asks first if there is still content in it, and the scores after it move up one slot |
| + Add | Adds a new empty score |
The instrument row
The line under the tabs, left to right:
| Control | What it does |
|---|---|
| Instrument dropdown | Which sound this score uses. One score has one instrument, shared by all four tracks |
| Instrument score / Vocal score | An instrument score uses the three tracks Melody / Harmony 1 / Harmony 2; a vocal score uses only Vocal. Switching never discards the other side |
| Mute | This score makes no sound on playback. On playback only — save, share, mixdown MP3 export and Make MP4 video all ignore it |
| Play only | Plays this score alone and mutes all the others. Click again to release |
| Show (the eye) | Hides this score's notes in the roll. It still sounds — to silence it use Mute |
| Show only | Draws only this score in the roll and takes all the others off. Click again to show them all |
| 3D mix (the concentric circles) | Opens the 3D mix while editing and sets where this score sits in the room. The button is the switch as well — lit means you really are hearing it; click again to turn it off |
| Copy | Copies this score as an MML@…; you can paste into the game |
Mute and Play only are about sound, Show and Show only are about the display: four buttons side by side, entirely independent of each other.
The 3D mix while editing
The concentric circles at the end of the instrument row. The icon is a picture of what it opens: a plan view of a room with you in the middle, one ring every 2 metres.
The button is the switch as well. Click it while dark and it turns the spatial sound on and opens the box; click it while lit and it turns it off. So "lit" always means you really are hearing it. To go back in and move something, click twice — off, then on again. The S key is the same switch but does not open the box — use it to flip the mix on and off and hear the difference.
Every score in the box can be dragged — spatial sound is about relative positions, and you cannot arrange anything if only one piece moves. The dimmed ones are the scores the slider and the reset button do not reach, not scores you cannot touch. The listener in the middle stays put: it is the origin that "straight ahead" is measured from.
Everything starts stacked straight ahead of you, half-overlapping in a single line — all of it inside the innermost ring (the thicker one), and distance does not count inside that ring. So by default every score is exactly as loud as every other.
While they are stacked, the score you are working on is always on top and never buried. To pull a different one out, switch to that tab and open this box from there.
The two sliders below each control one direction, and both show a percentage on the right:
- Left / right — swings this score around you at a constant distance. Dead centre is straight ahead; there is a tick mark there, and the slider snaps to it once you get close (the readout becomes 0%)
- Volume — pushes this score nearer or further, and the angle does not change. Anywhere inside the innermost ring reads 100% (distance does not count in there). 0% is not silence; it is the quietest this stage goes
Reset placement moves this score back to straight ahead (left / right re-centred too) and leaves every other score alone.
| The three modes, bottom left | What you hear |
|---|---|
| Off | The same sound you normally hear in the editor |
| Left / right | Left, right and distance only; front and back are inaudible. Right on speakers and headphones alike |
| 3D | Front and back as well. Wear headphones — speakers cannot render it |
These positions are a separate set from the mixdown MP3 export and Make MP4 video.
Playback only. Save, share and export all behave as if these settings did not exist, exactly like Mute.
The MML text pane
On a desktop the three tracks sit side by side (Melody / Harmony 1 / Harmony 2), which makes them easy to line up. Whichever one you click becomes the roll's focus, and the one being edited has a brighter border.
The top right of each track is its counter: N notes · N/limit chars. That is the count after export, with spaces and line breaks excluded, so you can use line breaks to separate bars freely. Going over the limit turns it red, but nothing stops you carrying on editing.
| Track | Character limit |
|---|---|
| Melody | 1600 |
| Harmony 1 | 1200 |
| Harmony 2 | 900 |
| Vocal | 1200 |
This is a hard limit set by the game. The number shown on screen is the limit actually in force — where it disagrees with this table, believe the screen.
Status bar
The bottom line. It is all "what is true right now"; there is nothing to press:
| Field | Meaning |
|---|---|
| Scores | How many scores there are now / the maximum |
| Notes | Total note count |
| Tempo | The BPM in force. With no t written it shows "120 BPM (default)" |
| Length | How long the whole piece takes to play |
| Save state | Saved · time / Not saved yet / Autosave is off |
| Engine | The synthesiser's loading progress and sample rate. There is no sound until Engine ready |
Two more appear in the middle only when needed: parse warnings (unrecognised characters, pitches out of range and so on), and the persistent tempo mismatch notice — that one has the button that fixes it right beside it.
Settings drawer
The Settings button in the title bar; Esc closes it. Top to bottom:
| Item | Notes |
|---|---|
| Sign in | Sign in with Google. Sharing, Save to web and sheet music recognition — those three require it; editing, importing .mid / .mml / .mmi, exporting and local saves do not |
| Language | The interface language. Switching reloads the page — the score is kept, but the undo history is cleared |
| Autosave | Stores the score in this browser so a restart picks it up again, and nothing is uploaded to the server. Turning it off does not delete what is already stored, but later edits are no longer recorded — a refresh takes you back to the state it was in when you turned it off |
| Key signature | Pick a key and the in-key rows go darker in the roll (empty, put your notes here) while out-of-key rows go a shade lighter. A hint only |
| Percussion roll | On a score whose instrument is Drum set, the roll switches to a layout built for drums: one row per drum pad, drum names down the left instead of piano keys, and notes drawn as shapes. Enabled by default; turn it off to go back to the piano roll, but the drum names stay on the keyboard. See the percussion roll |
| Time signatures | The opening meter and meter-change labels are shown by default. Hiding them removes only the text; bar lines, bar edits and MML line breaks still follow the real meter |
| Syntax colouring | Tempo, note length, octave and volume each get a colour; unrecognised characters get a red wavy underline, and anything past the character limit gets a red background |
| MML line breaks | A line break every 1 or 2 bars. It changes the text (real line breaks are inserted), but whitespace does not count towards the game's limit. A note held across a bar line cannot be split, so that line runs longer and the numbering skips |
| Bar markers | A bar number in the text every few bars. It changes the display and not one character of the text. Off by default |
| Sound bank | Load your own .dls / .sf2 / .sf3. It also decides where the instrument range dims. Details in the FAQ |
| Instrument definitions | Load your own .def, which decides which sounds the instrument dropdown lists |
| Choose instruments | Opens the full instrument list, where you set the default instrument (what a new score starts with) and hide the ones you rarely use. See below |
| Delete account | Deletes the account, every share and every web save under it, with no way back. What exactly is promised is set out in the privacy policy |
The default instrument is what a new score starts with, and clipboard pastes and MIDI imports take the same path. A score that names its own instrument (@, or an .mmi file’s program=) wins — that was its author’s decision.
Hiding only takes an instrument out of the dropdown; it does not remove it. If a shared or imported score uses a hidden instrument, it still appears, marked “Lute (hidden)”, and is still selectable — no track can end up with an instrument you cannot select again.
Both settings live in this browser. They are not uploaded, they do not travel with a share, and another computer needs them set again. The whole entry greys out while a custom sound bank or a custom .def is loaded: these settings identify instruments by their English name, and there is no guarantee those names line up in someone else’s bank — getting it wrong would silently hide a different instrument. Reload to go back to the built-in bank and the settings come back.
Mixdown MP3 export
The separate button next to the format dropdown in the File panel. It is not the same kind of thing as the three formats above it:
.mid / .mml / .mmi | Mixdown MP3 | |
|---|---|---|
| What you get | A score, which still needs something else to open it | An audio file anyone can play |
| How long | Instant | Tens of seconds — it is computing new audio |
| Muted scores | Written out anyway | Heard anyway (see below) |
| Pressing it | Downloads straight away | Opens a stage for you to arrange first |
Mute and Play only do not count here. Those two are editing tools — “I want to hear this one on its own right now” — not “leave this part out of this version”. So anything with notes on it is included: mixdown export, Make MP4 video, save and share all behave identically. To really drop a part, clear that score or delete its tab.
The stage: a view from above
The dialog it opens is called Mixer spatial layout. The picture in the middle is a room seen from above:
- The rounded rectangles are instruments, coloured to match their tabs, with two lines on them: the score name and the instrument name. Drag one to move it
- The small circle in the middle is you, and it drags too. The rings follow you — they show how far away things are from you
- The top of the picture is straight ahead of you. The little triangle above the circle says exactly that — it never rotates, because which way you face never changes. To put an instrument behind you, drag it below the circle
The instrument name on the label earns its place: deciding who stands where is a decision about instruments (bass at the back, melody in the middle), not about "score 3".
Drag something further away and it gets quieter and moves off to that side. At the far edge it is about half as loud; no instrument ever disappears completely, and dragging one right on top of the circle will not blow your ears out either.
Who appears on the stage is decided by whether there are any notes:
| State of the score tab | On the stage |
|---|---|
| Has notes | Drawn normally, takes part in the mix |
| No notes at all | Not drawn |
The layout is remembered and is still there next time (stored in this browser along with the score, so autosave needs to be on). To start over press Reset layout: the instruments go back to the default arc and the listener returns to their original spot.
Listen before you export
There is a row with ▶ Preview, a progress slider and a time. It plays exactly what the export will give you, so you can drag instruments around while it is playing and hear the change immediately.
Two things differ from ordinary playback:
- It plays the whole piece and ignores the playback start and end lines on the roll. Those are a tool for auditioning a passage; the export ignores them, so this does too
- Closing the dialog removes the spatial effect completely — ordinary playback afterwards will not carry it
Once you are using a sixteenth score, an extra line appears in the dialog: during preview it will sit in the same spot as the first one. That is a limitation of live playback; the export does not have this problem — in the file it is wherever you put it. Only people who actually use a sixteenth score ever see that line.
Headphones or speakers
The default is headphones: front, back, left and right all come through, and it sounds best.
Tick Speaker mode to switch to the algorithm meant for speakers. The cost is written next to the tickbox: front and back get flattened — only left and right survive, so dragging something behind the circle sounds the same as dragging it in front. It is the more natural choice when playing through speakers, but arranging depth becomes pointless.
Pressing Start export
The button turns into a progress bar in place. The stage does not disappear, the layout stays visible, and Cancel sits beside it. Cancelling is immediate and puts everything back the way it was.
The filename comes from the field at the top of the File panel, shared with the other exports.
The download starts automatically when it finishes, and the stage stays open — this is an arrange-export-listen-rearrange loop, and closing it automatically would mean reopening it every time. That is a deliberate difference from the other exports, which close on the way out.
| About the file | |
|---|---|
| Format | MP3, 192 kbps, 44.1 kHz stereo. Around 7 MB for five minutes |
| Level | Turned down, never up: the whole thing is brought down only if it would clip, and otherwise not touched by a single dB. A deliberately quiet piece will not be made loud |
| The ending | Kept until the last note has genuinely died away — no hard cut, and no trailing silence either |
It may fail on a phone, and the message will say so plainly. This needs the audio for the whole piece in memory at once (around 100 MB for five minutes), which phones often cannot manage. For a long piece, export from a computer.
Make MP4 video
The bottom button in the export area, Make MP4 video. What comes out is a piano waterfall video — notes falling from the top, splashing effects as they land on the keyboard — ready to post on social media.
Pressing it opens the video page in a new tab; the editor stays exactly where it was. No sign-in, and no need to share the score first: the score is handed over inside your own browser, and the short string in the address bar is only a key to it.
That key only works in your own browser, and only for a day. Paste the video page address to someone else and all they will see is “Score not found”. To give a score to someone, use Share.
On the video page you can pick the colours, the note style and the landing effect, and there is a stage just like the mixdown one for arranging positions. The picture is always 16:9 landscape. Press download and it shows progress as it computes.
| About the file | |
|---|---|
| Format | MP4 (H.264 + AAC), 30 fps |
| Resolution | Chosen by device: 1080p on a computer, 720p on phones and tablets. Not an option — guessing wrong means the tab gets killed by the system |
| Sound | The very same samples you hear on the video page, not a second render |
Do not close that tab while it is exporting. If you try, the browser asks first. Pressing “Make MP4 video” again after editing re-points the same video tab — so if that one is mid-export, it asks too.
If you loaded your own sound bank in the editor, the video still uses the built-in one, and the video page says so.
Narrow screens and phones
As the screen narrows, things fold away rather than disappear:
- The right of the title bar becomes a single hamburger button, with Clipboard / File / Share / Settings / About inside that panel
- The title bar gains four display toggles (invisible on a desktop): Show toolbar / Show piano roll / Show editor / Show status bar. Turning an area off gives its space to the rest. What each one does is in the four display toggles
- The three tracks go from side by side to stacked; narrower still and they become one at a time, switched with the small tabs above the editing area
There are two triggers: a very narrow screen, or a very short one — so a phone held sideways (wide but short) gets this layout too, and so does a desktop window squashed flat.
This section is about layout, and has nothing to do with whether you are using a mouse or your fingers. A squashed desktop window looks like this too, and there you still have a mouse — every shortcut and every right-click menu above is still there.
Using your fingers brings a whole separate set of things — tap, press and hold to pick a note up, two-finger zoom, and the control panel that rises from the bottom of the screen once a note is selected. Those are in writing music on a phone or tablet.
The full keyboard and mouse tables are in keyboard and mouse shortcuts. Not read the quick start yet? The editor quick start has a single route from nothing to pasting into the game. To write MML by hand see the syntax guide, and for anything else the FAQ.