Technische Umsetzung

Schichtenmodell

Schichtenmodell ISES

ISES gliedert sich in folgende logische Komponenten:

  • Ökosystem: Lebewesen in Form von Schwärmen und Lebensraum, der in Zonen aufgeteilt ist
  • Interaktion
  • Ausgabe und Verräumlichung mit der Software Zirkonium

Für die technische Umsetzung haben wir uns für Max 5 entschieden, eine graphische Entwicklungsumgebung für Musik und Multimedia von Cycling ‘74. Max ist ausgelegt für Echzeitprozesse und bietet durch die beiden Erweiterungen MSP und Jitter nützliche Komponenten für die Audio- und Videoverarbeitungen. Max ist im professionellen Bereich weit verbreitet.
Zusätzlich verwenden wir die Erweiterungen FTM und OO Objects. Eine ausführliche Abhandlung über OO Objects findet sich unter http://www.sounding-ecosystem.com/?page_id=236. Für die Verräumlichung greifen wir auf die Software Zirkonium des ZKMs zurück, welche Schnittstellen zu Max bietet.

Wie die einzelnen Komponenten tatsächlich realisiert werden, wird nachfolgend behandelt.

Ökosystemische Komponente

Der folgende Artikel geht auf die technische Umsetzung der ökosystemischen Komponente von ISES ein. Laut Wikipedia ist ein Ökosystem “ein System, das die Gesamtheit der Lebewesen (Biozönosen) und ihre unbelebte Umwelt, den Lebensraum (Biotop), in ihren Wechselbeziehungen umfasst.” http://de.wikipedia.org/wiki/%C3%96kosystem, Version vom 16:42, 19. Dez. 2009

Wie die Komponenten Lebewesen, Lebensraum und deren Wechselbeziehungen in unserer Implementierung eines Ökosystems aussehen, soll nachfolgend erläutert werden.

Ökosystem

Wir haben die Definition sehr wörtlich genommen und ein System konzipiert, das sich auf beliebige Arten von Lebensräumen übertragen lassen könnte, beispielsweise auf einen Wald oder ein Gewässer. Das Ökosystem von ISES umfasst dabei beliebig viele Schwärme, die sich in einem beschränkten Lebensraum mit beliebig vielen Zonen befinden.

Schwarm

Jeder Schwarm ist gekennzeichnet durch einen Zustand, Algorithmen, die den Schwarm steuern und einem eigens für ihn komponierten Musikstücks.

Der Zustand eines Schwarms ergibt sich aus seiner Position im Raum, seiner Energie, seiner Population, seiner Geschwindigkeit und seiner Wohlfühltemperatur.

Der Zustand wird durch Algorithmen beeinflusst. Den Kern der Schwarmsteuerung bildet die Aktionsschleife, die dafür sorgt, dass ein Schwarm hintereinander und fortlaufend Aktionen ausführt und somit in Bewegung bleibt – sowohl räumlich als auch klanglich.

Wenn die Energie des Schwarms aufgebraucht oder die absolute Differenz zwischen der Wohlfühltemperatur des Schwarms und der Temperatur der aktuellen Zone zu groß ist, stirbt der Schwarm. In diesem Fall wird seine Aktionsschleife kurzzeitig unterbrochen und startet nach einer zufälligen Zeit von vorne. Schwärme sterben also nicht, sondern sind nur für eine gewisse Zeit aktionsunfähig.

Durchläuft der Schwarm fortwährend Stresssituationen – beispielweise bedingt durch Nahrungsknappheit, einer nicht ausgeprägten Temperaturanpassung oder der Anwesenheit von Feinden –, verfällt er in Panik. In diesem Fall wird der reguläre Ablauf der Aktionsschleife ebenfalls unterbrochen und der Schwarm lebt für zufällige Zeit seine Panik aus.

Trifft oben genanntes nicht zu, werden Aktionen ausgeführt, die nicht nur den Zustand des Schwarms, sondern auch den Zustand des Lebensraums ändern können.

Mögliche Aktionen sind:

  • Leerlauf: Der Schwarm hat keine Sorgen und Bedürfnisse.
  • Nahrungsaufnahme: Der Schwarm konsumiert Nahrungsmittel, die ihm der Lebensraum zur Verfügung stellt.
  • Fortpflanzung: Der Schwarm vergrößert seine Population und wird stärker.
  • Fortbewegung: Der Schwarm wechselt seine aktuelle Position im Lebensraum.
  • Angriff bzw. Flucht, sollte sich noch ein anderer, stärkerer bzw. schwächerer Schwarm in der selben Zone befinden.

Diese Aktionen werden in Abhängigkeit zur aktuellen Energie des Schwarms zufällig ausgeführt. Hat der Schwarm beispielsweise viel Energie, steigt die Wahrscheinlichkeit, dass die Aktion Leerlauf ausgeführt wird. Hat der Schwarm wenig Energie, wird er mit hoher Wahrscheinlichkeit fressen – sofern die Nahrungsmittelvorkommen an seiner aktuellen Position im Lebensraum nicht aufgebraucht sind, denn dann muss er seiner Position ändern, indem er sich fortbewegt.

Wie sich die genannten Aktionen genau auf den Zustand des Schwarms auswirken, ist in der Schnittstellendokumentation (siehe Schnittstellendokumentation) bzw. in der Dokumentation zur Verräumlichungs- bzw. Ausgabeschicht (siehe Abschnitt Klangerzeugung) nachzulesen.

Jeder Schwarm greift auf ein eigens komponiertes Musikstück zurück (siehe Komposition), welches sich durch die Ausführung von Aktionen über die Zeit ändert (siehe Abschnitt Klangerzeugung).

Der Schwarm sendet fortlaufend Informationen an die Verräumlichungs- bzw. Ausgabeschicht (siehe Abschnitt Verräumlichung / Ausgabe).

Lebensraum

Konflikt: Möglichst große Bewegungsfreiheit bei ständiger Kontrolle einzelner Teile der Lebensraums.
Bewegung im Lebensraum durch Ressourcenknappheit.
Potiential des ZKM Kubus ausnutzen.

Der physikalische Klangraum wird durch ein beliebig großes zweidimensionales Raster abstrahiert, dem logischen Lebensraum. Der Lebensraum ist eine endliche Menge von Zonen. Jeder Schwarm befindet sich zu jedem Zeitpunkt in einer Zone. Er bewegt sich nicht frei im Lebensraum fort, sondern indem er die Zonen wechselt.

Zone

Der Zustand einer Zone wird bestimmt durch ihre Position im Lebensraum, der Schwärme, die sich in ihr befinden, ihrer aktuellen Temperatur, ihrem beschränkten Nahrungsmittelvorkommen und der Zeit, in welcher sich ihre Nahrungsmittel regenerieren.

Der Zustand einer Zone wird einerseits durch Schwärme verändert, die Ressourcen dieser Zone konsumieren. Andererseits haben auch die Interaktion (siehe Interaktion) oder zwei unabhängige Kreisläufe, die im gerichteten Zufall dafür sorgen, dass die Temperatur und die Nahrungsmittelwiederherstellungsrate schwanken, und sich verbrauchte Nahrungsmittel wiederherstellen (siehe Schnittstellendokumentation), Einfluss.

Durch die Interaktion lässt sich von außen eine Falle im Lebensraum aufstellen. Tritt ein Schwarm in solch eine Falle, wird sie ausgelöst und führt je nach Fallentyp zu unterschiedlichen Konsequenzen: Es kann beispielsweise passieren, dass der Schwarm sofort stirbt, oder in Panik verfällt.

Klangerzeugung

Wir entschieden uns zur Klangerzeugung die Technik der Granularsynthese zu verwenden. Die Granularsynthese ist eine in vielen Synthesizern eingesetzte Methode zur künstlichen Klangerzeugung. Es wird ein kontinuierlicher, veränderlicher Klang vorgetäuscht, der in Wirklichkeit aus vielen einzelnen “Klangschnipseln” (sog. Grains) besteht. Grains sind kleinste Teile eines vorhandenen Samples, welche durch Pitch-Shifting oder Time-Shifting verändert werden können, um so ein Klangbild zu erzeugen, welches wenig Ähnlichkeiten mit dem Orginal hat.

Damit die Klangerzeugung unseren Anforderungen genügt, dass jede Aktion die ein Schwarm durchführt (bspw. Angriff) einen anderen Klang besitzt, wurde für jede Aktion ein bestimmter Klangcharakter (Preset) definiert. Wird vom Schwarm eine bestimmte Aktion getätigt, wird bei der Klangerzeugung der Mechanismus ausgelöst, der den Klang auf die Charakteristik einstellt. Damit das Ändern der Charakteristiken nicht als abrupt und störend empfunden wird, werden die Werte zwischen zwei Presets interpoliert. Die Werte werden in 100ms auf die neuen Werte geändert, was zu einem merkbaren aber weichen Übergang führt. Eine ausführliche Aufstellung der Variablen für die Granularsynthese und die Presets ist in der Schnittstellendokumentation zu finden. Die Granularsynthese bildet den Grundklang des Ökosystems.

Um noch mehr Klangspektrum zu erhalten, wurden neben der Granularsynthese weitere Mechanismen zur Klangmanipulation eingebaut. Teile der eigens komponierten Stücke (siehe Komposition) werden ohne Veränderung zum eigentlichen Klang beigemischt, was eine kontinuierliche Überlagerung darstellt, die über einen längeren Zeitraum als die Presets andauern kann. Eine weitere einfache Granularsynthese mit festen Werten bildet den Abschluss der Klangerzeugung.

Die Überlagerungen der komponierten Stücke und der weiteren Granularsynthese bilden tonal die Einflüsse der Interaktion (siehe Interaktion) im Ökosystem ab.

Verräumlichung / Ausgabe

Da die Werte der einzelnen Schwärme im System nicht so vorliegen wie sie von der Ausgabesoftware Zirkonium (siehe Abschnitt ZKM Zirkonium) benötigt werden, geschieht die Anpassung der Werte in der Verräumlichungs- und Ausgabeschicht. Die X- und Y-Koordinaten der Schwärme im logischen Lebensraum müssen in Polarkoordinaten übersetzt werden, da Zirkonium intern nur mit Polarkoordinaten arbeitet. Hier wird auch die Anpassung der Steuerdaten an das angestrebte Verhalten des Systems durchgeführt. Zirkonium interpoliert intern nicht zwischen zwei übergebenen Koordinaten, also muss die Interpolation im System geschehen. Ein Schwarm läuft je nach seiner momentanen Geschwindigkeit in mehreren Schritten zur neuen Position, was als kontinuierliche Bewegung wahrgenommen wird. Es besteht auch die Möglichkeit den Schwarm sofort an eine neue Position springen zu lassen.

Alle Steuerwerte die zur Positionierung in Zirkonium benötigt werden, werden etwa alle 100ms als Paket an Zirkonium geschicht. Die erzeugten Klänge werden über ein Audio-Interface bzw. Software-Audio-Interface an Zirkonium übertragen.

ZKM Zirkonium

Die Ausgabe des Systems übernimmt die Software Zirkonium. Zirkonium ist eine Software zum Verräumlichen von Klängen und wird von vielen Künstlern im ZKM verwendet. Sie besitzt die Möglichkeit, den Klangraum auf jede beliebige Lautsprecherkonfiguration anzupassen. Somit ist es möglich, ein und dasselbe System mit Zirkonium auf beliebig vielen Lautsprecherkonfigurationen ablaufen zu lassen. Dies ist von großem Vorteil für uns, da so die Verräumlichung und Ausgabe Schicht im ZKM_Kubus und im MediaSynthesisLab nicht tauschen müssen.

Zirkonium nutzt zum Positionieren der Soundquellen das offene, auf UDP basierende Protokoll Open Sound Control (OSC). Die Verräumlichungs- und Ausgabeschicht (siehe Abschnitt Verräumlichung / Ausgabe) sendet geeignete Steuerdaten über OSC an Zirkonium. Wie die einzelnen OSC-Messages aufgebaut sein müssen, ist im Handbuch von Zirkonium oder in der Schnittstellendokumentation nachzulesen.

Die Kommentare sind geschlossen.