Discussion - nickgang/AFDN-reverb GitHub Wiki

Spherical Harmonic Rotation

A necessary effect for creating localized early reflections is the ability to rotate the encoded sound field in real time. Recursive algorithms do exist for rotations in about x,y, and z up to an arbitrary order (Ivanic et al, 1996). Archontis Politis's Matlab implementation of this algorithm is available online. This toolbox will generate the desired matrix offline and it can be dropped into a desired project.

For this implementation we chose a simpler approach, allowing rotations only about the z axis. This still allows for localized delays that mimic wall reflections, but with a cleaner expression for the rotation matrix.

Ambisonic to Binaural Decoding

The original test file was generated with a mono source file encoded into 3rd order Ambisonic channels and then passed to our AFDN algorithm for processing. The final resulting 16 channels were then decoded to an 18 channel virtual spherical speaker array using an energy preserving in phase max_re decoder via the spat.decoder~ max object. This virtual speaker array was then rendered into binaural using KEMAR HRTFs. The final binaural demo file is an A/B playback comparison between our full algorithm (A) and a naive technique in which the mono signal is processed by an identical FDN prior to being encoded into Ambisonics (B).