Commit Graph

51 Commits

Author SHA1 Message Date
buzz burrowes
a794d64aa4 Changes to allow for synchronized "kicking" of certain async audio jobs created during a pass through FMixerDevice::OnProcessAudioStream.
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]
2022-02-25 14:37:02 -05:00
phil popp
7742829e5d Fix AudioModulations Metasound Node audio device in PIE
#jira UE-138516
#preflight 61fdbae4cc13ffbd10f6bbe5
#lockdown nick.whiting
#rb rob.gay

#ROBOMERGE-AUTHOR: phil.popp
#ROBOMERGE-SOURCE: CL 18894988 in //UE5/Release-5.0/... via CL 18895269 via CL 18895513
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18895534 by phil popp in ue5-main branch]
2022-02-07 18:00:45 -05:00
aaron mcleran
969f68fb6b Fixing metasounds cutting off too early when told they are done.
#rb Rob.gay
#jira UE-119444
[FYI] Sondra.Moyls


#ROBOMERGE-SOURCE: CL 16827752
#ROBOMERGE-BOT: (v836-16769935)

[CL 16827756 by aaron mcleran in ue5-main branch]
2021-07-12 13:36:39 -04:00
aaron mcleran
72060b54f1 Fixing array get node shared state playback issues
- 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]
2021-04-03 18:41:39 -04:00
maxwell hayes
fdbecb4db6 Follow-up refactor to address fallout from FSoundWaveProxy
#jira UE-108764, UE-109386, UE-108969, UEAU-691
#rb Phill.Popp

#ROBOMERGE-SOURCE: CL 15538813 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15538828 by maxwell hayes in ue5-main branch]
2021-02-26 02:30:51 -04:00
Maxwell Hayes
5ccf719a2e FSoundWaveProxy refactor to get USoundWave off the audio render thread.
#jira UEAU-615
#rb Phill.Popp

[CL 15175550 by Maxwell Hayes in ue5-main branch]
2021-01-24 16:09:04 -04:00
phil popp
c2c509e3fd Metasound BP interface
- 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]
2021-01-22 03:05:22 -04:00
Marc Audy
bc88b73a29 Merge Release-Engine-Staging to Main @ CL# 15151250
Represents UE4/Main @ 15133763

[CL 15158774 by Marc Audy in ue5-main branch]
2021-01-21 16:22:06 -04:00
Rob Gay
872ba97a0a - Fix-up procedural sounds to support stopping source fade. Remove some restrictions requiring only one instance to be generated per USoundWaveProcedural instance.
- 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]
2021-01-11 14:18:46 -04:00
Ethan Geller
529318d783 #jira UEAU-524
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]
2020-07-23 20:32:26 -04:00
aaron mcleran
79e90ca0a0 Adding ability for procedural audio to use a u-object generator class.
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]
2020-04-23 01:02:01 -04:00
maxwell hayes
a773568028 Edigrate of procedural sound GC fixes to 4.25
#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]
2020-03-26 17:19:36 -04:00
maxwell hayes
08c5e1fc24 Fixing multiple AudioMixer compilation issues after bad RM collision.
#jira UE-91176
#rb none
#rnx


#ROBOMERGE-SOURCE: CL 12452056
#ROBOMERGE-BOT: (v672-12450963)

[CL 12457004 by maxwell hayes in Release-Engine-Staging branch]
2020-03-26 16:11:23 -04:00
Maxwell Hayes
025c214125 Undo //UE4/Release-4.25/Engine/Source/Runtime/AudioMixer/Private/... changelist 12423730
CIS failure (2019 strict)
#jira none
#rb none

[CL 12425445 by Maxwell Hayes in 4.25 branch]
2020-03-25 13:43:47 -04:00
Maxwell Hayes
be3c100b52 edigrate of procudural sound GC fixes to Release 4.25
#fyi aaron.mcleran
#jira FORT-216637
#jira FORT-252602
#rb Aaron.Mcleran

[CL 12423730 by Maxwell Hayes in 4.25 branch]
2020-03-25 13:29:18 -04:00
maxwell hayes
8f3f30eea5 Fixes for TimeSynth GC crashes and bug where calling StopClip() on a queued clip that hasn't started wouldn't prevent the sound from playing.
#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]
2020-02-05 19:30:44 -05:00
maxwell hayes
a34833c4ec Fix for Time Synth crash (race condition with GC). Sonud Source Decodes for the TimeSynth are now synchronous.
#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]
2020-02-03 20:02:12 -05:00
ryan durand
0f0464a30e Updating copyright for Engine Runtime.
#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]
2019-12-26 14:45:42 -05:00
ethan geller
82fb5168fd fix for leaked FActiveSounds when a USoundWaveProcedural is played twice.
#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]
2019-12-08 02:19:53 -05:00
maxwell hayes
0b60ef7886 Fix for race condition between GC of USoundWave and ~AudioMixerSourceBuffer()
#rb Jimmy.Smith
[FYI] Aaron.McLeran
#lockdown cristina.riveron
#jira UE-84970

#ROBOMERGE-SOURCE: CL 10381767 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v594-10333955)

[CL 10381781 by maxwell hayes in Main branch]
2019-11-22 18:02:26 -05:00
jimmy smith
493e4c5409 Bandaid fix for derefering a GCd SoundWave pointer during teardown.
#rb ethan.geller, aaron.mcleran


#ROBOMERGE-SOURCE: CL 9737308 via CL 9737315
#ROBOMERGE-BOT: (v539-9700858)

[CL 9737317 by jimmy smith in Main branch]
2019-10-21 16:45:20 -04:00
rob gay
09a262ea21 - Make AudioMixerSource construction/pre-init phase more concise (i.e. follow better RAII pattern) by using static factory constructor and removing pre-init call,
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]
2019-10-03 00:07:56 -04:00
Josh Markiewicz
d79515867d Copying //UE4/Dev-Online to Dev-Main (//UE4/Dev-Main)
- 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]
2019-08-26 18:35:22 -04:00
aaron mcleran
33b78e0dcd Fix GC hang in audio mixer
- 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]
2019-08-16 12:49:12 -04:00
ethan geller
099b031c81 [FYI] aaron.mcleran rob.gay
#ROBOMERGE-SOURCE: CL 7442716 via CL 7448721
#ROBOMERGE-BOT: (v371-7306989)

[CL 7448870 by ethan geller in Main branch]
2019-07-19 09:08:34 -04:00