<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Animator on ICST Ambisonics</title><link>https://ambisonics.ch/tags/animator/</link><description>
Recent content
in Animator
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>Thu, 12 Nov 2026 10:30:00 +0100</lastBuildDate><atom:link href="https://ambisonics.ch/tags/animator/index.xml" rel="self" type="application/rss+xml"/><item><title>Animator Choreographer – plan space choreographies and export them for the Animator</title><link>https://ambisonics.ch/post/icst-animator-choreographer/</link><guid>https://ambisonics.ch/post/icst-animator-choreographer/</guid><pubDate>Thu, 12 Nov 2026 10:30:00 +0100</pubDate><author>johannes.schuett@zhdk.ch (Johannes Schuett)</author><description>&lt;p&gt;Level: Intermediate | &lt;strong&gt;Audience:&lt;/strong&gt; Composer, sound designer | &lt;strong&gt;Works with:&lt;/strong&gt; &lt;a href="https://ambisonics.ch/icst-ambisonics-plugins/11_animator/"&gt;ICST Animator&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Animator Choreographer&lt;/strong&gt; is a desktop app for planning how groups of sources move through space over time. You describe the choreography in listening terms (direction, distance, height, gesture) and the app generates the scene XML that the Animator in the ICST AmbiEncoder_64 imports and plays.&lt;/p&gt;
&lt;div
class="notice
notice--warning
"
&gt;
&lt;span
class="notice__title
notice__title--warning
"
&gt;Warning&lt;/span&gt;&lt;div class="notice__content"&gt;
&lt;p&gt;&lt;strong&gt;In development, unsigned.&lt;/strong&gt; The app is not yet code-signed and the documentation follows the current state of development. On macOS, open it the first time with right-click › Open, or remove the quarantine flag in Terminal: &lt;code&gt;xattr -dr com.apple.quarantine &amp;quot;Animator Choreographer.app&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://ambisonics.ch/images/icst-animator-choreographer-form.jpg" alt="The Form step of the Animator Choreographer: sections, space size and encoder on the left, top view, side view and timeline on the right"&gt;&lt;/p&gt;
&lt;h2 id="what-it-does"&gt;What it does&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Builds &lt;strong&gt;scene XML&lt;/strong&gt; for the Animator of the ICST AmbiEncoder_64.&lt;/li&gt;
&lt;li&gt;Guides you through &lt;strong&gt;five steps&lt;/strong&gt;, with a top view and a side view of the sources, a timeline with sections and a transport (space bar = start/stop).&lt;/li&gt;
&lt;li&gt;Takes the &lt;strong&gt;sections&lt;/strong&gt; of the piece from &lt;strong&gt;REAPER regions or markers&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Can &lt;strong&gt;draft a plan from a description&lt;/strong&gt; with a local language model.&lt;/li&gt;
&lt;li&gt;Saves plans as &lt;code&gt;.choreo.json&lt;/code&gt; and opens existing Animator exports for viewing or further editing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="requirements"&gt;Requirements&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;System&lt;/td&gt;
&lt;td&gt;macOS and Windows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plug-ins&lt;/td&gt;
&lt;td&gt;ICST Ambisonics Plugins with the Animator (AmbiEncoder_64) in REAPER&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Optional&lt;/td&gt;
&lt;td&gt;&lt;a href="https://ollama.com"&gt;Ollama&lt;/a&gt; for the draft from a description&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Licence&lt;/td&gt;
&lt;td&gt;GPL3&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="where-to-get-it"&gt;Where to get it&lt;/h2&gt;
&lt;p&gt;The Animator Choreographer is part of the preconfigured &lt;strong&gt;ICST Ambi Reaper&lt;/strong&gt; folder: the app lives in the &lt;code&gt;Animator&lt;/code&gt; folder, and toolbar button 13 (&lt;em&gt;Open Animator&lt;/em&gt;) starts it. The illustrated documentation of that folder (&lt;code&gt;Docs/index.html&lt;/code&gt;, toolbar button &lt;em&gt;Documentation&lt;/em&gt;) covers installation and the first steps. A separate release on GitHub follows.&lt;/p&gt;
&lt;h2 id="workflow"&gt;Workflow&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://ambisonics.ch/post/icst-animator-choreographer/workflow-en.svg" alt="Workflow of the Animator Choreographer: from the plan in the app to scene XML and playback in the Animator"&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Optionally export the regions or markers of your REAPER project as CSV.&lt;/li&gt;
&lt;li&gt;Plan the choreography in the app, import the sections, adjust groups and gestures.&lt;/li&gt;
&lt;li&gt;Export the scene as XML.&lt;/li&gt;
&lt;li&gt;Import the XML in the Animator and play it.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="the-five-steps"&gt;The five steps&lt;/h2&gt;
&lt;p&gt;The steps follow one another; the app jumps to step 5 if the plan has errors on export.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Form&lt;/strong&gt; — title, duration and sections of the piece. Sections can be imported from REAPER (see below).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Groups&lt;/strong&gt; — the groups of sources that move together.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gestures&lt;/strong&gt; — the movement of each group in each section, described in listening terms: direction, distance, height, gesture and curve.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Relations&lt;/strong&gt; — how groups relate to each other.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Review &amp;amp; Export&lt;/strong&gt; — check the plan and write the XML.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="import-reaper-regions"&gt;Import REAPER regions&lt;/h2&gt;
&lt;p&gt;The sections of your piece usually already exist as regions in REAPER.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In REAPER, run &lt;code&gt;Animator_export_regions_markers.lua&lt;/code&gt; (Actions › Load ReaScript). It writes &lt;code&gt;Animator_&amp;lt;project&amp;gt;_regions_markers.csv&lt;/code&gt; (times in seconds) next to the project. The ICST Ambi Reaper folder offers the same function as the action &lt;em&gt;Animator_Export_Regions_CSV&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;In the app, open step &lt;strong&gt;Form&lt;/strong&gt; and choose &lt;strong&gt;Import regions (CSV)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Regions become sections. Gaps between regions become sections named &lt;em&gt;(gap)&lt;/em&gt;. If the project has no regions, consecutive markers delimit the sections.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The app reports the start time of the first section. In the Animator, import the scene with &lt;strong&gt;Insert at Cursor&lt;/strong&gt; at exactly that position.&lt;/p&gt;
&lt;h2 id="plan-from-a-description"&gt;Plan from a description&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Describe&lt;/strong&gt; in the header bar opens a window where you describe the choreography in your own words, for example the build-up of a threatening sound cluster that implodes at the end.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A local language model drafts a &lt;strong&gt;plan&lt;/strong&gt;, not the XML directly. The model answers in listening terms, and a schema restricts the answer to valid values.&lt;/li&gt;
&lt;li&gt;The app reviews the draft (plan review, group count, one cell per section, total duration) and sends findings back to the model for correction, up to two times.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apply&lt;/strong&gt; loads the result like an opened plan. Afterwards everything remains editable in the five steps.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Without AI (rules)&lt;/strong&gt; builds a draft with the built-in rule planner instead, using English and German keywords and no language model.&lt;/li&gt;
&lt;li&gt;Options: number of groups and total duration (or automatic), the model among the installed ones, and &lt;strong&gt;Think&lt;/strong&gt;, which enables the model&amp;rsquo;s thinking phase (more thorough, roughly five to ten times slower).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The description never leaves your computer; the app talks to the local Ollama server at &lt;code&gt;127.0.0.1:11434&lt;/code&gt;. Cloud models are not offered.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Setup:&lt;/strong&gt; install and start Ollama, then &lt;code&gt;ollama pull gemma4:12b&lt;/code&gt; (about 8 GB, suitable for 16 GB RAM). A smaller alternative is &lt;code&gt;gemma4:e4b&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="example-tidal-canon"&gt;Example: Tidal Canon&lt;/h3&gt;
&lt;p&gt;The following description produces a 90-second plan with four voices. Paste it into &lt;strong&gt;Describe&lt;/strong&gt;, set &lt;em&gt;Groups&lt;/em&gt; to 4 and &lt;em&gt;Duration&lt;/em&gt; to automatic, then press &lt;strong&gt;Draft&lt;/strong&gt;. With &lt;code&gt;gemma4:12b&lt;/code&gt; the draft takes about two minutes.&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;Title: Tidal Canon.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1. Four voices start in the four corners at ear level, far away, and rest for 8 seconds.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2. For 12 seconds they move straight toward the centre and gather on a small circle (near).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;3. For 20 seconds they circle the listener clockwise, two full turns, each voice offset by one quarter of a turn.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;4. For 15 seconds the circle opens into a spiral that rises upward like a helix, ending high above the listener.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;5. For 15 seconds they swing like pendulums from left to right, slowly slowing down.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;6. For 12 seconds they drift randomly and softly, with gentle jitter.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;7. For the last 8 seconds they move straight back to their starting corners and rest.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="https://ambisonics.ch/images/icst-animator-choreographer-tidal-canon-demo.gif" alt="Tidal Canon in the Animator Choreographer: the plan drafted from the description, with preview and timeline"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Figure: animated GIF (plays automatically, loops). The Tidal Canon plan after &lt;strong&gt;Draft&lt;/strong&gt;: preview with four voices, side view and timeline.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Tips: give every section a duration and one gesture from the menu (Rest, Move straight, Move in an arc, Circle, Spiral, Rising helix, Pendulum, Rose, Lissajous figure, Random drift, Path via stations). Numbered sections with seconds are followed most reliably. The draft remains fully editable afterwards.&lt;/p&gt;
&lt;h2 id="export-and-use-in-the-animator"&gt;Export and use in the Animator&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;In step 5, choose &lt;strong&gt;Export XML&lt;/strong&gt;. The file dialog suggests &lt;code&gt;~/Documents/&amp;lt;title&amp;gt;.xml&lt;/code&gt;. After saving, a confirmation shows the path with &lt;strong&gt;Show in Finder&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;In the Animator, load the scene via the XML import (&lt;strong&gt;Import Scene…&lt;/strong&gt;, with the options &lt;strong&gt;Replace&lt;/strong&gt; and &lt;strong&gt;Rescale&lt;/strong&gt;) and play it. See the &lt;a href="https://ambisonics.ch/icst-ambisonics-plugins/11_animator/"&gt;Animator documentation&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Use &lt;strong&gt;Open XML&lt;/strong&gt; to load an existing Animator export for viewing or further editing.&lt;/p&gt;
&lt;h2 id="limitations"&gt;Limitations&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The direction of rotation of orbits is schematic in the preview. Playback in the Animator is authoritative.&lt;/li&gt;
&lt;li&gt;Plan files keep internal German keys for compatibility with files from the web version of the tool.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="licence"&gt;Licence&lt;/h2&gt;
&lt;p&gt;The code is licensed under GPL3, because headers of the ICST Ambisonics Plugins (GPL3) are included. The fonts Inter and JetBrains Mono are licensed under the SIL Open Font License.&lt;/p&gt;
&lt;h2 id="see-also"&gt;See also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ambisonics.ch/icst-ambisonics-plugins/11_animator/"&gt;ICST Animator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ambisonics.ch/ecosystem/"&gt;ICST Ambisonics EcoSystem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>