Bumblebeat
Aus Iwcs Wiki
eine "interaktive Fliegenklatsche"
von
Florian Goltz || g-flo*gmx.de
Christian Dietz || christian*florastudios.de
Inhaltsverzeichnis |
[bearbeiten] Idee
"Bumblebeat" ist eine interaktive Klanginstallation, die eine Kampfsituation mit einer Stechmücke simuliert. Dabei steuert eine Person die Flugbahn der Mücke über einem Brett, eine zweite ist angehalten mit Hilfe einer Fliegenklatsche dem lästigen Surren ein Ende zu bereiten.

Die Steuerung der Mücke erfolgt über einen Joystick. Sie wird akustisch vor das Brett projeziert und ist demnach nicht sichtbar.
Für die Detektion des Aufschlagpunktes wird eine Laufzeitanalyse des Körperschalls innerhalb des Brettes benutzt.
Als Hardware kommen für Analyse und Synthese je ein Computer mit Audio-Interface zum Einsatz.
[bearbeiten] Herausforderung
die Mücke:
- akustische Projektion mit guter Ortung
- „natürliches“ Flugverhalten inklusive Simulation des Flügelschlags (dynamische Tonhöhenänderung)
das Brett:
- zuverlässige Detektion des Aufschlagpunktes
der Klang:
- Synthese eines Mückenklangs
- Effekte für den "Sound" der Mücke
- Implementation einer Dramaturgie
- Abwechslung durch Zufallswerte für die Klanggenerierung
- Beeinflussung des Klangs durch Parameter des Schlages
[bearbeiten] System
Die Installation ist als modulares System aufgebaut. Die beiden Benutzerschnittstellen sind das Brett und der Joystick, die mittels des Analyse- und des Steuerungsmoduls, Steuerdaten an das System weitergeben.

Da die Analyse eine schnelle Audioverarbeitung verlangt, wurde sie auf einen zweiten Computer verlagert. Die Kommunikation zwischen den Computern erfolgt über das OSC-Protokoll. Die Signalverarbeitung wurde mit Max/MSP, puredata und Supercollider realisiert. Zur akustischen Projektion wird das WFS-System im H0104 der TU-Berlin verwendet.
Das Steuermodul schickt kontinuierlich Positionsdaten an das WFS-System und das Vergleichmodul. Als Steuerparameter wird der Gradient des Ortes, als Geschwindigkeitsmaß, an das Synthesemodul geschickt.
Das Analysemodul gibt neben der Anschlagstärke, die als Modulationsparameter an der Scoremodul übermittelt wird, die Koordinate eines Schlages, im Falle eines solchen, an das Vergleichsmodul weiter. Dort wird nun entschieden, ob die Mücke getroffen oder verfehlt wurde.
Das Scoremodul enthält eine feste Anzahl von Cues, die bei Fehlschlägen durchlaufen werden und Parameter für die Synthese enthalten. bei einem Treffer bedingt es die Beendung der Synthese.
Das synthesemodul beinhaltet Klangerzeuger und Effekte. Der durch sie erzeugte Mücken-"Sound" wird an das WFS-System übertragen.
[bearbeiten] Steuerung
Im Steuermodul werden die Daten des Joysticks in für das System verwendbare Werte skaliert. Die festgelegten Parameter Trägheit, für die Größe der Beschleunigung, und maximale Geschwindigkeit ermöglichen eine realistischere Flugbahn. Die beiden Parameter ermöglichen eine systemspezifische Skalierung. Für den Fall, dass die Mücke nicht bewegt wird, ist eine Funktion implementiert, die eine oszillierende Bewegung um den Standort verursacht.

Das Modul erzeugt kontinuierliche Positionsangaben, die an das Vergleichsmodul, sowie das WFS-System gesendet werden. Für die geschwindikeitsabhängige Tonhöhenänderung des Mückengeräusches im Synthesemodul wird der Ortsgradient als Steuerparameter berechnet.
[bearbeiten] Analyse
Der Schall, der sich im Brett ausbreitet, wird über zwei Piezos, die jeweils an einem Ende des Brettes angebracht sind, über zwei Kanäle eines Audio-Interface in das Analysemodul geführt. Die Lokalisation des Schlages erfolgt durch den Laufzeitunterschied Δt zwischen den beiden Kanälen.

Da Biegewellen am leichtesten angeregt werden können, wurde deren Körperschallgeschwindikeit berechnet. Diese ist dispersiv und liegt, bei dem hier verwendeten Material, zwischen 638 m/s für 50Hz und 2800 m/s für 1000Hz.
Messungen bei dem hier verwendeten Aufbau lieferten eine Schallgeschwindigkeit von etwa 1000 m/s. Die Ausbreitungsgeschwindigkeit ist also mehr als doppelt so hoch wie die in Luft (340 m/s). Folglich muß die digitale Signalverabeitung sehr schnell sein. Die in Max/MSP oder puredata üblichen 64 Samples pro Block sind nicht ausreichend. Um eine hohe zeitliche Auflösung zu garantieren, läuft das Analysemodul mit einer Samplerate von 48kHz und einer Blockgröße von 2 Samples, was einer Auflösung von etwa 0.04 ms entspricht.
Die folgende Grafik zeigt den Aufbau des Moduls.

Zunächst werden die Eingangssignale mit sich selbst multipliziert, was der Funktion eines Gleichrichters entspricht. Es folgt eine Glättung mittels Tiefpass. Dieser besitzt eine einstellbare Cut-off-Frequenz. Im nächsten Schritt werden die Signale mit einem festlegbaren Threshold-Wert verglichen. Signalanteile über diesem Wert werden Eins gesetzt, Werte darunter Null. Die Signale haben nun eine Rechteckgestalt.

Kommt es zu einer Veränderung von Null zu Eins auf einem Kanal, wird der Timer gestartet, eine Art Stoppuhr, der die zeit stoppt, die bis zur selben Art der Veränderung auf dem anderen Kanal vergangen ist. Die gemessene Zeit entspricht Δt, die entsprechend der Weiterverarbeitung noch skaliert wird. die gewonnene Aufschlagposition wird nun an das Vergleichmodul geschickt.
Um die Anschlagstärke als Steuerparameter zu nutzen, werden die Signale unabhängig vom Detektionsalgorithmus hinter dem Gleichrichter addiert und zum scoremodul geschickt.
Die Wirkung der einzelnen Verarbeitungsschritte auf das Eingangssignal ist in der nächsten Grafik dargestellt.

[bearbeiten] Positionsvergleich
Um der Mücke eine frei einstellbare Größe zu geben, wird ein Trefferbereich um sie herum definiert. Aufschlagkoordinaten, die innerhalb dieses Bereiches liegen, führen zu einem Treffer. Der Schwierigkeitsgrad des Spiels ist somit regelbar.

[bearbeiten] Score
Das Score-Modul ist die zentrale Schnittstelle zwischen den Interface-Modulen und der Synthese.
Während des "Spiels" werden Cues durchlaufen. Für die einzelnen Schritte sind hier Mischverhältnisse der Effekte vorgegeben. Ausserdem befinden sich dort Funktionen um das System zu starten oder stumm zu schalten, wenn die Score fertig durchlaufen ist (die Jagd verlief erfolglos) oder getroffen wurde.
[bearbeiten] Synthese
Der Großteil der Synthese ist in puredata realisiert. Als Grundsignale dienen ein Sägezahn- und ein Wavetable-Oszillator. Die Frequenz beider Oszillatoren unterscheidet sich ein wenig, so wird ein leichter Phasing-Effekt erreicht. Die vom Steuer-Modul gesendete Geschwindigkeit wird für eine Änderung der Grundfrequenz bei beschleunigten Flugbewegungen der Mücke genutzt. Bei einem Schlag wird die Frequenz kurz angehoben, um eine Reaktion der Mücke zu simulieren. Ausserdem wird die Frequenz des Sägezahns, zur Generierung einer Dramaturgie bei jedem Schlag ein bisschen erhöht.
Das Signal kann dann von verschiedenen Klangmodulatoren, deren Mischverhältnisse von dem Score-Modul geregelt sind, verfremdet werden. Die einzelnen Effektparameter werden für jeden neuen Cue zufällig generiert.

Zunächst durchläuft das Signal zwei Modulations-Delays mit Feedback. Die Delay-Buffer werden in einem Fall mit einem Phasor, in dem anderen durch einen Sinus-Oszillator ausgelesen. Die Geschwindigkeiten der Oszillatoren können wiederum moduliert werden.
Danach besteht die Möglichkeit, das Signal mit einer in Supercollider programmierten Granularsynthese anzureichern. Diese besteht aus sieben Instanzen, die jeweils ein Soundfile bearbeiten. Hierfür wurden ein Bohrer, Papier, Saxophonklappen, zwei Stimmen, Regen und ein Shaker aufgenommen. Die Kommunikation zwischen den Programmen wird mit OSC realisiert. Das Audiosignal wird über Jack geschickt.
Als letztes klangbearbeitendes Modul wird ein zu pd gehörender Waveshaper, der einen Röhrenverstärker simulieren soll, genutzt. Dies ist vor allem eine gute Möglichkeit die Gesamtdynamik des Systems zu kontrollieren. Zur Erzeugung einer Dramaturgie wird die "Verstärkung" ausserdem während des Spiels abhängig von der Schlagstärke kontrolliert.
Ausserdem steht ein Fileplayer zur Verfügung, welcher im Fall des Treffens der Mücke oder bei verlorenem Spiel für entprechende Geräusche sorgt.
[bearbeiten] Programme
Analyse-Patch (Max/MSP)
mosquito_wfs.pd (puredata. Beinhaltet Synthese-, Vergleichs-, Score- und Steuerungs-Modul)
granularsynthese (Supercollider)
