Files
UnrealEngine/Engine/Source/Runtime/SignalProcessing/Public/DSP/BufferOnePoleLPF.h
2025-05-18 13:04:45 +08:00

49 lines
1.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "DSP/Dsp.h"
#include "DSP/BufferVectorOperations.h"
namespace Audio
{
// Simple 1-pole lowpass filter
class FBufferOnePoleLPF
{
public:
// Constructor
SIGNALPROCESSING_API FBufferOnePoleLPF(float InG = 0.0f);
// Set the LPF gain coefficient
SIGNALPROCESSING_API void SetG(float InG);
// Resets the sample delay to 0
SIGNALPROCESSING_API void Reset();
// Resets the audio to silence.
SIGNALPROCESSING_API void FlushAudio();
// Sets the filter frequency using normalized frequency (between 0.0 and 1.0f or 0.0 hz and Nyquist Frequency in Hz)
SIGNALPROCESSING_API void SetFrequency(const float InFrequency);
// Process InSamples and place filtered audio in OutSamples
SIGNALPROCESSING_API void ProcessAudio(const FAlignedFloatBuffer& InSamples, FAlignedFloatBuffer& OutSamples);
protected:
float CutoffFrequency;
// Filter coefficients
float B1;
float A0;
// 1-sample delay
float Z1;
};
}