A modern JUCE-based VST3/AU plugin for NINJAM — collaborative real-time music jamming over the internet, right inside your DAW.
- VST3 (Windows + macOS) and AU (macOS) plugin formats
- Host transport sync with ring-buffer phase alignment
- Classic NINJAM mode with auto-subscribe
- Built-in metronome aligned to DAW beats
- Mixer-style channel strips with per-user mute/solo/level
- Chat/log panel with scrollable history
- Interval position readout as bars:beats:subbeats (
1:1:1) using host time signature - MIDI input/output passthrough (for DAW routing workflows)
- Insert the plugin on a track or bus and open the editor.
- Enter
Host,User, andPassword, then click Connect. - Use the chat box at the bottom to send messages:
- Regular text sends chat messages.
/...sends admin commands (example:/bpm 120).
- Adjust monitoring/mix from the top strip (
Me) and remote user strips. - Watch
Interval: bar:beat:subbeat (num/den)for position within the current NINJAM interval.
subbeat follows a 1/16-note grid relative to the host time signature:
4/4->bar:1-4:1-43/4->bar:1-3:1-46/8->bar:1-6:1-2
When a server presents a license agreement, it is shown in the chat/log panel and connection is paused until you approve.
Click License OK in the plugin UI to approve that host's license and reconnect.
If an open server rejects a normal username (empty password), the plugin retries once as
anonymous:<your-name> automatically.
A= Add local: hear your local input mixed with incoming NINJAM audio.L= Listen local: hear only your local input (incoming NINJAM audio muted).- Both off = Incoming only: hear remote NINJAM audio only.
A and L are mutually exclusive monitor modes.
Use this when you want the plugin to behave like a NINJAM return + local confidence monitor:
- Put NinjamNext on your DAW master/main bus.
- Route your instrument/vocal tracks to the master as normal.
- Connect to the NINJAM server.
- Turn on
Ain theMestrip. - Keep remote user strips up and mix each user with mute/solo/level.
Result: you hear the full main mix plus your local input confidence monitor, while still controlling remote users from one place.
- CMake 3.22+
- Windows: Visual Studio 2022+ with C++ workload
- macOS: Xcode command line tools
- macOS: Homebrew + CMake if
cmakeis not already installed
git clone --recursive https://github.com/nykwil/ninjam-next-plugin.git
cd ninjam-next-plugincmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --target NinjamNext_VST3On Windows, run those commands from a Visual Studio Developer Command Prompt (or use build_win.bat below).
If you see fatal error C1083: Cannot open include file: 'algorithm', the MSVC environment was not initialized.
On Windows you can also use the one-click script:
build_win.batIf needed, install the required tools first:
xcode-select --install
brew install cmakeThen build:
./build_mac.shThis configures CMake and builds both the VST3 and AU targets.
The CMake 4.x compatibility workaround is built into the project now, and macOS defaults to a universal binary (arm64;x86_64).
If you want the raw CMake commands instead of the helper script:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --target NinjamNext_VST3 NinjamNext_AU- VST3:
build/NinjamNext_artefacts/<config>/VST3/NinjamNext.vst3/ - AU (macOS):
build/NinjamNext_artefacts/<config>/AU/
On macOS, the simplest install path is:
./install_mac.shThat copies the built bundles into your user plugin directories, clears extended attributes, and applies ad-hoc signing when available.
Default user install locations:
- VST3:
~/Library/Audio/Plug-Ins/VST3/ - AU:
~/Library/Audio/Plug-Ins/Components/
System-wide install locations if you prefer to install for all users:
- VST3:
/Library/Audio/Plug-Ins/VST3/ - AU:
/Library/Audio/Plug-Ins/Components/
The release builds are not signed or notarized, so macOS or your DAW may still block them in some cases.
install_mac.sh already clears extended attributes and attempts ad-hoc signing for user-local installs.
If you install to the system plugin folders manually, start by removing the quarantine flag from the installed bundle:
sudo xattr -cr "/Library/Audio/Plug-Ins/VST3/NinjamNext.vst3"If your DAW still does not detect the plugin, ad-hoc sign the installed bundle and rescan:
sudo codesign --force --deep --sign - "/Library/Audio/Plug-Ins/VST3/NinjamNext.vst3"2. Ad-hoc sign the plugin:
On newer macOS versions, unsigned plugins may be silently ignored by DAWs even after removing quarantine. Ad-hoc signing fixes this:
codesign --force --deep --sign - "/Library/Audio/Plug-Ins/VST3/NINJAM VST3.vst3"After both steps, rescan plugins in your DAW.
3. Verify (optional):
If the plugin still doesn't appear, check that macOS isn't rejecting it:
codesign -v "/Library/Audio/Plug-Ins/VST3/NINJAM VST3.vst3"
spctl --assess --type exec "/Library/Audio/Plug-Ins/VST3/NINJAM VST3.vst3"The build also produces a local NINJAM server:
cmake --build build --target ninjamsrv_local
cd ninjam/ninjam/server
../../build/ninjamsrv example.cfgConnect two plugin instances to localhost:2049 for testing.
NINJAM is licensed under the GPL. See the ninjam submodule for details.