Implementing the SoundMod plugin was supposed to be a 1-day Epic Friday project I chose to do which had a number of purposes. It ended up taking 2 days because of some of the plugin third party libraries I’ll mention in a second.
See what needed to be changed to support new types of sound sources to be added via plugins and provide some examples of how someone could use the existing architecture for procedural sound generation. I consider this goal to have been met.
Push/experiment with the plugin system itself. Working on this project exposed a few issues with trying to include third party libraries as part of a plugin (you’ll notice coremod ended up in the Engine/ThirdParty folders, instead of directly included in the Plugin itself which isn’t terribly viable for non-Epic plugin developers). To this end it was a successful project to identify the issues, though we don’t have solutions for it implemented it yet.
We were interested in the possibilities that mod tracking provides for keeping memory footprint small on mobile while still being able to provide interesting audio tracks. Hard to say if this will pan out given the increased CPU cost to generate the PCM data from the mod file, but that’s what experiments are for.
And finally, there are still people who enjoy creating music via tracking and there are many repositories out there, so it gives people some additional sound options, so why not.
As for your questions about the audio engine itself. We are not using DirectSound, we are using XAudio2 for PC/XBoxOne. Other platforms write to their native sources, the same as PortAudio. I don’t really see anything that PortAudio would do that would be useful for us. Its functionality is roughly the same as our base AudioDevice, SoundBuffer, SoundSource abstraction with each platform implementing a platform specific version and it doesn’t appear on the surface to support mobile or console devices, so we’d have to implement the Host API for each of those systems.
I’ve written a bit about what needs to happen to really expand the options for audio features and customization in a few places, this one probably covers it the best: https://forums.unrealengine.com/showthread.php?10463-Audio-roadmap-and-APIs&p=78471&viewfull=1#post78471