How to Use the IEM Plugin Suite: A Step-by-Step Ambisonics Workflow in REAPER

The IEM Plugin Suite, built by the Institute of Electronic Music and Acoustics in Graz, is the closest thing the ambisonics world has to a free standard toolkit. It's open-source, supports Ambisonics up to 7th order, and covers every stage of a spatial audio production — encoding, spatial processing, monitoring, and decoding. This tutorial walks through the suite plugin by plugin, grouped by where each one sits in your signal chain, with practical setup steps for REAPER.

Before You Start: Setting Up REAPER for Ambisonics

Ambisonic signals are multichannel, and the channel count depends on the order you're working in. The formula is straightforward: channels = (order + 1)². First order (FOA) uses 4 channels, second order uses 9, third order uses 16, and so on up to 7th order at 64 channels. Before inserting any plugin, set your REAPER track's channel count to match the order you plan to work in — go to the track's I/O settings and increase the channel count from the default stereo pair.

  1. Download and install the suite from the official IEM site, then rescan your plugins in REAPER's FX browser.
  2. Create a new track and set its channel count in the track routing panel to match your target ambisonic order (4 for FOA, 9 for second order, 16 for third order).
  3. Make sure "Fixed lanes" or multichannel metering is enabled in the track's I/O so you can see all channels are active before you start encoding.
  4. Decide on your normalization convention (AmbiX/SN3D is the suite's default and the one most modern tools expect) and stay consistent across the whole project.

Stage 1: Encoding — Getting Sound Into the Sound Field

StereoEncoder

This is the plugin you'll reach for most often. It takes a mono or stereo source and encodes it into an ambisonic signal at a given azimuth, elevation, and width.

  1. Insert StereoEncoder on a mono or stereo source track whose output channel count matches your target order.
  2. Use the XY pad to set azimuth and elevation, or type exact values into the numeric fields for repeatable positioning.
  3. Increase the width control to spread a source across a wider arc, which is useful for anything that shouldn't feel like a pinpoint object.
  4. Automate azimuth over time to move a source through the scene — this is the fastest way to get a convincing moving element.

MultiEncoder

Functionally similar to StereoEncoder, but built to encode many mono sources at once, each with its own position. It's the right tool when you're placing a whole ensemble of point sources rather than one or two elements.

  1. Insert MultiEncoder on a track that receives multiple mono inputs (e.g., from a multichannel media item or several routed tracks).
  2. Expand the plugin to reveal one position control per input channel.
  3. Position each source independently, then check the overall balance using the plugin's built-in level meters before moving downstream.

GranularEncoder

An ambisonic granular synthesizer rather than a simple positional encoder. Feed it a mono or stereo signal and it fragments the audio into grains that are scattered spatially, which is useful for designed atmospheres, textures, and sci-fi material rather than natural-sounding placement.

  1. Insert GranularEncoder on a source track set to your target channel count.
  2. Start with grain density and size at moderate settings, then push density up for a smeared, cloud-like texture or down for isolated, audible grains.
  3. Use the spatial spread controls to decide whether grains scatter across the whole sphere or stay clustered around a position.

RoomEncoder

The most computationally demanding plugin in the suite. It places a virtual source and listener inside a shoebox-shaped room and renders over 200 early reflections, which is excellent for adding believable space and externalization, especially for binaural playback. This is also where distance actually gets simulated within a scene — moving a source farther from the listener changes its level, its reflection balance, and its frequency content, giving you a genuine sense of distance rather than a plain volume drop.

  1. Insert RoomEncoder on your source track and set the room dimensions to roughly match the space you're trying to suggest.
  2. Move the source and listener positions independently within the virtual room — moving either one in real time will generate natural Doppler shift.
  3. Adjust the reflection coefficient and the low-shelf/high-shelf filters to control how bright or damped the reflections sound.
  4. For directional sources, feed RoomEncoder a DirectivityShaper signal instead of a plain mono signal so the source radiates unevenly, the way real instruments and voices do.

Stage 2: Shaping and Processing the Sound Field

DirectivityShaper

Splits an input into four frequency bands and applies a different directivity pattern and order to each, so a source can sound more focused at high frequencies and more diffuse at low frequencies, mimicking how real instruments radiate sound.

  1. Insert DirectivityShaper before an encoder or RoomEncoder that accepts directivity signals.
  2. Set the crossover points for the four bands, then choose all-pass, low-pass, band-pass, or high-pass shaping for each.
  3. Blend each band's directivity order and shape (basic, maxRE, or in-phase) to taste — in-phase avoids side-lobes at the cost of a wider main lobe, which is usually the safer choice for natural sources.

DirectionalCompressor

A compressor that targets a specific region of the sound field rather than the whole signal. It uses a spherical mask so you can compress, say, only what's happening at the front of the scene while leaving the rest untouched.

  1. Insert DirectionalCompressor on your ambisonic bus, after your sources are encoded.
  2. Use the sphere panner and width control to draw the mask over the region you want to target.
  3. Choose whether the compressor listens to the masked signal, the unmasked signal, or the full omni signal, and pick which of those the gain reduction is applied to.
  4. Set threshold, ratio, attack, and release as you would on a normal compressor, then A/B the masked and unmasked signal using the plugin's monitoring selector to confirm you're only affecting the intended area.

MultiBandCompressor

A mastering-stage tool that compresses across four frequency bands without smearing the spatial image, which is the risk with a conventional stereo multiband compressor applied naively to ambisonic content.

  1. Insert MultiBandCompressor at the end of your ambisonic bus chain, just before your decoder or render.
  2. Set your crossover frequencies to isolate problem ranges — low-end rumble, boxy mids, or harsh top end.
  3. Compress each band conservatively and check the result through a decoder or binaural monitor, since over-compressing any one band can still narrow the perceived width even though the tool is designed to protect it.

OmniCompressor

A simpler, broadband compressor for the whole ambisonic signal, useful when you need overall level control without the added complexity of directional or multiband processing.

  1. Insert OmniCompressor on your ambisonic bus for straightforward, transparent level control.
  2. Set a gentle ratio and slower attack to preserve transients and spatial detail; this plugin is best used for gluing levels rather than aggressive dynamics shaping.

MultiEQ

A parametric EQ built to work across ambisonic channels without disturbing the spatial image, letting you shape tone the same way you would on a stereo bus.

  1. Insert MultiEQ on your ambisonic bus wherever you'd normally reach for an EQ — cleaning up a source, tonal balancing before decoding, or gentle mastering moves.
  2. Add bands as needed and sweep to find problem frequencies before committing to cuts or boosts.
  3. Check your changes by ear through a binaural decoder, since EQ moves can interact with how directional cues are perceived.

DualDelay

A stereo-style delay adapted for ambisonics, with sync-to-DAW timing, tap tempo, BPM-based note values, and the ability to rotate or warp the signal on each repeat rather than just echoing it in place.

  1. Insert DualDelay on a source or bus where you want rhythmic or spatial repeats.
  2. Enable DAW sync and pick a note division so delays lock to your project tempo.
  3. Use the rotation and warp controls so each repeat shifts position in the sound field instead of stacking on top of the original — this is an easy way to add movement to static sources.

FdnReverb

A feedback delay network reverb built for ambisonics, giving you a diffuse, enveloping tail rather than the discrete reflections RoomEncoder produces.

  1. Insert FdnReverb on a send bus fed from your encoded sources, or directly on a source if you want a dedicated tail.
  2. Set decay time and diffusion to match the size and character of space you're after.
  3. Use the damping controls to tame harshness in long tails, and blend in parallel with a dry signal rather than replacing it outright.

Stage 3: Spatial Transforms and Utilities

SceneRotator

Rotates the entire sound field around the yaw, pitch, and roll axes without touching individual source positions — essential when you need to re-orient a whole scene, correct a recording that wasn't captured facing forward, or animate head movement for VR.

  1. Insert SceneRotator on your full ambisonic bus, after all sources are encoded and combined.
  2. Set yaw, pitch, and roll manually to re-orient a static scene, or automate them for dynamic rotation.
  3. For head-tracked VR or game work, this is the plugin you'd feed live head-orientation data into.

CoordinateConverter

A small utility that converts between coordinate systems (Cartesian and spherical), useful when you're moving position data between plugins, external control data, or game engines that expect a different convention than REAPER's automation.

  1. Insert CoordinateConverter wherever you need to translate position values from one format to another before feeding them to an encoder.
  2. Confirm which convention your downstream plugin or external system expects before converting, since mismatched conventions are a common source of "sources in the wrong place" bugs.

MatrixMultiplier

Applies a custom transformation matrix to your ambisonic signal — a flexible, if technical, way to do custom channel manipulations that don't have a dedicated plugin, including some custom decodes or format conversions.

  1. Insert MatrixMultiplier only when you have a specific matrix you need to apply — this is a power-user tool rather than a daily one.
  2. Load or enter your matrix values and verify the result against a known reference signal before trusting it in a mix.

ToolBox

A grab-bag utility plugin for smaller housekeeping tasks like channel swapping, gain adjustment per channel, or format conversion checks. Reach for it when a task doesn't justify a dedicated plugin.

Stage 4: Monitoring and Analysis

EnergyVisualizer

Displays the directional energy distribution of your ambisonic signal on a sphere, so you can see where sound is concentrated in the scene rather than relying on your ears alone — especially useful when checking whether a mix is genuinely enveloping or accidentally front-heavy.

  1. Insert EnergyVisualizer on your master ambisonic bus.
  2. Watch the energy map while soloing individual sources to confirm each one is landing where you intended.
  3. Use it as a sanity check before bouncing, particularly on scenes with many moving or automated sources where it's easy to lose track of the overall balance.

Probe

Lets you "listen" to a single point or direction within the ambisonic sound field in isolation, which is useful for checking exactly what's happening at a specific position without decoding the whole scene.

  1. Insert Probe on your ambisonic bus and set its position to the direction you want to inspect.
  2. Solo the probe's output to hear only what's arriving from that direction, useful for troubleshooting a source that sounds wrong in context.

Stage 5: Decoding — Getting the Sound Field Back Out

BinauralDecoder

Converts your ambisonic signal directly to a binaural headphone signal, using measured HRTFs rather than virtual loudspeakers, which keeps the result closer to the original frequency response than a conventional binaural decode.

  1. Insert BinauralDecoder at the very end of your chain, on your master ambisonic bus, whenever you're monitoring or delivering for headphones.
  2. Leave it as your default monitoring decoder while mixing, since most of your audience for ambisonic and spatial content will be on headphones.

SimpleDecoder

A straightforward decoder for regular loudspeaker layouts, like a standard 5.1 or a simple ring of speakers, when you don't need the more advanced layout flexibility of AllRADecoder.

  1. Insert SimpleDecoder on your master bus when monitoring or rendering to a conventional, evenly spaced speaker array.
  2. Enter your speaker positions to match your actual room or target format.

AllRADecoder

Designs an ambisonic decoder for an arbitrary loudspeaker layout using the AllRAD approach, which is what you want when your speaker array isn't a simple, regular shape.

  1. Insert AllRADecoder on your master bus and enter the exact positions of your loudspeakers.
  2. Let the plugin generate the decode matrix for that irregular layout, then verify with EnergyVisualizer or Probe that sources land where expected across the whole array.

DistanceCompensator

Not a spatial effect — a loudspeaker calibration tool. It corrects for the physical distance differences between your listening position and each speaker in a real-world array, calculating the delay and gain needed so an uneven layout doesn't skew what you hear. It has nothing to do with making a source sound farther away within the scene; that's handled upstream by RoomEncoder, back at the encoding stage.

  1. Insert DistanceCompensator at the very end of your signal chain, right after your decoder — SimpleDecoder or AllRADecoder, whichever you're using for your loudspeaker array.
  2. Enter the measured distance from your listening position to each individual speaker.
  3. Leave both gain and delay compensation enabled unless you have a specific reason to isolate one. The default speed-of-sound value (343.2 m/s) rarely needs adjusting.
  4. Skip this plugin entirely if you're monitoring or delivering in binaural — it's only relevant for physical loudspeaker playback.

Putting It All Together: A Simple Signal Chain

A minimal but complete chain looks like this: a mono voice or foley source runs through StereoEncoder to place it in the scene, then into a shared ambisonic bus alongside your other encoded sources. That bus runs through SceneRotator if you need to re-orient the whole scene, then FdnReverb (in parallel) for space, MultiEQ and MultiBandCompressor for tone and level control, and finally BinauralDecoder so you can monitor on headphones as you work. EnergyVisualizer sitting on the same bus, even just for spot-checking, will save you from surprises when the mix gets more crowded. If you're rendering to a physical loudspeaker array instead of headphones, add DistanceCompensator as the very last link in the chain, after your decoder.

The IEM Plugin Suite rewards a bit of patience up front — getting channel counts and routing right the first time saves a lot of troubleshooting later. Once that's dialed in, it's a genuinely complete, free toolkit for ambisonic production from encoding through to final decode.

If you want a set of real ambisonic recordings to practice this workflow on rather than test tones, grab our free ambisonic pack at axisambisoniclab.com and try building out a full encode-to-decode chain with genuine field-recorded material.