The previous two N64 midis had blank space after the end of the loop, so I cut off the blank space so I could cleanly loop the song when the player stopped. However, I learned today that N64SoundbankTool exported midis will have their loop start and end points marked by a CC 102 and 103 event. I used js-synthesizer's hook midi method to automatically loop the song at those positions; it was easy to do and it turned out great!
Remember when I said I would never attempt to embed N64 sequenced music on a webpage again? I lied. I just had to give it another try! I wanted to see what kind of results I would get by using a midi extracted via N64 Soundbank Tool. There were some errors I had to fix, but it sounds pretty good! Not perfect, of course, but it's recognizable.
Fixes
I had to change the sustain level of the bass instrument in the soundfont, so the sound wouldn't go quiet immediately. Fixed soundfont (use 7zip to extract). I also added reverb.
The most difficult part was recreating the reverb heard in game. I tried a bunch of weird module things, but all I really needed was to play a convolverNode reverb output alongside the unmodified output.
DLS files are really tough to work with. The only thing that can convert them is Viena. I've been extracting soundbanks from N64 games, but N64SoundbankTool only extracts them as DLS; so when I convert the DLS to SF2 and play it with the N64-music-converted-to-midi, I can't tell how many of the flaws are from the DLS conversion, and how many are from the N64 extraction... (They're probably the fault of the N64 extraction) and I don't think I'll be...