HOA Technical Notes - N3D/SN3D Reference Implementation

N3D and SN3D are representations of ambisonic B-Format with useful mathematical properties. They are common in the Higher Order Ambisonic literature and our plugins use SN3D.

We strongly recommend that N3D and SN3D be stored using the ACN channel ordering sequence (see http://ambisonics.ch/standards/channels/). Also, be careful not to confuse N3D and SN3D. They are similar and easy to convert, but they are not directly compatible with each other.

There have been a few attempts to implement these encodings that have ended up being slightly wrong. You may wish to download the rambl-2.0.tgz archive, which provides a reference implementation of the N3D and SN3D equations in C using the ACN channel ordering sequence. It's not fast, but it is correct (hopefully!).

The "O3A Injector: N3D" plugin from the O3A Upmixers VST plugin library can translate N3D to SN3D for use with our other O3A plugins. A decoder reversing this translation in included in O3A Decoding.

SN3D is also used in YouTube Spatial Audio and the AmbiX file format.