Choosing a Sharing Platform
We looked at a number of platforms for connecting multiple participants together remotely, and concluded that Jamulus fit our needs the best.
Jamulus is a free, open source program that runs on MacOS, Windows and Linux, and lets a number of people connect together and hear each others’ audio streams. It is pretty straightforward to install, though not as easy as mass consumer products like Zoom. It also requires a server to which all participants connect. The server is a central hub that redistributes the audio. Presumably Zoom and Google Meet also have a central server, but Jamulus requires you to think about the server yourself, so it’s technically more involved than most of the products discussed below, at least for the person in the group tasked with setting up the server. But after extended experimentation, we found that, assuming all participants have a good connection to the Internet, Jamulus gave us the desired audio quality without much work on the part of most participants. It supports up to 50 simultaneous users. And it’s free.
The following pages cover the various aspects of using Jamulus:
Other Platforms Considered
Zoom is a popular video conferencing app that lets many people connect at once, and displays participants in a nifty gallery view that gives a pleasant sense of connectedness. Unfortunately, the audio is designed for meetings, where few people are talking at any given time. When we tried to sing together, it seemed that the system would choose the top three voices at any given time, and suppress the others. So it was impossible to hear everyone. We disabled the two background noise suppression options in the Advanced Settings menu, but that did not help enough. Here’s a paper evaluating the audio quality of Zoom and a few other platforms.
If you are using Zoom, make sure to go to the Audio Settings window and set some options:
Google Meet is a Google product similar to Zoom. Ordinarily, it may cost some money to use, but in the current environment Google has made it free. In our experience, the video quality was not as good as Zoom. It seemed like we could hear everyone at the same time. But the audio quality was still far too poor for a really artistic performance.
Ninjam is an interesting product designed for no-latency real-time musical collaboration. We didn’t try it, because it is designed specifically for a different musical idiom, where the tempo is completely steady. You tell Ninjam the tempo of your piece, and how many beats or measures are in the basic cell. It then tries to increase the latency between participants up to one complete cell. So instead of being half a beat off from the drummer, you are exactly four measures off from the drummer. Each participant has the experience of being completely in sync, just at a different place in the music. Sounds very cool, and perhaps we could create pieces with this kind of tempo regularity. In the present context, though, we are more interested in pieces with flexible tempi and non-regular metrical blocks.
Jamkazam is a tool not unlike Jamulus. They have broad ambitions, supporting video as well as audio, and linking directly to streaming platforms. But their development resources appear to be stretched thin at the moment. A recent email noted, “We are necessarily working on JamKazam part-time at this point. We are short on capital/cash. And we are very overwhelmed by the surge in the use of JamKazam.” As a result, there were technical difficulties when we experimented with it. We do look forward to trying JamKazam again in the future, when it has developed further and stabilized technically. UPDATE: I heard a talk from the Jamkazam developer, and they are still hard at work on the product. So we will stay tuned.
Source Elements makes a Chrome-based product called SourceConnect Now, which lets up to five participants share audio with each other (they are also rolling out a video-sharing service that works similarly). Ordinarily it costs money, but they are being flexible at the moment as well. The audio quality is very high, and in our experience, it was relatively reliable as long as everyone had a good Internet connection. We experienced some odd echoes on occasion, but that might have been due to our setup. To achieve the minimum possible latency, each participant’s audio is routed to each other participant directly. This is great from a latency perspective, but results in an increasing burden on each participant as more participants are added. There is currently a hard limit of five participants, and even if that limit were raised, ten participants would result in 45 separate audio streams, with each participant having to send nine streams and receive nine more. Twenty participants would create 190 streams. We are hoping to support that many participants, and the ultra-low latency is not as important, so SourceConnect Now isn’t a good fit.
Jacktrip is a software product from Stanford CCRMA that connects many computers together, passing a number of audio channels between them. It’s apparently what the researchers use. But it doesn’t actually do any mixing or routing. You would need to run a mixing console on the server. If you invested the necessary time to do this, you would then have the potential for all sorts of great features, as you could run a full DAW, add effects and plugins, and so on. But the server would need to be on a very fast machine with great Internet connectivity, and you’d have to go to the trouble of setting everything up. Jamulus gives you most of what you need right now, and you do have the option of adding effects to the final mix, so from a cost/benefit perspective, Jacktrip does not currently seem worth it.
Soundjack appears to be another peer-to-peer streaming product like SourceConnect. I couldn’t tell exactly how it works. It uses a browser, but also requires a piece of installed software on each user’s machine. I think it is sending the data directly from each user to each other user, resulting in lower latency but an exponentially increasing number of streams as the number of participants increases. It does allow more than two channels per participant, and so might be useful when we return to having more than one person per room.
ConnectionOpen is a paid audio sharing platform. I should investigate it. It is not cheap, however. Their non-free nature is evident in their description of the company: “ConnectionOpen, Inc. was incorporated in the state of Nevada in 2007 with the mission statement of both patenting and developing a low latency, high quality audio application that is end-user/internet compliant for point-to-point communication for use in business, school, entertainment and studio environments.”
Cleanfeed is a browser-based audio sharing platform. We will add an entry for this.
To install Jamulus, go to their Web site and click on the Download Jamulus! Button. This will take you to the Sourceforge download page (you can also go to the link directly). At the time of writing, this looks like:
Note that the big green button says “Download Latest Version”, and below it, Jamulus-3.4.4-mac.zip. Heavens; that’s newer than the version I have now. I’d better update! It says “mac” as part of the filename, because I am on a Mac. if you are on a different operating system, it will automatically choose the right version.
You can ignore the other stuff on this page and just click on the green button. With luck, the next page will say “Your download will begin shortly”, and a few seconds later the browser will download the software, usually into your Downloads folder.
Update: It now looks like the software may download automatically for you, without needing to press a green button.
The official Jamulus documentation covers installation on various platforms. The following detailed instructions are for Safari on a Mac, but the process should be similar for other platforms and browsers.
Safari on Mac
Click on the Downloads button in the top left of the window. You can also go to your Downloads folder and find the file.
Double-click on the .dmg file. For current versions of the installer, it will reveal this snazzy window.
There are two applications, Jamulus and JamulusServer. Select them both (by clicking and shift-clicking, or by dragging a selection rectangle around both) and dragging them to the Applications folder icon on the right. The Jamulus application is the regular client. The JamulusServer application is for running a server. You may never need to do that, but there's no harm in installing it as well.
Now you should be able to run Jamulus just like any other application. You can add it to your Dock if you want. You can remove the .dmg file in the Downloads directory. It is no longer needed.
A Note About Starting Jamulus for the First Time on a Mac
The first time you try to double-click Jamulus to open it on a Mac, you will probably see this message:
Apple is warning you because you are trying to run something that you downloaded from the Internet, to make sure you aren’t accidentally installing malware. To assure Apple that it’s ok, that you installed this application deliberately, highlight Jamulus in the Applications folder, right-click (or control-click), and select Open from the top of the menu.
You will then get a slightly different version of the same message, which allows you to click Open and go ahead with running it.
You will not be shown this warning on subsequent opens, and you can now double-click it to open it.