Open phantomdesvin opened 2 months ago
CC @adamscott
Trying to work arround this, I discovered that while the Master audio bus volume affects the audio clips volume correctly, if I change the AudioStreamPlayer's Bus property to a different bus, changing this other bus volume does not affect the audio clips volume correctly. This again happens only on web.
Trying to work arround this, I discovered that while the Master audio bus volume affects the audio clips volume correctly, if I change the AudioStreamPlayer's Bus property to a different bus, changing this other bus volume does not affect the audio clips volume correctly. This again happens only on web.
Can you create another issue?
Edit: I cannot reproduce this issue on web. Here's my MRP: web-bus-volume.zip
Trying to work arround this, I discovered that while the Master audio bus volume affects the audio clips volume correctly, if I change the AudioStreamPlayer's Bus property to a different bus, changing this other bus volume does not affect the audio clips volume correctly. This again happens only on web.
Can you create another issue?
Edit: I cannot reproduce this issue on web. Here's my MRP: web-bus-volume.zip
I was doing that. But checking the project I used to investigate the workarround, where I discovered the bus volume was not being applied, I saw this error in the debugger:
E 0:00:08:0415 audio_stream_player.gd:28 @ _on_button_3_pressed(): Index p_bus = -1 is out of bounds (buses.size() = 1).
<C++ Source> servers/audio_server.cpp:958 @ set_bus_volume_db()
<Stack Trace> audio_stream_player.gd:28 @ _on_button_3_pressed()
My function to lower the footsteps bus volume was not getting the correct bus index but I can't understand why. I made sure the bus name was written correctly using autocompletion and double checked the function, but I don't know what I am missing. The code was:
func _on_button_3_pressed() -> void:
var bus_index = AudioServer.get_bus_index("footsteps")
AudioServer.set_bus_volume_db(bus_index,-30.0)
I also checked that the AudioStreamPlayer had the bus property set to footsteps
At the end, I decided to delete the footsteps bus, I created a new Footsteps bus, and just changed that capital F in the function (actually using autocompletion again) and this time the function worked and changed the volume correctly, also on web.
So this was probably me making some mistake or maybe a strange bug with the buses system. I honestly don't know how I could be doing something incorrectly if all I was doing was asking the API to give me the index of a bus that was written using autocompletion and the index was not correct. But I'm a begginer so I wouldn't rule out me managing to mess it up somehow.
Sorry for the inconvenience and thank you for the quick response and bugfix. You guys are amazing.
Tested versions
Reproducible with Godot 4.3 Stable. Web export. I'm assuming this happens because of the new (4.3) web audio sample system.
System information
Windows 10, Web export, Chrome, Godot4.3 Stable, wav format.
Issue description
AudioStreamPlayer's volume property is not applied, it doesn't affect the actual volume of the played audio when playing it using an AnimatioPlayer's animation that uses an audio clips track to play the audio. Only happens on web. Only when playing the audio using an audio clips track.
Steps to reproduce
In the minimal reproduction project I have two AudioStreamPlayers. Both can reproduce the same "footsteps.wav" audio, and both are set to -80 dB, so they should both emit no sound when played if they are applying the volume properly. However, when pressing the second button that plays an AnimationPlayer's animation that uses an audio clips track to reproduce the audio, the volume is ignored in the web so the audio can be heard at normal volume.
For reference, pressing the first button will play the audio using another AnimationPlayer's animation but with a track that enables the playing property of the AudioStreamPlayer. Doing it this way, or any other way other than using the audio clips track, volume (-80) is applied correctly so no sound can be heard.
Also, both apply the -80dB volume correctly when not in the web.
I don't see any workarround to make it work. Please inform me if you know one. Using the playing property track works but it doesn't let us use the clipping features of the audio clips track, and we would have to remake all the animations audio timing and edit some audios that need to be clipped in an external audio editing program.
Minimal reproduction project (MRP)
audio-volume-ignored-on-web.zip