2 unstable releases
Uses new Rust 2024
new 0.5.0 | May 16, 2025 |
---|---|
0.4.0 | May 15, 2025 |
#497 in Audio
36 downloads per month
54KB
610 lines
Bevy Procedural Audio
A third party Bevy plugin that integrates FunDSP into Bevy.
bevy_procedural_audio
supports integration for bevy_audio
, bevy_kira_audio
, and bevy_oddio
.
⚠ WARNING: Lower your volume before testing your sounds! ⚠
Remember to lower the volume by passing the settings with DspManager::add_graph_with_settings
or multiplying your DSP graph with a low constant (lower than 1.0).
Usage
#![allow(clippy::precedence)]
use bevy::prelude::*;
use bevy_procedural_audio::prelude::*;
fn main() {
App::new()
.add_plugins((
DefaultPlugins,
DspPlugin::default(),
))
.add_dsp_source(white_noise, SourceType::Dynamic)
.add_systems(PostStartup, play_noise)
.run();
}
fn white_noise() -> impl AudioUnit {
white() >> split::<U2>() * 0.2
}
fn play_noise(
mut commands: Commands,
mut assets: ResMut<Assets<DspSource>>,
dsp_manager: Res<DspManager>,
) {
let source = assets.add(
dsp_manager
.get_graph(white_noise)
.unwrap_or_else(|| panic!("DSP source not found!"))
.clone(),
);
commands.spawn(AudioPlayer(source));
}
Acknowledgement
I'd like to offer a big thank you to the authors of FunDSP and Bevy for making this plugin possible.
License
bevy_procedural_audio
is distributed under the terms of either the MIT license or the Apache License (Version 2.0).
See LICENSE-APACHE and LICENSE-MIT for details.
Dependencies
~36–74MB
~1M SLoC