Navigation
API > API/Plugins > API/Plugins/HarmonixMetasound
A music source that combines an ITimeSource (providing raw time in seconds) with an ISongMapEvaluator (providing time-to-musical-position mapping).
This is the "simple" music source for non-Metasound use cases: wall clock, animation-driven, media-driven, etc. The specific time behavior is determined by which ITimeSource implementation is provided.
Transport controls delegate to the ITimeSource if it supports them (e.g., FWorldTimeSourceController has Start/Stop/Pause/Continue).
| Name | URuntimeMusicSource |
| Type | class |
| Header File | /Engine/Plugins/Runtime/Harmonix/Source/HarmonixMetasound/Public/HarmonixMetasound/MusicSource/RuntimeMusicSource.h |
| Include Path | #include "HarmonixMetasound/MusicSource/RuntimeMusicSource.h" |
Syntax
UCLASS (MinimalAPI, BlueprintType)
class URuntimeMusicSource :
public UObject ,
public IMusicSource
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → URuntimeMusicSource
Implements Interfaces
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| CachedLoopLengthMs | float | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | ||
| CachedLoopStartMs | float | Cached ms values, recomputed from bar values + song maps. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
| CurrentPos | FMidiSongPos | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | ||
| DefaultMaps | FSongMaps | Default maps used when no external maps are provided. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
| LoopNumBars | int32 | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | ||
| LoopStartBar | int32 | Loop region defined in musical time. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
| MidiFile | TWeakObjectPtr< UMidiFile > | External song maps (from MIDI file). | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
| PrevPos | FMidiSongPos | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | ||
| TimeSource | TSharedPtr< Harmonix::ITimeSource > | HarmonixMetasound/MusicSource/RuntimeMusicSource.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void ClearLoopRegion() |
Clear the loop region, disabling looping. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h |
|
TSharedPtr< Harmonix::ITimeSource > GetTimeSource() |
Get the underlying time source. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
void Initialize
(
TSharedPtr< Harmonix::ITimeSource > InTimeSource, |
Initialize this source with a time source and song maps. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
void InitializeWithMidi
(
TSharedPtr< Harmonix::ITimeSource > InTimeSource, |
Initialize from a MIDI file's song maps. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
void SetLoopRegionByBars
(
int32 StartBar, |
Set a loop region by musical time. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h |
|
Public Virtual
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void BeginDestroy() |
HarmonixMetasound/MusicSource/RuntimeMusicSource.h |
Overridden from IMusicSource
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void Continue() |
HarmonixMetasound/MusicSource/RuntimeMusicSource.h | ||
virtual float GetCurrentClockAdvanceRate() |
The current playback speed multiplier. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual const ISongMapEvaluator * GetCurrentSongMapEvaluator() |
The song maps used to convert between time and musical position. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual const FMidiSongPos & GetCurrentSongPos() |
The current musical position, updated once per frame via Update(). | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual FString GetDisplayName() |
HarmonixMetasound/MusicSource/RuntimeMusicSource.h | ||
virtual Harmonix::ESourceEvent GetLatestSourceEvent() |
Get the most recent source event for this frame (Start, Advance, Stop, Pause, Continue, Seek, Loop). | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual float GetLoopLengthMs() |
Length of the loop region in milliseconds. Only valid if IsLooping() is true. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual float GetLoopStartMs() |
Start of the loop region in milliseconds. Only valid if IsLooping() is true. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual const FMidiSongPos & GetPreviousSongPos() |
The previous frame's musical position. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual Harmonix::ESourceState GetSourceState() |
Get the current transport state of the source (Stopped, Preparing, Paused, Running). | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual bool IsLooping() |
Whether this source is currently looping. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual bool LoopedThisFrame() |
Whether the source crossed a loop boundary this frame. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual void Pause() |
HarmonixMetasound/MusicSource/RuntimeMusicSource.h | ||
virtual void Seek
(
const FMusicTimestamp& Timestamp |
Seek to a musical position. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual bool SeekedThisFrame() |
Whether the source performed a non-contiguous time jump (seek) this frame. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual void SetSpeed
(
float Speed |
Set the playback speed multiplier (1.0 = normal speed). | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual void SetTempo
(
float BPM |
Set the tempo in BPM. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual void SetTimeSignature
(
int32 Numerator, |
Set the time signature. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual void Start () |
- Transport Controls - The source owns playback. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual void Stop() |
HarmonixMetasound/MusicSource/RuntimeMusicSource.h | ||
virtual TOptional< FVector > TryGetAudioSourceLocation() |
Get the world-space location of the audio source, if available. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h | |
virtual void Update () |
Called once per frame by the update subsystem. | HarmonixMetasound/MusicSource/RuntimeMusicSource.h |