ICST Ambi Motion Map — Benutzerhandbuch

Niveau: Einsteiger–Fortgeschrittene | Zielgruppe: Komponist:in, Sound Designer:in, Spatial-Audio-Techniker:in.

Das Motion Map GUI erzeugt algorithmische Raumbewegungen für bis zu 64 AmbiEncoder-Quellen und schreibt sie mit einem Klick als REAPER-Automation. Diese Anleitung führt Schritt für Schritt durch alle Funktionen — vom ersten Start bis zu fortgeschrittenen Techniken.

Download: ICST Ambi Motion Map Bundle (GUI-Script + Automation-Writer, beide erforderlich)


1. Voraussetzungen

Vor dem Start werden folgende Komponenten benötigt:

  • REAPER v6 oder neuer
  • ICST AmbiEncoder_64 auf dem Ziel-Track (siehe Installation)
  • Python 3 installiert — nur für die Live-OSC-Vorschau erforderlich
  • Beide Script-Dateien im selben Ordner: JS_AmbiEncoder64_Motion_Map_GUI.lua und JS_Write_AmbiEncoder64_Spat_Motion_Automation.lua

2. Installation

Schritt 1 — Bundle herunterladen

Das ICST Ambi Motion Map Bundle herunterladen und entpacken. Beide Lua-Dateien in einem gemeinsamen Ordner belassen (z.B. im REAPER-Scripts-Verzeichnis).

Schritt 2 — Script in REAPER laden

In REAPER: Actions → Load ReaScript…JS_AmbiEncoder64_Motion_Map_GUI.lua auswählen. Nur das GUI-Script muss geladen werden — es findet den Writer automatisch.

Warnung
Der Writer JS_Write_AmbiEncoder64_Spat_Motion_Automation.lua muss im selben Ordner wie das GUI-Script liegen. Die beiden Dateien nicht trennen.

Schritt 3 — Aktion zuweisen (optional)

Im Actions-Fenster JS_AmbiEncoder64_Motion_Map_GUI suchen und einen Tastaturkürzel oder Toolbar-Button zuweisen.


3. Erster Start

  1. In REAPER genau einen Track auswählen, der das ICST AmbiEncoder_64 FX enthält.
  2. Eine Time Selection (Loop-Range) im REAPER-Timeline setzen — sie definiert, wo die Automation geschrieben wird.
  3. Das GUI-Script aus dem Actions-Menü (oder per Tastenkürzel) starten. Das Motion Map Fenster öffnet sich.
Warnung

„Bitte genau einen Track mit ICST AmbiEncoder_64 selektieren" — kein AmbiEncoder-Track ist ausgewählt. Den richtigen Track selektieren und das GUI neu starten.

„Bitte zuerst eine Loop/Time Selection setzen" — eine Loop-Range in der Timeline setzen, bevor auf Write geklickt wird.


4. Die Oberfläche auf einen Blick

Das Fenster gliedert sich in drei Bereiche:

Links — Source Grid: Zeilen für Sources S0–S63. Jede Zeile hat einen Aktivierungs-Toggle, ein Source-Label und zehn Bewegungsform-Zellen.

Rechts oben — Trajectory Preview: Animierte Leinwand, die den Pfad jeder aktiven Source zeigt. Die horizontale Achse ist X (links–rechts), die vertikale Y (unten–oben), beide in der aktuellen Scale-Einheit beschriftet. Die ausgewählte Source zeigt ein Koordinaten-Label (z.B. S0 X:-0.16 Y:-0.04).

Rechts unten — Settings: Steuerelemente für Scale, räumliche Parameter, Timing, Presets und Ausgabe-Optionen.


5. Sources aktivieren

Alle Sources starten deaktiviert. Es gibt drei Wege, eine Source einzuschalten:

  • Klick auf das ✓-Kästchen in der „On"-Spalte — schaltet die Source ein oder aus.
  • Klick auf das Source-Label (z.B. S0, S1) — gleicher Effekt, aber größere Klickfläche.
  • Shift+Klick auf ein Source-Label — aktiviert alle Sources von der aktuell ausgewählten bis zur angeklickten (Bereichsauswahl).

In der unteren Leiste stehen Schnellauswahl-Buttons: All Src, None Src, S0-7, S8-15 für schnelle Mehrfachauswahl.

Der Zähler oben rechts im Settings-Bereich zeigt, wie viele Sources aktiv sind (z.B. 3 / 64 active).


6. Bewegungsformen zuweisen

Jede Zeile hat zehn Form-Buttons. Klick auf einen Button weist diese Bewegungsform der Source zu. Das Zuweisen einer Form aktiviert die Source automatisch.

LabelFormBewegungscharakter
LinelineLinearer Sweep durch das Feld
Arc+arc_upBogen nach oben mit sanftem Easing
Arc−arc_downBogen nach unten
Ss_curveS-förmiger Sweep — sinusoidale Y-Bewegung
StepstepVier diskrete Positionsschritte
ZigzigzagSchnelles X/Y-Zickzack
CirccircleVollkreis in der XY-Ebene
SpirspiralExpandierende Spirale von innen nach außen
Fourfourier_xyzKomplexe 3D-Bahn aus summierten Harmonischen
LislissajousLissajous-Figur — X und Y auf verschiedenen Frequenzen

Wenn mehrere Sources dieselbe Form verwenden, verteilt der Src offset-Schieberegler (siehe §7) sie entlang der Trajektorie — sonst bewegen sie sich alle überlagert am gleichen Punkt.

Schnellzuweisung (PRESETS-Leiste unter dem Grid)

ButtonEffekt
AutoWeist Formen im Round-Robin (Line, Arc+, Arc−, …) auf alle 64 Sources zu
RandomWeist jeder Source eine zufällige Form zu
All LineSetzt alle aktiven Sources auf Line
All CircleSetzt alle aktiven Sources auf Circle
All StepSetzt alle aktiven Sources auf Step
S0-7 ArcWeist Arc+ den Sources 0–7 zu
S8-15 CircWeist Circle den Sources 8–15 zu
Clear AllEntfernt alle Formzuweisungen und deaktiviert alle Sources

7. Räumliche Parameter

Koordinatensystem

Das GUI arbeitet im kartesischen XYZ-Raum (Einheitskugel −1..+1). Der Scale-Wert setzt einen Anzeige-Multiplikator, damit in Metern gedacht werden kann. Die REAPER-Automation wird immer in der nativen Einheitskugel geschrieben — Scale ändert nie das, was aufgezeichnet wird, nur wie Werte angezeigt werden und wie die OSC-Distanz gesendet wird.

  • X = links–rechts (−1 = links, 0 = Mitte, +1 = rechts)
  • Y = unten–oben (−1 = unter dem Hörer, 0 = Horizont, +1 = darüber)
  • Z = Distanz (0 = nah, 1 = fern)

Steuerelemente

Alle Schieberegler sind ziehbar. Shift während des Ziehens halten für Feineinstellung. Klick auf das Wertefeld rechts ermöglicht direkte Zahleneingabe.

ParameterStandardBeschreibung
Scale (m)1Raumgröße in Metern. Angezeigte Koordinaten sind in Scale-Einheiten (z.B. Scale 10 → Bereich −10..+10 m). REAPER-Automation und OSC arbeiten intern mit der Einheitskugel. Beliebigen Wert 1–1000 eingeben.
Steps/sec12Automationspunkte pro Sekunde. Höher = flüssiger, aber mehr Envelope-Daten.
Motion amount1.00Globaler Amplituden-Multiplikator. 1.0 = voller Bereich; 0.5 = halbe Amplitude; Werte über 1.0 dehnen über den definierten Spread hinaus und werden an der Kugelgrenze geclampt.
X center0.00Links–rechts-Zentrum des Bewegungsfeldes (−Scale..+Scale).
X spread2.00Gesamter links–rechts-Bereich (0..2×Scale). 2.0 bei Scale 1 = voller −1..+1-Sweep — der maximale Bereich, der in REAPER geschrieben werden kann.
Src offset0.00Zeitlicher Versatz zwischen Sources entlang der Trajektorie. 0 = alle Sources am gleichen Punkt; 1 = Sources gleichmäßig über den gesamten Pfad verteilt. Damit lassen sich Sources mit gleicher Bewegungsform trennen.
Y center0.00Vertikal-Zentrum (−Scale = unten, 0 = Horizont, +Scale = oben).
Y spread0.56Gesamter Vertikalbereich.
Z center0.75Distanz-Zentrum (0 = nah, Scale = fern).
Z spread0.35Distanz-Variationsbereich.

Reset-Button

⟲ Reset (neben Write) stellt alle räumlichen und Timing-Parameter auf ihre Standardwerte zurück, während Formzuweisungen und Presets erhalten bleiben.

Scale und OSC-Distanz

Wenn die OSC-Vorschau aktiv ist, wird der gesendete Distanzwert als Einheitskugel-Radius × Scale berechnet. Bei Scale 10 sendet eine Source am Rand der Kugel ~10 m an den AmbiEncoder.


8. Zeitkurve — Bewegungsrhythmus gestalten

Der Bereich Time Curve steuert, wie die Animation zeitlich verläuft. Drei Modi:

ModusVerhalten
LinearGleichmäßige Geschwindigkeit — konstantes Tempo (Standard).
ExpLangsamer Start, schnelles Ende — die Bewegung beschleunigt.
LogSchneller Start, langsames Ende — die Bewegung verlangsamt sich.

Der n-Schieberegler (Exponent) legt die Stärke der Kurve fest. Bei n = 1 erzeugen alle drei Modi identische Ergebnisse. Typische Werte: 2.0–3.0.

Anwendungsfälle: Exp eignet sich für Sources, die abrupt „ankommen" sollen; Log ergibt einen ausholenden Einstieg, der sich setzt. Kombiniert mit Palindrome entstehen symmetrische Beschleunigungsprofile.


9. Palindrom-Modus

Wenn Palindrome aktiviert ist, spielt die Bewegung innerhalb derselben Time Selection vorwärts und dann rückwärts: die Form läuft 0 → 1 → 0 statt 0 → 1.

Das bedeutet:

  • Die Source kehrt am Ende an ihre Ausgangsposition zurück.
  • Ideal für oszillierende Bewegungen ohne harten Sprung.
  • Funktioniert mit allen Bewegungsformen.
  • Kombiniert mit Exp oder Log entstehen asymmetrische Vorwärts-/Rückwärtsgeschwindigkeiten.

10. Ausgabe-Optionen

OptionBeschreibung
Clear existingLöscht vorhandene Envelope-Punkte in der Time Selection vor dem Schreiben. Deaktivieren, um Bewegung auf vorhandene Automation zu schichten.
Track LatchSetzt den Track nach dem Schreiben in den Latch-Automationsmodus, damit Live-Parameterbewegungen beim nächsten Playback aufgezeichnet werden.
Overwrite regionWenn eine Region mit demselben Namen bereits existiert, wird sie zur aktuellen Time Selection verschoben statt einer neuen erstellt.
Use Z motionAktiviert die Distanz-(Z)-Variation. Deaktivieren, um Sources auf einer fixen Distanz zu halten, während X und Y sich weiterhin bewegen.

Regionsname

Legt den Namen der REAPER-Render-Region fest. Standard: BFormat_TS. Regionen sinnvoll benennen — sie erscheinen im REAPER-Projekt und in Render-Exporten.


11. Preset-System

Die Preset-Leiste oben im Settings-Bereich ermöglicht das Speichern, Laden und Löschen vollständiger Parametersets.

Ein Preset speichert: alle Formzuweisungen, welche Sources aktiviert sind, Scale, alle XYZ-Parameter (Center und Spread für X, Y, Z), Src offset, Steps/sec, Motion amount, Zeitkurven-Modus und Exponent, Palindrome, Use Z motion sowie alle Ausgabe-Optionen.

Preset speichern

  1. Einen Namen im Preset-Textfeld eingeben (z.B. Kreis_Weit).
  2. Save klicken.

Preset laden

  • Auf einen Preset-Chip (die Buttons unter dem Textfeld) klicken — sofortiges Laden.
  • Oder Namen eintippen und Load klicken.

Preset löschen

Namen eintippen (oder Chip klicken) und Delete klicken.

Viele Presets navigieren

Mit den ◄ ►-Pfeilen durch mehr als 6 gespeicherte Presets blättern. Presets bleiben über REAPER-Sessions hinaus erhalten (via REAPER ExtState gespeichert).


12. Live-OSC-Vorschau

Der OSC-Preview-Bereich sendet Live-Positionsdaten an den AmbiEncoder, während die Animation im GUI läuft — so kann die Bewegung gehört werden, bevor sie als Automation festgeschrieben wird.

Einrichtung Schritt für Schritt

  1. In REAPER Preferences → Control/OSC/web die Option „Allow binding of REAPER action and FX parameters to OSC" aktivieren und den Port notieren (Standard: 9001).
  2. Im GUI Host auf 127.0.0.1 und Port entsprechend setzen.
  3. Connect klicken. Der Status-Punkt wird grün, wenn der Python-Helfer läuft.
  4. Live Preview (sends AED to AmbiEncoder) aktivieren.

Das GUI sendet nun konvertierte OSC-Positionsmeldungen mit ~30 Hz für jede aktivierte Source. Die OSC-Distanz wird in physikalischen Metern gesendet (Einheitskugel-Radius × Scale).

Disconnect klicken, um das OSC-Senden zu beenden.

Warnung
Die Live-Vorschau erfordert Python 3 als python3 im System-PATH. Wenn der Status-Punkt rot bleibt, im Terminal python3 --version ausführen.

13. Automation schreiben

Wenn Sources eingerichtet und die Parameter in der Vorschau korrekt aussehen:

  1. Sicherstellen, dass der richtige REAPER-Track ausgewählt ist.
  2. Prüfen, dass die Time Selection den gewünschten Bereich abdeckt.
  3. ▶ Write Automation + Region klicken.

Das Script löscht vorhandene Envelope-Punkte (wenn Clear existing aktiv), schreibt XYZ-Automation für jede aktivierte Source direkt in der Einheitskugel (−1..+1) — unabhängig vom Scale-Anzeige-Wert — setzt den Track auf Latch-Modus (wenn Track Latch aktiv) und erstellt oder aktualisiert eine Render-Region.

Eine Statusmeldung am unteren Rand des GUIs bestätigt den Abschluss.


14. Trajektorien-Vorschau

Die Vorschauleinwand zeigt alle aktiven Sources gleichzeitig. Die horizontale Achse ist X (links–rechts), die vertikale Y (unten–oben), beide in der aktuellen Scale-Einheit beschriftet.

  • Jede Source erhält eine eigene Farbe. Die ausgewählte Source hat einen pulsierenden Halo und ein Koordinaten-Label (z.B. S0 X:-0.16 Y:-0.04 bei Scale 1, oder S0 X:-1.6 Y:-0.4 bei Scale 10).
  • Nicht ausgewählte Sources zeigen kleinere Punkte bei 80 % Deckkraft.
  • Alle Punkte animieren gleichzeitig — die vollständige räumliche Szene ist live sichtbar.
  • Pfade zeigen die vollständige Trajektorie jeder Source.

Auf ein Source-Label im Grid klicken, um es auszuwählen und seine Koordinaten in der Vorschau zu sehen.


15. Empfehlungen für die Praxis

  • Voller links–rechts-Sweep: X center = 0, X spread = 2×Scale (z.B. 2.00 bei Scale 1, 20.00 bei Scale 10). So wird der volle −1..+1-Bereich in die REAPER-Automation geschrieben.
  • Überlappende Sources trennen: Wenn zwei Sources dieselbe Form haben und ihre Pfade sich überlagern, Src offset auf 0.3–0.5 erhöhen, um sie entlang der Trajektorie zu verteilen.
  • Scale als Raumgröße: Scale auf den tatsächlichen Raumradius setzen (z.B. 8 für einen 8-m-Raum). Die OSC-Vorschau sendet dann Distanzen in Metern — die REAPER-Automation bleibt unverändert.
  • Mit Auto + 3–4 aktiven Sources starten, um die verfügbaren Formen kennenzulernen.
  • Steps/sec 6–8 für breite Sweeps; 20–30 für detaillierte Bewegungen.
  • Motion amount zunächst auf 1.0 — höhere Werte können an der Kugelgrenze geclampt werden.
  • Clear existing deaktiviert: Circle auf bestehende Linien-Automation schichten.
  • Palindrome + Log: schnell nach außen, sanft zurück — gut für reverbartige räumliche Ausklänge.
  • Vor dem Experimentieren immer ein Preset speichern.
  • Render-Regionen nach Szenen benennen: Intro_BFormat, Strophe_BFormat, Outro_BFormat.

16. Fehlerbehebung

Sources bewegen sich nach dem Schreiben nicht

Prüfen, ob mindestens eine Source ein ✓ in der „On"-Spalte und eine zugewiesene Form hat. Die Statusleiste zeigt, was geschrieben wurde.

Sources überlagern sich alle am gleichen Punkt

Src offset über 0 erhöhen (z.B. 0.5), damit Sources mit gleicher Bewegungsform zeitlich entlang des Pfades verteilt werden.

Automation entspricht nicht der Vorschau

Parameter-Änderungen nach der Vorschau, aber vor dem Schreiben beeinflussen die geschriebene Automation. Die Einstellungen vor dem Schreiben prüfen.

OSC-Vorschau — Punkt bleibt rot

  • Python 3 prüfen: python3 --version im Terminal.
  • Port muss mit den REAPER-OSC-Einstellungen übereinstimmen.
  • Disconnect → Connect neu klicken.

Writer-Script nicht gefunden

Beide Lua-Dateien müssen im selben Verzeichnis liegen. Bei Verschiebung erneut über Actions → Load ReaScript laden.

Steps/sec zu niedrig für kurze Regionen

Eine 0,1-Sekunden-Time-Selection bei 12 Steps/sec ergibt nur 1 Automationspunkt. Steps/sec erhöhen oder Time Selection verlängern.


Siehe auch