soloud 0.1.4

Rust bindings for the soloud audio engine
Documentation

soloud

Rust bindings for the soloud audio engine library.

Supported formats: wav, mp3, ogg. The library also comes with a speech synthesizer.

Still pre-alpha.

Usage

[dependencies]
soloud = "0.1"

Or to use the latest developments:

[dependencies]
soloud = { git = "https://!github.com/moalyousef/soloud-rs" }

To play audio:

use soloud::*;

fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut sl = Soloud::default()?;

let mut wav = audio::Wav::default();

wav.load(&std::path::Path::new("sample.wav"))?;

sl.play(&wav);
while sl.voice_count() > 0 {
std::thread::sleep(std::time::Duration::from_millis(100));
}

wav.load(&std::path::Path::new("Recording.mp3"))?;

sl.play(&wav);
while sl.voice_count() > 0 {
std::thread::sleep(std::time::Duration::from_millis(100));
}

sl

Ok(())
}

To play speech:

use soloud::*;

fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut sl = Soloud::default()?;

let mut speech = audio::Speech::default();

speech.set_text("Hello World")?;

sl.play(&speech);
while sl.active_voice_count() > 0 {
std::thread::sleep(std::time::Duration::from_millis(100));
}

speech.set_text("1 2 3")?;

sl.play(&speech);
while sl.active_voice_count() > 0 {
std::thread::sleep(std::time::Duration::from_millis(100));
}

speech.set_text("Can you hear me?")?;

sl.play(&speech);
while sl.active_voice_count() > 0 {
std::thread::sleep(std::time::Duration::from_millis(100));
}

sl

Ok(())
}

To add a filter:

use soloud::*;

fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut sl = Soloud::default()?;

let mut wav = audio::Wav::default();
let mut filt = filter::EchoFilter::default();
filt.set_params(0.2)?;

wav.load(&std::path::Path::new("sample.wav"))?;
wav.set_filter(0, Some(&filt));

sl.play(&wav);
while sl.voice_count() > 0 {
std::thread::sleep(std::time::Duration::from_millis(100));
}

sl

Ok(())
}