A experimental project utilizing .mid files. May be a bit laggy (both when parsing and rendering, especially for larger files), so I recommend using turbowarp. press [L] to toggle looping (default: on) press [R] to load a new song press [Q] to toggle between elec and normal piano, (normal default) up/down arrow to scroll through the song made a midi parser using javascript, so anyone could run it :) link for the parser https://htmlhoster.com/p/S078AC6T/ eh input a .mid file into the input there, and paste its content in the little input area when you press [R] on the scratch project. when it asks for the tempo, just input the tempo that comes from the parser, or any tempo If any issue arises from the parser, make sure to tell me. in theory i could put the parser in here.. soon, maybe.
changelog, or something jan 2026: initial release 1.0 7/26 2.0: re-release, fixed parser and overhauled the entire thing update 9/10: attempted to reduce project.json but failed update 9/21 2.1: added length list, for lengths. i haven't updated the parser, just yet to adjust it. also overhauled the algorithm that turns the output string from the .mid parser to the piano roll visual. i also want to work on sustain compatibility cause why not. and then finally update the mid parser script, somehow also attempted to reduce project.json size again, but failed again update 9/22 3.0: updated parser for note lengths. also changed default song patch 10/1: decided to fix a minor bug where the last notes sometimes had length NaN from parser. future updates: 4.0: - create a catalog * overhaul parser default song: F. Chopin - Fantaisie in F Minor, op 49