VJ Master API

Developer API

I have done my best to document all classes, structs, enums and interfaces. I used the help of an A.I. but manually correctly those there were blatantly incorrect. I am updating ambiguous briefs as I go along.

I have not documented the editor module as it only provides some cool editor tricks that should not affect your project. For example, add a ShaderTech details panel category.

As I continue to work inside of VJ Master, class names and functions may change in the future. This can be due to bug fixes, new features or updating to new engine versions.

Intro To The Audio IO Buffer

What? An “Audio IO Buffer” is created for each reactive item that wants to sample the audio IOs on the GPU. In the vanilla plugin it can be seen used in material expressions, the compute shader example and the niagara buffer example.

The buffer consists of 12 integers for each IO.

Why? I wanted reactive elements to be able to sample multiple IOs. This is done through keeping indexes for the IOs that are registered/deregistered.

Working With The Audio IO Buffer

Let’s say you have registered 2 IOs.

24 = 2 * 12

Index 0 – 11 represents IO 1.
Index 12 – 23 represents IO 2

Index 3 represents NumFrequencyBands of IO 1
Index 14 represents NumFrequencyBands of IO 2

Audio IO Buffer Formula

The buffer consists of 12 items for each IO.

Total Buffer Length = Number of IOs * Number of items,

Audio IO Buffer Items

AudioIO_Items 12

AudioIO_Items_Active 0
AudioIO_Items_Order 1
AudioIO_Items_NumChannels 2
AudioIO_Items_NumFrequencyBands 3
AudioIO_Items_FrequencyBandHistorySize 4
AudioIO_Items_FrequencyBandsStartIndex 5
AudioIO_Items_AmpltitudeHistorySize 6
AudioIO_Items_AmplitudesStartIndex 7
AudioIO_Items_PitchHistorySize 8
AudioIO_Items_PitchesStartIndex 9
AudioIO_Items_BeatHistorySize 10
AudioIO_Items_BeatsStartIndex 11