VJ Master 1.0
Real-time audio analysis and visualisation.
Loading...
Searching...
No Matches
ST_AudioScene.h
1// Copyright (c) 2025 Aaron Trotter (ShaderTech). All Rights Reserved.
2
3#pragma once
4#include "Subsystems/EngineSubsystem.h"
5#include "Main/ST_AudioProcessingInterface.h"
6#include "Engine/World.h"
7#include "ST_AudioScene.generated.h"
8
14UCLASS()
15class ST_AUDIOVISUALISATION_API UST_AudioScene : public UEngineSubsystem, public IST_AudioProcessingInterface
16{
17 GENERATED_BODY()
18
19public:
25 //Begin UEngineSubsystem Interface
26 virtual void Initialize(FSubsystemCollectionBase& Collection) override;
27
32 virtual void Deinitialize() override;
33 //End UEngineSubsystem Interface
34
39 TSharedPtr<class FST_AudioSceneViewExtension> GetSceneViewExtension() const;
40
41protected:
46 TSharedPtr<class FST_AudioSceneViewExtension, ESPMode::ThreadSafe> ViewExtension;
47
53 void HandlePostWorldInit(UWorld* World, const UWorld::InitializationValues IVS);
54
61 void HandleWorldEndPlay(UWorld* World, bool bSessionEnded, bool bCleanupResources);
62
63private:
69 void OnAudioIOStatusChanged_Implementation(bool bIsActive, FIntPoint IOId) override;
70
77 void OnFrequencyBandsReady_Implementation(const TArray<float>& FrequencyBands, int32 NumFrequencyBands, FIntPoint IOId) override;
78
84 void OnAmplitudesReady_Implementation(const TArray<float>& Amplitudes, FIntPoint IOId) override;
85
91 void OnPitchesReady_Implementation(const TArray<float>& Pitches, FIntPoint IOId) override;
92
99 virtual void OnBeatDetected_Implementation(const TArray<float>& Beats, const TArray<bool>& BeatDetectedForChannel, FIntPoint IOId) override;
100
104 void Register();
105
109 void Deregister();
110};
111
112inline TSharedPtr<class FST_AudioSceneViewExtension> UST_AudioScene::GetSceneViewExtension() const
113{
114 return ViewExtension;
115}
Interface for handling audio processing events.
Definition ST_AudioProcessingInterface.h:30
Audio scene subsystem that manages audio processing and scene view extensions. This class is responsi...
Definition ST_AudioScene.h:16
virtual void Deinitialize() override
Definition ST_AudioScene.cpp:33
TSharedPtr< class FST_AudioSceneViewExtension > GetSceneViewExtension() const
Definition ST_AudioScene.h:112
void HandlePostWorldInit(UWorld *World, const UWorld::InitializationValues IVS)
Definition ST_AudioScene.cpp:46
virtual void Initialize(FSubsystemCollectionBase &Collection) override
Definition ST_AudioScene.cpp:12
void HandleWorldEndPlay(UWorld *World, bool bSessionEnded, bool bCleanupResources)
Definition ST_AudioScene.cpp:54
TSharedPtr< class FST_AudioSceneViewExtension, ESPMode::ThreadSafe > ViewExtension
Definition ST_AudioScene.h:46