5#include "CoreMinimal.h"
6#include "Engine/DataAsset.h"
7#include "Engine/DeveloperSettings.h"
8#include "Misc/EnumClassFlags.h"
9#include "Misc/EnumRange.h"
10#include "ST_AudioProcessingSettings.generated.h"
19UENUM(BlueprintType, meta = (Bitflags, UseEnumValuesAsMaskValuesInEditor =
"true"))
20enum class EAudioIOType : uint8
23 None = 0 UMETA(Hidden),
26 PlaybackWaveform = 1 << 0 UMETA(DisplayName =
"PlaybackWaveform"),
29 PlaybackNoise = 1 << 1 UMETA(DisplayName =
"PlaybackNoise"),
32 PlaybackPlayer = 1 << 2 UMETA(DisplayName =
"PlaybackPlayer"),
35 PlaybackEnginePlayer = 1 << 3 UMETA(DisplayName =
"PlaybackEnginePlayer"),
38 CaptureLoopback = 1 << 4 UMETA(DisplayName =
"CaptureLoopback"),
41 CaptureMicrophone = 1 << 5 UMETA(DisplayName =
"CaptureMicrophone"),
44 Count = 1 << 6 UMETA(Hidden)
50ENUM_CLASS_FLAGS(EAudioIOType);
59constexpr bool EnumHasAnyFlags(int32 Flags, EAudioIOType Contains)
61 return (Flags & int32(Contains)) != 0;
67ENUM_RANGE_BY_VALUES(EAudioIOType,
68 EAudioIOType::PlaybackWaveform,
69 EAudioIOType::PlaybackNoise,
70 EAudioIOType::PlaybackPlayer,
71 EAudioIOType::PlaybackEnginePlayer,
72 EAudioIOType::CaptureLoopback,
73 EAudioIOType::CaptureMicrophone
82enum class EST_AudioFileLocation : uint8
85 ProjectDir = 0 UMETA(DisplayName =
"Project Dir"),
88 ProjectContentDir = 1 UMETA(DisplayName =
"Project Content Dir"),
91 ProjectPluginsDir = 2 UMETA(DisplayName =
"Project Plugins Dir"),
94 EngineDir = 3 UMETA(DisplayName =
"Engine Dir"),
97 EnginePluginsDir = 4 UMETA(DisplayName =
"Engine Plugins Dir")
107enum class EST_EncodingFormat : uint8
110 Unknown = 0 UMETA(DisplayName =
"Unknown"),
113 WAV = 1 UMETA(DisplayName =
"WAV"),
116 Flac = 2 UMETA(DisplayName =
"Flac"),
119 MP3 = 3 UMETA(DisplayName =
"MP3"),
122 Vorbis = 4 UMETA(DisplayName =
"Vorbis")
132enum class EST_SampleFormat : uint8
135 Unknown = 0 UMETA(DisplayName =
"Unknown"),
138 U8 = 1 UMETA(DisplayName =
"Unsigned 8-bit"),
141 S16 = 2 UMETA(DisplayName =
"Signed 16-bit"),
144 S24 = 3 UMETA(DisplayName =
"Signed 24-bit"),
147 S32 = 4 UMETA(DisplayName =
"Signed 32-bit"),
150 F32 = 5 UMETA(DisplayName =
"32-bit Float")
159enum class EST_NoiseType : uint8
162 White = 0 UMETA(DisplayName =
"White"),
165 Pink = 1 UMETA(DisplayName =
"Pink"),
168 Brownian = 2 UMETA(DisplayName =
"Brownian"),
177enum class EST_WaveformType : uint8
180 Sine = 0 UMETA(DisplayName =
"Sine"),
183 Square = 1 UMETA(DisplayName =
"Square"),
186 Triangle = 2 UMETA(DisplayName =
"Triangle"),
189 Sawtooth = 3 UMETA(DisplayName =
"Sawtooth")
199enum class EST_FilterType : uint8
202 None = 0 UMETA(DisplayName =
"No Filter"),
205 Butterworth = 1 UMETA(DisplayName =
"Butterworth (Smooth)"),
208 ChebyshevTypeI = 2 UMETA(DisplayName =
"Chebyshev I (Sharp)"),
218enum class EST_WindowingFunction : uint8
221 Rectangular = 0 UMETA(DisplayName =
"Rectangular (no windowing)"),
224 Hann = 1 UMETA(DisplayName =
"Hann (good balance, smooth edges)"),
227 Hamming = 2 UMETA(DisplayName =
"Hamming (reduces first side ripple)"),
230 BlackmanHarris = 4 UMETA(DisplayName =
"Blackman-Harris (strong smoothing, less noise)"),
233 Gaussian = 5 UMETA(DisplayName =
"Gaussian (soft edges, smooth blend)")
242enum class EST_SpectrumSpacing : uint8
245 Log = 0 UMETA(DisplayName =
"Logarithmic (natural)"),
248 Linear = 1 UMETA(DisplayName =
"Linear (even)"),
251 OctaveSubdivision = 2 UMETA(DisplayName =
"Octave Subdivision (Power-of-Two)"),
254 Quadratic = 3 UMETA(DisplayName =
"Quadratic (Squared Growth)")
263enum class EST_SpectrumValues : uint8
266 Averages = 0 UMETA(DisplayName =
"Averages (smooth)"),
269 Peaks = 1 UMETA(DisplayName =
"Peaks (noisy)"),
278enum class EST_SmoothingType : uint8
281 None = 0 UMETA(DisplayName =
"None"),
284 EMA = 1 UMETA(DisplayName =
"Exponential Moving Average"),
287 SMA = 2 UMETA(DisplayName =
"Simple Moving Average "),
297USTRUCT(BlueprintType)
304 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
308 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"SmoothingType != EST_SmoothingType::None && SmoothingType == EST_SmoothingType::SMA", ClampMin =
"0.0", UIMin =
"0.0", Tooltip =
"Time window (in seconds) used for smoothing values over a set period of time. Larger values result in smoother transitions, while smaller values react more quickly to changes."))
309 float TimeWindow = 0.1f;
312 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"SmoothingType != EST_SmoothingType::None", ClampMin =
"0.0", ClampMax =
"1.0", UIMin =
"0.0", UIMax =
"1.0", Tooltip =
"Smoothing factor for averaging over time (0 = No smoothing, 1 = Full smoothing)"))
313 float SmoothingFactor = 0.5f;
321USTRUCT(BlueprintType)
332 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
341 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"FilterType == EST_FilterType::ChebyshevTypeI", ClampMin =
"0.01", ClampMax =
"10.0", UIMin =
"0.01", UIMax =
"10.0"))
348 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"FilterType != EST_FilterType::None"))
355 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bLowPassFilter && FilterType != EST_FilterType::None"))
362 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"FilterType != EST_FilterType::None"))
369 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bBandFilter && FilterType != EST_FilterType::None"))
376 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bBandFilter && FilterType != EST_FilterType::None"))
383 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bBandFilter && FilterType != EST_FilterType::None"))
390 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"FilterType != EST_FilterType::None"))
397 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bHighPassFilter && FilterType != EST_FilterType::None"))
406USTRUCT(BlueprintType)
416 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
425 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"WindowingFunction == EST_WindowingFunction::Gaussian", ClampMin =
"0.0", UIMin =
"0.0"))
434USTRUCT(BlueprintType)
444 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
451 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
459 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, ClampMin =
"1", UIMin =
"1", Tooltip =
"Number of frequency bands used in the spectrum analysis. More bands provide finer resolution but increase computational cost."))
466 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
473 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
480 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"SpectrumSpacing == EST_SpectrumSpacing::Log", Tooltip =
"20Hz = Lower bound of human hearing"))
487 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"SpectrumSpacing == EST_SpectrumSpacing::Log"))
494 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bOverrideNyquistLimit && SpectrumSpacing == EST_SpectrumSpacing::Log", Tooltip =
"Uses CustomMaxFreq instead of NyquistLimit (half the sampling rate)"))
495 float MaxFreq = 20000.0f;
501 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
510USTRUCT(BlueprintType)
520 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
527 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
534 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bAmplitudeNormalisation"))
541 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
550USTRUCT(BlueprintType)
560 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
567 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
574 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bPitchNormalisation", Tooltip =
"20Hz = Lower bound of human hearing"))
581 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bPitchNormalisation"))
588 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
597USTRUCT(BlueprintType)
608 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, meta =
"Smoothing cannot be None. Beat Tracking requires at least some history."))
615 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, ClampMin =
"0.0", UIMin =
"0.0"))
622 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bNormalise", ClampMin =
"0.0", UIMin =
"0.0"))
629 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, ClampMin =
"0.0", UIMin =
"0.0"))
633 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, ClampMin =
"0.0", ClampMax =
"1.0", UIMin =
"0.0", UIMax =
"1.0", Tooltip =
"Smoothing factor for averaging over time (0 = No smoothing, 1 = Full smoothing)"))
634 float BPMSmoothingFactor = 0.5f;
637 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, ClampMin =
"0.0", UIMin =
"0.0"))
641 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, ClampMin =
"0.0", UIMin =
"0.0"))
648 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
655 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
664USTRUCT(BlueprintType)
674 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
680 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
689USTRUCT(BlueprintType)
699 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
705 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
718DECLARE_MULTICAST_DELEGATE_TwoParams(FOnPostEditChangePropertyDelegate_FFTConfig, UObject*, FPropertyChangedEvent&);
726UCLASS(BlueprintType, Blueprintable)
737 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
744 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
751 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
758 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
765 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
772 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
779 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
786 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
793 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, ClampMin =
"0", UIMin =
"0", Tooltip =
"FFT Smoothing factor, be really careful. Each increase scales the buffer by power of 2. Higher = smoother"))
800 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
809 inline static FOnPostEditChangePropertyDelegate_FFTConfig OnPostEditChangeProperty;
819 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
override
821 Super::PostEditChangeProperty(PropertyChangedEvent);
823 OnPostEditChangeProperty.Broadcast(
this, PropertyChangedEvent);
833USTRUCT(BlueprintType)
844 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
851 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
858 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
865 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
872 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
879 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
886 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
893 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
900 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
907 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
914 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
921 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
928 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
935 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
942 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
949 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
956 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
963 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
970 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
977 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
994 FFFTIOData(int32 InPeriodSizeInFrames, int32 InBytesPerFrame, int32 InSampleRate, int32 InChannels,
UFFTConfig* InFFTConfig)
1022 switch (InFFTConfig->SpectrumConfig.SmoothingConfig.SmoothingType)
1024 case EST_SmoothingType::EMA:
1027 case EST_SmoothingType::SMA:
1036 switch (InFFTConfig->SpectrumConfig.SmoothingConfig.SmoothingType)
1038 case EST_SmoothingType::EMA:
1041 case EST_SmoothingType::SMA:
1050 switch (InFFTConfig->AmplitudeConfig.SmoothingConfig.SmoothingType)
1052 case EST_SmoothingType::EMA:
1055 case EST_SmoothingType::SMA:
1064 switch (InFFTConfig->PitchConfig.SmoothingConfig.SmoothingType)
1066 case EST_SmoothingType::EMA:
1069 case EST_SmoothingType::SMA:
1078 switch (InFFTConfig->BeatConfig.SmoothingConfig.SmoothingType)
1080 case EST_SmoothingType::EMA:
1083 case EST_SmoothingType::SMA:
1092 float FramesInWindow = InFFTConfig->BeatConfig.BeatTimeWindow /
TimePerFrame;
1094 float EffectiveFrames = FramesInWindow / (InFFTConfig->BeatConfig.BeatTimeWindowSkipN + 1);
1115USTRUCT(BlueprintType)
1126 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1132 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
1139USTRUCT(BlueprintType)
1149 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1156 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bCanWriteToFile"))
1163 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bCanWriteToFile"))
1171 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1179 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1186 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1193 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1196 FEncoderConfig() = default;
1206 *
this =
static_cast<const FEncoderConfig&
>(BaseConfig);
1213USTRUCT(BlueprintType)
1223 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1226 FDecoderConfig() = default;
1236 *
this =
static_cast<const FDecoderConfig&
>(BaseConfig);
1244USTRUCT(BlueprintType)
1256USTRUCT(BlueprintType)
1268USTRUCT(BlueprintType)
1281 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1288 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1295 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1303 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1311 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1319 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1326USTRUCT(BlueprintType)
1339 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1346 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1353 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1361 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1369 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1377 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1384USTRUCT(BlueprintType)
1394 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1401 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1408 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Audio", meta = (SessionRestartRequired))
1415USTRUCT(BlueprintType)
1425 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1432 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Audio", meta = (SessionRestartRequired))
1445DECLARE_MULTICAST_DELEGATE_TwoParams(FOnPostEditChangePropertyDelegate_APS, UObject*, FPropertyChangedEvent&);
1455UCLASS(Config = ST_VJMaster, DefaultConfig, meta = (DisplayName =
"ST Audio Processing"))
1466 UFUNCTION(BlueprintPure, Category =
"ShaderTech|AudioProcessing")
1469 return GetDefault<UST_AudioProcessingSettings>();
1478 inline static FOnPostEditChangePropertyDelegate_APS OnPostEditChangeProperty;
1488 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
override
1490 Super::PostEditChangeProperty(PropertyChangedEvent);
1492 OnPostEditChangeProperty.Broadcast(
this, PropertyChangedEvent);
1503 UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (Bitmask, BitmaskEnum =
"/Script/ST_AudioProcessing.EAudioIOType", EditorRestartRequiredTooltip =
"This is a required for creating audio buffers at the beginning of play for materials and compute shaders."))
1510 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Capture")
1517 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Capture")
1524 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Playback")
1531 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Playback")
1538 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Playback")
1545 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Playback")
1557 return TEXT(
"ShaderTech");
DataAsset that holds configuration settings for FFT.
Definition ST_AudioProcessingSettings.h:728
int32 FFTPaddingFactor
Definition ST_AudioProcessingSettings.h:794
bool bProcessUnchangedBuffer
Definition ST_AudioProcessingSettings.h:780
FFFTAmplitudeConfig AmplitudeConfig
Definition ST_AudioProcessingSettings.h:745
bool bSplitChannels
Definition ST_AudioProcessingSettings.h:801
FFFTPitchConfig PitchConfig
Definition ST_AudioProcessingSettings.h:752
FFFTSpectrumConfig SpectrumConfig
Definition ST_AudioProcessingSettings.h:738
FFFTFilterConfig FilterConfig
Definition ST_AudioProcessingSettings.h:766
FFFTSmoothingConfig SmoothingConfig
Definition ST_AudioProcessingSettings.h:787
FFFTWindowingConfig WindowingConfig
Definition ST_AudioProcessingSettings.h:773
FFFTBeatConfig BeatConfig
Definition ST_AudioProcessingSettings.h:759
Settings class for ST Audio Processing.
Definition ST_AudioProcessingSettings.h:1457
FPlaybackWaveformConfig PlaybackWaveformConfig
Configuration for audio playback waveform.
Definition ST_AudioProcessingSettings.h:1532
FPlaybackNoiseConfig PlaybackNoiseConfig
Configuration for audio playback noise.
Definition ST_AudioProcessingSettings.h:1525
virtual FName GetCategoryName() const override
Gets the category name for the developer settings.
Definition ST_AudioProcessingSettings.h:1555
FCaptureLoopbackConfig CaptureLoopbackConfig
Configuration for audio capture loopback.
Definition ST_AudioProcessingSettings.h:1511
FCaptureMicrophoneConfig CaptureMicrophoneConfig
Configuration for audio capture from a microphone.
Definition ST_AudioProcessingSettings.h:1518
FPlaybackPlayerConfig PlaybackPlayerConfig
Configuration for audio playback player.
Definition ST_AudioProcessingSettings.h:1539
static const UST_AudioProcessingSettings * GetST_AudioProcessingSettings()
Gets the default audio processing settings.
Definition ST_AudioProcessingSettings.h:1467
int32 PossibleAudioIOs
A bitmask that determines the types of possible audio I/O. This is a required for creating audio buff...
Definition ST_AudioProcessingSettings.h:1504
FPlaybackEngineConfig PlaybackEngineConfig
Configuration for audio playback engine.
Definition ST_AudioProcessingSettings.h:1546
Structure that holds the configuration for audio input/output.
Definition ST_AudioProcessingSettings.h:1117
FString DeviceName
The name of the audio device. Defaults to "[System Default]" if not specified. @meta (SessionRestartR...
Definition ST_AudioProcessingSettings.h:1127
TObjectPtr< UFFTConfig > FFTConfig
FFT configuration settings.
Definition ST_AudioProcessingSettings.h:1133
Structure that holds configuration for the capture loopback.
Definition ST_AudioProcessingSettings.h:1246
Structure that holds configuration for capturing from a microphone.
Definition ST_AudioProcessingSettings.h:1258
Structure that holds configuration settings for the FFT (Fast Fourier Transform) Beat detection.
Definition ST_AudioProcessingSettings.h:666
float BeatsPerMinute
Definition ST_AudioProcessingSettings.h:681
bool bBeatDetected
Definition ST_AudioProcessingSettings.h:675
float Gain
The gain factor for the decoded audio (e.g., 0.5 for half volume, 2.0 for double volume)....
Definition ST_AudioProcessingSettings.h:1224
Structure that holds configuration settings for the detected beat.
Definition ST_AudioProcessingSettings.h:691
double BeatTime
Definition ST_AudioProcessingSettings.h:700
float BeatsPerMinute
Definition ST_AudioProcessingSettings.h:706
int32 SampleRate
The sample rate of the audio (e.g., 48000, 44100). @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1194
FString OutputFilePath
Path to the output file where audio will be written, only if bCanWriteToFile is true....
Definition ST_AudioProcessingSettings.h:1164
bool bCanWriteToFile
Whether or not the audio can be written to a file. @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1150
EST_EncodingFormat EncodingFormat
The encoding format to be used for the audio output.
Definition ST_AudioProcessingSettings.h:1172
EST_AudioFileLocation AudioFileLocation
Where the OutputFilePath Should start. @meta (SessionRestartRequired, EditCondition = "bCanWriteToFil...
Definition ST_AudioProcessingSettings.h:1157
int32 Channels
The number of audio channels (e.g., 1 for mono, 2 for stereo). @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1187
EST_SampleFormat SampleFormat
The sample format for the audio data.
Definition ST_AudioProcessingSettings.h:1180
Configuration structure for FFT amplitude settings. Defines parameters for amplitude computation and ...
Definition ST_AudioProcessingSettings.h:512
bool bAmplitudeNormalisation
Whether to normalize the amplitude. Scales the amplitude values to a specified range.
Definition ST_AudioProcessingSettings.h:528
bool bComputeAmplitude
Whether to compute amplitude values. Enables or disables amplitude computation.
Definition ST_AudioProcessingSettings.h:521
float MaxAmplitude
Maximum amplitude value for normalization. Used only if bAmplitudeNormalisation is true.
Definition ST_AudioProcessingSettings.h:535
FFFTSmoothingConfig SmoothingConfig
The smoothing configuration for amplitude values. Controls the smoothing behavior for amplitude value...
Definition ST_AudioProcessingSettings.h:542
Structure that holds configuration settings for the FFT (Fast Fourier Transform) Beat detection.
Definition ST_AudioProcessingSettings.h:599
bool bComputeBeat
Definition ST_AudioProcessingSettings.h:609
float BeatTimeWindow
Definition ST_AudioProcessingSettings.h:638
float MaxBeatEnergy
Definition ST_AudioProcessingSettings.h:623
FFFTFilterConfig FilterConfig
Definition ST_AudioProcessingSettings.h:656
bool bNormalise
Definition ST_AudioProcessingSettings.h:616
FFFTSmoothingConfig SmoothingConfig
Definition ST_AudioProcessingSettings.h:649
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Audio", meta=(SessionRestartRequired, ClampMin="0.0", ClampMax="1.0", UIMin="0.0", UIMax="1.0", Tooltip="Smoothing factor for averaging over time (0 = No smoothing, 1 = Full smoothing)")) float BPMSmoothingFactor=0.5f
int32 BeatTimeWindowSkipN
Definition ST_AudioProcessingSettings.h:642
float BeatThreshold
Definition ST_AudioProcessingSettings.h:630
Configuration structure for FFT filter settings. Contains various filter settings including the filte...
Definition ST_AudioProcessingSettings.h:323
bool bHighPassFilter
Whether to apply a high-pass filter. Determines if low frequencies are cut off.
Definition ST_AudioProcessingSettings.h:391
float RippleFactor
Ripple factor for the Chebyshev Type I filter. Only used if FilterType is set to ChebyshevTypeI....
Definition ST_AudioProcessingSettings.h:342
float HighPassCutoffHz
Cutoff frequency for the high-pass filter (in Hz). Only used if bHighPassFilter is true.
Definition ST_AudioProcessingSettings.h:398
float BandUpperCutoffHz
Upper cutoff frequency for the bandpass filter (in Hz). Only used if bBandFilter is true.
Definition ST_AudioProcessingSettings.h:377
bool bBandFilter
Whether to apply a bandpass filter. This filter allows a specific frequency band to pass through.
Definition ST_AudioProcessingSettings.h:363
bool bBandReject
Whether to apply a band-reject filter. This filter eliminates a specific frequency band.
Definition ST_AudioProcessingSettings.h:384
float LowPassCutoffHz
Cutoff frequency for the low-pass filter (in Hz). Only used if bLowPassFilter is true.
Definition ST_AudioProcessingSettings.h:356
bool bLowPassFilter
Whether to apply a low-pass filter. Determines if high frequencies are cut off.
Definition ST_AudioProcessingSettings.h:349
float BandLowerCutoffHz
Lower cutoff frequency for the bandpass filter (in Hz). Only used if bBandFilter is true.
Definition ST_AudioProcessingSettings.h:370
EST_FilterType FilterType
The type of filter to apply. Options include None, ChebyshevTypeI, etc.
Definition ST_AudioProcessingSettings.h:333
int32 PaddedMagnitudeCount
Definition ST_AudioProcessingSettings.h:901
int32 PeriodSizeInFrames
Definition ST_AudioProcessingSettings.h:845
float SecondsPerPeriod
Definition ST_AudioProcessingSettings.h:915
int32 TotalBins
Definition ST_AudioProcessingSettings.h:971
int32 BeatHistorySize
Definition ST_AudioProcessingSettings.h:957
int32 PitchHistorySize
Definition ST_AudioProcessingSettings.h:950
int32 PaddedPeriodSizeInFramesPerChannel
Definition ST_AudioProcessingSettings.h:894
int32 FrequencyBandsHistorySize
Definition ST_AudioProcessingSettings.h:936
int32 SampleCount
Definition ST_AudioProcessingSettings.h:880
int32 BytesPerFrame
Definition ST_AudioProcessingSettings.h:852
int32 Channels
Definition ST_AudioProcessingSettings.h:866
int32 SampleRate
Definition ST_AudioProcessingSettings.h:859
int32 GetChannelMultiplier() const
Definition ST_AudioProcessingSettings.h:1101
int32 MagnitudesHistorySize
Definition ST_AudioProcessingSettings.h:929
bool bSplitChannels
Definition ST_AudioProcessingSettings.h:873
int32 PaddedMagnitudeCountWithNyquist
Definition ST_AudioProcessingSettings.h:908
int32 DetectedBeatHistorySize
Definition ST_AudioProcessingSettings.h:964
float FreqPerBin
Definition ST_AudioProcessingSettings.h:978
int32 TotalBytesPerPeriod
Definition ST_AudioProcessingSettings.h:887
int32 AmplitudeHistorySize
Definition ST_AudioProcessingSettings.h:943
float TimePerFrame
Definition ST_AudioProcessingSettings.h:922
Configuration structure for FFT pitch settings. Defines parameters for pitch computation and normaliz...
Definition ST_AudioProcessingSettings.h:552
bool bComputePitch
Whether to compute pitch values. Enables or disables pitch computation.
Definition ST_AudioProcessingSettings.h:561
bool bPitchNormalisation
Whether to normalize the pitch. Scales the pitch values to a specified range.
Definition ST_AudioProcessingSettings.h:568
float MaxFreq
Maximum frequency for pitch computation (in Hz). Used only if bPitchNormalisation is true.
Definition ST_AudioProcessingSettings.h:582
float MinFreq
Minimum frequency for pitch computation (in Hz). Used only if bPitchNormalisation is true.
Definition ST_AudioProcessingSettings.h:575
FFFTSmoothingConfig SmoothingConfig
The smoothing configuration for pitch values. Controls the smoothing behavior for pitch values over t...
Definition ST_AudioProcessingSettings.h:589
Structure for configuring FFT smoothing options.
Definition ST_AudioProcessingSettings.h:299
EST_SmoothingType SmoothingType
Definition ST_AudioProcessingSettings.h:305
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Audio", meta=(SessionRestartRequired, EditCondition="SmoothingType != EST_SmoothingType::None && SmoothingType == EST_SmoothingType::SMA", ClampMin="0.0", UIMin="0.0", Tooltip="Time window (in seconds) used for smoothing values over a set period of time. Larger values result in smoother transitions, while smaller values react more quickly to changes.")) float TimeWindow=0.1f
Configuration structure for FFT spectrum settings. Defines parameters for frequency band computation,...
Definition ST_AudioProcessingSettings.h:436
FFFTSmoothingConfig SmoothingConfig
The smoothing configuration for the spectrum. Controls the smoothing behavior for spectrum values ove...
Definition ST_AudioProcessingSettings.h:502
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Audio", meta=(SessionRestartRequired, EditCondition="bOverrideNyquistLimit && SpectrumSpacing == EST_SpectrumSpacing::Log", Tooltip="Uses CustomMaxFreq instead of NyquistLimit (half the sampling rate)")) float MaxFreq
Maximum frequency for spectrum analysis (in Hz). Used only if Nyquist limit is overridden.
bool bSpectrumNormalisation
Whether to normalize the spectrum. Scales the spectrum to a specified range.
Definition ST_AudioProcessingSettings.h:452
int32 SpectrumBands
Number of frequency bands to use in the spectrum analysis. A higher value provides finer resolution b...
Definition ST_AudioProcessingSettings.h:460
EST_SpectrumValues SpectrumValues
The type of values to display in the spectrum. Options include averages and peaks.
Definition ST_AudioProcessingSettings.h:474
float MinFreq
Minimum frequency for spectrum analysis (in Hz). Used only if SpectrumSpacing is Logarithmic.
Definition ST_AudioProcessingSettings.h:481
EST_SpectrumSpacing SpectrumSpacing
The type of spectrum spacing to use. Options include logarithmic, linear, octave subdivision,...
Definition ST_AudioProcessingSettings.h:467
bool bComputeFrequencyBands
Whether to compute frequency bands. Enables or disables the frequency band computation in the spectru...
Definition ST_AudioProcessingSettings.h:445
bool bOverrideNyquistLimit
Whether to override the Nyquist limit (half the sampling rate). Used only if SpectrumSpacing is Logar...
Definition ST_AudioProcessingSettings.h:488
Configuration structure for FFT windowing function. Contains the windowing function type and addition...
Definition ST_AudioProcessingSettings.h:408
float GaussianWindowSigma
Sigma parameter for the Gaussian window. Only used if WindowingFunction is set to Gaussian....
Definition ST_AudioProcessingSettings.h:426
EST_WindowingFunction WindowingFunction
The type of windowing function to apply. Options include Hann, Gaussian, etc.
Definition ST_AudioProcessingSettings.h:417
Structure that holds configuration for the playback engine.
Definition ST_AudioProcessingSettings.h:1417
FString InputFilePath
Path to the input file for the playback engine. @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1433
EST_AudioFileLocation AudioFileLocation
Where the InputFilePath Should start. @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1426
Structure that holds configuration for playback of the noise.
Definition ST_AudioProcessingSettings.h:1270
int32 NoiseSeed
Definition ST_AudioProcessingSettings.h:1320
EST_NoiseType NoiseType
The noise type for the audio data.
Definition ST_AudioProcessingSettings.h:1304
EST_SampleFormat SampleFormat
The sample format for the audio data.
Definition ST_AudioProcessingSettings.h:1282
int32 Channels
The number of audio channels (e.g., 1 for mono, 2 for stereo). @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1289
float NoiseAmplitude
Definition ST_AudioProcessingSettings.h:1312
int32 SampleRate
The sample rate of the audio (e.g., 48000, 44100). @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1296
Structure that holds configuration for playback from a player.
Definition ST_AudioProcessingSettings.h:1386
bool bLooping
Whether the audio playback should loop. @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1395
EST_AudioFileLocation AudioFileLocation
Where the InputFilePath Should start. @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1402
FString InputFilePath
Path to the input file for playback. @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1409