5 releases

0.3.1 Dec 20, 2022
0.3.0 Dec 20, 2022
0.2.4 Dec 18, 2022
0.2.3 Dec 18, 2022
0.2.2 Dec 18, 2022

#440 in Audio

MIT license

41KB
871 lines

Rust Audio Basic Utilities (rabu)

Some basic audio utilities and processors. These tools are meant to be simple and easy to use, while also expressing as much intend as possible.

The complete docs can be found at docs.rs.


Examples

Strongly typed units can easily be converted into each other:

use rabu::units::{SampleRate, Samples, Seconds};

let seconds = Seconds::from(3.0);
let sample_rate = SampleRate::from(44100);

let samples = seconds.to_samples(sample_rate);

assert_eq!(samples, Samples::from(132_300));

Audio buffers can be used in a way that makes sense:

use rabu::buffer::Buffer;
use rabu::units::{Channels, Samples};

let mut buffer = Buffer::allocate(Channels::from(2), Samples::from(4));

for channel in buffer.iter_chans_mut() {
    for sample in channel.iter_mut() {
        *sample = 1.0;
    }
}

lib.rs:

Examples

Strongly typed units can easily be converted into each other:

use rabu::units::{SampleRate, Samples, Seconds};

let seconds = Seconds::from(3.0);
let sample_rate = SampleRate::from(44100);

let samples = seconds.to_samples(sample_rate);

assert_eq!(samples, Samples::from(132_300));

Audio buffers can be used in a way that makes sense:

use rabu::buffer::Buffer;
use rabu::units::{Channels, Samples};

let mut buffer = Buffer::allocate(Channels::from(2), Samples::from(4));

for channel in buffer.iter_chans_mut() {
    for sample in channel.iter_mut() {
        *sample = 1.0;
    }
}

Dependencies

~1.5MB
~36K SLoC