Take the music somewhere else

Save a song out of one of your levels as a MIDI file and open it in whatever you write music in — or bring a MIDI file back the other way and hear it played by the game’s own instruments. The export is MPE, one channel per sounding note, because that is the only way a bend or a fade stays attached to the note it belongs to. Everything happens on your own computer.

1 A level out — sequencer to MIDI

    2 A MIDI file in — play it with the game’s instruments

    Open a .mid Click here, or drop a MIDI file onto this box. Anything a DAW writes will do.

    The imported song is played by the same engine as the other pages — the game’s samples, key splits, envelopes, filter and output stage. A file that came from here brings its instruments with it; one from a DAW has none, so pick what its parts should sound like.

    What survives the trip, and what cannot

    The grid. A step is a sixteenth and a note can sit a third of one late, so the file is written at 480 ticks per quarter: a step is 120 ticks and a third of one is exactly 40. Nothing is rounded. The older converter used 96 and could not hold a triplet at all — its fourth slot landed on the next beat, which is why triplet passages came out of it sounding swung.

    The glides. A note in this sequencer is a chain of control points and the engine ramps between them; 9.3% of the corpus’s notes do. MIDI pitch bend holds its value until the next message, so a glide written as two events would be a jump — the export resamples it onto the same third-of-a-step grid the records use, and the import folds the samples back to the points they came from.

    What MIDI has no room for rides in text meta events: the tempo and swing, the mixer’s NumChannels and volumes, and per part its instrument GUID, row, level, pan and sends. A file that goes out and comes back is the same song.

    What it cannot carry. An MPE zone has fifteen member channels and this engine has thirty-two voices, so a dense passage runs out. A note that has to share writes no bend and no pressure — those belong to the channel, and a newcomer setting them would drag whatever is already sounding there with it — so it loses its own glide instead. The notes that carry a glide are allocated first for that reason, and a note with nothing to express is parked on the master channel rather than taking one from a glide. Across the corpus that leaves 0.16% of notes short of a glide, and the count is always shown rather than swallowed. Key and Scale are folded into the note numbers on the way out, because a MIDI file has to play in something that has never heard of an LBP scale; an import therefore comes back chromatic, sounding the same and written differently.

    Log