Multimedia mit Processing

Multimedia mit Processing


In den vorherigen Artikeln haben wir uns mit 2-D- und 3-D-Ausgaben im leeren Raum beschäftigt. Wir konnten uns zwar im Raum bewegen, aber das Ganze kann man auch interaktiver und lebhafter gestalten. Daher möchten wir in diesem Artikel einen Augmented Reality Equalizer bauen: Wir zeichnen auf den ausgedruckten Marker-Codes im Bild der Webcam die Amplitude – also die Lautstärke – der einzelnen Frequenzbänder des Mikrofoneingangs.

Mit der Bibliothek video ist es denkbar einfach, sich Bilder aus der Webcam zu besorgen. Der Einstiegspunkt ist die Klasse processing.video.Capture. Nachdem die Bibliothek über den Menüpunkt Sketch | Import Library | video eingebunden wurde, können wir Capture instanziieren. Es stehen verschiedene Konstruktoren zur Verfügung. In der Regel reicht schon new Capture(this) aus. Falls man von mehreren angeschlossenen Kameras eine bestimmte ansprechen oder die Auflösung selbst bestimmen möchte, stehen auch hierfür Konstruktoren bereit:

  • available(): Gibt true zurück, falls mindestens eine Kamera gefunden wurde

  • start(): Fängt mit der Aufnahme an

  • stop(): Beendet die angefangene Aufnahme

  • read(): Liest das aktuelle Bild in den Puffer, damit ist das Capture-Objekt auch als normales Bild zu verwenden – mehr später

  • list(): Statische Methode, welche die vorhandenen Kameras und ihre Konfigurationen auflistet

Artikelserie

Teil 1: Einführung ins Processing, Nutzen der 2-D-Rendering-Engine

Teil 2: Nutzen der 3-D-Rendering-Engine mit Kamerafahrten

Teil 3: Computer Vision und Augmented Reality mit Processing

Teil 4: Professionelle Datenvisualisierung mit Java

Toneingang

Eine weitere spannende Bibliothek für Processing muss zunächst aus dem Internet geladen werden, was mit Processing 2.0.x sehr einfach ist. Analog zum letzten Artikel rufen wir die Bibliothek über Sketch | Import Library | Add Library ... in der Suchmaske ab. In der Maske suchen wir nach minim und installieren die Bibliothek.

minim vereint drei Bibliotheken (JavaSoundAPI, Tritonus, MP3SPI) in sich und vereinfacht deren Umgang in typischer Processing-Manier: keine Callbacks, keine obskuren Arrays, keine Versionskonflikte. Mit minim lassen sich Sounddateien abspielen, Metadaten auswerten, Frequenzen analysieren und vieles mehr. In unserem Beispiel möchten wir einfach das Mikro abhören, um zum Beispiel auch eigene Töne zu analysieren.

Analog zum Capture gibt es die Einstiegsklasse ddf.minim.Minim_, die es zu instanziieren gilt, z. B. mit new Minim(this). Zwei Methoden bieten einen s...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang