Karaoke client?

Please feel free to drop this in a better section if I’m barking up the wrong tree.

I want to be able to do karaoke with my friends in these social distancing times. I’d love to work up a solution where a KJ (karaoke DJ) could play a song (with a video feed of the lyrics), that goes to the singer, they sing along with the song, and the rest of the people in the conference hear the mixed audio from the singer and their stream of the karaoke song. There are latency issues all over the place here and I think they are mitigated if not solved on the client end. I think the mixing needs to happen at the singers machine, otherwise karaoke track and singing will always be out of sync. Do I need to develop a client that handles that? Or can it be managed from the meeting host end?

1 Like

I’m interested in distributed karaoke also. I’ve come up with a couple options so far that are based on a group video chat room. The first one works with any system:

Default client-side mixing in the ear:

  • KJ Hosts a videochat room (Jitsi or Zoom or whatever).
  • KJ plays a karaoke track with video lyrics and uses their Screen Share capability to share the video feed to the chat room, where all participants can see it.
  • Participants can also see the face/avatar of the KJ and the other participants.
  • KJ feeds their karaoke sound from their video player as the KJ’s audio (so instead of the KJ talking, participants hear the music).
  • KJ Mutes everyone but the singer and the KJ’s music stream.
  • Participant’s hear two streams from the client, the KJ’s music stream and the singer’s voice stream. The ‘mixing’ is occurring in the air and the ear of each listener.
  • At end of song, KJ switches their audio source back to their microphone, and unmutes everyone so that they can applaud, whistle, cheer the singer.

I have seen this solution work with Zoom, and am looking forward to trying it with Jitsi.

Pros: Works out of the box. Very simple except for possibly the audio-source switching by the KJ (which might be doable via the Screen Sharing, depending on what conferencing system is being used).
Cons: KJ isn’t able to do any real mixing and tuning, to help the singers sound nicer.

Here’s the other option. Better, but more complex:

KJ Mixing on the KJ’s Host machine:

  • Like the above for the most part, except that rather than mixing occurring ‘in the ear’ of the listener by delivering two audio streams to each listener, we mute everyone except the KJ’s mixed audio stream.
  • This mixed audio stream is produced by the KJ using a mixing board (or software) to composite the karaoke track’s audio with the singer’s audio (which is somehow being delivered to the KJ but not to the other participants).
  • This probably cannot work in Zoom, and is an ideal candidate for a Jitsi-based custom solution
  • The solution probably requires a custom server that can receive the singer’s audio and relay it to the KJ, but not to the other participants. The KJ needs to be able to obtain this singer audio, mix it with the karaoke music, and then replay it to all the listeners.
  • It may be that Jitsi (or Zoom) can be configured this way without requiring a separate server.

Pros: KJ makes us sound better. KJ can balance the levels for duets and group songs better.
Cons: Not as easy. Might require custom server. Ideally, no custom client is required.

Good ideas Dr. Bud. I gave up and went low tech because the latency involved in various streams going in different directions seemed insurmountable.

I’ve done it two ways but both involve the same process: the singer shares their screen with the karaoke track playing on it and sings. I’ve done it both with the singers finding and cuing up the songs on their own from youtube or wherever, or, if you want to maintain the KJ role and especially if you have the library and software to do it, use a separate live stream on youtube or twitch or wherever as your KJ feed to your singers. When it’s a singers turn, they flip over to that stream, unmute it and share that screen.