Ambisonic Decoding in Heilan
Heilan offers various methods to decode it's soundfield so it can be passed on to a speaker rig:
- Speaker Configuration Presets: Heilan offers 12 preset decoding setups, derived from the matrices available here. See below for basic visualisations of them (included as .x3d files in the most recent downloads of Heilan). If your speaker rig matches one of them, the presets are probably the simplest solution.
- Custom Configuration: Heilan accepts an XML file with information about your speaker rig. It can attempt to calculate the correct coefficients for you (though I cannot guarantee the validity of those coefficients - there's a good chance they will be incorrect), or you can pass your own coefficients in instead.
- Ambisonic Components Output: Alternatively, Heilan can be instructed to bypass the decoder, and stream the Ambisonic B format signal straight out. This means you can hook Heilan up to a separate decoder (like AmbDec), and use it instead.
All of these options can be set from the Speaker Configuration widget on the Front End application, or you can pass them in on the command line:
-ap [0-10]: Speaker presets; 0 - Mono 1 - Stereo 2 - Square 3 - Pentagon 4 - Hexagon 5 - Octagon 1 6 - Octagon 2 7 - Surround 1 8 - Cube 9 - Dodecahedron 1 10 - Dodecahedron 2 -ap 11: Ambisonic B format components -ap 12 <file>: Custom speaker configuration, read from <file>.
Custom Speaker Configuration File
Heilan expects a simple XML file to tell it how to configure the decoder. If you are passing in the positions of your speakers, it looks like this:
<?xml version='1.0' encoding='utf-8'?> <HeilanSpeakerConfiguration> <Speaker hAngle='270' vAngle='0.0'/> <Speaker hAngle='90' vAngle='0.0'/> </HeilanSpeakerConfiguration>
Where hAngle is the anti-clockwise angle from centre front (azimuth) and vAngle is the elevation. Note that only configurations where speakers are placed on the unit sphere are supported.
To pass in the coefficients directly, do the following:
<?xml version='1.0' encoding='utf-8'?> <HeilanSpeakerConfiguration> <SpeakerComponent W='0.7071' X='0' Y='-0.5' Z='0'/> <SpeakerComponent W='0.7071' X='0' Y='0.5' Z='0'/> </HeilanSpeakerConfiguration>
You can have as many <Speaker/>s or <SpeakerComponent/>s as you like.
Speaker Configuration Presets
All of these are rendered from X3D files, included in the latest Heilan packages. The numbers refer to the output channels from your soundcard. Given the 3d nature of the configurations, these 2d images may not represent the best visualisation, but they give you an idea.