Cuemark

Running Cuemark

Development mode

cargo tauri dev        # starts the Vite dev server + Tauri window
npm run check           # TypeScript + Svelte type check
npm test                # beat-grid / BPM algorithm tests
cd src-tauri && cargo check   # Rust type check only

Frontend files hot-reload instantly. Rust changes under src-tauri/ trigger a full recompile, and the old binary keeps running until that finishes — give it a moment after editing backend code.

Two windows, two displays

Cuemark opens a control window (deck previews, crossfader, media browser, MIDI status) and a separate output window that does the actual GPU compositing and is meant to run fullscreen on a second display — the projector. Move the output window to display 2 and press fullscreen; layout is currently manual (automatic display selection is on the roadmap).

Logging

Backend logs — the audio pipeline, MIDI events, device enumeration, GStreamer bus messages — are always written to a log file, regardless of how the app was launched:

tail -f ~/.local/share/com.cuemark.app/logs/cuemark.log

Loading media

Decks are video-only: load a video file onto a deck, loop it, and control playback rate. Audio and video stay in sync off the audio clock, so pitch-preserving rate changes (via the jog wheel or tempo fader) don't need a seek.