What It Solves
Searcholume provides a vertical column-first control surface for Resolume so operators can view thumbnails, track
clip state, and fire full columns quickly during live programming and playback.
Column View
Real-time Sync
Thumbnail Cache
Prerequisites
- Node.js 18+ and npm.
- Resolume Arena/Avenue 7.x with Web Server enabled.
- Resolume reachable at http://0.0.0.0:8080 (default).
Setup Guide (Recommended)
- Install backend dependencies: cd backend then npm install
- Install frontend dependencies: cd ../frontend then npm install
- Review backend/config.json for API URL, ports, polling, and cache settings.
- Start backend: cd backend then npm start
- Start frontend: cd frontend then npm run dev
- Open http://localhost:3000
Configuration Surface
- resolumeApiUrl: Resolume REST endpoint, default http://0.0.0.0:8080/api.
- serverPort: backend API/WebSocket port, default 3001.
- pollInterval: state polling interval in milliseconds, default 500.
- thumbnailCacheSize and maxConcurrentThumbnails: performance controls.
- corsOrigin: expected frontend URL (default http://localhost:3000).
API and Event Model
REST: Columns
GET /api/columns returns column + clip view state from Resolume.
REST: Trigger
POST /api/columns/:index/trigger triggers all clips in a column.
REST: Status + Thumbnails
Use status and thumbnail endpoints for health checks and cached preview retrieval.
WebSocket Events
Uses columns:update, clip:connected, and error for live sync.
Troubleshooting Checklist
- Backend won’t start: run npm install in backend and resolve port conflicts on 3001.
- Cannot connect to Resolume: verify Web Server settings and test curl http://0.0.0.0:8080/api/product.
- Frontend stuck on connecting: confirm backend is running and browser/firewall allows WebSocket.
- Thumbnails missing: confirm media is loaded in Resolume and inspect browser/network logs.
- Column triggers fail: verify clip settings do not ignore column trigger and check backend logs.