Existing workloads should continue to work as they always have, but it is now possible for a procedural sound (SoundGenerator) to specify a "synchronized render queue" that its "audio decode tasks" should be added to. That queue's jobs are then held for the duration of the OnProcessAudioStream function and only kicked when some "owning" system kicks the queued tasks.
In the Harmonix Music specific case, UMusicEmitterComponent (a subclass of a USynthComponent) creates soundgenerators that specify a unique render queue id. Then, in the Harmonix Music system's "post render callback" which is called at the bottom of the FMixerDevice::OnProcessAudioStream, after doing the synchrnous "state updates" for all of the music renderers to keep them in sync, we kick all the queued up tasks so async rendering can proceed.
[REVIEW] [at]aaron.mcleran [at]phil.popp [at]rob.gay [at]jimmy.smith
#preflight 6216c0c7db60b6b592017336
#ROBOMERGE-AUTHOR: buzz.burrowes
#ROBOMERGE-SOURCE: CL 19107053 via CL 19116514 via CL 19116561 via CL 19116594 via CL 19117383
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19153372 by buzz burrowes in ue5-main branch]
- Adding environment variable for if a sound is preview or not
- Clears the shared state on init if the sound is a preview sound
#jira UE-112453
#rb Rob.Gay
[FYI] Sondra.Moyls
#preflight 6068e1e27a9a3e00013d671f
#ROBOMERGE-SOURCE: CL 15910610 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)
[CL 15910611 by aaron mcleran in ue5-main branch]
- Adding IAudioInstanceTransmitter interface to Audio extensions
- Adding IAudioInstanceTransmitter to FActiveSound
- Renaming functions with "Archetype" to "MetasoundArchetype" to avoid conflict with UOBject archetype.
- Adding transmittable info to data type registration
- Adding default input pin to receive node.
- Adding FMetasoundInstanceTransmitter for communicating to single metasound source instance.
#rb Aaron.McLeran, Rob.Gay
#jira UEAU-618
[CL 15162371 by phil popp in ue5-main branch]
- Rig up metasound OnPlay/OnFinished triggers
- Add typedefs for BopRead/WriteRef to begin deprecating Bop and using Trigger
- Fix-up Periodic Bop node to have activate/deactivate
- Rename to 'PeriodicTrigger'
#rb aaron.mcleran phil.popp
#jira UEAU-627 UEAU-628
[CL 15039777 by Rob Gay in ue5-main branch]
Implement UMetasoundSource, Archetype registry, and implement Archetype support in the metasound editor.
#rb rob.gay, phil.popp
#fyi rob.gay, phil.popp
[CL 13940440 by Ethan Geller in ue5-main branch]
All synths will eventually be implemented using this API.
Change also has a test synth that exercises code that is a hello-world style "tone generator".
#rb Ethan.Geller, Phil.Popp
#
#ROBOMERGE-OWNER: aaron.mcleran
#ROBOMERGE-AUTHOR: aaron.mcleran
#ROBOMERGE-SOURCE: CL 12996583 via CL 12996736 via CL 12996749
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)
[CL 12996768 by aaron mcleran in Main branch]
#rb Aaron.McLeran
#jira UE-88249
#ROBOMERGE-OWNER: maxwell.hayes
#ROBOMERGE-AUTHOR: maxwell.hayes
#ROBOMERGE-SOURCE: CL 12457368 in //UE4/Release-4.25/... via CL 12457369 via CL 12459981
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v672-12450963)
[CL 12459985 by maxwell hayes in Main branch]
#rb Jimmy.Sminth
#ROBOMERGE-OWNER: maxwell.hayes
#ROBOMERGE-AUTHOR: maxwell.hayes
#ROBOMERGE-SOURCE: CL 11273942 via CL 11274108 via CL 11274185
#ROBOMERGE-BOT: (v647-11244347)
[CL 11274453 by maxwell hayes in Main branch]
#rb Aaron.McLeran
#ROBOMERGE-OWNER: maxwell.hayes
#ROBOMERGE-AUTHOR: maxwell.hayes
#ROBOMERGE-SOURCE: CL 11211822 via CL 11211829 via CL 11211833
#ROBOMERGE-BOT: (v643-11205221)
[CL 11212274 by maxwell hayes in Main branch]
#rnx
#rb none
#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870549 by ryan durand in Main branch]
#ROBOMERGE-SOURCE: CL 10609068 via CL 10609070 via CL 10609071 via CL 10609072 via CL 10609073
#ROBOMERGE-BOT: (v607-10590470)
[CL 10609074 by ethan geller in Main branch]
protecting against edge cases around internal ref counting being missed with certain error conditions, teardown being done prematurally, etc.
- Remove "FMixerSourceBuffer::ClearSoundWave" which doesn't actually do what it implies and just call OnEndGenerate directly for single caller
#rb phil.popp
#ROBOMERGE-SOURCE: CL 9375095 via CL 9375457
#ROBOMERGE-BOT: (v456-9359915)
[CL 9388089 by rob gay in Main branch]
- Up to CL8320930 from DevOnline and 8311605 Merge Down from Main
- skipped some Fortnite content/plugins/code where it tried to reintegrate files that had been moved pending investigation
#rb none
[CL 8321295 by Josh Markiewicz in Main branch]
- Removing code in IsFinishedDestroy and moved mechanism to prevent GC on playing sound waves to add referenced objects
#rb Ethan.Geller, Rob.Gay
#ROBOMERGE-SOURCE: CL 8062044 via CL 8062048 via CL 8062052 via CL 8092497
#ROBOMERGE-BOT: (v401-8057353)
[CL 8092619 by aaron mcleran in Main branch]