Skip to content

Powerful and flexible audio engine for games and other applications

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

BillyDM/Firewheel

Repository files navigation

Firewheel

Documentation Crates.io License

A low-level open source audio graph engine for games and 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
  • (TODO) Basic CLAP plugin hosting (non-WASM only), allowing for more open source and proprietary 3rd party effects and synths
  • 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 respect realtime constraints (no mutexes!)
  • An API that is friendly to ECS's (entity component systems)

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 engine and DAW audio engine 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.

About

Powerful and flexible audio engine for games and other applications

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages