Homebrew SSEQ player

June 26th, 2011

A few days ago, I got back to ‘brewing :D

I’ve always liked sound programming, and DS sound programming is no exception. I decided to make a homebrew player for Ninty’s official music format (SSEQ), since the specs were online and there is not a decent homebrew sequenced musicĀ solution for the DS (the only decent thing is Maxmod, which unfortunately uses tracked music, which is a pain in the backside to make compared to the comfort of making MIDI files that get converted to the appropiate format).

You can find the sources to my proof-of-concept player on GitHub.

11 Responses to “Homebrew SSEQ player”

  1. KazoWAR Says:

    Does this support up to 4 SWARs for a SSEQ?

  2. KazoWAR Says:

    How would I go about stopping the playing SSEQ and freeing up memory the sseq, snbk and swar is using?

  3. DS: NDS Music Player Alpha - ModControl.Com - GermanysNr1MultiConsoleSceneSource Says:

    […] have here a homebrew I have been working on for the past few days. It uses fincs' SSEQ Player to play the music. I added a file browser that atm is most likey still buggy. browse your cart for […]

  4. fincs Says:


    It doesn’t support multiple SWARs ATM. Stopping the SSEQ and freeing the memory is also not supported yet, since it was a (rather hackish) proof of concept. If I have the time, I will make the player into a library. Oh, and your program is nice! Would you mind releasing the source too?

  5. ik Says:

    thanks for the homebrew.

  6. KazoWAR Says:


    Would be nice to have those features supported. I would try to do it my self, but that just seems way to advanced for me. I am struggling to get a simple file browser to work. I would release it when it is stable and I have the time to clean up and comment the code.

  7. KazoWAR Says:

    I released v1.0 it contains the source


  8. CaitSith2 Says:

    Released V1.0b, contains the source code, implements a few things, like properly freeing the memory, as well as a few SSEQ playback related things, like per track ADSR, per track loops. (Some tracks use a loop start with a 0 to indicate Infinite Loop, along with a Loop End, rather than the Jump Function, in order to loop.)

    Also added in some #define based DS side debugging, which allows for figuring out which tracks use which commands that are currently dummied out.


  9. fincs Says:

    I have updated the player:

    – Added support for multiple SWAR files
    – Added StopSeq() function
    – Implemented per-track ADSR (thanks KazoWAR)
    – Implemented loop start/end events (thanks KazoWAR)
    – Implemented PSG instruments

    Get the updated sources at GitHub.

  10. Team Fail Says:

    Just curious, but have you had plans to make this into a library? I wouldn’t mind trying it out if it is made into one.

  11. fincs Says:

    I plan (and am working) on making a rewrite of the SSEQ player, and it will indeed be in form of library (FSS, FeOS Sound System).

Leave a Reply