UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SoundSubmix.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreMinimal.h"
5
6#include "AudioDeviceHandle.h"
9#include "IAudioEndpoint.h"
10#include "ISoundfieldEndpoint.h"
11#include "ISoundfieldFormat.h"
12#include "SampleBufferIO.h"
13#include "SoundEffectSubmix.h"
15#include "SoundSubmixSend.h"
16#include "UObject/Object.h"
18
19#include "SoundSubmix.generated.h"
20
21
22// Forward Declarations
23class UEdGraph;
25class USoundSubmix;
27
28
29
35
40
42
43
44UENUM(BlueprintType)
46{
47 // 512
49
50 // 64
51 Min,
52
53 // 256
54 Small,
55
56 // 512
57 Medium,
58
59 // 1024
60 Large,
61
62 // 2048
63 VeryLarge,
64
65 // 4096
66 Max
67};
68
69UENUM()
77
78UENUM()
80{
81 // No window is applied. Technically a boxcar window.
82 None,
83
84 // Mainlobe width of -3 dB and sidelobe attenuation of ~-40 dB. Good for COLA.
85 Hamming,
86
87 // Mainlobe width of -3 dB and sidelobe attenuation of ~-30dB. Good for COLA.
88 Hann,
89
90 // Mainlobe width of -3 dB and sidelobe attenuation of ~-60db. Tricky for COLA.
92};
93
94UENUM(BlueprintType)
96{
97 // Spectrum frequency values are equal to magnitude of frequency.
99
100 // Spectrum frequency values are equal to magnitude squared.
102
103 // Returns decibels (0.0 dB is 1.0)
104 Decibel,
105};
106
108{
109 // FFTSize used in spectrum analyzer.
111
112 // Type of window to apply to audio.
114
115 // Metric used when analyzing spectrum.
117
118 // Interpolation method used when getting frequencies.
120
121 // Hopsize between audio windows as a ratio of the FFTSize.
122 float HopSize;
123};
124
126{
127 // Settings for individual bands.
129
130 // Number of times a second the delegate is triggered.
132
133 // The decibel level considered silence.
135
136 // If true, returned values are scaled between 0 and 1.
138
139 // If true, the band values are tracked to always have values between 0 and 1.
141
142 // The time in seconds for the range to expand to a new observed range.
144
145 // The time in seconds for the range to shrink to a new observed range.
147};
148
149
150#if WITH_EDITOR
151
154{
155public:
156 virtual ~ISoundSubmixAudioEditor() {}
157
159 virtual void RefreshGraphLinks(UEdGraph* SoundClassGraph) = 0;
160};
161#endif
162
163USTRUCT()
171
172UCLASS(config = Engine, abstract, hidecategories = Object, editinlinenew, BlueprintType, MinimalAPI)
174{
176
177public:
178#if WITH_EDITORONLY_DATA
181#endif
182
183 // Auto-manage enabling and disabling the submix as a CPU optimization. It will be disabled if the submix and all child submixes are silent. It will re-enable if a sound is sent to the submix or a child submix is audible.
184 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category = AutoDisablement)
185 bool bAutoDisable = true;
186
187 // The minimum amount of time to wait before automatically disabling a submix if it is silent. Will immediately re-enable if source audio is sent to it.
188 UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = AutoDisablement, meta = (EditCondition = "bAutoDisable"))
189 float AutoDisableTime = 0.01f;
190
191 // Child submixes to this sound mix
192 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = SoundSubmix)
194
195 // Dynamic Child submixes (Map of AudioDevice -> [Submix] )
197 TMap<uint32, FDynamicChildSubmix> DynamicChildSubmixes;
198
203 UFUNCTION(BlueprintCallable, Category = "Submix", meta = (WorldContext = "WorldContextObject", DisplayName = "Connect"))
204 virtual bool DynamicConnect(
205 const UObject* WorldContextObject,
206 UPARAM(DisplayName="Parent") USoundSubmixBase* InParent)
207 {
208 return false;
209 }
210
214 UFUNCTION(BlueprintCallable, Category = "Submix", meta = (WorldContext = "WorldContextObject", DisplayName = "Disconnect"))
215 virtual bool DynamicDisconnect(const UObject* WorldContextObject)
216 {
217 return false;
218 }
219
223 UFUNCTION(BlueprintCallable, Category = "Submix", meta = (WorldContext = "WorldContextObject"))
224 virtual USoundSubmixBase* FindDynamicAncestor()
225 {
226 return nullptr;
227 }
228
232 virtual bool IsDynamic(const bool bIncludeAncestors) const
233 {
234 return false;
235 }
236
237protected:
238 //~ Begin UObject Interface.
239 ENGINE_API virtual FString GetDesc() override;
240 ENGINE_API virtual void BeginDestroy() override;
241 ENGINE_API virtual void PostLoad() override;
242
243public:
244
245 // Sound Submix Editor functionality
246#if WITH_EDITOR
247
254 static ENGINE_API void AddReferencedObjects(UObject* InThis, FReferenceCollector& Collector);
255
256protected:
257
258 ENGINE_API virtual void PostDuplicate(EDuplicateMode::Type DuplicateMode) override;
260 ENGINE_API virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
261 //~ End UObject Interface.
262
263private:
265#endif // WITH_EDITOR
266};
267
271UCLASS(config = Engine, abstract, hidecategories = Object, editinlinenew, BlueprintType, MinimalAPI)
273{
275public:
276
277
278 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = SoundSubmix, meta = (EditCondition = "!bIsDynamic"))
280
286 ENGINE_API TObjectPtr<USoundSubmixBase> GetParent(Audio::FDeviceId InDeviceId) const;
287
289 TMap<uint32, TObjectPtr<USoundSubmixBase>> DynamicParentSubmix;
290
297 ENGINE_API void SetParentSubmix(USoundSubmixBase* InParentSubmix, bool bModifyAssets = true);
298
299 ENGINE_API virtual bool DynamicConnect(const UObject* WorldContextObject, USoundSubmixBase* Parent) override;
301 ENGINE_API virtual bool DynamicDisconnect(const UObject* WorldContextObject) override;
302 ENGINE_API bool DynamicDisconnect(FAudioDeviceHandle Handle);
303 ENGINE_API virtual bool IsDynamic(const bool bIncludeAncestors) const override;
304 ENGINE_API virtual USoundSubmixBase* FindDynamicAncestor() override;
305
307
309 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = SoundSubmix, meta = (DisplayPriority=-1, EditCondition = "ParentSubmix == nullptr"))
310 uint8 bIsDynamic : 1;
311
312 // Const version.
313 const USoundSubmixBase* FindDynamicAncestor() const;
314
315#if WITH_EDITOR
316 ENGINE_API virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
317 ENGINE_API virtual void PostDuplicate(EDuplicateMode::Type DuplicateMode) override;
318#endif
319};
320
321// Whether to use linear or decibel values for audio gains
322UENUM(BlueprintType)
324{
325 Linear = 0,
326 Decibels,
327};
328
332UCLASS(config = Engine, hidecategories = Object, editinlinenew, BlueprintType, MinimalAPI)
334{
336
337public:
338
340 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = SoundSubmix)
341 uint8 bMuteWhenBackgrounded : 1;
342
343 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = SoundSubmix)
345
347 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SoundSubmix)
349
351 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = EnvelopeFollower, meta = (ClampMin = "0", UIMin = "0"))
352 int32 EnvelopeFollowerAttackTime;
353
355 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = EnvelopeFollower, meta = (ClampMin = "0", UIMin = "0"))
356 int32 EnvelopeFollowerReleaseTime;
357
359 UPROPERTY(EditAnywhere, BlueprintSetter=SetOutputVolumeModulation, Category = SubmixLevel, meta = (DisplayName = "Output Volume (dB)", AudioParam = "Volume", AudioParamClass = "SoundModulationParameterVolume", ClampMin = "-96.0", ClampMax = "0.0", UIMin = "-96.0", UIMax = "0.0"))
361
363 UPROPERTY(EditAnywhere, BlueprintSetter=SetWetVolumeModulation, Category = SubmixLevel, meta = (DisplayName = "Wet Level (dB)", AudioParam = "Volume", AudioParamClass = "SoundModulationParameterVolume", ClampMin = "-96.0", ClampMax = "0.0", UIMin = "-96.0", UIMax = "0.0"))
365
367 UPROPERTY(EditAnywhere, BlueprintSetter=SetDryVolumeModulation, Category = SubmixLevel, meta = (DisplayName = "Dry Level (dB)", AudioParam = "Volume", AudioParamClass = "SoundModulationParameterVolume", ClampMin = "-96.0", ClampMax = "0.0", UIMin = "-96.0", UIMax = "0.0"))
369
371 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AudioLink)
372 uint8 bSendToAudioLink : 1;
373
375 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AudioLink)
377
378 // Blueprint delegate for when a recorded file is finished exporting.
379 UPROPERTY(BlueprintAssignable)
380 FOnSubmixRecordedFileDone OnSubmixRecordedFileDone;
381
382 // Start recording the audio from this submix.
383 UFUNCTION(BlueprintCallable, Category = "Audio|Bounce", meta = (WorldContext = "WorldContextObject", DisplayName = "Start Recording Submix Output"))
384 ENGINE_API void StartRecordingOutput(const UObject* WorldContextObject, float ExpectedDuration);
385
386 ENGINE_API void StartRecordingOutput(FAudioDevice* InDevice, float ExpectedDuration);
387
388 // Finish recording the audio from this submix and export it as a wav file or a USoundWave.
389 UFUNCTION(BlueprintCallable, Category = "Audio|Bounce", meta = (WorldContext = "WorldContextObject", DisplayName = "Finish Recording Submix Output"))
390 ENGINE_API void StopRecordingOutput(const UObject* WorldContextObject, EAudioRecordingExportType ExportType, const FString& Name, FString Path, USoundWave* ExistingSoundWaveToOverwrite = nullptr);
391
392 ENGINE_API void StopRecordingOutput(FAudioDevice* InDevice, EAudioRecordingExportType ExportType, const FString& Name, FString Path, USoundWave* ExistingSoundWaveToOverwrite = nullptr);
393
394 // Start envelope following the submix output. Register with OnSubmixEnvelope to receive envelope follower data in BP.
395 UFUNCTION(BlueprintCallable, Category = "Audio|EnvelopeFollowing", meta = (WorldContext = "WorldContextObject"))
396 ENGINE_API void StartEnvelopeFollowing(const UObject* WorldContextObject);
397
398 ENGINE_API void StartEnvelopeFollowing(FAudioDevice* InDevice);
399
400 // Start envelope following the submix output. Register with OnSubmixEnvelope to receive envelope follower data in BP.
401 UFUNCTION(BlueprintCallable, Category = "Audio|EnvelopeFollowing", meta = (WorldContext = "WorldContextObject"))
402 ENGINE_API void StopEnvelopeFollowing(const UObject* WorldContextObject);
403
404 ENGINE_API void StopEnvelopeFollowing(FAudioDevice* InDevice);
405
410 UFUNCTION(BlueprintCallable, Category = "Audio|EnvelopeFollowing", meta = (WorldContext = "WorldContextObject"))
411 ENGINE_API void AddEnvelopeFollowerDelegate(const UObject* WorldContextObject, const FOnSubmixEnvelopeBP& OnSubmixEnvelopeBP);
412
417 UFUNCTION(BlueprintCallable, Category = "Audio|EnvelopeFollowing", meta = (WorldContext = "WorldContextObject"))
418 ENGINE_API void RemoveEnvelopeFollowerDelegate(const UObject* WorldContextObject, const FOnSubmixEnvelopeBP& OnSubmixEnvelopeBP);
419
433 UFUNCTION(BlueprintCallable, Category = "Audio|Spectrum", meta = (WorldContext = "WorldContextObject", AdvancedDisplay = 3))
434 ENGINE_API void AddSpectralAnalysisDelegate(const UObject* WorldContextObject, const TArray<FSoundSubmixSpectralAnalysisBandSettings>& InBandSettings, const FOnSubmixSpectralAnalysisBP& OnSubmixSpectralAnalysisBP, float UpdateRate = 10.f, float DecibelNoiseFloor=-40.f, bool bDoNormalize = true, bool bDoAutoRange = false, float AutoRangeAttackTime = 0.1f, float AutoRangeReleaseTime = 60.f);
435
440 UFUNCTION(BlueprintCallable, Category = "Audio|Spectrum", meta = (WorldContext = "WorldContextObject"))
441 ENGINE_API void RemoveSpectralAnalysisDelegate(const UObject* WorldContextObject, const FOnSubmixSpectralAnalysisBP& OnSubmixSpectralAnalysisBP);
442
444 UFUNCTION(BlueprintCallable, Category = "Audio|Analysis", meta = (WorldContext = "WorldContextObject", AdvancedDisplay = 1))
445 ENGINE_API void StartSpectralAnalysis(const UObject* WorldContextObject, EFFTSize FFTSize = EFFTSize::DefaultSize, EFFTPeakInterpolationMethod InterpolationMethod = EFFTPeakInterpolationMethod::Linear, EFFTWindowType WindowType = EFFTWindowType::Hann, float HopSize = 0, EAudioSpectrumType SpectrumType = EAudioSpectrumType::MagnitudeSpectrum);
446
447 ENGINE_API void StartSpectralAnalysis(FAudioDevice* InDevice, EFFTSize FFTSize = EFFTSize::DefaultSize, EFFTPeakInterpolationMethod InterpolationMethod = EFFTPeakInterpolationMethod::Linear, EFFTWindowType WindowType = EFFTWindowType::Hann, float HopSize = 0, EAudioSpectrumType SpectrumType = EAudioSpectrumType::MagnitudeSpectrum);
448
450 UFUNCTION(BlueprintCallable, Category = "Audio|Analysis", meta = (WorldContext = "WorldContextObject", AdvancedDisplay = 1))
451 ENGINE_API void StopSpectralAnalysis(const UObject* WorldContextObject);
452
453 ENGINE_API void StopSpectralAnalysis(FAudioDevice* InDevice);
454
456 UFUNCTION(BlueprintCallable, Category = "Audio", meta = (WorldContext = "WorldContextObject", DisplayName = "SetSubmixOutputVolume (linear gain)"))
457 ENGINE_API void SetSubmixOutputVolume(const UObject* WorldContextObject, float InOutputVolume);
458
460 UFUNCTION(BlueprintCallable, Category = "Audio", meta = (WorldContext = "WorldContextObject", DisplayName = "SetSubmixWetLevel (linear gain)"))
461 ENGINE_API void SetSubmixWetLevel(const UObject* WorldContextObject, float InWetLevel);
462
464 UFUNCTION(BlueprintCallable, Category = "Audio", meta = (WorldContext = "WorldContextObject", DisplayName = "SetSubmixDryLevel (linear gain)"))
465 ENGINE_API void SetSubmixDryLevel(const UObject* WorldContextObject, float InDryLevel);
466
467 static ENGINE_API FSoundSpectrumAnalyzerSettings GetSpectrumAnalyzerSettings(EFFTSize FFTSize, EFFTPeakInterpolationMethod InterpolationMethod, EFFTWindowType WindowType, float HopSize, EAudioSpectrumType SpectrumType);
468
469 static ENGINE_API FSoundSpectrumAnalyzerDelegateSettings GetSpectrumAnalysisDelegateSettings(const TArray<FSoundSubmixSpectralAnalysisBandSettings>& InBandSettings, float UpdateRate, float DecibelNoiseFloor, bool bDoNormalize, bool bDoAutoRange, float AutoRangeAttackTime, float AutoRangeReleaseTime);
471
474
475#if WITH_EDITOR
476 ENGINE_API virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
477#endif
478
479 // Custom settors for Modulation Destinations
480 UFUNCTION(BlueprintCallable, BlueprintInternalUseOnly)
481 void SetOutputVolumeModulation(const FSoundModulationDestinationSettings& InVolMod);
482
483 UFUNCTION(BlueprintCallable, BlueprintInternalUseOnly)
484 void SetWetVolumeModulation(const FSoundModulationDestinationSettings& InVolMod);
485
486 UFUNCTION(BlueprintCallable, BlueprintInternalUseOnly)
487 void SetDryVolumeModulation(const FSoundModulationDestinationSettings& InVolMod);
488
489 // Send submix modulation changes to audio devices
490 void PushModulationChanges();
491
493 static FAudioDevice* GetAudioDeviceFrom(const UObject* WorldContextObject);
494
495 // State handling for bouncing output.
497
498#if WITH_EDITORONLY_DATA
499
500 // Forever deprecated properties.
501 // These must be kept to always be able to migrate older assets.
502 UPROPERTY()
504 UPROPERTY()
506 UPROPERTY()
508
510 void HandleVersionMigration(const int32 Version);
511
512#endif //WITH_EDITORONLY_DATA
513};
514
515
519UCLASS(config = Engine, hidecategories = Object, editinlinenew, BlueprintType, Meta = (DisplayName = "Sound Submix Soundfield"), MinimalAPI)
521{
523
524public:
525 ENGINE_API ISoundfieldFactory* GetSoundfieldFactoryForSubmix() const;
526 ENGINE_API const USoundfieldEncodingSettingsBase* GetSoundfieldEncodingSettings() const;
527 ENGINE_API TArray<USoundfieldEffectBase *> GetSoundfieldProcessors() const;
528
529public:
531 UPROPERTY(EditAnywhere, AssetRegistrySearchable, Category = Soundfield)
532 FName SoundfieldEncodingFormat;
533
535 UPROPERTY(EditAnywhere, Category = Soundfield)
537
539 UPROPERTY(EditAnywhere, Category = Soundfield)
540 TArray<TObjectPtr<USoundfieldEffectBase>> SoundfieldEffectChain;
541
542 // Traverses parent submixes until we find a submix that doesn't inherit its soundfield format.
543 ENGINE_API FName GetSubmixFormat() const;
544
545 UPROPERTY()
547
548 // Traverses parent submixes until we find a submix that specifies encoding settings.
549 ENGINE_API const USoundfieldEncodingSettingsBase* GetEncodingSettings() const;
550
551 // This function goes through every child submix and the parent submix to ensure that they have a compatible format with this submix's format.
552 ENGINE_API void SanitizeLinks();
553
556
557#if WITH_EDITOR
558 ENGINE_API virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
559#endif
560
561};
562
566UCLASS(config = Engine, hidecategories = Object, editinlinenew, BlueprintType, Meta = (DisplayName = "Sound Submix Endpoint"), MinimalAPI)
568{
570
571public:
572 ENGINE_API IAudioEndpointFactory* GetAudioEndpointForSubmix() const;
573 ENGINE_API const UAudioEndpointSettingsBase* GetEndpointSettings() const;
574
575public:
577 UPROPERTY(EditAnywhere, AssetRegistrySearchable, Category = Endpoint)
578 FName EndpointType;
579
580 UPROPERTY()
582
583 UPROPERTY(EditAnywhere, Category = Endpoint)
585
586#if WITH_EDITOR
587 ENGINE_API virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
588#endif
589
590protected:
591 ENGINE_API virtual void PostLoad() override;
592};
593
597UCLASS(config = Engine, hidecategories = Object, editinlinenew, BlueprintType, Meta = (DisplayName = "Sound Submix Soundfield Endpoint"), MinimalAPI)
599{
601
602public:
603 ENGINE_API ISoundfieldEndpointFactory* GetSoundfieldEndpointForSubmix() const;
604 ENGINE_API const USoundfieldEndpointSettingsBase* GetEndpointSettings() const;
605 ENGINE_API const USoundfieldEncodingSettingsBase* GetEncodingSettings() const;
606 ENGINE_API TArray<USoundfieldEffectBase*> GetSoundfieldProcessors() const;
607public:
609 UPROPERTY(EditAnywhere, Category = Endpoint, AssetRegistrySearchable)
610 FName SoundfieldEndpointType;
611
612 UPROPERTY()
614
618 ENGINE_API bool RecurseCheckChild(const USoundSubmix* ChildSoundSubmix) const;
619
620 // This function goes through every child submix and the parent submix to ensure that they have a compatible format.
621 ENGINE_API void SanitizeLinks();
622
623 UPROPERTY(EditAnywhere, Category = Endpoint)
625
626 UPROPERTY()
628
629 UPROPERTY(EditAnywhere, Category = Soundfield)
631
632 UPROPERTY(EditAnywhere, Category = Soundfield)
633 TArray<TObjectPtr<USoundfieldEffectBase>> SoundfieldEffectChain;
634
637#if WITH_EDITOR
638 ENGINE_API virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
639#endif
640};
641
int Volume
Definition AndroidPlatformMisc.cpp:380
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type, Param1Name)
Definition DelegateCombinations.h:53
return true
Definition ExternalRpcRegistry.cpp:601
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UPARAM(...)
Definition ObjectMacros.h:748
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
EAudioRecordingExportType
Definition SoundSubmixSend.h:60
EGainParamMode
Definition SoundSubmix.h:324
EFFTWindowType
Definition SoundSubmix.h:80
EFFTSize
Definition SoundSubmix.h:46
EAudioSpectrumType
Definition SoundSubmix.h:96
EFFTPeakInterpolationMethod
Definition SoundSubmix.h:71
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Engine.Build.cs:7
Definition Archive.h:1208
Definition AudioDeviceHandle.h:28
Definition AudioDevice.h:417
Definition NameTypes.h:617
Definition UnrealType.h:174
Definition UObjectGlobals.h:2492
Definition IAudioEndpoint.h:202
Definition ISoundfieldEndpoint.h:168
Definition ISoundfieldFormat.h:254
Definition ISubmixBufferListener.h:13
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Definition SubclassOf.h:30
Definition UniquePtr.h:107
Definition IAudioEndpoint.h:54
Definition AudioLinkSettingsAbstract.h:32
Definition EdGraph.h:68
Definition SoundSubmix.h:568
Definition Object.h:95
Definition SoundEffectSubmix.h:26
Definition SoundSubmix.h:174
virtual bool IsDynamic(const bool bIncludeAncestors) const
Definition SoundSubmix.h:232
Definition SoundSubmix.h:273
Definition SoundSubmix.h:334
TUniquePtr< Audio::FAudioRecordingData > RecordingData
Definition SoundSubmix.h:496
Definition SoundWave.h:417
Definition ISoundfieldFormat.h:384
Definition ISoundfieldFormat.h:124
Definition ISoundfieldEndpoint.h:52
Definition SoundSubmix.h:599
Definition SoundSubmix.h:521
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
Type
Definition UObjectGlobals.h:128
Definition SoundSubmix.h:643
ENGINE_API const USoundSubmixBase * FindRoot(const USoundSubmixBase *InStartingPoint, FAudioDeviceHandle InDevice)
Definition SoundSubmix.cpp:1353
ENGINE_API void ForEachStaticChildRecursive(USoundSubmixBase *StartingPoint, const TFunction< void(USoundSubmixBase *)> &Op)
Definition SoundSubmix.cpp:1344
ENGINE_API bool FindInGraph(const USoundSubmixBase *InEntryPoint, const USoundSubmixBase *InToMatch, bool bShouldAcsend, FAudioDeviceHandle InDevice={})
Definition SoundSubmix.cpp:1304
ENGINE_API bool AreSubmixFormatsCompatible(const USoundSubmixBase *ChildSubmix, const USoundSubmixBase *ParentSubmix)
Definition SoundSubmix.cpp:1224
@ false
Definition radaudio_common.h:23
Definition SoundSubmix.h:165
Definition UnrealType.h:6865
Definition SoundModulationDestination.h:62
Definition SoundSubmix.h:126
TArray< FSoundSubmixSpectralAnalysisBandSettings > BandSettings
Definition SoundSubmix.h:128
float DecibelNoiseFloor
Definition SoundSubmix.h:134
bool bDoNormalize
Definition SoundSubmix.h:137
float AutoRangeReleaseTime
Definition SoundSubmix.h:146
float UpdateRate
Definition SoundSubmix.h:131
float AutoRangeAttackTime
Definition SoundSubmix.h:143
bool bDoAutoRange
Definition SoundSubmix.h:140
Definition SoundSubmix.h:108
EAudioSpectrumType SpectrumType
Definition SoundSubmix.h:116
EFFTPeakInterpolationMethod InterpolationMethod
Definition SoundSubmix.h:119
EFFTWindowType WindowType
Definition SoundSubmix.h:113
EFFTSize FFTSize
Definition SoundSubmix.h:110
float HopSize
Definition SoundSubmix.h:122
Definition SoundSubmixSend.h:34
Definition ObjectPtr.h:488