UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Audio::FGranularSynth Class Reference

#include <Granulator.h>

Classes

struct  FGrainParam
 

Public Member Functions

SIGNALPROCESSING_API FGranularSynth ()
 
SIGNALPROCESSING_API ~FGranularSynth ()
 
SIGNALPROCESSING_API void Init (const int32 InSampleRate, const int32 InNumInitialGrains)
 
SIGNALPROCESSING_API void LoadSampleBuffer (const TSampleBuffer< int16 > &InSampleBuffer)
 
SIGNALPROCESSING_API void NoteOn (const uint32 InMidiNote, const float InVelocity, const float InDurationSec=INDEX_NONE)
 
SIGNALPROCESSING_API void NoteOff (const uint32 InMidiNote, const bool bKill)
 
SIGNALPROCESSING_API void SetAttackTime (const float InAttackTimeMSec)
 
SIGNALPROCESSING_API void SetDecayTime (const float InDecayTimeMSec)
 
SIGNALPROCESSING_API void SetSustainGain (const float InSustainGain)
 
SIGNALPROCESSING_API void SetReleaseTime (const float InReleaseTimeMSec)
 
SIGNALPROCESSING_API void SeekTime (const float InTimeSec, const float LerpTimeSec=0.0f, const ESeekType::Type InSeekType=ESeekType::FromBeginning)
 
SIGNALPROCESSING_API void SetScrubMode (const bool bIsScrubMode)
 
SIGNALPROCESSING_API void SetPlaybackSpeed (const float InPlaybackSpeed)
 
SIGNALPROCESSING_API void SetGrainsPerSecond (const float InNumberOfGrainsPerSecond)
 
SIGNALPROCESSING_API void SetGrainProbability (const float InGrainProbability)
 
SIGNALPROCESSING_API void SetGrainEnvelopeType (const EGrainEnvelopeType InGrainEnvelopeType)
 
SIGNALPROCESSING_API void SetGrainOscType (const EOsc::Type InGrainOscType)
 
SIGNALPROCESSING_API void SetGrainVolume (const float InBaseVolume, const FVector2D InVolumeRange=FVector2D::ZeroVector)
 
SIGNALPROCESSING_API void SetGrainVolumeModulation (const float InVolumeModulation)
 
SIGNALPROCESSING_API void SetGrainPitch (const float InBasePitch, const FVector2D InPitchRange=FVector2D::ZeroVector)
 
SIGNALPROCESSING_API void SetGrainFrequency (const float InFrequency, const FVector2D InPitchRange=FVector2D::ZeroVector)
 
SIGNALPROCESSING_API void SetGrainFrequencyModulation (const float InFrequencyModulation)
 
SIGNALPROCESSING_API void SetGrainPitchModulation (const float InPitchModulation)
 
SIGNALPROCESSING_API void SetGrainPan (const float InBasePan, const FVector2D InPanRange=FVector2D::ZeroVector)
 
SIGNALPROCESSING_API void SetGrainPanModulation (const float InPanModulation)
 
SIGNALPROCESSING_API void SetGrainDuration (const float InBaseDuration, const FVector2D InDurationRange=FVector2D::ZeroVector)
 
SIGNALPROCESSING_API void SetGrainDurationScale (const float InDurationScale)
 
SIGNALPROCESSING_API int32 GetNumActiveGrains () const
 
SIGNALPROCESSING_API float GetCurrentPlayheadTime () const
 
SIGNALPROCESSING_API float GetSampleDuration () const
 
SIGNALPROCESSING_API void Generate (float *OutAudiobuffer, const int32 NumFrames)
 

Protected Member Functions

SIGNALPROCESSING_API void SpawnGrain ()
 
SIGNALPROCESSING_API float GetWrappedPlayheadPosition (float PlayheadFrame)
 

Protected Attributes

int32 SampleRate
 
int32 NumChannels
 
FGrainEnvelope GrainEnvelope
 
EGranularSynthMode Mode
 
EOsc::Type GrainOscType
 
EGrainEnvelopeType GrainEnvelopeType
 
TArray< FGrainGrainPool
 
TArray< int32FreeGrains
 
TArray< int32ActiveGrains
 
TArray< int32DeadGrains
 
float GrainsPerSecond
 
float GrainProbability
 
int32 CurrentSpawnFrameCount
 
int32 NextSpawnFrame
 
int32 NoteDurationFrameCount
 
int32 NoteDurationFrameEnd
 
FGrainParam Pan
 
FGrainParam Volume
 
FGrainParam Pitch
 
FGrainParam Frequency
 
FGrainParam Duration
 
FEnvelope GainEnv
 
FAmp Amp
 
FDynamicsProcessor DynamicsProcessor
 
TSampleBuffer< int16SampleBuffer
 
float CurrentPlayHeadFrame
 
float PlaybackSpeed
 
int32 NumActiveGrains
 
bool bScrubMode
 
FLinearEase SeekingPlayheadTimeFrame
 

Friends

class FGrain
 

Constructor & Destructor Documentation

◆ FGranularSynth()

Audio::FGranularSynth::FGranularSynth ( )

◆ ~FGranularSynth()

Audio::FGranularSynth::~FGranularSynth ( )

Member Function Documentation

◆ Generate()

void Audio::FGranularSynth::Generate ( float OutAudiobuffer,
const int32  NumFrames 
)

◆ GetCurrentPlayheadTime()

float Audio::FGranularSynth::GetCurrentPlayheadTime ( ) const

◆ GetNumActiveGrains()

int32 Audio::FGranularSynth::GetNumActiveGrains ( ) const

◆ GetSampleDuration()

float Audio::FGranularSynth::GetSampleDuration ( ) const

◆ GetWrappedPlayheadPosition()

float Audio::FGranularSynth::GetWrappedPlayheadPosition ( float  PlayheadFrame)
protected

◆ Init()

void Audio::FGranularSynth::Init ( const int32  InSampleRate,
const int32  InNumInitialGrains 
)

◆ LoadSampleBuffer()

void Audio::FGranularSynth::LoadSampleBuffer ( const TSampleBuffer< int16 > &  InSampleBuffer)

◆ NoteOff()

void Audio::FGranularSynth::NoteOff ( const uint32  InMidiNote,
const bool  bKill 
)

◆ NoteOn()

void Audio::FGranularSynth::NoteOn ( const uint32  InMidiNote,
const float  InVelocity,
const float  InDurationSec = INDEX_NONE 
)

◆ SeekTime()

void Audio::FGranularSynth::SeekTime ( const float  InTimeSec,
const float  LerpTimeSec = 0.0f,
const ESeekType::Type  InSeekType = ESeekType::FromBeginning 
)

◆ SetAttackTime()

void Audio::FGranularSynth::SetAttackTime ( const float  InAttackTimeMSec)

◆ SetDecayTime()

void Audio::FGranularSynth::SetDecayTime ( const float  InDecayTimeMSec)

◆ SetGrainDuration()

void Audio::FGranularSynth::SetGrainDuration ( const float  InBaseDuration,
const FVector2D  InDurationRange = FVector2D::ZeroVector 
)

◆ SetGrainDurationScale()

void Audio::FGranularSynth::SetGrainDurationScale ( const float  InDurationScale)

◆ SetGrainEnvelopeType()

void Audio::FGranularSynth::SetGrainEnvelopeType ( const EGrainEnvelopeType  InGrainEnvelopeType)

◆ SetGrainFrequency()

void Audio::FGranularSynth::SetGrainFrequency ( const float  InFrequency,
const FVector2D  InPitchRange = FVector2D::ZeroVector 
)

◆ SetGrainFrequencyModulation()

void Audio::FGranularSynth::SetGrainFrequencyModulation ( const float  InFrequencyModulation)

◆ SetGrainOscType()

void Audio::FGranularSynth::SetGrainOscType ( const EOsc::Type  InGrainOscType)

◆ SetGrainPan()

void Audio::FGranularSynth::SetGrainPan ( const float  InBasePan,
const FVector2D  InPanRange = FVector2D::ZeroVector 
)

◆ SetGrainPanModulation()

void Audio::FGranularSynth::SetGrainPanModulation ( const float  InPanModulation)

◆ SetGrainPitch()

void Audio::FGranularSynth::SetGrainPitch ( const float  InBasePitch,
const FVector2D  InPitchRange = FVector2D::ZeroVector 
)

◆ SetGrainPitchModulation()

void Audio::FGranularSynth::SetGrainPitchModulation ( const float  InPitchModulation)

◆ SetGrainProbability()

void Audio::FGranularSynth::SetGrainProbability ( const float  InGrainProbability)

◆ SetGrainsPerSecond()

void Audio::FGranularSynth::SetGrainsPerSecond ( const float  InNumberOfGrainsPerSecond)

◆ SetGrainVolume()

void Audio::FGranularSynth::SetGrainVolume ( const float  InBaseVolume,
const FVector2D  InVolumeRange = FVector2D::ZeroVector 
)

◆ SetGrainVolumeModulation()

void Audio::FGranularSynth::SetGrainVolumeModulation ( const float  InVolumeModulation)

◆ SetPlaybackSpeed()

void Audio::FGranularSynth::SetPlaybackSpeed ( const float  InPlaybackSpeed)

◆ SetReleaseTime()

void Audio::FGranularSynth::SetReleaseTime ( const float  InReleaseTimeMSec)

◆ SetScrubMode()

void Audio::FGranularSynth::SetScrubMode ( const bool  bIsScrubMode)

◆ SetSustainGain()

void Audio::FGranularSynth::SetSustainGain ( const float  InSustainGain)

◆ SpawnGrain()

void Audio::FGranularSynth::SpawnGrain ( )
protected

Friends And Related Symbol Documentation

◆ FGrain

friend class FGrain
friend

Member Data Documentation

◆ ActiveGrains

TArray<int32> Audio::FGranularSynth::ActiveGrains
protected

◆ Amp

FAmp Audio::FGranularSynth::Amp
protected

◆ bScrubMode

bool Audio::FGranularSynth::bScrubMode
protected

◆ CurrentPlayHeadFrame

float Audio::FGranularSynth::CurrentPlayHeadFrame
protected

◆ CurrentSpawnFrameCount

int32 Audio::FGranularSynth::CurrentSpawnFrameCount
protected

◆ DeadGrains

TArray<int32> Audio::FGranularSynth::DeadGrains
protected

◆ Duration

FGrainParam Audio::FGranularSynth::Duration
protected

◆ DynamicsProcessor

FDynamicsProcessor Audio::FGranularSynth::DynamicsProcessor
protected

◆ FreeGrains

TArray<int32> Audio::FGranularSynth::FreeGrains
protected

◆ Frequency

FGrainParam Audio::FGranularSynth::Frequency
protected

◆ GainEnv

FEnvelope Audio::FGranularSynth::GainEnv
protected

◆ GrainEnvelope

FGrainEnvelope Audio::FGranularSynth::GrainEnvelope
protected

◆ GrainEnvelopeType

EGrainEnvelopeType Audio::FGranularSynth::GrainEnvelopeType
protected

◆ GrainOscType

EOsc::Type Audio::FGranularSynth::GrainOscType
protected

◆ GrainPool

TArray<FGrain> Audio::FGranularSynth::GrainPool
protected

◆ GrainProbability

float Audio::FGranularSynth::GrainProbability
protected

◆ GrainsPerSecond

float Audio::FGranularSynth::GrainsPerSecond
protected

◆ Mode

EGranularSynthMode Audio::FGranularSynth::Mode
protected

◆ NextSpawnFrame

int32 Audio::FGranularSynth::NextSpawnFrame
protected

◆ NoteDurationFrameCount

int32 Audio::FGranularSynth::NoteDurationFrameCount
protected

◆ NoteDurationFrameEnd

int32 Audio::FGranularSynth::NoteDurationFrameEnd
protected

◆ NumActiveGrains

int32 Audio::FGranularSynth::NumActiveGrains
protected

◆ NumChannels

int32 Audio::FGranularSynth::NumChannels
protected

◆ Pan

FGrainParam Audio::FGranularSynth::Pan
protected

◆ Pitch

FGrainParam Audio::FGranularSynth::Pitch
protected

◆ PlaybackSpeed

float Audio::FGranularSynth::PlaybackSpeed
protected

◆ SampleBuffer

TSampleBuffer<int16> Audio::FGranularSynth::SampleBuffer
protected

◆ SampleRate

int32 Audio::FGranularSynth::SampleRate
protected

◆ SeekingPlayheadTimeFrame

FLinearEase Audio::FGranularSynth::SeekingPlayheadTimeFrame
protected

◆ Volume

FGrainParam Audio::FGranularSynth::Volume
protected

The documentation for this class was generated from the following files: