<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Fuma on ICST Ambisonics</title><link>https://ambisonics.ch/tags/fuma/</link><description>
Recent content
in Fuma
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>Sun, 03 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ambisonics.ch/tags/fuma/index.xml" rel="self" type="application/rss+xml"/><item><title>ICST Ambisonics Workshop: Working with Ambisonics</title><link>https://ambisonics.ch/learn/working-with-ambisonics-workshop/</link><guid>https://ambisonics.ch/learn/working-with-ambisonics-workshop/</guid><pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate><author>johannes.schuett@zhdk.ch (Johannes Schuett)</author><description>&lt;style&gt;
/* ══════════════════════════════════════════════════════════════
WORKSHOP 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;
}
.post__content code { font-size: 0.95em; }
/* Hero */
.ws-hero {
background: linear-gradient(135deg, #1a2a3a 0%, #2c4a6e 100%);
border-radius: 10px; padding: 2.1rem 2.25rem 1.95rem;
color: #fff; margin-bottom: 2rem;
}
.ws-hero__title { font-size: 2.25rem; font-weight: 800; letter-spacing: 0.02em; margin: 0 0 0.3rem 0; }
.ws-hero__subtitle { font-size: 1.45rem; opacity: 0.75; margin: 0 0 1.2rem 0; }
.ws-badges { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; }
.ws-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;
text-decoration: none; display: inline-block;
}
a.ws-badge:hover { background: rgba(255,255,255,0.25); border-color: rgba(255,255,255,0.5); }
.ws-badge--blue { background: #4a9eda; border-color: #4a9eda; }
.ws-badge--green { background: #4a9e7a; border-color: #4a9e7a; }
.ws-meta { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 1rem; font-size: 1.38rem; opacity: 0.85; }
.ws-meta span { white-space: nowrap; }
.ws-meta a { color: inherit; text-decoration-color: rgba(255,255,255,0.45); text-underline-offset: 0.18em; }
.ws-meta a:hover { text-decoration-color: rgba(255,255,255,0.9); }
/* Goals */
.ws-goals {
background: #f0f6ff; border-left: 4px solid #4a9eda;
border-radius: 0 8px 8px 0; padding: 1.4rem 1.6rem; margin: 1.5rem 0 2rem;
}
.theme--dark .ws-goals { background: #1a2d3d; }
.ws-goals__title { font-weight: 700; font-size: 1.5rem; margin: 0 0 0.8rem; color: #1a2a3a; }
.theme--dark .ws-goals__title { color: #d0e8f7; }
.ws-goals ul { margin: 0; padding-left: 0; list-style: none; }
.ws-goals li { padding: 0.34rem 0 0.34rem 1.9rem; position: relative; font-size: 1.52rem; line-height: 1.5; }
.ws-goals li::before { content: "✓"; position: absolute; left: 0; color: #4a9eda; font-weight: 700; }
/* Block headers */
.ws-block {
border-top: 3px solid #4a9eda; margin: 2.5rem 0 1.2rem; padding-top: 1rem;
}
.ws-block__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.7rem; margin-bottom: 0.4rem; }
.ws-block__num {
background: #4a9eda; color: #fff; border-radius: 4px;
padding: 0.1rem 0.5rem; font-size: 1.12rem; font-weight: 700; letter-spacing: 0.05em; white-space: nowrap;
}
.ws-block__title { font-size: 1.9rem; font-weight: 700; color: #1a2a3a; margin: 0; }
.theme--dark .ws-block__title { color: #d0e8f7; }
.ws-block__meta {
font-size: 1.35rem; color: #666; margin: 0.2rem 0 1rem;
display: flex; flex-wrap: wrap; gap: 1rem;
}
.theme--dark .ws-block__meta { color: #7a9ab0; }
.ws-block__meta span::before { content: "· "; }
.ws-block__meta span:first-child::before { content: ""; }
/* Callouts */
.ws-info {
background: #edf5ff; border: 1px solid #b0d0f0;
border-left: 4px solid #4a9eda; border-radius: 0 8px 8px 0;
padding: 0.9rem 1.2rem; margin: 1rem 0 1.4rem;
font-size: 1.4rem; line-height: 1.6; color: #2c4a6e;
}
.ws-info strong { display: block; font-size: 1.18rem; font-weight: 700; margin-bottom: 0.3rem; color: #1a3a5c; }
.ws-info a { color: #2c72bb; }
.theme--dark .ws-info { background: #0f1f30; border-color: #2a4a6a; border-left-color: #4a9eda; color: #a0c8e8; }
.theme--dark .ws-info strong { color: #7ec8f0; }
.theme--dark .ws-info a { color: #7ec8f0; }
.ws-tip {
background: #f0faf4; border-left: 4px solid #4a9e7a;
border-radius: 0 8px 8px 0; padding: 0.9rem 1.2rem; margin: 1rem 0 1.4rem;
font-size: 1.4rem; line-height: 1.6; color: #1a3a2a;
}
.ws-tip strong { display: block; font-size: 1.18rem; font-weight: 700; margin-bottom: 0.3rem; color: #1a3a2a; }
.theme--dark .ws-tip { background: #0a1f14; border-left-color: #4a9e7a; color: #90d8b0; }
.theme--dark .ws-tip strong { color: #90d8b0; }
/* Figure / image */
.ws-figure {
margin: 1.6rem 0; border-radius: 8px; overflow: hidden;
border: 1px solid #d0e4f7;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.ws-figure img { width: 100%; height: auto; display: block; }
.ws-figure figcaption {
background: #f0f6ff; padding: 0.55rem 1rem;
font-size: 1.28rem; color: #666; border-top: 1px solid #d0e4f7;
font-style: italic;
}
.theme--dark .ws-figure { border-color: #2a4560; }
.theme--dark .ws-figure figcaption { background: #0f1f30; color: #7a9ab0; border-top-color: #2a4560; }
/* Navigation / TOC */
.ws-nav {
display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
gap: 0.6rem; margin: 1.2rem 0 2rem;
}
.ws-nav-item {
background: #f5f9ff; border: 1px solid #d0e4f7; border-radius: 7px;
padding: 0.65rem 0.9rem; text-decoration: none; color: #2c4a6e;
font-size: 1.32rem; display: flex; gap: 0.55rem; align-items: baseline;
transition: background 0.15s;
}
.ws-nav-item:hover { background: #e0eefa; text-decoration: none; }
.ws-nav-ltr { font-weight: 700; color: #4a9eda; font-size: 1.25rem; }
.theme--dark .ws-nav-item { background: #1a2d3d; border-color: #2a4560; color: #7ec8f0; }
.theme--dark .ws-nav-item:hover { background: #1e3548; }
.theme--dark .ws-nav-ltr { color: #7ec8f0; }
/* Steps / numbered list */
.ws-steps { counter-reset: ws-step; padding: 0; list-style: none; margin: 1rem 0 1.5rem; }
.ws-steps li {
counter-increment: ws-step;
padding: 0.55rem 0 0.55rem 2.8rem; position: relative;
font-size: 1.52rem; line-height: 1.55; border-bottom: 1px solid #e8eef5;
}
.theme--dark .ws-steps li { border-bottom-color: #2a3d4f; }
.ws-steps li:last-child { border-bottom: none; }
.ws-steps li::before {
content: counter(ws-step);
position: absolute; left: 0; top: 0.5rem;
background: #4a9eda; color: #fff; border-radius: 50%;
width: 1.8rem; height: 1.8rem; font-size: 1.15rem; font-weight: 700;
display: flex; align-items: center; justify-content: center;
}
/* Resources */
.ws-resources {
display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 0.8rem; margin: 1rem 0;
}
.ws-resource-link {
display: block; background: #f5f9ff; border: 1px solid #d0e4f7;
border-radius: 7px; padding: 0.7rem 1rem; text-decoration: none;
font-size: 1.35rem; color: #2c4a6e; transition: background 0.15s;
}
.ws-resource-link:hover { background: #e0eefa; text-decoration: none; }
.ws-resource-link strong { display: block; font-size: 1.18rem; color: #888; font-weight: 400; }
.theme--dark .ws-resource-link { background: #1a2d3d; border-color: #2a4560; color: #7ec8f0; }
.theme--dark .ws-resource-link:hover { background: #1e3548; }
.theme--dark .ws-resource-link strong { color: #7a9ab0; }
.ws-resource-link--featured { background: #e8f4fd; border-color: #4a9eda; border-width: 2px; font-weight: 700; color: #1a5c8a; }
.ws-resource-link--featured:hover { background: #d0eaf8; }
.theme--dark .ws-resource-link--featured { background: #0d2236; border-color: #4a9eda; color: #7ec8f0; }
.theme--dark .ws-resource-link--featured:hover { background: #112a40; }
/* Schedule table */
.ws-schedule {
width: 100%; border-collapse: collapse; font-size: 1.45rem;
margin: 1.2rem 0 2rem; border-radius: 8px; overflow: hidden;
box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}
.ws-schedule th { background: #2c4a6e; color: #fff; padding: 0.72rem 1.05rem; text-align: left; font-weight: 600; }
.ws-schedule td { padding: 0.7rem 1.05rem; border-bottom: 1px solid #e8eef5; vertical-align: middle; }
.theme--dark .ws-schedule td { border-bottom-color: #2a3d4f; }
.ws-schedule tr:last-child td { border-bottom: none; }
.ws-schedule tr.ws-block-row { background: #f5f9ff; }
.ws-schedule tr.ws-block-row td:first-child { font-weight: 600; color: #2c4a6e; }
.theme--dark .ws-schedule tr.ws-block-row { background: #1a2d3d; }
.theme--dark .ws-schedule tr.ws-block-row td:first-child { color: #7ec8f0; }
&lt;/style&gt;
&lt;div class="ws-hero"&gt;
&lt;p class="ws-hero__title"&gt;Working with Ambisonics&lt;/p&gt;
&lt;p class="ws-hero__subtitle"&gt;Online-Workshop · ICST / ZHdK · ambisonics.ch&lt;/p&gt;
&lt;div class="ws-badges"&gt;
&lt;span class="ws-badge ws-badge--blue"&gt;Online Course&lt;/span&gt;
&lt;span class="ws-badge ws-badge--green"&gt;Self-paced&lt;/span&gt;
&lt;a class="ws-badge" href="https://www.zylia.co" target="_blank" rel="noopener"&gt;Zylia ZM-1&lt;/a&gt;
&lt;a class="ws-badge" href="https://ambisonics.ch/start/" target="_blank" rel="noopener"&gt;ICST Plugins&lt;/a&gt;
&lt;a class="ws-badge" href="https://ambisonics.ch/learn/ambisonics-formats/"&gt;HOA 3rd Order&lt;/a&gt;
&lt;a class="ws-badge" href="https://www.reaper.fm" target="_blank" rel="noopener"&gt;Reaper pre-installed&lt;/a&gt;
&lt;/div&gt;
&lt;div class="ws-meta"&gt;
&lt;span&gt;🎛️ &lt;a href="https://www.reaper.fm" target="_blank" rel="noopener"&gt;REAPER&lt;/a&gt; + &lt;a href="https://ambisonics.ch/start/" target="_blank" rel="noopener"&gt;ICST AmbiEncoder/Decoder&lt;/a&gt;&lt;/span&gt;
&lt;span&gt;🎙️ &lt;a href="https://www.zylia.co" target="_blank" rel="noopener"&gt;Zylia ZM-1&lt;/a&gt; (16-channel HOA)&lt;/span&gt;
&lt;span&gt;🔄 &lt;a href="https://ambisonics.ch/learn/ambisonics-formats/"&gt;FuMa ↔ AmbiX Conversion&lt;/a&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="learning-objectives"&gt;Learning Objectives&lt;/h2&gt;
&lt;div class="ws-goals"&gt;
&lt;p class="ws-goals__title"&gt;After this workshop you will be able to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;explain the Ambisonics signal flow from recording to playback&lt;/li&gt;
&lt;li&gt;distinguish A-format (PCM audio) from B-format (mathematical format)&lt;/li&gt;
&lt;li&gt;set up and route a Zylia ZM-1 HOA recording in Reaper&lt;/li&gt;
&lt;li&gt;position sound sources in three-dimensional space using the ICST AmbiEncoder_64&lt;/li&gt;
&lt;li&gt;convert FOA/HOA material between FuMa and AmbiX formats&lt;/li&gt;
&lt;li&gt;carry out a guided hands-on exercise (Encoding → Mixing → Decoding) independently&lt;/li&gt;
&lt;li&gt;integrate external tools (MaxMSP, Csound/Cabbage) into an Ambisonics workflow&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📋 Preparation&lt;/strong&gt;
Reaper is pre-installed on all workshop computers (v7+, incl. ICST plugins) · Bring headphones (binaural monitoring) · &lt;a href="https://e.pcloud.link/publink/show?code=XZAeJrZH78kTyE16GyaO0aFzw3kdhpvNeYk" target="_blank" rel="noopener"&gt;Download the large workshop package&lt;/a&gt; (Reaper folder + papers) in advance
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id="contents"&gt;Contents&lt;/h2&gt;
&lt;div class="ws-nav"&gt;
&lt;a class="ws-nav-item" href="#block-a"&gt;&lt;span class="ws-nav-ltr"&gt;A&lt;/span&gt; Overall Workflow&lt;/a&gt;
&lt;a class="ws-nav-item" href="#block-b"&gt;&lt;span class="ws-nav-ltr"&gt;B&lt;/span&gt; Recording&lt;/a&gt;
&lt;a class="ws-nav-item" href="#block-c"&gt;&lt;span class="ws-nav-ltr"&gt;C&lt;/span&gt; Reaper Workflow&lt;/a&gt;
&lt;a class="ws-nav-item" href="#block-d"&gt;&lt;span class="ws-nav-ltr"&gt;D&lt;/span&gt; External Tools&lt;/a&gt;
&lt;a class="ws-nav-item" href="#block-e"&gt;&lt;span class="ws-nav-ltr"&gt;E&lt;/span&gt; Csound&lt;/a&gt;
&lt;a class="ws-nav-item" href="#block-f"&gt;&lt;span class="ws-nav-ltr"&gt;F&lt;/span&gt; MaxMSP&lt;/a&gt;
&lt;a class="ws-nav-item" href="#block-g"&gt;&lt;span class="ws-nav-ltr"&gt;G&lt;/span&gt; Discussion&lt;/a&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;div class="ws-block" id="block-a"&gt;
&lt;div class="ws-block__head"&gt;
&lt;span class="ws-block__num"&gt;BLOCK A&lt;/span&gt;
&lt;h2 class="ws-block__title"&gt;Overall Workflow&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="ws-block__meta"&gt;
&lt;span&gt;Signal Flow&lt;/span&gt;&lt;span&gt;Formats&lt;/span&gt;&lt;span&gt;HOA Orders&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Ambisonics is a channel-format-independent, full-sphere audio system. Every production follows the same chain — regardless of whether the target is headphones, an 8-channel ring, or a 24-channel dome.&lt;/p&gt;
&lt;h3 id="the-ambisonics-signal-flow"&gt;The Ambisonics Signal Flow&lt;/h3&gt;
&lt;figure class="ws-figure"&gt;
&lt;img src="https://ambisonics.ch/images/workshop/diagram-overall-workflow.png" alt="Ambisonics Overall Workflow: Recording → HOA Bus → B-Format Master / Binaural / Array" loading="lazy"&gt;
&lt;figcaption&gt;Ambisonics signal flow: From recording (A-format → B-format ambiX) through the HOA bus and production to the three output formats — B-format master, binaural stereo, and array/live.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;What happens&lt;/th&gt;
&lt;th&gt;Tool (Workshop)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1. Recording&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Microphone array → A-format (raw capsules) or direct HOA&lt;/td&gt;
&lt;td&gt;Zylia ZM-1 → Zylia App&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2. A-to-B Conversion&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Raw capsule data → B-format (AmbiX / HOA)&lt;/td&gt;
&lt;td&gt;Zylia App, JS plugin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;3. Encoding&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Position mono/stereo sources in space&lt;/td&gt;
&lt;td&gt;ICST AmbiEncoder_64&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;4. Processing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;EQ, reverb, panning on the HOA bus&lt;/td&gt;
&lt;td&gt;Reaper FX chain&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;5. Decoding&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;B-format → playback format&lt;/td&gt;
&lt;td&gt;ICST AmbiDecoder&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;6. Delivery&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Render master, choose format&lt;/td&gt;
&lt;td&gt;Reaper Render&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;The golden rule:&lt;/strong&gt; Render the B-format master track — never the decoder output. The decoder is for monitoring only. One and the same B-format master works for headphones, loudspeakers, and streaming.&lt;/p&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📖 Further reading: Ambisonics Fundamentals&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/post/ambisonics-in-30-minutes/"&gt;Ambisonics in 30 Minutes&lt;/a&gt; — compact overview of the system&lt;br&gt;
→ &lt;a href="https://ambisonics.ch/learn/ambisonics-workflow/"&gt;Workflow from Recording to Delivery&lt;/a&gt; — in-depth step-by-step guide&lt;br&gt;
→ &lt;a href="https://ambisonics.ch/post/getting-started-icst-plugins-reaper/"&gt;Getting Started: ICST Plugins in Reaper&lt;/a&gt; — introduction to the plugin chain
&lt;/div&gt;
&lt;h3 id="monitoring-setup"&gt;Monitoring Setup&lt;/h3&gt;
&lt;p&gt;Before recording starts, monitoring must be in place:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Binaural (headphones):&lt;/strong&gt; Load ICST AmbiDecoder with HRTF preset → direct spatial feedback without loudspeakers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Check decoder preset:&lt;/strong&gt; Does the layout (channel count, speaker geometry) match the actual setup?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Never run binaural and loudspeakers in parallel:&lt;/strong&gt; Only one decoder active — otherwise phase errors in the mix&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Separate monitoring branch:&lt;/strong&gt; Binaural monitor track on a dedicated bus, not looped into the B-format master&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📖 Further reading: Binaural Monitoring&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/post/binaural-monitoring-icst-workflow/"&gt;Binaural Monitoring in the ICST Workflow&lt;/a&gt; — HRTF setup, decoder presets, monitoring practice
&lt;/div&gt;
&lt;h3 id="formats--normalisation"&gt;Formats &amp;amp; Normalisation&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;Channel order&lt;/th&gt;
&lt;th&gt;Normalisation&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;FuMa&lt;/strong&gt; (Furse-Malham)&lt;/td&gt;
&lt;td&gt;W, X, Y, Z&lt;/td&gt;
&lt;td&gt;MaxN&lt;/td&gt;
&lt;td&gt;Older, legacy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AmbiX&lt;/strong&gt; (ACN / SN3D)&lt;/td&gt;
&lt;td&gt;W, Y, Z, X&lt;/td&gt;
&lt;td&gt;SN3D&lt;/td&gt;
&lt;td&gt;Current standard&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Rule of thumb:&lt;/strong&gt; Always work and archive in AmbiX (ACN/SN3D). Use FuMa only for compatibility with legacy material.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;HOA Order&lt;/th&gt;
&lt;th&gt;Channels&lt;/th&gt;
&lt;th&gt;Microphone example&lt;/th&gt;
&lt;th&gt;Spatial resolution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1st Order (FOA)&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Zoom H3-VR, Sennheiser Ambeo&lt;/td&gt;
&lt;td&gt;Good as stereo replacement, coarse directionality&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2nd Order&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Significantly sharper localisation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3rd Order&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;Zylia ZM-1&lt;/td&gt;
&lt;td&gt;High resolution, production reference&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📖 Further reading: Formats &amp; Orders&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/learn/ambisonics-formats/"&gt;Ambisonics Formats Explained&lt;/a&gt; — FuMa, AmbiX, ACN, SN3D in detail&lt;br&gt;
→ &lt;a href="https://ambisonics.ch/post/hoa-ordnung-wahl-praxis/"&gt;Which Ambisonics Order Do I Need?&lt;/a&gt; — practical decision guide
&lt;/div&gt;
&lt;h3 id="delivery-formats"&gt;Delivery Formats&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Target&lt;/th&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;Note&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Archive / Master&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Multichannel WAV, AmbiX, 48 kHz / 32-bit float&lt;/td&gt;
&lt;td&gt;Unaltered B-format master&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Binaural&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2-channel WAV&lt;/td&gt;
&lt;td&gt;Streaming, preview, headphones&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Loudspeakers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;N-channel WAV&lt;/td&gt;
&lt;td&gt;Performance, installation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;YouTube 360&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Binaural + Spatial Metadata&lt;/td&gt;
&lt;td&gt;Spatial Media Metadata Tool&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📖 Further reading: Exporting B-Format&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/icst-ambisonics-plugins/12_render_bformat/"&gt;Render B-Format in REAPER&lt;/a&gt; — step-by-step render setup&lt;br&gt;
→ &lt;a href="https://ambisonics.ch/post/b-format-export-reaper/"&gt;Exporting the B-Format Master&lt;/a&gt; — Reaper settings for archive and delivery
&lt;/div&gt;
&lt;hr&gt;
&lt;div class="ws-block" id="block-b"&gt;
&lt;div class="ws-block__head"&gt;
&lt;span class="ws-block__num"&gt;BLOCK B&lt;/span&gt;
&lt;h2 class="ws-block__title"&gt;How to Record Ambisonics — Zylia ZM-1&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="ws-block__meta"&gt;
&lt;span&gt;Microphone Setup&lt;/span&gt;&lt;span&gt;A-to-B Conversion&lt;/span&gt;&lt;span&gt;Reaper Session&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="recording-3d-audio-the-recording-workflow"&gt;Recording 3D Audio: The Recording Workflow&lt;/h3&gt;
&lt;figure class="ws-figure"&gt;
&lt;img src="https://ambisonics.ch/images/workshop/diagram-recording-3daudio.png" alt="Recording 3D Audio: Microphone → A-format → A-to-B Conversion → B-format" loading="lazy"&gt;
&lt;figcaption&gt;From capsule to B-format: microphone array (A-format, raw capsules) → A-to-B conversion in the Zylia app → 16-channel B-format (AmbiX). All three stages are covered in the workshop workflow.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h3 id="workflow-hands-on-with-zylia--main-reaper"&gt;Workflow (Hands-on with Zylia → Main Reaper)&lt;/h3&gt;
&lt;ol class="ws-steps"&gt;
&lt;li&gt;&lt;strong&gt;Short Recording Session&lt;/strong&gt; — Set up Zylia ZM-1, check levels (−18 dBFS), record 30–60 seconds → 19-channel A-format PCM&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A to B Converting&lt;/strong&gt; — Zylia App: import A-format, export as 3rd Order HOA → 16-channel B-format AmbiX WAV&lt;br&gt;
&lt;em&gt;A-format = PCM audio (regular audio data, raw capsules)&lt;/em&gt;&lt;br&gt;
&lt;em&gt;B-format = Mathematical format (spherical harmonics, not directly listenable)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Listening B-Format&lt;/strong&gt; — Load in Reaper, listen binaurally via HOA bus + AmbiDecoder: does "front" actually sound in front?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upsampling &amp; FX&lt;/strong&gt; — EQ, reverb on HOA bus, distance automation on the encoder&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mastering B-Format&lt;/strong&gt; — Render HOA Render Bus: 16 ch, 48 kHz, 32-bit float WAV → B-format master&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="ws-tip"&gt;
&lt;strong&gt;💡 Thunderstorm Example (Zylia Recording)&lt;/strong&gt;
A thunderstorm recording shows why HOA far surpasses stereo: thunder comes from all directions (full envelopment), rain falls from above (elevation), wind rotates (rotation of the sound field). In stereo: just a left-right smear. In Ambisonics: a complete sphere.
&lt;/div&gt;
&lt;h3 id="microphone-specifications"&gt;Microphone Specifications&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;19-capsule array (omnidirectional)&lt;/li&gt;
&lt;li&gt;Output: 19 raw channels → encoded to 3rd Order HOA (16 channels, AmbiX) by the Zylia software&lt;/li&gt;
&lt;li&gt;Connection: USB-C, no external power required&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="microphone-placement"&gt;Microphone Placement&lt;/h3&gt;
&lt;p&gt;The position of the microphone determines the listening perspective — this is not a technical but a compositional decision.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Height:&lt;/strong&gt; approx. 1.5 m for a natural ear-level perspective; lower for a &amp;ldquo;ground level&amp;rdquo; effect, higher for an overview perspective&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Orientation:&lt;/strong&gt; The microphone has a preferred direction (marker). &amp;ldquo;Front&amp;rdquo; in B-format corresponds to this direction — document it so that decoding is correct&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Distance to source:&lt;/strong&gt; Closer = more direct sound, more spatial detail; further = more diffuse field, less localisation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reflections:&lt;/strong&gt; Hard walls, floors, and ceilings are very prominent in an HOA microphone — listen carefully to the placement location before recording&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wind protection:&lt;/strong&gt; Always use a windshield outdoors (blimp or fur). Activate LF roll-off below 80 Hz&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="gain-management"&gt;Gain Management&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Target level: approx. &lt;strong&gt;−18 dBFS&lt;/strong&gt; (check all 19 channels individually)&lt;/li&gt;
&lt;li&gt;Headroom: at least &lt;strong&gt;12 dB&lt;/strong&gt; — transients in HOA microphones can peak unexpectedly&lt;/li&gt;
&lt;li&gt;Monitor all raw channels separately: a single clipping channel corrupts the entire B-format&lt;/li&gt;
&lt;li&gt;Set the gain structure in the Zylia app, not in Reaper after the fact&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="a-to-b-conversion"&gt;A-to-B Conversion&lt;/h3&gt;
&lt;p&gt;The Zylia ZM-1 delivers A-format (19 raw channels). The Zylia software converts these to 3rd Order HOA (16 channels, AmbiX):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;When to convert?&lt;/strong&gt; Immediately after recording, before importing into Reaper&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quality control:&lt;/strong&gt; Test phase and channel assignment — a mono test source from the front should sound clearly in front in the binaural monitor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Archive raw data:&lt;/strong&gt; Always keep the A-format (19 channels) — this allows re-conversion later with better software&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📖 Further reading: A-format &amp; B-format&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/post/ambisonics-mikrofon-a-format-b-format/"&gt;Recording with an Ambisonics Microphone – A-format, B-format&lt;/a&gt; — conversion workflow and quality control explained
&lt;/div&gt;
&lt;h3 id="field-recording-checklist"&gt;Field Recording Checklist&lt;/h3&gt;
&lt;style&gt;
.ws-checklist { list-style: none; padding: 0; margin: 0.5rem 0 1.2rem; }
.ws-checklist li { display: flex; align-items: flex-start; gap: 0.7rem; padding: 0.38rem 0; font-size: 1.48rem; line-height: 1.5; border-bottom: 1px solid #e8eef5; }
.theme--dark .ws-checklist li { border-bottom-color: #2a3d4f; }
.ws-checklist li:last-child { border-bottom: none; }
.ws-checklist input[type="checkbox"] { flex-shrink: 0; width: 1.2rem; height: 1.2rem; margin-top: 0.22rem; accent-color: #4a9eda; cursor: pointer; }
.ws-checklist li.done { color: #888; text-decoration: line-through; }
.theme--dark .ws-checklist li.done { color: #556; }
&lt;/style&gt;
&lt;p&gt;Before recording:&lt;/p&gt;
&lt;ul class="ws-checklist" id="checklist-before"&gt;
&lt;li&gt;&lt;input type="checkbox" onchange="wsCk(this)"&gt; Acoustic survey: reflections, noise sources, wind direction&lt;/li&gt;
&lt;li&gt;&lt;input type="checkbox" onchange="wsCk(this)"&gt; Decide on microphone placement and document it (height, orientation, distance)&lt;/li&gt;
&lt;li&gt;&lt;input type="checkbox" onchange="wsCk(this)"&gt; Level check: all 19 channels at approx. −18 dBFS&lt;/li&gt;
&lt;li&gt;&lt;input type="checkbox" onchange="wsCk(this)"&gt; Binaural monitoring active and verified&lt;/li&gt;
&lt;li&gt;&lt;input type="checkbox" onchange="wsCk(this)"&gt; Metadata template prepared (location, date, take number, weather)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After recording:&lt;/p&gt;
&lt;ul class="ws-checklist" id="checklist-after"&gt;
&lt;li&gt;&lt;input type="checkbox" onchange="wsCk(this)"&gt; A-to-B conversion in Zylia app&lt;/li&gt;
&lt;li&gt;&lt;input type="checkbox" onchange="wsCk(this)"&gt; Load HOA file (16 ch AmbiX) in Reaper and verify binaurally&lt;/li&gt;
&lt;li&gt;&lt;input type="checkbox" onchange="wsCk(this)"&gt; Archive raw channels (A-format)&lt;/li&gt;
&lt;/ul&gt;
&lt;script&gt;
function wsCk(cb) { cb.closest('li').classList.toggle('done', cb.checked); }
&lt;/script&gt;
&lt;h3 id="reaper-session-pre-configured"&gt;Reaper Session (pre-configured)&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Track&lt;/th&gt;
&lt;th&gt;Channels&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Notes&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Notes track (muted)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zylia ZM-1&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;Armed for recording · VU: multichannel peaks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HOA Bus&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;AUXRECV from Zylia · no direct out&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ICST AmbiDecoder&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;16 ch in + 2 aux · decoder plugin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Binaural Monitor&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Headphone monitoring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HOA Render Bus&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;Muted · for offline render&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📥 Download: Pre-configured Reaper Session&lt;/strong&gt;
All tracks, routing, and decoder preset are pre-configured — just open and start.&lt;br&gt;
→ &lt;a href="https://ambisonics.ch/downloads/zylia-recording-example/zylia_recording_example.RPP" download&gt;zylia_recording_example.RPP&lt;/a&gt;
&lt;/div&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📖 Further reading: Room Recording &amp; Acoustics&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/composing-in-ambisonics/073-room-capture/"&gt;Capturing Space and Synthetically Creating Space&lt;/a&gt; — room acoustics and recording technique for HOA productions
&lt;/div&gt;
&lt;h3 id="common-recording-errors-and-solutions"&gt;Common Recording Errors and Solutions&lt;/h3&gt;
&lt;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;Sound seems &amp;ldquo;back to front&amp;rdquo;&lt;/td&gt;
&lt;td&gt;Microphone orientation not documented&lt;/td&gt;
&lt;td&gt;Test and note front/back on location&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Comb filtering / unstable direction&lt;/td&gt;
&lt;td&gt;Faulty A-to-B conversion&lt;/td&gt;
&lt;td&gt;Check for spectral artefacts, repeat conversion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Clipping on individual channels&lt;/td&gt;
&lt;td&gt;Overloading of individual capsules&lt;/td&gt;
&lt;td&gt;Monitor all 19 raw channels separately, reduce gain&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wind noise in low frequencies&lt;/td&gt;
&lt;td&gt;Missing wind protection&lt;/td&gt;
&lt;td&gt;LF roll-off below 80 Hz, use blimp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No elevation&lt;/td&gt;
&lt;td&gt;FOA loaded instead of HOA&lt;/td&gt;
&lt;td&gt;Check channel count: FOA = 4 ch, HOA 3rd = 16 ch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;B-format import in Reaper incorrect&lt;/td&gt;
&lt;td&gt;Wrong ordering (FuMa instead of AmbiX)&lt;/td&gt;
&lt;td&gt;Use FuMa → AmbiX converter (JSFX, Block C)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h3 id="composers-workflow--the-three-stages"&gt;Composers Workflow — The Three Stages&lt;/h3&gt;
&lt;figure class="ws-figure"&gt;
&lt;img src="https://ambisonics.ch/images/workshop/diagram-three-stages.png" alt="The three stages: Encoder → Transformer → Decoder (Author / Image / Monitor)" loading="lazy"&gt;
&lt;figcaption&gt;The paradigmatic workflow of the Ambisonics Toolkit: Author → Image → Monitor. Every Ambisonics production passes through the same three stages — regardless of tool and output format.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Every Ambisonics production — whether field recording, synthesiser, or live performance — passes through three stages:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Stage&lt;/th&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;In practice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Encoding&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Where is the sound in 3D space?&lt;/td&gt;
&lt;td&gt;Azimuth, elevation, distance — via ICST AmbiEncoder_64 or Lua script&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Processing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;How does the sound move and how does it interact with the space?&lt;/td&gt;
&lt;td&gt;Rotation, movement automation, reverb on HOA bus, distance simulation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Decoding&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;How do I play this back on my audio system?&lt;/td&gt;
&lt;td&gt;ICST AmbiDecoder: binaural (HRTF), loudspeaker ring, MultiDecoder&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure class="ws-figure"&gt;
&lt;img src="https://ambisonics.ch/images/workshop/diagram-signalflow.png" alt="Signal flow (communication): External applications, bridges, DAW, external hardware, outputs" loading="lazy"&gt;
&lt;figcaption&gt;Complete signal flow of an Ambisonics production environment: external tools (AbletonLive, Csound, SuperCollider, Max 9) → bridges → DAW (sound design, spatialisation, mix &amp; mastering) → B-format → decoding. OSC/MIDI connects all layers.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;hr&gt;
&lt;div class="ws-block" id="block-c"&gt;
&lt;div class="ws-block__head"&gt;
&lt;span class="ws-block__num"&gt;BLOCK C&lt;/span&gt;
&lt;h2 class="ws-block__title"&gt;Reaper Workflow: Encoding · Processing · Decoding&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="ws-block__meta"&gt;
&lt;span&gt;ICST AmbiEncoder_64&lt;/span&gt;&lt;span&gt;Lua Automation&lt;/span&gt;&lt;span&gt;Decoding&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="encoding-with-icst-ambiencoder_64"&gt;Encoding with ICST AmbiEncoder_64&lt;/h3&gt;
&lt;p&gt;Plugin: &lt;strong&gt;ICST AmbiEncoder_64&lt;/strong&gt; (VST3) — pre-installed on all workshop computers.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Index&lt;/th&gt;
&lt;th&gt;Normalised&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Azimuth&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;0–1 → −180° to +180°&lt;/td&gt;
&lt;td&gt;Horizontal position&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Elevation&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;0–1 → −90° to +90° (0.5 = horizon)&lt;/td&gt;
&lt;td&gt;Vertical position&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Distance&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;0 = near · 1 = far&lt;/td&gt;
&lt;td&gt;Depth&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📥 Lua script: Encoding example&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/downloads/lua-scripts/icst_ambi_encoding_voice.lua" download&gt;icst_ambi_encoding_voice.lua&lt;/a&gt; — sets track, loads AmbiEncoder, positions source at azimuth −45°, elevation +20°
&lt;/div&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📖 Further reading: ICST AmbiEncoder&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/icst-ambisonics-plugins/10_icst_encoders/"&gt;ICST Encoders&lt;/a&gt; — all parameters, modes, and encoder variants at a glance&lt;br&gt;
→ &lt;a href="https://ambisonics.ch/post/icst-scripts/"&gt;ICST AmbiEncoder – Spiral Walk Script&lt;/a&gt; — example of complex Lua automation&lt;br&gt;
→ &lt;a href="https://ambisonics.ch/post/osc-syntax-for-the-icst-ambiencoder-plugin/"&gt;ICST AmbiEncoder – OSC Syntax&lt;/a&gt; — control the encoder via OSC (Touchdesigner, Max, etc.)
&lt;/div&gt;
&lt;h3 id="automation-moving-sound-sources"&gt;Automation: Moving Sound Sources&lt;/h3&gt;
&lt;p&gt;Physik-basierte Trajektorie: &lt;code&gt;atan2&lt;/code&gt; für Azimut, &lt;code&gt;√(x²+y²)&lt;/code&gt; für Distanz.&lt;/p&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📥 Lua scripts: Train pass-by&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/downloads/lua-scripts/icst_ambi_zug_langsam.lua" download&gt;icst_ambi_zug_langsam.lua&lt;/a&gt; — slow train, 28 seconds&lt;br&gt;
→ &lt;a href="https://ambisonics.ch/downloads/lua-scripts/icst_ambi_zug_schnell.lua" download&gt;icst_ambi_zug_schnell.lua&lt;/a&gt; — express train, 4 seconds&lt;br&gt;
→ &lt;a href="https://ambisonics.ch/downloads/lua-scripts/icst_ambi_zug_vergleich.lua" download&gt;icst_ambi_zug_vergleich.lua&lt;/a&gt; — pause + slow + pause + fast in sequence
&lt;/div&gt;
&lt;h3 id="processing"&gt;Processing&lt;/h3&gt;
&lt;h4 id="distance"&gt;Distance&lt;/h4&gt;
&lt;p&gt;In the ICST AmbiEncoder, &lt;strong&gt;Param 13 (Distance)&lt;/strong&gt; simulates depth in space. The plugin attenuates level and high-frequency content with increasing distance — similar to air absorption in real space:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Near sources (distance ~0): present, direct, high HF content&lt;/li&gt;
&lt;li&gt;Distant sources (distance ~1): quieter, duller, more diffuse-field content&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Combined with reverb:&lt;/strong&gt; The greater the distance, the higher the wet amount in the room plugin on the HOA bus&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📥 Reaper example: Distance automation&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/downloads/workshop-2026/reaper-setup/icst_stereo_pan_distanz.lua" download&gt;icst_stereo_pan_distanz.lua&lt;/a&gt;
&lt;/div&gt;
&lt;h4 id="room--reverb"&gt;Room / Reverb&lt;/h4&gt;
&lt;p&gt;The reverb sits on the &lt;strong&gt;HOA bus track&lt;/strong&gt; — not on the source track. Only then does the reverb remain anchored in Ambisonics space and get decoded correctly with the B-format.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ReaVerb or FX reverb&lt;/strong&gt; on the HOA bus (after all encoders, before the decoder)&lt;/li&gt;
&lt;li&gt;Dry/wet ratio: start sparingly (~10–20% wet), as HOA reverb sounds very prominent&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Room size and pre-delay&lt;/strong&gt; determine the size of the space&lt;/li&gt;
&lt;li&gt;Separate reverb sends per source allow different room distances&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📥 Reaper example: Room curves&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/downloads/workshop-2026/reaper-setup/icst_stereo_pan_raumkurven.lua" download&gt;icst_stereo_pan_raumkurven.lua&lt;/a&gt;
&lt;/div&gt;
&lt;h4 id="example-helicopter-flyover"&gt;Example: Helicopter Flyover&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Phase&lt;/th&gt;
&lt;th&gt;Azimuth&lt;/th&gt;
&lt;th&gt;Elevation&lt;/th&gt;
&lt;th&gt;Distance&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Approach (front)&lt;/td&gt;
&lt;td&gt;~0°&lt;/td&gt;
&lt;td&gt;15° → 70°&lt;/td&gt;
&lt;td&gt;1.0 → 0.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Overhead&lt;/td&gt;
&lt;td&gt;0° → 180°&lt;/td&gt;
&lt;td&gt;70° → 85° → 70°&lt;/td&gt;
&lt;td&gt;0.3 → &lt;strong&gt;min&lt;/strong&gt; → 0.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Departure (rear)&lt;/td&gt;
&lt;td&gt;~180°&lt;/td&gt;
&lt;td&gt;70° → 15°&lt;/td&gt;
&lt;td&gt;0.3 → 1.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The script calculates position, azimuth, and elevation directly from 3D coordinates (&lt;code&gt;atan2&lt;/code&gt;, Pythagoras) — no manual angle estimation.&lt;/p&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📖 Further reading: Spatial Parameters&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/composing-in-ambisonics/06-spatial-parameters/"&gt;Spatial Parameters as Compositional Material&lt;/a&gt; — creative use of azimuth, elevation, and distance
&lt;/div&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📥 Lua script: Helicopter flyover&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/downloads/lua-scripts/icst_ambi_kopter.lua" download&gt;icst_ambi_kopter.lua&lt;/a&gt; — 18 s flyover, 360 points, configurable height and lateral offset
&lt;/div&gt;
&lt;h3 id="decoding"&gt;Decoding&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Binaural:&lt;/strong&gt; ICST AmbiDecoder with HRTF file → 2-channel headphones&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Loudspeakers:&lt;/strong&gt; Decoder with &lt;code&gt;.spk&lt;/code&gt; configuration file&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Screensets:&lt;/strong&gt; &lt;code&gt;Ctrl+Alt+1&lt;/code&gt; (Recording) · &lt;code&gt;Ctrl+Alt+2&lt;/code&gt; (Mixing) · &lt;code&gt;Ctrl+Alt+3&lt;/code&gt; (Decoding)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📖 Further reading: Decoding &amp; Delivery&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/post/multi-decoder-mode/"&gt;ICST AmbiDecoder – Multi-Decoder Mode&lt;/a&gt; — running multiple output formats in parallel&lt;br&gt;
→ &lt;a href="https://ambisonics.ch/composing-in-ambisonics/082-binaural-delivery/"&gt;Binaural Rendering and Headphone Delivery&lt;/a&gt; — binaural render for streaming and headphones
&lt;/div&gt;
&lt;hr&gt;
&lt;h3 id="fuma--ambix-conversion-foa"&gt;FuMa → AmbiX Conversion (FOA)&lt;/h3&gt;
&lt;p&gt;For legacy material in FuMa format (e.g. SoundField, older productions):&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;FuMa Input&lt;/th&gt;
&lt;th&gt;AmbiX Output (ACN)&lt;/th&gt;
&lt;th&gt;Gain correction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ch1 = W&lt;/td&gt;
&lt;td&gt;ACN 0 = W&lt;/td&gt;
&lt;td&gt;× √2 = &lt;strong&gt;+3.01 dB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ch2 = X&lt;/td&gt;
&lt;td&gt;ACN 3 = X&lt;/td&gt;
&lt;td&gt;× 1/√3 = &lt;strong&gt;−4.77 dB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ch3 = Y&lt;/td&gt;
&lt;td&gt;ACN 1 = Y&lt;/td&gt;
&lt;td&gt;× 1/√3 = &lt;strong&gt;−4.77 dB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ch4 = Z&lt;/td&gt;
&lt;td&gt;ACN 2 = Z&lt;/td&gt;
&lt;td&gt;× 1/√3 = &lt;strong&gt;−4.77 dB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📥 JSFX plugin + Lua installer&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/downloads/lua-scripts/FuMa_to_AmbiX_FOA.jsfx" download&gt;FuMa_to_AmbiX_FOA.jsfx&lt;/a&gt; — JSFX plugin&lt;br&gt;
→ &lt;a href="https://ambisonics.ch/downloads/lua-scripts/icst_fuma_to_ambix_foa.lua" download&gt;icst_fuma_to_ambix_foa.lua&lt;/a&gt; — Lua installer&lt;br&gt;
In Reaper: Actions → Load new Script → &lt;code&gt;icst_fuma_to_ambix_foa.lua&lt;/code&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;div class="ws-block" id="block-d"&gt;
&lt;div class="ws-block__head"&gt;
&lt;span class="ws-block__num"&gt;BLOCK D&lt;/span&gt;
&lt;h2 class="ws-block__title"&gt;External to Reaper&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="ws-block__meta"&gt;
&lt;span&gt;MaxMSP&lt;/span&gt;&lt;span&gt;Csound&lt;/span&gt;&lt;span&gt;Max for Live&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Reaper is not the only environment for Ambisonics. These tools are used by composers and researchers — each with a different approach and different strengths.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Workflow with MaxMSP:&lt;/strong&gt; ICST Ambisonics Externals (ambicontrol, ambiencode, ambidecode). Real-time spatialisation, OSC control of the ICST AmbiEncoder in Reaper. Strength: generative and algorithmic spatialisation, live electronics.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Workflow with Csound (Cabbage.app):&lt;/strong&gt; Csound opcodes &lt;code&gt;bformenc1&lt;/code&gt; / &lt;code&gt;bformdec2&lt;/code&gt;. Cabbage wraps Csound as a VST3 plugin. Strength: precise mathematical control of the sound field, additive synthesis, granular synthesis.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Workflow with Max for Live:&lt;/strong&gt; MaxMSP integrated in Ableton Live. Combines Ableton&amp;rsquo;s production workflow with Ambisonics spatialisation. Strength: live performance with Ambisonics, studio production.&lt;/p&gt;
&lt;div class="ws-tip"&gt;
&lt;strong&gt;📌 Note&lt;/strong&gt;
Blocks D, E, and F go beyond the 4-hour workshop scope. They are introduced here as an overview and explored in depth in a follow-up workshop.
&lt;/div&gt;
&lt;hr&gt;
&lt;div class="ws-block" id="block-e"&gt;
&lt;div class="ws-block__head"&gt;
&lt;span class="ws-block__num"&gt;BLOCK E&lt;/span&gt;
&lt;h2 class="ws-block__title"&gt;Csound / Cabbage&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="ws-block__meta"&gt;
&lt;span&gt;Additive Synthesis&lt;/span&gt;&lt;span&gt;Spatialisation&lt;/span&gt;&lt;span&gt;VST3&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Csound is a programmable audio synthesis language. Cabbage wraps Csound instruments as VST3 plugins and makes them usable in Reaper.&lt;/p&gt;
&lt;h3 id="cabbage--reaper-daw"&gt;Cabbage → Reaper (DAW)&lt;/h3&gt;
&lt;figure class="ws-figure"&gt;
&lt;img src="https://ambisonics.ch/images/workshop/diagram-cabbage-reaper.png" alt="Cabbage (Csound) → Reaper: Cabbage.app → BlackHole_64 → Reaper.app, with OSC return channel" loading="lazy"&gt;
&lt;figcaption&gt;Integration of Cabbage/Csound into Reaper: Cabbage.app sends audio to Reaper via BlackHole_64 (virtual audio interface). OSC enables bidirectional communication — Reaper can control spatialisation parameters, Csound can receive encoder positions.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;Key Csound opcodes for Ambisonics:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;bformenc1&lt;/code&gt; — encodes a mono signal into B-format (1st–3rd order). Input: audio, azimuth, elevation. Output: HOA channels.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bformdec2&lt;/code&gt; — decodes B-format to a loudspeaker array.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Example: Additive Synth &amp;amp; Random Spatialisation (Cabbage)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A Cabbage example demonstrates: an additive synthesiser generates partials (sine waves) in real time. Each partial is independently spatialised with &lt;code&gt;bformenc1&lt;/code&gt; and a randomised azimuth/elevation. The position drifts randomly — the result is a moving cloud of sound in 3D space, then decoded binaurally.&lt;/p&gt;
&lt;hr&gt;
&lt;div class="ws-block" id="block-f"&gt;
&lt;div class="ws-block__head"&gt;
&lt;span class="ws-block__num"&gt;BLOCK F&lt;/span&gt;
&lt;h2 class="ws-block__title"&gt;MaxMSP — ICST Ambisonics Externals&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="ws-block__meta"&gt;
&lt;span&gt;ACT-Tool&lt;/span&gt;&lt;span&gt;OSC&lt;/span&gt;&lt;span&gt;Real-time&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;MaxMSP with the ICST Ambisonics Externals provides a complete real-time Ambisonics environment. Unlike a DAW, Max allows algorithmic and generative control of spatialisation — positions can be driven by data, gestures, sensors, or other audio signals.&lt;/p&gt;
&lt;h3 id="maxmsp--reaper-daw"&gt;MaxMSP → Reaper (DAW)&lt;/h3&gt;
&lt;figure class="ws-figure"&gt;
&lt;img src="https://ambisonics.ch/images/workshop/diagram-maxmsp-reaper.png" alt="MaxMSP → Reaper: Max9.app ↔ BlackHole_64 ↔ Reaper.app, with OSC and MIDI" loading="lazy"&gt;
&lt;figcaption&gt;MaxMSP and Reaper communicate via BlackHole_64 (audio), OSC (spatialisation parameters), and MIDI. Max9 can control the ICST AmbiEncoder in Reaper in real time — azimuth, elevation, and distance as live automation.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;ICST Ambisonics Externals:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ambiencode~&lt;/code&gt; — encodes mono audio into B-format. Message input for azimuth, elevation, distance.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ambidecode~&lt;/code&gt; — decodes B-format to loudspeakers or binaural.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ambicontrol&lt;/code&gt; — GUI panel for manual spatialisation control.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ACT-Tool Example:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The ACT-Tool (Ambisonics Composition Tool) is a MaxMSP patch developed at ICST:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3D visual interface for placing and animating sound sources&lt;/li&gt;
&lt;li&gt;Sources can be moved manually (mouse/trackpad) or algorithmically (LFOs, envelopes, data streams)&lt;/li&gt;
&lt;li&gt;OSC output: sends azimuth, elevation, and distance to any Ambisonics encoder — including the ICST AmbiEncoder in Reaper&lt;/li&gt;
&lt;li&gt;The ACT-Tool can be used as a &amp;ldquo;spatial score&amp;rdquo;: define movement visually, record OSC output as automation in Reaper&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="hands-on-exercise"&gt;Hands-on Exercise&lt;/h2&gt;
&lt;p&gt;Guided exercise with the prepared sessions:&lt;/p&gt;
&lt;ol class="ws-steps"&gt;
&lt;li&gt;Open the Zylia session, verify microphone routing and decoder preset&lt;/li&gt;
&lt;li&gt;Route a mono test source to the HOA bus, listen binaurally&lt;/li&gt;
&lt;li&gt;Run the encoding script: position source at azimuth −45°, elevation +20°&lt;/li&gt;
&lt;li&gt;Start the train pass-by automation and follow the trajectory binaurally&lt;/li&gt;
&lt;li&gt;Encode your own source and move it in space (automation or manually)&lt;/li&gt;
&lt;li&gt;Render and verify the B-format master (16 ch, not 2 ch!)&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="ws-info"&gt;
&lt;strong&gt;📖 Further reading: Compositional Practice&lt;/strong&gt;
→ &lt;a href="https://ambisonics.ch/composing-in-ambisonics/05-spatial-counterpoint/"&gt;Spatial Counterpoint&lt;/a&gt; — spatial contrary motion as a compositional technique&lt;br&gt;
→ &lt;a href="https://ambisonics.ch/post/reaper-setup-20-minuten/"&gt;Reaper Ambisonics Setup in 20 Minutes&lt;/a&gt; — quick setup for your own projects after the workshop
&lt;/div&gt;
&lt;hr&gt;
&lt;div class="ws-block" id="block-g"&gt;
&lt;div class="ws-block__head"&gt;
&lt;span class="ws-block__num"&gt;BLOCK G&lt;/span&gt;
&lt;h2 class="ws-block__title"&gt;Composer Discussion&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="ws-block__meta"&gt;
&lt;span&gt;Topics&lt;/span&gt;&lt;span&gt;Q&amp;A&lt;/span&gt;&lt;span&gt;Outlook&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;A guided discussion to consolidate the workshop experience. Not a lecture — participants share their own observations and develop ideas together.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Topics:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Space as compositional material:&lt;/strong&gt; Can space itself be the instrument? What happens when the space moves and the source stays still?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The composer&amp;rsquo;s perspective:&lt;/strong&gt; How does working in Ambisonics change compositional decisions compared to stereo?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Elevation and expressivity:&lt;/strong&gt; When does height feel natural, when artificial? What does the vertical axis enable that stereo never could?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Distance and reverb:&lt;/strong&gt; How do distance and reverb interact? When does a source sound &amp;ldquo;inside the space&amp;rdquo; rather than &amp;ldquo;outside&amp;rdquo;?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Outlook — follow-up workshop:&lt;/strong&gt; MaxMSP + Csound in depth (Blocks D, E, F).&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="preparation--downloads"&gt;Preparation &amp;amp; Downloads&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Reaper is pre-installed on all workshop computers (v7+, incl. ICST plugins)&lt;/li&gt;
&lt;li&gt;Bring headphones (binaural monitoring)&lt;/li&gt;
&lt;li&gt;Download the pre-configured Reaper session in advance&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="ws-resources"&gt;
&lt;a class="ws-resource-link ws-resource-link--featured" href="https://e.pcloud.link/publink/show?code=XZAeJrZH78kTyE16GyaO0aFzw3kdhpvNeYk" target="_blank" rel="noopener"&gt;⬇ ICST Workshop — Large Download (pCloud)&lt;strong&gt;Pre-configured Reaper folder (drag in Reaper.app → ready to go) + Workshop papers&lt;/strong&gt;&lt;/a&gt;
&lt;a class="ws-resource-link ws-resource-link--featured" href="https://ambisonics.ch/downloads/workshop-2026/ICST_Ambisonics_Workshop_2026.zip" download&gt;⬇ ICST_Ambisonics_Workshop_2026.zip&lt;strong&gt;Complete workshop package — Reaper session, Lua scripts, Csound, MaxMSP (6.8 MB)&lt;/strong&gt;&lt;/a&gt;
&lt;a class="ws-resource-link" href="https://ambisonics.ch/downloads/zylia-recording-example/zylia_recording_example.RPP" download&gt;zylia_recording_example.RPP&lt;strong&gt;Pre-configured Reaper session for Zylia ZM-1&lt;/strong&gt;&lt;/a&gt;
&lt;a class="ws-resource-link" href="https://ambisonics.ch/downloads/ICST_Ambisonics_Workshop.docx" download&gt;Workshop Document (.docx)&lt;strong&gt;Complete workshop document&lt;/strong&gt;&lt;/a&gt;
&lt;a class="ws-resource-link" href="https://ambisonics.ch/downloads/lua-scripts/icst_ambi_encoding_voice.lua" download&gt;icst_ambi_encoding_voice.lua&lt;strong&gt;Encoding: voice at Az −45°, El +20°&lt;/strong&gt;&lt;/a&gt;
&lt;a class="ws-resource-link" href="https://ambisonics.ch/downloads/lua-scripts/icst_ambi_zug_langsam.lua" download&gt;icst_ambi_zug_langsam.lua&lt;strong&gt;Slow train pass-by (28 s)&lt;/strong&gt;&lt;/a&gt;
&lt;a class="ws-resource-link" href="https://ambisonics.ch/downloads/lua-scripts/icst_ambi_zug_schnell.lua" download&gt;icst_ambi_zug_schnell.lua&lt;strong&gt;Express train pass-by (4 s)&lt;/strong&gt;&lt;/a&gt;
&lt;a class="ws-resource-link" href="https://ambisonics.ch/downloads/lua-scripts/icst_ambi_zug_vergleich.lua" download&gt;icst_ambi_zug_vergleich.lua&lt;strong&gt;Train comparison (slow + fast)&lt;/strong&gt;&lt;/a&gt;
&lt;a class="ws-resource-link" href="https://ambisonics.ch/downloads/lua-scripts/icst_ambi_kopter.lua" download&gt;icst_ambi_kopter.lua&lt;strong&gt;Helicopter flyover (3D, 18 s)&lt;/strong&gt;&lt;/a&gt;
&lt;a class="ws-resource-link" href="https://ambisonics.ch/downloads/lua-scripts/FuMa_to_AmbiX_FOA.jsfx" download&gt;FuMa_to_AmbiX_FOA.jsfx&lt;strong&gt;FuMa → AmbiX FOA Converter (JSFX)&lt;/strong&gt;&lt;/a&gt;
&lt;a class="ws-resource-link" href="https://ambisonics.ch/downloads/lua-scripts/icst_fuma_to_ambix_foa.lua" download&gt;icst_fuma_to_ambix_foa.lua&lt;strong&gt;FuMa → AmbiX Lua installer&lt;/strong&gt;&lt;/a&gt;
&lt;a class="ws-resource-link" href="https://ambisonics.ch/blog/b-format-archive/"&gt;ICST B-Format Archive&lt;strong&gt;Archive with HOA example files to explore&lt;/strong&gt;&lt;/a&gt;
&lt;a class="ws-resource-link" href="https://ambisonics.ch/icst-ambisonics-plugins/15_best_practices/"&gt;Best Practices&lt;strong&gt;Recommendations for professional Ambisonics productions&lt;/strong&gt;&lt;/a&gt;
&lt;/div&gt;</description></item></channel></rss>