From Mumble Wiki
Revision as of 23:22, 18 September 2006 by Slicer (talk | contribs)
Jump to: navigation, search

About Mumble

What is Mumble?

Mumble is a voice chat application for groups. While it can be used for any kind of activity, it is primarily intended for gaming.

What platforms does it run on?

The client, Mumble, runs on Windows XP. The server component, Murmur, should run on anything you can compile Qt 4.0 on.

What are the system requirements?

The client runs on any Windows XP machine, and you also need a microphone. The server is mostly bandwidth bound, so as long as your network hardware is sufficient it should run on pretty much anything.

Please note that the binaries distributed from SourceForge are compiled for SSE (Pentium 3 or Athlon-XP). Mumble is a VOIP solution for gaming, and as most modern games require at least that good a CPU it makes little sense for us not to optimize for it.

What makes Mumble better?

Mumble has very low latency combined with good sound quality; it uses Speex extensively, not just the voice compression technology, but also the voice preprocessing to remove noise and improve clarity. Mumble also has positional audio for supported games, meaning the other players' voice will come from the direction their character is in game.

What are the bandwidth requirements?

From 0.9.1, this is highly variable, and mostly up to the user. With top quality, minimum latency and positional information sent, it is 64.6 kbit/s including the IP and UDP overhead. With 80 ms transmission delay, the lowest quality speech and no positional information, it is 11.0 kbit/s (again with IP and UDP overhead). The default uses 45.4 kbit/s; we did not hear any noticable improvement in quality from the last 20 kbit/s. When comparing with other products, remember to compare the total bandwidth use and not just the bitrate of the audio encoding.

There are two parts to tuning the bandwidth; the audio bitrate per audio frame (20ms) and the amount of frames to put in each packet. Each transmitted packet has a overhead of 28 bytes from IP and UDP alone, so at the highest transmission rate (50 packets per second), that is 1400 bytes of data for raw network overhead alone. You should try to find a balance that works well for you, but we generally recommend sacrificing high audio bitrate for lower latency; Mumble sounds quite good even on the lowest quality setting.

There is no way to adjust the amount of incoming bandwidth; you will have to have enough to sustain the total amount of speaking players. This should be a minor issue; most players these days are on asymetric lines and hence it is only upload that is a bottleneck.

What tools did you use to make this?

See Development Tools.

How can I help?

A good start would be just using Mumble. If you like it, tell all your friends. If you do not like it, tell us what is wrong so we can fix it.

Audio Features

How does the positional sound work?

Your position ingame is transmitted along with every audio packet, and Mumble uses standard DirectSound 3D to position the audio on the receiver side. Only games for which a plug-in has been written get positional audio. All other games will work as well, you just will not get 3D sound.

Why does Mumble sound so much better than other voice products?

One word: Denoising. This is a standard part of Speex 1.1 and above, and any voice product already implementing speex should be able to trivially include the same filtering. Removing the noise from the input means that the audio will be clearer and that the needed bitrate will decrease. It takes fewer bits to model clear voice than it does to accurately represent the noise, so in any noisy transmission a large share of the bits will be noise modelling.

Where is the volume control?

Mumble uses the default volume you have configured in windows. There is no support for amplifying incoming voices, and there probably will not be, as this will decrease audio quality, something we are very reluctant to do.

The text-to-speech quality is horrible!

We use the standard MS Speech API, and the included voices are not all that good. If you have installed either MS Office or the Speech SDK, you will get more voices which can be configured from the Speech control panel.

Why do some voices sound metallic?

Mumble uses Speex noise filtering, and if the environment of the sender is especially noisy, some parts of the voice will be filtered as well. The alternative would be noisy sound, meaning precious bandwidth would be used to encode noise and the clarity of the voice would also decrease.

Why doesn't the voice activity detect my voice any more?

If you change your audio environment suddenly and drastically, by for example disconnecting and reconnecting your microphone or dragging a piece of paper directly over the microphone, you will throw the voice preprocessor off balance. It will recover, but it will take time.

To reset the preprocessor, choose 'Reset' from the 'Audio' menu.

What is this weird echo I hear of myself from other users?

Unfortunately, a lot of popular headsets produce tiny traces of echo. In other VOIP products, you will not notice it because the echo is lower than the noise level, but as Mumble dutifully removes all noise, the echo suddenly becomes clear. There is little the person hearing the echo can do, but there are a few things the person producing the echo can do. The easy solution is to use ASIO and enable echo cancellation, however this requires that the headset is of the analog type (no USB) and a very high quality soundcard.

The more troublesome solution is to modify the headset. If it is possible to pry the arm with the microphone from the headphones, do so and reattach it with a thick piece of rubber tape; this should insulate it from vibrations. If your headset is open (no large earmuffs), there exists an echo path through air from the headphones to the microphone. You can fix this by attaching anything foam-like to the front of the headphones to muffle the sound heard outside them, but this will most likely ruin the ergonomics of the headset as well as look somewhat odd.

We might put up a page of "tested headsets" if anyone wants it.


What sort of bandwidth will I need for the server?

Number of users × Number of talking users × 60 kbit. Note that Mumble is geared towards social gaming; its quality enables people to talk naturally to each other instead of just barking short commands, so the amount of "users talking at the same time" can be somewhat higher than expected.

This means that a server with 20 players and 2 players talking at once requires 2.4 Mbit/s. These figures assume all players are in the same channel, and that you use the default quality settings.

Where do I configure the welcome message, listen port and so on?

murmur.ini, it is self-documenting.

How do the ACLs work?

See ACL and Groups

mumble.pri:8: Unknown test function: CONFIG

Mumble requires Qt version 4, preferably 4.0.1.

You will need this flag "-qt-sql-sqlite" when you run the ./configure for Qt.

How can I reset the database?

Delete the murmur.sqlite file

How can I change a users password?

-bash-3.00$ sqlite3 murmur.sqlite
sqlite> UPDATE players SET pw = 'newpassword' WHERE name = 'playername';
sqlite> <Ctrl-D>

How do I backup the database?

Shut down the server (kill the process), and make a copy of murmur.sqlite. That file is the database.

Common Problems and Resolutions

Problem: Webserver not able to write to DB when using murmur.cgi.

Solution: Make sure both DB and directory that DB is in is writing be the webserver user.

Problem: Error message in murmur.cgi line 118

Solution: You need an MTA on localhost unless you have defined a different SMTP server.

Problem: Connecting, but not able to create/join channels

Solution: You currently cannot use the 0.9.1 client with the CVS version of the server (0.9.2).

Problem: Can't find Push to Talk button

Solution: When you set Push to talk in Config > Settings > Basic Audio, you then need to also bind a key to PTT. You do this in Config > Shortcut.

Failure to load mumble_ol.dll

If you are running Win XP with SP2, this is due to a outdated DirectX. DirectX is actually updated each and every month, which is why you see every game trying to update your DirectX. So while the version may be 9.0c, what you want to look at is the release date. The latest version may be found at http://www.microsoft.com/windows/directx/default.mspx