In this thread: http://www.oddworldforums.net/showthread.php?t=21492
Mlg man managed to get a sound font and some midi's working from AE using fluidsynth. I've found that on Linux fluidsynth seems to be really buggy.
As part of this project: https://github.com/paulsapps/alive
I want to implement a music player that runs on the native file formats. But I need someone who is good with PSX sound/sound fonts/midi to help explain how it all fits together.
E.g a the SEQ/MIDI data will play a "tone" on a "channel" from the active "program". Each tone in a program links up to a structure that has the offset into sounds.dat with the sample rate and size in bytes. Yet when I try this in the real engine the sounds do not match at all, and using the sample rate given in the info that tells me where the offset is in sounds.dat isn't always right either :S
Anyway, the plan is to write some code that will use fluidsynth API to generate a soundfont from the vb/vh/sounds.dat, loads the SEQ data in memory, patch a standard midi header into it and play that. That should open the door for replacing fluidsynth if need be, or at least have working music on one platform for now.
Edit: Now at a point where playing midi works, but getting fluidsynth to use the sounds.dat samples is.. frustrating. I don't understand how a program/preset/patch relates to a midi key/velocity.