Mumble 1.4.230

Posted on January 16, 2022 by Robert Adam

We are proud to present you with the first stable release of the Mumble 1.4.x release series, which brings many new features, bug fixes and general improvements.

You can download the new version from our Downloads page or the GitHub release page or from within your Windows client or software package management system.

Mumble 1.4.230

It has been over two years since we released Mumble 1.3.0. Since then many new features and improvements have found their way into the software. And not less importantly: many fixes for issues that have been encountered with Mumble. Talking about each and every change here would definitely exceed the size of any reasonable release announcement. Therefore, we will restrict ourselves to highlighting what we think are the most prominent and/or interesting changes and we invite everyone to simply try out the new version and explore what has changed yourself. For the interested reader, we of course also include a full changelog at the bottom of this page as well.

If you are wondering, why this first 1.4.x release is not versions 1.4.0, but 1.4.230, please see this recent blog post describing our new versioning scheme that explains the absence of the mentioned version numbers.

Feature spotlight

As there are many, many changes with this new version, here is a selection of things that we think are most prominent. If you’re interested in all changes, have a look at the full changelog.

Plugin framework

Mumble has supported something it called “plugins” for a very long time. However, these plugins were not what one would typically expect when hearing about them for the first time. Instead of being general-purpose, (potentially) multi-function plugins, they were only ever dedicated for providing positional data from games (generally by reading the game’s in-memory representation). In addition to that, these plugins couldn’t really be installed and updated independently from the main application (for technical reasons) and therefore, plugins were mostly a static part of the Mumble client.

With Mumble 1.4 a new, general purpose plugin framework has been introduced. With this framework, the range of possibilities offered to plugin developers has been vastly increased and most importantly plugins are no longer restricted to positional data delivery (though that is of course still possible) and they can now be installed and updated at any time, without causing incompatibilities with the main Mumble client.

If you want to find out more about this new plugin framework (including how to write your first plugin), check out the plugin documentation.

Search dialog

If you have ever been on a somewhat large-ish Mumble server, you will probably know that sometimes it can be a bit hard to find a specific user or channel. Some of you might even be familiar with the feature of “free-type search” which was a built-in search functionality that worked by simply starting to type the user’s or channel’s name while the Mumble client has focus. However, this feature was very clumsy, not well documented and quite unsuitable, if the searched-for text yields more than one match on that particular server.

In order to improve on this situation, Mumble 1.4 ships with a fully featured search dialog that can be opened either via the menu bar or via the shortcut Ctrl+F (this shortcut previously toggled the channel filter but that has been re-assigned to Ctrl+Shift+F). With this dialog you can easily search for users or channels (or both) and you can even specify whether your search string is to be interpreted as a regular expression.

Search dialog

Channel listeners

This feature can to some extent be compared to the ability to link channels. Except that this does not operate on a per-channel basis but on a per-user basis.

Concretely this new feature allows a user to “listen to” a channel. In that case all audio that is heard by people in this particular channel (be it by direct communication, shouts or via linked channels) is also heard by the listening user. Conceptually you could picture “listening to” a channel with placing a microphone in a room and then listening to what is recorded.

This feature is one-way only, meaning that in order to speak to people in the listened channel, you’ll have to either join the channel or shout to it.

It should be noted that you will not be secretly listened to with this new feature. Listening to a channel creates a new entry in the channel’s user-list (referred to as an “ear” or a “listener”) and is thereby just as visible as a user actually being in that channel. There is also a dedicated ACL and several new server config options that can restrict this new feature.

Older clients (< 1.4) will not indicate listeners in the UI though! However, they are informed if this feature is enabled on a server when they join it (via chat).

Note: This feature requires server-side support and therefore is only available on servers running at least Mumble 1.4.

Channel listeners

TalkingUI

Have you ever been in a situation where you heard someone talking but couldn’t quite figure out who it was? Then this feature is probably for you!

The TalkingUI can be considered the equivalent of the already existing overlay but for “non-gamers” or in other terms for everyday usage.

This feature adds an optional floating window, containing a list of currently speaking users and their respective channels. This allows you to quickly see who’s currently talking and in which channel that person currently is in (this becomes important if you want to respond to that person).

The big difference between the TalkingUI and Mumble’s main window (which of course also contains this information) is that the TalkingUI does not contain all the other UI elements nor does it necessarily show the entire channel-tree. Furthermore it automatically resizes itself to the minimal size needed to display the respective information. Thus it usually does not take up a lot of space and can therefore be left floating in the corner of the screen without consuming too much screen real estate.

Note that the TalkingUI is highly configurable (Settings -> User Interface) and also provides selection and context-menu support just as you get it in the main window. In fact, the selection between TalkingUI and main window is synchronized and thus this plays really nice with the new “whisper to selected” feature allowing to whisper to whatever currently is selected in the UI (be it a channel or a user).

TalkingUI

UI indication for access restrictions

In previous versions of Mumble there was no indication of whether you are able to join a channel or not. You just had to try it out and either it worked or you got a permission denied message. This feature solves this problem by marking “access-restricted” channels with a lock icon. Access restricted channels are all channels that are either only open to a specific group on the server or require a password (access token) to join.

In total, a channel can be in one of three states: either it is not access-restricted in which case it just looks like channels used to look prior to the introduction of this feature or it is indeed access-restricted. In the latter case a lock icon is shown to the right of channel name. This look can either be open and green or closed and red. Green means that you can enter the channel nonetheless (you belong to the required group or have the correct password (access token) set) whereas red means that you are not allowed to enter the channel.

Note that this is also a feature that requires server-side support and thus only takes effect on servers that are at least running Mumble version 1.4.

Access restricted channels

Markdown

For those of you who don’t know what markdown is, we recommend a quick read of the respective Wikipedia article. In simple words it allows formatting of text by simply typing a few extra characters in it.

Mumble now supports markdown for text messages written in the normal chat bar. It is not supported for cases in which you use the dedicated message editor (e.g. for private messages). Furthermore only a subset of markdown is supported: sections, inline-code, code-blocks, bold, italic and strike-through text, links and quotes. Not supported are lists and tables.

This feature is probably best explained by an example. Try pasting the following text into the chat bar and see for yourself:

# Markdown
## Code
We can have `inline` code and
```
code
    blocks
```

## Emphasis
**bold** and *italic* (__bold__ and _italic_ also works) text is supported. ~~Scratch that~~

## Links
We can have [links](google.de) and www.google.de

## Quotes
> I am a quote
Although these are not pretty, they do work and are supported.

## Escaping
We can escape special characters using the \\ character: \*not italic\* and \*\*not bold\*\*

Markdown

Stereo playback

With version 1.4 Mumble (finally) learned how to play back stereo audio streams. This means that it is now possible to send a stereo stream to a Mumble client and it will actually be played back without being mixed down to a mono stream.

Note however that this feature is currently restricted to playback. The official Mumble client will still continue sending audio as mono. This feature is primarily intended to be made use of by (music) bots.

If you want to try this feature out yourself, you can either write a bot using pymumble version 1.2 or later or you can simply use a recent version of botamusqiue.

Nicknames

For those of you who are annoyed by people using excessively long or complicated names or people changing their nickname frequently, Mumble 1.4 introduces the possibility to set a nickname for users.

Depending on your configuration, a nickname will either be displayed next to a user’s name or replace it entirely.

The nickname will persist across restarts of client and server. In fact it’ll last until you either remove it again or the person the nickname was assigned to changes their client-certificate (Mumble’s way of keeping track of a user’s identity).

Note that nicknames are not tied to a particular server. That means that if you assign a nickname to a user on server A and then you meet that person again on server B, they will still have that very same nickname set on server B (the same way friends are recognized across servers as well).

Nicknames

Changelog

This is the full changelog for this release (changes relative to the Mumble 1.3.x release series).

Client

  • Added: “Join user’s channel” context menu action (#4149)
  • Added: “starttalking” and “stoptalking” to the socket RPC interface (#4754)
  • Added: Ability to disable text-to-speech for a specific user (#4287)
  • Added: Ability to paste and send chat message via shortcut (#4531)
  • Added: Ability to permanently display local volume adjustments in the UI (#4439)
  • Added: Ability to reset all settings at once (#4546)
  • Added: Ability to send images by pasting them to the chat box (#4265)
  • Added: Ability to set local nicknames for users (#4624)
  • Added: Ability to specify config file via commandline (#4369)
  • Added: Ability to specify database path in config file (#4369)
  • Added: Ability to use the currently selected user/channel as whisper/shout target (#4048)
  • Added: Allow gemini:// protocol for links in chat messages (#4888)
  • Added: CLI option to specify custom window title extension (#4155)
  • Added: ChannelListeners (ability to listen to channels without joining them) (#4011)
  • Added: DBus calls to control push-to-talk state (#3675)
  • Added: DBus calls to set/query transmission mode (#4119)
  • Added: DBus calls to toggle mute and deaf state (#4667)
  • Added: Echo Cancellation for macOS (experimental; disabled by default (#4694, #4914)
  • Added: Improvements for using –multiple command-line flag (#4949)
  • Added: Improvements to local translation dir search (useful for translators) (#4820)
  • Added: Markdown support in chat (#4076)
  • Added: Mute cue (get notified when speaking while being muted) (#4926)
  • Added: Native support for PipeWire (#4970)
  • Added: New talking state for users that are locally muted but sending audio (#4322)
  • Added: Plugin framework (#3743)
  • Added: Possibility to toggle 24h time-format for the chat (#3827)
  • Added: Prompt user for microphone permission on macOS if not granted already (#4676)
  • Added: Public server list can be disabled (#4316)
  • Added: Raw input support (replaces hooks and DirectInput) on Windows (#4941)
  • Added: Search dialog (#4967)
  • Added: Select all functionality in Messages settings page (#4465)
  • Added: Shorcut to hide/show the main window (#4562)
  • Added: Stereo decoding and playback support (#4209)
  • Added: TalkingUI (~ overlay for non-gamers) (#4066)
  • Added: UI indication for access-restricted channels (e.g. via password) (#3929)
  • Changed: Default min volume to 25% (positional audio) (#4954)
  • Changed: Display unit as suffix in SpinBox (#5017)
  • Changed: Increased minimum macOS version to 10.13 (which is what Qt requires) #5250
  • Changed: Resize chat images to 600x400 instead of 420x270 (#5050, #5368)
  • Changed: Text-to-speech is now disabled by default (#4627)
  • Fixed: Add support for input/output device switching on macOS (#5276)
  • Fixed: Application freeze when cancelling audio wizard (#5083)
  • Fixed: Client now respects the server-setting for unlimited image size (#4611)
  • Fixed: Crash when starting recording (#5309)
  • Fixed: CrashReporter considering 2xx codes as errors (#4929)
  • Fixed: Dialog for local volume adjustments could be hidden if always-on-top nehavior was active (#4244)
  • Fixed: Disable broken shortcuts on Wayland (#5315)
  • Fixed: Distorted positional audio (#4172)
  • Fixed: Don’t show URL password in clear text in chat log (#4779)
  • Fixed: Duplicate keyboard shortcut “c” in server browser (#4777)
  • Fixed: Echo cancellation not working properly (#4167)
  • Fixed: Echo cancellation options not translated (#4994)
  • Fixed: Handling of protocol violation by the server (#3866)
  • Fixed: Heap corruption caused by RNNoise (#4850)
  • Fixed: Issues with Mumble URL versioning (#4778)
  • Fixed: Loading a sample from a file would fail silently (#4497)
  • Fixed: Make “Defaults (all)” button in config dialog translatable (#4867)
  • Fixed: Memory leak in ALSA implementation (#4916)
  • Fixed: Memory management issue in the source code (#4982)
  • Fixed: Micro-freezes at startup due to version check (#3987)
  • Fixed: Minor bugs in ALSA implementation (#4920)
  • Fixed: Ordering of users inconsistent on machines with different locale settings (#4875, #5295)
  • Fixed: Positional audio not working properly after canceling audio wizard (#5046)
  • Fixed: Prevent hooking if a screen-reader is active on Windows (#3896)
  • Fixed: Properly show currently selected audio device in settings dialog (#4974)
  • Fixed: PulseAudio not initializing (#5184)
  • Fixed: Remove unnecessary waiting during application startup (Mumble now starts up way faster) (#5168)
  • Fixed: Use Utf8 for name field in certificate (allowing non-ASCII characters in it) (#4872)
  • Fixed: Validate/use the correct certifiacte from a peers chain (#5311)
  • Fixed: Various issues in the “About” dialog (#4785)
  • Fixed: Wrong “Image not supported” message (#4661)
  • Fixed: very distorted RNNoise output (#5366)
  • Improved: Accessibility (#4211, #4312)
  • Improved: Audio wizard (appearance & explanations) (#4100)
  • Improved: Automatically select Opus’s low delay mode for decreased latency (#3753)
  • Improved: Clear selection in shortcut settings after having removed shortcut to avoid accidental subsequent removal (#4358)
  • Improved: CoreAudio implementation (#4254)
  • Improved: Echo cancellation is now enabled by default on all platforms but MacOS (#4214)
  • Improved: Echo cancellation settings (#4113, #4174)
  • Improved: Formatting & spacing of messages in chat (#4026)
  • Improved: Include Windows-only plugins on Linux as well for use through Proton/Wine (#3511)
  • Improved: JackAudio support (#3826, #3876, #3887)
  • Improved: Noise cancelling & associated UI (#4212)
  • Improved: PortAudio support (#3889)
  • Improved: Server Browser UI (#4291)
  • Improved: Shortcut representation and interaction in settings (#4722)
  • Improved: Some settings pages (#4240, #4243)
  • Improved: The shortcut dropdown window is now sorted alphabetically (#3815)
  • Improved: The user is notified if a change (e.g. local mute) could not be saved permanently (#4301)
  • Improved: Tooltips for shortcut settings (#4543)
  • Improved: Use HTTPS links for presenting in the UI (#3921)
  • Improved: Use zeroconf instead of Bonjour on Windows if available (#4494)
  • Improved: Users can now always choose to receive update-notifications for the client (#4138, #4182)
  • Removed: CELT 0.11.0 support (#2045)
  • Removed: Classic theme (#4969)
  • Removed: DirectSound support (#3828)
  • Removed: Qt4 support (#3602)
  • Revamped: Positional audio settings page (#4995)
  • Revamped: Server information dialog (#4891)
  • Updated: Opus to v1.3.1 (#3813)

Server

  • Added: Ability to explicitly broadcast welcome text via Ice (#4809)
  • Added: Ability to load welcome message from file (#4344)
  • Added: Ability to log ACL and group changes (helpful for debugging) (#4017)
  • Added: Config option which allows the server to remeber a user’s channel for limited time only (#4147)
  • Added: Dedicated ACL for resetting comments/avatars (#4196)
  • Added: Option to not ban connections from an IP that managed to connect succcessfully (#4087)
  • Changed: Allow spaces in username by default (#4925)
  • Changed: Don’t automatically broadcast new welcometext when changing via Ice (#4794)
  • Changed: Make default max bandwidth the highest supported (#4700)
  • Fixed: 100ms timeout freezing when using gRPC (#4833)
  • Fixed: Always bind to both IPv6 and IPv4 by default (#5212)
  • Fixed: Ctrl-C leaves UDP port open (#4819)
  • Fixed: Database upgrade path ignoring specific data field (#5142)
  • Fixed: Fix protocol version not being set correctly (#4683)
  • Fixed: Fix undefined behavior on Linux hosts (#4915)
  • Fixed: ICE locking issues (#5136, #5310, #5358)
  • Fixed: Images being corrupted when transmitted via Ice (#4798)
  • Fixed: Possible DB corruption due to missing locks (#5044)
  • Fixed: Prevent multiple sessions with ID 0 (causing different users to appear as a single one) (#4886)
  • Fixed: Unauthenticated connections no longer add to user count (#4817)
  • Fixed: Undefined behavior when logging SSL error (#4452)
  • Fixed: Use a temporary keychain on macOS in order to avoid permission issues (#4345)
  • Fixed: Validate/use the correct certifiacte from a peers chain (#5311)
  • Fixed: Wrong “Unable to find matching CELT codec” warning upon connecting (#5112)
  • Improved: Also log a client’s OS (#4035)
  • Improved: CPU utilization by using TCP_NODELAY mode by default (#4054)
  • Improved: Use zeroconf instead of Bonjour on Windows if available (#4494)

Installer

  • Complete refactoring (#4574)
  • Improved: Chinese translations (#3807, #3613)
  • Improved: Uninstall no longer deletes murmur.ini file (#4096)

Positional audio plugins

  • Added: Among Us (#4571)
  • Added: General Source Engine support (#3771)
  • Updated: Call of Duty 2 (#4868)
  • Updated: GTA V (#4059, #5162)
  • Updated: Manual plugin’s UI now shows a speaker’s location (#4352)

Miscellaneous

  • Changed: The project has been migrated to be built with cmake instead of qmake (#4252)
  • Fixed: Cryptographic init potentially failing silently (#4903)

Changelog relative to latest development snapshot

This is the changelog relative to our latest development snapshot.

Client

  • Changed: Remove channel listener persistence (#5399)
  • Changed: Resize chat images to 600x400 instead of 800x600 (#5368)
  • Fixed: Add support for input/output device switching on macOS (#5276)
  • Fixed: Crash when starting recording (#5309)
  • Fixed: Disable broken shortcuts on Wayland (#5315)
  • Fixed: Duplicate plugin entries (#5327)
  • Fixed: Error if API call can’t work due to server (#5337)
  • Fixed: Fix crash & deadlock on plugin link/unlink (#5353)
  • Fixed: Link plugin incompatibility (#5341)
  • Fixed: Markdown parsing messing up links (#5355)
  • Fixed: Sort users case-insensitively (#5295)
  • Fixed: Validate/use the correct certifiacte from a peers chain (#5311)
  • Fixed: Wrong entry in plugin search path (#5340)
  • Fixed: very distorted RNNoise output (#5366)

Server

  • Fixed: Missing locks in ICE functions (#5310)
  • Fixed: Narrow down lock scopes (#5358)
  • Fixed: Validate/use the correct certifiacte from a peers chain (#5311)

Positional audio plugins

  • Fixed: Update Among Us plugin to work with v2021.12.15s (1421) (#5378)

Known issues

  • Overlay blocked by BattleEye. A request to whitelist it has been made.
  • Overlay blocked by CS:GO Trusted Mode
  • Autoscroll of chat window not working properly on Linux (#4638, #2504)
  • Certain special characters are not rendered on Windows (#4939)