Beispiel: Audio-DeviceIn-Visual.toe

1. Funktionsweise & Steuerung der Zufallsposition

Um bei jedem Schlagzeug-Hit einen Kreis an einer neuen, festen Position aufblitzen zu lassen, teilen wir das System in zwei Bereiche: die Trigger-Erkennung und die Zufalls-Generierung.

Signalfluss der Kette

AudioDeviceIn ──> AudioFilter ──> Analyze ──> Slope ──> Logic ──> Trigger ──> Count ─(Seed)─> Noise ──> Math ──> Circle TOP

Die Aufgaben der Operatoren im Detail

1. Slope CHOP – Was misst er genau?

Der Slope CHOP misst nicht die Gesamtdauer oder "Länge" eines Tones, sondern die Veränderungsgeschwindigkeit (Steigung / Ableitung) des Audiosignals von Frame zu Frame
($v = \frac{dx}{dt}$).

2. Logic CHOP – Das Schwellenwert-Tor

Prüft, ob der Steigungsimpuls hoch genug ist, um als echter Schlag gewertet zu werden.

3. Trigger CHOP – Das Entprellen (Trommelwirbel & Entprellung)

Ein echter Schlagzeug-Hit wackelt beim Anstieg minimal nach. Der Trigger CHOP verhindert, dass aus einem einzigen Schlag mehrere Fehlauslösungen entstehen.

Diese Konfiguration verwandelt den Trigger CHOP in einen messerscharfen, ultraschnellen Impulsgeber. Sie sorgt dafür, dass extrem schnelle Trommelwirbel (bis zu 30 Schläge/Sek.) lückenlos gezählt werden, während das Mikro-Zittern bei gehaltenen Tönen zuverlässig blockiert wird.

1. Karteireiter: Trigger

Steuert die Empfindlichkeit, das Ansprechverhalten und die zeitliche Sperre gegen Mehrfachauslösungen.

Parameter Einstellung Funktion & Erklärung
Trigger-Threshold 0.5 Standard-Schwellenwert für das digitale Logik-Signal.
Re-Trigger-Delay 0.03 Schlüsselfaktor: Sperrt das Signal nach einem Treffer für genau 30 ms. Ignoriert das Zittern bei langen Tönen, lässt aber schnelle Wirbel durch.
Min-Trigger Length 0.0 Garantiert eine sofortige Reaktion im allerersten Frame ohne künstliche Verzögerung.
Trigger On Increasing Values Reagiert sofort auf die ansteigende Flanke (Signal wechselt von 0 nach 1).
Multi Trigger Restart Envelope Setzt den Impuls bei jedem neuen Schlag mitten im Wirbel sofort neu an.
Clamp at Peak Level Off Verhindert das künstliche Beschneiden von schnellen Folgeschlägen.
Update Once per Cycle Off Erlaubt das Auslösen neuer Impulse auch während eines laufenden Zyklus.
Complete Envelope Off Wichtig: Der laufende Impuls darf abgebrochen und sofort neu gestartet werden.
Remainder Discard Remainder Verwirft Signalreste für saubere, abgegrenzte Impulse.

2. Karteireiter: Attack

Definiert das Verhalten im ersten Moment des Einschlags sowie die Spitzenzeit des Impulses.

Parameter Einstellung Funktion & Erklärung
Delay Length 0.0 Keine Startverzögerung; der Trigger reagiert instant im selben Frame.
Attack Length 0.0 Das Signal springt ohne Anstiegszeit sofort auf den Maximalwert (1.0).
Attack Shape Linear Direkter, ungeglätteter Signalverlauf.
Peak Level 1.0 Voller Ausschlag für eine saubere Erkennung im Count CHOP.
Peak Length 0.01 Hält das Maximum für knapp 10 Millisekunden oben.

3. Karteireiter: Sustain

Verhindert das "Verkleben" des Signals, indem der Impuls blitzschnell wieder auf Null abfällt.

Parameter Einstellung Funktion & Erklärung
Decay Length 0.01 Lässt das Signal in 10 Millisekunden wieder komplett abfallen.
Decay Shape Linear (oder Easing) Knackiger, direkter Abfall.
Sustain Level 0.0 Hauptursache gelöst: Steht auf Null, damit das Signal nach dem Schlag nicht oben hängen bleibt.
Min Sustain Length 0.0 Keine künstliche Haltezeit auf hoher Stufe.
Release Length 0.01 Sehr kurzer Ausklang für sofortige Bereitschaft des nächsten Schlags.
Release Shape Linear Lineares Ausklingen ohne sanftes Nachfedern.
Ergebnis-Logik:
Durch Sustain Level: 0.0 und die extrem kurzen Zeiten (jew. 0.01s) fällt das Signal nach jedem Schlag in unter 20 ms auf Null ab. Ein Folgeschlag im Wirbel nach z. B. 35 ms erzeugt dadurch eine glasklare neue 0 → 1 Flanke für den Count CHOP.

4. Count CHOP – Der Schlag-Zähler

Reagiert auf jeden sauberen Impuls vom Trigger und zählt stetig eine Zahl hoch (1, 2, 3, 4 ...).

5. Noise CHOP – Zufall ohne Flattern

Der Noise CHOP erzeugt Pseudo-Zufall. Damit die Position starr stehen bleibt und nicht auf dem Bildschirm flattert, muss er statisch konfiguriert werden:

6. Math CHOP – Anpassen an die Bildschirmgröße

Standard-Random liefert Werte von 0.0 bis 1.0. Der Math CHOP skaliert sie passend für das Display:

Was bedeutet "Seed"?
Das Wort Seed bedeutet "Keimzelle". Es ist die Startzahl für den Zufallsgenerator. Gleicher Seed = Exakt gleiche Zufallswerte. Durch das Hochzählen des Count CHOPs wechselt der Noise CHOP bei jedem Schlagzeug-Hit stufenweise zum nächsten Zufallswert.

Kanal-Trennung für den Circle TOP (Select CHOPs)

Da der Math CHOP zwei Kanäle gleichzeitig führt (tx und ty), kann man aus ihm nicht direkt per Drag & Drop auf die Teilfelder des Circle TOPs ziehen. Um die Kanäle sauber zuzuweisen, müssen zwei Select CHOPs als Trennung nachgeschaltet werden.

Kanal-Aufteilung im Netzwerk

Noise CHOP (tx ty) ──> Math CHOP ──┬──> Select CHOP (Channel: tx) ──> Null CHOP (null_tx)
                                  └──> Select CHOP (Channel: ty) ──> Null CHOP (null_ty)

Schritt-für-Schritt Einrichtung:

  1. Schalte hinter den Math CHOP einen Select CHOP.
  2. Trage im Feld Channel Names den Wert tx ein (dieser Operator führt jetzt ausschließlich den X-Kanal).
  3. Dupliziere den Select CHOP und trage im zweiten Operator bei Channel Names den Wert ty ein.
  4. Setze hinter jeden Select CHOP jeweils einen Null CHOP (z. B. null_tx und null_ty).

Zuweisung an den Circle TOP

Da die beiden Null CHOPs jetzt jeweils nur noch genau einen einzigen Kanal enthalten, lässt sich die Zuweisung im Viewer Active Mode ([+]) ohne Gefummel durchführen:

Vorteil: Diese Trennung verhindert Fehlzuweisungen und sorgt dafür, dass TouchDesigner die X- und Y-Koordinaten bei jedem Schlag absolut verlässlich ausliest.