UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SoundSubmixSend.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 "Curves/CurveFloat.h"
8#include "UObject/Object.h"
9
10#include "SoundSubmixSend.generated.h"
11
12
13// Forward Declarations
15
16UENUM(BlueprintType)
18{
21
24
26 Voice,
27
29 Cymbals
30};
31
32USTRUCT(BlueprintType)
34{
36
37 // The frequency band for the magnitude to analyze
38 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SubmixSpectralAnalysis, meta = (ClampMin = "10.0", ClampMax = "20000.0", UIMin = "10.0", UIMax = "10000.0"))
39 float BandFrequency = 440.0f;
40
41 // The attack time for the FFT band interpolation for delegate callback
42 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SubmixSpectralAnalysis, meta = (ClampMin = "0.0", UIMin = "10.0", UIMax = "10000.0"))
43 int32 AttackTimeMsec = 10;
44
45 // The release time for the FFT band interpolation for delegate callback
46 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SubmixSpectralAnalysis, meta = (ClampMin = "0.0", UIMin = "10.0", UIMax = "10000.0"))
47 int32 ReleaseTimeMsec = 500;
48
49 // The ratio of the bandwidth divided by the center frequency. Only used when the spectral analysis type is set to Constant Q.
50 UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = SubmixSpectralAnalysis, meta = (ClampMin = "0.001", UIMin = "0.1", UIMax = "100.0"))
51 float QFactor = 10.0f;
52};
53
55
57
58UENUM(BlueprintType)
60{
61 // Exports a USoundWave.
63
64 // Exports a WAV file.
66};
67
68UENUM(BlueprintType)
70{
71 // A send based on linear interpolation between a distance range and send-level range
72 Linear,
73
74 // A send based on a supplied curve
76
77 // A manual send level (Uses the specified constant send level value. Useful for 2D sounds.)
78 Manual,
79};
80
81// Common set of settings that are uses as submix sends.
82USTRUCT(BlueprintType)
84{
86
88
89 /*
90 Manual: Use Send Level only
91 Linear: Interpolate between Min and Max Send Levels based on listener distance (between Min/Max Send Distance)
92 Custom Curve: Use the float curve to map Send Level to distance (0.0-1.0 on curve maps to Min/Max Send Distance)
93 */
94 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SubmixSend)
95 ESendLevelControlMethod SendLevelControlMethod;
96
97 // The Submix to send the audio to
98 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SubmixSend)
100
101 // Manually set the amount of audio to send
102 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SubmixSend, meta = (DisplayName = "Manual Send Level", EditCondition = "SendLevelControlMethod == ESendLevelControlMethod::Manual", EditConditionHides))
103 float SendLevel;
104
105 // Whether to disable the internal 0-1 clamp for Manual Send Level control
106 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SubmixSend, meta = (EditCondition = "SendLevelControlMethod == ESendLevelControlMethod::Manual", EditConditionHides))
107 bool DisableManualSendClamp;
108
109 // The amount to send to the Submix when sound is located at a distance less than or equal to value specified in the Min Send Distance
110 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SubmixSend, meta = (EditCondition = "SendLevelControlMethod == ESendLevelControlMethod::Linear", EditConditionHides))
111 float MinSendLevel;
112
113 // The amount to send to the Submix when sound is located at a distance greater than or equal to value specified in the Max Send Distance
114 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SubmixSend, meta = (EditCondition = "SendLevelControlMethod == ESendLevelControlMethod::Linear", EditConditionHides))
115 float MaxSendLevel;
116
120 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SubmixSend, meta = (EditCondition = "SendLevelControlMethod != ESendLevelControlMethod::Manual", EditConditionHides))
121 float MinSendDistance;
122
126 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SubmixSend, meta = (EditCondition = "SendLevelControlMethod != ESendLevelControlMethod::Manual", EditConditionHides))
127 float MaxSendDistance;
128
129 // The custom send curve to use for distance-based send level. (0.0-1.0 on the curve's X-axis maps to Min/Max Send Distance)
130 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SubmixSend, meta = (EditCondition = "SendLevelControlMethod == ESendLevelControlMethod::CustomCurve", EditConditionHides))
131 FRuntimeFloatCurve CustomSendLevelCurve;
132};
133
134UENUM(BlueprintType)
136{
137 // Whether to do the send post distance attenuation
139
140 // Whether to do the send pre distance attenuation
142};
143
144USTRUCT(BlueprintType)
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_DELEGATE_OneParam(DelegateName, Param1Type, Param1Name)
Definition DelegateCombinations.h:52
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#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
ESubmixSendStage
Definition SoundSubmixSend.h:136
EAudioSpectrumBandPresetType
Definition SoundSubmixSend.h:18
ESendLevelControlMethod
Definition SoundSubmixSend.h:70
EAudioRecordingExportType
Definition SoundSubmixSend.h:60
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Array.h:670
Definition SoundSubmix.h:174
Definition CurveFloat.h:13
Definition SoundSubmixSend.h:84
Definition SoundSubmixSend.h:146
Definition SoundSubmixSend.h:34
Definition ObjectPtr.h:488