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

#include <AudioMixerSubmix.h>

Classes

struct  FEndpointData
 
struct  FSoundfieldEffectProcessorData
 
struct  FSoundfieldStreams
 
struct  FSpectralAnalysisBandInfo
 
struct  FSpectrumAnalysisDelegateInfo
 
struct  FSubmixBufferListenerInfo
 
struct  FSubmixEffectFadeInfo
 

Public Member Functions

AUDIOMIXER_API FMixerSubmix (FMixerDevice *InMixerDevice)
 
virtual AUDIOMIXER_API ~FMixerSubmix ()
 
AUDIOMIXER_API void Init (const USoundSubmixBase *InSoundSubmix, bool bAllowReInit=true)
 
uint32 GetId () const
 
const FString & GetName () const
 
AUDIOMIXER_API void SetParentSubmix (TWeakPtr< FMixerSubmix, ESPMode::ThreadSafe > Submix)
 
AUDIOMIXER_API void AddChildSubmix (TWeakPtr< FMixerSubmix, ESPMode::ThreadSafe > Submix)
 
AUDIOMIXER_API void RemoveChildSubmix (TWeakPtr< FMixerSubmix, ESPMode::ThreadSafe > SubmixWeakPtr)
 
AUDIOMIXER_API void RegisterAudioBus (const Audio::FAudioBusKey &InAudioBusKey, Audio::FPatchInput &&InPatchInput)
 
AUDIOMIXER_API void UnregisterAudioBus (const Audio::FAudioBusKey &InAudioBusKey)
 
AUDIOMIXER_API void SetOutputVolume (float InOutputLevel)
 
AUDIOMIXER_API void SetDryLevel (float InDryLevel)
 
AUDIOMIXER_API void SetWetLevel (float InWetLevel)
 
AUDIOMIXER_API void UpdateModulationSettings (const TSet< TObjectPtr< USoundModulatorBase > > &InOutputModulators, const TSet< TObjectPtr< USoundModulatorBase > > &InWetLevelModulators, const TSet< TObjectPtr< USoundModulatorBase > > &InDryLevelModulators)
 
AUDIOMIXER_API void SetModulationBaseLevels (float InVolumeModBaseDb, float InWetModeBaseDb, float InDryModBaseDb)
 
FModulationDestinationGetOutputVolumeDestination ()
 
FModulationDestinationGetWetVolumeDestination ()
 
AUDIOMIXER_API int32 GetSubmixChannels () const
 
AUDIOMIXER_API TWeakPtr< FMixerSubmix, ESPMode::ThreadSafeGetParentSubmix ()
 
AUDIOMIXER_API int32 GetNumSourceVoices () const
 
AUDIOMIXER_API int32 GetNumEffects () const
 
AUDIOMIXER_API int32 GetSizeOfSubmixChain () const
 
AUDIOMIXER_API void AddOrSetSourceVoice (FMixerSourceVoice *InSourceVoice, const float SendLevel, EMixerSourceSubmixSendStage InSubmixSendStage)
 
AUDIOMIXER_API FPatchOutputStrongPtr AddPatch (float InGain)
 
AUDIOMIXER_API void RemoveSourceVoice (FMixerSourceVoice *InSourceVoice)
 
AUDIOMIXER_API void AddSoundEffectSubmix (FSoundEffectSubmixPtr InSoundEffectSubmix)
 
AUDIOMIXER_API void RemoveSoundEffectSubmix (uint32 SubmixPresetId)
 
AUDIOMIXER_API void RemoveSoundEffectSubmixAtIndex (int32 InIndex)
 
AUDIOMIXER_API void ClearSoundEffectSubmixes ()
 
AUDIOMIXER_API void SetSubmixEffectChainOverride (const TArray< FSoundEffectSubmixPtr > &InSubmixEffectPresetChain, float InFadeTimeSec)
 
AUDIOMIXER_API void ClearSubmixEffectChainOverride (float InFadeTimeSec)
 
AUDIOMIXER_API void ReplaceSoundEffectSubmix (int32 InIndex, FSoundEffectSubmixPtr InEffectInstance)
 
AUDIOMIXER_API void SetBackgroundMuted (bool bInMuted)
 
AUDIOMIXER_API bool IsValid () const
 
AUDIOMIXER_API void ProcessAudio (FAlignedFloatBuffer &OutAudio)
 
AUDIOMIXER_API void ProcessAudio (ISoundfieldAudioPacket &OutputAudio)
 
AUDIOMIXER_API void SendAudioToSubmixBufferListeners (FAlignedFloatBuffer &OutAudioBuffer)
 
AUDIOMIXER_API void ProcessAudioAndSendToEndpoint ()
 
AUDIOMIXER_API int32 GetSampleRate () const
 
AUDIOMIXER_API int32 GetNumOutputChannels () const
 
AUDIOMIXER_API int32 GetNumChainEffects ()
 
AUDIOMIXER_API FSoundEffectSubmixPtr GetSubmixEffect (const int32 InIndex)
 
AUDIOMIXER_API void SetSoundfieldFactory (ISoundfieldFactory *InSoundfieldFactory)
 
AUDIOMIXER_API void SetupSoundfieldStreams (const USoundfieldEncodingSettingsBase *SoundfieldSettings, TArray< USoundfieldEffectBase * > &Processors, ISoundfieldFactory *InSoundfieldFactory)
 
AUDIOMIXER_API void TeardownSoundfieldStreams ()
 
AUDIOMIXER_API void SetupEndpoint (IAudioEndpointFactory *InFactory, const UAudioEndpointSettingsBase *InSettings)
 
AUDIOMIXER_API void SetupEndpoint (ISoundfieldEndpointFactory *InFactory, const USoundfieldEndpointSettingsBase *InSettings)
 
AUDIOMIXER_API void UpdateEndpointSettings (TUniquePtr< IAudioEndpointSettingsProxy > &&InSettings)
 
AUDIOMIXER_API void UpdateEndpointSettings (TUniquePtr< ISoundfieldEndpointSettingsProxy > &&InSettings)
 
AUDIOMIXER_API void OnStartRecordingOutput (float ExpectedDuration)
 
AUDIOMIXER_API FAlignedFloatBufferOnStopRecordingOutput (float &OutNumChannels, float &OutSampleRate)
 
AUDIOMIXER_API void PauseRecordingOutput ()
 
AUDIOMIXER_API void ResumeRecordingOutput ()
 
AUDIOMIXER_API void RegisterBufferListener (ISubmixBufferListener *BufferListener)
 
AUDIOMIXER_API void UnregisterBufferListener (ISubmixBufferListener *BufferListener)
 
AUDIOMIXER_API void RegisterBufferListener (TSharedRef< ISubmixBufferListener, ESPMode::ThreadSafe > BufferListener)
 
AUDIOMIXER_API void UnregisterBufferListener (TSharedRef< ISubmixBufferListener, ESPMode::ThreadSafe > BufferListener)
 
AUDIOMIXER_API void StartEnvelopeFollowing (int32 AttackTime, int32 ReleaseTime)
 
AUDIOMIXER_API void StopEnvelopeFollowing ()
 
AUDIOMIXER_API void AddEnvelopeFollowerDelegate (const FOnSubmixEnvelopeBP &OnSubmixEnvelopeBP)
 
AUDIOMIXER_API void RemoveEnvelopeFollowerDelegate (const FOnSubmixEnvelopeBP &OnSubmixEnvelopeBP)
 
AUDIOMIXER_API void StartSpectrumAnalysis (const FSoundSpectrumAnalyzerSettings &InSettings)
 
AUDIOMIXER_API void StopSpectrumAnalysis ()
 
AUDIOMIXER_API void AddSpectralAnalysisDelegate (const FSoundSpectrumAnalyzerDelegateSettings &InDelegateSettings, const FOnSubmixSpectralAnalysisBP &OnSubmixSpectralAnalysisBP)
 
AUDIOMIXER_API void RemoveSpectralAnalysisDelegate (const FOnSubmixSpectralAnalysisBP &OnSubmixSpectralAnalysisBP)
 
AUDIOMIXER_API void GetMagnitudeForFrequencies (const TArray< float > &InFrequencies, TArray< float > &OutMagnitudes)
 
AUDIOMIXER_API void GetPhaseForFrequencies (const TArray< float > &InFrequencies, TArray< float > &OutPhases)
 
AUDIOMIXER_API void BroadcastDelegates ()
 
AUDIOMIXER_API bool IsSoundfieldSubmix () const
 
AUDIOMIXER_API bool IsDefaultEndpointSubmix () const
 
AUDIOMIXER_API bool IsExternalEndpointSubmix () const
 
AUDIOMIXER_API bool IsSoundfieldEndpointSubmix () const
 
AUDIOMIXER_API bool IsDummyEndpointSubmix () const
 
AUDIOMIXER_API bool IsRenderingAudio () const
 
AUDIOMIXER_API void SetAutoDisable (bool bInAutoDisable)
 
AUDIOMIXER_API void SetAutoDisableTime (float InAutoDisableTime)
 
AUDIOMIXER_API FSoundfieldEncodingKey GetKeyForSubmixEncoding ()
 
AUDIOMIXER_API ISoundfieldFactoryGetSoundfieldFactory ()
 
AUDIOMIXER_API ISoundfieldEncodingSettingsProxyGetSoundfieldSettings ()
 
AUDIOMIXER_API FAudioPluginInitializationParams GetInitializationParamsForSoundfieldStream ()
 
AUDIOMIXER_API FSoundfieldSpeakerPositionalData GetDefaultPositionalDataForAudioDevice ()
 
TWeakPtr< FMixerSubmix, ESPMode::ThreadSafeGetParent () const
 
const TMap< uint32, FChildSubmixInfo > & GetChildren () const
 

Protected Member Functions

AUDIOMIXER_API void InitInternal ()
 
AUDIOMIXER_API void MixBufferDownToMono (const FAlignedFloatBuffer &InBuffer, int32 NumInputChannels, FAlignedFloatBuffer &OutBuffer)
 
AUDIOMIXER_API void SetupSoundfieldEncodersForChildren ()
 
AUDIOMIXER_API void SetupSoundfieldEncodingForChild (FChildSubmixInfo &InChild)
 
AUDIOMIXER_API void SetupSoundfieldStreamForParent ()
 
AUDIOMIXER_API void SetUpSoundfieldPositionalData (const TSharedPtr< Audio::FMixerSubmix, ESPMode::ThreadSafe > &InParentSubmix)
 
AUDIOMIXER_API void MixInSource (const ISoundfieldAudioPacket &InAudio, const ISoundfieldEncodingSettingsProxy &InSettings, ISoundfieldAudioPacket &PacketToSumTo)
 
AUDIOMIXER_API void UpdateListenerRotation (const FQuat &InRotation)
 
AUDIOMIXER_API void MixInChildSubmix (FChildSubmixInfo &Child, ISoundfieldAudioPacket &PacketToSumTo)
 
AUDIOMIXER_API FName GetSoundfieldFormat () const
 
AUDIOMIXER_API TUniquePtr< ISoundfieldTranscodeStreamGetTranscoderForChildSubmix (const TSharedPtr< Audio::FMixerSubmix, ESPMode::ThreadSafe > &InChildSubmix)
 
AUDIOMIXER_API void PumpCommandQueue ()
 
AUDIOMIXER_API void SubmixCommand (TFunction< void()> Command)
 
AUDIOMIXER_API bool GenerateEffectChainAudio (FSoundEffectSubmixInputData &InputData, const FAlignedFloatBuffer &InAudioBuffer, TArray< FSoundEffectSubmixPtr > &InEffectChain, FAlignedFloatBuffer &OutBuffer)
 

Static Protected Member Functions

static AUDIOMIXER_API void DownmixBuffer (const int32 InChannels, const FAlignedFloatBuffer &InBuffer, const int32 OutChannels, FAlignedFloatBuffer &OutNewBuffer)
 

Protected Attributes

FString SubmixName
 
uint32 Id
 
TWeakPtr< FMixerSubmix, ESPMode::ThreadSafeParentSubmix
 
TMap< uint32, FChildSubmixInfoChildSubmixes
 
TArray< FSubmixEffectFadeInfoEffectChains
 
FAlignedFloatBuffer EffectChainOutputBuffer
 
FMixerDeviceMixerDevice
 
TMap< FMixerSourceVoice *, FSubmixVoiceDataMixerSourceVoices
 
FAlignedFloatBuffer ScratchBuffer
 
FAlignedFloatBuffer SubmixChainMixBuffer
 
FAlignedFloatBuffer InputBuffer
 
FAlignedFloatBuffer DownmixedBuffer
 
FAlignedFloatBuffer SourceInputBuffer
 
int32 NumChannels
 
int32 NumSamples
 
FSoundfieldStreams SoundfieldStreams
 
FEndpointData EndpointData
 
float CurrentOutputVolume
 
float TargetOutputVolume
 
float CurrentWetLevel
 
float TargetWetLevel
 
float CurrentDryLevel
 
float TargetDryLevel
 
FModulationDestination VolumeMod
 
FModulationDestination DryLevelMod
 
FModulationDestination WetLevelMod
 
float VolumeModBaseDb = 0.f
 
float DryModBaseDb = MIN_VOLUME_DECIBELS
 
float WetModBaseDb = 0.f
 
float VolumeModifier = 1.f
 
float DryLevelModifier = 1.f
 
float WetLevelModifier = 1.f
 
float EnvelopeValues [AUDIO_MIXER_MAX_OUTPUT_CHANNELS]
 
Audio::FEnvelopeFollower EnvelopeFollower
 
int32 EnvelopeNumChannels
 
FCriticalSection EnvelopeCriticalSection
 
FCriticalSection SpectrumAnalyzerCriticalSection
 
FSoundSpectrumAnalyzerSettings SpectrumAnalyzerSettings
 
TSharedPtr< FAsyncSpectrumAnalyzer, ESPMode::ThreadSafeSpectrumAnalyzer
 
FAlignedFloatBuffer MonoMixBuffer
 
FAlignedFloatBuffer DryChannelBuffer
 
TQueue< TFunction< void()> > CommandQueue
 
TArray< TWeakPtr< ISubmixBufferListener > > BufferListenerPtrs
 
FCriticalSection BufferListenerCriticalSection
 
FAlignedFloatBuffer RecordingData
 
int32 NumSubmixEffects
 
uint8 bIsRecording: 1
 
uint8 bIsBackgroundMuted: 1
 
uint8 bAutoDisable: 1
 
uint8 bIsSilent: 1
 
uint8 bIsCurrentlyDisabled: 1
 
double AutoDisableTime
 
double SilenceTimeStartSeconds
 
FThreadSafeBool bIsEnvelopeFollowing
 
FOnSubmixEnvelope OnSubmixEnvelope
 
TArray< FSpectrumAnalysisDelegateInfoSpectralAnalysisDelegates
 
FThreadSafeBool bIsSpectrumAnalyzing
 
FCriticalSection RecordingCriticalSection
 
FCriticalSection EffectChainMutationCriticalSection
 
TWeakObjectPtr< const USoundSubmixBaseOwningSubmixObject
 
Audio::FPatchSplitter PatchSplitter
 
TUniquePtr< IAudioLinkAudioLinkInstance
 

Friends

class FMixerDevice
 

Constructor & Destructor Documentation

◆ FMixerSubmix()

Audio::FMixerSubmix::FMixerSubmix ( FMixerDevice InMixerDevice)

◆ ~FMixerSubmix()

Audio::FMixerSubmix::~FMixerSubmix ( )
virtual

Member Function Documentation

◆ AddChildSubmix()

void Audio::FMixerSubmix::AddChildSubmix ( TWeakPtr< FMixerSubmix, ESPMode::ThreadSafe Submix)

◆ AddEnvelopeFollowerDelegate()

void Audio::FMixerSubmix::AddEnvelopeFollowerDelegate ( const FOnSubmixEnvelopeBP OnSubmixEnvelopeBP)

◆ AddOrSetSourceVoice()

void Audio::FMixerSubmix::AddOrSetSourceVoice ( FMixerSourceVoice InSourceVoice,
const float  SendLevel,
EMixerSourceSubmixSendStage  InSubmixSendStage 
)

◆ AddPatch()

FPatchOutputStrongPtr Audio::FMixerSubmix::AddPatch ( float  InGain)

◆ AddSoundEffectSubmix()

void Audio::FMixerSubmix::AddSoundEffectSubmix ( FSoundEffectSubmixPtr  InSoundEffectSubmix)

Appends the effect submix to the effect submix chain.

◆ AddSpectralAnalysisDelegate()

void Audio::FMixerSubmix::AddSpectralAnalysisDelegate ( const FSoundSpectrumAnalyzerDelegateSettings InDelegateSettings,
const FOnSubmixSpectralAnalysisBP OnSubmixSpectralAnalysisBP 
)

◆ BroadcastDelegates()

void Audio::FMixerSubmix::BroadcastDelegates ( )

◆ ClearSoundEffectSubmixes()

void Audio::FMixerSubmix::ClearSoundEffectSubmixes ( )

Clears all submix effects from the effect submix chain.

◆ ClearSubmixEffectChainOverride()

void Audio::FMixerSubmix::ClearSubmixEffectChainOverride ( float  InFadeTimeSec)

Clears any submix effect chain overrides in the given fade time in seconds.

◆ DownmixBuffer()

void Audio::FMixerSubmix::DownmixBuffer ( const int32  InChannels,
const FAlignedFloatBuffer InBuffer,
const int32  OutChannels,
FAlignedFloatBuffer OutNewBuffer 
)
staticprotected

◆ GenerateEffectChainAudio()

bool Audio::FMixerSubmix::GenerateEffectChainAudio ( FSoundEffectSubmixInputData InputData,
const FAlignedFloatBuffer InAudioBuffer,
TArray< FSoundEffectSubmixPtr > &  InEffectChain,
FAlignedFloatBuffer OutBuffer 
)
protected

◆ GetChildren()

const TMap< uint32, FChildSubmixInfo > & Audio::FMixerSubmix::GetChildren ( ) const
inline

◆ GetDefaultPositionalDataForAudioDevice()

FSoundfieldSpeakerPositionalData Audio::FMixerSubmix::GetDefaultPositionalDataForAudioDevice ( )

◆ GetId()

uint32 Audio::FMixerSubmix::GetId ( ) const
inline

◆ GetInitializationParamsForSoundfieldStream()

FAudioPluginInitializationParams Audio::FMixerSubmix::GetInitializationParamsForSoundfieldStream ( )

◆ GetKeyForSubmixEncoding()

FSoundfieldEncodingKey Audio::FMixerSubmix::GetKeyForSubmixEncoding ( )

◆ GetMagnitudeForFrequencies()

void Audio::FMixerSubmix::GetMagnitudeForFrequencies ( const TArray< float > &  InFrequencies,
TArray< float > &  OutMagnitudes 
)

◆ GetName()

const FString & Audio::FMixerSubmix::GetName ( ) const
inline

◆ GetNumChainEffects()

int32 Audio::FMixerSubmix::GetNumChainEffects ( )

◆ GetNumEffects()

int32 Audio::FMixerSubmix::GetNumEffects ( ) const

◆ GetNumOutputChannels()

int32 Audio::FMixerSubmix::GetNumOutputChannels ( ) const

◆ GetNumSourceVoices()

int32 Audio::FMixerSubmix::GetNumSourceVoices ( ) const

◆ GetOutputVolumeDestination()

FModulationDestination * Audio::FMixerSubmix::GetOutputVolumeDestination ( )

◆ GetParent()

TWeakPtr< FMixerSubmix, ESPMode::ThreadSafe > Audio::FMixerSubmix::GetParent ( ) const
inline

◆ GetParentSubmix()

TWeakPtr< FMixerSubmix, ESPMode::ThreadSafe > Audio::FMixerSubmix::GetParentSubmix ( )

◆ GetPhaseForFrequencies()

void Audio::FMixerSubmix::GetPhaseForFrequencies ( const TArray< float > &  InFrequencies,
TArray< float > &  OutPhases 
)

◆ GetSampleRate()

int32 Audio::FMixerSubmix::GetSampleRate ( ) const

◆ GetSizeOfSubmixChain()

int32 Audio::FMixerSubmix::GetSizeOfSubmixChain ( ) const

◆ GetSoundfieldFactory()

ISoundfieldFactory * Audio::FMixerSubmix::GetSoundfieldFactory ( )

◆ GetSoundfieldFormat()

FName Audio::FMixerSubmix::GetSoundfieldFormat ( ) const
protected

◆ GetSoundfieldSettings()

ISoundfieldEncodingSettingsProxy & Audio::FMixerSubmix::GetSoundfieldSettings ( )

◆ GetSubmixChannels()

int32 Audio::FMixerSubmix::GetSubmixChannels ( ) const

◆ GetSubmixEffect()

FSoundEffectSubmixPtr Audio::FMixerSubmix::GetSubmixEffect ( const int32  InIndex)

◆ GetTranscoderForChildSubmix()

TUniquePtr< ISoundfieldTranscodeStream > Audio::FMixerSubmix::GetTranscoderForChildSubmix ( const TSharedPtr< Audio::FMixerSubmix, ESPMode::ThreadSafe > &  InChildSubmix)
protected

◆ GetWetVolumeDestination()

FModulationDestination * Audio::FMixerSubmix::GetWetVolumeDestination ( )

◆ Init()

void Audio::FMixerSubmix::Init ( const USoundSubmixBase InSoundSubmix,
bool  bAllowReInit = true 
)

◆ InitInternal()

void Audio::FMixerSubmix::InitInternal ( )
protected

◆ IsDefaultEndpointSubmix()

bool Audio::FMixerSubmix::IsDefaultEndpointSubmix ( ) const

◆ IsDummyEndpointSubmix()

bool Audio::FMixerSubmix::IsDummyEndpointSubmix ( ) const

◆ IsExternalEndpointSubmix()

bool Audio::FMixerSubmix::IsExternalEndpointSubmix ( ) const

◆ IsRenderingAudio()

bool Audio::FMixerSubmix::IsRenderingAudio ( ) const

◆ IsSoundfieldEndpointSubmix()

bool Audio::FMixerSubmix::IsSoundfieldEndpointSubmix ( ) const

◆ IsSoundfieldSubmix()

bool Audio::FMixerSubmix::IsSoundfieldSubmix ( ) const

◆ IsValid()

bool Audio::FMixerSubmix::IsValid ( ) const

Checks to see if submix is valid. Submix can be considered invalid if the OwningSubmix pointer is stale.

◆ MixBufferDownToMono()

void Audio::FMixerSubmix::MixBufferDownToMono ( const FAlignedFloatBuffer InBuffer,
int32  NumInputChannels,
FAlignedFloatBuffer OutBuffer 
)
protected

◆ MixInChildSubmix()

void Audio::FMixerSubmix::MixInChildSubmix ( FChildSubmixInfo Child,
ISoundfieldAudioPacket PacketToSumTo 
)
protected

InputSettings

PosititonalData

◆ MixInSource()

void Audio::FMixerSubmix::MixInSource ( const ISoundfieldAudioPacket InAudio,
const ISoundfieldEncodingSettingsProxy InSettings,
ISoundfieldAudioPacket PacketToSumTo 
)
protected

◆ OnStartRecordingOutput()

void Audio::FMixerSubmix::OnStartRecordingOutput ( float  ExpectedDuration)

◆ OnStopRecordingOutput()

FAlignedFloatBuffer & Audio::FMixerSubmix::OnStopRecordingOutput ( float OutNumChannels,
float OutSampleRate 
)

◆ PauseRecordingOutput()

void Audio::FMixerSubmix::PauseRecordingOutput ( )

◆ ProcessAudio() [1/2]

void Audio::FMixerSubmix::ProcessAudio ( FAlignedFloatBuffer OutAudio)

◆ ProcessAudio() [2/2]

void Audio::FMixerSubmix::ProcessAudio ( ISoundfieldAudioPacket OutputAudio)

InputSettings

PosititonalData

◆ ProcessAudioAndSendToEndpoint()

void Audio::FMixerSubmix::ProcessAudioAndSendToEndpoint ( )

◆ PumpCommandQueue()

void Audio::FMixerSubmix::PumpCommandQueue ( )
protected

◆ RegisterAudioBus()

void Audio::FMixerSubmix::RegisterAudioBus ( const Audio::FAudioBusKey InAudioBusKey,
Audio::FPatchInput &&  InPatchInput 
)

◆ RegisterBufferListener() [1/2]

void Audio::FMixerSubmix::RegisterBufferListener ( ISubmixBufferListener BufferListener)

◆ RegisterBufferListener() [2/2]

void Audio::FMixerSubmix::RegisterBufferListener ( TSharedRef< ISubmixBufferListener, ESPMode::ThreadSafe BufferListener)

◆ RemoveChildSubmix()

void Audio::FMixerSubmix::RemoveChildSubmix ( TWeakPtr< FMixerSubmix, ESPMode::ThreadSafe SubmixWeakPtr)

◆ RemoveEnvelopeFollowerDelegate()

void Audio::FMixerSubmix::RemoveEnvelopeFollowerDelegate ( const FOnSubmixEnvelopeBP OnSubmixEnvelopeBP)

◆ RemoveSoundEffectSubmix()

void Audio::FMixerSubmix::RemoveSoundEffectSubmix ( uint32  SubmixPresetId)

Removes the submix effect from the effect submix chain.

◆ RemoveSoundEffectSubmixAtIndex()

void Audio::FMixerSubmix::RemoveSoundEffectSubmixAtIndex ( int32  InIndex)

Removes the submix effect from the effect submix chain at the given submix index.

◆ RemoveSourceVoice()

void Audio::FMixerSubmix::RemoveSourceVoice ( FMixerSourceVoice InSourceVoice)

Removes the given source voice from the submix.

◆ RemoveSpectralAnalysisDelegate()

void Audio::FMixerSubmix::RemoveSpectralAnalysisDelegate ( const FOnSubmixSpectralAnalysisBP OnSubmixSpectralAnalysisBP)

◆ ReplaceSoundEffectSubmix()

void Audio::FMixerSubmix::ReplaceSoundEffectSubmix ( int32  InIndex,
FSoundEffectSubmixPtr  InEffectInstance 
)

Swaps effect for provided submix at the given index. Fails if effect at index doesn't exist

◆ ResumeRecordingOutput()

void Audio::FMixerSubmix::ResumeRecordingOutput ( )

◆ SendAudioToSubmixBufferListeners()

void Audio::FMixerSubmix::SendAudioToSubmixBufferListeners ( FAlignedFloatBuffer OutAudioBuffer)

◆ SetAutoDisable()

void Audio::FMixerSubmix::SetAutoDisable ( bool  bInAutoDisable)

◆ SetAutoDisableTime()

void Audio::FMixerSubmix::SetAutoDisableTime ( float  InAutoDisableTime)

◆ SetBackgroundMuted()

void Audio::FMixerSubmix::SetBackgroundMuted ( bool  bInMuted)

Whether or not this submix instance is muted.

◆ SetDryLevel()

void Audio::FMixerSubmix::SetDryLevel ( float  InDryLevel)

◆ SetModulationBaseLevels()

void Audio::FMixerSubmix::SetModulationBaseLevels ( float  InVolumeModBaseDb,
float  InWetModeBaseDb,
float  InDryModBaseDb 
)

◆ SetOutputVolume()

void Audio::FMixerSubmix::SetOutputVolume ( float  InOutputLevel)

◆ SetParentSubmix()

void Audio::FMixerSubmix::SetParentSubmix ( TWeakPtr< FMixerSubmix, ESPMode::ThreadSafe Submix)

◆ SetSoundfieldFactory()

void Audio::FMixerSubmix::SetSoundfieldFactory ( ISoundfieldFactory InSoundfieldFactory)

◆ SetSubmixEffectChainOverride()

void Audio::FMixerSubmix::SetSubmixEffectChainOverride ( const TArray< FSoundEffectSubmixPtr > &  InSubmixEffectPresetChain,
float  InFadeTimeSec 
)

Sets a submix effect chain override with the given fade time in seconds.

◆ SetupEndpoint() [1/2]

void Audio::FMixerSubmix::SetupEndpoint ( IAudioEndpointFactory InFactory,
const UAudioEndpointSettingsBase InSettings 
)

◆ SetupEndpoint() [2/2]

void Audio::FMixerSubmix::SetupEndpoint ( ISoundfieldEndpointFactory InFactory,
const USoundfieldEndpointSettingsBase InSettings 
)

◆ SetupSoundfieldEncodersForChildren()

void Audio::FMixerSubmix::SetupSoundfieldEncodersForChildren ( )
protected

◆ SetupSoundfieldEncodingForChild()

void Audio::FMixerSubmix::SetupSoundfieldEncodingForChild ( FChildSubmixInfo InChild)
protected

◆ SetUpSoundfieldPositionalData()

void Audio::FMixerSubmix::SetUpSoundfieldPositionalData ( const TSharedPtr< Audio::FMixerSubmix, ESPMode::ThreadSafe > &  InParentSubmix)
protected

◆ SetupSoundfieldStreamForParent()

void Audio::FMixerSubmix::SetupSoundfieldStreamForParent ( )
protected

◆ SetupSoundfieldStreams()

void Audio::FMixerSubmix::SetupSoundfieldStreams ( const USoundfieldEncodingSettingsBase SoundfieldSettings,
TArray< USoundfieldEffectBase * > &  Processors,
ISoundfieldFactory InSoundfieldFactory 
)

◆ SetWetLevel()

void Audio::FMixerSubmix::SetWetLevel ( float  InWetLevel)

◆ StartEnvelopeFollowing()

void Audio::FMixerSubmix::StartEnvelopeFollowing ( int32  AttackTime,
int32  ReleaseTime 
)

◆ StartSpectrumAnalysis()

void Audio::FMixerSubmix::StartSpectrumAnalysis ( const FSoundSpectrumAnalyzerSettings InSettings)

◆ StopEnvelopeFollowing()

void Audio::FMixerSubmix::StopEnvelopeFollowing ( )

◆ StopSpectrumAnalysis()

void Audio::FMixerSubmix::StopSpectrumAnalysis ( )

◆ SubmixCommand()

void Audio::FMixerSubmix::SubmixCommand ( TFunction< void()>  Command)
protected

◆ TeardownSoundfieldStreams()

void Audio::FMixerSubmix::TeardownSoundfieldStreams ( )

◆ UnregisterAudioBus()

void Audio::FMixerSubmix::UnregisterAudioBus ( const Audio::FAudioBusKey InAudioBusKey)

◆ UnregisterBufferListener() [1/2]

void Audio::FMixerSubmix::UnregisterBufferListener ( ISubmixBufferListener BufferListener)

◆ UnregisterBufferListener() [2/2]

void Audio::FMixerSubmix::UnregisterBufferListener ( TSharedRef< ISubmixBufferListener, ESPMode::ThreadSafe BufferListener)

◆ UpdateEndpointSettings() [1/2]

void Audio::FMixerSubmix::UpdateEndpointSettings ( TUniquePtr< IAudioEndpointSettingsProxy > &&  InSettings)

◆ UpdateEndpointSettings() [2/2]

void Audio::FMixerSubmix::UpdateEndpointSettings ( TUniquePtr< ISoundfieldEndpointSettingsProxy > &&  InSettings)

◆ UpdateListenerRotation()

void Audio::FMixerSubmix::UpdateListenerRotation ( const FQuat InRotation)
protected

◆ UpdateModulationSettings()

void Audio::FMixerSubmix::UpdateModulationSettings ( const TSet< TObjectPtr< USoundModulatorBase > > &  InOutputModulators,
const TSet< TObjectPtr< USoundModulatorBase > > &  InWetLevelModulators,
const TSet< TObjectPtr< USoundModulatorBase > > &  InDryLevelModulators 
)

Friends And Related Symbol Documentation

◆ FMixerDevice

friend class FMixerDevice
friend

Member Data Documentation

◆ AudioLinkInstance

TUniquePtr<IAudioLink> Audio::FMixerSubmix::AudioLinkInstance
protected

◆ AutoDisableTime

double Audio::FMixerSubmix::AutoDisableTime
protected

◆ bAutoDisable

uint8 Audio::FMixerSubmix::bAutoDisable
protected

◆ bIsBackgroundMuted

uint8 Audio::FMixerSubmix::bIsBackgroundMuted
protected

◆ bIsCurrentlyDisabled

uint8 Audio::FMixerSubmix::bIsCurrentlyDisabled
protected

◆ bIsEnvelopeFollowing

FThreadSafeBool Audio::FMixerSubmix::bIsEnvelopeFollowing
protected

◆ bIsRecording

uint8 Audio::FMixerSubmix::bIsRecording
protected

◆ bIsSilent

uint8 Audio::FMixerSubmix::bIsSilent
protected

◆ bIsSpectrumAnalyzing

FThreadSafeBool Audio::FMixerSubmix::bIsSpectrumAnalyzing
protected

◆ BufferListenerCriticalSection

FCriticalSection Audio::FMixerSubmix::BufferListenerCriticalSection
mutableprotected

◆ BufferListenerPtrs

TArray<TWeakPtr<ISubmixBufferListener> > Audio::FMixerSubmix::BufferListenerPtrs
mutableprotected

◆ ChildSubmixes

TMap<uint32, FChildSubmixInfo> Audio::FMixerSubmix::ChildSubmixes
protected

◆ CommandQueue

TQueue<TFunction<void()> > Audio::FMixerSubmix::CommandQueue
protected

◆ CurrentDryLevel

float Audio::FMixerSubmix::CurrentDryLevel
protected

◆ CurrentOutputVolume

float Audio::FMixerSubmix::CurrentOutputVolume
protected

◆ CurrentWetLevel

float Audio::FMixerSubmix::CurrentWetLevel
protected

◆ DownmixedBuffer

FAlignedFloatBuffer Audio::FMixerSubmix::DownmixedBuffer
protected

◆ DryChannelBuffer

FAlignedFloatBuffer Audio::FMixerSubmix::DryChannelBuffer
protected

◆ DryLevelMod

FModulationDestination Audio::FMixerSubmix::DryLevelMod
protected

◆ DryLevelModifier

float Audio::FMixerSubmix::DryLevelModifier = 1.f
protected

◆ DryModBaseDb

float Audio::FMixerSubmix::DryModBaseDb = MIN_VOLUME_DECIBELS
protected

◆ EffectChainMutationCriticalSection

FCriticalSection Audio::FMixerSubmix::EffectChainMutationCriticalSection
protected

◆ EffectChainOutputBuffer

FAlignedFloatBuffer Audio::FMixerSubmix::EffectChainOutputBuffer
protected

◆ EffectChains

TArray<FSubmixEffectFadeInfo> Audio::FMixerSubmix::EffectChains
protected

◆ EndpointData

FEndpointData Audio::FMixerSubmix::EndpointData
protected

◆ EnvelopeCriticalSection

FCriticalSection Audio::FMixerSubmix::EnvelopeCriticalSection
protected

◆ EnvelopeFollower

Audio::FEnvelopeFollower Audio::FMixerSubmix::EnvelopeFollower
protected

◆ EnvelopeNumChannels

int32 Audio::FMixerSubmix::EnvelopeNumChannels
protected

◆ EnvelopeValues

float Audio::FMixerSubmix::EnvelopeValues[AUDIO_MIXER_MAX_OUTPUT_CHANNELS]
protected

◆ Id

uint32 Audio::FMixerSubmix::Id
protected

◆ InputBuffer

FAlignedFloatBuffer Audio::FMixerSubmix::InputBuffer
protected

◆ MixerDevice

FMixerDevice* Audio::FMixerSubmix::MixerDevice
protected

◆ MixerSourceVoices

TMap<FMixerSourceVoice*, FSubmixVoiceData> Audio::FMixerSubmix::MixerSourceVoices
protected

◆ MonoMixBuffer

FAlignedFloatBuffer Audio::FMixerSubmix::MonoMixBuffer
protected

◆ NumChannels

int32 Audio::FMixerSubmix::NumChannels
protected

◆ NumSamples

int32 Audio::FMixerSubmix::NumSamples
protected

◆ NumSubmixEffects

int32 Audio::FMixerSubmix::NumSubmixEffects
protected

◆ OnSubmixEnvelope

FOnSubmixEnvelope Audio::FMixerSubmix::OnSubmixEnvelope
protected

◆ OwningSubmixObject

TWeakObjectPtr<const USoundSubmixBase> Audio::FMixerSubmix::OwningSubmixObject
protected

◆ ParentSubmix

TWeakPtr<FMixerSubmix, ESPMode::ThreadSafe> Audio::FMixerSubmix::ParentSubmix
protected

◆ PatchSplitter

Audio::FPatchSplitter Audio::FMixerSubmix::PatchSplitter
protected

◆ RecordingCriticalSection

FCriticalSection Audio::FMixerSubmix::RecordingCriticalSection
protected

◆ RecordingData

FAlignedFloatBuffer Audio::FMixerSubmix::RecordingData
protected

◆ ScratchBuffer

FAlignedFloatBuffer Audio::FMixerSubmix::ScratchBuffer
protected

◆ SilenceTimeStartSeconds

double Audio::FMixerSubmix::SilenceTimeStartSeconds
protected

◆ SoundfieldStreams

FSoundfieldStreams Audio::FMixerSubmix::SoundfieldStreams
protected

◆ SourceInputBuffer

FAlignedFloatBuffer Audio::FMixerSubmix::SourceInputBuffer
protected

◆ SpectralAnalysisDelegates

TArray<FSpectrumAnalysisDelegateInfo> Audio::FMixerSubmix::SpectralAnalysisDelegates
protected

◆ SpectrumAnalyzer

TSharedPtr<FAsyncSpectrumAnalyzer, ESPMode::ThreadSafe> Audio::FMixerSubmix::SpectrumAnalyzer
protected

◆ SpectrumAnalyzerCriticalSection

FCriticalSection Audio::FMixerSubmix::SpectrumAnalyzerCriticalSection
protected

◆ SpectrumAnalyzerSettings

FSoundSpectrumAnalyzerSettings Audio::FMixerSubmix::SpectrumAnalyzerSettings
protected

◆ SubmixChainMixBuffer

FAlignedFloatBuffer Audio::FMixerSubmix::SubmixChainMixBuffer
protected

◆ SubmixName

FString Audio::FMixerSubmix::SubmixName
protected

◆ TargetDryLevel

float Audio::FMixerSubmix::TargetDryLevel
protected

◆ TargetOutputVolume

float Audio::FMixerSubmix::TargetOutputVolume
protected

◆ TargetWetLevel

float Audio::FMixerSubmix::TargetWetLevel
protected

◆ VolumeMod

FModulationDestination Audio::FMixerSubmix::VolumeMod
protected

◆ VolumeModBaseDb

float Audio::FMixerSubmix::VolumeModBaseDb = 0.f
protected

◆ VolumeModifier

float Audio::FMixerSubmix::VolumeModifier = 1.f
protected

◆ WetLevelMod

FModulationDestination Audio::FMixerSubmix::WetLevelMod
protected

◆ WetLevelModifier

float Audio::FMixerSubmix::WetLevelModifier = 1.f
protected

◆ WetModBaseDb

float Audio::FMixerSubmix::WetModBaseDb = 0.f
protected

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