libXM7 is a C library to play XM modules on Nintendo DS using only ARM7 resources (thus freeing your ARM9 from that task).

The use of XMs as a background music in your games allows much more flexibility compared to the old MOD format: more channels, multisample instruments, envelopes, panning and so on. In addition, the XM format is very well known and widespread among composers who compose music using their favourite tracker. Moreover, the reproduction of the tune will not use ARM9 resources as all the necessary elaboration is carried out by the ARM7. With LIBXM7 all you have to do is load the module and fire.

Changes:

[add] MOD support added for 4 and 8 channel modules subtypes:’M.K.’,’M!K!’,’FLT4′,’OCTA’,’CD81′,’FLT8′
[add] MOD support added for 1 to 16 channel modules subtypes:’TDZx’,’xCHN’,’xxCH’
[add] On-the-fly sample change feature, for ProTracker MOD modules
[add] It’s possible to select different replay modes
[add] It’s possible to select different panning modes and panning ‘apertures’
[XM7_LoadXM() ARM9 XM loading function:]
[bug] XM7_LoadXM() now will load instrument envelopes (both volume&panning) and settings (fadeout/autovibrato) even if the file has been saved with SkaleTracker

Discussion: http://forum.gbadev.org/viewtopic.php?t=16993

http://wcms.teleion.it/users/cgq/nds/libxm7/