VJ Master

Get To Know The Plugin

VJ master is an AIO toolkit for audio analysis, control and visualisation.

It is a UE5 plugin, packed with custom material expressions, niagara data interfaces and many examples such as a reactive boids compute shader. I have included some helpful tools for integrating common protocols such as MIDI, OSC, UDP/TCP and DMX (ArtNet, Sacn).

It is industry-proven, currently running in a permanent art installation in Germany.

After trying a handful of marketplace plugins for different installations, I kept finding gaps. So I built this to finally have something that worked the way I needed.

Decide If It Is For You

You would need at least an intermediate proficiency in UE5 for this plugin to be useful to you.

From blueprints, you can hook into the output of the analysis through an interface without going near the backend.

All algorithms are written in C++ but are totally configurable from the project settings. However, if you were to change how the analysis is carried out or to extend it with your own algorithms then you will need to write code.

Code comments, plugin documentation and plugin support are in English language.

Features

f

Audio Control

DMX (ArtNet)
Material To DMX

MIDI
Easy-to-use interfaces that combine both Sending and Receiving

OSC
Material To OSC

Socket
Material To UDP/TCP
RenderTarget To UDP/TCP

Extends Engine Plugins
DMXEngine + DMXProtocol + DMXFixtures MIDIDevice
OSC

Audio Processing

Audio Playback via MiniAudio

Audio Capture via MiniAudio

Windowing

FFT via KISS FFT

Smoothing

Spectrum Analysis
Frequency Bands
Amplitude
Pitch
Beat Tracking

Supports
USoundWaveProcedural
Multichannel Analysis

Audio Visualisation

Materials
Custom Material Nodes (query the audio buffer)
MIDI Reactive Material Example

Compute Shaders
Reactive Boids Example (rendered via Niagara)

Niagara
Frequency Bands Vis Example
Amplitudes Vis Example
Pitches Vis Example
Spectrogram Vis Example
Beat Tracking Vis Example

Niagara Data Interfaces
Audio Buffer
Waveform Colour Profiles

Sales Pitch

N

Fast & Reliable

It is currently running in a permanent art installation in Germany. It is designed to jumpstart your reactive project by getting all the boring stuff out of the way so you can work on creating fun visuals.

Supports Popular Protocols

Send over DMX over Art-Net & sACN.
Send/Receive over MIDI
Send/Receive over OSC
Send/Receive over UDP & TCP

Blueprintable

It is extremely easy to set up and configure. It is written in C++. but there are plenty of blueprint-exposed functions, properties and interfaces available for you to work with.

Easy Configuration

Configuration of the audio analysis can be carried out entirely from the project settings. Each IO process can be customised separately.
You would likely need some experience with C++ to make modifications to the plugin or do a commercial project, but there is enough there if you just want to start producing some cool reactive visuals quickly.

Compute Shader Support

I have provided you with a reactive boids example for reference. You will need C++ to work with compute shaders but you now can finally start porting across all those old Unity projects.
Your visuals will be able to react against multiple IO processes.

U

Multithreaded Analysis

The FFT analysis happens inside an easy to configure FRunnable. Each IO process will run on a different thread keeping your game thread as light as possible.

Lots of Settings

Windowing

Rectangular
Hann
Hamming
BlackmanHarris
Guassian

Capture

Loopback
Microphone

Spectrum Spacing

Log
Linear
OctaveSubdivision
Quadratic

Playback

Waveform
Device Player
MA Sound Player

Filters

Butterworth
ChebyshevTypeI

Filters

Butterworth
ChebyshevTypeI

Smoothing

Exponential Moving Average
Simple Moving Average

Sample Formats

U8
S16
S24
S32
F32

Mission Statement

I want to provide you with a product you can enjoy working with and rely on to deliver your reactive projects.

Therefore, it is my priority to ensure that the plugin is stable and to be upfront and honest about the product’s capabilities and, more importantly, limitations.

Caveats

Platform Restrictions

VJ Master was coded for and QA’d only on Windows 11 (64 bit).

All other platforms are not supported.

In theory, Linux should work but it has not been tested; if it doesn’t work, I would imagine it would not be difficult to fix it.

macOS, Android and iOS will likely not compile. I will not be touching these platforms anytime soon.

Post Processing Materials Not Supported

The material expressions that I have created sample the audio buffer using the Scene View Extension. The Scene View is not available in post processing or anything outside the usual scene rendering. Things like DrawMaterialToRenderTarget are also affected.

Sound Wave Procedural Formats

This is more a note, than a caveat but Unreal’s old audio engine only supports int16 formats, however, float buffers are supported if using the audio mixer. Therefore, I support only s16 and f32 audio formats. All other formats are ignored.

Playback & Capture Limits

I support having multiple playback and captures at the same time, providing they are all of different sources.

For example, you can capture microphone and capture loopback at the same time. You cannot capture more than one microphone at a time.

WASAPI Only Loopback

Miniaudio provides loopback support on Windows but is limited to WASAPI only. This means the device must be [System Default] and cannot be overwritten with specific device names like the other IO methods.

Roadmap

Backlog

Compute Audio Buffer improvements

Improvement

I am unhappy with how I am setting the audio buffers onto the compute shader. I rushed to get this feature out for release but will iterate on it before the next release.

Remove Playback & Capture Limits

Improvement

See the corresponding caveat. I will solve this.

Improve Beat Detection

Improvement

Beat detection is currently very primitive and ideally, the beat should be detected on the audio thread.

InProgress

Done

Split Analysis By Channel

Improvement

The current analysis averages all channels. I want to provide the additional option to split this output per channel.

Release 1.1

Reactive MA Engine Playback

Feature

Added audio processing for MA Engine Playback.

MA PlaybackEngine is a lightweight player.

Currently choosing the Playback Engine I/O only plays audio and does not perform any processing. Therefore, no visualiser will react to it.

Release 1.1

More Playback Waves

Feature

There is currently a sine wave. I would like to extend this with more options.

Release 1.1

Sound Wave Procedural

Feature

Pass audio buffer into sound wave procedural to utilise native audio capabilities.

Release 1.1

Release Notes

Version 1.1 (15/05/2025)

Feature | MultiChannel Analysis
Feature | Reactive MA Engine Playback
Feature | More Playback Waves
Feature | USoundWaveProcedural Support
BugFix | Fixed Broken Microphone Capture
BugFix | Fixed Broken Capture Formats.
Improvement | General Refactor
Supports: UE 5.5.x

Version 1.0 (28/04/2025)

The beginning of Time.
Supports: UE 5.5.x