Reply 120 of 178, by d0pefish
I've now tested all of the mentioned games on a PII 400 machine with a Vibra 16 and joystick port to MIDI cable, and my usual Pi 3B/Arananet PI-MIDI development setup.
All games sounded fine.
Only TIE Fighter triggers an unexpected status consistently on startup for me; Duke3D only did it once or twice on startup but it seemed completely random and otherwise worked fine.
When I captured and analysed the raw MIDI data from TIE Fighter's startup sequence to find the point where the unexpected statuses were coming from, mt32-pi's MIDI parser was doing the right thing. TIE Fighter was sending a faulty initialization sequence with extra bytes in between valid CC messages for some reason, which is illegal according to the MIDI spec. As previously mentioned, real synthesizers ignore these quietly when it happens, mt32-pi currently reports them by design.
There are many reasons why this may happen; some games and some sound cards are known to be buggy. Nearly all of the games mentioned appear on this list for Type 1 hanging note bugs, so their MIDI subsystems are well known to have flaws:
https://www.vogonswiki.com/index.php/Hanging_ … e_hanging_notes
This thread is also full of information: SB16 vs DBs (hanging / stuck / wrong notes in MIDI)
This and the following posts are further evidence that TIE Fighter suffers from MIDI problems: Re: SB16 vs DBs (hanging / stuck / wrong notes in MIDI)
Sure, you might not be experiencing the hanging note issues they discuss, but to me this suggests that the games have imperfect MIDI implementations overall.
mt32-pi is simply revealing minor bugs in games and/or sound card MIDI interfaces or other unexplained phenomena that only occur on certain combinations of hardware. Whatever the cause(s), mt32-pi is just warning you with the message. You should only be concerned if you actually notice obvious, jarring faults in the music like stuck or missing notes or things being played out of tune. YouTube is full of recordings to compare if you don't know what it should sound like.
Seeing as people keep panicking when they see this warning instead of enjoying the music (actually since some time before this thread existed), the next version of mt32-pi will just hide these messages unless "verbose = on" in the config file. That way, if you do actually hear problems and want to debug them, they can be re-enabled.