Visual & lighting synth — live DMX, visuals, and laser control synchronized to music.
Website: https://nicholastracy.github.io/captivate-2/
Captivate 2 builds on the original Captivate by Spencer (@spencbot) and contributions from @fwcd’s fork. This project continues development with new features and UI improvements after the original line was discontinued.
- DMX lighting — fixture library, community online fixtures (QLC+, Open Fixture Library, Captivate library), import/export, multi-universe USB and Art-Net, spatial fixture layout
- Synth-style control — LFOs, modulation, pads, randomizers, MIDI and keyboard mapping
- Visuals — built-in visualizers and effects, synced to the active light scene
- Multi-window UI — detached pages for mixer, laser, 3D lighting preview, and more
- Ableton Link — BPM and phase sync with supported apps
- LAN remote — optional browser UI for scenes, modulation, and mixer (docs)
Configure fixtures once; scenes stay portable when you add gear or change venues.

Light scenes, splits, and modulation

DMX mixer for live channel control

Audio-reactive visuals synced to your lighting
More walkthroughs: Wiki.
Wiki — setup and how-to guides: DMX, connections, light scenes & splits, modulation, MIDI mapping, mixer, remote control, and troubleshooting.
Project files and autosave — .cap / .cfx file pairing, selective loads, autosave behavior, and recovery pitfalls.
Audio input and music energy — audio setup, beat detection, Advanced Music Energy controls, and how live energy drives scenes and visuals.
Community fixture library — browse and share Captivate fixture definitions (no git required to contribute).
DMX output and movers — universe composition, USB / Art-Net routing, and mover fine-channel pathing.
Atmospherics — fog / FX arming, pyro gate, emergency stop, and trigger timing.
MIDI and keyboard mapping — MIDI learn, slider/encoder modes, keyboard chords, and MIDI clock vs mapped BPM.
Scene generation — Extras → Generate Scenes…, rig profiling, and what is replaced vs preserved.
Installers for Windows, macOS, and Linux are on the Releases page.
Captivate 2 is not Apple-notarized (no paid Developer Program). macOS may warn the first time you open the app — that is expected.
Download the correct file for your Mac (full guide):
| Mac type | Release file |
|---|---|
| Apple Silicon (M1, M2, M3, M4…) | Captivate.2-<version>-arm64.dmg |
| Intel | Captivate.2-<version>-x64.dmg |
Check About This Mac → Chip (Apple M…) vs Processor (Intel).
First launch:
- Open the DMG and drag Captivate 2 to Applications.
- In Applications, right-click Captivate 2.app → Open (not double-click the first time).
- Click Open in the security dialog.
- If still blocked: System Settings → Privacy & Security → Open Anyway.
If the app quits immediately on launch, reinstall using the arm64 DMG on Apple Silicon (see macOS install guide).
Captivate 2 is an Electron app. Native addons (MIDI, USB DMX, projectM bridge, and other node-gyp modules) must be built with standalone Node.js matching the repo’s engine — not an editor-bundled runtime.
| Requirement | Notes |
|---|---|
| Node.js | >= 25.9.0 (see .node-version and package.json engines) |
| npm | >= 11.11.0 |
| Python | 3.11 recommended for node-gyp |
| Git LFS | Run git lfs pull after clone |
| Git submodules | git submodule update --init --recursive |
npm run check:build-env verifies Node/npm before packaging.
macOS: Xcode Command Line Tools
Windows: Visual Studio 2022 with “Desktop development with C++”
Linux: see the Install Linux dependencies step in .github/workflows/build.yml
git clone https://github.com/NicholasTracy/captivate-2.git
cd captivate-2
git submodule update --init --recursive
git lfs pull
npm install
npm startnpm run package:win # Windows
npm run package:mac # macOS
npm run package:linux # LinuxCI builds all three platforms on push and publishes assets when you push a version tag (e.g. v1.0.0). See Releases.
macOS packaging keeps per-arch natives (koffi, usb/serialport, lipo’d node-gyp modules). See macOS packaging and native modules before changing rebuild or afterPack scripts.
- Wiki — user guides and troubleshooting
- Project files and autosave
- Audio input and music energy
- Community fixture library
- Remote control (LAN)
- Audio input, beat clock, and music energy
- Laser FB4 / Pangolin BEYOND
- Visualizer streaming (RTSP / NDI)
- WLED fixtures
- DMX output and movers
- Atmospherics
- MIDI and keyboard mapping
- Scene generation
- macOS packaging and native modules
Thanks to electron-react-boilerplate for the app boilerplate.
GNU GPL v3 or later — derivatives must remain open source under the GPL. Captivate 2 incorporates earlier Captivate code originally released under the MIT License (Copyright © Spenser Saling); MIT copyright notices for that material are preserved.
