Here is a fragmented answer, please ask more questions if stuff is unclear.
I have code in an unstable branch for music. This works, but is yet unreleased; it needs some high-level decisions.
I still need to spec the dir structure. I don't want to paint myself in a corner here and break installations later. Most likely a central dir
music/ in Lix root, maybe with subdirs. But this doesn't allow level packages with their own music self-contained; it needs the package spread out over the Lix file tree. This decision is the main obstacle.
Formats: Ideal are common tracker formats mod, xm, it, s3m, because small filesize and give the game a desired indie/demoscene touch. Ogg is second-best because still a free, unencumbered format, but large filesize. I don't want to ship a ton of oggs with the main download. Rubix's menu music is OK in the main download, most extra oggs would go into a separate download.
Mp3 won't be supported, it compresses worse than ogg and is patent-encumbered. Midi probably won't be supported because Allegro 5 doesn't offer easy access.
Features for later, but not for (first release that has music) {
Level wishes for specific song; play random song if no wish or if wished song not found.
Text file that specifies gain per song, allowing to bring all sounds to similar loudness.
}
Technical background {
My A5-DUMB interop got merged upstream last month, and Allegro 5.2.3 has been released in the meantime, with my interop. Allegro can play tracked music in
14 formats with this, but Lix songs should ideally stick to what I wrote above because that plays with DUMB 0.9.3.
Arch Linux Allegro 5 package doesn't depend on DUMB 2.0 and plays no tracked music. But it could, and should, depend on DUMB 2.0: I know it's possible because I wrote the upstream code and tested self-built A5 against Arch DUMB 2.0 package. I filed issue and emailed maintainer, offering to answer any questions that arise. I can't write code here myself because it's a packaging issue.
}
-- Simon