Commit Graph

13 Commits

Author SHA1 Message Date
Maxwell Hayes
1badf735d2 [Metasound Bind] Fixup for bind issues caught by new automated tests.
#jira UE-187406, UE-187390, UE-187404, UE-187403, UE-187405, UE-187392, UE-187391, UE-187395, UE-187399, UE-187398, UE-187389, UE-187393, UE-187394, UE-187396, UE-187397, UE-187401
#rb phil.popp

[CL 26130575 by Maxwell Hayes in 5.3 branch]
2023-06-20 15:05:11 -04:00
miles flanagan
34fe243092 Allow Metasound Bus Reader and Writer nodes to set up patch inputs after construction if their busses are set later
#jira UE-187408
#rb phil.popp

[CL 25848966 by miles flanagan in ue5-main branch]
2023-06-07 12:51:55 -04:00
maxwell hayes
b2246c57ee [Metasounds] Adding Reset() function to audio bus reader/writer nodes.
#jira UE-179001
#rb Phil.Popp
#preflight 644317e90171aae0b1de17df

[CL 25156686 by maxwell hayes in ue5-main branch]
2023-04-21 20:49:41 -04:00
maxwell hayes
e5d027e80c [Backout] - CL25139335
[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]
2023-04-21 14:55:25 -04:00
maxwell hayes
3164bd34d0 [Metasounds] Adding Reset() function to audio bus reader/writer nodes.
#jira UE-179001
#rb Phil.Popp
#preflight 6441b293c023bb1f73cbddb1

[CL 25140541 by maxwell hayes in ue5-main branch]
2023-04-20 19:49:03 -04:00
nicholas howe
1c419fc963 Audio Bus Reader/Writer Nodes Crackle Fix
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]
2023-02-27 13:29:22 -05:00
phil popp
1d78b81b52 Metasound automated node tests and fixes
#jira UE-175097
#rb Charlie.Huguenard
#preflight 63d1895f033e457ba8f10cb4

[CL 23863384 by phil popp in ue5-main branch]
2023-01-25 20:41:44 -05:00
helen yang
b9eb6cda6c Audio bus subsystem refactor checkpoint
- 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]
2022-12-07 11:04:50 -05:00
nicholas howe
115d386688 Audio bus reader node output patch buffer size fix
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]
2022-11-29 12:35:48 -05:00
nicholas howe
373ad2a12c Metasound Audio Bus Writer Node
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]
2022-11-14 14:44:30 -05:00
alfaroh corneyiii
4762921ab0 Fix crashes in Audio Bus Reader node when no Audio Bus is given
#jira UE-167439
#rb max.hayes
#preflight 634f080e773a16f49d2748d4
#lockdown nick.whiting

[CL 22632998 by alfaroh corneyiii in ue5-main branch]
2022-10-19 14:33:15 -04:00
bryan sefcik
117472780d Fixed include paths.
#jira
#preflight 634ee62fe746026e48eb077e

[CL 22621687 by bryan sefcik in ue5-main branch]
2022-10-19 06:39:08 -04:00
Aaron McLeran
dee01b6af7 MetaSound audio bus reader node
#rb Jimmy.Smith
#jira UE-150585
#preflight 62bde1c73f0d6beee2972691

[CL 20904173 by Aaron McLeran in ue5-main branch]
2022-06-30 17:09:21 -04:00