Problem
Karaoke is a group activity but MelodAI is currently single-user. At a party, one person controls the laptop while others shout requests. There's no way for guests to browse songs or add to the queue from their phones.
Proposal
A party/room mode where one device is the "host" (playing audio on speakers) and other devices can join as "guests" to browse, search, and add songs to the shared queue.
Host
- Creates a room (generates a short join code, e.g.
ABCD or a QR code)
- Plays audio and displays lyrics on the main screen (TV/projector)
- Has full playback control (play/pause, skip, remove)
- Sees who's in the room
Guests (phone/tablet)
- Join via code or QR scan — no account required (or optional)
- Can search songs and add to the shared queue
- Can upvote/downvote queued songs (affects order)
- See current playing song and queue, but no playback control
- Optional: "next singer" assignment per queued song
Technical Approach
- WebSocket (Socket.IO or native WS) for real-time sync
- Room state lives on the Flask backend in-memory (or Redis for persistence)
- Events:
queue_add, queue_remove, queue_reorder, playback_update, room_join, room_leave
- Guest UI: lightweight mobile-optimized page at
/party/{code}
- No audio streaming needed — guests only see metadata + queue
MVP Scope
- Room creation with join code
- Guest search + add to queue
- Real-time queue sync
- Host-only playback control
Future
- QR code display on host screen
- Voting/priority system
- "Up next" singer assignment
- Song request limits per guest
Complexity
High. Requires WebSocket infrastructure, room state management, and a separate guest UI. But this is the killer differentiating feature for a karaoke app.
Problem
Karaoke is a group activity but MelodAI is currently single-user. At a party, one person controls the laptop while others shout requests. There's no way for guests to browse songs or add to the queue from their phones.
Proposal
A party/room mode where one device is the "host" (playing audio on speakers) and other devices can join as "guests" to browse, search, and add songs to the shared queue.
Host
ABCDor a QR code)Guests (phone/tablet)
Technical Approach
queue_add,queue_remove,queue_reorder,playback_update,room_join,room_leave/party/{code}MVP Scope
Future
Complexity
High. Requires WebSocket infrastructure, room state management, and a separate guest UI. But this is the killer differentiating feature for a karaoke app.