This project is an advanced MIDI player using 100% pen in a single sprite (mobile friendly). It uses the music extension, which is the first time I've ever used it. This MIDI player includes: -Instruments -Pitch Changes (the first on scratch to ever do so!) -Control Changes -Percussion (short in demo sry) -Speed Changing -Volume (+ Channel Volume) -Zoom -Time Signature -Key Signature -Realistic Piano -Falling Blocks with Channel Colors and more! The code is commented for people who want to understand how this works! Use Turbowarp for a better experience and faster loading times: https://turbowarp.org/1363399863?fps=60&hqpen&limitless&stuck ---Preparation--- If you have any midi files you want to import, go to this website and turn off both options in the Options category (raw hex code needed): https://tomeko.net/online_tools/file_to_hex.php Remember to copy your output to the clipboard. ---How to Use--- Click the green flag and paste your MIDI hex file into the space below or leave it empty to use the last imported song (demo song if none imported). Wait for it to load (can take a while due to bug fixing features). Once it loads, you'll be greeted with the main screen: -SPACE or play button to play/pause -LEFT or RIGHT arrow keys or time slider to move through the song -NUMBER keys to skip to a time of the song -L or Loop button to toggle loop -Speed slider to change playback speed and S or speed reporter to reset -Volume slider to change volume and V or volume symbol toggle volume -UP or DOWN arrow keys, scroll, or zoom slider to change the zoom and Z or Zoom button to reset zoom -I or i button to toggle information ---Change Log--- v1.0 (Jul 20, 2026) - initial release v1.01 (Jul 20, 2026) - channel data bug fix, didn't reset information when time changed... oops v1.1 (Jul 20, 2026) - removed division by 0 bug in rectangles + removed offscreen rectangles? (x pos) + control change support (channel volume) v1.11 (Jul 21, 2026) - added pitch changes for percussion for some reason... v1.12 (Jul 21, 2026) - removed pitch changes for percussion (was bad idea) + made c's darker + more control change support (unimplemented) v1.2 (Jul 22, 2026) - added info + implemented more controls (expression, sustain pedal, pitch bend range, controller reset) v1.21 (Jul 22, 2026) - added num notes info I forgot PLEASE report ANY bugs you find or other features you want me to add to this!! I will explain reports if it means I won't add/fix them... ---Credits--- Thanks to this video for introducing and explaining the MIDI file format: https://www.youtube.com/watch?v=P27ml4M3V7A Thanks to this website for the specifications. It was a major help: https://midimusic.github.io/tech/midispec.html Thanks to this website for the midi player this one is based off of. This is also where I got the demo song from: https://spessasus.github.io/SpessaSynth/ Demo Song: "Umi No Mieru Machi" by Joe Hisaishi from "Kiki's Delivery Service" Thanks to for the amazing pen text engine! All other code by me! ~4000 blocks (including text engine)