First of all, thank you for providing such great software as open source.
Context
For some games it would be beneficial to enable the instrumentation of the positional audio parameters in the mumble client (Minimum distance, Bloom, Maximum distance and Minimum volume). Case in Point: The game "Among Us" with my mod. For example, different roles in the games would have larger or smaller communication distances.
Describe the feature you have in mind
Addition of the following RPC commands:
mumble.exe rpc pa_mindist <value>mumble.exe rpc pa_bloom <value>mumble.exe rpc pa_maxdist <value>mumble.exe rpc pa_minvol <value>Describe alternatives you've considered
The RPC command already supports muting an unmuting, which is very useful. But support could be even more immersive. Manually setting the values is cumbersome and relies on the players.
Additional context
I am open to discussion about the syntax of the commands. Additionally, if wanted, I propose the addition of a checkbox next to the "Headphones" one, called "Enable manual control", which would give the user to override the RPC commands, just like they are ably with muting / unmuting. When this checkbox is not active, all the sliders would be disabled and could only be controlled via RPC.
Contribution
I would be willing to implement this feature, however I first want to work out a version the project lead would approve and merge.
Looking forward to any feedback.
Hehe, very interesting you bring this up now as I just recently finished something that could easily be extended to fulfill your needs.
As you might now already (or maybe not, idk) I have created support for actual (more or less) general purpose plugins for Mumble (see #3743 - it's not yet merged as you can see, but it is already usable). On top of that, I have built a JSON interface that can be used to use the plugin API from outside of Mumble.
Have a look at https://github.com/mumble-voip/mumble-json-bridge
Therefore the plugin interface had to be extended in order to expose the positional audio settings (it already has a general settings framework. Thus you/we only had to add the specific settings needed) and that should be more or less it.
The whole thing then works by providing a Mumble plugin (JSON Bridge) that has to be enabled in Mumble's preferences. After that the CLI wrapper that is provided in the linked repo as well, can be used to send JSON requests to Mumble (all of the plugin API is accessible via JSON as well). For the specific syntax, have a look at the linked repo.
This obviously only works for Mumble clients that already include the changes from my plugin PR, but I expect the PR to be merged in the upcoming months and it is planned that 1.4.0 will be released with the plugin framework as a new feature.
This is great news!
So we would just have to extend your plugin a little bit, and then wait for version 1.4 of mumble, which will (hopefully) support your plugin? Is there any timeframe for release?
In that case, I would like to extend your plugin to fit my needs. Should I open an issue in your repo?
Thank you in advance!
Yes - though the plugin isn't what needs extension. It's the plugin framework.
The changes necessary to expose a few extra settings is rather minimal though, so I could even do that for you. Are the settings mentioned in your initial request all that you need? You'll get read and write settings to them :point_up:
Is there any timeframe for release?
Not really. Initially we wanted to release 1.4.0 somewhat soon after the plugin PR has been merged but we also wanted to start distributing snapshot releases earlier (some complications in regards to the Windows installer and the new build-chain prevented that though). Depending on when the plugin PR gets merged we'll probably still wait a bit in order for volunteers to test the changes in 1.4.0 before releasing it as a stable release.
The plugin PR itself will probably be merged in the matter of 1-2 months. Maybe earlier. I can't really tell as it is currently being reviewed by a third-party group.
Are the settings mentioned in your initial request all that you need?
Yes, setting those four values would be all I would need for now. If you want to add that, that of course would be cool - thank you very much!
In terms of release, that sounds promising. I will check back when there are public stable builds available.
Edit: if there are any usable beta versions, I would like to test those too.
Edit: if there are any usable beta versions, I would like to test those too.
Well I hope we can offer snapshot releases in 2-3 weeks. Until then there'd always be the possibility of compiling the branch for my plugin PR yourself or grabbing one of the CI artifacts :)
If you want to add that, that of course would be cool
Here you go: 19ba1af653c74ad208b8be644e5bb3b47ebfa2c6
Note that the commit ID will probably change at some point in the future as my PR branch is rebased somewhat regularly in order to keep up with the current master branch.
Most helpful comment
Here you go: 19ba1af653c74ad208b8be644e5bb3b47ebfa2c6
Note that the commit ID will probably change at some point in the future as my PR branch is rebased somewhat regularly in order to keep up with the current master branch.