I'll just add some quick inline responses below... which will hopefully be
As I understand it there is no support for individul SOFA files in ATK ?
> Could "someone" take on the effort to do this?
The ATK team will be very pleased to offer SOFA support. Among other things
that would really help to position the ATK as a "one stop shop" for
composers working with Ambisonics... which is our end goal. (I call that
the ATK as kitchen sink included solution.)
At the moment the ATK team is pushing forward on HOA implementation for
ATK-SC3. If you're nosey, you can peek in sandbox/hoa
<https://github.com/ambisonictoolkit/atk-sc3/tree/sandbox/hoa> to see
what's happening at the moment. You can peek at the relevant classes in
Note: all this is shifting sand... this week we're going to rename and
otherwise move things. The good news, ATK-SC3-HOA is coming....
Back to SOFA. There are a few issues that make this a non-trivial task. The
ATK is distributed with optimized encoding and decoding kernels. These are
available for download here
<http://www.ambisonictoolkit.net/download/kernels/>, and hosted in a
repository here <https://github.com/ambisonictoolkit/atk-kernels>. If we
inspect the folder for CIPIC
we see subfolders named [Sample Rate] / [Kernel Size]. That is, CIPIC's
original HRTFs have been resampled for convenience. Looking further down,
we see that the 2 x 25 x 50 measurements (HRTF kernels) for CIPIC's subject
11 have been turned into just four two channel FIR filters, named
The process used to generate these resulting 8 FIRs (the FOA binaural
decoder) from 2500 (raw HRTF measurements) is outlined here
<https://github.com/ambisonictoolkit/atk-kernels#decoders>. Repeating info
regarding CIPIC here for convenience:
The Measured decoders are 5-in-1:
> 1. DC - LF: omni-directional, W only.
> 2. LF - 700Hz: strict soundfield, aka basic. Retain phase.
> 3. 700 - 2000Hz: maximum energy, aka max rE. Retain phase.
> 4. 2000 - 18000Hz: strict soundfield, aka basic. Discard phase.
> 5. 18000Hz - Nyquist: response patterns measured from 4., at 18000Hz.
> LF = 35Hz for CIPIC
> Measured decoders are designed to compensate for the proximity (near-field
> effect) of the two HRTF measurement systems. Asymmetry, across all axes,
> found in the measured HRTFs is preserved.
In other words, the ATK's HRTF decoders are not "virtual speaker" decoders.
We do the above to make "optimized" decoders that "sound transparent". We
do plan to eventually re-write and publish the code that does the above,
and in the context of coming ATK HOA HRTF decoders, we are planning to
re-address the issue.
So.. SOFA support...? What that will probably mean is that a user will (at
first) probably run a routine that will generate an ATK optimized HRTF
decoder kernel set given a SOFA file....
In the short term, "not so optimized" decoders (aka virtual speaker) from
HRTF are not difficult to create. To turn an HRTF set into a decoder
suitable for ATK-SC3, just generate the relevant kernels for given
harmonics. E.g., lm pairs. The resulting kernels just then need to be
convolved... and you've got a decoder (that needs some more work to sound
As I am not a programmer on the level to do something like this, but I
> wonder if
> https://www.npmjs.com/package/ambisonics#sofa might not be of great help
> in that effort?
Possibly... Archontis Politis's
<https://www.researchgate.net/profile/Archontis_Politis> code is well
written. We do view his work as a reference.
Or is there a simple way to send a output stream of bformat sound from
> SuperCollider to an external instance of the SOFA capable decoder written
Probably not difficult to do with Jack <http://www.jackaudio.org/>.
*Dr Joseph Anderson | Research Scientist*
DXARTS, Box 353414
University of Washington
Seattle, WA 98195-3680
Subscribe to our events list <https://dxarts.washington.edu/mailing-list> to
receive email updates about lectures, performances, exhibitions and more.
-------------- next part --------------
An HTML attachment was scrubbed...
Sursound mailing list
https://mail.music.vt.edu/mailman/listinfo/sursound - unsubscribe here, edit
account or options, view archives and so on.