In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre
In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre
_mein garten ist eine frequenz.
avant_garden ist eine Experimentenreihe, bei der es darum geht, Pflanzen eine akustische Kommunikationsebene zu verleihen.
Wir Menschen neigen dazu, Lebewesen ohne phonologische Ausdrucksmöglichkeit geringer zu schätzen als solche, die über Laute kommunizieren können. Aus diesem Grund habe ich nach einem Ansatz gesucht, die Befindlichkeit einer Pflanze über über verschiedene Mittel wie beispielsweise Sensoren und Synthesizer akustisch zum Ausdruck zu bringen.
Hierbei war der Weg das Ziel, weshalb kein fest definiertes Endprodukt, sondern viele kleine Ergebnisse herausgekommen sind. Es bietet sich die Möglichkeit an, die Experimentreihe fortzuführen.
Recherche und Einarbeitung war ein wesentlicher Teil meines Prozesses, der nicht nur einmalig, sondern wiederholt stattgefunden hat.
Für mich stand relativ früh fest, dass ich mit Sensorik arbeiten wollte, weshalb ich anfangs eine Sammlung mit Sensoren angelegt habe, die für Pflanzen und deren Umfeld relevant sein könnten.
Nachdem feststand, dass ich mit Sound arbeiten würde, habe ich auf verschiedenen Plattformen Inspiration gesammelt und mich darüber informiert, in welchen Projekten bereits mit Pflanzen und Sound gearbeitet wurde.
Drei besonders prägende Beispiele:
Für die Arbeit mit Sensoren ist es sinnvoll, sich mit den im Physical Computing-Bereich beliebten Microcontrollern zu beschäftigen. Da am Campus vor allem Arduinos zur Verfügung standen, habe ich mir mit Hilfe des Buches Arduino Cookbok, 3rd Edition (Michael Margolis, Brian Jepson, Nicholas Robert Weldin, O'Reilly Media Inc., 2020) und zahlreicher Youtube-Tutorials die Grundlagen zum Thema Arduino näher gebracht. Dabei habe ich nicht nur gelernt, Programme für den Arduino zu schreiben, sondern auch meine Elektronik-Kenntnisse auffrischen können.
Um mich in die Programmiersprache Pure Data einzuarbeiten, hat mir vor allem das Buch Programming Sound with Pure Data (Tony Hillerson, Pragmatic Bookshelf, 2014) geholfen.
Da bei avant_garden kein benutzbares Produkt herausgekommen ist, gibt es auch keine User Experience. Stattdessen habe ich mir Gedanken zur Zielgruppe für eine eventuelle Live-Performance gemacht:
Das angestrebte Publikum ist offen für musikalische Experimente und interessiert sich dafür, wie die Musik entsteht. Daher ist es wichtig, technische Komponenten sichtbar zu machen und den Entstehungsprozess zu dokumentieren. Für eine rein akustische Veröffentlichung ist die Performance deshalb eher ungeeignet. Das Live-Erlebnis steht im Vordergrund.
Mit littleBits lassen sich schnell und einfach elektronische Schaltungen zusammenstecken. Mit dem Korg Synth Kit konnte ich auf simple Art und Weise ausprobieren, wie Synthesizer-Bauteile auf verschiedene Sensoren reagieren. Hier ein Beispiel mit einem Biegesensor:
Da ich im Laufe des Studiums bereits mehrfach mit P5.js gearbeitet habe, war die JavaScript-Library auch beim Programmieren von Synthesizern meine erste Wahl.
Um sensorabhängige Sounds in Pure Data zu entwickeln, habe ich meist auf einen Lichtsensor und / oder ein Potenziometer zurückgegriffen, da sich diese schnell und einfach auslesen und ansteuern lassen. Im Folgenden zwei Beispiele:
Da meine Umsetzung größtenteils aus Studien bestand, werde ich hier die im Dokumentationsvideo gezeigten Experimente der Reihe nach erläutern.
Für die Calathea spielt Licht eine große Rolle. Bekommt sie zu viel oder zu wenig davon, werden die Blätter braun und rollen sich ein. Außerdem schließt sie nachts ihre Blätter und öffnet sie morgens wieder. Deshalb habe ich beschlossen, einen Lichtsensor an ihr anzubringen.
Anfangs hatte ich als Sound eine durchgehende Sinus-Welle (ähnlich dem Toncharakter einer Stimmgabel) gewählt, die mit hellerem Licht lauter wird. Dieser penetrante Ton wollte jedoch so gar nicht zu der ästhetisch ansprechenden und nicht allzu pflegeaufwändigen Calathea passen.
Deshalb habe ich noch einmal am Sound gearbeitet und einen LFO auf die Lautstärke des Sinus-Tons gelegt. Dieser verursacht ein Zittern und lässt den Ton so wie eine Art Schnurren klingen.
Der Lichtsensor steuert in dieser Version sowohl die Frequenz (Tonhöhe), als auch die Basislautstärke.
Der Schwertfarn benötigt eine hohe Luftfeuchtigkeit um zu überleben, deshalb habe ich ihn mit einem Luftfeuchtigkeitssensor bestückt.
Der Sensor steuert die Lautstärke eines Rauschens, das an Regen oder fließendes Wasser erinnert.
Im Zusammenhang mit Bewegung fand ich das Schaukeln von Ästen im Wind interessant. Deshalb habe ich an einem Haselnuss-Busch mit dünnen, flexiblen Ästen einen Gyro-Sensor befestigt. Unglücklicherweise hat am Drehtag kaum Wind geweht, weshalb ich den Ast (offensichtlich) von Hand bewegt habe.
Die Frequenz (also die Tonhöhe) ändert sich je nach Neigung des Sensors. Zusammen mit einem Sinus-Oszillator ergibt sich ein pfeifendes Geräusch, das an Soundeffekte erinnert, die in alten Cartoon-Filmen gerne für schnelle Bewegungen verwendet wurden. Auch erinnern pfeifende Sounds generell an windige Nächte.
Auch an der Efeu-Pflanze habe ich den Luftfeuchtigkeits-Sensor angebracht, da auch sie ein humides Klima bevorzugt.
Genau wie zuvor ist der Ton ein Rauschen, das aber – im Gegensatz zum Sound des Schwertfarns – kontinuierlich anschwillt und abklingt. So entsteht ein Geräusch, das sich nach rauschenden Wellen oder auch nach Atmung anhört. Assoziativ ergibt sich daraus Meeresluft, die bekanntermaßen eher feucht ist und so dem Efeu gut gefallen dürfte.
Durch die Herangehensweise mit losen Experimenten konnte ich frei arbeiten und beliebig weit in die Breite gehen.
Ich konnte in diesem Semester so viel lernen wie in keinem Semester zuvor und auch wenn kein definiertes Endprodukt herausgekommen ist, hat das Projekt mich persönlich sehr viel weiter gebracht.
Da es noch unzählige Möglichkeiten gibt, die ich innerhalb des Semesters nicht geschafft habe auszuprobieren, werde ich das Projekt auf eigene Faust fortführen und auf dem bereits angelegten Instagram-Account dokumentieren. Der nächste Schritt ist die weitere Einarbeitung in Pure Data, sodass ich die Sounds für einzelne Pflanzen und Sensoren genauer definieren kann.
Am 6. Mai haben wir Kapuziner-Kresse gesät, um an lebenden Pflanzen experimentieren zu können. Etwa eine Woche später haben die ersten Triebe die Erdoberfläche erreicht, nach zwei Wochen hat die erste Pflanze bereits die 10cm-Marke geknackt.
Am 29. Mai haben wir Töpfe gekauft und die Kapuziner-Kresse umgetopft. Jetzt ist sie bereit für die ersten Experimente.
Pixelsynth ist ein Browsertool für Spektralsynthese. Das bedeutet, dass die Pixelspalten der dort hochgeladenen Bilder nach und nach abgetastet werden. Je weiter oben der Pixel im Bild liegt, desto höher ist der Ton. Je heller er ist, desto lauter der Klang. Um das Klangergebnis zu verändern, können sowohl Bildeigenschaften (z.B. Helligkeit, Kontrast), als auch Klangeigenschaften (z.B. Anzahl und Skala der abgetasteten Töne) verändert werden.
Um das Erscheinungsbild von Pflanzen in Töne umzuwandeln, habe ich Fotos von verschiedenen Blüten (gefunden bei Unsplash) hochgeladen. Es bieten sich Fotos mit schwarzem Hintergrund an, da man so tatsächlich nur die Blüte „hört“.
Der nächste Schritt wäre, ein vergleichbares Tool in p5.js zu programmieren.
Biegesensor + Sequencer + Oszillator + Lautsprecher =
Mein erster Versuch, einen virtuellen Synthesizer zu programmieren. Er besteht aus drei Tasten, die einen A-Moll-Akkord ergeben. Er kann hier ausprobiert werden.
Die Erweiterung umfasst eine ganze Oktave mit Halbtönen. Sie kann hier ausprobiert werden.
Zur Feier des fünfzigsten Earth Day verlost FieldKit unter dem Zeichen #fieldkit50 50 Wetter- bzw. Wassermessstationen an Personen, die sich mit ihrem Projekt bewerben. Auch ich habe avant_garden eingereicht und bin gespannt auf die Bekanntgabe der Gewinner am 22. Mai.
Diese Woche habe ich es geschafft, in P5.js Bilder in Sound umzuwandeln. Das ist mir gelungen, indem ich einen Image Filter aus dem Buch „Generative Design“ als Vorbild hergenommen, auf das Wesentliche reduziert und um eine auditive Ebene pro generiertem Pixel ergänzt habe. Auch wenn der Sound noch nicht besonders definiert klingt (viele der Töne im Video unten waren zu tief für die Aufnahme), kann man einen Unterschied zwischen verschiedenen Bildern feststellen.
Leider funktioniert der Sketch aus bisher unbekannten Gründen nicht im P5.js Web Editor, der Code kann hier aber schon eingesehen werden.
Um das Slitscan-Prinzip auf den Picture-Synth-anzuwenden, habe ich den Beispiel-Code aus Creative Coding 1:1 kopiert und in einen neuen Sketch in Atom eingefügt. Leider werden mir beim Abspielen Fehlermeldungen gezeigt, die je nach Browser variieren. Die Macbook-Kamera ist eingeschaltet, die Fläche der Canvas bleibt aber schwarz. Die Dom-Library ist im Sketch aktiviert.
Folgende Fehlermeldung erscheint bei Google Chrome:
Das sagt Safari dazu:
Aktuell bin ich damit beschäftigt, die Sensordaten vom Arduino in den P5-Synthesizer zu übertragen. Hierfür habe ich P5 Serial Control installiert - ein Programm, das Daten aus den Serial Ports des Computers auf einen Server überträgt, auf den P5.js dann mithilfe der p5.serialport.js-Library zugreifen kann. Bisher konnte ich P5 Serial Control installieren und den Serial Port des Arduino verbinden. Der nächste Schritt ist, die Daten in den P5-Sketch zu übertragen. Aktuell bekomme ich noch eine Error-Message, wenn ich die Schritte meiner Anleitung befolge.
Wie in der Bildergalerie zu sehen ist, hat die Pflanze tatsächlich den Faden beim Wachsen abgespult. Dennoch ist der Faden an der Pflanze nach unten gerutscht und müsste daher etwas besser fixiert werden.
Nach der Behebung des Fehlers im Serial Input-Sketch (Grund: fehlerhafte HTML-Kodierung von Sonderzeichen in der Code-Vorlage) kann ich endlich Werte vom Arduino in den Browser und damit in P5.js übertragen. Im unten gezeigten Sketch habe ich so mit einem Potentiometer die Frequenz eines Sinus-Oszillators geregelt.
Daraufhin habe ich den Potentiometer durch einen Lichtsensor ersetzt und die Werte im selben Programm verwendet.
Als Nächstes habe ich versucht, auf dieselbe Weise eine Pflanze anzuschließen. Für eine junge Kapuziner-Kresse-Pflanze hat das leider mit einem abgerissenen Arm geendet. Für weitere Experimente habe ich daher die etwas robustere Mexikanische Bergpalme (chamaedoera elegans) herangezogen, deren Blätter die Krokodilklemmen ohne größere Spuren ausgehalten haben.
Da keiner meiner Widerstände passend war, um als Gegen-Widerstand für den Sensor zu fungieren, habe ich übergangsweise ein einzelnes Blatt derselben Pflanze angeklemmt (weiße Klemmen).
Berührt man die Pflanze zwischen den Hauptklemmen (schwarz), die an zwei Seiten der Pflanze angebracht sind, verändert sich der Ausgabe-Wert und damit die Frequenz des Oszillators.
Mithilfe des Buches „Programming Sound with Pure Data“ von Tony Hillerson habe ich begonnen, mich in Pure Data einzuarbeiten. Nachdem ich einen in Lautstärke und Frequenz veränderbaren Synthesizer programmiert habe, wäre der nächste Schritt, die Sensordaten des Arduino einzuspeisen.
Nachdem die Bekanntgabe der Gewinner verschoben wurde, habe ich heute erfahren, dass ich leider kein FieldKit gewonnen habe. Es haben sich über 200 Teilnehmer beworben und ich bin gespannt auf die Vorstellung der Gewinnerprojekte.
Um das Anlernen von Songtexten in Runway auszuprobieren, habe ich alle Songtexte der Band Iron Maiden (Auswahl dieser Band wegen hoher Anzahl an textreichen Songs) in einem Textdokument gesammelt und Runway „gefüttert“.
Ich habe 5000 Steps eingestellt und bin nun gespannt, ob nach dem Training-Prozess sinnvolle Songtexte herauskommen.
Nach ungefähr vier Stunden Training hat Runway die 5000 Schritte durchlaufen und die Ergebnisse haben tatsächlich Ähnlichkeiten mit den Texten aus der Feder von Steve Harris und co. Hier ein Beispiel mit dem Wort-Input „today“:
today
We will ride this thunderbird
Silver shadows on the earth
A thousand leagues away
Our winter times are like a silent shroud
To me the things I see are just
Deceiving me
Making me see things I don't want to see
These are things I cannot see
In the black the moonlight casts a
Shadow on the earth
A thousand leagues away
Our winter times are like a silent shroud
To me the things I see are just
Deceiving me
Making me see things I don't want to see
These are things I cannot see
In the black the moonlight casts a
Shadow on the earth
A thousand leagues away
Our winter times are lik
Wer die Lyrics von Iron Maiden kennt, wird häufig über Passagen wie „We will ride this thunderbird / Silver shadows on the earth / A thousand leagues away“ stolpern, die wort-wörtlich aus einem Song übernommen wurden. Meine Vermutung ist hierbei, dass das Datenset (knapp 200 KB reiner Text) zu klein ist, als dass Runway hier bei allen Wörtern verschiedene Zusammenhänge feststellen könnte. Hin und wieder konnte mich das Modell aber auch mit völlig neuen Satzkreationen wie „the shadows are my canvas“ und „well you see me as a spirit / but I don't see you as a man“ positiv überraschen.
Um das Lyrics-Modell nun auf dieses Projekt zu übertragen, habe ich ein Spreadsheet zum Sammeln von fröhlichen und traurigen Songs angelegt und auf verschiedenen Kanälen dazu aufgerufen, Songs einzutragen. Anfangs gab es Probleme mit den Berechtigungen, die sich nach einiger Zeit von selbst zurück auf Schreibgeschützt gestellt haben, doch nun scheint der Zugriff dauerhaft zu funktionieren. Sonntags werde ich die Ergebnisse auswerten und das Datenset erstellen. Bisher ist mir aufgefallen, dass vor allem auf der fröhlichen Seite sehr viele Deutsche Songs vorgeschlagen wurden. Wie gut ein sprachlich gemischtes Datenset funktioniert, wird sich noch herausstellen.
Das Spreadsheet befindet sich hier: https://docs.google.com/spreadsheets/d/1SevqhYBM5qYxxV2WMbvdN3y2vZTvTBUg3awePcI_t48/edit?usp=sharing
Am Ende kamen 315 Songs zusammen, davon 191 Traurige und 124 Fröhliche. Interessant war hier auch die Verteilung der Sprachen:
Das folgende Video zeigt nur die in reinen Text gefassten traurigen Lyrics:
Nachdem ich alle traurigen Lyrics in einem Dokument (ca. 250 KB) gesammelt hatte, habe ich das Training in Runway gestartet. Aus finanziellen Gründen habe ich mich für nut 1000 Steps entschieden.
Im Folgenden zwei Beispiele mit Songtiteln, die die Bedürfnisse einer Pflanze widerspiegeln:
„Too much Light“
Too much Light
I cannot function
I cannot function
I am broken down
Stacking up problems
Is too much light
Too much light
Suffocating
Don't know how or when
To break away
But I know how
How the darkness conspires
And how the light always wins
I know how the darkness conspires
And how the light always wins
Song to a Man on the Edge
Written in Tears by a Dreamer
In a Mirror by a Dreamer
I saw a vision of a new world
Where colors flowed freely
Where animals and people coexisted
I saw a world in crisis
In a desperate caress
I kissed the sky
A million miles away
We are still falling
When I think of you
I think of all the people I've lost
And all the dreams I've had
I wish that I could share
This moment
-------------------
„Thirsty“
Is it true
That you have a taste in your mouth
That you can't put down
It's like a addiction
You keep coming back for more
It's like a sin
You're holding on
To something that's better off the shelf
You're desperate
And it's not like you
Don't have anything better to do
You're high
Innocent and pure
Staring back from the mirrors
A face that you don't recognize
It's a lie
That you're better off dead
Or you could start a revolution
Just remember
When you're high
You're high
Innocent and pure
Staring back from the mirrors
A face that you don't recognize
It's a lie
That you're better off dead
Or you could start a revolution
Just remember
When you're high
You're high
„I like it“
You like it
I like it (laughs)
So what do you think?
Should I get a tattoo?
Or should I just say I like it?
Tattoos are pretty cool
They're pretty cool
But I like my ears
They're my reality
You can't push it
You can't push it
You can't say I don't like it
Yeah, I like it
You like it
-------------------
Zwischen einen Paperynth-Oszillator und die Stromversorgung habe ich einen Lichtsensor gesteckt, sodass das einfallende Licht die Lautstärke des ausgegebenen Tons kontrolliert.
Auf dieselbe Art habe ich den Lichtsensor zwischen zwei verschiedene Oszillatoren geschalten, sodass diese sich je nach Lichtmenge mehr oder weniger vermischen.
Mithilfe von Pduino von Hans-Christoph Steiner habe ich es geschafft, den Arduino über Serialport-Kommunikation mit Pure Data zu verbinden. Nun kann ich virtuelle Modulare Synthesizer mit Sensoren ansteuern.
Als Nächstes habe ich einen Lichtsensor an den Pin A0 angeschlossen und den Wert ausgelesen. Der verwendete Patch bietet die Möglichkeit, die Werte aller 6 analogen Input-Pins des Arduino gleichzeitig auszulesen und zu verwenden.
Mit dem Lichtsensor habe ich als erstes die Amplitude eines einfachen Oszillator gesteuert. Der Ton wird also lauter, je heller das Licht ist.
Als Nächstes habe ich mit dem Lichtsensor einen Tremolo-Effekt (LFO an Signalstärke) angesteuert. Das Licht beeinflusst sowohl die Rate, als auch die Depth. Je heller, desto stärker wird das Zittern. Diesen Effekt kann ich mir auch gut zusammen mit einem Temperatursensor vorstellen (stärkeres Zittern bei Kälte).
Mit dem LFO an der Frequenz konnte ich auch auf einfache Weise einen Vibrato-Effekt erzeugen. Die Rate wird wieder vom Lichtsensor bestimmt, außerdem kann die durchschnittliche Frequenz mithilfe eines Potentiometers an Pin A1 geregelt werden.
Die gelben Zettel müssen noch ausgearbeitet werden.
Die Sensoren-Shields kamen mit separaten Pin-Reihen, die noch angelötet werden mussten.
Einen Noise-Sound kann ich mir gut im Zusammenhang mit einem Feuchtigkeits-Sensor vorstellen. Im ersten Versuch wird die Noise-Lautstärke durch den Lichtsensor auf A0 bestimmt, außerdem kann ich den Low-Pass-Filter über den Poti an A1 steuern.
Im zweiten Versuch wird der Low-Pass-Filter durch den Lichtsensor geregelt.
In dritten Versuch steuert der Lichtsensor die Frequenz eines Band-Pass-Filters eines Noise an, dessen Lautstärke zusätzlich durch einen weiteren Noise zufällig variiert. Am Poti kann die Bandbreite geregelt werden.