u/FulltimeStupidity

AIRE 0.3.3 - a real-time audio engine for games and interactive applications

I'm building a 2D game in my spare time, and at some point I needed audio that went further than what existing crates offered, so I started building my own engine. I studied music technology before I got into software engineering, so audio is an area I want to get right.

If you need something production-ready today, kira is by far more mature. AIRE is more for developers who want an audio engine that eventually understands the environment it's running in, not just one that plays files and applies effects, which in all honesty is what it is right now.

Some highlights:

  • Communication with the audio thread is lock-free, safe to call from any thread without worrying about blocking
  • A band-limited oscillator with six waveforms: sine, saw, sawdown, triangle, square and pulse. PolyBLEP is used for antialiasing, (triangle uses PolyBLAMP)
  • WAV, OGG, FLAC, and MP3 supported, both in-memory and streaming
  • ADSR envelope with linear and exponential curve shapes

What I'm actually working toward is geometry-aware audio using acoustic ray tracing for my game. The idea is to shoot rays from sound sources into the tile world, use the results to derive reverb parameters dynamically, and have the acoustics respond to the environment in real time. That's not there yet, so next up is basic 2D spatial audio, then an FDN reverb.

Repo: https://github.com/Breijen/aire

reddit.com
u/FulltimeStupidity — 16 days ago
▲ 8 r/rust

AIRE - a real-time audio engine for interactive applications

I'm building a 2D game in my spare time, and at some point I needed audio that went further than what existing crates offered, so I started building my own engine. I studied music technology before I got into software engineering, so audio is an area I want to get right.

If you need something production-ready today, kira is by far more mature. AIRE is more for developers who want an audio engine that eventually understands the environment it's running in, not just one that plays files and applies effects, which in all honesty is what it is right now.

Some highlights:

  • Communication with the audio thread is lock-free, safe to call from any thread without worrying about blocking
  • A band-limited oscillator with six waveforms: sine, saw, sawdown, triangle, square and pulse. PolyBLEP is used for antialiasing, (triangle uses PolyBLAMP)
  • WAV, OGG, FLAC, and MP3 supported, both in-memory and streaming
  • ADSR envelope with linear and exponential curve shapes

What I'm actually working toward is geometry-aware audio using acoustic ray tracing for my game. The idea is to shoot rays from sound sources into the tile world, use the results to derive reverb parameters dynamically, and have the acoustics respond to the environment in real time. That's not there yet, so next up is basic 2D spatial audio, then an FDN reverb.

Repo: https://github.com/Breijen/aire

reddit.com
u/FulltimeStupidity — 17 days ago