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")
984 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
1002 FFFTIOData(int32 InPeriodSizeInFrames, int32 InBytesPerFrame, int32 InFormat, int32 InSampleRate, int32 InChannels,
UFFTConfig* InFFTConfig)
1031 switch (InFFTConfig->SpectrumConfig.SmoothingConfig.SmoothingType)
1033 case EST_SmoothingType::EMA:
1036 case EST_SmoothingType::SMA:
1045 switch (InFFTConfig->SpectrumConfig.SmoothingConfig.SmoothingType)
1047 case EST_SmoothingType::EMA:
1050 case EST_SmoothingType::SMA:
1059 switch (InFFTConfig->AmplitudeConfig.SmoothingConfig.SmoothingType)
1061 case EST_SmoothingType::EMA:
1064 case EST_SmoothingType::SMA:
1073 switch (InFFTConfig->PitchConfig.SmoothingConfig.SmoothingType)
1075 case EST_SmoothingType::EMA:
1078 case EST_SmoothingType::SMA:
1087 switch (InFFTConfig->BeatConfig.SmoothingConfig.SmoothingType)
1089 case EST_SmoothingType::EMA:
1092 case EST_SmoothingType::SMA:
1101 float FramesInWindow = InFFTConfig->BeatConfig.BeatTimeWindow /
TimePerFrame;
1103 float EffectiveFrames = FramesInWindow / (InFFTConfig->BeatConfig.BeatTimeWindowSkipN + 1);
1124USTRUCT(BlueprintType)
1135 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1141 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
1147 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio")
1154USTRUCT(BlueprintType)
1164 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1171 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bCanWriteToFile"))
1178 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Audio", meta = (SessionRestartRequired, EditCondition =
"bCanWriteToFile"))
1186 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1194 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1201 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1208 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1211 FEncoderConfig() = default;
1221 *
this =
static_cast<const FEncoderConfig&
>(BaseConfig);
1228USTRUCT(BlueprintType)
1238 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1241 FDecoderConfig() = default;
1251 *
this =
static_cast<const FDecoderConfig&
>(BaseConfig);
1259USTRUCT(BlueprintType)
1271USTRUCT(BlueprintType)
1283USTRUCT(BlueprintType)
1296 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1303 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1310 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1318 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1326 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1334 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1341USTRUCT(BlueprintType)
1354 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1361 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1368 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1376 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1384 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1392 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1399USTRUCT(BlueprintType)
1409 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1416 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1423 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Audio", meta = (SessionRestartRequired))
1430USTRUCT(BlueprintType)
1440 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"Audio", meta = (SessionRestartRequired))
1447 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Audio", meta = (SessionRestartRequired))
1460DECLARE_MULTICAST_DELEGATE_TwoParams(FOnPostEditChangePropertyDelegate_APS, UObject*, FPropertyChangedEvent&);
1470UCLASS(Config = ST_VJMaster, DefaultConfig, meta = (DisplayName =
"ST Audio Processing"))
1481 UFUNCTION(BlueprintPure, Category =
"ShaderTech|AudioProcessing")
1484 return GetDefault<UST_AudioProcessingSettings>();
1493 inline static FOnPostEditChangePropertyDelegate_APS OnPostEditChangeProperty;
1503 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
override
1505 Super::PostEditChangeProperty(PropertyChangedEvent);
1507 OnPostEditChangeProperty.Broadcast(
this, PropertyChangedEvent);
1518 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."))
1525 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Capture")
1532 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Capture")
1539 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Playback")
1546 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Playback")
1553 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Playback")
1560 UPROPERTY(config, EditAnywhere, BlueprintReadOnly, Category =
"Playback")
1572 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:1472
FPlaybackWaveformConfig PlaybackWaveformConfig
Configuration for audio playback waveform.
Definition ST_AudioProcessingSettings.h:1547
FPlaybackNoiseConfig PlaybackNoiseConfig
Configuration for audio playback noise.
Definition ST_AudioProcessingSettings.h:1540
virtual FName GetCategoryName() const override
Gets the category name for the developer settings.
Definition ST_AudioProcessingSettings.h:1570
FCaptureLoopbackConfig CaptureLoopbackConfig
Configuration for audio capture loopback.
Definition ST_AudioProcessingSettings.h:1526
FCaptureMicrophoneConfig CaptureMicrophoneConfig
Configuration for audio capture from a microphone.
Definition ST_AudioProcessingSettings.h:1533
FPlaybackPlayerConfig PlaybackPlayerConfig
Configuration for audio playback player.
Definition ST_AudioProcessingSettings.h:1554
static const UST_AudioProcessingSettings * GetST_AudioProcessingSettings()
Gets the default audio processing settings.
Definition ST_AudioProcessingSettings.h:1482
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:1519
FPlaybackEngineConfig PlaybackEngineConfig
Configuration for audio playback engine.
Definition ST_AudioProcessingSettings.h:1561
Structure that holds the configuration for audio input/output.
Definition ST_AudioProcessingSettings.h:1126
FString DeviceName
The name of the audio device. Defaults to "[System Default]" if not specified. @meta (SessionRestartR...
Definition ST_AudioProcessingSettings.h:1136
int32 PCMRingBufferSize
PCMRingBuffer Size, increasing this value might improve stability but increases latency.
Definition ST_AudioProcessingSettings.h:1148
TObjectPtr< UFFTConfig > FFTConfig
FFT configuration settings.
Definition ST_AudioProcessingSettings.h:1142
Structure that holds configuration for the capture loopback.
Definition ST_AudioProcessingSettings.h:1261
Structure that holds configuration for capturing from a microphone.
Definition ST_AudioProcessingSettings.h:1273
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:1239
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:1209
FString OutputFilePath
Path to the output file where audio will be written, only if bCanWriteToFile is true....
Definition ST_AudioProcessingSettings.h:1179
bool bCanWriteToFile
Whether or not the audio can be written to a file. @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1165
EST_EncodingFormat EncodingFormat
The encoding format to be used for the audio output.
Definition ST_AudioProcessingSettings.h:1187
EST_AudioFileLocation AudioFileLocation
Where the OutputFilePath Should start. @meta (SessionRestartRequired, EditCondition = "bCanWriteToFil...
Definition ST_AudioProcessingSettings.h:1172
int32 Channels
The number of audio channels (e.g., 1 for mono, 2 for stereo). @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1202
EST_SampleFormat SampleFormat
The sample format for the audio data.
Definition ST_AudioProcessingSettings.h:1195
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:908
int32 PeriodSizeInFrames
Definition ST_AudioProcessingSettings.h:845
float SecondsPerPeriod
Definition ST_AudioProcessingSettings.h:922
int32 TotalBins
Definition ST_AudioProcessingSettings.h:978
int32 BeatHistorySize
Definition ST_AudioProcessingSettings.h:964
int32 PitchHistorySize
Definition ST_AudioProcessingSettings.h:957
int32 PaddedPeriodSizeInFramesPerChannel
Definition ST_AudioProcessingSettings.h:901
int32 FrequencyBandsHistorySize
Definition ST_AudioProcessingSettings.h:943
int32 SampleCount
Definition ST_AudioProcessingSettings.h:887
int32 BytesPerFrame
Definition ST_AudioProcessingSettings.h:852
int32 Channels
Definition ST_AudioProcessingSettings.h:873
int32 SampleRate
Definition ST_AudioProcessingSettings.h:866
int32 GetChannelMultiplier() const
Definition ST_AudioProcessingSettings.h:1110
int32 MagnitudesHistorySize
Definition ST_AudioProcessingSettings.h:936
bool bSplitChannels
Definition ST_AudioProcessingSettings.h:880
int32 Format
Definition ST_AudioProcessingSettings.h:859
int32 PaddedMagnitudeCountWithNyquist
Definition ST_AudioProcessingSettings.h:915
int32 DetectedBeatHistorySize
Definition ST_AudioProcessingSettings.h:971
float FreqPerBin
Definition ST_AudioProcessingSettings.h:985
int32 TotalBytesPerPeriod
Definition ST_AudioProcessingSettings.h:894
int32 AmplitudeHistorySize
Definition ST_AudioProcessingSettings.h:950
float TimePerFrame
Definition ST_AudioProcessingSettings.h:929
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:1432
FString InputFilePath
Path to the input file for the playback engine. @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1448
EST_AudioFileLocation AudioFileLocation
Where the InputFilePath Should start. @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1441
Structure that holds configuration for playback of the noise.
Definition ST_AudioProcessingSettings.h:1285
int32 NoiseSeed
Definition ST_AudioProcessingSettings.h:1335
EST_NoiseType NoiseType
The noise type for the audio data.
Definition ST_AudioProcessingSettings.h:1319
EST_SampleFormat SampleFormat
The sample format for the audio data.
Definition ST_AudioProcessingSettings.h:1297
int32 Channels
The number of audio channels (e.g., 1 for mono, 2 for stereo). @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1304
float NoiseAmplitude
Definition ST_AudioProcessingSettings.h:1327
int32 SampleRate
The sample rate of the audio (e.g., 48000, 44100). @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1311
Structure that holds configuration for playback from a player.
Definition ST_AudioProcessingSettings.h:1401
bool bLooping
Whether the audio playback should loop. @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1410
EST_AudioFileLocation AudioFileLocation
Where the InputFilePath Should start. @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1417
FString InputFilePath
Path to the input file for playback. @meta (SessionRestartRequired)
Definition ST_AudioProcessingSettings.h:1424