godotengine / godotengine/godot

AudioServer.set_bus_mute() does not update the "Mute" button of the bus in the Audio Dock

Open
#121,967 0 comments 0 reactions 0 assignees View on GitHub
enhancement topic:audio topic:editor usability
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

- Reproducible in: v4.7.1.stable.official [a13da4feb], v4.7.stable.official [5b4e0cb0f], v4.8.dev2.official [7220d456d], v4.6.3.stable.official [7d41c59c4]

### System information

Godot v4.8.dev2 - Fedora Linux 44 (KDE Plasma Desktop Edition) on Wayland - X11 display driver, Multi-window, 1 monitor - OpenGL 3 (Compatibility) - AMD Radeon RX Graphics (radeonsi, polaris11, ACO, DRM 3.64, 7.1.4-204.fc44.x86_64) - Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz (4 threads) - 7.64 GiB memory - PulseAudio (48000 Hz, Stereo/mono)

### Issue description

When
```gdscript
AudioServer.set_bus_mute(bus_idx, true)
```
is called it does not update the "Mute" button of the bus in the Audio Dock.

I am calling this function from a plugin I am working on.

To make the bus appear as muted in the Audio Dock I have to click the button that loads the default bus layout, I expected for it to update without having to load the bus layout again.

### Steps to reproduce

On v4.8.dev2.official [7220d456d]
1. Look at the "Output" Dock to see that "AudioServer.is_bus_mute(1) == true"
2. Open the "Audio" Dock
3. Look at the "Example" bus, it does not look like it is muted
4. Click the 3 dots in the "Audio" Dock
5. Click the "Load Default Layout"
6. The "Example" bus should be mute now
7. Check res://addons/plugin/plugin.gd for more info.

### Minimal reproduction project (MRP)

[mrp.zip](https://github.com/user-attachments/files/30581393/mrp.zip)

Contributor guide

Open the contributing guide

Research direction

Start with the minimal reproduction project and inspect res://addons/plugin/plugin.gd, comparing AudioServer.is_bus_mute() with the Audio Dock's displayed state. Trace how the Audio Dock updates its bus controls after loading the default layout. Done means AudioServer.set_bus_mute(bus_idx, true) updates the bus's Mute button without reloading the layout.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.