UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
QuartzQuantizationUtilities.h File Reference
#include "CoreMinimal.h"
#include "QuartzCommandQueue.h"
#include "UObject/ObjectMacros.h"
#include "UObject/Object.h"
#include "UObject/Class.h"
#include "Containers/Map.h"
#include "Containers/Queue.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "QuartzQuantizationUtilities.generated.h"

Go to the source code of this file.

Classes

struct  FQuartzPulseOverrideStep
 
struct  FQuartzTimeSignature
 
struct  FQuartzTransportTimeStamp
 
struct  FQuartzClockSettings
 
class  FQuartLatencyTracker
 
struct  FQuartzQuantizationBoundary
 
struct  Audio::FQuartzQuantizedRequestData
 
struct  Audio::FQuartzQuantizedCommandInitInfo
 
class  Audio::IQuartzQuantizedCommand
 
struct  Audio::FQuartzQuantizedCommandHandle
 
struct  FAudioComponentCommandInfo
 

Namespaces

namespace  Audio
 NO_LOGGING.
 
namespace  Audio::Quartz
 

Enumerations

enum class  EQuartzCommandQuantization : uint8 {
  UMETA =(DisplayName = "Bar", ToolTip = "(dependent on time signature)") , UMETA =(DisplayName = "Beat", ToolTip = "(dependent on time signature and Pulse Override)") , UMETA =(DisplayName = "1/32") , UMETA =(DisplayName = "1/16") ,
  UMETA =(DisplayName = "1/8") , UMETA =(DisplayName = "1/4") , UMETA =(DisplayName = "Half") , UMETA =(DisplayName = "Whole") ,
  UMETA =(DisplayName = "(dotted) 1/16") , UMETA =(DisplayName = "(dotted) 1/8") , UMETA =(DisplayName = "(dotted) 1/4") , UMETA =(DisplayName = "(dotted) Half") ,
  UMETA =(DisplayName = "(dotted) Whole") , UMETA =(DisplayName = "1/16 (triplet)") , UMETA =(DisplayName = "1/8 (triplet)") , UMETA =(DisplayName = "1/4 (triplet)") ,
  UMETA =(DisplayName = "1/2 (triplet)") , UMETA =(DisplayName = "On Tick (Smallest Value, same as 1/32)", ToolTip = "(same as 1/32)") , UMETA =(Hidden) , UMETA =(DisplayName = "None", ToolTip = "(Execute as soon as possible)")
}
 
enum class  EQuartzTimeSignatureQuantization : uint8 {
  UMETA =(DisplayName = "/2") , UMETA =(DisplayName = "/4") , UMETA =(DisplayName = "/8") , UMETA =(DisplayName = "/16") ,
  UMETA =(DisplayName = "/32") , UMETA =(Hidden)
}
 
enum class  EQuartzDelegateType : uint8 { UMETA =(DisplayName = "Metronome Tick") , UMETA =(DisplayName = "Command Event") , UMETA =(Hidden) }
 
enum class  EQuarztQuantizationReference : uint8 { UMETA =(DisplayName = "Bar Relative", ToolTip = "Will occur on the next occurence of this duration from the start of a bar (i.e. On beat 3)") , UMETA =(DisplayName = "Transport Relative", ToolTip = "Will occur on the next multiple of this duration since the clock started ticking (i.e. on the next 4 bar boundary)") , UMETA =(DisplayName = "Current Time Relative", ToolTip = "Will occur on the next multiple of this duration from the current time (i.e. In three beats)") , UMETA =(Hidden) }
 
enum class  EQuartzCommandDelegateSubType : uint8 {
  UMETA =(DisplayName = "Failed To Queue", ToolTip = "The command will not execute (i.e. Clock doesn't exist or PlayQuantized failed concurrency)") , UMETA =(DisplayName = "Queued", ToolTip = "The command has been passed to the Audio Render Thread") , UMETA =(DisplayName = "Canceled", ToolTip = "The command was stopped before it could execute") , UMETA =(DisplayName = "About To Start", ToolTip = "execute off this to be in sync w/ sound starting") ,
  UMETA =(DisplayName = "Started", ToolTip = "the command was just executed on the Audio Render Thrtead") , UMETA =(Hidden)
}
 
enum class  EQuartzCommandType : uint8 {
  UMETA =(DisplayName = "Play Sound", ToolTip = "Play a sound on a spample-accurate boundary (taking a voice slot immediately)") , UMETA =(DisplayName = "Queue Sound To Play", ToolTip = "Queue a sound to play when it gets closer to its quantization boundary (avoids stealing a voice slot right away)") , UMETA =(DisplayName = "Re-trigger Sound", ToolTip = "Quantized looping of the target sound (event tells the AudioComponent to play the sound again)") , UMETA =(DisplayName = "Tick Rate Change", ToolTip = "Quantized change of the tick-rate (i.e. BPM change)") ,
  UMETA =(DisplayName = "Transport Reset", ToolTip = "Quantized reset of the clocks transport (back to time = 0 on the boundary)") , UMETA =(DisplayName = "Start Other Clock", ToolTip = "Quantized start of another clock. Useful for sample accurate synchronization of clocks (i.e. to handle time signature changes)") , UMETA =(DisplayName = "Quantized Notify", ToolTip = "Command used only to get delegates for timing information (basically an empty command)") , UMETA =(DisplayName = "Custom", ToolTip = "Quantized custom command")
}
 

Functions

ENGINE_API DECLARE_LOG_CATEGORY_EXTERN (LogAudioQuartz, Log, All)
 
EQuartzCommandQuantization ENGINE_API TimeSignatureQuantizationToCommandQuantization (const EQuartzTimeSignatureQuantization &BeatType)
 
 DECLARE_DYNAMIC_MULTICAST_DELEGATE_FiveParams (FOnQuartzMetronomeEvent, FName, ClockName, EQuartzCommandQuantization, QuantizationType, int32, NumBars, int32, Beat, float, BeatFraction)
 
 DECLARE_DYNAMIC_DELEGATE_FiveParams (FOnQuartzMetronomeEventBP, FName, ClockName, EQuartzCommandQuantization, QuantizationType, int32, NumBars, int32, Beat, float, BeatFraction)
 
 DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams (FOnQuartzCommandEvent, EQuartzCommandDelegateSubType, EventType, FName, Name)
 
 DECLARE_DYNAMIC_DELEGATE_TwoParams (FOnQuartzCommandEventBP, EQuartzCommandDelegateSubType, EventType, FName, Name)
 

Enumeration Type Documentation

◆ EQuartzCommandDelegateSubType

Enumerator
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 

◆ EQuartzCommandQuantization

Enumerator
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 

◆ EQuartzCommandType

enum class EQuartzCommandType : uint8
strong
Enumerator
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 

◆ EQuartzDelegateType

enum class EQuartzDelegateType : uint8
strong
Enumerator
UMETA 
UMETA 
UMETA 

◆ EQuartzTimeSignatureQuantization

Enumerator
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 
UMETA 

◆ EQuarztQuantizationReference

Enumerator
UMETA 
UMETA 
UMETA 
UMETA 

Function Documentation

◆ DECLARE_DYNAMIC_DELEGATE_FiveParams()

DECLARE_DYNAMIC_DELEGATE_FiveParams ( FOnQuartzMetronomeEventBP  ,
FName  ,
ClockName  ,
EQuartzCommandQuantization  ,
QuantizationType  ,
int32  ,
NumBars  ,
int32  ,
Beat  ,
float  ,
BeatFraction   
)

◆ DECLARE_DYNAMIC_DELEGATE_TwoParams()

DECLARE_DYNAMIC_DELEGATE_TwoParams ( FOnQuartzCommandEventBP  ,
EQuartzCommandDelegateSubType  ,
EventType  ,
FName  ,
Name   
)

◆ DECLARE_DYNAMIC_MULTICAST_DELEGATE_FiveParams()

DECLARE_DYNAMIC_MULTICAST_DELEGATE_FiveParams ( FOnQuartzMetronomeEvent  ,
FName  ,
ClockName  ,
EQuartzCommandQuantization  ,
QuantizationType  ,
int32  ,
NumBars  ,
int32  ,
Beat  ,
float  ,
BeatFraction   
)

◆ DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams()

DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams ( FOnQuartzCommandEvent  ,
EQuartzCommandDelegateSubType  ,
EventType  ,
FName  ,
Name   
)

◆ DECLARE_LOG_CATEGORY_EXTERN()

ENGINE_API DECLARE_LOG_CATEGORY_EXTERN ( LogAudioQuartz  ,
Log  ,
All   
)

◆ TimeSignatureQuantizationToCommandQuantization()

EQuartzCommandQuantization ENGINE_API TimeSignatureQuantizationToCommandQuantization ( const EQuartzTimeSignatureQuantization BeatType)