UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AudioSettings.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
10#include "AudioMixerTypes.h"
11#include "AudioSettings.generated.h"
12
14
15class USoundClass;
17
18// Enumeration for what our options are for sample rates used for VOIP.
19UENUM()
21{
22 Low16000Hz = 16000,
23 Normal24000Hz = 24000,
24 /* High48000Hz = 48000 //TODO: 48k VOIP requires serious performance optimizations on encoding and decoding. */
25};
26
27// Enumeration defines what method of panning to use (for non-binaural audio) with the audio-mixer.
28UENUM()
30{
31 // Linear panning maintains linear amplitude when panning between speakers.
32 Linear,
33
34 // Equal power panning maintains equal power when panning between speakers.
36};
37
38// Enumeration defines how to treat mono 2D playback. Mono sounds need to upmixed to stereo when played back in 2D.
39UENUM()
41{
42 // The mono channel is split 0.5 left/right
43 Linear,
44
45 // The mono channel is split 0.707 left/right
47
48 // The mono channel is split 1.0 left/right
50};
51
52
53// The sound asset compression type to use for assets using the compression type "project defined".
54UENUM()
56{
57 // Perceptual-based codec which supports all features across all platforms.
59
60 // Will encode the asset using ADPCM, a time-domain codec that has fixed-sized quality and about ~4x compression ratio, but is relatively cheap to decode.
61 ADPCM,
62
63 // Uncompressed audio. Large memory usage (streamed chunks contain less audio per chunk) but extremely cheap to decode and supports all features.
64 PCM,
65
66 // Opus is a highly versatile audio codec. It is primarily designed for interactive speech and music transmission over the Internet, but is also applicable to storage and streaming applications.
67 Opus,
68
69 // Encodes the asset to a platform specific format and will be different depending on the platform. It does not currently support seeking.
71
72 // As BinkAudio, except better quality. Comparable CPU usage on newer platforms, higher CPU on older platforms.
73 RADAudio UMETA(DisplayName = "RAD Audio")
74};
75
76
77USTRUCT()
79{
81
82 UPROPERTY(EditAnywhere, Category="Quality")
83 FText DisplayName;
84
85 // The number of audio channels that can be used at once
86 // NOTE: Some platforms may cap this value to a lower setting regardless of what the settings request
87 UPROPERTY(EditAnywhere, Category="Quality", meta=(ClampMin="1"))
88 int32 MaxChannels;
89
91 : MaxChannels(32)
92 {
93 }
94};
95
96USTRUCT()
98{
100
101
102 UPROPERTY(config, EditAnywhere, Category="Debug", meta=(DisplayName="Name"))
103 FName DebugName;
104
106 UPROPERTY(config, EditAnywhere, Category="Debug", meta=(AllowedClasses="/Script/Engine.SoundBase"))
108};
109
110USTRUCT()
112{
114
115
116 UPROPERTY(EditAnywhere, Category = "Mix", meta = (AllowedClasses = "/Script/Engine.AudioBus"))
118};
119
123UCLASS(config=Engine, defaultconfig, meta=(DisplayName="Audio"), MinimalAPI)
125{
127
128#if WITH_EDITOR
130 ENGINE_API virtual void PostEditChangeChainProperty(FPropertyChangedChainEvent& PropertyChangedEvent) override;
131
134#endif // WITH_EDITOR
135
137 UPROPERTY(config, EditAnywhere, Category="Audio", meta=(AllowedClasses="/Script/Engine.SoundClass", DisplayName="Default Sound Class"))
138 FSoftObjectPath DefaultSoundClassName;
139
141 UPROPERTY(config, EditAnywhere, Category = "Audio", meta = (AllowedClasses = "/Script/Engine.SoundClass", DisplayName = "Default Media Sound Class"))
142 FSoftObjectPath DefaultMediaSoundClassName;
143
145 UPROPERTY(config, EditAnywhere, Category = "Audio", meta = (AllowedClasses = "/Script/Engine.SoundConcurrency", DisplayName = "Default Sound Concurrency"))
146 FSoftObjectPath DefaultSoundConcurrencyName;
147
149 UPROPERTY(config, EditAnywhere, Category="Audio", meta=(AllowedClasses="/Script/Engine.SoundMix"))
150 FSoftObjectPath DefaultBaseSoundMix;
151
153 UPROPERTY(config, EditAnywhere, Category="Audio", meta=(AllowedClasses="/Script/Engine.SoundClass", DisplayName = "VOIP Sound Class"))
154 FSoftObjectPath VoiPSoundClass;
155
157 UPROPERTY(config, EditAnywhere, Category="Mix", meta=(AllowedClasses="/Script/Engine.SoundSubmix"))
158 FSoftObjectPath MasterSubmix;
159
161 UPROPERTY(config, EditAnywhere, Category = "Mix", meta = (AllowedClasses = "/Script/Engine.SoundSubmix"), AdvancedDisplay)
162 FSoftObjectPath BaseDefaultSubmix;
163
165 UPROPERTY(config, EditAnywhere, Category="Mix", meta=(AllowedClasses="/Script/Engine.SoundSubmix"))
166 FSoftObjectPath ReverbSubmix;
167
169 UPROPERTY(config, EditAnywhere, Category="Mix", meta=(AllowedClasses="/Script/Engine.SoundSubmix", DisplayName = "EQ Submix (Legacy)"), AdvancedDisplay)
171
173 UPROPERTY(config, EditAnywhere, Category = "Audio", meta = (DisplayName = "VOIP Sample Rate"))
174 EVoiceSampleRate VoiPSampleRate;
175
177 UPROPERTY(config, EditAnywhere, Category = "Audio")
178 EDefaultAudioCompressionType DefaultAudioCompressionType;
179
184 UPROPERTY(config, EditAnywhere, Category = Occlusion)
185 FPerPlatformFloat DefaultOcclusionCheckInterval = .1f;
186
188 UPROPERTY(config)
189 int32 DefaultCompressionQuality_DEPRECATED = 80;
190
192 UPROPERTY(config)
193 float DefaultReverbSendLevel_DEPRECATED;
194
196 UPROPERTY(config, EditAnywhere, Category="Audio", meta=(ClampMin=0))
197 int32 MaximumConcurrentStreams;
198
200 UPROPERTY(config, EditAnywhere, Category = "Audio", meta = (ClampMin = 0.001, UIMin = 0.001, UIMax = 4.0))
201 float GlobalMinPitchScale;
202
204 UPROPERTY(config, EditAnywhere, Category = "Audio", meta = (ClampMin = 0.001, UIMin = 0.001, UIMax = 4.0))
205 float GlobalMaxPitchScale;
206
207 UPROPERTY(config, EditAnywhere, Category="Quality")
208 TArray<FAudioQualitySettings> QualityLevels;
209
211 UPROPERTY(config, EditAnywhere, Category = "Audio", AdvancedDisplay)
212 uint32 bAllowPlayWhenSilent:1;
213
215 UPROPERTY(config, EditAnywhere, Category = "Mix", AdvancedDisplay)
216 uint32 bDisableMasterEQ : 1;
217
219 UPROPERTY(config, EditAnywhere, Category = "Panning", AdvancedDisplay)
220 uint32 bAllowCenterChannel3DPanning : 1;
221
226 UPROPERTY(config, EditAnywhere, Category = "Audio", AdvancedDisplay)
227 uint32 NumStoppingSources;
228
232 UPROPERTY(config, EditAnywhere, Category = "Panning", AdvancedDisplay)
233 EPanningMethod PanningMethod;
234
238 UPROPERTY(config, EditAnywhere, Category = "Mix", AdvancedDisplay)
239 EMonoChannelUpmixMethod MonoChannelUpmixMethod;
240
250 UPROPERTY(config, EditAnywhere, Category="Dialogue")
251 FString DialogueFilenameFormat;
252
256 UPROPERTY(config, EditAnywhere, Category = "Debug")
257 TArray<FSoundDebugEntry> DebugSounds;
258
260 UPROPERTY(config, EditAnywhere, Category="Mix")
261 TArray<FDefaultAudioBusSettings> DefaultAudioBuses;
262
263#if WITH_EDITORONLY_DATA
267 UPROPERTY(config, EditAnywhere, Category="Audio", AdvancedDisplay)
268 bool bEnableLegacyAssetTypes = false;
269#endif // WITH_EDITORONLY_DATA
270
271#if WITH_EDITOR
273#endif // WITH_EDITOR
274
275private:
277 TObjectPtr<USoundClass> DefaultSoundClass;
278
280 TObjectPtr<USoundClass> DefaultMediaSoundClass;
281
283 TObjectPtr<USoundConcurrency> DefaultSoundConcurrency;
284
285public:
286 // Loads default object instances from soft object path properties
287 ENGINE_API void LoadDefaultObjects();
288
289 ENGINE_API USoundClass* GetDefaultSoundClass() const;
290 ENGINE_API USoundClass* GetDefaultMediaSoundClass() const;
291 ENGINE_API USoundConcurrency* GetDefaultSoundConcurrency() const;
292
293 // Registers Parameter Interfaces defined by the engine module.
294 // Called on engine start-up. Can be called when engine is not
295 // initialized as well by consuming plugins (ex. on cook by plugins
296 // requiring interface system to be loaded).
297 ENGINE_API void RegisterParameterInterfaces();
298
299 // Get the quality level settings at the provided level index
300 ENGINE_API const FAudioQualitySettings& GetQualityLevelSettings(int32 QualityLevel) const;
301
302 UE_DEPRECATED(5.5, "Default Compression Quality has moved to SoundWave class defaults")
303 ENGINE_API int32 GetDefaultCompressionQuality() const;
304
305 // Get the quality name level for a given index
306 ENGINE_API FString FindQualityNameByIndex(int32 Index) const;
307
308 // Get the total number of quality level settings
309 ENGINE_API int32 GetQualityLevelSettingsNum() const;
310
312 ENGINE_API int32 GetHighestMaxChannels() const;
313
314#if WITH_EDITOR
317#endif // WITH_EDITOR
318
319private:
320#if WITH_EDITOR
321 TArray<FAudioQualitySettings> CachedQualityLevels;
325#endif // WITH_EDITOR
326
327 ENGINE_API void AddDefaultSettings();
328
329 bool bParameterInterfacesRegistered;
330};
EVoiceSampleRate
Definition AudioSettings.h:21
EDefaultAudioCompressionType
Definition AudioSettings.h:56
EPanningMethod
Definition AudioSettings.h:30
EMonoChannelUpmixMethod
Definition AudioSettings.h:41
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
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_EVENT(OwningType, EventName)
Definition DelegateCombinations.h:32
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#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
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 NameTypes.h:617
Definition UnrealType.h:174
Definition Text.h:385
Definition Array.h:670
Definition AudioSettings.h:125
Definition DeveloperSettings.h:24
Definition SoundClass.h:209
Definition SoundConcurrency.h:217
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
U16 Index
Definition radfft.cpp:71
Definition AudioSettings.h:79
Definition AudioSettings.h:112
Definition PerPlatformProperties.h:304
Definition UnrealType.h:7001
Definition SoftObjectPath.h:56
Definition AudioSettings.h:98
Definition ObjectPtr.h:488