Skip to main content

API


Setup


Free Engine

  • Summary: Free the engine instance
  • Inputs:
    • none
  • Outputs:
    • none
  • Example:
    FreeEngine

Initialize Engine

  • Summary: Initialize the engine instance
  • Inputs:
    • none
  • Outputs:
    • Return Value bool
  • Example:
    InitializeEngine

Init Audio

  • Summary: Initialize the given audio settings for the engine instance
  • Inputs:
    • Sample Rate float
    • Buffer Size float
  • Outputs:
    • none
  • Example:
    InitAudio

Load All Bundles

  • Summary: Loads all content in all bundles.
  • Inputs:
    • Threading Mode enum ThreadingMode { GameThreadSynchronous, PooledThreadAsync }
  • Outputs:
    • Error String string Msg
  • Example:
    LoadAllBundles

Load Bundle Data Asset

  • Summary: Loads all content in a specific Bundles.
  • Inputs:
    • Bundle UReactionalBundle The Bundle Data Asset to Load
    • Threading Mode enum ThreadingMode { GameThreadSynchronous, PooledThreadAsync }
  • Outputs:
    • Error String string Msg
  • Example:
    LoadBundle

Load Section Data Asset

  • Summary: Loads all assets of the given Section
  • Inputs:
    • Section UReactionalSection The Section Data Asset to Load
    • Threading Mode enum ThreadingMode { GameThreadSynchronous, PooledThreadAsync }
  • Outputs:
    • Error String string Msg
  • Example:
    LoadSection

Load Theme Data Asset

  • Summary: Loads all the assets of the given Theme
  • Inputs:
    • Theme UReactionalThemeInfo The Theme Data Asset to Load
    • Threading Mode enum ThreadingMode { GameThreadSynchronous, PooledThreadAsync }
  • Outputs:
    • Error String string Msg
  • Example:
    LoadTheme

Load Playlist Data Asset

  • Summary: Loads all the assets of the given Playlist
  • Inputs:
    • Playlist UReactionalPlaylist The Playlist Data Asset to Load
    • Threading Mode enum ThreadingMode { GameThreadSynchronous, PooledThreadAsync }
  • Outputs:
    • Error String string Msg
  • Example:
    LoadPlaylist

Load Track Data Asset

  • Summary: Loads the specified Track
  • Inputs:
    • Track UReactionalTrackInfo The Track Data Asset to Load
    • Threading Mode enum ThreadingMode { GameThreadSynchronous, PooledThreadAsync }
  • Outputs:
    • Error String string Msg
  • Example:
    LoadTrack

Load Track From Bytes

  • Summary: Loads the specified track from raw bytes.
  • Inputs:
    • TrackData const TArray<uint8>& Data of a Track
    • TrackMetadata const TArray<uint8>& Metadata of a Track
    • Threading Mode enum ThreadingMode { GameThreadSynchronous, PooledThreadAsync }
  • Outputs:
    • Error String string Msg
  • Example:
    LoadTrackFromBytes

Unload Asset

  • Summary: Unload a Track or Theme from the Engine, freeing its resources.
  • Inputs:
    • Asset Type enum AssetType { Track, Theme }
    • Id int TrackID or ThemeID
  • Outputs:
    • none
  • Example:
    UnloadAsset

Unload Bundle

  • Summary: Unload a Bundle: all its Sections, Themes, Playlist and Tracks from Engine, Freeing its Resources
  • Inputs:
    • Bundle UReactionalBundle The Bundle Data Asset to Unload
  • Outputs:
    • none
  • Example:
    UnloadBundle

Unload Section

  • Summary: Unload a Section: and its Theme, Playlists and Tracks in a Bundle from the engine, freeing its resources.
  • Inputs:
    • Section UReactionalSection The Section Data Asset to Unload
  • Outputs:
    • none
  • Example:
    UnloadSection

Unload Theme

  • Summary: Unload specific Theme in a Bundle from the Engine, Freeing its Resources
  • Inputs:
    • Theme UReactionalThemeInfo The Theme Data Asset to Unload
  • Outputs:
    • none
  • Example:
    UnloadTheme

Unload All Themes

  • Summary: Unload all Themes in the engine, freeing its Resources
  • Inputs:
    • none
  • Outputs:
    • none
  • Example:
    UnloadAllThemes

Unload Playlist

  • Summary: Unload a Playlist: and its Tracks in a Bundle from the Engine, Freeing its Resources
  • Inputs:
    • Theme UReactionalPlaylist The Playlist Data Asset to Unload
  • Outputs:
    • none
  • Example:
    UnloadPlaylist

Unload Track

  • Summary: Unload specific Track: from the Playlist, in a Bundle in the Engine, Freeing its Resources
  • Inputs:
    • Theme UReactionalTrackInfo The Track Data Asset to Unload
  • Outputs:
    • none
  • Example:
    UnloadTrack

Unload All Tracks

  • Summary: Unload all Tracks in the engine, freeing its Resources.
  • Inputs:
    • none
  • Outputs:
    • none
  • Example:
    RemoveAsset

Set Allow Play

  • Summary: Set if Engine is Allowed to play. When true, the system is allowed to Process and Play audio. When false, the system is halted and no audio is played.
  • Inputs:
    • bAllowPlay bool
  • Outputs:
    • none
  • Example: SetAllowPlay

Get Allow Play

  • Summary: Returns the state if Engine is Allowed to Play.
  • Inputs:
    • none
  • Outputs:
    • bAllowPlay bool
  • Example: GetAllowPlay

Get Project Bundles

  • Summary: Gets the BundleInfo of all the bundles set in settings and added to your project.
  • Inputs:
    • none
  • Outputs:
    • TArray&lt;FReactionalBundle&gt; OutBundleInfo;
  • Example: GetBPM

Get BundleInfo

  • Summary: Extracts and exposes individual data assets from the given Reactional Bundle Data Asset.
  • Output pins are generated automatically based on the selected Bundle and Option
  • Changing the BundleOptions dropdown dynamically updates which pins are shown
  • Each output pin contains a direct reference to the data asset, and all its underlying data
  • Inputs:
    • UReactionalBundle* Bundle - The Reactional Bundle data asset to extract information from
    • EReactionalNodeOption BundleOptions - The type of data to expose as output pins:
      • Bundle: The bundle itself
      • Sections: All sections within the bundle
      • Themes: All themes across all sections
      • Playlists: All playlists across all sections
      • Tracks: All individual tracks from all playlists
  • Outputs:
    • Dynamic Pins: One output pin per item, named after the item. Each pin provides a typed reference to the corresponding data asset. (UReactionalBundle*, UReactionalSection*, UReactionalThemeInfo*, UReactionalPlaylist*, or UReactionalTrackInfo* depending on the selected option).
  • Example: GetBPM

Playback


Playlist

Get Current Beat

  • Summary: Gets the current beat from the beat-clock.
  • Inputs:
    • none
  • Outputs:
    • Return Value float
  • Example:
    GetCurrentBeat

Get BPM

  • Summary: Gets the tempo of the current track in beats per minute.
  • Inputs:
    • none
  • Outputs:
    • Return Value float
  • Example:
    GetBPM

Get Track

  • Summary: Gets the currently loaded tracks index.
  • Inputs:
    • none
  • Outputs:
    • Return Value int
  • Example:
    GetTrack

Get Track ID

  • Summary: Gets the currently loaded tracks id in the engine.
  • Inputs:
    • none
  • Outputs:
    • Return Value int
  • Example:
    GetTrackID

Get Current Track Info

  • Summary: Gets the track info struct for the currently loaded track.
  • Inputs:
    • none
  • Outputs:
    • Out Track Info FReactionalTrackInfo
    • Return Value bool
  • Example:
    GetCurrentTrackInfo

Is Loaded

  • Summary: Checks if a Playlist/Tracks is loaded in the engine.
  • Inputs:
    • none
  • Outputs:
    • Return Value bool
  • Example:
    IsLoaded

Play

  • Summary: Starts playback of the first loaded track.
  • Inputs:
    • Fade In Time float
  • Outputs:
    • none
  • Example:
    Play

Play Track by Index

  • Summary: Plays the loaded track with the corresponding index if it exists. Fading from the previous one if requested.
  • Inputs:
    • Track Index int
    • Fade Out Time float
    • Fade In Time float
  • Outputs:
    • none
  • Example:
    PlayTrackByIndex

Play Track by ID

  • Summary: Play a track based on the music system assigned ID.
  • Inputs:
    • Track TrackID int
    • Fade Out Time float
    • Fade In Time float
  • Outputs:
    • none
  • Example:
    PlayTrackByIndex

Play Track by Name

  • Summary: Plays the loaded track with the corresponding name if it exists. Fading from the previous one if requested.
  • Inputs:
    • Track Name FString
    • Fade Out Time float
    • Fade In Time float
  • Outputs:
    • none
  • Example:
    PlayTrackByName

Play Track by Track Info

  • Summary: Plays the loaded track with the corresponding track info if it exists. Fading from the previous one if requested.
  • Inputs:
    • Track Info FReactionalTrackInfo
    • Fade Out Time float
    • Fade In Time float
  • Outputs:
    • none
  • Example:
    PlayTrackByTrackInfo

Next

  • Summary: Plays the next track. Fading out and in if requested.
  • Inputs:
    • Fade Out Time float
    • Fade In Time float
  • Outputs:
    • none
  • Example:
    Next

Prev

  • Summary: Plays the previous track. Fading out and in if requested.
  • Inputs:
    • Fade Out Time float
    • Fade In Time float
  • Outputs:
    • none
  • Example:
    Prev

Random

  • Summary: Plays a randomly selected loaded track. Fading from the previous one if requested.
  • Inputs:
    • Fade Out Time float
    • Fade In Time float
  • Outputs:
    • none
  • Example:
    Random

Stop

  • Summary: Gets the current state of the playlist.
  • Inputs:
    • Fade Out Time float
  • Outputs:
    • none
  • Example:
    Stop

State

  • Summary: Gets the current state of the playlist.
  • 0 = Stopped
  • 1 = Playing
  • 2 = Paused
  • Inputs:
  • none
  • Outputs:
  • Return Value int
  • Example:
    State

Fade

  • Summary: Fades the volume of the playlist to the target amp over the fade time.
    The track will also stop playback once target is reached when Stop Finish is true.
  • Inputs:
    • Target float
    • Fade Time float
    • Offset float
    • Stop Finish bool
  • Outputs:
    • none
  • Example:
    Fade

Skip To Percentage

  • Summary: Skips to the closest bar offset based on a percentage of the track length.
  • Inputs:
    • Percentage float (The percentage of the track length to skip to (0-100))
  • Outputs:
    • NoN
  • Example: SkipToPercentage

Skip To Bar

  • Summary: Skips playback to a specific bar in the current track.
  • Inputs:
    • NoN
  • Outputs:
    • Bar int
  • Example: SkipToBar

Skip To Part

  • Summary: Skips to a specific part in the track if available.
  • Inputs:
    • NoN
  • Outputs:
    • Part int
  • Example: SkipToPart

Get Num Bars

  • Summary: Retrieves the numbers of all the bars in the loaded Track.
  • Inputs:
    • none
  • Outputs:
    • Return Value int Number of Bars
  • Example:
    GetNumBars

Get Current Bar

  • Summary: Retrieves the Current bars in the Loaded Track.
  • Inputs:
    • none
  • Outputs:
    • Return Value int Current Bar
  • Example:
    GetCurrentBar

Get Bar Offset

  • Summary: Retrieves the Offset of the bar in the Loaded Track.
  • Inputs:
    • Current Bar int
  • Outputs:
    • Return Value float Bar Offset
  • Example:
    GetBarDuration

Get Bar Duration

  • Summary: Retrieves the duration of the bar in the Loaded Track.
  • Inputs:
    • Current Bar int
  • Outputs:
  • Return Value float Bar Duration
  • Example:
    GetBarDuration

Get Num Tracks

  • Summary: Retrieves the Number of all the Tracks in the Loaded Playlist
  • Inputs:
    • none
  • Outputs:
    • Return Value int
  • Example:
    GetNumTracks

Set Track

  • Summary: Sets the currently selected track by engine id, can be used to set which track to play prior to playback.
  • Inputs:
    • Id int
  • Outputs:
    • none
  • Example:
    SetTrack

Unset Track

  • Summary: Sets the currently selected track to none.
  • Inputs:
    • none
  • Outputs:
    • none
  • Example:
    UnsetTrack

Get Volume

  • Summary: Gets the current volume for the playlist.
  • Inputs:
    • none
  • Outputs:
    • Return Value float
  • Example:
    GetVolume

Set Volume

  • Summary: Sets the volume of the playlist.
  • Inputs:
    • Value float
  • Outputs:
    • none
  • Example:
    SetVolume

Theme

Get Current Beat

  • Summary: Gets the current beat from the beat-clock.
  • Inputs:
    • none
  • Outputs:
    • Return Value float
  • Example:
    BeatsToSeconds

Get BPM

  • Summary: Gets the tempo of the current Theme in beats per minute.
  • Inputs:
    • none
  • Outputs:
    • Return Value float
  • Example:
    GetBPM

Get ID

  • Summary: Gets the loaded theme id from the engine.
  • Inputs:
    • none
  • Outputs:
  • Return Value int
  • Example:
    GetID

Get Current Theme Info

  • Summary: Gets the theme info struct for the currently loaded theme.
  • Inputs:
    • none
  • Outputs:
    • Out Track Info FReactionalThemeInfo
  • Return Value bool
  • Example:
    GetCurrentTrackInfo

Is Loaded

  • Summary: Checks if a Theme is loaded.
  • Inputs:
    • none
  • Outputs:
    • Return Value bool
  • Example:
    IsLoaded

Play

  • Summary: Starts playback of the set theme.
  • Inputs:
    • none
  • Outputs:
    • none
  • Example:
    Play

Reset

  • Summary: Resets the currently loaded theme.
  • Inputs:
    • none
  • Outputs:
    • none
  • Example:
    Reset

Stop

  • Summary: Stops playback of the theme.
  • Inputs:
    • none
  • Outputs:
  • none
  • Example:
    Stop

State

  • Summary: Gets the current state of the theme.
  • 0 = Stopped
  • 1 = Playing
  • 2 = Paused
  • Inputs:
    • none
  • Outputs:
    • Return Value int
  • Example:
    State

Fade

  • Summary: Fades the volume of the theme to the target amp over the fade time.
    The theme will also stop playback once target is reached when Stop Finish is true.
  • Inputs:
    • Target float
    • Fade Time float
    • Offset float
    • Stop Finish bool
  • Outputs:
    • none
  • Example:
    Fade

Get Controls

  • Summary: Gets all controls from the current theme.
  • Inputs:
    • none
  • Outputs:
    • Out TMap&lt;FString , FReactionalControlInfo&gt;
  • Example:
    GetControls

Set Control

  • Summary: Sets the value of one of the controls in the theme.
  • Inputs:
    • Control Name FString
  • Value float
  • Outputs:
    • none
  • Example:
    SetControl

Get Num Parts

  • Summary: Retrieves the Number of all the Parts in the Loaded Theme
  • Inputs:
    • none
  • Outputs:
    • Return Value int Number of Parts
  • Example:
    GetNumParts

Get Current Part

  • Summary: Gets the Current active Part in the Loaded Part
  • Inputs:
    • none
  • Outputs:
    • Return Value int Current Part or -1 if no part was found
  • Example:
    GetCurrentPart

Get Part Name

  • Summary: Retrieves the Name of the Part in the Loaded Theme
  • Inputs:
    • Part int
  • Outputs:
    • Return Value FString Part Name
  • Example:
    GetPartName

Get Part Offset

  • Summary: Retrieves the Offset of the Part in the Loaded Theme
  • Inputs:
    • Part int
  • Outputs:
    • Return Value float Part Offset
  • Example:
    GetPartOffset

Get Part Duration

  • Summary: Retrieves the Duration of the part in the Loaded Theme
  • Inputs:
    • Part int
  • Outputs:
    • Return Value floatPart Duration
  • Example:
    GetPartDuration

Get Num Bars

  • Summary: Retrieves the Numbers of all the bars in the Loaded Theme.
  • Inputs:
    • none
  • Outputs:
    • Return Value int Number of Bars
  • Example:
    GetNumBars

Get Current Bar

  • Summary:Retrieves the current bars in the Loaded Theme.
  • Inputs:
    • none
  • Outputs:
    • Return Value int Current Bar
  • Example:
    GetCurrentBar

Get Bar Offset

  • Summary: Retrieves the Offset of the bar in the Loaded Theme.
  • Inputs:
    • Current Bar int
  • Outputs:
    • Return Value float Bar Offset
  • Example:
    GetBarDuration

Get Bar Duration

  • Summary: Retrives the Duration of the bar in the Loaded Theme.
  • Inputs:
    • Current Bar int
  • Outputs:
    • Return Value float Bar Duration
  • Example:
    GetBarDuration

Get Control

  • Summary: Gets the requested control from the current theme.
  • Inputs:
    • Control Name FString
  • Outputs:
    • Return Value float
  • Example:
    GetControl

Trigger Stinger Float

  • Summary: Triggers the given state in the theme.
  • Inputs:
    • State Name FString
    • Value float
  • Outputs:
    • none
  • Example:
    TriggerStingerFloat

Trigger Stinger Quant

  • Summary: Triggers the given state in the theme.
  • Inputs:
    • State Name FString
    • Quant EReactionalQuantizationValue
  • Outputs:
  • none
  • Example:
    TriggerStingerQuant

Trigger Part Quant

  • Summary: Triggers a Part by name, in the current theme with EReactionalQuantizationValue.
  • Inputs:
    • Part Name FString the name of the state
    • Quant EReactionalQuantizationValue The quantization value as an enum.
  • Outputs:
    • none
  • Example:
    TriggerPartQuant

Trigger Part Float

  • Summary: Triggers a Part by name, in the current theme, with quantization as a float value in Range of 0 - 0.33.
  • Inputs:
    • Part Name FString The name of the state.
    • Value Float The quantization value as a float: 0-0.33.
  • Outputs:
    • none
  • Example:
    TriggerPartFloat

Instrument Override

  • Summary: Overrides the instrument settings for the theme.
  • Inputs:
    • Instrument Name FString
    • Pulse Rate float
    • Pitch float
    • Velocity float
    • Active bool
    • Legato float
  • Outputs:
    • none
  • Example:
    InsturmentOverride

Get Overridable Instruments

  • Summary: Gets the list of overridable instruments for the current theme.
  • Inputs:
    • none
  • Outputs:
    • Out TArray&lt;FString&gt;
  • Example:
    GetOverridableInsturments

Get Theme

  • Summary: Gets the ID of the currently active theme in the engine.
  • Inputs:
    • none
  • Outputs:
    • Return Value int
  • Example:
    GetTheme

Set Theme

  • Summary: Sets the currently set theme to the one corresponding to the id.
    • Note: The theme needs to be loaded in prior.
  • Inputs:
    • Id int
  • Outputs:
    • none
  • Example:
    SetTheme

Unset Theme

  • Summary: Removes the active theme from the engine without unloading it from memory.
  • Inputs:
    • none
  • Outputs:
    • none
  • Example:
    UnsetTheme

Get Volume

  • Summary: Gets the currently set theme volume.
  • Inputs:
    • none
  • Outputs:
    • Return Value float
  • Example:
    GetVolume

Set Volume

  • Summary: Sets the volume of the theme.
  • Inputs:
    • Value float
  • Outputs:
    • none
  • Example:
    SetVolume

Music System


Schedule Audio

  • Summary: Schedules sound to play on a beat according to set quantized value.
  • Inputs:
    • Sound USoundBase
    • Quant float
    • Time Offset float
  • Outputs:
    • none
  • Example:
    BeatsToSeconds

Get Time To Beat

  • Summary: Gets the time remaining until the next beat from set quantized value.
  • Inputs:
    • Quant float
    • Offset float
    • Theme bool
  • Outputs: x
  • Example:
    BeatsToSeconds

Get Real Time To Beat

  • Summary: Gets the time remaining in seconds until the next beat from set quantized value.
  • Inputs:
    • Quant float
  • Outputs:
    • Return Value float
  • Example:
    BeatsToSeconds

Get Next Beat

  • Summary: Gets the next beat from the set quantization value.
  • Inputs:
    • Quant float
    • Offset float
    • Theme bool
  • Outputs:
    • Return Value float
  • Example:
    BeatsToSeconds

Get Next Beat Absolute

  • Summary: Gets the next microbeat from the set quantization value.
  • Inputs:
    • Quant float
    • Offset float
    • Theme bool
  • Outputs:
    • Return Value int64
  • Example:
    BeatsToSeconds

Get Current Beat

  • Summary: Gets the current beat from the beat-clock.
  • Inputs:
    • none
  • Outputs:
    • Return Value float
  • Example:
    BeatsToSeconds

Get Current Micro Beat

  • Summary: Gets the current microbeat from the beat-clock.
  • Inputs:
    • none
  • Outputs:
    • Return Value float
  • Example:
    BeatsToSeconds

Get BPM

  • Summary: Gets beats per minute of the playing track or theme.
  • Inputs:
    • none
  • Outputs:
    • Return Value float
  • Example:
    BeatsToSeconds

Beats to Seconds

  • Summary: Converts beats to seconds in the engine.
  • Inputs:
    • Beats float
  • Outputs:
    • Return Value float
  • Example:
    BeatsToSeconds

Get Current Scale

  • Summary: The current scale as an FString or float[]
  • Outputs:
    • Return Value FString The current scale as a comma-separated string
    • Return Value float[] The current scale as an array of floats
  • Example:
    GetCurrentScale

Get Current Root

  • Summary: Gets the current root note of the current scale or chord.
  • Outputs:
    • Return Value int The current root note as an integer.
  • Example:
    GetCurrentRoot

Pitch To Note Name

  • Summary: Uses modulo 12 to map the pitch into one octave (C, C#, D, ..., B).
  • Inputs:
    • Pitch int32
  • Outputs:
    • Return Value FString
  • Example:
    PitchToNoteName

Duck Music

  • Summary: Ducks the music to the desired Amp value.
  • Inputs:
    • Amp float
  • Outputs:
    • Return Value float
    • Example:
      BeatsToSeconds

TogglePause

  • Summary: Toggle pause of system playback.
  • Inputs:
    • none
  • Outputs:
    • Return Value bool
  • Example:
    TogglePause

Wait For Next Beat

  • Summary: Delay until next desired beat.
  • Inputs:
    • Beats float
    • Offset float
  • Outputs:
    • none
  • Example:
    BeatsToSeconds

Subscribe to Quantization Event

  • Summary: Binds an event to a quantized value which will trigger during playback.
  • Inputs:
    • Quant float
    • OnQuantizationEvent const FReactionalQuantizationEvent&
  • Outputs:
    • none
  • Example:
    BeatsToSeconds

Services


Remote

Initialize

  • Summary: Initializes the client to the backend, registering a new client if no id or secret has been passed to the function.
  • Inputs:
    • ClientId const FString&
    • ClientSecret const FString&
  • Outputs:
    • Return Value UReactionalRemoteInitializeAsync*
  • Example:
    RemoteInitialize

Fetch Track

  • Summary: Fetches a FReactionalTrackPayload corresponding to the given track. When not providing a users CountryCode only tracks with worldwide access will be parsed.
  • Inputs:
    • TrackId const FString&
    • CountryCode const FString&
    • bIsHash bool
  • Outputs:
    • Return Value UReactionalRemoteFetchTrackAsync*
  • Example:
    RemoteFetchTrack

Fetch Track Array

  • Summary: Fetches an array of FReactionalTrackPayload corresponding to the given tracks. When not providing a users CountryCode only tracks with worldwide access will be parsed.
  • Inputs:
    • TrackIds const TArray<FString>&
    • CountryCode const FString&
    • bIsHash bool
  • Outputs:
    • Return Value UReactionalRemoteFetchTracksAsync*
  • Example:
    RemoteFetchTrack

Fetch Playlist

  • Summary: Fetches a FReactionalPlaylistPayload corresponding to the given playlist id. When not providing a users CountryCode only tracks with worldwide access will be parsed.
  • Inputs:
    • PlaylistId const FString&
    • CountryCode const FString&
  • Outputs:
    • Return Value UReactionalRemoteFetchPlaylistAsync*
  • Example:
    RemoteFetchTrack

Fetch Playlist Page

  • Summary: Fetches a FReactionalPlaylistPage with Limit amount of FReactionalPlaylistPayload items. This can be repeated when a page contains a nextUrl link. Make sure to take the Offset into account for subsequent calls. When not providing a users CountryCode only tracks with worldwide access will be parsed.
  • Inputs:
    • ProjectId const FString&
    • Limit const int32
    • Offset const int32
    • CountryCode const FString&
  • Outputs:
    • Return Value UReactionalRemoteFetchPlaylistPageAsync*
  • Example:
    RemoteFetchPlaylistPage

Fetch Track Data

  • Summary: Fetches a FReactionalTrackDownloadData corresponding to the given Track. When not providing a users countryCode only tracks with worldwide access will be parsed.
  • Inputs:
    • TrackId const FString&
    • CountryCode const FString&
  • Outputs:
    • Return Value UReactionalRemoteFetchTrackDataAsync*
  • Example:
    RemoteFetchTrackData

Fetch Entitlements

  • Summary: Fetches all of a clients previous purchases as an array of FReactionalEntitlementsPayload.
  • Inputs:
    • none
  • Outputs:
    • Return Value UReactionalRemoteFetchEntitlementsAsync*
  • Example:
    RemoteFetchTrack

Events


Via the Subsystem you have the opportunity to subscribe to delegates functions, that will trigger on events. This has an added benefit in that we can listen in on said communication, and also communicate directly with the various features, as a sort of low level API. The most common use case would be to listen for "noteon", and "noteoff" messages generated by the engine.

On Audio Start

  • Summary: Fires when playback starts.
  • Outputs:
    • none
  • Example: OnAudioStart

On Audio End

  • Summary: Fires when playback stops, this would fire at the end of a track.
  • Outputs:
    • none
  • Example: OnAudioEnd

On Note On

  • Summary: Fires every time a note is played by the current theme.
  • Outputs:
    • Offset float
    • Sink int
    • Lane int
    • Pitch float
    • Velocity float
  • Example: OnNoteOn

On Note Off

  • Summary: Fires every time a note ends in the current theme.
  • Outputs:
    • Offset float
    • Sink int
    • Lane int
    • Pitch float
    • Velocity float
  • Example: OnNoteOff

On Part

  • Summary: Fires when a new part section starts, this is normally every bar even when no part change has happened.
  • Outputs:
    • Offset float
    • Sink int
    • Lane int
    • Part Index int
  • Example: OnPart

On Bar Beat Event

  • Summary: Fires every beat during playback.
  • Outputs:
    • Offset float
    • Bar int
    • Beat int
  • Example: OnBarBeatEvent

Structs


Reactional Bundle

  • FString Name;
  • bool bAutoload;
  • FString Path;
  • TArray&lt;FReactionalSection&gt; Sections;

Reactional Section

  • FString Name;
  • TArray&lt;FReactionalThemeInfo Themes;
  • TArray&lt;FReactionalPlaylist&gt; Playlists;
  • UReactionalBundle ParentBundle:

ThemeInfo

  • FString Name;
  • int ID;
  • FString Artist;
  • FString Album;
  • FString Genre;
  • FString Cover;
  • FString BPM;
  • int Duration;
  • float Time;
  • FString Hash;
  • FString BundleID;
  • TArray&lt;FString&gt; macros;
  • TArray&lt;FString&gt; parts;
  • TArray&lt;FString&gt; stingers;
  • TArray&lt;FString&gt; overridableInstruments;
  • TArray&lt;FReactionalPreformerInfo&gt; preformerRoutings;
  • UReactionalSection ParentSection;

Reactional Playlist

  • FString Name;
  • TArray&lt;FReactionalTrackInfo&gt; Tracks;
  • UReactionalSection ParentSection;

TrackInfo

  • FString Name;
  • int ID;
  • FString Artist;
  • FString Album;
  • FString Genre;
  • FString Cover;
  • FString BPM;
  • FReactionalTimeSignature TimeSignature
  • int Duration;
  • float Time;
  • ``FString Hash;
  • FString BundleID;
  • UReactionalPlaylist ParentPlaylist;

TimeSignature

  • int numerator;
  • int denominator;

ReactionalPerformerInfo

  • Fstring Name;
  • int LaneIndex -1
  • TArray&lt;int&gt; SinkIndices;

Components


Get Audio Component

  • Summary: Get the internal audio component
  • Inputs:
    • Target UReactionalSubsystem
  • Outputs:
    • Return Value UAudioComponent
  • Example: GetAudioComponent

Get Synth Component

  • Summary: Get the internal synth component used in the Synth Component Audio Render Mode.
  • Inputs:
    • Target UReactionalSubsystem
  • Outputs:
    • Return Value USynthComponent
  • Example: GetSynthComponent

Metasounds


RenderAudioStereo

  • Summary: Render Audio Sterio Buffer from the Reactional Engine
  • Inputs: none
  • Outputs:
  • Out Left Audio Audio
  • Out Right Audio Audio
  • Example:
    GetSynthComponent

EventNoteOnTriggerV2

  • Summary: Event Callback from the Reactional Engine. Invoked when a "noteon" message is received from the Reactional Engine. This callback processes note-on events, providing details such as the event offset, sink index, lane index, pitch, and velocity.
  • Inputs:
    • Sink Equal To Int32
    • Outputs:
    • OnNoteOn Trigger
    • Offset TArray<float>
    • Sink TArray<Int32>
    • Lane TArray<Int32>
    • Pitch TArray<float>
    • Velocity TArray<float>
    • Beat float
    • Event Notes Num Int32
  • Example:
    GetSynthComponent

EventNoteOffTriggerV2

  • Summary: Event Callback from the Reactional Engine. Invoked when a "noteoff" message is received from the Reactional Engine. This callback processes note-off events, providing details such as the event offset, sink index, lane index, pitch, and velocity.
  • Inputs:
    • Sink Equal To Int32
    • Outputs:
    • OnNoteOn Trigger
    • Offset TArray<float>
    • Sink TArray<Int32>
    • Lane TArray<Int32>
    • Pitch TArray<float>
    • Velocity TArray<float>
    • Beat float
    • Event Notes Num Int32
  • Example:
    GetSynthComponent

Depricated API Functions

DEPRICATED

Playlist | Get Current Track Metadata

  • Summary: Gets the currently loaded tracks metadata as a string.
  • Inputs:
  • none
  • Outputs:
  • Return Value FString
  • Example:
    //GetCurrentTrackMetadata
DEPRICATED

Load Bundle

  • Summary: Loads all content in a specific Bundles.
  • Inputs:
  • Bundle Name string The name of the Bundle to Load or if Empty, Defaults to the first Bundle in Settings
  • Threading Mode enum ThreadingMode { GameThreadSynchronous, PooledThreadAsync }
  • Outputs:
  • Error String string Msg
  • Example:
    LoadBundle
DEPRICATED

Load Section

  • Summary: Loads all assets of the given Section in a Bundle
  • Inputs:
  • Bundle Name string The name of the Bundle where the Section Lives.
  • Section Name string The name of the Section to Load
  • Threading Mode enum ThreadingMode { GameThreadSynchronous, PooledThreadAsync }
  • Outputs:
  • Error String string Msg
  • Example:
    LoadSection
DEPRICATED

Load Theme

  • Summary: Loads the specified Theme of the given Bundle
  • Inputs:
  • Bundle Name string The name of the Bundle to where the Theme Lives
  • Theme Name string The name of the Theme to Load
  • Threading Mode enum ThreadingMode { GameThreadSynchronous, PooledThreadAsync }
  • Outputs:
  • Error String string Msg
  • Example:
    LoadTheme
DEPRICATED

Load Playlist

  • Summary: Loads all Tracks of the given Playlist in a Bundle
  • Inputs:
  • Bundle Name string The name of the Bundle to where the Playlist Lives
  • Playlist Name string The name of the Playlist to Load
  • Threading Mode enum ThreadingMode { GameThreadSynchronous, PooledThreadAsync }
  • Outputs:
  • Error String string Msg
  • Example:
    LoadPlaylist
DEPRICATED

Load Track

  • Summary: Loads the specified Track of the given Bundle
  • Inputs:
  • Bundle Name string The name of the Bundle to where the Track Lives
  • Track Name string The name of the Track to Load
  • Threading Mode enum ThreadingMode { GameThreadSynchronous, PooledThreadAsync }
  • Outputs:
  • Error String string Msg
  • Example:
    LoadTrack