Description
What problem does this solve or what need does it fill?
Imagine you are in a water level, but still above ground. The music plays normally.
Then you go underwater, thus the music becomes all muddied up.
Next, you jump out of the water, and the music returns to normal.
How do you implement that in Bevy?
- Godot has audio buses.
- Unreal Engine 5 has MetaSounds.
- Unity has audio effects.
What solution would you like?
An AudioFilter
trait, with a single method filter(&mut self, input: &[Sample], output: &mut [Sample])
, where Sample
is simply a type that implements rodio::Sample
.
Boxed audio filters are stored in Audio
, in order, and each can be toggled programmatically. These effects are global (unless #5832 is implemented, then it is local to each AudioListener
).
What alternative(s) have you considered?
Implement an audio filter using Decodable
and pass the audio source to it. Similar to iterator combinators or fundsp's audio units combinators. Very unergonomic when manually implemented.
Additional context
N/A
Metadata
Metadata
Assignees
Type
Projects
Status