Ambi3port
Implementation of the AmbIEM ambisonics 3rd order binarual decoder, doe listeningFormat = \ambi3.
Fully tested.
Indeed the location of the required HRTF data needs to be standardized.
Currently, a directory called satie-assets (git@gitlab.com:sat-metalab/satie-assets.git) needs to be located in the top level of the Satie-Quark directory (for convenience, until we have a better method, this directory can be automatically included as a git submodule).
GLOBAL STATE ISSUES: To make sure that when a user selects the \ambi3 listener (or same with ATK listeners) the listener works, the server buffersize must be forced to a particular value. A warning is displayed.
Also, since the listener depends on a decoder being present at the end of the DSP chain, the appropriate postProcessor needs to be activated (e.g. ambi3BinauralDecoder.scd ). This has been implemented.
Finally, the AmbIEM class binaural decoder class must be set up prior to use. This can only be completed once the server has been activated. Thus, I have added private method in Satie, called "loadResources", which looks in the subdirectory "utils" (for now), for ambi3setup.scd
Obviously the choices above are somewhat arbitrary, and a discussion is in order, if only to confirm them.
ISSUS ON OSX: Sadly, I noticed that on my build of SuperCollider 3.9dev, the Bus.audio does not begin to allocate busses from the index corresponding to the sum of the server's output and input channel count. It seems to allocate starting with index 5, for some weird reason--independent of the servers output channel count. In order to avoid a long and painful debugging / compilation stage, I have temporarily added a KLUGE to SatieConfig, which claims busses as soon as the servers output channel count has been set up, leaving the Bus class's next free bus index at a value greater than the server's input + output channel count. This has been tested and works.