Audio
HxEngine’s audio is a C# software mixer built over MiniAudio (for decoding and device output), with NWaves providing DSP. It’s event-driven, like a game-audio middleware.
Event-driven playback
Section titled “Event-driven playback”Gameplay code posts events rather than playing files directly:
PostEvent("Play_Footstep", entity) → resolve the audio event asset → pick a sound from its container (random / sequential / weighted) → allocate a voice and playThis keeps sound design in assets, not code.
The mixer
Section titled “The mixer”- Hierarchical buses — a bus tree with volume/mute cascading to a master output.
- Effect chains — ordered insert effects per bus with wet/dry processing.
- Sends — route to aux/return buses (e.g. a shared reverb), pre- or post-fader.
- Voice management — a voice pool with priority, virtualization and stealing.
- Automation — animate bus, effect and send parameters from curves at runtime.
DSP effects (NWaves)
Section titled “DSP effects (NWaves)”Filters and dynamics processors are available as bus inserts — low/high/band-pass filters, compressor, and more.
3D & voice
Section titled “3D & voice”- 3D positional audio via emitter and listener components (the listener usually follows the camera).
- Voice lines with subtitle events, organised into voice banks.