Also on windows the MIDI API is not the same as the one used for sound, since there is no newer proper MIDI API.
Simutrans doesn't use the newer APIs for other sound either. Furthermore, Simutrans doesn't really use the MIDI API either, just a generic multimedia API. There isn't really any need for a newer MIDI API either, since the one that is covers pretty much what MIDI is. The only thing would be turning it into one or more COM interface just because. Microsoft has apparently however removed the MIDI mapper functionality, which as I understand it means that applications must themselves open the MIDI device the user wants. They can no longer just open the default port knowing that the user has mapped this to the actual device in the Control Panel.
Except from what I can tell is happening in the files it basically is being treated the same. In fact according to the documentation for Mix_LoadMUS…
That is a quirk from
one of the backends. Well, arguably the Windows backend as well, although that one has the option of doing it in a more low-level and very MIDI specific way if it wants to, and still be a Windows backend. That is likely true for MacOS as well. Allegro has clear separation between sound and MIDI.
As has been discussed earlier, MIDI isn't really a good choice for music playback on modern systems, since hardware support has pretty much disappeared from ordinary consumer products. Windows at least comes with a bundled software synthesizer, which I don't find particularly good. Linux has nothing by default. But switching to MP3 or other more modern compressed waveform audio formats would multiply the size of the game. Not everyone has broadband.