ICST Ambisonics Tools


    The ICST Ambisonics tools are a set of externals for full 3D surround audio processing.
    In addition to the DSP-objects capable of encoding and decoding Ambisonics signals up to 11th order, the suite includes a GUI and a trajectory control object for the source control in any surround setup.
    Under development and in use since 2003 the tools are freely available and work in 32bit and 64bit architectures on Mac and Windows.
    ----------
    Institute for Computer Music and Sound Technology ICST Zurich University of the Arts

    • Jan 28 2015 | 10:55 am
      The download location seems to have changed to: https://www.zhdk.ch/index.php?id=icst_ambisonicsexternals
    • Feb 01 2015 | 3:35 pm
      updated the tool post
      /*j
    • May 22 2017 | 10:36 am
      Also removed. But the library is now available in the package manager.
    • Nov 21 2017 | 9:34 am
      The current URL is https://www.zhdk.ch/5381 cheers
      /*j
    • Jun 04 2019 | 12:03 am
      I'm looking for the contact info to gain access to the source code? Says "source code available on request". Presumably this would contain the C implementation of the following UI for instance?
    • Jun 04 2019 | 6:43 am
      Hi,
      You can contact me here and I'll point you to the current code-repository jan [dot] schacher [ät] zhdk [point] ch
      best
      /*j
    • Nov 30 2020 | 12:57 am
      Hello! Firstly, thanks a lot for this wonderful toolset! Not sure if this is the right thread to ask but I was wondering if there is any way to update the sound listener position in addition to changing the sound sources position in 3D as well ?
    • Nov 30 2020 | 8:09 am
      Hello Shiva, thank you for your message. Ambisonics by definition describes the entire sphere of the sound wave-field at the listening position. In order to move the "listening" position in a synthesised sound-field, you offset the source positions the other way before encoding (see attached patch). In order to also rotate the listening "head", you could counter-rotate the sources, again before encoding. But the easiest way is to rotate the Bformat intermediate representation. There are a few vst-plugins that do this (IEM, Kronlachner, Sparta(?), depends on the order). You could also rotate the speaker-definitions at the decoding stage.
      hth
      /*j
    • Dec 01 2020 | 4:18 pm
      Hi Jasch! Thanks a lot for your reply and the sample patch! I'll check it out
    • Apr 12 2021 | 5:32 am
      HI!, the listener position patch is awesome!, I have a question, or two. Should I need to offset the listener position in order to offset the volume where the sources will move? There is no 3D ambisonics GUI? THX!!
    • Apr 12 2021 | 7:09 am
      Hola Javier,
      Indeed, the listener position IS the centre of the ambisonics sphere. Because our tools encode distance amplitude attenuation before encoding, offsetting the centre with regards to the sources, will not only change their direction incidence but the amplitude of each source as well.
      Also, have a look at the new v3 package (from the Max package manager), in particular the distance attenuation subpatch in the [mc.ambiencode~], [mc.ambipanning~] helpfiles, and investigate the [ambipoint] external for affine transforms of the 3D-scene, and finally see the [icst.spline] for a 3D-view patch.
      There _is_ a kind of "3D Ambisonics GUI", it's called Jitter --- here I suggest examining closely the jit.node concept and its implementations.
      best
      /*j
    • Apr 12 2021 | 7:36 am
      Hey hola!
      Amazing information, thx a lot!! I was thinking in using jitter to replicate the ambisonics 2D graph but was wondering if already exists a prefab one.
      Muchas gracias!!
    • Apr 12 2021 | 6:58 pm
      Jasch! I already have a patch made, I've looked on what you've mention up here, but I'm not being able to set the volume to only select half of the sphere in the z axis. I would like to "offset it" there is such thing? does moving the listener position moves the volume? I was not able to do it.
      THX!!
    • Apr 12 2021 | 7:04 pm
      And also have a silly question, how I can set the points "selected" in the GUI, by code?
      amazing tool!
    • Apr 13 2021 | 6:28 am
      without a patch demonstrating your idea it's hard for me to give an answer.
      /*j
    • Apr 13 2021 | 6:34 am
      by selecting points I presume that you mean making them highlighted? because the highlight only makes sense when interacting with the mouse in grouped fashion, otherwise you just address them from outside with the ambipoint syntax. so the answer to your question is no, lo siento
      /*j
    • Apr 13 2021 | 6:37 am
      Hey Jasch,
      Yeah I'm sorry to not to post a patch but is a massive one, I will make an example of what Im trying to do, thx!
    • Jun 01 2021 | 4:23 pm
      Hi,
      We've released the first maintenance update for Version 3 and v3.0.1 is available both through the Package Manager && from our own institutional server: https://www.zhdk.ch/en/research/icst/software-downloads-5379/downloads-ambisonics-externals-for-maxmsp-5381
      cheers
      /*j