The Game

September 19, 2012 Raphael Szavai

Lego Step Sequencer

(Technich Hoch Empfindliches Gemeinschafts Audio Medien Erzeugnis)

 

Wir haben einen Step Sequencer gebastelt, der Sounds triggert durch Legen eines Legosteines. Waagrecht sind die Schläge pro Takt, senkrecht werden andere Clips abgespielt und die Farbe gibt das Instrument an.

 

Rot übernimmt die Percussion, Grün die Melodie und Blau Special Effects

 
Hier ein Preview:

 

• Manuel Lehner – (Sonifikation) Aufgabenbereiche: Implementierung von MAX4LIVE
• Mark Rockenschaub – (Bewegungserkennung) Aufgabenbereiche: Erkennen der gelegten Legosteine und Ausgabe der Werte
• Raphael Szavai – (Interaktionsdesign) Aufgabenbereiche: Mapping
• Matthias Zach – (Sonifikation) Aufgabenbereiche: Implementierung von MAX4LIVE

Wir hatten uns die Aufgabe gestellt, dass man mittels Legosteinen einen Step-Sequencer erstellt. Neben der Anordnung der Steine wurde auch deren Funktion diskutiert, nebenbei wurde auch beim Tracking stark experimentiert. Kurzzeitig wurde auch überlegt ob man auf reactiVision setzt, da wir der Verzweiflung schon sehr nah waren.
Folgende Probleme haben uns den Schlaf geraubt und sicher einige Lebensjahre gekostet:
• Die erste Webcam die mehr zickte als Joko Ono
• Das man Mittels dem Colourtracking nur einen Stein tracken konnte
• das Übersprechen der Legosteine
• Die Werte zu Live übergeben
• Abstürzende Programme
Aufgrund unserer unermüdlichen Suche nach einer Lösung haben wir es dennoch mittels der normalen MAX Objekten geschafft das Projekt umzusetzen wie wir es wollten, nur der Filter fiel dem Ganzen zum Opfer!
Nun stellt man sich die Frage, wie wir die obigen Probleme lösen konnten. Dies werden wir in den folgenden Zeilen erörtern!
Die erste Webcam wurde durch eine andere getauscht (Logitech C500). Der Vorteil an dieser Variante ist, dass diese keine Treiber benötigt und dennoch ein annehmbares Bild liefert, welches dann aber ohnehin verpixelt wurde, damit wir den Ressourcenhunger etwas reduzieren konnten.
Zu Testwecken hatten wir das eine Videobild mittels dem scissor befehl zerschnitten und haben dann auf jeden Teilbereich den Colourtracker angewendet, als dies mal generell funktionierte wurden wir übermütig und haben fröhlich die Fenster kopiert, sowie die Werte für die Farben, die wir tracken wollten abgeändert und dennoch ging dann kaum was.
Das Videobild wurde zwar mittels brcosa verändert, aber eben nur für eine Farbe, dieser Fehler wurde prompt behoben und brcosa auf jedes der drei Videofenster angewendet.
Nun wurden alle Legosteine richtig getrackt, die Position wurde ermittelt und (via if-Abfragen in einem Subpatch) in eine Matrix eingespeichert welche man auslesen konnte und dadurch wusste wo der Stein liegt.
Das nächste Problem war LIVE, wir hatten 2 Programme, fertig vorbereitet und mussten diese nur noch kommunizieren lassen. Nachdem wir die Dokumentation konsolidiert und das Internet durchforstet hatten, konnten wir selbst diese Hürde meistern und endlich gab LIVE Töne von sich.
Nun teilten wir ein, was die Legosteinfarbe zu bedeuten hatte.
Rot: Drums, Snare, Hi Hat Close, Becken
Waagerecht: die Takte
Senkrecht: die verschiedenen Intrumente
Grün: Piano
waagerecht: die Takte
senkrecht: die Tonhöhe
Blau: Vocals, Scratch
waagerecht: die Takte
senkrecht: die verschiedenen Vocals bzw. Scratch Geräusche
 
Es gibt zwar noch immer leichte Probleme beim tracken, da wir ja nie die gleiche Lichtsituation haben und die Hand wird meist als rot erkannt, aber das sind ja Nebensächlichkeiten. Manchmal dauert es auch etwas bis die Werte geschrieben werden, da einfach die CPU Auslastung enorm ist.

, audio, interactive