I never tried such large MIDI files. The loading is done in the server main thread so ye it can freeze the server. I never thought of using this to play 50M MIDI files . For such large files it should be redesigned (parse files on the fly instead of loading all the notes to memory). Unfortunately not, but that would be a simpl fix. Currently it is not possible, but I'll see what can be done. This might be problematic because players that use the resource pack also have the default sounds. This would require some sort of user sign in for different sound configs. Those are interesting features but as you can see the plugin is at version 0.2. Basically it was only a proof of concept First thing first, the idea is great But I have no idea how to connect to an external MIDI device. I can create an API in my plugin that would allow you to request different notes to be played. But the MIDI instrument integration would require an extra plugin. I added issues for your suggestions (https://github.com/SBPrime/MidiPlayer/issues) well see how this goes.