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

Allow sends to multiple buses from a single AudioStreamPlayer node #60316

Closed
wants to merge 1 commit into from

Conversation

ellenhp
Copy link
Contributor

@ellenhp ellenhp commented Apr 17, 2022

Draft state for now, Implements godotengine/godot-proposals#1836

Screen Shot 2022-04-17 at 12 07 49 AM

Right now it uses linear units, and the loudness across all sends is not zero-sum. Those things could both change depending on feedback.

@Calinou Calinou added this to the 4.0 milestone Apr 17, 2022
@ellenhp
Copy link
Contributor Author

ellenhp commented Apr 17, 2022

One comment on this is that we should probably put a little warning on the node somehow if it doesn't have any sends, and perhaps even make the minimum number of sends 1 instead of 0. If a user attempts to remove the last send, one is added for the Master bus. While testing I ran into a situation where I wasn't hearing audio playback and it wasn't clear that the player was configured with no sends.

@fire
Copy link
Member

fire commented Apr 19, 2022

I have a preference for using one unit across every parameter for loudness. DECIBELS.

@ellenhp Mentioned

crossfades with linear units are easier, and a huge reason this exists is crossfades, but we have linear2db.

So I wanted to poll the group.

@ellenhp
Copy link
Contributor Author

ellenhp commented Apr 19, 2022

Another tricky thing is that people probably won't understand that the decibels in the sends will be relative to the overall volume, not an "absolute" volume.

@fire
Copy link
Member

fire commented Apr 19, 2022

Won't the linear format will have the same confusion?

@ellenhp
Copy link
Contributor Author

ellenhp commented Apr 19, 2022

I don't think so. I do generally agree that we should probably be consistent with units, but people tend to understand linear units better than decibels in general so I doubt that people would have the same confusion.

I will switch this to decibels I think then maybe we (I?) can write a tutorial about audio that covers how to do a loudness-preserving crossfade between buses.

@TokageItLab
Copy link
Member

I think that AnimationTree's implicit AudioStreamPlayer volume change should be eliminated and the user should be able to arbitrarily change the volume with ValueTrack. (Ref: #55218)

The only sense in which the current implicit blending exists is to bypass the linear blending of the AnimationTree and blend the volume on a log scale. With this fix, we should be able to consider making the implicit volume change in AnimationTree eliminated.

@ellenhp
Copy link
Contributor Author

ellenhp commented Apr 20, 2022

I don't think that's related to the sends of an AudioStreamPlayer though. The sends just determine where audio is sent, not how loud the stream is. Plus, like fire said it probably makes sense to remove all the linear units everywhere for audio. I was very confused by your comment in that PR which is why I hadn't responded, but I just went and left a comment. Let's continue discussion there for animation topics.

@clayjohn clayjohn modified the milestones: 4.0, 4.x Aug 18, 2022
@ellenhp ellenhp closed this Apr 25, 2024
@AThousandShips AThousandShips removed this from the 4.x milestone Apr 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement the ability to send audio sources to multiple buses
6 participants