VDJ WaveShare

VDJ WAVESHARE

Live VirtualDJ waveforms for your lighting operator. They open a browser, you play. They see every drop coming.

Dashboard
Dashboard with 4 decks: big BPM, time left, 3-band waveform in separate lanes, loop region and energy strip
Features
3-band waveform

Bass, mids, highs. 100 columns per second. MIX or separate lanes.

Works with TIDAL

Reads decoded audio inside VirtualDJ. No files on disk needed.

BPM first

Largest number on screen, in the deck color. Key, tempo and time left next to it.

Energy strip

Dark for breakdowns, bright green for drops. Spot the next build early.

Loops

Loop region and length in beats. Playhead stays inside the loop.

Zoom

2 to 64 seconds. Buttons, mouse wheel or two fingers. Double tap for 16 s.

Beat lines

From the VirtualDJ beat grid. Every beat thin, every bar bright.

Made for tablets

Finger-sized buttons, full screen, no accidental page zoom.

Cable or Wi-Fi

Serves on every adapter. Open the cable address when plugged in, Wi-Fi when not.

4 decks

Colored like VirtualDJ: red, blue, green, orange.

Pre-load

Tracks on a paused deck get scanned while another deck plays.

Local only

No cloud, no accounts. Audio never leaves the DJ laptop.

How it works
VirtualDJ plugin
UDP
server.js
HTTP + SSE
any browser

A VirtualDJ effect computes the waveform from the decoded track and sends 3 bytes per 10 ms to a small Node server on the same Mac. The server shares a dashboard with every device in the network.

Quick start
# macOS, Node 18+, Xcode Command Line Tools
git clone https://github.com/kebab-py/vdj-waveshare.git
cd vdj-waveshare
# close VirtualDJ first
plugin/build.sh
node server/server.js
# VirtualDJ: switch on the WaveShare effect
# on each deck, then open the printed address
Dashboard on a phone