Hi!
I have worked on an open source music player for
Arduino supporting MOD/S3M/IT/XM formats that's designed to run within pretty limited resources. For example
Arduino UNO is running at 16MHz and has only 32KB of flash memory (used for programs) and only 2KB of RAM, and has no DAC so you have to build R2R ladder Covox style, so chip tunes are perfect for this little MCU
The player scales to more complex mods though if the MCU has more memory, processing power, stereo DAC, etc.
MOD/S3M/IT/XM files are first converted to custom format and embedded to the MCU player program. The conversion compresses the mod file to better fit in MCU flash and organizes it so that it can be played back in-place without any further processing.
There are quite a few effects supported (on both volume and effects tracks), envelopes, multi-sample instruments, etc. but it's not perfect by any means and there are still various playback errors that I need to iron out. Currently the player also supports only 8-bit mono samples.
So if you are interested playing mods on Arduino (for demos for example), this GitHub project might interest you:
https://github.com/JarkkoPFC/arduino-music-playerVideo showing the player on
Teensy 4.0 +
Audio Shield w/ simple
ILI9341 TFT visualization:
There are also other videos in my
Youtube channel showing the player on different MCU's.
Cheers, Jarkko