UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LFO.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "DSP/Osc.h"
6
7
8namespace Audio
9{
25
26 namespace ELFOMode
27 {
28 enum Type
29 {
30 // Constantly oscillates
31 Sync = 0,
32
33 // Performs the LFO only once, then stops
35
36 // Doesn't restart the phase of the LFO on subsequent calls to Start
38
40 };
41 }
42
43 // Low frequency oscillator
44 class FLFO : public IOscBase
45 {
46 public:
49
50 //~ Begin FOscBase
51 SIGNALPROCESSING_API virtual void Init(const float InSampleRate, const int32 InVoiceId = 0, FModulationMatrix* InMatrix = nullptr, const int32 ModMatrixStage = 1) override;
52 SIGNALPROCESSING_API virtual void Start() override;
53 SIGNALPROCESSING_API virtual void Stop() override;
54 SIGNALPROCESSING_API virtual void Reset() override;
55 SIGNALPROCESSING_API virtual float Generate(float* QuadPhaseOutput = nullptr) override;
56 //~ End FOscBase
57
58 // Set whether or not LFO outputs in bipolar domain or unipolar (false) domain. Defaults to bipolar.
60
61 // Set the waveform type of LFO generator
63
64 // Returns current waveform type of LFO generator
66
67 // Sets mode of LFO (Looping or one-shot. Free not supported)
69
70 // Returns current mode of LFO
72
73 // Sets a phase offset for the LFO. Clamped to positive values only
74 SIGNALPROCESSING_API void SetPhaseOffset(const float InOffset);
75
76 // Sets the exponential factor of LFO if type is "exponential". Clamped to positive, non-zero values.
78
79 // Returns mod source's normal phase patch source
81
82 // Returns mod source's quad phase patch source
84
85 protected:
86 SIGNALPROCESSING_API float ComputeLFO(float InputPhase, float* OutQuad = nullptr);
87
88 // Returns initial phase, which differs between generators
89 // ensuring certain LFO shapes start on rising edge from zero-
90 // crossing by default (assuming user's provided phase offset is 0).
92
93 // Resets generator to initial phase
94 SIGNALPROCESSING_API virtual void ResetPhase() override;
95
100 float RSHValue;
101 float ModScale;
102 float ModAdd;
107
109
112 };
113} // namespace Audio
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition LFO.h:45
FPatchSource ModQuadPhase
Definition LFO.h:111
bool bBipolar
Definition LFO.h:108
float ModScale
Definition LFO.h:101
uint32 RSHCounter
Definition LFO.h:99
virtual SIGNALPROCESSING_API void Start() override
Definition LFO.cpp:43
SIGNALPROCESSING_API void SetPhaseOffset(const float InOffset)
Definition LFO.cpp:119
SIGNALPROCESSING_API void SetMode(const ELFOMode::Type InLFOMode)
Definition LFO.cpp:134
virtual SIGNALPROCESSING_API void Reset() override
Definition LFO.cpp:62
float RSHValue
Definition LFO.h:100
ELFOMode::Type LFOMode
Definition LFO.h:97
float LastOutput
Definition LFO.h:103
SIGNALPROCESSING_API void SetExponentialFactor(const float InExpFactor)
Definition LFO.cpp:144
SIGNALPROCESSING_API void SetType(const ELFO::Type InLFOType)
Definition LFO.cpp:124
virtual SIGNALPROCESSING_API void Stop() override
Definition LFO.cpp:57
FPatchSource ModNormalPhase
Definition LFO.h:110
SIGNALPROCESSING_API FLFO()
Definition LFO.cpp:9
SIGNALPROCESSING_API FPatchSource GetModSourceQuadPhase() const
Definition LFO.cpp:154
SIGNALPROCESSING_API void SetBipolar(const bool bInBipolar)
Definition LFO.cpp:114
virtual SIGNALPROCESSING_API float Generate(float *QuadPhaseOutput=nullptr) override
Definition LFO.cpp:159
float PhaseOffset
Definition LFO.h:106
float ExponentialFactor
Definition LFO.h:98
ELFO::Type LFOType
Definition LFO.h:96
float LoopCount
Definition LFO.h:104
SIGNALPROCESSING_API float GetInitPhase() const
virtual SIGNALPROCESSING_API ~FLFO()
float QuadLastOutput
Definition LFO.h:105
virtual SIGNALPROCESSING_API void ResetPhase() override
Definition LFO.cpp:73
SIGNALPROCESSING_API ELFOMode::Type GetMode() const
Definition LFO.cpp:139
SIGNALPROCESSING_API FPatchSource GetModSourceNormalPhase() const
Definition LFO.cpp:149
SIGNALPROCESSING_API ELFO::Type GetType() const
Definition LFO.cpp:129
float ModAdd
Definition LFO.h:102
SIGNALPROCESSING_API float ComputeLFO(float InputPhase, float *OutQuad=nullptr)
Definition LFO.cpp:193
Definition ModulationMatrix.h:102
Definition Osc.h:53
Type
Definition LFO.h:29
@ NumLFOModes
Definition LFO.h:39
@ Sync
Definition LFO.h:31
@ Free
Definition LFO.h:37
@ OneShot
Definition LFO.h:34
Type
Definition LFO.h:13
@ UpSaw
Definition LFO.h:15
@ Square
Definition LFO.h:17
@ Triangle
Definition LFO.h:18
@ NumLFOTypes
Definition LFO.h:22
@ RandomSampleHold
Definition LFO.h:20
@ DownSaw
Definition LFO.h:16
@ Sine
Definition LFO.h:14
@ Exponential
Definition LFO.h:19
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
Definition ModulationMatrix.h:12