<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mixing on ICST Ambisonics</title><link>https://ambisonics.ch/tags/mixing/</link><description>
Recent content
in Mixing
on ICST Ambisonics</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><managingEditor>johannes.schuett@zhdk.ch (Johannes Schuett)</managingEditor><webMaster>johannes.schuett@zhdk.ch (Johannes Schuett)</webMaster><lastBuildDate>Fri, 15 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ambisonics.ch/tags/mixing/index.xml" rel="self" type="application/rss+xml"/><item><title>How to Work with Ambisonics: Workflow from Recording to Delivery</title><link>https://ambisonics.ch/learn/ambisonics-workflow/</link><guid>https://ambisonics.ch/learn/ambisonics-workflow/</guid><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><author>johannes.schuett@zhdk.ch (Johannes Schuett)</author><description>&lt;style&gt;
/* ══════════════════════════════════════════════════════════
WORKFLOW PAGE STYLES — Light + Dark Mode
══════════════════════════════════════════════════════════ */
.post__content &gt; h1 {
font-size: clamp(2.8rem, 4.2vw, 4.3rem);
line-height: 1.08;
letter-spacing: 0.01em;
margin-bottom: 1.5rem;
}
.post__content h2 { font-size: clamp(2rem, 2.6vw, 2.7rem); line-height: 1.18; }
.post__content h3 { font-size: clamp(1.45rem, 1.6vw, 1.8rem); line-height: 1.25; }
.post__content p,
.post__content li,
.post__content td,
.post__content th { font-size: 1.55rem; line-height: 1.62; }
.wf-hero {
background: linear-gradient(135deg, #1a2a1a 0%, #2c4a2e 100%);
border-radius: 10px;
padding: 2.1rem 2.25rem 1.95rem;
color: #fff;
margin-bottom: 2rem;
}
.wf-hero__title { font-size: 2.25rem; font-weight: 800; letter-spacing: 0.02em; margin: 0 0 0.3rem 0; }
.wf-hero__subtitle { font-size: 1.45rem; opacity: 0.75; margin: 0 0 1.2rem 0; }
.wf-badges { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; }
.wf-badge { background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.25); border-radius: 20px; padding: 0.32rem 0.95rem; font-size: 1.3rem; color: #fff; white-space: nowrap; }
.wf-badge--green { background: #3a8a45; border-color: #3a8a45; }
.wf-meta { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 1rem; font-size: 1.38rem; opacity: 0.85; }
.wf-meta span { white-space: nowrap; }
.wf-meta a { color: inherit; text-decoration-color: rgba(255,255,255,0.45); text-underline-offset: 0.18em; }
.wf-chain { display: flex; flex-wrap: wrap; gap: 0; margin: 1.5rem 0 2rem; border-radius: 8px; overflow: hidden; box-shadow: 0 1px 4px rgba(0,0,0,0.1); }
.wf-chain__step { flex: 1 1 120px; background: #f0f6f0; border-right: 1px solid #d0e8d0; padding: 1rem 1.1rem 0.9rem; text-align: center; }
.wf-chain__step:last-child { border-right: none; }
.wf-chain__step--active { background: #2c4a2e; color: #fff; }
.theme--dark .wf-chain__step { background: #1a2d1a; border-right-color: #2a4030; }
.theme--dark .wf-chain__step--active { background: #2c5a30; }
.wf-chain__icon { font-size: 1.8rem; display: block; margin-bottom: 0.3rem; }
.wf-chain__label { font-size: 1.25rem; font-weight: 700; display: block; }
.wf-chain__sub { font-size: 1.1rem; opacity: 0.7; display: block; }
.wf-section { border-top: 3px solid #3a8a45; margin: 2.5rem 0 1.2rem; padding-top: 1rem; }
.wf-section__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.7rem; margin-bottom: 0.4rem; }
.wf-section__num { background: #3a8a45; color: #fff; border-radius: 4px; padding: 0.1rem 0.55rem; font-size: 1.12rem; font-weight: 700; letter-spacing: 0.05em; }
.wf-section__title { font-size: 1.9rem; font-weight: 700; color: #1a2a1a; margin: 0; }
.theme--dark .wf-section__title { color: #c0e8c0; }
.wf-section__meta { font-size: 1.35rem; color: #666; margin: 0.2rem 0 1rem; display: flex; flex-wrap: wrap; gap: 1rem; }
.theme--dark .wf-section__meta { color: #7a9a7a; }
.wf-section__meta span::before { content: "· "; }
.wf-section__meta span:first-child::before { content: ""; }
.wf-key { background: #f0f6f0; border-left: 4px solid #3a8a45; border-radius: 0 8px 8px 0; padding: 1.1rem 1.5rem; margin: 1.2rem 0; }
.theme--dark .wf-key { background: #1a2d1a; }
.wf-key__title { font-weight: 700; font-size: 1.4rem; color: #1a5a25; margin: 0 0 0.6rem; }
.theme--dark .wf-key__title { color: #7dd3a8; }
.wf-key p, .wf-key li { font-size: 1.5rem; margin-bottom: 0.35rem; line-height: 1.5; }
.wf-warn { background: #fff8e6; border: 1px solid #f0c040; border-left: 4px solid #f0c040; border-radius: 0 8px 8px 0; padding: 0.9rem 1.2rem; margin: 1.2rem 0; }
.theme--dark .wf-warn { background: #231f0e; border-color: #a07c10; border-left-color: #f0c040; }
.wf-warn__title { font-weight: 700; font-size: 1.4rem; color: #7a5800; margin: 0 0 0.5rem; }
.theme--dark .wf-warn__title { color: #f0c040; }
.wf-warn p, .wf-warn li { font-size: 1.45rem; margin-bottom: 0.35rem; line-height: 1.5; }
.wf-steps { counter-reset: wf-step; list-style: none; padding: 0; margin: 1rem 0; }
.wf-steps li { counter-increment: wf-step; display: flex; gap: 1rem; align-items: flex-start; padding: 0.65rem 0; border-bottom: 1px solid #e8f0e8; font-size: 1.52rem; line-height: 1.55; }
.theme--dark .wf-steps li { border-bottom-color: #2a3d2a; }
.wf-steps li:last-child { border-bottom: none; }
.wf-steps li::before { content: counter(wf-step); background: #3a8a45; color: #fff; border-radius: 50%; width: 2rem; height: 2rem; min-width: 2rem; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; font-weight: 700; margin-top: 0.1rem; }
.wf-table { width: 100%; border-collapse: collapse; font-size: 1.45rem; margin: 1.2rem 0 1.8rem; border-radius: 8px; overflow: hidden; box-shadow: 0 1px 4px rgba(0,0,0,0.08); }
.wf-table th { background: #2c4a2e; color: #fff; padding: 0.7rem 1rem; text-align: left; font-weight: 600; }
.wf-table td { padding: 0.65rem 1rem; border-bottom: 1px solid #e0ede0; vertical-align: top; }
.theme--dark .wf-table td { border-bottom-color: #2a3d2a; }
.wf-table tr:last-child td { border-bottom: none; }
.wf-table tr:nth-child(even) td { background: #f7fbf7; }
.theme--dark .wf-table tr:nth-child(even) td { background: #1a2d1a; }
.wf-checklist { columns: 2; column-gap: 2rem; list-style: none; padding: 0; margin: 1rem 0; }
@media (max-width: 640px) { .wf-checklist { columns: 1; } }
.wf-checklist li { font-size: 1.45rem; padding: 0.32rem 0 0.32rem 2rem; position: relative; break-inside: avoid; }
.wf-checklist li::before { content: "☐"; position: absolute; left: 0; color: #3a8a45; font-size: 1.3rem; }
.wf-resources { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 0.8rem; margin: 1rem 0; }
.wf-resource-link { display: block; background: #f0f6f0; border: 1px solid #c0ddc0; border-radius: 7px; padding: 0.7rem 1rem; text-decoration: none; font-size: 1.35rem; color: #1a4a25; transition: background 0.15s; }
.wf-resource-link:hover { background: #ddf0dd; text-decoration: none; }
.wf-resource-link strong { display: block; font-size: 1.15rem; color: #6a8a6a; font-weight: 400; }
.theme--dark .wf-resource-link { background: #1a2d1a; border-color: #2a4a2a; color: #7ec8a0; }
.theme--dark .wf-resource-link:hover { background: #1e3d1e; }
.theme--dark .wf-resource-link strong { color: #5a8a6a; }
&lt;/style&gt;
&lt;div class="wf-hero"&gt;
&lt;p class="wf-hero__title"&gt;How to Work with Ambisonics&lt;/p&gt;
&lt;p class="wf-hero__subtitle"&gt;Workflow Guide · Recording · Production · Delivery · Live · ICST / ZHdK&lt;/p&gt;
&lt;div class="wf-badges"&gt;
&lt;span class="wf-badge wf-badge--green"&gt;Advanced&lt;/span&gt;
&lt;span class="wf-badge"&gt;REAPER + ICST Plugins&lt;/span&gt;
&lt;span class="wf-badge"&gt;Max/MSP optional&lt;/span&gt;
&lt;span class="wf-badge"&gt;Csound optional&lt;/span&gt;
&lt;/div&gt;
&lt;div class="wf-meta"&gt;
&lt;span&gt;🎛️ &lt;a href="https://ambisonics.ch/en/icst-ambisonics-plugins/15_best_practices/"&gt;Prerequisite: Best Practices&lt;/a&gt;&lt;/span&gt;
&lt;span&gt;📐 &lt;a href="https://ambisonics.ch/en/learn/ambisonics-formats/"&gt;Ambisonics Formats&lt;/a&gt;&lt;/span&gt;
&lt;span&gt;🔧 &lt;a href="https://ambisonics.ch/en/icst-ambisonics-plugins/"&gt;ICST Plugin Documentation&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This page describes the &lt;strong&gt;complete Ambisonics workflow&lt;/strong&gt; — from microphone placement to finished delivery or live system. It is not a beginner tutorial, but a &lt;strong&gt;reference for practitioners&lt;/strong&gt;: compact, decision-oriented, and aligned directly with the ICST ecosystem.&lt;/p&gt;
&lt;div class="wf-chain"&gt;
&lt;div class="wf-chain__step"&gt;
&lt;span class="wf-chain__icon"&gt;🎙&lt;/span&gt;
&lt;span class="wf-chain__label"&gt;Recording&lt;/span&gt;
&lt;span class="wf-chain__sub"&gt;A-Format → B-Format&lt;/span&gt;
&lt;/div&gt;
&lt;div class="wf-chain__step"&gt;
&lt;span class="wf-chain__icon"&gt;🎛&lt;/span&gt;
&lt;span class="wf-chain__label"&gt;Production&lt;/span&gt;
&lt;span class="wf-chain__sub"&gt;REAPER · Encoding · Mixing&lt;/span&gt;
&lt;/div&gt;
&lt;div class="wf-chain__step"&gt;
&lt;span class="wf-chain__icon"&gt;📦&lt;/span&gt;
&lt;span class="wf-chain__label"&gt;Delivery&lt;/span&gt;
&lt;span class="wf-chain__sub"&gt;Export · Formats · Render&lt;/span&gt;
&lt;/div&gt;
&lt;div class="wf-chain__step"&gt;
&lt;span class="wf-chain__icon"&gt;🔊&lt;/span&gt;
&lt;span class="wf-chain__label"&gt;Live&lt;/span&gt;
&lt;span class="wf-chain__sub"&gt;System Design · Real-time&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;div class="wf-section"&gt;
&lt;div class="wf-section__head"&gt;
&lt;span class="wf-section__num"&gt;01&lt;/span&gt;
&lt;h2 class="wf-section__title"&gt;Recording&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="wf-section__meta"&gt;
&lt;span&gt;Microphone Selection&lt;/span&gt;&lt;span&gt;A-to-B Conversion&lt;/span&gt;&lt;span&gt;Field Recording&lt;/span&gt;&lt;span&gt;Quality Control&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="microphone-selection"&gt;Microphone Selection&lt;/h3&gt;
&lt;p&gt;Ambisonics microphones record in &lt;strong&gt;A-Format&lt;/strong&gt; — the raw capsule signals, not yet a sound-field format. Conversion to &lt;strong&gt;B-Format (ambiX)&lt;/strong&gt; happens afterwards, either internally in the microphone or via software.&lt;/p&gt;
&lt;table class="wf-table"&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Microphone&lt;/th&gt;&lt;th&gt;Order&lt;/th&gt;&lt;th&gt;Strengths&lt;/th&gt;&lt;th&gt;Typical Use&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Zoom H3-VR&lt;/td&gt;&lt;td&gt;1st / 4 ch&lt;/td&gt;&lt;td&gt;Compact, affordable, internal B-Format output&lt;/td&gt;&lt;td&gt;Field recording, education&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Sennheiser Ambeo VR&lt;/td&gt;&lt;td&gt;1st / 4 ch&lt;/td&gt;&lt;td&gt;Robust, widely used, good sound&lt;/td&gt;&lt;td&gt;Field recording, studio&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Rode NT-SF1&lt;/td&gt;&lt;td&gt;1st / 4 ch&lt;/td&gt;&lt;td&gt;Affordable entry, solid quality&lt;/td&gt;&lt;td&gt;Field recording, production&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;DPA d:mension&lt;/td&gt;&lt;td&gt;1st / 4 ch&lt;/td&gt;&lt;td&gt;Very linear response, low coloration&lt;/td&gt;&lt;td&gt;Music recording, studio&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Zylia ZM-1&lt;/td&gt;&lt;td&gt;3rd / 19 ch&lt;/td&gt;&lt;td&gt;Higher resolution, good directionality&lt;/td&gt;&lt;td&gt;Research, HOA production&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;EigenMike em32&lt;/td&gt;&lt;td&gt;4th / 32 ch&lt;/td&gt;&lt;td&gt;Reference HOA, maximum resolution&lt;/td&gt;&lt;td&gt;Studio, scientific recording&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Rule of thumb:&lt;/strong&gt; 1st-order microphones are sufficient for FOA productions and teaching. For HOA productions from 3rd order up, a Zylia ZM-1 or EigenMike is appropriate.&lt;/p&gt;
&lt;h3 id="a-to-b-conversion"&gt;A-to-B Conversion&lt;/h3&gt;
&lt;div class="wf-warn"&gt;
&lt;p class="wf-warn__title"&gt;⚠ A-Format is not Ambisonics&lt;/p&gt;
&lt;p&gt;A-Format files sound spatially incoherent when loaded directly as B-Format. Conversion must occur before any further processing.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;The conversion matrix compensates for capsule spacing, frequency response, and phase errors of the specific microphone. Manufacturer-specific matrices matter — not all A-to-B tools work with all microphones.&lt;/p&gt;
&lt;ul class="wf-steps"&gt;
&lt;li&gt;Import A-Format raw file into REAPER (4 / 19 / 32 channels depending on microphone)&lt;/li&gt;
&lt;li&gt;Load manufacturer-specific A-to-B plugin: Sennheiser Ambeo Orbiter, SoundField Ambisonic Toolkit, or ICST JS Plugin&lt;/li&gt;
&lt;li&gt;Verify channel assignment: W (pressure) on channel 1, then X, Y, Z following ACN ordering&lt;/li&gt;
&lt;li&gt;Audition a short test segment binaurally — confirm stable directionality and coherent depth&lt;/li&gt;
&lt;li&gt;Export result as ambiX WAV and document metadata (microphone, location, take number)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="field-recording-workflow"&gt;Field Recording Workflow&lt;/h3&gt;
&lt;table class="wf-table"&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Phase&lt;/th&gt;&lt;th&gt;Action&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Before recording&lt;/td&gt;&lt;td&gt;Acoustic survey: reflections, noise sources, walkable listening zones. Level check with test tones.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Placement&lt;/td&gt;&lt;td&gt;Microphone height approx. 1.5 m for natural listening perspective. Avoid nearby reflective surfaces unless intentional.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Levels&lt;/td&gt;&lt;td&gt;Target level approx. −18 dBFS, 12 dB headroom. Monitor all raw channels separately.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Monitoring&lt;/td&gt;&lt;td&gt;Binaural over headphones during recording. Check for spatial coherence and wind noise.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Documentation&lt;/td&gt;&lt;td&gt;Immediately after each take: location, mic position, weather conditions, time of day, notable details.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="common-problems-and-solutions"&gt;Common Problems and Solutions&lt;/h3&gt;
&lt;table class="wf-table"&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Problem&lt;/th&gt;&lt;th&gt;Cause&lt;/th&gt;&lt;th&gt;Solution&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Channel swap, unstable directionality&lt;/td&gt;&lt;td&gt;Incorrect ACN ordering&lt;/td&gt;&lt;td&gt;Test W/X/Y/Z assignment on site with an impulse&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Comb filtering, spatial artifacts&lt;/td&gt;&lt;td&gt;Wrong or missing A-to-B conversion&lt;/td&gt;&lt;td&gt;Check spectrum, use manufacturer-specific matrix&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Clipping on individual capsule&lt;/td&gt;&lt;td&gt;Single channel overloaded&lt;/td&gt;&lt;td&gt;Meter all raw channels separately&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Wind noise, LF rumble&lt;/td&gt;&lt;td&gt;Insufficient wind protection&lt;/td&gt;&lt;td&gt;Double windshield, LF roll-off below 80 Hz&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;div class="wf-section"&gt;
&lt;div class="wf-section__head"&gt;
&lt;span class="wf-section__num"&gt;02&lt;/span&gt;
&lt;h2 class="wf-section__title"&gt;Production &amp; Mixing&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="wf-section__meta"&gt;
&lt;span&gt;Session Setup&lt;/span&gt;&lt;span&gt;Routing&lt;/span&gt;&lt;span&gt;Encoding&lt;/span&gt;&lt;span&gt;Spatial Mixing&lt;/span&gt;&lt;span&gt;Monitoring&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="session-architecture-in-reaper"&gt;Session Architecture in REAPER&lt;/h3&gt;
&lt;p&gt;A clean Ambisonics session has a clear hierarchy:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Source Tracks (Mono / Stereo / A-Format)
└→ ICST AmbiEncoder (Encoding + Panning)
└→ HOA Bus (B-Format, N channels)
├→ Decoder Track → Speaker Output
└→ B-Format Master → Export
&lt;/code&gt;&lt;/pre&gt;&lt;div class="wf-key"&gt;
&lt;p class="wf-key__title"&gt;Core rule: never bypass the HOA bus&lt;/p&gt;
&lt;p&gt;No direct source-to-master path. Every source goes through the AmbiEncoder — otherwise the binaural render will sound different from the speaker setup.&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id="routing-step-by-step"&gt;Routing Step by Step&lt;/h3&gt;
&lt;ul class="wf-steps"&gt;
&lt;li&gt;Create HOA Bus: channel count matching desired order (4 / 9 / 16 / 25 / 36 channels)&lt;/li&gt;
&lt;li&gt;Insert ICST AmbiEncoder on every source track: set azimuth, elevation, spread&lt;/li&gt;
&lt;li&gt;Route encoder output to HOA Bus — never directly to master&lt;/li&gt;
&lt;li&gt;Insert ICST AmbiDecoder at the end of the chain: load speaker layout preset&lt;/li&gt;
&lt;li&gt;Build a separate binaural branch: AmbiHeadphone on its own monitoring track&lt;/li&gt;
&lt;li&gt;Prepare B-Format Master as a separate render track (without decoder)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="spatial-mixing--parameters"&gt;Spatial Mixing — Parameters&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Azimuth / Elevation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AmbiEncoder GUI or automation&lt;/td&gt;
&lt;td&gt;Base position and movement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Spread / Width&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AmbiEncoder → Width&lt;/td&gt;
&lt;td&gt;Point source vs. diffuse cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Depth / Distance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Level + pre-fader reverb in HOA domain&lt;/td&gt;
&lt;td&gt;Near/far illusion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Rotation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AmbiTransformer or OSC&lt;/td&gt;
&lt;td&gt;Scene rotation, compass alignment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;FX in HOA domain&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;FX plugins after encoder, before decoder&lt;/td&gt;
&lt;td&gt;Room sound that colours the entire scene&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="reverb-and-fx"&gt;Reverb and FX&lt;/h3&gt;
&lt;p&gt;Place reverb and room effects &lt;strong&gt;after the encoder and before the decoder&lt;/strong&gt; — not on individual source tracks. This keeps room sound format-independent and ensures it is correctly exported with the B-Format master.&lt;/p&gt;
&lt;p&gt;Typical chain for an HOA reverb:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Source Track → AmbiEncoder → [HOA FX: SN3D-compliant Reverb] → HOA Bus → Decoder
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="monitoring"&gt;Monitoring&lt;/h3&gt;
&lt;div class="wf-warn"&gt;
&lt;p class="wf-warn__title"&gt;⚠ Never run binaural and speaker decoder simultaneously&lt;/p&gt;
&lt;p&gt;Running a binaural decoder and a speaker decoder in parallel causes phase cancellation. Build monitoring branches as exclusive sends.&lt;/p&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Binaural:&lt;/strong&gt; AmbiHeadphone on a dedicated monitor track, solo routing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Speakers:&lt;/strong&gt; ICST AmbiDecoder with the preset for the current room.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Preset switching:&lt;/strong&gt; Only swap the decoder — the HOA bus remains unchanged.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="choosing-hoa-order"&gt;Choosing HOA Order&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: right"&gt;Order&lt;/th&gt;
&lt;th style="text-align: right"&gt;Channels&lt;/th&gt;
&lt;th&gt;Recommendation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: right"&gt;1st&lt;/td&gt;
&lt;td style="text-align: right"&gt;4&lt;/td&gt;
&lt;td&gt;Binaural production, education, FOA recordings&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: right"&gt;3rd&lt;/td&gt;
&lt;td style="text-align: right"&gt;16&lt;/td&gt;
&lt;td&gt;Standard for HOA productions and mid-sized arrays&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: right"&gt;5th&lt;/td&gt;
&lt;td style="text-align: right"&gt;36&lt;/td&gt;
&lt;td&gt;Large arrays, high directional resolution&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: right"&gt;7th&lt;/td&gt;
&lt;td style="text-align: right"&gt;64&lt;/td&gt;
&lt;td&gt;Scientific reference, maximum resolution&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;div class="wf-section"&gt;
&lt;div class="wf-section__head"&gt;
&lt;span class="wf-section__num"&gt;03&lt;/span&gt;
&lt;h2 class="wf-section__title"&gt;Delivery &amp; Export&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="wf-section__meta"&gt;
&lt;span&gt;B-Format Master&lt;/span&gt;&lt;span&gt;Formats&lt;/span&gt;&lt;span&gt;Binaural Render&lt;/span&gt;&lt;span&gt;Platforms&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="golden-rule-always-render-from-the-b-format-master"&gt;Golden Rule: Always Render from the B-Format Master&lt;/h3&gt;
&lt;div class="wf-key"&gt;
&lt;p class="wf-key__title"&gt;Never render from the decoder output&lt;/p&gt;
&lt;p&gt;The decoder output is speaker-specific — it only works for one particular array. The B-Format master is format- and room-independent and remains usable with any future decoder.&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id="export-workflow"&gt;Export Workflow&lt;/h3&gt;
&lt;ul class="wf-steps"&gt;
&lt;li&gt;Solo the B-Format master track and disable all other outputs&lt;/li&gt;
&lt;li&gt;Render a short test file (approx. 10 s) and re-import it&lt;/li&gt;
&lt;li&gt;Audition the test file through the binaural path — confirm spatial coherence&lt;/li&gt;
&lt;li&gt;Start the full render: WAV / RF64 for large multichannel files&lt;/li&gt;
&lt;li&gt;Document metadata in the project notes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Recommended meta-text for REAPER Project Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Render: B-Format Master | Format: ambiX (ACN/SN3D) | SR: 48000 Hz | Bit: 32-bit float | Channels: 16 | HOA: 3rd | Monitoring: Binaural ✓ / Array ✓
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="format-decisions"&gt;Format Decisions&lt;/h3&gt;
&lt;table class="wf-table"&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Situation&lt;/th&gt;&lt;th&gt;Format&lt;/th&gt;&lt;th&gt;Rationale&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;New archive master&lt;/td&gt;&lt;td&gt;ambiX (ACN/SN3D), multichannel WAV/RF64&lt;/td&gt;&lt;td&gt;Standard convention, maximum compatibility with all HOA tools&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Binaural delivery (streaming, preview)&lt;/td&gt;&lt;td&gt;2-channel WAV, 48 kHz / 24-bit&lt;/td&gt;&lt;td&gt;Universally playable; document HRTF choice&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Speaker stems for performance&lt;/td&gt;&lt;td&gt;N-channel WAV, channel count = array size&lt;/td&gt;&lt;td&gt;Deliver decoder preset and speaker layout alongside&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Legacy system requiring FuMa&lt;/td&gt;&lt;td&gt;FuMa (W/X/Y/Z, MaxN normalisation)&lt;/td&gt;&lt;td&gt;Only when a tool explicitly requires FuMa&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;YouTube 360 / VR platform&lt;/td&gt;&lt;td&gt;Binaural stereo + spatial metadata&lt;/td&gt;&lt;td&gt;Check Spatial Media Metadata Tool (Google) per platform requirements&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="channel-count-by-hoa-order"&gt;Channel Count by HOA Order&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: right"&gt;Order&lt;/th&gt;
&lt;th style="text-align: right"&gt;Channels&lt;/th&gt;
&lt;th&gt;Formula&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: right"&gt;1st (FOA)&lt;/td&gt;
&lt;td style="text-align: right"&gt;4&lt;/td&gt;
&lt;td&gt;&lt;code&gt;(1+1)²&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: right"&gt;2nd&lt;/td&gt;
&lt;td style="text-align: right"&gt;9&lt;/td&gt;
&lt;td&gt;&lt;code&gt;(2+1)²&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: right"&gt;3rd&lt;/td&gt;
&lt;td style="text-align: right"&gt;16&lt;/td&gt;
&lt;td&gt;&lt;code&gt;(3+1)²&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: right"&gt;5th&lt;/td&gt;
&lt;td style="text-align: right"&gt;36&lt;/td&gt;
&lt;td&gt;&lt;code&gt;(5+1)²&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: right"&gt;7th&lt;/td&gt;
&lt;td style="text-align: right"&gt;64&lt;/td&gt;
&lt;td&gt;&lt;code&gt;(7+1)²&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="export-checklist"&gt;Export Checklist&lt;/h3&gt;
&lt;ul class="wf-checklist"&gt;
&lt;li&gt;B-Format master track confirmed as source&lt;/li&gt;
&lt;li&gt;Channel count matches HOA order&lt;/li&gt;
&lt;li&gt;Sample rate: 48 kHz&lt;/li&gt;
&lt;li&gt;Bit depth: 32-bit float (master) or 24-bit (delivery)&lt;/li&gt;
&lt;li&gt;Format: ambiX (ACN/SN3D) documented&lt;/li&gt;
&lt;li&gt;Filename includes order and format&lt;/li&gt;
&lt;li&gt;Test render before full export&lt;/li&gt;
&lt;li&gt;Re-import and binaural check passed&lt;/li&gt;
&lt;li&gt;Project notes updated&lt;/li&gt;
&lt;li&gt;B-Format archive copy backed up&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;div class="wf-section"&gt;
&lt;div class="wf-section__head"&gt;
&lt;span class="wf-section__num"&gt;04&lt;/span&gt;
&lt;h2 class="wf-section__title"&gt;Live Performance &amp; Installation&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="wf-section__meta"&gt;
&lt;span&gt;System Design&lt;/span&gt;&lt;span&gt;Real-time Decoding&lt;/span&gt;&lt;span&gt;Max/MSP&lt;/span&gt;&lt;span&gt;OSC&lt;/span&gt;&lt;span&gt;Robustness&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="core-question-where-does-decoding-happen"&gt;Core Question: Where Does Decoding Happen?&lt;/h3&gt;
&lt;p&gt;The most important decision in live HOA systems is &lt;strong&gt;decoder placement&lt;/strong&gt;:&lt;/p&gt;
&lt;table class="wf-table"&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Setup&lt;/th&gt;&lt;th&gt;Advantages&lt;/th&gt;&lt;th&gt;Risks&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Laptop on stage (performer decodes)&lt;/td&gt;&lt;td&gt;Direct control, flexible spatial responses&lt;/td&gt;&lt;td&gt;Single point of failure, limited latency budget&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;FOH system decodes&lt;/td&gt;&lt;td&gt;Separation of performance and control room, proven infrastructure&lt;/td&gt;&lt;td&gt;Communication critical, B-Format streaming required&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Dedicated render machine&lt;/td&gt;&lt;td&gt;Most stable solution, performer independent&lt;/td&gt;&lt;td&gt;Synchronisation, network setup required&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="system-design-by-context"&gt;System Design by Context&lt;/h3&gt;
&lt;table class="wf-table"&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Context&lt;/th&gt;&lt;th&gt;Priorities&lt;/th&gt;&lt;th&gt;Recommended Tools&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Concert / Stage&lt;/td&gt;&lt;td&gt;Latency · robustness · FOH compatibility&lt;/td&gt;&lt;td&gt;REAPER + ICST Decoder · backup binaural mix&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Club / Electronic&lt;/td&gt;&lt;td&gt;Real-time panning · beat sync · interaction&lt;/td&gt;&lt;td&gt;Max/MSP + OSC + Ableton Link&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Gallery / Installation&lt;/td&gt;&lt;td&gt;Continuous operation · sensors · multiple zones&lt;/td&gt;&lt;td&gt;Max/MSP + binaural listening stations&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Hybrid Studio/Live&lt;/td&gt;&lt;td&gt;Combine production and performance&lt;/td&gt;&lt;td&gt;REAPER as recorder · Max as spatialiser&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="maxmsp-for-live-hoa"&gt;Max/MSP for Live HOA&lt;/h3&gt;
&lt;ul class="wf-steps"&gt;
&lt;li&gt;Load externals: &lt;code&gt;ambiencode~&lt;/code&gt;, &lt;code&gt;ambidecode~&lt;/code&gt;, &lt;code&gt;ambipanning~&lt;/code&gt; from the ICST Max tools&lt;/li&gt;
&lt;li&gt;Generative panning: &lt;code&gt;drunk&lt;/code&gt;, &lt;code&gt;noise~&lt;/code&gt;, or &lt;code&gt;cycle~&lt;/code&gt; feeding azimuth and elevation inputs&lt;/li&gt;
&lt;li&gt;OSC routing: control spatial parameters over the network (tablet, sensor, external software)&lt;/li&gt;
&lt;li&gt;Load speaker preset into &lt;code&gt;ambidecode~&lt;/code&gt; and send a test tone through all positions&lt;/li&gt;
&lt;li&gt;Stress-test for continuous operation: patch must run stably for hours without memory leaks or crashes&lt;/li&gt;
&lt;li&gt;Prepare a backup patch: switch to binaural stereo if the array fails&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="osc-control"&gt;OSC Control&lt;/h3&gt;
&lt;p&gt;OSC messages to the ICST AmbiEncoder enable real-time positioning from external sources — tablet, sensor, another piece of software, or a second device.&lt;/p&gt;
&lt;p&gt;Key preparation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Document OSC port and message namespace in the REAPER template.&lt;/li&gt;
&lt;li&gt;Test latency: OSC over UDP is unconfirmed delivery; for critical messages, consider confirmed transmission.&lt;/li&gt;
&lt;li&gt;Fallback: REAPER automation lanes as backup if OSC fails.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;→ Full OSC syntax reference: &lt;a href="https://ambisonics.ch/en/icst-ambisonics-plugins/osc-syntax/"&gt;OSC Syntax for the ICST AmbiEncoder&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="irregular-arrays-and-allradecoder"&gt;Irregular Arrays and AllRADecoder&lt;/h3&gt;
&lt;p&gt;For irregular speaker layouts (non-spherical, asymmetric), the &lt;strong&gt;AllRADecoder&lt;/strong&gt; from the &lt;a href="https://plugins.iem.at/"&gt;IEM Plugin Suite&lt;/a&gt; offers more flexibility than the ICST decoder. Workflow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enter speaker positions into AllRADecoder and compute the decoder matrix.&lt;/li&gt;
&lt;li&gt;Export the matrix as a preset and load it into the live patch.&lt;/li&gt;
&lt;li&gt;Always measure with the real setup — do not rely on simulation alone.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="quick-reference-decision-guide"&gt;Quick Reference: Decision Guide&lt;/h2&gt;
&lt;table class="wf-table"&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Situation&lt;/th&gt;&lt;th&gt;Decision&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;New production — which format?&lt;/td&gt;&lt;td&gt;ambiX (ACN/SN3D) · order determined by target format and microphone&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Opening an unknown file?&lt;/td&gt;&lt;td&gt;Check channel count → formula (N+1)² → read ordering tag in file header&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Preparing an export?&lt;/td&gt;&lt;td&gt;Solo B-Format master track · test render · re-import · binaural check&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Reusing a FuMa file?&lt;/td&gt;&lt;td&gt;Convert to ambiX first, then integrate into session&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Live setup — array fails?&lt;/td&gt;&lt;td&gt;Switch to binaural stereo backup — set it up beforehand&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Monitoring sounds wrong?&lt;/td&gt;&lt;td&gt;Check: binaural and speaker decoder running in parallel?&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="further-resources"&gt;Further Resources&lt;/h2&gt;
&lt;div class="wf-resources"&gt;
&lt;a class="wf-resource-link" href="https://ambisonics.ch/en/icst-ambisonics-plugins/15_best_practices/"&gt;Best Practices&lt;strong&gt;Setup rules, routing, monitoring, export&lt;/strong&gt;&lt;/a&gt;
&lt;a class="wf-resource-link" href="https://ambisonics.ch/en/learn/ambisonics-formats/"&gt;Ambisonics Formats&lt;strong&gt;A-Format · B-Format · ambiX · FuMa · ACN/SN3D&lt;/strong&gt;&lt;/a&gt;
&lt;a class="wf-resource-link" href="https://ambisonics.ch/en/icst-ambisonics-plugins/12_render_bformat/"&gt;Render B-Format&lt;strong&gt;Export guide for REAPER&lt;/strong&gt;&lt;/a&gt;
&lt;a class="wf-resource-link" href="https://ambisonics.ch/en/learn/working-with-ambisonics-workshop/"&gt;Advanced Workshop&lt;strong&gt;4-hour workshop: audit · recording · composition&lt;/strong&gt;&lt;/a&gt;
&lt;a class="wf-resource-link" href="https://ambisonics.ch/en/icst-ambisonics-plugins/"&gt;ICST Plugins Docs&lt;strong&gt;Plugin documentation for REAPER and Max/MSP&lt;/strong&gt;&lt;/a&gt;
&lt;a class="wf-resource-link" href="https://plugins.iem.at/"&gt;IEM Plugin Suite&lt;strong&gt;AllRADecoder · BinauralDecoder · further HOA tools&lt;/strong&gt;&lt;/a&gt;
&lt;a class="wf-resource-link" href="https://cabbageaudio.com/"&gt;Cabbage Audio&lt;strong&gt;Csound as VST3/AU for algorithmic HOA composition&lt;/strong&gt;&lt;/a&gt;
&lt;a class="wf-resource-link" href="https://www.openairlib.net/"&gt;OpenAIR / SOFA-HRTF&lt;strong&gt;HRTF files for binaural renderers&lt;/strong&gt;&lt;/a&gt;
&lt;/div&gt;</description></item></channel></rss>