14 releases
0.7.4 | Oct 15, 2023 |
---|---|
0.7.1 | Sep 30, 2023 |
0.6.2 | Aug 28, 2022 |
0.5.0 | Jan 3, 2022 |
0.1.0 | Nov 26, 2020 |
#40 in Audio
208 downloads per month
Used in 24 crates
(7 directly)
185KB
3K
SLoC
Oddio
Oddio is a game-oriented audio library that is:
- Lightweight: Fast compilation, few dependencies, and a simple interface
- Sans I/O: Send output wherever you like
- Real-time: Audio output is efficient and wait-free: no glitches until you run out of CPU
- 3D: Spatialization with doppler effects and propagation delay available out of the box
- Extensible: Implement
Signal
for custom streaming synthesis and filtering - Composable:
Signal
s can be transformed without obstructing the innerSignal
's controls
Example
let (mut scene_handle, mut scene) = oddio::SpatialScene::new();
// In audio callback:
let out_frames = oddio::frame_stereo(data);
oddio::run(&mut scene, output_sample_rate, out_frames);
// In game logic:
let frames = oddio::FramesSignal::from(oddio::Frames::from_slice(sample_rate, &frames));
let mut handle = scene_handle
.play(frames, oddio::SpatialOptions { position, velocity, ..Default::default() });
// When position/velocity changes:
handle.set_motion(position, velocity, false);
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.