kittyaudio

Crates.iokittyaudio
lib.rskittyaudio
version0.1.9
sourcesrc
created_at2023-11-29 20:48:39.609304
updated_at2024-02-06 18:22:05.569939
descriptionAn audio playback library focusing on simplicity
homepagehttps://github.com/zeozeozeo/kittyaudio
repositoryhttps://github.com/zeozeozeo/kittyaudio
max_upload_size
id1053541
size122,276
(zeozeozeo)

documentation

https://docs.rs/kittyaudio

README

🐱 kittyaudio

docs.rs Downloads on Crates.io

crates.io | docs.rs | examples | changelogs

kittyaudio is a Rust audio playback library focusing on simplicity, speed and low-latency audio playback.

Installation with cargo:

cargo add kittyaudio

Example

use kittyaudio::{include_sound, Mixer};

fn main() {
    // include a sound into the executable.
    // this type can be cheaply cloned.
    let sound = include_sound!("jump.ogg").unwrap();

    // create sound mixer
    let mut mixer = Mixer::new();
    mixer.init(); // use init_ex to specify settings

    let playing_sound = mixer.play(sound);
    playing_sound.set_volume(0.5); // decrease volume

    mixer.wait(); // wait for all sounds to finish
}

Features

  • Low-latency audio playback
  • Cross-platform audio playback (including wasm)
  • Handle device changes or disconnects in real time
  • Low CPU usage
  • Minimal dependencies
  • Minimal memory allocations
  • No panic!() or .unwrap(), always propogate errors
  • No unsafe code
  • Simple API, while being customizable
  • Optionally use Symphonia to support most audio formats
  • Feature to disable audio playback support, if you want to use kittyaudio purely as an audio library
  • Commands to change volume, playback rate, position and panning in the sound with easings
  • Loops, and commands to change them with easings

Roadmap

Those features are not implemented yet.

  • Effects (reverb, delay, eq, etc.)
  • C API
  • Audio streaming from disk
Commit count: 64

cargo fmt