## Voice chat with Mumble For science fiction fans, it feels like video chat was a long time coming, but now it's safe to say that a video call is indeed a great way to communicate remotely. Just as advertised by Star Trek and countless Philip K. Dick novels, the human face conveys a lot of information that the human voice doesn't. There's a human connection etablished through a video call that doesn't quite happen with text or even voice chats. It's a triumph of modern technology. However, the cost of video is that it requires a lot more bandwidth than just a voice call. It also requires a greater degree of preparation. You have to dress for the occasion, you have to tidy whatever makes up your backdrop, you have to cordone off your "set" so there aren't children or cats running through your shot, and so on. What seems like it should be a simple phone call becomes a small scale television production. For my online D&D games, I find that video adds an overhead with no benefit. Switching to voice only leaves more bandwidth for more call participants, and for running [map software](https://opensource.com/article/19/6/how-use-maptools). For business meetings, the same can be true. A voice chat can simplify the setup required for a meeting, and it can conserve on bandwidth for helpful applications like [Drawpile](https://opensource.com/article/20/3/drawpile). ## Mumble Since 2005, the Mumble project has provided easy voice chat over a cross-platform application. It uses notoriously lightweight open source compression, including [CELT](http://celt-codec.org), [Speex](http://speex.org), and [Opus](http://opus-codec.org), and has a text chat client built in. There's a whole network of available Mumble servers out there for you to use, or you can run your own because both the client and the server application are open source. ## Install Mumble To install Mumble, download the Mumble desktop app from [Mumble.info](http://mumble.info) for Linux, macOS, or Windows. On Linux, you can also install Mumble as a [Flatpak](https://flathub.org/apps/details/info.mumble.Mumble) or [Snap](https://snapcraft.io/mumble) package. For Android, download the Plumble app from [F-droid](https://f-droid.org/en/packages/com.morlunk.mumbleclient/) or the Google Play store, and on iOS try the Mumblefy app. After installing, launch Mumble to step through the setup wizard. The setup wizard helps you configure your audio for optimal performance, both in terms of bandwidth and reducing noise-to-signal. If you're having trouble configuring your audio, remember these important audio troubleshooting steps, in this order: 1. Check your cables. A microphone or headset not plugged in to (or paired with) your computer is guaranteed to not be recognized. 2. Check your computer sound settings. Your OS may have the wrong microphone set for input, or the wrong set of speakers set for output. I've absolutely been guilty of telling someone they've got their sound misconfigured only to find later that I just hadn't selected the right output in my system settings. 3. Check Mumble's settings. Sound devices listed by a computer are usually given relatively cryptic names. For instance, could that **built-in mic** you see in a Mumble selection menu actually be your **line in jack** in disguise? ### Push to talk Your worst enemy during Mumble chats is feedback, but it'll vary from computer to computer how bad that gets. For instance, if your computer happens to have a microphone uniquely situated to pick up sound from your computer speakers, then you're more likely to cause (and hear) an echo. There are three effective ways to combat this: you can use a headset, you can use push-to-talk, or you can do both. A headset with an audio jack, a USB cable, or a Bluetooth connection can be used as input for Mumble. Headsets are good because they isolate the output of Mumble so there's basically no chance of your microphone picking it up and rebroadcasting it. Keep in mind that any time you change input and output sources (such as plugging in or pairing a headset), you may have to adjust your computer and Mumble settings so that they both are configured to bypass the obvious defaults (usually the built-in microphone and speaker). Push-to-talk requires you to press a key while talking, like a CB radio, or walkie-talkie. I find this to be the most reliable way to keep your signal clean and clear. To set it up, you can opt-in during the setup wizard. ![](mumble-wizard-push-to-talk.png) I use the gravé (**~**) symbol or the right **Alt** key on my keyboard, but you can use any key that suits you. If you're using Mumble while working with other applications, choose a key that has little or no meaning to the other applications you plan on using, such as the right **Super** (Windows logo or Command). If you don't want to use a key at all, you can alternately enable a push-to-talk window, which you can use as an on-screen clickable button. After you're all configured, it's time to join a server. ## Mumble servers Just as there are hundreds of independent websites in the world, there are dozens of mumble servers online. To connect to one, go to the **Server** menu in Mumble's main menu and select **Connect**. In the **Mumble Server Connect** dialog window that appears, browse through the Public Internet category to find a server near you. These are all public servers, and some of them are managed better than others. Some allow you to add your own channel, while others have channels already created and just expect you to use those. You're free to use these for voice chats, and I've used public servers in the past with great success. For serious chats, though, I use a private server. Because Mumble is such a lightweight application, you don't need a server farm or even a traditional server to run it. You can install a Mumble server (called **Murmur**) on a Raspberry Pi and expect good performance as a private chat server. If you don't consider yourself a sys admin, you can usually find a public server that offers private accounts upon a demonstration of good will (such as a respectful email request for a private channel). The process isn't quite as direct and robotic as it is with big Internet chat conglomerates, but I've found that the Mumble experience is superiour. You get to know the admin of your server, you get admin priviledges over your channel, and you maintain autonomy from faceless service providers. To add a custom server, click the **Add New** button in the **Mumble Server Connect** window. In the **Add Server** window, enter values for: * server address: The server you're adding. This might be provided to you by a server admin if you're adding a private server. * port: Usually the default is acceptable, unless your server admin tells you otherwise. * username: You can invent whatever username you want. If you're joining a private server, the server authenticates against a certificate given to you by your server admin, not your username. ![Adding a Mumble server](mumble-server-add.png) Once the server's added, you can join it by selecting it in the **Favorite** category. A Mumble server is structured almost like a directory tree. When you first sign on to a server, you're usually either in a "lounge" area or you're just on the server but not in a channel. To enter a channel, drag your username into a channel. ![Mumble channels](mumble-channels.png) People you want to chat with do the same thing: they add a server to their Mumble client, connect, and then drag their username into your channel. ## Mumble chat Mumble is a small, efficient, low-latency chat application with many more features than covered in this brief introduction. It's a fun and simple application, and best of all it's open source. Give it a try the next time you need to avoid a video chat.