There are several methods of getting background music into Monogame, but unless I’m mistaken, each method seems to have a serious flaw.
Using Song - Very easy to use, but there’s a very noticeable gap in the playback if you’re looping music. This is related to streaming and there doesn’t seem to be any way around it.
Using SoundEffect - Looping works great. The downside: all your music gets spit out the pipeline as giant wave files. Not a big deal for a PC but this is fatal for a mobile project. These music assets really need to ship in a compressed format.
Is there any way to run the content importer on an mp3 or ogg file at run time? Or some other way to load a sound effect from an mp3 or ogg file at run time?
Using XACT - This appears to be the preferred method from a cursory google search but leaves alot of questions. The tool is not part of monogame and doesn’t seem to be hosted by Microsoft anywhere anymore. I can’t actually find the tool. XACT still only uses WAV files right? How much compression am I actually going to get from it? Its also not clear what parts of XACT are actually supported and information is very sparse. Would it be weird to have an XACT project for each song so that I don’t have to load all the music at once? Is anyone here using XACT?
Third Party Libraries - FMOD seems highly regarded. Their license page is very vague for something I want to sell on the app store: https://www.fmod.com/licensing. Open source solutions exist, like SimpleAudioPlayer but has the same streaming gap as Song.
Does anyone else have suggestions or experience on this topic?