[FYI] Dan.Nottingham
Original CL Desc
-----------------------------------------------------------------
[Metasounds] Adding Reset() function to audio bus reader/writer nodes.
#jira UE-179001
#rb Phil.Popp
#preflight 6441b293c023bb1f73cbddb1
[CL 25150905 by maxwell hayes in ue5-main branch]
Audio Bus Reader Node more accurately calculates how many samples it needs before it can start popping.
Reader node has a CVar timeout on how long it'll wait for samples (whereas it used to calculate a huge timeout value that I suspect was erroneous). In theory the samples should always become available even with an infinite timeout.
The Metasound generator's BuilderTask's completion is ensured at the beginning of FMetasoundGenerator::OnGenerateAudio. This prevents the mixer, writer and reader nodes from getting out of sync in terms of samples output and input.
FMixerAudioBus::MixBuffer doesn't try to cache any samples and just uses PopAudio and PushAudio directly on its mixer and splitter.
FPatchOutput::WaitUntilNumSamplesAvailable no longer has a race condition and an attempt has been made to improve thread-safety in FPatchOutput.
#jira UE-170575
#rb phil.popp
#preflight 63fcbfe2a134e0b059c64c76
[CL 24427705 by nicholas howe in ue5-main branch]
- Move audio bus functionality from Mixer Device to new Audio Bus Subsystem
- Add new audio bus key struct so that FMixerAudioBuses do not have to be created with UObject ids
#jira UE-169610
#rb phil.popp, ryan.mangin, rob.gay
#preflight 63906195255f07df8e452b8c
[CL 23429172 by helen yang in ue5-main branch]
This fixes a bug where audio bus reader nodes might never start popping audio because AudioCallbackBufferFrameSize is set to a value other than the default 1024, such as 256.
Replace AddPatchForAudioBus with AddPatchOutputForAudioBus, which is parameterized by the desired number of frames and channels in the patch output.
Update AddPatchInputForAudioBus to match.
Both functions use a new MakePatch function to create a patch based on the parameters and scaled to fit the number of blocks specified by the new "au.PatchBufferBlocks" cvar.
Add support for quad, 5.1, and 7.1 bus reader and writer nodes.
[REVIEW] [at]phil.popp
#preflight 6386191a4004f73f62c48875
[CL 23312512 by nicholas howe in ue5-main branch]
Calculation no longer assumes BlockSizeFrames >= AudioMixerOutputFrames.
Overall size reduced to three quarters because my testing suggests that's adequate.
#jira UE-170575
#preflight 637d3f32e30d438849a45d7a
[CL 23244689 by nicholas howe in ue5-main branch]
Adds a metasound node that sends its audio input to an audio bus.
Modifies the audio mixer interface to support the node.
FMixerSourceManager::StartAudioBus no longer sets bIsPlaying to false on sources that use an audio bus when the audio bus starts.
FMixerAudioBus::MixBuffer mixes its patch inputs into its MixedSourceData buffer, so that the patch input data is available when CopyCurrentBuffer is used to retrieve the mix.
[REVIEW] [at]aaron.mcleran [at]buzz.burrowes [at]phil.popp
#preflight 6372639c5368a3230a4ed041
[CL 23123823 by nicholas howe in ue5-main branch]