1
0
Fork
You've already forked Firewheel
0
Powerful and flexible audio engine for games and other applications
Rust 100%
2025年09月21日 15:53:14 -05:00
.github add back FUNDING.yml 2025年07月09日 13:57:33 -05:00
assets add sampler pool 2025年02月02日 11:15:33 -06:00
benches revert back to patching by reference 2025年07月28日 17:06:06 -05:00
crates add more convenience methods 2025年09月21日 15:53:14 -05:00
examples tweak example filter node 2025年08月27日 13:32:04 -05:00
src new pool api 2025年08月05日 15:09:50 -05:00
.gitignore Revert "SVF based filters" 2025年06月30日 17:04:04 -05:00
Cargo.toml add delay compensation node 2025年08月30日 14:05:34 -05:00
DESIGN_DOC.md update reamde and design doc 2025年03月23日 15:42:12 -05:00
LICENSE-APACHE lots of stuff 2024年10月25日 14:49:02 -05:00
LICENSE-MIT lots of stuff 2024年10月25日 14:49:02 -05:00
README.md add no_std compatiblity note to readme 2025年08月04日 13:13:38 -05:00

Firewheel

Documentation Crates.io License

A low-level open source audio graph engine for games and other applications, written in Rust.

This crate can be used as-is or as a base for other higher-level audio engines. (Think of it like wgpu but for audio).

Key Features

  • Modular design that can be run on any backend that provides an audio stream
    • Included backends supporting Windows, Mac, Linux, Android, iOS, and WebAssembly
  • Flexible audio graph engine (supports any directed, acyclic graph with support for both one-to-many and many-to-one connections)
  • A suite of essential built-in audio nodes
  • Custom audio node API allowing for a plethora of 3rd party generators and effects
  • An optional data-driven parameter API that is friendly to ECS's (entity component systems).
  • Silence optimizations (avoid processing if the audio buffer contains all zeros, useful when using "pools" of nodes where the majority of the time nodes are unused)
  • Support for loading a wide variety of audio files using Symphonium
  • Fault tolerance for audio streams (The game shouldn't stop or crash just because the player accidentally unplugged their headphones.)
  • Properly respects realtime constraints (no mutexes!)
  • no_std compatibility (some features require the standard library)
  • (TODO) Basic CLAP plugin hosting (non-WASM only), allowing for more open source and proprietary 3rd party effects and synths

Non-features

While Firewheel is meant to cover nearly every use case for games and other applications, it is not meant to be a complete DAW (digital audio workstation) engine. Not only would this greatly increase complexity, but the needs of game audio engines and DAW audio engines are in conflict. (See the design document for more details on why).

Get Involved

Join the discussion in the Firewheel Discord Server or in the Bevy Discord Server under the working-groups -> Better Audio channel!

If you are interested in contributing code, first read the Design Document and then visit the Project Board.

License

Licensed under either of

at your option.