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
Audio Control
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 Capture via MiniAudio
Windowing
FFT via KISS FFT
Smoothing
Spectrum Analysis
Frequency Bands
Amplitude
Pitch
Beat Tracking
Supports
USoundWaveProcedural
Multichannel Analysis
Audio Visualisation
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
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.
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
Microphone
Spectrum Spacing
Linear
OctaveSubdivision
Quadratic
Playback
Device Player
MA Sound Player
Filters
ChebyshevTypeI
Filters
ChebyshevTypeI
Smoothing
Simple Moving Average
Sample Formats
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
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
Roadmap
Backlog
Compute Audio Buffer improvements
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
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
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
Pass audio buffer into sound wave procedural to utilise native audio capabilities.
Release 1.1
Release Notes
Version 1.1 (15/05/2025)
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