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

Noise

White
Pink
Brownian

Spectrum Spacing

Log
Linear
OctaveSubdivision
Quadratic

Playback

Waveform
Noise
Device Player
MA Sound Player

Spectrum Values

Averages
Peaks

Filters

Butterworth
ChebyshevTypeI

Waveforms

Sine
Square
Triangle
Sawtooth

Encoding Formats

WAV
Flac
MP3
Vorbis

Smoothing

Exponential Moving Average
Simple Moving Average

Sample Formats

U8
S16
S24
S32
F32

Alpha Mapping

Linear
Logarithmic
Gamme

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) and Mac OS 15.6.

All other platforms are not supported.

Mac OS does not support loopback capture.

In theory, the audio processing and audio visualisation modules should run on Linux but they have not been extensively tested as some of my Epic plugin dependancies (MIDI, im looking at you) don’t support linux; if you dont need those plugins then remove them and maybe you will get it all working.

I do not intend to touch iOS anytime soon unless there is interest.

Android and Quest VR needs some tweaking to work but has not been extensively tested. Android does not support loopback capture of audio outside the application.

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

Android (VR) Support

Improvement

Some of the Unreal dependancies cannot be built to Android. I need to make this plugin more modular.

Remove Playback & Capture Limits

Improvement

See the corresponding caveat. I will solve this.

In Progress

Vertex Factory

Feature

Create a vertex factory for the compute shader instead of using Niagara to render the particles.

On Hold

Release Notes

Version 1.5 (03/01/2026)

Improvement | Mac OS Support
Improvement | Temporal decoupling for a more predictable latency
Supports: UE 5.8.x
Supports: UE 5.7.x
Supports: UE 5.6.x
Supports: UE 5.5.x

Version 1.4 (14/10/2025)

Improvement | Removed warning C4996 log spam from build.
Improvement | More interesting logs
Improvement | Const-correctness across codebase
Supports: UE 5.7.x
Supports: UE 5.6.x
Supports: UE 5.5.x

Version 1.3 (16/08/2025)

Feature | Added Noise Playback
Bug | Fixed issues with packing s24
Bug | Fixed player not looping
Improvement | More accurate beat detection and bpm counter
Improvement | General Refactor
Supports: UE 5.6.x
Supports: UE 5.5.x

Upgrade Warning
FFFTConfig is now UFFTConfig. IO FFTConfig has converted to a Data Asset to encourage shareability and a more data-driven workflow. Any FFT settings you had set in the project settings will now be lost upon upgrading.
EAudioIOType has been extended with PlaybackNoise, and consequently the enum order has changed. You might find that your code that used this enum might now have a different option selected.

Version 1.2 (21/06/2025)

Improvement | General Refactor
Supports: UE 5.6.x
Supports: UE 5.5.x

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
Supports: UE 5.5.x

Version 1.0 (28/04/2025)

The beginning of Time
Supports: UE 5.5.x