Setting Up Mumble For Remote Podcasting: Low Latency And Great Audio Quality

Mumble 1.2.4. just entered RC1, so Opus support should be everywhere pretty soon.

This is a follow-up to: Replacing Skype for Remote Podcasting with Mumble and Opus

As stated before, Mumble’s default settings appear to be geared for gamers, not podcasters. Let’s walk through setting up Mumble for high audio quality and low latency.

Latency

Here’s the chain that adds up latency:

Sender sound card

In general, USB will add more latency than most firewire or PCI audio interfaces. Mumble appears to set the input buffer quite low automatically, so there isn’t much to set. USB mics outweigh their minimally higher latency with ease of use.

For the Røde Podcaster, we found that a system input level of 75% and no amplification in Mumble works fine.

Mumble input, “Audio per packet”

Set Mumble to the minimum of 10 ms if you’re on a good connection. Increasing this buffer will add latency, but might be useful if the connection has a high ping variance. This buffer and the output jitter buffer should be increased if the audio stutters or breaks up frequently.

Opus encoder

The old Skype SILK codec has a fixed algorithmic latency of 25ms. Opus can be configured down to 5ms, but I’m not sure what it’s set to in Mumble. Nothing to set here, as far as I know.

Local network

Prefer wired Ethernet over Wifi. Wifi introduces bigger buffers and varying speed, which will lead to ping jitter. Try minimizing the number of stuff between your machine and your CPE (aka Modem). DSL customers: if you can enable a fastpath option on your connection, do so. This will send out packets without changing their order, thereby delaying some of them.

Upstream and downstream route to server

As I wrote before, make sure the server is in a sweet spot between all participants. Different ISPs may route packets on different routes to the destination. Try tracerouting between all possible endpoints and minimize the sum of ping times.

Another local network

Again, avoid Wifi.

Mumble jitter buffer

Mumble can try to compensate differences in runtime from packet to packet by squishing or expanding audio a bit. This is very pronounced and dynamic in Skype – in Mumble, you set this to a fixed value. For very good connections, you might get away with the minimum. When the other end has a large variance in their ping times, you might want to try to set this to something around the difference between reported maximum and minimum ping times.

Mumble output delay

How often should Mumble send bits to the output sound card? As fast as possible. My Mac mini can deal with the minimum of 10ms. If your sound card starts stuttering, try increasing this.

Receiver sound card

Again, direct PCI or Firewire connections are a little faster, but some mics come with integrated USB sound cards and they will outweigh a little latency with direct monitoring.

Audio quality and mics

As always, the GIGO principle applies. Garbage in, garbage out. Make sure you have a good signal going into the encoder. Try recording a bit into QuickTime and listen to it. Think about keeping ambient noise low, proper levels while avoiding clipping and comparable EQ on all participants. Really, all participants should have a similar sound. Having one person on a bad mic really annoys me quite a bit and makes listening a chore.

Headphones

Make sure you’re not sending back the received signal via headphone bleed. Use closed headphones or in-ear buds.

I find that any cheap Sennheiser, e.g. CX200 (amazon.de, amazon.com) in-ear buds work quite well. Standard Apple headphones or Earpods are a little too open and might create an audible echo.

If you want big ear-enclosing (circumaural) headphones, I swear by the Beyerdynamic DT770 (thomann.de, amazon.de, amazon.com). If you’re planning to use them on professional gear such as headphone amps or mixing boards, get the 250 Ohm version. If you want to use them on mobile devices or directly on the Mac’s headphone jack, use the 80 Ohm version.

Mics

Here’s two good USB mics that work well out of the box: the more affordable Blue Snowball (thomann.de, amazon.de, amazon.com) and the Swiss Army Knife of podcasting, the Røde Podcaster (thomann.de, amazon.de, amazon.com). Another invaluable feature on the Podcaster is the built in zero-latency monitoring that will mix its live signal while simultaneously acting as a USB sound card for listening to Mumble’s output.

Don’t use super-sensitive condenser mics, unless you know what you’re doing. They tend to pick up more ambience noise, low frequency rumble, and echoes than desirable.

Result

Here’s a little uncompressed clip comparing audio sent through Mumble/Opus to audio straight off the mixing board.

First part is Mumble/Opus at ~72 kbit/s on the Blue Snowball. Second part is a Shure SM7B on the mixer. Both parts recorded off the mixer’s SPDIF interface.

Listen to the demo here. (1.7MB Apple Lossless, works best in Safari & iOS)

With the settings described above we achieve a ~90 ms roundtrip to the server and back, with ~60 ms spent on the internet and VDSL connection and ~30 ms within the audio input/output/encoder/decoder on the Mac.