master: tracking bug for libxmp sound improvements
!88 (closed) was merged into master, this means there is now support for a lot of tracker music formats. It also restores compatibility with older maps who use such formats as Nexuiz and Xonotic had libmodplug to support tracker music (which was removed from Xonotic at some point).
- API Reference: http://xmp.sourceforge.net/libxmp.html
- W64 DLL: https://distfiles.lifeisabug.com/xonotic/new_win_libs_20200608/libxmp.dll (for testing on Win64, goes into the bin64 folder in Xonotic)
- Music for testing: https://modarchive.org/
A few observations:
- velocity.mod does not sound really good ingame, it is probably because it uses 4 channels. 2+ channels should be downmixed or something. wonderstar.xm even uses 14 channels?
- currently the tracks loop by default, maybe that should be changed to match ogg/wav behavior (stop when finished). I suppose the map entities who play sounds can set a loop flag if it should loop
- there is a strong stereo separation present (too much), listening to some tracks feels weird
Quakespasm also has libxmp support and they do this:
/* percentual left/right channel separation, default is 70. */
if (stream->info.channels == 2)
if (xmp_set_player(c, XMP_PLAYER_MIX, 100) != 0)
goto err3;
/* interpolation type, default is XMP_INTERP_LINEAR */
if (xmp_set_player(c, XMP_PLAYER_INTERP, XMP_INTERP_SPLINE) != 0)
Those settings are probably needed in the dp libxmp implementation too.
Edited by nico