#rusty #audio-playback #sound #effect #sfx

rusty_audio

Convenient sound library for small projects and educational purposes

12 stable releases

1.4.1 Apr 10, 2023
1.4.0 Jun 13, 2022
1.2.1 Mar 15, 2021
1.1.5 Feb 27, 2021
1.1.0 Oct 10, 2019

#365 in Audio

Download history 577/week @ 2024-06-15 498/week @ 2024-06-22 215/week @ 2024-06-29 168/week @ 2024-07-06 435/week @ 2024-07-13 545/week @ 2024-07-20 519/week @ 2024-07-27 408/week @ 2024-08-03 701/week @ 2024-08-10 485/week @ 2024-08-17 488/week @ 2024-08-24 412/week @ 2024-08-31 470/week @ 2024-09-07 442/week @ 2024-09-14 535/week @ 2024-09-21 388/week @ 2024-09-28

1,877 downloads per month
Used in 3 crates

MIT/Apache

43KB
92 lines

Crates.io Version Crates.io Downloads Build Status

Rusty Audio Playback Library

rusty_audio is a fun and easy audio playback library that provides a 4-track audio system to load/decode audio files and play them, perfect for small projects. It is also well-suited for training purposes, and is featured in the Ultimate Rust Crash Course on Udemy.

  • Formats: MP3, WAV, Vorbis and Flac.
  • Platforms: Supports macOS, Windows, and iOS out of the box. Linux requires installation of extra dependencies.

This library uses the rodio audio playback library under the hood, which you should consider using directly if your needs are more complex.

Example

# Add this to your [dependencies] section in Cargo.toml
rusty_audio = "1.4.1"
// main.rs
use rusty_audio::Audio;

fn main() {
    let mut audio = Audio::new();
    audio.add("startup", "my_sound_file.mp3"); // Load the sound, give it a name
    audio.play("startup"); // Execution continues while playback occurs in another thread.
    audio.wait(); // Block until sounds finish playing
}

Built-in Example

You can run the built-in example by cloning this repository, and then running:

$ cargo run --example play

Dependencies on Linux

For Linux, the CPAL package that is used under the hood requires the alsa development libraries to be installed.

CentOS

sudo yum install -y alsa-lib-devel

Debian/Ubuntu

sudo apt install libasound2-dev

Contribution

All contributions are assumed to be dual-licensed under MIT/Apache-2.

License

Distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See license/APACHE and license/MIT.

Sponsor

If you like Rusty Audio, please consider sponsoring me on GitHub. 💖

Dependencies

~0.7–28MB
~428K SLoC