[Description] This is Aranara MIDI Player. This player uses an even more optimised MIDI Format compared to the format used in Newer Eden MIDI Player and KazuMIDI. This is the LIGHT Version (Uses <1.0 GB RAM). This is the Final Scratch Version (R1.3.2) as future versions utilise going beyond Scratch Limits. You can see those versions and more experimental stuff in my GitHub Page! Link to Github page: https://edenathan256.github.io/aranara-midi-player-sb3/ (safe site) Updates since 10 December 2023 will be prioritised on GitHub. NOTE: Playing RUSH E or IMPOSSIBLE REMIX in Scratch can cause it to lag. I suggest heading to the Turbowarp link sent above for lesser lag. Turbowarp Link (Recommended): https://turbowarp.org/462842779?fps=60&turbo&clones=Infinity&limitless&hqpen Original Version: https://turbowarp.org/554156777?fps=60&turbo&clones=Infinity&limitless&hqpen [Compatibility Notice] This player is recommended for newer phone/tablet models and computers with at least 4 to 8GB of RAM. In case the project does not load, here is the lighter version (containing lesser samples!): https://scratch.mit.edu/projects/462842779/ [Program Features] Compared to KazuMIDI and New Eden MIDI Player: 1. Faster loading times in Scratch 2. Instrument implementation 3. File format optimisations (Load larger files while being under the JSON limit!) 4. Support for large "Black MIDI" files (Large converted MIDIs can be split with a splitting tool and split files are supported by this player) [Known Issues] 1. Possible stuttering for low-end devices :( 2. Due to the large number of sound files present, lower-end devices may refuse to load this project. A Light version is already made, and will be updated alongside this version as much as possible. 3. Noticeable drop in audio quality for Firefox Browsers. 4. Maximum Notecount is dependent on memory. Chromium Browsers (Chrome, Edge, Opera) have a memory limit of 2GB per tab, corresponding to around a 6~7 million note limit. [Importing ARAMIDI Files] Check the link below for a detailed instruction in importing MIDIs: https://github.com/Edenathan256/MidiParser/releases/tag/build-23.07.14 (safe site) Use Aranara MIDI Format (Option 4). [Import Rules] 1. Ideally, MIDI must contain less than 6 million notes. You can open larger MIDIs but in Turbowarp and using Firefox browser. 2. The MIDI must not be too sustained or contain "polyphonic nukes" as it could potentially lag the player. 3. MIDIs must have a key range of up to 128. This should be no issue as most MIDIs are within this range. 4. If you wish to save a MIDI and upload to scratch.mit.edu, the notecount limit is around 400'000 to fit within the project JSON Limit. Check here for Official Guidelines for Aranara MIDI usage: https://edenathan256.github.io/aranara-midi-player-sb3/guidelines/
[Credits] 1. Program and Asset Credits @vicketick for the instructions on how to implement radix sorting @52525rr for the concept of using radix sorting and somewhat starting my repeating urge to make MIDI players @hevean_3 for helping me learn new techniques and overall being a good friend and a good motivator to improving my projects. @K9shyguy for the cool MIDI Importer tool which is used to convert MIDI into scratch readable files. In this case, I modded it to convert into aramidi files which this player uses. MBMS for Compact Piano Lite Soundfont Maxime Abbey for Arachno Soundfont Drums 2. Song Credits Note from me: I was not able to keep track of arrangers and transcribers for some pieces, my honest apologies! Genshin Impact OST are originally made by Yu-Peng Chen Take on Me - Aha (MIDIWorld) An Interesting Labour - Mondstadt BGM - Genshin Impact (MuseScore) Hu Tao Theme Remix - Tnbee - Genshin Impact (I arranged this) Yoshi's Island Athletic Theme - Koji Kondo (MuseScore: Tom Brier Rearrangement) Super Mario World - Ending Theme - Nintendo (MuseScore: Played by Tom Brier; Recorded, Transcribed, and Corrected by Hyun Joon Jeong, Ron O'Dell, and Cezary Sławecki) Piranha Plant Lullaby - Emotional Fantasy (MuseScore: Aqare) Rush E - SMB (YT: ZOTMIDI) Attack of the Killer Queen - Toby Fox (YT: Danify/I arranged this) Gourmet Race Concert - Kirby Super Star - Nintendo (MuseScore: Max-Euphonium) Swirls of Shamshir - Sumeru Battle OST - Genshin Impact (MuseScore: BeatsKei) Sweden - C418 - Caution and Crisis Remix (YT: Danify/I arranged this) Super Smash Bros Ultimate: Megalovania - Nintendo and Toby Fox (ShinkoNetCavy) Eden World Builder - Main Theme - Adam Gubman (I arranged this) Handclap - Fitz and The Tantrums (MuseScore: Cameron Cadima/BreadMaster) Bad Apple!! feat. Nomico - Touhou Project 4 (YT: kakakakaito1998) Bad Apple!! feat. Nomico - Orchestral - Touhou Project 4 (MuseScore: EishnSenchou) [Update Changelog] Update R1.3 1. Final Update 2. Made timing not-list dependent. Special thanks to @hevean for showing me how this is done! 3. Parity with last Scratch-Compatible Update, as R1.5 requires a lot of Scratch Limitations to be removed. 4. Made the Keyboard look a bit more realistic, somehow? Update R1.2 1. Added two new songs! 2. Made the main menu more colourful! 3. Added 4 more songs! [1.2.1] 4. Minor optimisations [1.2.2 and 1.2.3] Update R1.1 1. Added a sprite-based text engine (for faster performance compared to pen-based text engines) Update R1 1. Added a pen-based keyboard 2. Adjusted Velocity system Update B1.2 1. Fixed a crucial bug where the player glitches when the MIDI stops playing. 2. Adjusted Volume Calculations. Update B1.1 1. Used code from KazuMIDI and merged functionality from Aranara MIDI Player. 2. Added a menu to load preset songs. (For those wondering why this project ID is "early", it is because I repurposed an unused project that I so happen to have.) [Tags] #MIDI #midi #Piano #BlackMIDI #Synthesia #PianoFromAbove #Deltarune #BadApple #NightofNights #RushE #RUSHE