UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Audio.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 Audio.h: Unreal base audio.
5=============================================================================*/
6
7#pragma once
8
9#include "CoreMinimal.h"
10#include "AudioDefines.h"
11#include "Stats/Stats.h"
12#include "HAL/ThreadSafeBool.h"
21#include "IAudioModulation.h"
22
24
25// Special log category used for temporary programmer debugging code of audio
27
57
58
59class FAudioDevice;
60class USoundNode;
61class USoundWave;
62class USoundClass;
63class USoundSubmix;
64class USoundSourceBus;
66struct FActiveSound;
67struct FWaveInstance;
69
77{ // 4.0 5.1 6.1 7.1
84 SPEAKER_LeftBack, // * * If there is no BackRight channel, this is the BackCenter channel
87};
88
89// Forward declarations.
90class UAudioComponent;
91class USoundNode;
92struct FWaveInstance;
93struct FReverbSettings;
94struct FSampleLoop;
105
107{
108 ENGINE_API void AddNotify(USoundNode* NotifyNode, UPTRINT WaveInstanceHash);
109 ENGINE_API UPTRINT GetHashForNode(USoundNode* NotifyNode) const;
111 ENGINE_API void DispatchNotifies(FWaveInstance* WaveInstance, const bool bStopped);
112
113 friend FArchive& operator<<( FArchive& Ar, FNotifyBufferFinishedHooks& WaveInstance );
114
115private:
116
117 struct FNotifyBufferDetails
118 {
119 TObjectPtr<USoundNode> NotifyNode;
120 UPTRINT NotifyNodeWaveInstanceHash;
121
122 FNotifyBufferDetails()
123 : NotifyNode(nullptr)
124 , NotifyNodeWaveInstanceHash(0)
125 {
126 }
127
128 FNotifyBufferDetails(USoundNode* InNotifyNode, UPTRINT InHash)
129 : NotifyNode(InNotifyNode)
130 , NotifyNodeWaveInstanceHash(InHash)
131 {
132 }
133 };
134
135
137};
138
142
145
150{
151public:
152 virtual ~ISourceBufferListener() = default;
153
162 virtual void OnNewBuffer(const FOnNewBufferParams&) = 0;
163 virtual void OnSourceReleased(const int32 InSourceId) = 0;
164};
166
168enum class EBusSendType : uint8
169{
170 PreEffect,
172 Count
173};
174
180{
181private:
183 static ENGINE_API uint32 PlayOrderCounter;
184
185public:
188
191
194
197
200
203
206
209
212
216
220
221private:
222
224 float Volume;
225
227 float DistanceAttenuation;
228
230 float OcclusionAttenuation;
231
233 float VolumeMultiplier;
234
236 float EnvelopValue;
237
239 float RelativeRenderCost;
240
241public:
244
247
249 float Priority;
250
253
256
259
261 float LFEBleed;
262
265
268
271
274
277
280
283
286
289
292
295
296private:
298 uint32 bUseSpatialization:1;
299
300public:
303
306
309
312
315
318
321
324
327
330
333
336
339
342
345
348
351
354
357
360
363
366
369
372
375
377 float Pitch;
378
381
384
387
390
393
396
399
402
405
408
411
414
417
420
421private:
423 uint32 PlayOrder;
424
425public:
428
431
434
437
440
442 ENGINE_API void NotifyFinished(const bool bStopped = false);
443
445 friend FArchive& operator<<(FArchive& Ar, FWaveInstance* WaveInstance);
446
449
452
454 void SetVolume(const float InVolume) { Volume = InVolume; }
455 void SetDistanceAttenuation(const float InDistanceAttenuation) { DistanceAttenuation = InDistanceAttenuation; }
456 void SetOcclusionAttenuation(const float InOcclusionAttenuation) { OcclusionAttenuation = InOcclusionAttenuation; }
457 void SetPitch(const float InPitch) { Pitch = InPitch; }
458 void SetVolumeMultiplier(const float InVolumeMultiplier) { VolumeMultiplier = InVolumeMultiplier; }
459
461 bool IsStopping() const { return bIsStopping; }
462
466 ENGINE_API bool IsPlaying() const;
467
469 float GetVolumeMultiplier() const { return VolumeMultiplier; }
470
472 ENGINE_API float GetActualVolume() const;
473
476
479
482
485
487 ENGINE_API float GetDynamicVolume() const;
488
490 ENGINE_API float GetPitch() const;
491
493 ENGINE_API float GetVolume() const;
494
497
498 ENGINE_API bool IsSeekable() const;
499
501 ENGINE_API bool IsStreaming() const;
502
504 ENGINE_API FString GetName() const;
505
507 void SetEnvelopeValue(const float InEnvelopeValue) { EnvelopValue = InEnvelopeValue; }
508
510 float GetEnvelopeValue() const { return EnvelopValue; }
511
513 void SetUseSpatialization(const bool InUseSpatialization) { bUseSpatialization = InUseSpatialization; }
514
516 ENGINE_API bool GetUseSpatialization() const;
517
520
523
524 uint32 GetPlayOrder() const { return PlayOrder; }
525
526 friend inline uint32 GetTypeHash(FWaveInstance* A) { return A->PlayOrder; }
527
530
532 float GetRelativeRenderCost() const { return RelativeRenderCost; }
533
535
537
538private:
539 static Audio::FModulationParameter GetParameterBasedOnDestination(const EModulationDestination InDestination);
540
543 void CalculateInheritedModulationSettingsAndValue(const EModulationDestination InDestination, FSoundModulationDestinationSettings& InOutSettings, float& OutValue) const;
544};
545
546/*-----------------------------------------------------------------------------
547 FSoundBuffer.
548-----------------------------------------------------------------------------*/
549
551{
552public:
561
562 ENGINE_API virtual ~FSoundBuffer();
563
565
572
577
581 FString GetChannelsDesc();
582
587
589 virtual bool ReadCompressedData(uint8* Destination, int32 NumFramesToDecode, bool bLooping) { return true; }
590
592 virtual void Seek(const float SeekTime) {}
593
597 virtual int32 GetCurrentChunkIndex() const {return -1;}
598
602 virtual int32 GetCurrentChunkOffset() const {return -1;}
603
605 virtual bool IsRealTimeSourceReady() { return true; }
606
609
620};
621
622/*-----------------------------------------------------------------------------
623FSoundSource.
624-----------------------------------------------------------------------------*/
625
627{
628public:
632 , WaveInstance(nullptr)
633 , LFEBleed(0.5f)
636 , PlaybackTime(0.0f)
637 , Pitch(1.0f)
638 , LastUpdate(0)
639 , LastHeardUpdate(0)
640 , TickCount(0)
643 , NumFramesPlayed(0)
644 , NumTotalFrames(1)
645 , StartFrame(0)
646 , VoiceId(-1)
647 , Playing(false)
651 , Paused(false)
652 , bInitialized(true) // Note: this is defaulted to true since not all platforms need to deal with async initialization.
655 {
656 }
657
660
661 /* Prepares the source voice for initialization. This may parse a compressed asset header on some platforms */
663
665 virtual bool IsPreparedToInit() { return true; }
666
669
671 virtual bool IsInitialized() const { return bInitialized; };
672
674 virtual void Update() = 0;
675
677 virtual void Play() = 0;
678
680 ENGINE_API virtual void Stop();
681
682 virtual void StopNow() { Stop(); };
683
685 virtual bool IsStopping() { return false; }
686
688 virtual bool IsFinished() = 0;
689
692
695
697 ENGINE_API virtual FString Describe(bool bUseLongName);
698
700 bool IsGameOnly() const;
701
703 const FWaveInstance* GetWaveInstance() const { return WaveInstance; }
704
706 bool IsPlaying() const { return Playing; }
707
709 bool IsPaused() const { return Paused; }
710
712 bool IsPausedByGame() const { return bIsPausedByGame; }
713
714 bool IsPausedManually() const { return bIsManuallyPaused; }
715
717 bool IsReverbApplied() const { return bReverbApplied; }
718
721
723 ENGINE_API float SetLFEBleed();
724
727
730
733
735 UE_DEPRECATED(5.5, "The Buffer member no longer exists. Use GetNumChannels() to qeury channel count.")
736 virtual const FSoundBuffer* GetBuffer() const { return nullptr; }
737
738 int32 GetNumChannels() const { return NumChannels; }
739
744
747 {
748 bIsVirtual = true;
749 }
750
752 ENGINE_API virtual float GetPlaybackPercent() const;
753
755 ENGINE_API virtual float GetSourceSampleRate() const;
756
758 ENGINE_API virtual int64 GetNumFramesPlayed() const;
759
761 ENGINE_API virtual int32 GetNumTotalFrames() const;
762
764 ENGINE_API virtual int32 GetStartFrame() const;
765
767 virtual float GetEnvelopeValue() const { return 0.0f; };
768
770 virtual float GetRelativeRenderCost() const { return 1.0f; }
771
773
774 void NotifyPlaybackData();
775
776protected:
777
779 ENGINE_API void InitCommon();
780
783
785 virtual void Pause() = 0;
786
788 void UpdatePause();
789
791 ENGINE_API float GetDebugVolume(const float InVolume);
792
795
798
800 UE_DEPRECATED(5.5, "This is no longer used and should not be accessed directly.")
802
804 float LFEBleed;
805
808
811
813 UE_DEPRECATED(5.6, "This Variable duplicates cache behavior used at source voice level")
815
817 UE_DEPRECATED(5.6, "This Variable duplicates cache behavior used at source voice level")
819
822
824 float Pitch;
825
828
831
834
837
840
843
846
849
852
855
858
861
864
867
870
873
876
879
882
883#if ENABLE_AUDIO_DEBUG
884public:
885
887 struct FDebugInfo
888 {
890 bool bIsSoloed = false;
891
893 bool bIsMuted = false;
894
896 FString MuteSoloReason;
897
899 double CPUCoreUtilization = 0;
900
902 float RelativeRenderCost = 1.f;
903
906 };
907
909 friend struct FDebugInfo;
910#endif //ENABLE_AUDIO_DEBUG
911};
912
913// Data representing a cue in a wave file
915{
916 // Unique identifying gvalue for the cue
918 // Sample offset associated with the cue point
920 // Cue label
921 FString Label;
922 // If this is a region, it will have a duration (sample length)
924};
925
926// data representing a sample loop in a wave file
933
934//
935// Structure for in-memory interpretation and modification of WAVE sound structures.
936//
938{
939public:
940
941 // Format specifiers
942 static constexpr uint16 WAVE_INFO_FORMAT_PCM = 0x0001;
943 static constexpr uint16 WAVE_INFO_FORMAT_ADPCM = 0x0002;
944 static constexpr uint16 WAVE_INFO_FORMAT_IEEE_FLOAT = 0x0003;
945 static constexpr uint16 WAVE_INFO_FORMAT_DVI_ADPCM = 0x0011;
946 static constexpr uint16 WAVE_INFO_FORMAT_OODLE_WAVE = 0xFFFF;
947
948 // Pointers to variables in the in-memory WAVE file.
955
962
964
965 // List of cues parsed from the wave file
967
968 // List of sample loops parsed from the wave file
970
971 // Timecode data if it was found on import.
973
974 // Constructor.
976 {
977 }
978
979 // 16-bit padding.
981 {
982 return ((InDW + 1)& ~1);
983 }
984
988 ENGINE_API static const uint32 GetChunkId(const char ChunkID[4]);
989
990 // Read headers and load all info pointers in WaveModInfo.
991 // Returns 0 if invalid data encountered.
992 ENGINE_API bool ReadWaveInfo(const uint8* WaveData, int32 WaveDataSize, FString* ErrorMessage = NULL, bool InHeaderDataOnly = false, void** OutFormatHeader = NULL );
993
998
999 ENGINE_API void ReportImportFailure() const;
1000
1003
1005 ENGINE_API bool IsFormatSupported() const;
1007 ENGINE_API bool IsFormatUncompressed() const;
1008
1009};
1010
1012ENGINE_API void SerializeWaveFile(TArray<uint8>& OutWaveFileData, const uint8* InPCMData, const int32 NumBytes, const int32 NumChannels, const int32 SampleRate);
1013
1020
1027
1028
#define NULL
Definition oodle2base.h:134
GLenum GLuint GLint level
Definition AndroidOpenGLFunctions.h:46
int Volume
Definition AndroidPlatformMisc.cpp:380
#define MIN_FILTER_FREQUENCY
Definition AudioDefines.h:47
#define MAX_FILTER_FREQUENCY
Definition AudioDefines.h:48
ENGINE_API bool IsSpatializationCVarEnabled()
Definition Audio.cpp:183
EBusSendType
Definition Audio.h:169
ENGINE_API const TArray< FName > & GetCompressedAudioFormatsToBuild()
ENGINE_API UClass * GetAudioPluginCustomSettingsClass(EAudioPlugin PluginType)
Definition Audio.cpp:130
ELoopingMode
Definition Audio.h:97
@ LOOP_Forever
Definition Audio.h:103
@ LOOP_WithNotification
Definition Audio.h:101
@ LOOP_Never
Definition Audio.h:99
EAudioSpeakers
Definition Audio.h:77
@ SPEAKER_LeftSurround
Definition Audio.h:82
@ SPEAKER_RightSurround
Definition Audio.h:83
@ SPEAKER_FrontCenter
Definition Audio.h:80
@ SPEAKER_FrontRight
Definition Audio.h:79
@ SPEAKER_FrontLeft
Definition Audio.h:78
@ SPEAKER_LowFrequency
Definition Audio.h:81
@ SPEAKER_Count
Definition Audio.h:86
@ SPEAKER_LeftBack
Definition Audio.h:84
@ SPEAKER_RightBack
Definition Audio.h:85
ENGINE_API void SetCompressedAudioFormatsToBuild(const TCHAR *Platform=NULL)
ENGINE_API bool IsAudioPluginEnabled(EAudioPlugin PluginType)
Definition Audio.cpp:113
ENGINE_API void SerializeWaveFile(TArray< uint8 > &OutWaveFileData, const uint8 *InPCMData, const int32 NumBytes, const int32 NumChannels, const int32 SampleRate)
Definition Audio.cpp:2201
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::UPTRINT UPTRINT
An unsigned integer the same size as a pointer.
Definition Platform.h:1146
#define DECLARE_CYCLE_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:679
#define DECLARE_DWORD_COUNTER_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:682
#define DECLARE_FLOAT_ACCUMULATOR_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:683
#define DECLARE_MEMORY_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:687
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
DIRECTLINK_API Display
Definition DirectLinkLog.h:8
return true
Definition ExternalRpcRegistry.cpp:601
EAudioPlugin
Definition IAudioExtensionPlugin.h:40
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
ESoundSpatializationAlgorithm
Definition SoundAttenuation.h:32
ENonSpatializedRadiusSpeakerMapMode
Definition SoundAttenuation.h:115
EModulationDestination
Definition SoundModulationDestination.h:43
const char * source
Definition lz4.h:711
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition AudioDevice.h:417
Definition NameTypes.h:617
Definition UObjectGlobals.h:2492
Definition Audio.h:551
int32 ResourceID
Definition Audio.h:611
FString GetChannelsDesc()
Definition Audio.cpp:437
virtual ENGINE_API FString Describe(bool bUseLongName)
Definition Audio.cpp:454
FString ResourceName
Definition Audio.h:615
class FAudioDevice * AudioDevice
Definition Audio.h:619
bool bAllocationInPermanentPool
Definition Audio.h:617
virtual void EnsureRealtimeTaskCompletion()
Definition Audio.h:608
FSoundBuffer(class FAudioDevice *InAudioDevice)
Definition Audio.h:553
virtual bool ReadCompressedInfo(USoundWave *SoundWave)
Definition Audio.h:586
FName GetSoundClassName()
Definition Audio.cpp:385
virtual bool IsRealTimeSourceReady()
Definition Audio.h:605
virtual bool ReadCompressedData(uint8 *Destination, int32 NumFramesToDecode, bool bLooping)
Definition Audio.h:589
virtual int32 GetCurrentChunkOffset() const
Definition Audio.h:602
virtual int32 GetCurrentChunkIndex() const
Definition Audio.h:597
int32 NumChannels
Definition Audio.h:613
virtual ENGINE_API ~FSoundBuffer()
Definition Audio.cpp:376
virtual int32 GetSize() PURE_VIRTUAL(FSoundBuffer
Definition Audio.h:564
virtual void Seek(const float SeekTime)
Definition Audio.h:592
Definition Audio.h:627
float LastLPFFrequency
Definition Audio.h:814
FVector RightChannelSourceLocation
Definition Audio.h:839
uint8 Paused
Definition Audio.h:869
FVector LeftChannelSourceLocation
Definition Audio.h:836
ENGINE_API FSpatializationParams GetSpatializationParams()
Definition Audio.cpp:723
uint8 bIsPreviewSound
Definition Audio.h:875
void SetPauseManually(bool bInIsPauseManually)
Definition Audio.cpp:503
ENGINE_API float SetLFEBleed()
Definition Audio.cpp:542
virtual void Pause()=0
virtual ENGINE_API float GetSourceSampleRate() const
Definition Audio.cpp:868
virtual void Update()=0
int32 TickCount
Definition Audio.h:833
void UpdatePause()
Definition Audio.cpp:509
uint8 bReverbApplied
Definition Audio.h:860
virtual float GetRelativeRenderCost() const
Definition Audio.h:770
bool IsPausedManually() const
Definition Audio.h:714
void SetPauseByGame(bool bInIsPauseByGame)
Definition Audio.cpp:497
const FWaveInstance * GetWaveInstance() const
Definition Audio.h:703
virtual ENGINE_API void Stop()
Definition Audio.cpp:479
void SetVirtual()
Definition Audio.h:746
uint32 bIsVirtual
Definition Audio.h:878
void NotifyPlaybackData()
Definition Audio.cpp:900
uint8 bIsPausedByGame
Definition Audio.h:863
ENGINE_API void GetChannelLocations(FVector &Left, FVector &Right) const
Definition Audio.cpp:893
virtual bool IsStopping()
Definition Audio.h:685
FThreadSafeBool Playing
Definition Audio.h:857
virtual ENGINE_API FString Describe(bool bUseLongName)
Definition Audio.cpp:471
uint8 bInitialized
Definition Audio.h:872
virtual bool Init(FWaveInstance *InWaveInstance)=0
float Pitch
Definition Audio.h:824
virtual const FSoundBuffer * GetBuffer() const
Definition Audio.h:736
virtual ENGINE_API int64 GetNumFramesPlayed() const
Definition Audio.cpp:878
float LPFFrequency
Definition Audio.h:807
float PlaybackTime
Definition Audio.h:821
float LFEBleed
Definition Audio.h:804
virtual bool IsPreparedToInit()
Definition Audio.h:665
int32 NumTotalFrames
Definition Audio.h:845
virtual ENGINE_API float GetPlaybackPercent() const
Definition Audio.cpp:853
float HPFFrequency
Definition Audio.h:810
float LastHPFFrequency
Definition Audio.h:818
virtual bool IsFinished()=0
virtual ENGINE_API ~FSoundSource()
int32 StartFrame
Definition Audio.h:848
uint32 VoiceId
Definition Audio.h:854
uint8 bIsManuallyPaused
Definition Audio.h:866
bool IsReverbApplied() const
Definition Audio.h:717
bool IsGameOnly() const
Definition Audio.cpp:521
int32 NumChannels
Definition Audio.h:851
int32 NumFramesPlayed
Definition Audio.h:842
ENGINE_API void SetFilterFrequency()
Definition Audio.cpp:554
virtual bool PrepareForInitialization(FWaveInstance *InWaveInstance)
Definition Audio.h:662
virtual ENGINE_API int32 GetNumTotalFrames() const
Definition Audio.cpp:883
FSoundBuffer * Buffer
Definition Audio.h:801
FAudioDevice * AudioDevice
Definition Audio.h:794
virtual bool IsInitialized() const
Definition Audio.h:671
FSoundSource(FAudioDevice *InAudioDevice)
Definition Audio.h:630
int32 LastUpdate
Definition Audio.h:827
virtual ENGINE_API int32 GetStartFrame() const
Definition Audio.cpp:888
ENGINE_API bool SetReverbApplied(bool bHardwareAvailable)
Definition Audio.cpp:526
virtual float GetEnvelopeValue() const
Definition Audio.h:767
virtual void StopNow()
Definition Audio.h:682
virtual void InitializeSourceEffects(uint32 InEffectVoiceId)
Definition Audio.h:741
int32 GetNumChannels() const
Definition Audio.h:738
ENGINE_API void InitCommon()
Definition Audio.cpp:818
FWaveInstance * WaveInstance
Definition Audio.h:797
bool IsPausedByGame() const
Definition Audio.h:712
int32 LastHeardUpdate
Definition Audio.h:830
bool IsPlaying() const
Definition Audio.h:706
ENGINE_API void UpdateStereoEmitterPositions()
Definition Audio.cpp:624
virtual void Play()=0
ENGINE_API void UpdateCommon()
Definition Audio.cpp:832
bool IsPaused() const
Definition Audio.h:709
ENGINE_API float GetDebugVolume(const float InVolume)
Definition Audio.cpp:659
Definition ThreadSafeBool.h:17
Definition Audio.h:938
TPimplPtr< FSoundWaveTimecodeInfo, EPimplPtrMode::DeepCopy > TimecodeInfo
Definition Audio.h:972
ENGINE_API bool IsFormatSupported() const
Definition Audio.cpp:2172
static constexpr uint16 WAVE_INFO_FORMAT_IEEE_FLOAT
Definition Audio.h:944
const uint16 * pBitsPerSample
Definition Audio.h:952
static constexpr uint16 WAVE_INFO_FORMAT_PCM
Definition Audio.h:942
static constexpr uint16 WAVE_INFO_FORMAT_ADPCM
Definition Audio.h:943
const uint8 * SampleDataEnd
Definition Audio.h:959
const uint8 * SampleDataStart
Definition Audio.h:958
static ENGINE_API const TArray< uint32 > & GetRequiredWaveChunkIds()
Definition Audio.cpp:1589
static ENGINE_API const TArray< uint32 > & GetOptionalWaveChunkIds()
Definition Audio.cpp:1600
FWaveModInfo()
Definition Audio.h:975
const uint32 * pSamplesPerSec
Definition Audio.h:949
static constexpr uint16 WAVE_INFO_FORMAT_DVI_ADPCM
Definition Audio.h:945
const uint32 * pWaveDataSize
Definition Audio.h:956
const uint32 * pAvgBytesPerSec
Definition Audio.h:950
uint32 NewDataSize
Definition Audio.h:963
ENGINE_API bool ReadWaveInfo(const uint8 *WaveData, int32 WaveDataSize, FString *ErrorMessage=NULL, bool InHeaderDataOnly=false, void **OutFormatHeader=NULL)
Definition Audio.cpp:1699
const uint16 * pChannels
Definition Audio.h:953
uint16 * pFormatTag
Definition Audio.h:954
ENGINE_API bool IsFormatUncompressed() const
Definition Audio.cpp:2181
TArray< FWaveCue > WaveCues
Definition Audio.h:966
static constexpr uint16 WAVE_INFO_FORMAT_OODLE_WAVE
Definition Audio.h:946
static ENGINE_API const uint32 GetChunkId(const char ChunkID[4])
Definition Audio.cpp:1621
const uint16 * pBlockAlign
Definition Audio.h:951
ENGINE_API void ReportImportFailure() const
Definition Audio.cpp:2147
const uint8 * WaveDataEnd
Definition Audio.h:961
static uint32 Pad16Bit(uint32 InDW)
Definition Audio.h:980
ENGINE_API uint32 GetNumSamples() const
Definition Audio.cpp:2160
ENGINE_API bool ReadWaveHeader(const uint8 *RawWaveData, int32 Size, int32 Offset)
Definition Audio.cpp:2125
const uint32 * pMasterSize
Definition Audio.h:957
TArray< FWaveSampleLoop > WaveSampleLoops
Definition Audio.h:969
uint32 SampleDataSize
Definition Audio.h:960
Definition Audio.h:150
virtual void OnSourceReleased(const int32 InSourceId)=0
virtual void OnNewBuffer(const FOnNewBufferParams &)=0
virtual ~ISourceBufferListener()=default
Definition Array.h:670
Definition UniquePtr.h:107
Definition AudioLinkSettingsAbstract.h:32
Definition Class.h:3793
Definition IAudioExtensionPlugin.h:483
Definition IAudioExtensionPlugin.h:598
Definition SoundClass.h:209
Definition SoundEffectSource.h:49
Definition SoundNode.h:58
Definition SoundSubmix.h:174
Definition SoundSubmix.h:334
Definition SoundWave.h:417
Definition IAudioExtensionPlugin.h:398
Definition IAudioExtensionPlugin.h:185
Type
Definition AudioOutputTarget.h:12
@ false
Definition radaudio_common.h:23
Definition IAudioModulation.h:52
Definition ActiveSound.h:283
Definition Audio.h:107
ENGINE_API UPTRINT GetHashForNode(USoundNode *NotifyNode) const
Definition Audio.cpp:965
ENGINE_API void DispatchNotifies(FWaveInstance *WaveInstance, const bool bStopped)
Definition Audio.cpp:978
ENGINE_API void AddReferencedObjects(FReferenceCollector &Collector)
Definition Audio.cpp:994
ENGINE_API void AddNotify(USoundNode *NotifyNode, UPTRINT WaveInstanceHash)
Definition Audio.cpp:960
friend FArchive & operator<<(FArchive &Ar, FNotifyBufferFinishedHooks &WaveInstance)
Definition Audio.cpp:1002
Definition ReverbSettings.h:49
Definition AudioWaveFormatParser.h:80
Definition SoundModulationDestination.h:62
Definition SoundSourceBusSend.h:27
Definition SoundWaveTimecodeInfo.h:10
Definition IAudioExtensionPlugin.h:69
Definition Audio.h:915
uint32 Position
Definition Audio.h:919
uint32 CuePointID
Definition Audio.h:917
FString Label
Definition Audio.h:921
uint32 SampleLength
Definition Audio.h:923
Definition Audio.h:180
uint32 bIsStarted
Definition Audio.h:285
ENGINE_API float GetOcclusionAttenuation() const
Definition Audio.cpp:1269
USoundSubmixBase * SoundSubmix
Definition Audio.h:193
USoundEffectSourcePresetChain * SourceEffectChain
Definition Audio.h:202
void SetPitch(const float InPitch)
Definition Audio.h:457
float Priority
Definition Audio.h:249
uint32 bIsAmbisonics
Definition Audio.h:329
float AttenuationLowpassFilterFrequency
Definition Audio.h:371
uint32 bReportedSpatializationWarning
Definition Audio.h:326
ENGINE_API void AddReferencedObjects(FReferenceCollector &Collector)
Definition Audio.cpp:1199
float AttenuationHighpassFilterFrequency
Definition Audio.h:374
float AmbientZoneFilterFrequency
Definition Audio.h:368
int32 EnvelopeFollowerAttackTime
Definition Audio.h:243
ENGINE_API bool IsPlaying() const
Definition Audio.cpp:1106
uint32 bEnableSubmixSends
Definition Audio.h:276
ENGINE_API float GetVolumeWithDistanceAndOcclusionAttenuation() const
Definition Audio.cpp:1305
float LFEBleed
Definition Audio.h:261
EAudioOutputTarget::Type OutputTarget
Definition Audio.h:353
ENGINE_API float GetVolume() const
Definition Audio.cpp:1315
float StereoSpread
Definition Audio.h:392
uint32 bIsFinished
Definition Audio.h:288
void SetStopping(const bool bInIsStopping)
Definition Audio.h:460
uint32 bEnableBusSends
Definition Audio.h:270
void SetVolumeMultiplier(const float InVolumeMultiplier)
Definition Audio.h:458
uint32 bIsDynamic
Definition Audio.h:335
void SetDistanceAttenuation(const float InDistanceAttenuation)
Definition Audio.h:455
uint32 bAlreadyNotifiedHook
Definition Audio.h:291
float RadioFilterVolumeThreshold
Definition Audio.h:258
float AttenuationDistance
Definition Audio.h:395
FSharedISourceBufferListenerPtr SourceBufferListener
Definition Audio.h:214
friend uint32 GetTypeHash(FWaveInstance *A)
Definition Audio.h:526
ENGINE_API bool ShouldStopDueToMaxConcurrency() const
Definition Audio.cpp:1321
ENGINE_API float GetPitch() const
Definition Audio.cpp:1310
float GetVolumeMultiplier() const
Definition Audio.h:469
float ReverbSendLevel
Definition Audio.h:413
ENGINE_API bool IsStreaming() const
Definition Audio.cpp:1372
TArray< FSoundSourceBusSendInfo > BusSends[(int32) EBusSendType::Count]
Definition Audio.h:199
uint32 bCenterChannelOnly
Definition Audio.h:320
ENGINE_API float GetDistanceAndOcclusionAttenuation() const
Definition Audio.cpp:1259
float NonSpatializedRadiusStart
Definition Audio.h:383
FVector Location
Definition Audio.h:380
bool bShouldSourceBufferListenerZeroBuffer
Definition Audio.h:215
void SetVolume(const float InVolume)
Definition Audio.h:454
uint32 bIsMusic
Definition Audio.h:314
ELoopingMode LoopingMode
Definition Audio.h:264
float PlaybackPercent
Definition Audio.h:410
TArray< FSoundSubmixSendInfo > SoundSubmixSends
Definition Audio.h:196
UOcclusionPluginSourceSettingsBase * OcclusionPluginSettings
Definition Audio.h:344
void SetRelativeRenderCost(float InRelativeRenderCost)
Definition Audio.h:529
bool IsStopping() const
Definition Audio.h:461
uint32 bEnableHighPassFilter
Definition Audio.h:305
ENGINE_API FString GetName() const
Definition Audio.cpp:1382
FNotifyBufferFinishedHooks NotifyBufferFinishedHooks
Definition Audio.h:205
ENGINE_API float GetDynamicVolume() const
Definition Audio.cpp:1274
uint32 bIsOccluded
Definition Audio.h:308
ENGINE_API bool IsSeekable() const
Definition Audio.cpp:1360
float PlaybackTime
Definition Audio.h:407
float StartTime
Definition Audio.h:267
float HighPassFilterFrequency
Definition Audio.h:359
ENGINE_API void NotifyFinished(const bool bStopped=false)
Definition Audio.cpp:1149
uint8 UserIndex
Definition Audio.h:430
void SetSpatializationIsExternalSend(const bool InSpatializationIsExternalSend)
Definition Audio.h:519
float RadioFilterVolume
Definition Audio.h:255
uint32 bIsStopping
Definition Audio.h:332
USpatializationPluginSourceSettingsBase * SpatializationPluginSettings
Definition Audio.h:341
ENGINE_API float GetDistanceAttenuation() const
Definition Audio.cpp:1264
uint32 bEnableSourceDataOverride
Definition Audio.h:279
uint32 bSpatializationIsExternalSend
Definition Audio.h:294
ESoundSpatializationAlgorithm SpatializationMethod
Definition Audio.h:338
ENGINE_API float GetVolumeWeightedPriority() const
Definition Audio.cpp:1327
ENGINE_API bool GetUseSpatialization() const
Definition Audio.cpp:1377
uint32 bEnableBaseSubmix
Definition Audio.h:273
float ListenerToSoundDistance
Definition Audio.h:398
uint32 bReverb
Definition Audio.h:317
ENGINE_API float GetActualVolume() const
Definition Audio.cpp:1240
float SoundClassFilterFrequency
Definition Audio.h:362
USourceDataOverridePluginSourceSettingsBase * SourceDataOverridePluginSettings
Definition Audio.h:350
void SetUseSpatialization(const bool InUseSpatialization)
Definition Audio.h:513
ENGINE_API FWaveInstance & operator=(FWaveInstance &&)
float ManualReverbSendLevel
Definition Audio.h:416
TArray< FAttenuationSubmixSendSettings > AttenuationSubmixSends
Definition Audio.h:419
uint32 bEnableLowPassFilter
Definition Audio.h:302
float GetEnvelopeValue() const
Definition Audio.h:510
float VoiceCenterChannelVolume
Definition Audio.h:252
void SetEnvelopeValue(const float InEnvelopeValue)
Definition Audio.h:507
bool GetSpatializationIsExternalSend() const
Definition Audio.h:522
ENGINE_API FWaveInstance(FWaveInstance &&)
UPTRINT WaveInstanceHash
Definition Audio.h:427
float LowPassFilterFrequency
Definition Audio.h:356
float GetRelativeRenderCost() const
Definition Audio.h:532
uint32 bApplyRadioFilter
Definition Audio.h:282
ENGINE_API void StopWithoutNotification()
Definition Audio.cpp:1173
int32 EnvelopeFollowerReleaseTime
Definition Audio.h:246
float AbsoluteAzimuth
Definition Audio.h:404
float ListenerToSoundDistanceForPanning
Definition Audio.h:401
FActiveSound * ActiveSound
Definition Audio.h:208
friend FArchive & operator<<(FArchive &Ar, FWaveInstance *WaveInstance)
Definition Audio.cpp:1188
TUniquePtr< Audio::FQuartzQuantizedRequestData > QuantizedRequestData
Definition Audio.h:211
TObjectPtr< USoundClass > SoundClass
Definition Audio.h:190
TObjectPtr< USoundWave > WaveData
Definition Audio.h:187
ENGINE_API FSoundModulationDestinationSettings GetEffectiveModulationSettings(const EModulationDestination InDestination) const
Definition Audio.cpp:197
ENGINE_API float GetEffectiveModulationValue(const EModulationDestination InDestination) const
Definition Audio.cpp:188
float NonSpatializedRadiusEnd
Definition Audio.h:386
UReverbPluginSourceSettingsBase * ReverbPluginSettings
Definition Audio.h:347
uint32 GetPlayOrder() const
Definition Audio.h:524
UAudioLinkSettingsAbstract * AudioLinkSettingsOverride
Definition Audio.h:219
uint32 bIsPaused
Definition Audio.h:323
uint32 bIsUISound
Definition Audio.h:311
float OcclusionFilterFrequency
Definition Audio.h:365
float Pitch
Definition Audio.h:377
bool bShouldUseAudioLink
Definition Audio.h:218
void SetOcclusionAttenuation(const float InOcclusionAttenuation)
Definition Audio.h:456
ENonSpatializedRadiusSpeakerMapMode NonSpatializedRadiusMode
Definition Audio.h:389
Definition Audio.h:928
uint32 LoopID
Definition Audio.h:929
uint32 StartFrame
Definition Audio.h:930
uint32 EndFrame
Definition Audio.h:931
const float * AudioData
Definition Audio.h:156
int32 NumChannels
Definition Audio.h:159
int32 SampleRate
Definition Audio.h:160
int32 NumSamples
Definition Audio.h:158
int32 SourceId
Definition Audio.h:157
Definition ObjectPtr.h:488
Definition PimplPtr.h:50