Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Audio popping when inside an Area3D with a reverb bus enabled and an amplifier on the master bus #104337

Open
TheWoodenTree opened this issue Mar 18, 2025 · 4 comments · May be fixed by #104382
Open

Comments

@TheWoodenTree
Copy link

TheWoodenTree commented Mar 18, 2025

Tested versions

Discovered on 4.4.stable
Reproducible in 4.4.dev4
Not reproducible on 4.4.dev3 or earlier

System information

Godot v4.4.dev4 - Windows 10.0.19045 - Multi-window, 2 monitors - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3070 (NVIDIA; 32.0.15.6636) - Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz (12 threads)

Issue description

When I have an AudioStreamPlayer3D inside an Area3D with reverb bus enabled, AND that reverb bus goes to the Master bus which as an amplify effect set to a low negative value (-22 for example), the audio player pops at the beginning. It ONLY happens when the audio is routed through the reverb bus via an Area3D. If I manually set the audio bus on the AudioStreamPlayer3D this does not reproduce the issue. This is troublesome for my game which uses this footstep sound (it happens for other sounds too), and I'm not quite sure why it's happening. Any help would be appreciated.

Video of issue:
https://drive.google.com/file/d/15mTZVlw0Hp77dBJlKRprKh3nXIx1bFlr/view?usp=sharing
I'm not sure why I couldn't directly upload the video

Steps to reproduce

Create an AudioStreamPlayer3D and put a stream inside it
Create and Area3D with reverb bus enabled, set to a bus with reverb, and with an amount of 1
Add an amplify effect to the master audio bus and set it to a low value like -25
Create a Camera3D set to current at the same position as the audio player
Create a script to play the sound when enter is pressed
Run the project

Minimal reproduction project (MRP)

sound-bug.zip

@Grublady
Copy link
Contributor

Reproducible on macOS 15.3, however I was able to reproduce on 4.4dev3 and even 4.3 as well.

It is more noticeable starting in dev4, which I'd wager is due to #98131 no longer falsely "covering it up" with a fade.

Either way, I don't think the issue at hand is a recent regression.

It also seems to be unrelated to bus effects, as I was able to reproduce the issue even with the effects removed.

@TheWoodenTree
Copy link
Author

TheWoodenTree commented Mar 19, 2025

That's strange. Did you just remove the Area3D? I am unable to hear the issue when the Area3D is removed or the audio player directly has its bus set to the new bus with reverb. I tried this on macOS 14.5.

Also this appears to be related to #103776, though adding fade-in did not appear to entirely fix the issue, but it did lessen it slightly. I'm not very familiar with audio, so perhaps I'm not adding enough, but I feel like fading in the first 0.1 seconds would have made it unnoticeable. I'm also not sure why I need the conditions I have to reproduce the issue on my end, or at least to a degree that is noticeable to my ears.

@Calinou
Copy link
Member

Calinou commented Mar 19, 2025

Area-based audio bus effects need some form of fading to avoid pop-in (but also to sound less jarring). This should probably use a custom system where you specify a fade duration in seconds, either on a per-Area3D basis or as a project setting (it could default to something like 0.25 seconds).

@Grublady
Copy link
Contributor

That's strange. Did you just remove the Area3D?

What I mean is that the Reverb and Amplify can be removed from the audio buses and the pop still occurs.

Also this appears to be related to #103776, though adding fade-in did not appear to entirely fix the issue, but it did lessen it slightly.

The issue here looks to be related to the bus routing, not the sample itself as in #103776.
(Note how there is no pop when routing directly to a bus, but there is one when using an Area3D's reverb send, even with the very same stream.)

Area-based audio bus effects need some form of fading to avoid pop-in (but also to sound less jarring).

Any need for fading an area-based send would be when a stream enters or exits the area.
In the MRP, the AudioStreamPlayer3D is always inside the area, so this is an orthogonal concern.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Unassessed
Development

Successfully merging a pull request may close this issue.

4 participants