UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AudioMixerSubmixEffectEQ.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "DSP/EQ.h"
7#include "Sound/SoundMix.h"
8#include "Stats/Stats.h"
9
10#include "AudioMixerSubmixEffectEQ.generated.h"
11
12// The time it takes to process the master EQ effect.
14
15// A multiband EQ submix effect.
16USTRUCT(BlueprintType)
18{
20
21 // Cutoff frequency (in hz) of the EQ band
22 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Equalizer, meta = (EditCondition = "bEnabled", DisplayName = "Cutoff Frequency (hz)", ClampMin = "20.0", ClampMax = "20000.0", UIMin = "20.0", UIMax = "15000.0"))
23 float Frequency = 500.0f;
24
25 // The bandwidth, in octaves, of the EQ band
26 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Equalizer, meta = (EditCondition = "bEnabled", DisplayName = "Bandwidth (octaves)", ClampMin = "0.1", ClampMax = "2.0", UIMin = "0.1", UIMax = "2.0"))
27 float Bandwidth = 2.0f;
28
29 // The gain in decibels of the EQ band
30 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Equalizer, meta = (EditCondition = "bEnabled", DisplayName = "Gain (dB)", ClampMin = "-90.0", ClampMax = "20.0", UIMin = "-90.0", UIMax = "20.0"))
31 float GainDb = 0.0f;
32
33 // Whether or not the EQ band is enabled
34 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Equalizer)
35 uint32 bEnabled : 1;
36
38 : bEnabled(false)
39 {
40 }
41};
42
43// EQ submix effect
44USTRUCT(BlueprintType)
46{
48
49 // The EQ bands to use.
50 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "SubmixEffect|Preset")
52};
53
55{
56public:
58
59 // Called on an audio effect at initialization on main thread before audio processing begins.
60 AUDIOMIXER_API virtual void Init(const FSoundEffectSubmixInitData& InSampleRate) override;
61
62 // Process the input block of audio. Called on audio thread.
63 AUDIOMIXER_API virtual void OnProcessAudio(const FSoundEffectSubmixInputData& InData, FSoundEffectSubmixOutputData& OutData) override;
64
65 // Sets the effect parameters using the old audio engine preset setting object
66 AUDIOMIXER_API virtual bool SetParameters(const FAudioEffectParameters& InParameters) override;
67
68 virtual bool SupportsDefaultEQ() const override
69 {
70 return true;
71 }
72
73 // Called when an audio effect preset is changed
74 AUDIOMIXER_API virtual void OnPresetChanged() override;
75
76protected:
77 AUDIOMIXER_API void UpdateParameters(const int32 NumOutputChannels);
78
79 // An EQ effect is a bank of biquad filters
80 struct FEQ
81 {
84
86 : bEnabled(true)
87 {}
88 };
89
90 // Each of these filters is a 2 channel biquad filter. 1 for each stereo pair
92
93 float ScratchInBuffer[2];
94 float ScratchOutBuffer[2];
98
99 // A pending eq setting change
101
102 // Game thread copy of the eq setting
104
105 // Audio render thread copy of the eq setting
107};
108
109UCLASS(ClassGroup = AudioSourceEffect, meta = (BlueprintSpawnableComponent), MinimalAPI)
111{
113
114public:
115
117
118 UFUNCTION(BlueprintCallable, Category = "Audio|Effects")
120
121 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SubmixEffectPreset, meta = (ShowOnlyInnerProperties))
123};
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define DECLARE_CYCLE_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:679
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
void Init()
Definition LockFreeList.h:4
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
#define EFFECT_PRESET_METHODS(EFFECT_NAME)
Definition SoundEffectBase.h:34
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Dsp.h:743
Definition SoundEffectSubmix.h:86
Definition AudioMixerSubmixEffectEQ.h:55
float SampleRate
Definition AudioMixerSubmixEffectEQ.h:95
float NumOutputChannels
Definition AudioMixerSubmixEffectEQ.h:96
virtual bool SupportsDefaultEQ() const override
Definition AudioMixerSubmixEffectEQ.h:68
FSubmixEffectSubmixEQSettings RenderThreadEQSettings
Definition AudioMixerSubmixEffectEQ.h:106
Audio::TParams< FSubmixEffectSubmixEQSettings > PendingSettings
Definition AudioMixerSubmixEffectEQ.h:100
TArray< FEQ > FiltersPerChannel
Definition AudioMixerSubmixEffectEQ.h:91
FSubmixEffectSubmixEQSettings GameThreadEQSettings
Definition AudioMixerSubmixEffectEQ.h:103
bool bEQSettingsSet
Definition AudioMixerSubmixEffectEQ.h:97
Definition Array.h:670
Definition SoundEffectSubmix.h:26
Definition AudioMixerSubmixEffectEQ.h:111
@ false
Definition radaudio_common.h:23
Definition SoundMix.h:18
Definition SoundEffectSubmix.h:35
Definition SoundEffectSubmix.h:44
Definition SoundEffectSubmix.h:77
Definition AudioMixerSubmixEffectEQ.h:18
Definition AudioMixerSubmixEffectEQ.h:46
Definition AudioMixerSubmixEffectEQ.h:81
TArray< Audio::FBiquadFilter > Bands
Definition AudioMixerSubmixEffectEQ.h:83
FEQ()
Definition AudioMixerSubmixEffectEQ.h:85
bool bEnabled
Definition AudioMixerSubmixEffectEQ.h:82