Commit Graph

225 Commits

Author SHA1 Message Date
rob gay
aeb25bb49d - Add Runtime MetaSound Builder support
- Add MetaSound Patch Interface support
- Add MetaSound Interface Bindings
#rb phil.popp
#preflight 640783bd5515f4f57b4b1268
[FYI] Sondra.Moyls
[FYI] Dan.Reynolds

[CL 24548617 by rob gay in ue5-main branch]
2023-03-07 17:01:52 -05:00
Joe Kirchoff
109addf6a3 Cpp20 doesn't allow implicit capture of 'this' via '[=]'
#rb Francis.Hurteau
#preflight 64068c936e1dadfcda41bb82

[CL 24548358 by Joe Kirchoff in ue5-main branch]
2023-03-07 16:49:18 -05:00
Matt Peters
7bbd3c4bf0 Cooker,AssetRegistry,AssetManager: Remove deprecation handling for fields deprecated in 5.1 and earlier.
Make AssetManager required; engine startup gives a fatal error if AssetManager is not present.
#rn Minor, Cooking
#rb Zousar.Shaker
#preflight 63ffd322df66ed5fc11d963e

[CL 24493164 by Matt Peters in ue5-main branch]
2023-03-02 19:37:50 -05:00
phil popp
2f280717b0 Add metasound reset routine to external nodes
#jira UE-174363
#rb Rob.Gay
#preflight 6400d71caa004233353024cb

[CL 24488096 by phil popp in ue5-main branch]
2023-03-02 14:40:35 -05: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
maxwell hayes
ec5d568ae5 Speculative defense around Wave Player Node start time (Clamping around number of frames instead of just duration in seconds)
#jira UE-176383
#rb Phil.Popp
#preflight 63f6b1979129b42b259b5374

[CL 24374656 by maxwell hayes in ue5-main branch]
2023-02-22 21:00:00 -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
miles flanagan
12db51511d Add Trigger type to EAudioParameter so triggers can be differentiated from Boolean paramters
#preflight 63bc9d5f68068a8bd611ec28
#rb rob.gay

[CL 23748006 by miles flanagan in ue5-main branch]
2023-01-17 18:39:44 -05:00
phil popp
4571b64019 Fix ensure when renaming a metasound asset
#jira UE-166392
#rb Rob.Gay
#preflight 63bc595bc927e34482789268

[CL 23631822 by phil popp in ue5-main branch]
2023-01-10 15:23:40 -05:00
miles flanagan
8d02a26d23 MetasoundWaveTableEvaluateNode
#rb rob.gay
#preflight 639b7297c16855964d7c0e69

[CL 23535307 by miles flanagan in ue5-main branch]
2022-12-15 20:49:02 -05:00
buzz burrowes
6a343186d8 MetasoundParameterPack V1
[REVIEW] [at]phil.popp [at]rob.gay [at]aaron.mcleran
#preflight 639b5db4012902cb8d76c448

[CL 23532613 by buzz burrowes in ue5-main branch]
2022-12-15 17:03:02 -05:00
phil popp
96ab5837f2 Deprecate use of TUniquePtr in Audio::IProxyData
Introduce TSharedPtr<Audio::IProxyData> CreateProxyData()
Fix up deprecated callsites.

#jira UE-162062
#rb Rob.Gay
#fyi Miles.Flanagan
#preflight 639a0f262960b732207fc1e3

[CL 23515287 by phil popp in ue5-main branch]
2022-12-14 13:56:22 -05:00
buzz burrowes
f78c539f2e Have UMetasoundSource instances maintain a map "AudioComponentIds -> weak pointers to FMetasoundGenerators" it has been asked to create. This will be useful in future checkins where parameter packs can be sent efficiently to playing metasound instances.
[REVIEW] [at]phil.popp [at]rob.gay [at]Aaron.McLeran
#preflight 6398c1ab43330e63e5929aab

[CL 23500073 by buzz burrowes in ue5-main branch]
2022-12-13 18:25:01 -05:00
nicholas howe
0bcf410dfc Correct channel descriptions in Metasound Wave Player node.
#preflight 6390ef2e9549ddaa28e1f046

[CL 23437266 by nicholas howe in ue5-main branch]
2022-12-07 18:40:16 -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
de7aee9ba3 Fix Audio Bus Writer Node patch input buffer size calculation
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]
2022-11-22 20:28:12 -05:00
phil popp
afb10dfdc7 Fix for metasound failing to play when soundwave loading behavior improperly overriden
#rb Max.Hayes
#preflight 63768904947d2d19ed0205b0

[CL 23183911 by phil popp in ue5-main branch]
2022-11-17 16:36:26 -05:00
Matt Peters
007584827b Metasounds: Fix missing dependencies during EditorDomain save of Metasound objects by shifting WaitUntilAsyncLoadReferencedAssetsComplete to earlier in PreSave, and by extending it to recursively wait for all transitive dependencies.
This fixes EditorDomain saves because they occur immediately after load of the package so waiting for async dependencies to load is required.
#jira UE-170378
#rb Phil.Popp
#rnx
#preflight 63766ddcb1509f1cc3fce67c

[CL 23178540 by Matt Peters in ue5-main branch]
2022-11-17 12:31:19 -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
rob gay
18e887e937 [MetaSounds] Fix/add missing new MetaSound type icons/thumbnails as well as play/stop overlays. Support for showing/filtering presets in ContentBrowser
#rb helen.yang julien.stjean
[REVIEW] helen.yang
#jira UE-168050
#preflight 635314707261e565c497645f

[CL 22786984 by rob gay in ue5-main branch]
2022-10-26 15:28:04 -04:00
henrik karlsson
b5b86c796c This change is a strategical submit for a coming change that removes lots of includes in headers that are included by many files. This change contains adding of includes in files that previously got those includes transitively from other inclkudes
#preflight 6355d4940313c24974b2107b
#rb none

[CL 22783162 by henrik karlsson in ue5-main branch]
2022-10-26 12:57:32 -04: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
phil popp
dd90eb211a Replace use of FSoftObjectPath with UPROPERTY for dependent metasound assets.
#rb rob.gay
#preflight 634d5ea05f008d633fa5bc99

[CL 22568002 by phil popp in ue5-main branch]
2022-10-17 12:46:38 -04:00