Laser-Piano

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche
Spielen des Laser-Pianos

Das Laser-Piano ist ein Projekt, das im Wintersemester 2010/11 entstand. Es ermöglicht einem, auf einer beliebigen ebenen Fläche (z.B. einem Tisch) Klavier zu spielen.

Idee

Ausgang für das Laser-Piano ist ein sog. Virtual Keyboard (oder auch Laser-Keyboard). Es handelt sich dabei um ein kleines, handliches Gerät, das einem mittels Projektion die komplette Funktionalität einer Computer-Tastatur bietet. Dieses Prinzip der Portabilität soll nun auf ein Piano übertragen werden.

Umsetzung

Hardware

Der Aufbau des Laser-Pianos besteht aus:

  • Kamera
  • Gedruckte Klaviatur
  • Roter Linienlaser der Klasse 1

Der Laser wird so angebracht, dass eine Art 'Lichtfächer' knapp über der Unterlage emittiert wird. Wenn man eine Taste des Pianos 'drückt', wird das Licht durch den Finger reflektiert und erzeugt somit einfach zu verarbeitendes Bildmaterial.

Software

Die Bildverarbeitung erfolgt mittels OpenCV 2.1 in C/C++. Dazu muss der Benutzer zunächst das Programm kalibrieren, indem er die Farbwerte der Blobs manuell im Code eingibt und die Ecken der Klaviatur durch Mausklicks identifiziert. Dadurch können die Kamerabilder perspektivisch transformiert werden, damit die Tasten zueinander parallel erscheinen. In dem aktuellen Programm wird jeder Taste jeweils ein Rechteck zugeordnet, das auf 'Blob-Inhalt' überprüft wird. Allerdings kann man dadurch nur auf einem Piano spielen, das ausschließlich aus weißen Tasten besteht. Die Blob-Erkennung geschieht durch eine einfache HSV-Auswertung der Farbinformationen und unter Benutzung der CVBlobs-Bibliothek (s. Weblinks), die auf OpenCV basiert. Wenn eine Taste gedrückt oder losgelassen wird, sendet das Programm die entsprechende MIDI-Nachricht an den Windows-Synthesizer.

Mögliche Verbesserungen

Kalibrierung

Die Kalibirierung der perspektivischen Transformation passiert in dem aktuellen Programm durch Markierung der Klaviatur-Ecken mit Mausklicks. Es ist eleganter, diese Kalibrierung zu automatisieren, indem man z.B. bei Initialisierung des Programms einfach die Kanten der Klaviatur mit dem Finger nachfährt. Gleichzeitig kann man damit eine Kalibrierung der Farberkennung durchführen. Oder das Programm erkennt mittels Bildverarbeitung die Klaviatur ohne jegliches Zutun.

Aufbau

Der rote Linienlaser lässt sich durch einen Infrarot-Linienlaser ersetzen (natürlich in Kombination mit einer Infrarot-Kamera). Dadurch könnte die Bildverarbeitung noch einfacher werden und der Benutzer bekommt weniger von der Funktionsweise des Laser-Pianos mit. Außerdem kann man die gedruckte Klaviatur durch eine Beamer-Projektion ersetzen, womit sich eine grafisch ansprechendere Bedienoberfläche realisieren lässt. Außerdem wird dadurch die Tastenerkennung wesentlich verbessert, da das Programm die Tasten ja selbst generiert.

Pedale

Ein echtes Piano besitzt drei Fußpedale, mit denen man den Klang des Klaviers beeinflussen kann. Auch das ist eine Erweiterungsmöglichkeit für das Laser-Piano.

Klangerzeugung

Der wohl wichtigste Teil eines Pianos, nämlich der Klang, wird in dem aktuellen Stand des Projekts durch MIDI-Samples realisiert. Es ist natürlich wesentlich ansprechender, qualitativ bessere (und teurere) Samples zu benutzen. Ein weiterer Vorteil davon ist, dass das Programm dann die komplette Funktionalität des Laser-Pianos besitzt, also unabhängig von anderen Programmen und damit auch unabhängig von dem Betriebssystem ist.

Weblinks

Interner Bereich: