Open k14vff opened 3 years ago
If you mean share a live karaoke session with someone at another location over the Internet (so they'd be on a different local network) I'm not sure it's feasible, at least not with any usable quality. PiKaraoke only provides the pre-recorded YouTube backing audio and on-screen lyrics, so your own vocal performance is carried entirely by your own sound system (typically hifi or amplifier). You could connect their computer to your Pi using VNC but it would be very poor quality video of the lyrics, with massive latency on the backing audio and it wouldn't carry your vocals. This isn't a limitation of PiKaraoke, but it's a bandwidth limitation of the VNC link. An alternative way to share karaoke performances (but not 'live') would be by videoing your performance and then sending them your recording, and vice versa. You could try using a live video-calling app to stream your performance live, but I'm guessing you're after a shared singalong experience for them, which that won't quite achieve.
Ok thanks for your response. do you think i can link two raspberry pi with pikaraoke to make karaoke at the same time?
Ok thanks for your response. do you think i can link two raspberry pi with pikaraoke to make karaoke at the same time?
That would be a question I'll need to let others answer. It's beyond my knowledge.
It might be possible to have two PiKaraoke machines (in different houses) with the same video track already loaded, synchronised over the Internet via, say, UltraVNC (which comes free with Raspberry Pi), to start at approximately the same time. That would mean they'd be able to sing along with their track and you could sing along with yours.
However, getting your performance to reach them "at the same time" as theirs is playing (so it would sound like you were all singing together, which would have to be at exactly the same time) would be very difficult to arrange. Even if it could be done it would only work one-way (e.g. by delaying their track to match your singing) because the reverse delay that you would hear back would be doubled.
Maybe I'm over-interpreting what you're trying to achieve. Lots of on-line choirs on the news make it sound like it's easy to do in real-time, but actually it takes a lot of layering of recorded voices and a long time to compile, edit and mix.
Thank you very much for your answer ! I thought that it would be possible by having a raspberry master and another slave with the same installation on both sides. The raspberry master will send the instructions to the slave to start the music at the same time for example :) you think that is possible?
No this is not currently supported. Pikaraoke is meant to be a standalone app and supporting a network link between two separate systems isn't on the roadmap unless someone else wants to take it on. But I appreciate your feedback. I can see why during pandemic times it would be an interesting feature.
Okay very thanks for your response ! If you do this feature I'll be so glad 😁
Changing title to better match what is described. Probably not coming anytime soon, but leaving this up in case anyone else wants to take a crack at it.
Is there anything we might learn from the Jamulus project? https://jamulus.io/
Hmmm, Jamulus is audio-only (but it could satisfy the simultaneous sing-along requirement). Then we'd "just" (Ha-ha...!!) need to figure out how to do the shared lyric feed...
Ok, rather than streaming the whole video track, could the 'master' PiKaraoke maybe send the YouTube URL string to the 'slave' PiKaraoke to download for itself, then when both are ready to play, the master only needs to issue a start command* and the two videos play (video-sound muted at the remote end for lyrics only) but the master's video-audio and vocal audio get streamed to the remote where the remote performers can then sing along with the streamed audio? If streamed via a Jamulus server (or other low-latency audio-mixing server method) then it could approach a proper 'live' sing along experience for both parties after all (who knew?!). Even without the Jamulus-style 'live element the remote party would still be singing along with the master performer (although master would have to mute the delayed return stream). In that case the Master/slave roles could swap about for their own performance choices and the other party gets to sing along.
I actually have another project based on the low-latency online music collaboration software jacktrip https://github.com/vicwomg/jamtrip/blob/main/README.md
My take on it all is that it's very difficult to get usable latencies in groups larger than 2, and even then everyone has to have very specific setups with very specialized audio interfaces and ethernet connections.
I'm admittedly pretty unexperienced working with streaming and network protocols, this may be for someone else.
As far as k14vff's original post was concerned, 2 users would be enough for his/her particular use-case.
Even if we couldn't get a synchronised start between two PiKaraoke sessions like I'd proposed (e.g by RTP-MIDI), it might be feasible to run just the video-lyrics stream over something like meet.jit.si (a skype-like video-conferencing app) with the sound muted, as the audio-stream would be handled by the low-latency Jacktrip-like link.
The key to this being workable is that a singer has a significantly larger tolerance to latency in the video-lyrics feed than in the audio-sync. as long as the lyrics are visible before they're needed and the singer is able to sing along with what they hear (not just slavishly following the colour-change cue). The lyrics could be way off (~0.5 sec or more) and still be usable as long as the performers' vocal and soundtrack latencies are within about 0.1 sec. I'm fairly confident that a Jacktrip-based audio stream could satisfy the 0.1 sec requirement for many internet connections. I'm less sure of the capabilities of the video side though, but that's where a duplicated video-download source with a synchronised remote-start feature could still offer a fall-back solution.
Hi, I would like to use your pikaraoke on my raspberry and I would like to display karaoke on a screen of my parents. With a confinement I can't see my parents to do karaoke, also I would like to know how I can use karaoke on my raspberry pi in my home and send karaoke link for my parent.