15 class FSpectrumAnalyzer;
131 return !(*
this ==
Other);
238 void IncrementInputIndex();
239 void IncrementOutputIndex();
241 volatile int32 OutputIndex;
242 volatile int32 InputIndex;
255 , bIsAbandoned(
false)
276 bool bUseLatestAudio;
363 volatile bool bSettingsWereUpdated;
365 volatile bool bIsInitialized;
381 double LockedBufferTimestamp;
#define RETURN_QUICK_DECLARE_CYCLE_STAT(StatId, GroupId)
Definition Stats.h:655
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
void Init()
Definition LockFreeList.h:4
Definition SpectrumAnalyzer.h:481
FAsyncSpectrumAnalyzerScopeLock(FAsyncSpectrumAnalyzer *InAnalyzer)
Definition SpectrumAnalyzer.h:483
~FAsyncSpectrumAnalyzerScopeLock()
Definition SpectrumAnalyzer.h:489
Definition SpectrumAnalyzer.h:408
SIGNALPROCESSING_API bool PerformAnalysisIfPossible(bool bUseLatestAudio=false)
Definition SpectrumAnalyzer.cpp:1329
SIGNALPROCESSING_API float GetMagnitudeForFrequency(float InFrequency, FSpectrumAnalyzer::EPeakInterpolationMethod InMethod=FSpectrumAnalyzer::EPeakInterpolationMethod::Linear)
Definition SpectrumAnalyzer.cpp:1289
SIGNALPROCESSING_API float GetPhaseForFrequency(float InFrequency, FSpectrumAnalyzer::EPeakInterpolationMethod InMethod=FSpectrumAnalyzer::EPeakInterpolationMethod::Linear)
Definition SpectrumAnalyzer.cpp:1299
SIGNALPROCESSING_API void UnlockOutputBuffer()
Definition SpectrumAnalyzer.cpp:1314
SIGNALPROCESSING_API bool PushAudio(const TSampleBuffer< float > &InBuffer)
Definition SpectrumAnalyzer.cpp:1319
SIGNALPROCESSING_API bool IsInitialized()
Definition SpectrumAnalyzer.cpp:1274
SIGNALPROCESSING_API float GetNormalizedMagnitudeForFrequency(float InFrequency, FSpectrumAnalyzer::EPeakInterpolationMethod InMethod=FSpectrumAnalyzer::EPeakInterpolationMethod::Linear)
Definition SpectrumAnalyzer.cpp:1294
SIGNALPROCESSING_API bool PerformAsyncAnalysisIfPossible(bool bUseLatestAudio=false)
Definition SpectrumAnalyzer.cpp:1334
virtual SIGNALPROCESSING_API ~FAsyncSpectrumAnalyzer()
Definition SpectrumAnalyzer.cpp:1248
SIGNALPROCESSING_API void LockOutputBuffer()
Definition SpectrumAnalyzer.cpp:1309
SIGNALPROCESSING_API FAsyncSpectrumAnalyzer()
Definition SpectrumAnalyzer.cpp:1234
SIGNALPROCESSING_API void SetSettings(const FSpectrumAnalyzerSettings &InSettings)
Definition SpectrumAnalyzer.cpp:1279
SIGNALPROCESSING_API void GetBands(ISpectrumBandExtractor &InExtractor, TArray< float > &OutValues)
Definition SpectrumAnalyzer.cpp:1304
SIGNALPROCESSING_API void GetSettings(FSpectrumAnalyzerSettings &OutSettings)
Definition SpectrumAnalyzer.cpp:1284
Definition SpectrumAnalyzer.h:249
void Abandon()
Definition SpectrumAnalyzer.cpp:1228
bool CanAbandon()
Definition SpectrumAnalyzer.h:265
FSpectrumAnalysisAsyncWorker(TWeakPtr< FSpectrumAnalyzer, ESPMode::ThreadSafe > InAnalyzer, bool bInUseLatestAudio)
Definition SpectrumAnalyzer.h:252
TStatId GetStatId() const
Definition SpectrumAnalyzer.h:258
void DoWork()
Definition SpectrumAnalyzer.cpp:1214
Definition SpectrumAnalyzer.h:211
FAlignedFloatBuffer & StartWorkOnBuffer()
Definition SpectrumAnalyzer.cpp:1186
const FAlignedFloatBuffer & LockMostRecentBuffer() const
Definition SpectrumAnalyzer.cpp:1203
void StopWorkOnBuffer(double InTimestamp)
Definition SpectrumAnalyzer.cpp:1191
void UnlockBuffer()
Definition SpectrumAnalyzer.cpp:1208
FSpectrumAnalyzerBuffer()
Definition SpectrumAnalyzer.cpp:1124
Definition SpectrumAnalyzer.h:389
~FSpectrumAnalyzerScopeLock()
Definition SpectrumAnalyzer.h:397
FSpectrumAnalyzerScopeLock(FSpectrumAnalyzer *InAnalyzer)
Definition SpectrumAnalyzer.h:391
Definition SpectrumAnalyzer.h:291
SIGNALPROCESSING_API float GetPhaseForFrequency(float InFrequency, EPeakInterpolationMethod InMethod=EPeakInterpolationMethod::Linear)
Definition SpectrumAnalyzer.cpp:911
SIGNALPROCESSING_API float GetNormalizedMagnitudeForFrequency(float InFrequency, EPeakInterpolationMethod InMethod=EPeakInterpolationMethod::Linear)
Definition SpectrumAnalyzer.cpp:899
virtual ~FSpectrumAnalyzer()=default
SIGNALPROCESSING_API void SetSettings(const FSpectrumAnalyzerSettings &InSettings)
Definition SpectrumAnalyzer.cpp:845
SIGNALPROCESSING_API void LockOutputBuffer()
Definition SpectrumAnalyzer.cpp:999
SIGNALPROCESSING_API void GetSettings(FSpectrumAnalyzerSettings &OutSettings)
Definition SpectrumAnalyzer.cpp:851
SIGNALPROCESSING_API FSpectrumAnalyzer()
Definition SpectrumAnalyzer.cpp:632
SIGNALPROCESSING_API bool PerformAnalysisIfPossible(bool bUseLatestAudio=false)
Definition SpectrumAnalyzer.cpp:1043
SIGNALPROCESSING_API bool IsInitialized()
Definition SpectrumAnalyzer.cpp:1117
EPeakInterpolationMethod
Definition SpectrumAnalyzer.h:297
SIGNALPROCESSING_API void GetBands(ISpectrumBandExtractor &InExtractor, TArray< float > &OutValues)
Definition SpectrumAnalyzer.cpp:955
SIGNALPROCESSING_API float GetMagnitudeForFrequency(float InFrequency, EPeakInterpolationMethod InMethod=EPeakInterpolationMethod::Linear)
Definition SpectrumAnalyzer.cpp:856
SIGNALPROCESSING_API void UnlockOutputBuffer()
Definition SpectrumAnalyzer.cpp:1015
SIGNALPROCESSING_API bool PushAudio(const TSampleBuffer< float > &InBuffer)
Definition SpectrumAnalyzer.cpp:1030
Definition SpectrumAnalyzer.h:143
virtual void SetSettings(const FSpectrumBandExtractorSettings &InSettings)=0
static SIGNALPROCESSING_API TUniquePtr< ISpectrumBandExtractor > CreateSpectrumBandExtractor(const FSpectrumBandExtractorSettings &InSettings)
Definition SpectrumAnalyzer.cpp:627
virtual int32 GetNumBands() const =0
virtual ~ISpectrumBandExtractor()
Definition SpectrumAnalyzer.h:177
virtual void RemoveAllBands()=0
virtual void ExtractBands(const FAlignedFloatBuffer &InComplexBuffer, double InTimestamp, TArray< float > &OutValues)=0
EBandType
Definition SpectrumAnalyzer.h:147
virtual void AddBand(const FBandSettings &InSettings)=0
virtual void SetSpectrumSettings(const FSpectrumBandExtractorSpectrumSettings &InSettings)=0
Definition SampleBuffer.h:24
Definition AsyncWork.h:585
Definition ThreadSafeCounter.h:14
Definition SharedPointer.h:153
Definition UniquePtr.h:107
Definition SharedPointer.h:1295
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
FAsyncTask< FSpectrumAnalysisAsyncWorker > FSpectrumAnalyzerTask
Definition SpectrumAnalyzer.h:282
EWindowType
Definition AudioFFT.h:23
EFFTScaling
Definition FFTAlgorithm.h:18
@ false
Definition radaudio_common.h:23
Definition SpectrumAnalyzer.h:18
float HopSize
Definition SpectrumAnalyzer.h:41
EFFTSize FFTSize
Definition SpectrumAnalyzer.h:33
EWindowType WindowType
Definition SpectrumAnalyzer.h:32
FSpectrumAnalyzerSettings()
Definition SpectrumAnalyzer.h:43
EFFTSize
Definition SpectrumAnalyzer.h:21
Definition SpectrumAnalyzer.h:53
float AutoRangeAttackTimeInSeconds
Definition SpectrumAnalyzer.h:93
bool bDoNormalize
Definition SpectrumAnalyzer.h:81
bool bDoAutoRange
Definition SpectrumAnalyzer.h:87
EMetric Metric
Definition SpectrumAnalyzer.h:69
float DecibelNoiseFloor
Definition SpectrumAnalyzer.h:73
EMetric
Definition SpectrumAnalyzer.h:56
float AutoRangeReleaseTimeInSeconds
Definition SpectrumAnalyzer.h:90
Definition SpectrumAnalyzer.h:98
float SampleRate
Definition SpectrumAnalyzer.h:100
bool operator==(const FSpectrumBandExtractorSpectrumSettings &Other) const
Definition SpectrumAnalyzer.h:119
int32 FFTSize
Definition SpectrumAnalyzer.h:103
EFFTScaling FFTScaling
Definition SpectrumAnalyzer.h:106
FSpectrumBandExtractorSpectrumSettings()
Definition SpectrumAnalyzer.h:111
bool operator!=(const FSpectrumBandExtractorSpectrumSettings &Other) const
Definition SpectrumAnalyzer.h:129
EWindowType WindowType
Definition SpectrumAnalyzer.h:109
Definition SpectrumAnalyzer.h:163
EBandType Type
Definition SpectrumAnalyzer.h:165
float CenterFrequency
Definition SpectrumAnalyzer.h:168
float QFactor
Definition SpectrumAnalyzer.h:174
Definition LightweightStats.h:416