Do you have a XT compatible and want to play MIDI files, but – darn it – there’s no ISA slot for a sound card? You could use a parallel port sound card like the OPL2 or OPL3LPT, but what if you don’t even have a parallel port, like me? Well, you are in luck – thanks to James Allwright and ToughDev, you can play MIDI files through the monophonic output of the PC speaker using midiplay! ToughDev edited James Allwright’s midiplay software to make it XT compatible by removing the PC/AT-standard INT 15h/AH=86h routine to create a delay before each note. You can find the original software source (for PCC), the edited source for Turbo C++, and the compiled executables for both here: http://www.toughdev.com/content/2018/09/developing-a-pc-speaker-midi-player-for-the-ibm-pc-xt/. The original software can be found here: http://www.bttr-software.de/freesoft/sound.htm#midiplayers. I tested this software on my HP 95LX, but it should work on any XT compatible, 286, 386, 486, and above, as ToughDev states.
The major weakness of the program is that it is monophonic, so of course it cannot handle multiple voices. For this reason, it would be better to at least use a parallel port sound card like the OPL2LPT where you can.