Notty
Play MIDI files directly in Minecraft!
This is a datapack. You can add it to any world without using a resource pack.
Usage is very simple. Music will play for all players who have the notty tag.
/tag @s add notty
You'll actually need just two commands:
/function notty:stop
to stop music playback
and
/function notty:songs/{song-name}
to play a composition you've uploaded.
Uploading Music
Find music in MIDI format. I recommend compositions from http://onlinesequencer.net/ as they should all be supported. Some MIDI files may not work (due to tempo changes, possibly fixed in a future version).
Then upload the file to https://tonejs.github.io/Midi/ and copy the resulting JSON.
Final step: paste your JSON on the site https://openvoxel.studio/notty (or open the notty.html file in the datapack) and download the resulting file. The result will be a .mcfunction file that needs to be placed in the [DATAPACK]/data/notty/songs/ folder of your datapack.