sound 0.1.0

A lightweight, modular audio system for games — Tier 1 (simple, indie-friendly)
Documentation

Sound — Modular Audio Toolkit for Games

Sound (formerly Ash Audio) is a lightweight yet extensible Rust audio stack inspired by Bevy's ECS patterns. Tier 1 ships with a simple CPAL backend and ready‑to‑use managers; Tier 2 layers on AAA‑grade capabilities such as DAG buses, per‑bus FX, voice virtualization, and procedural audio graphs.

Highlights

  • Simple default managerAudioManager exposes one‑line playback APIs.
  • Pluggable backends – CPAL baseline with optional Kira/Rodio integrations (Tier 2).
  • Advanced mixing – Bus DAGs, per‑bus FX chains, soft clipping, spatialization helpers.
  • Voice virtualization – Smart eviction/reactivation for 512+ simultaneous voices.
  • Procedural audio – Feature‑gated AudioGraph, oscillators, envelopes, filters, mixers.
  • Tested + documented – Extensive unit/integration tests covering buses, codecs, mixing.

Getting Started

Add the crate to your project:

[dependencies]

sound = { version = "0.1", features = ["tier2"] }

Play a sound with default settings:

use sound::prelude::*;

fn main() -> sound::types::Result<()> {
    let mut manager = AudioManager::new()?;
    manager.play_sound("assets/music.ogg", "music")?;
    manager.set_mix_state("gameplay")?;
    Ok(())
}

Feature Flags

Feature Description
effects Enables the shared DSP infrastructure (effect trait + chains).
tier2 Convenience bundle for all advanced capabilities (includes backends, FX, streaming, procedural audio, profiling scaffold).
procedural Standalone procedural audio graphs if you only need synthesis.
backend-kira, backend-rodio Optional third‑party backends for Tier 2.

See Cargo.toml for the full feature graph.

Status & Roadmap

  • Tier 1 + Tier 2 Phase 1–2 are implemented (AudioManager, mixer v2, procedural graph).
  • Upcoming phases: streaming backends, expanded FX suite, profiling, advanced spatial.

Contributions are welcome—please open an issue or PR with proposals.