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 manager**`AudioManager` 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:

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

Play a sound with default settings:

```rust
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`](./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.