-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
enhancementNew feature or requestNew feature or request
Description
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.
ABCDor 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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request