Skip to content

Implementing a Custom Decoder

Mark Slee edited this page Apr 19, 2018 · 12 revisions

The E4L Master Bus supports loading any max patcher with 16 inputs and 16 outputs as a custom decoder. If you have a unique multi-channel speaker setup, you can write your own Max patch and load it as a decoder.

Reference decoders are located at: https://github.com/EnvelopSound/EnvelopForLive/tree/master/patchers/decoder

For an extremely basic reference on the structure of a decoder patch, consult the e4l.decoder.example patch file.

The 16 in~ objects receive Ambisonics-domain spatial audio in AmbiX format (ACN channel ordering with SN3D weighting). The 16 out~ objects can output whatever type of decoded or transformed audio you like.

For an example of a very straightforward single-plane decoder, look at the e4l.decoder.octo patch, which decodes 8 channels of audio using the ambidecode~ object and the e4l.ambidecode.angles abstraction to specify the radial positions.

Note that decoder patches should not use the adc~ or dac~ objects. The decoder runs inside the E4L Master Bus device and uses Ableton's Max for Live plugin routing for input and output. The adc~ and dac~ objects will not operate as expected in this environment.

Remote Decoding

If you are using a system with a high number of output channels, it may be preferable to decode the Ambisonics signal on a separate process or machine. For this situation, use the AmbiX decoder (e4l.decoder.ambisonics) to route the AmbiX-format Ambisonics audio out of Ableton Live 10 to a separate machine (or another local process, using a utility like JACK or Loopback).

The separate process may be written in Max, or any other programming language capable of operating on audio streams with low latency. For a reference, consult the remote decoding Max patch used by the Envelop at the Midway system here: https://github.com/EnvelopSound/EnvelopForLive/tree/master/patchers/remote

Envelop is a nonprofit organization that amplifies the unifying power of music through immersive listening spaces, events, and open-source spatial audio software.

Clone this wiki locally