Download

audio system engine api docs

hello

im interested in getting more from the audio system, digging into the engine source and hacking at it trial and error is one way, a better way would be to have official documentation of some sort to at least have some clue where to stat and what does what.
there is no mention other than supported audio formats (leading to blank pages) here https://docs.unrealengine.com/latest/INT/API/index.html
this thread suggests there are efforts being made to open it up, this is a good thing and has been lacking in previous unreal engines, lets hope ue4 audio wont stay in 1980’s mode for much longer.

cheers

Can you show me which the dead links are on? It’s difficult to know where you were looking since there are a lot of audio-related pages in the Audio API reference:

https://docs.unrealengine.com/latest/INT/API/Runtime/Engine/Sound/index.html

thanks for the link jeff, didnt find that one, looks a good place to start.

the blank pages are from links on here https://docs.unrealengine.com/latest/INT/API/index.html
developer section

AudioFormatADPCM
AudioFormatOgg
AudioFormatOpus

edit:
wonder if anyone could give any pointers how to approach this?
USoundWaveStreaming contains a function GeneratePCMData
it says “This is only for DTYPE_Procedural audio”

first off, how do i use SoundWaveStreaming?
it doesnt seem to be available inside a sound cue for example.
second, if i were to generate a chunk of pcm data, how would i pass it to the sound wave to play?

not really expecting a response with a complete answer, just some general pointers would help.

thanks

In 4.3 there is a SoundMod plugin that may be useful for you to look at which you can see on GitHub now: https://github.com/EpicGames/UnrealEngine/tree/4.3/Engine/Plugins/Runtime/SoundMod

that looks interesting
thanks

just had a proper look at SoundMod and i must say im astonished, not at how good it is (it may well be) but the fact that it would be made for ue4 in the first place.
what would be the point of being able to play way old tracker files?
protracker for example is for an amega from 1990, good to see epic looking to the future of sound lol.

so getting back to relatively modern times, i see the sound engine boils down to DirectSound.
would it be impossible to implement a decent sound library, say PortAudio for example?
i see you can build a static library from it.

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

thanks for the detailed explanation
trackers are indeed awesome, i use renoise, it also exports to .it (possibly, one of those anyway) and started off making music with protracker and the like way back when. i even made a very simple android tracker, there was almost nothing for android sound at the time.
its an interesting experiment and im glad it went well. i also see that it is a working example of procedural sound generation, and thats what i was asking about after all.

guess fmod might be what im looking for.
i see it supports ue3, would i need to make a plugin using “FMOD Ex Programmer’s API”?
any tips on making that work?

thanks