Online Remote Karaoke with Jamulus

Or “how we now sing Lucky Voice at home with everyone’s mics up”

Jim Lamb
8 min readMar 7, 2021
Sing it!

In the beforetimes, we would occasionally have people over to our house and use Lucky Voice Online Karaoke to have a good old singalong. While it wasn’t quite the experience from a genuine karaoke booth, it was much more practical with children sleeping upstairs and much cheaper, given that we could sing until the small hours and drink beers from the fridge.

During the recent lockdown I’ve been looking at Jamulus, an open-source audio collaboration tool designed for low-latency, in the context of our choir being able to sing together remotely. Given that it works well for that, it didn’t feel like a massive leap to get it working for some remote karaoke.

While I’ve used Lucky Voice as my example, I believe this should work for any karaoke program or service that runs in a web browser.

Creating a working Jamulus server is not the work of a moment and configuring Jamulus clients does take a little bit of time, but if you like to sing with a group of people, it is worth the effort.

What you will need

Jamulus, including a private server

You will need to be familiar with Jamulus and have a private Jamulus server available. I’m not going to cover the setup and configuration of Jamulus here, it is well documented on the Jamulus wiki and there are many forums covering the details.

You will need to run a private Jamulus server for all the participants to connect to. If you are looking for a guide to setting up your own private server on Amazon EC2, please see my other article Creating and Running a Jamulus Server in Amazon EC2 — A Practical Guide.

Computers

Every household taking part in the karaoke will need a computer running MacOS, Windows or Linux. This simply won’t work on a mobile phone. The computer must have a wired network connection; wifi has too high a latency.

Everyone must use wired headphones, so one or more headphone Y-splitters will be needed if multiple people want to participate using the same computer.

In addition, one person will need to run a second computer (the “karaoke computer”) to run the karaoke software or online karaoke app for the whole group. For this article, I am assuming this computer is a Mac.

All computers, including the karaoke computer, will need to run Jamulus to share audio and video conferencing software (e.g. Zoom, Meet, etc) to share video.

To recap:

  1. A private Jamulus server — A Jamulus server you control (I guess you could use a public one if using it for this purpose is acceptable to those running it!). You can run a server on your computer, but to reduce traffic on your internet line and to reduce latency for everyone I would advise running one in AWS. See my article Creating and Running a Jamulus Server in Amazon EC2 — A Practical Guide for how to set one up.
  2. The “karaoke” computer — This will run the karaoke software or website, a Jamulus client and a videoconferencing app. All the audio output from this computer will be fed into Jamulus. The screen will be shared via the video conferencing app (e.g. Zoom) so everyone can see the karaoke lyrics. It has to have a wired network connection. For this article I am assuming this computer is a Mac. You only need one karaoke computer.
  3. Some “singing computers” — This computer will run a Jamulus client so you can hear your friends and they can hear you, and a video conferencing app (e.g. Zoom) so you can see your friends and the all important karaoke lyrics. You and everyone else participating will need one of these. This computer does not have to be a Mac, it can be anything capable of running Jamulus, i.e. Mac, Windows or Linux. It must have a microphone (built-in or external), wired headphones and a wired network connection. You need one singing computer per household.

Setting up the singing computers

  • Install Jamulus following the guide for your operating system on the Jamulus wiki. I won’t cover the setup and configuration of Jamulus here, it is well documented on the wiki and there are many forums covering the details.
  • Connect your Jamulus client to your chosen Jamulus server.
  • Sign in to your video conferencing (e.g. Zoom) meeting but remain muted. If possible, do not join the audio at all. In Zoom, this is different to muting yourself: when you join the call and it asks you whether you want to join with computer audio or a phone call, select neither by closing the box:
Decline to join audio in Zoom
  • It will ask you to confirm that you don’t want to join audio, click Continue:
Confirm that you wish to continue without audio in Zoom
  • You will end up with an audio icon like the one below, far left, showing that you’re not using audio at all:
  • If you don’t get asked about joining audio and it automatically joins you, you can leave audio by clicking the upward arrow next to the microphone, then selecting Leave Computer Audio:
Leaving computer audio in Zoom
  • Videoconferencing software other than Zoom will have different settings. Other systems may be fine with simply muting your microphone. So long as everyone is muted, there should be no audio going into the call in the first place.

Setting up the karaoke computer

In order to feed the sound from the karaoke application or browser into Jamulus, I need some additional software to do the audio routing. I installed a trial of Loopback, which looks great and works well, but it costs $120. Then I found Blackhole, an open-source project which has the features I needed. If you already use Loopback, don’t install Blackhole as well; you’ll be able to see what I did here and apply the same principles.

  • Download and install Blackhole — I downloaded the 2 channel version; there is a 16 channel version available too. To get the nice MacOS package installer, you need to give them your email address. (An alternative route is to install via Homebrew, see the Blackhole on GitHub for details if you want to do that)
  • Double click the downloaded .pkg file and go through the standard MacOS installer process
Install the Blackhole virtual audio driver
  • At the end of the install, you must reboot as it is hooking in to the MacOS audio system at quite a low level.
  • Install Jamulus following the guide for MacOS on the Jamulus wiki. I won’t cover the setup and configuration of Jamulus here, it is well documented on the wiki and there are many forums covering the details.
  • Connect your Jamulus client to your chosen Jamulus server.
  • Start your karaoke program or webpage, in my case Lucky Voice Online Karaoke. Get it to a point that it is playing some audio output.
  • Go to the Mac System Preferences -> Sound
  • Choose the Output tab and select Blackhole 2ch device
Select the Blackhole device for system sound output
  • Note: From this point on, you will not hear any sound out of your speakers. All system sounds will go to the Blackhole audio device. It is worth stopping any other applications (email, etc) that might make sounds and disturb your karaoke.
  • In your Jamulus settings, select the Device dropdown and choose “in: Blackhole 2ch/out: Built-in Output”. This will mean the sound created by all your applications will become the “microphone” in Jamulus. Also, you will be able to hear the output from Jamulus through your speakers again, which will include all your applications’ sounds, but now they will come via the Jamulus server with a slight delay.
Select the Blackhole device as input to Jamulus
  • Check on one of your singing computers that you can hear the karaoke music. Adjust the volume of the karaoke sound into Jamulus by using the normal system volume controls on the karaoke computer — remember the entire system sound is going into the Blackhole device and then into Jamulus, so anything you do to adjust the sound of the karaoke computer will be heard in Jamulus.
  • At this point, you want to stop any output from Jamulus coming out of the speakers of the karaoke computer as it will be picked up by the microphone on your singing computer and cause feedback. But do not be tempted to hit the mute button or reduce the Mac volume! As mentioned above, this will effect what is sent into Jamulus for everyone else to hear. In Jamulus, under the sliders in the Personal Mix, press Mute for every slider including your own. Note — do not hit the Mute Myself button on the left as this will prevent the karaoke sound being sent to everybody else.
Mute everyone’s output on the karaoke computer
  • Sign in to your video conferencing (e.g. Zoom) meeting and share the screen of the karaoke computer, so everyone can see the karaoke lyrics on their screens.
  • Now every singing computer should be able to hear the music via Jamulus and see the lyrics via the video conference.
  • You will need to select the songs to be played using the karaoke computer, but of course you can discuss this with your friends between songs. Lucky Voice allows all participants to add songs to the queue using a webpage which you can share via a QR code on the screen. This means everyone can use their phones to add songs and control the queue, and you can pretty much ignore the karaoke computer for the rest of the evening.
Lucky Voice remote control

That’s it! Let’s get singing!

Let it go!

--

--

Jim Lamb
Jim Lamb

Written by Jim Lamb

is Head of Engineering at AirWalk Reply

No responses yet