🎧 SETMIND

The AI co-pilot for the DJ booth — by karaoke.vision

Read the room. Plan the set. Land the transition. SETMIND is a browser-based DJ workstation with an AI brain — it reads crowd energy, recommends the next track, and arms beat-matched transitions in real time, so you can focus on performing instead of calculating tempo, key, and phrase timing under pressure.

🔗 Live demo: setmind-l2sq.onrender.com  |  💻 Source: github.com/Bhargav072007/SETMIND


💡 Inspiration

The decisions that separate a competent set from a memorable one happen in seconds — reading the floor's energy, picking a harmonically compatible follow-up, and timing the blend to land on the downbeat. These are exactly the fast, pattern-driven judgment calls AI is built to assist with in real time.

So we built the co-pilot we always wanted in the booth: a system that watches the same signals a DJ does and surfaces the optimal next move before the moment passes.

SETMIND isn't a replacement for taste — it's an amplifier for it.


🎛️ What It Does

A complete DJ environment that runs entirely in the browser, organized into four purpose-built tabs.

Tab Purpose Highlights
🎚️ Decks Dual-deck performance mixer Waveforms, BPM sync, pitch & key control, EQ, effects, equal-power crossfader, hot cues, looping, tap-tempo, live phrase indicator
🤖 Crowd AI Real-time crowd analysis Crowd-state read, momentum score, energy directive, next 3 tracks, transition cue
📋 Set Plan Pre-gig set architecture Five-phase energy arc with BPM ranges, energy targets, example tracks, emergency pivots
📚 Library Catalog search & loading iTunes search with artwork & previews, drag-to-deck loading

🎚️ Decks

A professional dual-deck mixer with everything a live performer expects — waveform displays with a live playhead, BPM sync, pitch and key control with Camelot-wheel compatibility checks, 3-band EQ, effects, and an equal-power crossfader. Hot cues, looping, tap-tempo, and a phrase/beat indicator tracking position within each 16-bar phrase.

🤖 Crowd AI

Describe the floor. SETMIND returns a structured read of the room: a crowd-state assessment, a momentum score, an energy directive (PUSH · HOLD · PIVOT · PULL BACK), the next three recommended tracks with BPM and key, and a transition cue.

📋 Set Plan

Before the gig, SETMIND generates a five-phase energy arc for your entire set — a roadmap with contingency pivots for when the room doesn't cooperate.

📚 Library

Search the iTunes catalog for any track and load it straight onto a deck. Preview-enabled results are instantly playable — audition and load without leaving the app.


🧠 The AI Mixer — Our Centerpiece

When armed, the AI Mixer monitors both decks and executes transitions automatically — but only when the timing is musically correct.

It evaluates three signals before committing:

Signal What It Measures Why It Matters
BPM Gap \(\Delta_{\text{BPM}} = \lvert B_A - B_B \rvert\) Whether a clean beatmatch is achievable
Key Compatibility Camelot-wheel harmonic relationship Keeps the blend harmonic, not dissonant
Phrase Timing Position within the beat grid Lands the transition on the downbeat, not mid-phrase

When the conditions align, the AI Mixer:

  1. Pre-plans the transition — trigger point, crossfade length, cue-in position.
  2. Ramps the crossfader over the planned fade window.
  3. Nudges pitch to close the BPM gap for a seamless beatmatch.
  4. Hands the room off to the incoming deck on the downbeat.

Track recommendations surface as non-blocking glass popup cards — load or queue them with a single tap. And if the AI service ever drops, a local fallback planner keeps the mix running, so a network blip never stalls a live set.


▶️ How to Use It

Step Action
1 · Connect Enter a Google Gemini API key in the settings panel (stored locally in your browser). A status indicator confirms the connection.
2 · Load tracks Open Library, search the iTunes catalog, and load a preview-ready track onto Deck A and Deck B.
3 · Play & mix On Decks, start playback, adjust pitch/EQ, ride the crossfader — or sync both decks with one tap.
4 · Arm the AI Mixer Toggle the AI Mixer to Armed. It plans and executes the next transition automatically when BPM, key, and phrase timing align.
5 · Read the room Switch to Crowd AI, describe what you're seeing, and get an energy directive plus the next three recommended tracks.
6 · Plan ahead Use Set Plan before a gig to generate a complete energy arc for your set.

💡 Tip: Suggestions arrive as glass popup cards — tap Load A / Load B to drop a pick straight onto a deck, or +A / +B to queue it.


🛠️ How We Built It

Layer Technology
Frontend React + Vite
Audio Web Audio API + HTML5 Audio
Backend Node.js + Express
AI Google Gemini
Catalog iTunes Search API

The backend exposes a dedicated endpoint per AI capability — /api/plan, /api/pulse, /api/brain, /api/prompt, and /api/mixplan. A custom beat-grid analyzer computes bar/phrase position, time-to-trigger, and downbeat windows from BPM and playback progress, driving both the phrase indicator and the AI Mixer's timing. A model fallback ladder with retry logic ensures demand spikes degrade gracefully rather than failing.


⚡ Challenges We Ran Into

  • Real-time transition timing. Aligning a crossfade with the actual downbeat — not just "near the end" — required a beat-grid model and a windowing system that only fires within a valid bar/beat range, with a graceful emergency window when a track is about to end.
  • Latency for live use. Larger reasoning models gave great output but were too slow for the booth. We switched to a fast flash-class model with a fallback ladder and disabled internal "thinking," dedicating the full token budget to the answer.
  • Reliable structured output. Truncated or fenced JSON would otherwise break parsing mid-set. We built a forgiving parser that strips code fences, extracts the JSON block, and repairs truncated objects by closing open strings and brackets in the correct nesting order.
  • Clarity in a dense interface. A DJ rig has a lot of controls. Achieving a calm, glassmorphic, clutter-free layout — AI suggestions as non-blocking popups rather than crowding the mixer — took deliberate restraint.

🏆 Accomplishments We're Proud Of

  • A genuinely playable browser DJ mixer — responsive dual decks, waveforms, beatmatching, EQ, effects, and crossfader.
  • An AI Mixer that times transitions to the phrase, not just the clock — harmonic- and tempo-aware auto-mixing that respects the beat grid.
  • Four distinct AI capabilities unified behind one coherent interface, each returning structured, actionable output.
  • A resilient AI pipeline — model fallback, retry logic, JSON repair, and a local planner — that holds up under live conditions.
  • A glassmorphic, performance-focused UI that delivers AI guidance through elegant, non-intrusive popups.

📚 What We Learned

  • Latency is a feature. In a live tool, a slightly less brilliant answer in one second beats a perfect answer in fifteen. Model selection and token budgeting matter as much as raw model quality.
  • Music theory makes AI trustworthy. Grounding the model in Camelot harmonic matching and phrase-aware beat grids turned vague recommendations into picks a DJ would actually trust.
  • Defensive parsing is non-negotiable when an LLM runs inside a real-time loop — graceful degradation and self-healing output kept the app stable.
  • Restraint improves usability. Removing clutter and moving AI suggestions into popups made the whole experience feel faster and more confident.

🚀 What's Next for SETMIND

Area Planned Enhancement
Audio analysis Detect BPM and key directly from audio for sample-accurate beatmatching
Track sources Full-length playback beyond 30-second previews, plus local library import
Stem separation Acapella/instrumental transitions and live mashups
Personalization Crowd AI that adapts to the DJ's history and style over time
Hardware MIDI controller support to drive and be driven by physical rigs
Performance mode A hands-free, glance-able booth layout optimized for live sets

Built With

Share this project:

Updates

posted an update

Update — Migration to karaoke.vision & Gemini Inference

We've shipped a major update based on community feedback. Two key changes:

1. Rebranded under karaoke.vision

SETMIND now operates under the karaoke.vision umbrella. The interface, routing, and product surface have been updated to reflect the new identity.

2. Switched inference from Nemotron to Gemini

Several users reported high latency on AI features — set planning, crowd analysis, and AI Mixer transitions were taking too long to feel usable in a live booth. We heard you.

We've migrated the entire inference layer from the Crusoe-hosted Nemotron model to Google Gemini. The result is significantly faster response times across all AI capabilities, with thinking disabled to dedicate the full token budget to the answer. A model fallback ladder with retry logic keeps things stable under load.

What this means for you:

  • AI features now respond noticeably faster
  • Connect your own Google Gemini API key in the in-app settings panel (stored locally in your browser)
  • A status indicator confirms the connection once your key is active
  • Set Planner, Crowd Pulse, AI Mixer, and Auto-Queue are all fully operational on the new backend

Thanks to everyone who flagged the latency — this one's for you.

Log in or sign up for Devpost to join the conversation.

posted an update

Patch Notes — Crusoe Nemotron Connectivity (May 28, 2026)

If you experienced AI features returning errors or failing to respond, this has been resolved.

The Crusoe Managed Inference API was returning HTTP 404 model_not_found due to an incorrect CRUSOE_MODEL environment variable on the Render deployment. The inference host was also misconfigured, pointing to managed-inference-api-proxy.crusoecloud.com instead of the correct api.inference.crusoecloud.com base.

Resolution:

CRUSOE_MODEL corrected to hack-crusoe/Nemotron-3-Nano-30B-A3B-FP8 CRUSOE_API_URL updated to https://api.inference.crusoecloud.com/v1/chat/completions Render environment variables redeployed to reflect the fix Patch committed to src/agent/nemotron.js — commit 2a77ac2 /api/health now returns nemotron: true. Set Planner, Crowd Pulse, AI Mixer, and Auto-Queue are all fully operational.

Log in or sign up for Devpost to join the conversation.