Skip to content

Implementing a Custom Decoder

Mark Slee edited this page Sep 6, 2024 · 12 revisions

The E4L Master Bus supports loading any max patcher with 16 inputs (HOA Ambisonics) and 16-32 outputs (speaker channel feeds) 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 HOA AmbiX format (ACN channel ordering with SN3D weighting). The 16-32 out~ objects can output whatever type of decoded or transformed audio you like. Typically these are channel feeds for individual loudspeakers.

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.

Loading Your Decoder

To load your custom decoder in the E4L Master Bus device, choose the Custom... option in the Decoder dropdown. A file chooser dialog box will open, allowing you to select your own custom .maxpat file with a decoder implementation.

E4L Master Bus Custom Decoder

Decoder Plugins

3rd-party VST decoders may be embedded within a custom decoder. For a high-quality open-source option, see: Using the IEM AllRADecoder

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 Loopback or JACK).

The separate process may be written in Max, or any other programming language capable of operating on audio streams with low latency.

Decoder Development

Custom decoder development is available as a service, for inquiries contact: [email protected]

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