[−][src]Crate timbre
An audio library designed for composing real-time effects.
Timbre is designed to establish a common interface and a decent-sized library of effects and decoders for playing audio in real time. It is aimed at eventually providing most of the audio functionality needed for game programming, but should be flexible enough for other applications as well.
Example
use std::time::Duration; use timbre::prelude::*; // SDL setup. let sdl = sdl2::init()?; let audio = sdl.audio()?; // Inputs let mut microphone = timbre::drivers::Sdl2Input::new(&audio)?; microphone.resume(); let music = timbre::decoders::WavDecoder::from_file("./assets/music-stereo-f32.wav")?; // Apply effects let microphone = timbre::effects::Echo::new(microphone.source(), Duration::from_secs_f32(0.5), 0.6); let music = timbre::effects::LowPass::new(music.into_shared(), 200.0); // Mix them together let mut mixer = timbre::effects::BasicMixer::new(); mixer.add_source(microphone.into_shared()); mixer.add_source(music.into_shared()); // Output let mut speaker = timbre::drivers::Sdl2Output::new(&audio)?; speaker.set_source(mixer.into_shared()); speaker.resume();
Modules
decoders |
|
drivers | Sources and sinks that connect to hardware. |
effects | Effects that transform or combine |
generators |
|
prelude | Exports commonly-used traits. |
Structs
AudioBuffer | Bundles an |
AudioFormat | Used to know how to interpret audio data. |
ReadResult | Indicates the amount of data read and the status of an |
Enums
Error | Unified error type. |
StreamState | Indicates the state of an |
Traits
AudioSource | Trait implemented to provide audio data to consumers. |
IntoShared | Helpful extension to move |
Type Definitions
Sample | |
SharedAudioSource |