collabsynth:triggerwand

Mit Hilfe von Lichtsensoren wird ein Schattenspiel zur Tonerzeugung genutzt. Eine Wand (Triggerwand), die mit einer Matrix von 4×4 Fotoresistoren bestückt ist, wird aus unterschiedlichen Richtungen von verschiedenfarbigen Lampen beleuchtet. Durch die Positionierung von Körperteilen und Objektion zwischen den Lampen und der Triggerwand kann ein Tonsignal erzeugt oder verändert werden


Die Daten können entweder zum Abspielen kurzer Soundsamples, oder zum modellieren des Soundsignals genutzt werden. Hierbei können durch die Fotoresistoren, die verschiedene Lichtspektren abdecken auch unterschiedliche Modelle verbunden werden.


Ideen zur Soundgestaltung

  • Je Sensorposition wird in regelmäßigen Abständen ein Soundsample abgespielt. Durch Schattenbildung der verschiedenen Lichtquellen kann das abgespielte Sample in der Tonhöhe oder der Lautstärke verändert oder mit Filtern belegt werden
  • Die Triggerwand wird in verschiedene Bereiche aufgeteilt (bspw. 4 Quadrate aus jeweils 4 Sensorpositionen), die jeweils einem Effekt oder einer Tonmodulation zugeordnet sind. In Abhängigkeit von von der Anzahl der abgedeckten Sensorpositionen wird der zugeordnete Effekte bzw. Modulation stärker oder schwächer angewendet
  • Jedem Fotoresistor ist ein Soundsample zugeordnet. Durch Bewegungen entsteht eine vielfältige Geräuschkulisse

Es wird insgesamt 16 Sensorpositionen geben. Jede Position besteht aus 3 Fotoresistoren für je eine Lichtfarbe (und einer Leuchtdiode für visuelles Feedback). Die Differenzierung der Lichtfarben werden farbige Folien vor den Fotoresistoren verwendet. Jeweils zwei Sensorpositionen (also 6 Fotoresistoren) werden von einem Arduino nano ausgelesen. Die insgesamt 8 Mikrocontroller kommunizieren über I2C. Einer der Mikrocontroller muss jedoch als USB-Host fungieren können damit von der Triggerwand ein MIDI-Signal ausgegeben werden kann.

Während der Umsetzung haben wir uns dafür entschieden vorerst auf die Farbkodierung zu verzichten. Somit erhöht sich die Anzahl der Sensorpositionen von zwei pro Arduino auf bis zu sechs pro Arduino. Auf diese Weise konnten wir einen Prototypen mit 16 Sensorpositionen (d.h. 16 Fotoresistoren) mit nur 3 Arduinos bauen. Statt einem Mikrocontroller als USB-Host verwenden wir nun einen Raspberry Pi um die Werte von den verschieden Arduinos bzw. Sensoren zu aggregieren und zu verarbeiten.

Das Bild zeigt die Rückseite des ersten Triggerwand-Protoypen. Wir haben eine 8×2 Matrix aus Fotoresitoren gebaut, welche einfach direkt in die Pappwand gesteckt haben. Bisher ist es möglich einen externes Gerät zur Sounderzeugung via MIDI anzusteuern.

Die Sensoren sollen flexibel auf einem Untergrund befestigt werden können. Für den tatsächlichen Einsatz müssten wir die Pappwand durch einen wetterbeständigeren und stabileren Untergrund ersetzen. Möglichkeiten dafür wären bspw. Styropor auf einer Holzwand oder Folie in einem Rahmen aufgespannt.

In der auf dem Bild abgebildeten Version der Schaltung ist noch ein Fehler enthalten, da wir vergessen haben die Fotoresitoren in einer Voltage Divider Schaltung mit den Arduinos zu verbinden. 1)

https://github.com/wuxmax/mensch-musik-maschine

Unsere Software-Implementierung besteht aus zwei Teilen: C++ Code, der auf dem Arduino läuft und Python Code, der auf dem Raspberry Pi läuft.

Während der Arduino-Code recht simpel ist und auch so bleiben wird, entwickeln wir die Raspi-Code noch weiter. Der Rapsi-Code ist modular und konfigurierbar konzipiert. Aktuell gibt es Module für folgedne Zwecke:

  • Auslesen der Sensordaten
  • Verarbeitung der Sensordaten (aktuell Transformation in MIDI Noten)
    • Aktuell sind ein einfaches Keyboard und ein einfacher Sequencer implementiert
  • Ansteuern des externen MIDI-Gerätes
  • Visaulisierung des Sensor-Werte-Matrix im Terminal

* Hardware

  • Erweiterung auf 48 Sensoren (bspw. 5×8 oder 3×16, ist aber flexibel)
    • Bau von 5 weiteren Arduino-Boards
  • Prototyp zu robustem Aufbau
    • Transfer auf einen anderen Untergrund
    • Fixierung der Platinen, Kabel, etc.
  • Experimentieren mit verschiedenen Beleuchtungssituationen
  • Software
  • Robostere Datenverabeitung (bspw. adaptives Clusteringverfahren zur bestimmung der Trigger-Schwellwerte)
    • Ziel ist es, dass sich das System permanent an veränderte Lichtverhältnisse anpassen kann
  • Sounderzeugung vollständig auf dem Raspi (oder leistungsfähigerem Computer, falls notwendig)
    • Hier müssen wir uns noch damit auseinandersetzen, welche Software sich am besten dazu eignet und wie sie sich ansteuern lässt (Kandidaten sind PureData, Max, Ableton, etc.)
  • Automatische Zuordnung von I2C-Adressen via eines Konfigurationsmodus, bei dem die Sensoren in einem festgelegten Muster nacheinander angeleuchtet werden

  • collabsynth/triggerwand.txt
  • Zuletzt geändert: 2022/05/10 14:17
  • von fmas