nmlgc/ssg

Migrate SFX code to miniaudio

Closed this issue · 0 comments

nmlgc commented

SDL's audio subsystem would be fully DIY and software-mixed, so we do have to use another library if we don't want to write our own panning and SFX/BGM looping code. SDL_mixer's architecture with a fixed amount of channels doesn't really fit a vintage DirectSound-based system with unlimited buffers, is quite bloated with codecs we'll probably never use, and would still require me to write BGM looping code myself. miniaudio, on the other hand, is pretty much perfect for want we want to do here:

  • Directly portable to every platform that matters
  • Can output via SDL_audio for platforms it doesn't support natively
  • Sane defaults
  • Decently documented
  • Allows us to do everything we want to do in the foreseeable future in a single line of code
  • Comes with exactly the codecs we need, and no more
  • Made by the same developer who also wrote the best FLAC library back in 2018, which I used for thcrap's BGM modding