How to set up your simplest chain in Reaper

In this short guide we will look at how to set up a basic VST chain and how to manage signal routing to work with Ambisonics, using Reaper and IEM plugins. We will encode a sound from stereo to B-Format ambisonics and then decode it back on a speaker setup using the AllRad decoder or over headphones using a binaural decoder. 

You can search for the software used in this guide here.

First off, let's open a new instance of Reaper

Right click on the left bar and insert two tracks, then we can easily drag and drop a new stereo file in one of the two tracks. The track where our sound file is will be where the encoding into Ambisonics will happen, and the empty one will become our decoder. You can also assign a new color to your decoder track and rename it.

 

 

Now, let's look at the routing options of our decoder, we can access them by clicking on the routing button on the track label. Our first priority is to make sure that our decoder will be able to receive an adequate number of audio channels.

At the moment of writing, Reaper is the only DAW capable of managing up to 64 channels of audio per track, enabling us to work at 7th Order 3D Ambisonics. You can choose the number of channels you prefer to use in your projects, based on your needs and the power of your machine, but it is advisable to always work in the highest possible order, as it is easier to downscale ambisonics than it is to upscale it. For this reason we will be using 64 channels as our default option here.

Also we need to set the destination of our decoder. Reaper has a hidden master track that every new track will be by default sending to. It can be accessed via View > Master Track. We will have to make sure that also that track will be sending out enough channels for how many loudspeakers we are using. Alternatively, we can disable the Master track and autonomously set a hardware output. This can be useful if we need to set up more complex routings.

It would also be possible to set up our decoder directly on the Master Track. However, I prefer to always have it on a separate track, for better clarity. Projects can become quite complex when they become bigger and we start using groups. Moreover, using a bus track as our decoder can allow us to perform other actions, such as disabling the decoder and recording stems in place.

 

tip: Reaper clearly shows how the routing options for each channel are set even without opening the routing tab. In facts, the routing button will show up to three coloured stripes that show if the channels are routed to our master output track (green), if they are sending to a different track (yellow), or if they are receiving from another track (blue).



Now let's make our decoder. To do so, we need to load an instance of IEM AllRADecoder in our Decoder track. We can do it through the FX tab.

Once we have loaded the VST, what we will see is polygon on the left and a list of coordinates on the right.

On the polygon, each blue dot represents a speaker, while the polygon itself is the closest approximation of a sphere possible with that many points.

In the Loudspeaker Layout tab we see the Azimuth and Elevation coordinates of each loudspeaker in our array, the channel they are linked to and if they are real speakers or imaginary ones. Imaginary speakers are used by the software to make it possible to calculate a sphere even if we are using 2D arrays or emispherical arrays. We can also test the speakers with the noise button, remove or add new loudspeakers or rotate the entire layout.

In many studios who have fixed ambisonics setups, it is often the case that the decoders have been made beforehand, calculating the coordinates of each speaker. This data can be exported and saved in a .json file and can be imported in a decoder using the IMPORT button.

Once we are done importing our .json or setting up our coordinates, we can determine the order of our decoder. and calculate it clicking on the "Calculate Decoder" button. 

If all the calculations are done correctly a message saying "The decoder was created successfully" will appear.

 

The order of the decoder is determined by the amount of loudspeakers and by whether we are working with a 2D or a 3D ambisonics setup. A chart illustrating how to calculate the order based on the number of speakers is available here.

 

In the following picture we can see the easiest 1st order 2D decoder possible, made with only four loudspeakers.

The coordinates for our four loudspeakers form a square.

1  45°

2 -45°

3 -135°

4 135°

the Elevation is always 0

then we add two more "imaginary speakers" to make the sphere, channel 5 and 6, respectively above us and below us. in this case Azimuth will be 0° and Elevation respectively 90° and -90°. 

The decoder order is good on 1st and we can hit Calculate decoder.

 

Now let's set up our Encoder.

In facts, right now we have only made our Decoder, that will allow us to playback our ambisonics format files on a speaker array, but before we send sounds to our decoder, we need to encode our mono/stereo/quad/octo/A-format files into B-format ambisonics that our decoder will understand.

The first thing to do, is to set up the routing. From the Routing tab, after we have made sure that our track has 64 channels and the master send is disabled, we add a new send to our decoder, with a multichannel source, sending ch. 1-64.

After we have done this, we can load an encoder VST in our track

As soon as we load the StereoEncoder by IEM in our FX tab, we can see on the top right corner that, based on the number of channels we have set in the Routing tab, the encoder has already recognized that it will be working in 7th order ambisonics.
If we were setting up a different number of channels, the Encoder would have automatically given us the highest possible order for that many channels. 
The width channel determines the angle of the two sound sources. Azimuth and Elevation determine the coordinates of the center of the stereo field, which is represented by that white dot. Changing the settings of Azimuth and Elevation we will be able to move our sound around us, over the surface of an hypotetical sphere.

 

Playing back the sound now, the two channels of the stereo will be encoded in B-format 7th order 3D ambisonics [64 channels] and then sent to our decoder which will receive these 64 channels of the B-format and decode them in a multichannel audio format that is designed over our speaker layout.


We can repeat the encoding process on other tracks several times and mix them normally in our work. 

One very important thing to care about is stereo VST's need to be placed in our chain BEFORE the Encoder, otherwise they will process only the first two channels of ambisonics, destroying the spatial image.

If we want to add effects AFTER the Encoder, they need to be multichannel VST's that support ambisonics of the desired order. 

Albeit CPU intensive, the last option is much preferable. For example, appying a reverb on the stereo sound before the encoding will sound very different and much less realistic than using a multichannel reverb after the encoding.

 

 

Assuming we do not have access to any multichannel speaker setup, we can still work in ambisonics using binaural. In facts, we can substitute our AllRAD decoder with a Binaural Decoder.

Here we loaded one just under the AllRADecoder. 

From the top left corner of the tab we can already see that the decoder has recognized what order of ambisonics it is receiving and will automatically deliver a Binaural stereo output based on standard HRTF. 

The Binaural Decoder by IEM also allows us to choose if we want to apply any Headphone Equalization, which can be very useful if you mix with a specific model of headphones or if your delivery format will make use of a specific model of headphones (in an installation or a binaural concert).

Using the two ticks on the left-side of the FX tab we can easily switch in between the two decoders if we need to monitor on loudspeakers or on our speaker setup.