Alright, I figured it out! But there is one problem... there seems to be a memory leak in the current version of timidity.dll (used to play midi), and sound fonts didn't seem to be working with the old version. So, here is the old timidity.dll:
https://mega.nz/file/SENSkIpa#G6DEWiKO1 ... xqYsiBMYNI
Download this, and replace [your xbmc folder]\system\players\paplayer\timidity.dll with this one. Rename the old one to something like timidity.dll.orig
To provide instrument sounds (required), you can use the GUS eawpatches set:
https://mega.nz/file/PNdRUJjK#A8qcDDO5- ... AJYwNe317s
Just follow the instructions provided in the zip. I've edited the paths in timidity.cfg for XBMC, this seems to be enough to get it to work. This set may have been distributed with the T3CH builds? Only the patch files needed for each song are loaded into memory.
Other patch sets should be able to have their paths renamed similarly to work this way.
Note that these were cranking the CPU using the new version of the DLL (the one with the memory leak, ~500Kb). They work fine with the old DLL provided above (60Kb). The old version of the DLL was all around much kinder on the CPU.
It still didn't display the lyrics with the single karaoke MIDI track I tried, but I doubt too many people are losing sleep over that.
USING A SOUND FONT (only works with current memory leak version, doesn't work with the stable dll above)
1. Create a new folder, in [your XBMC directory]\system\players\paplayer\timidity
2. In this new folder, create a file called timidity.cfg with the contents:
Code: Select all
soundfont Q:\system\players\paplayer\timidity\soundfont.sf2
3. Copy the sound font of your choice to the same folder, and name it soundfont.sf2. (like this one:
https://www.doomworld.com/forum/topic/1 ... soundfont/ ) Note that the sound font must be called soundfont.sf2 for it to work.
Watch out for sound font sizes, <10 megs is probably good. I haven't tested it on a stock Xbox. I was getting memory warnings on a 128Mb Xbox, using a 40Mb sound font with Milkdrop running. What it should be doing, is only loading the needed data into memory from the sound font, and it doesn't look like that's what's happening. But, performance was better on this non working (or non properly managed) version of the DLL than with using the patch set above.