Groov is a desktop audio deck monitor built with Electrobun + React.
Load a track, inspect a high-resolution waveform, detect tempo/beat grid, and jump around quickly with DJ-style transport controls.
- Open tracks from file picker or drag-and-drop
- Waveform rendering with detailed main view + minimap overview
- Tempo and beat/bar detection (BPM + beat offset)
- Time and beat/bar timeline modes
- Fast navigation controls:
- Play/pause
- +/- 10s
- +/- 1 beat
- +/- 1 bar
- Cue set/jump
- Track history with quick reload and removal
- Waveform analysis caching for faster re-opens
- Re-analyze current track on demand
bun install
# Development with HMR (recommended)
bun run dev:hmr
# Development without HMR
bun run devWhen using HMR, Vite runs on http://localhost:5173 and the desktop app connects to it automatically.
# Build local dev channel app
bun run build
# Build stable channel app
bun run build:prod- macOS:
build/stable-macos-arm64/Groov.app - Windows (on Windows runner/machine):
artifacts/stable-win-x64-Groov-Setup.zip - Linux (on Linux runner/machine):
artifacts/stable-linux-x64-Groov-Setup.tar.gz
This project currently focuses on Windows release artifacts.
- Build:
bun run build:prod- Start app:
open build/stable-macos-arm64/Groov.app- If macOS blocks first launch due to quarantine:
xattr -dr com.apple.quarantine build/stable-macos-arm64/Groov.app
open build/stable-macos-arm64/Groov.app- Build on Windows:
bunx electrobun build --env=stable- Use the generated installer package:
artifacts/stable-win-x64-Groov-Setup.zip - Extract the zip and run
Groov-Setup.exe.
Note: a true standalone single-file Groov-Setup.exe is not supported by the current Electrobun Windows packaging flow. The zip is required because it contains installer sidecar payload files.
- Build on Linux:
bunx electrobun build --env=stable- Extract and run the installer:
tar -xzf artifacts/stable-linux-x64-Groov-Setup.tar.gz
chmod +x installer
./installerSpace: play/pauseLeft/Right: seek -/+ 1 secondShift + Left/Shift + Right: seek -/+ 10 secondsC: set cue point
src/
bun/ # Main process, RPC handlers, analysis/cache/history
mainview/ # React UI (panels, waveform canvas, playback controls)
shared/ # Shared RPC types and assets
- Workflow:
.github/workflows/windows-release.yml - Trigger by pushing tags like
win-v1.0.0 - Uploads the canonical Windows installer package only:
stable-win-x64-Groov-Setup.zip
