Skip to content

Audio

The audio renderer accepts voices, mixes, effects and sinks through the audren service. It produces one fixed period at a time and feeds a ring buffer used by Qt audio output. audout also plays queued PCM buffers.

Renderer fact Value
Sample rate 48 kHz
Frames per period 240
Period 5 ms
Output Interleaved signed 16-bit stereo

What is implemented?

Part Support
Voices PCM, ADPCM, resampling, pitch, volume ramps and biquads
Routing Mixes, splitters and circular sinks
Effects Delay, reverb, limiter, compressor, auxiliary send and de-pop
Output Device sink, raw output and Qt ring buffer
Spatial extension Distance, obstruction, reflections and measured binaural filtering

The Dungeon spatialiser uses the SADIE II D1 measured HRIR set. It interpolates the measured grid and applies a fixed-tap filter without allocating in the audio path. The ray-traced BoomBox uses one source with cardioid directivity. The renderer path itself stays an emulator extension where it goes beyond the documented console service.

Check Result
HRIR grid spacing 15 degrees
Filter length 160 taps
Right-side interaural delay 39 samples
Right-side level difference 15.73 dB

The Dungeon runs on the emulator and submits its audio through audren. Its captured PCM is byte-equal to the reference path.

Verified by: the audio service, DSP, renderer and fixed-event PCM tests in core/src/tests/audio, plus the Dungeon sound tests.

Sources: core/src/audio, core/src/nn/{audren,audout}.rs, core/src/audio/spatial.rs, scene/src/dungeon/sound, demos/assets/README.