Files
UnrealEngineUWP/Engine/Source/Runtime/SignalProcessing/Public/DSP/Chorus.h
ryan durand 0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00

57 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "DSP/Delay.h"
#include "DSP/LFO.h"
namespace Audio
{
namespace EChorusDelays
{
enum Type
{
Left,
Center,
Right,
NumDelayTypes
};
}
class SIGNALPROCESSING_API FChorus
{
public:
FChorus();
~FChorus();
void Init(const float InSampleRate, const int32 InNumChannels, const float InDelayLengthSec = 2.0f, const int32 InControlSamplePeriod = 256);
void SetDepth(const EChorusDelays::Type InType, const float InDepth);
void SetFrequency(const EChorusDelays::Type InType, const float InFrequency);
void SetFeedback(const EChorusDelays::Type InType, const float InFeedback);
void SetWetLevel(const float InWetLevel);
void SetDryLevel(const float InDryLevel);
void SetSpread(const float InSpread);
void ProcessAudioFrame(const float* InFrame, float* OutFrame);
void ProcessAudio(const float* InBuffer, const int32 InNumSamples, float* OutBuffer);
protected:
FDelay Delays[EChorusDelays::NumDelayTypes];
FLFO LFOs[EChorusDelays::NumDelayTypes];
FLinearEase Depth[EChorusDelays::NumDelayTypes];
float Feedback[EChorusDelays::NumDelayTypes];
float MinDelayMsec;
float MaxDelayMsec;
float DelayRangeMsec;
float Spread;
float MaxFrequencySpread;
float WetLevel;
float DryLevel;
int32 NumChannels;
};
}