Troubleshooting
Canvas window shows “WS: disconnected”
The canvas window connects to the Rust WebSocket relay at ws://127.0.0.1:8787. If it stays disconnected:
- Check that huff is fully started. The relay starts asynchronously during setup — wait a second after launch before the canvas window connects.
- Check port 8787 is not in use by another application. See Caveats — Port 8787 for how to check.
- If you opened
canvas.htmldirectly in a browser (outside the Tauri app), the relay is not running. Start a standalone relay:node src/ws-server.js - On some systems the WebView connects via IPv6 (
[::1]). huff binds both — if one fails the other should succeed within 1–2 seconds.
Camera not appearing or not starting
No camera in the dropdown:
- Click ↻ Refresh in the Source group. Devices connected after app launch do not appear until you refresh.
- On macOS, check System Preferences → Security & Privacy → Camera → confirm huff is listed and allowed.
- On Windows, check Settings → Privacy → Camera → allow apps to access the camera.
Camera in the dropdown but Start produces no output:
- On macOS distribution builds: the app must be codesigned with the camera entitlement. In dev mode (
npm run dev) this is injected automatically. See Caveats — Camera Permissions. - Try a different browser in the OS to confirm the camera works at all (
camera testwebsites).
MIDI device not appearing or not responding
Device not in the list:
- Click ↻ Refresh in the MIDI panel. The list is polled on demand, not live.
- On macOS, confirm the device appears in Audio MIDI Setup (Applications → Utilities).
- On Windows, check Device Manager → Sound, video and game controllers.
Device connected but not responding:
- Confirm the correct port is selected and Connect was clicked (status shows the port name when active).
- Check the
channelfield in your map file.-1accepts all channels. If your controller sends on channel 2 (index1) and your map says"channel": 0, it will be filtered out. - Click Debug: log all ports to console in the MIDI panel and check the browser console (right-click the controls window → Inspect → Console). This logs all detected ports and any CC messages received.
Syphon not appearing in receivers
- Confirm the Syphon panel shows active (not just “Start clicked”).
- In your receiver (Resolume, VDMX, etc.), trigger a manual re-scan of Syphon sources. Some apps only scan on launch.
- Confirm both apps are on the same user account. Syphon uses shared memory and does not work across user sessions or sandboxed environments.
- If you are running huff from the
npm run devcommand (unsigned), Syphon should still work — the framework is loaded at runtime, not via App Store validation.
Spout init failed (Windows)
The Spout panel shows an error on Start:
- Install the Spout2 runtime from spout.zeal.co. The bridge DLL bundled with huff requires the Spout2 system components to be installed separately.
- Confirm
spout_bridge.dllis present next tohuff.exein the installation directory. If it is missing, reinstall. - On Windows 10, ensure WebView2 Runtime is installed (required for the app to run at all).
High memory usage
The frame ring grows with resolution and quality. At 1080p + quality=1 the ring can hold up to ~192 MB.
To reduce memory:
- Lower the QUALITY slider. At quality=0 the ring holds only 4 frames regardless of resolution.
- Reduce the canvas resolution. huff uses the window size — make the controls window smaller.
- Disable Trails and Flow Warp — both read the full ring depth and keep it alive.
Glitch / effects stop responding to controls
All controls write directly to DOM elements that the p5 draw loop reads each frame. If controls appear unresponsive:
- Check that ON is toggled for the relevant effect group.
- Check that the overall SYSTEM toggle (if present) is enabled.
- If CORRUPT % is at 0, no tiles will be displaced regardless of other settings.
- If QUALITY is at 0, the ring holds only 4 frames — DEPTH and DEPTH SCATTER will have very little range.
Output looks frozen / only one frame
- The p5 draw loop may have halted due to a JS error. Right-click the controls window → Inspect → Console to check for errors.
- If the video file is paused, the source is static — effects will still run but the input is not changing.
- On Windows, some configurations cause the WebView to throttle requestAnimationFrame when the window is not in focus. Keep the controls window visible or move it to a secondary monitor with focus.
“Port already in use” error on launch
[huff] IPv4 listener error: Address already in use
Another process is using port 8787. See Caveats — Port 8787 for how to identify and resolve it. As a quick workaround, change the port in src-tauri/src/main.rs and src/index.html and rebuild.
npm run dev fails on first run
cargo not found: Install Rust via rustup.rs.
tauri: command not found: Run npm install first — Tauri CLI is a dev dependency installed into node_modules/.bin/.
Build fails with missing system library (Linux): Install the WebKitGTK development packages for your distribution. See Installation — Linux extra.
Build fails with Xcode errors (macOS): Run xcode-select --install to install the Command Line Tools.
tauri build fails on macOS with code signing errors
If you are not distributing the app and just want a local build:
# Build without code signing
CODESIGN_IDENTITY="-" npx tauri build
For a fully signed and notarised build, see Apple’s notarisation documentation.
Getting More Help
- Open an issue on the GitHub repository with the console output (right-click the controls window → Inspect → Console) and your OS/version.
- Include the huff version (
v2.0 · beta · 2025shown in the About overlay, accessible from the top bar). - On macOS, run
system_profiler SPSoftwareDataTypefor OS version. On Windows,winver.