#game-engine #game #audio-playback #flexible #node #graph

firewheel

Flexible, high-performance, and libre audio engine for games (WIP)

3 unstable releases

0.1.0 Oct 7, 2024
0.0.1 Oct 23, 2022
0.0.0 Oct 23, 2022

#425 in Game dev

Download history 2/week @ 2024-09-21 182/week @ 2024-10-05 25/week @ 2024-10-12

209 downloads per month

MIT license

105KB
2K SLoC

Firewheel

Documentation Crates.io License

Work In Progress

Firewheel is a flexible, high-performance, and libre audio engine for games.

Key Features

  • Flexible audio graph engine (supports any directed, acyclic graph with support for one-to-many connections)
  • A suite of built-in nodes for common tasks:
    • gain, stereo panning, stereo width (TODO)
    • summation (TODO)
    • versatile sample player (TODO)
      • disk/network streaming (TODO)
    • effects like filters, delays (echos), clippers, and convolutional reverbs (TODO)
    • spatial positioning (make a sound "emanate" from a point in 3d space) (TODO)
    • Decibel meter
  • Custom audio node API allowing for a plethora of 3rd party generators and effects
  • Basic CLAP plugin hosting (non-WASM only) (TODO)
  • Automatable parameters on nodes, with support for automation curves (TODO)
  • Fault tolerance for audio streams (The game shouldn't crash just because the player accidentally unplugged their headphones.)
  • WASM support (TODO)
  • C bindings (TODO)

Motivation

Firewheel is intended to be the default audio engine powering the Bevy game engine. Firewheel was separated out of Bevy into its own repository in the hopes that it could be useful for other games and game engines.

Get Involved

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

Dependencies

~1–30MB
~445K SLoC