Kategorien
Fortbildung Inspiration Programmierung Tutorials

HTML5 und die Web-Audio-API, Teil 2: Wir erstellen ein visuelles Audiospektrum per Canvas

Die neue Web-Audio-API mit ihren verschiedenen Möglichkeiten der Audiowiedergabe und -manipulation wurde hier bereits vorgestellt. Dabei haben wir einige der interessantesten Funktionen bereits vorgestellt. Ein recht komplexes Feld haben wir aber einem eigenem Artikel, nämlich diesem hier, vorbehalten. Denn, zusammen mit den Canvas-Zeichenfunktionen von JavaScript lässt sich damit auch ein visuelles Audiospektrum einer Wiedergabe realisieren.

audiocontext_spektrum

HTML-Elemente und „AudioContext“ bereitstellen

Zunächst einmal werden ein Audioelement sowie eine Leinwand für die JavaScript-Zeichenfunktion ausgezeichnet.

<audio src="musik.mp3" controls="controls"></audio>
<canvas width="300" height="250"></canvas>

Die Steuerung der Wiedergabe wird im Beispiel dem Audioelement überlassen, indem die Steuerleiste („controls“) eingeblendet wird. Per JavaScript wird die Wiedergabe der MP3-Datei abgegriffen, um die nötigen Informationen zur Darstellung eines Audiospektrums zu erhalten.

var musik = new AudioContext();
var quelle = musik.createMediaElementSource(document.getElementsByTagName("audio")[0]);
var analyse = musik.createAnalyser();

quelle.connect(analyse);
analyse.connect(musik.destination);

Nachdem im Beispiel das „AudioContext“-Objekt erstellt („musik“) und die Quelle („quelle“) definiert wurden, erzeugen wir mit „createAnalyser()“ eine sogenannte Frequenzanalyse, die das Zeitsignal der Wiedergabe analysiert und interpretiert. Die Werte dieser Analyse werden zur visuellen Darstellung des Audiospektrums genutzt.

Per „connect()“ verknüpfen wir die Quelle und die Analyse mit dem „AudioContext“-Objekt. Im nächsten Schritt legen wir fest, wie detailliert die Werte der Frequenzanalyse sein sollen. Dazu wird die Größe der „Fast Fourier Transformation“ (FFT) definiert. Per FFT schlüsseln wir das Zeitsignal der Wiedergabe in seine Frequenzen auf. Mit der Eigenschaft „fftSize“ wird angegeben, wie detailliert die Aufschlüsselung sein soll. Die Eigenschaft erwartet einen Wert zwischen 32 und 2048, wobei dieser immer eine Potenz von 2 sein muss.

analyse.fftSize = 64;
var frequenzdaten = new Uint8Array(analyse.frequencyBinCount);

Anschließend erstellen wir ein Array („frequenzdaten“), dem die Werte der Frequenzanalyse in ganzzahligen 8-Bit-Werten zugewiesen werden. Die Länge des Arrays wird per „frequencyBinCount“ abgerufen und festgelegt. Der Wert entspricht immer der Hälfte von „fftSize“ und somit der Anzahl der Balken, die für das Audiospektrum gezeichnet werden sollen. Da „fftSize“ im Beispiel auf 64 gesetzt wurde, stellt das Audiospektrum 32 Balken dar.

Optional gibt es noch die Eigenschaft „smoothingTimeConstant“. Sie gibt an, wie weich die Frequenzsprünge sein sollen. Die Eigenschaft erwartet einen Wert zwischen 0 und 1, wobei der Wert 0 für eine harte und somit sehr ruckelige Darstellung des Audiospektrums steht. Je mehr sich der Wert 1 nähert, je weicher und fließender ist die Bewegung im Audiospektrum. Der Standardwert liegt bei 0,8.

analyse.smoothingTimeConstant = 0.85;

Außerdem gibt es noch die optionalen Eigenschaften „minDecibels“ und „maxDecibels“, mit denen ein Mindest- und Höchstwert für die darzustellenden Dezibelwerte angegeben werden kann.

Audiospektrum programmieren

Im nächsten Schritt programmieren wir die eigentliche Visualisierung der Frequenzdaten als animiertes Audiospektrum. Dazu werden dem „<cancas>“-Element der 2D-Zeichenkontext zugewiesen und die Breite und Höhe der Leinwand ermittelt.

var leinwand = document.getElementsByTagName("canvas")[0].getContext("2d");
var leinwand_breite = document.getElementsByTagName("canvas")[0].offsetWidth;
var leinwand_hoehe = document.getElementsByTagName("canvas")[0].offsetHeight;

Die Leinwandgröße benötigen wir, um die Größe des Audiospektrums der Leinwand anzupassen. Über die Funktion „audiospektrum()“ zeichnen wir das Audiospektrum auf die Leinwand. Aufgerufen wird die Funktion per „requestAnimationFrame()“, sodass der Browser die Darstellung bei jeder Aktualisierung der Seitenanzeige neu zeichnet.

function audiospektrum() {

  analyse.getByteFrequencyData(frequenzdaten);
  leinwand.clearRect(0, 0, leinwand_breite, leinwand_hoehe);

  for (var i = 0; i < frequenzdaten.length; i++) {
    var balken_x = Math.round(leinwand_breite / frequenzdaten.length) * i;
    var balken_breite = Math.round(leinwand_breite / frequenzdaten.length) - 1;
    var balken_hoehe = leinwand_hoehe / 100 * Math.round(-frequenzdaten[i] / 255 * 100);
    var farbe_rot = frequenzdaten[i];
    var farbe_gruen = 255 - frequenzdaten[i];
    leinwand.fillStyle = "rgb(" + farbe_rot + ", " + farbe_gruen + ", 0)";
    leinwand.fillRect(balken_x, leinwand_hoehe, balken_breite, balken_hoehe);
  }

  window.requestAnimationFrame(audiospektrum);

}

window.requestAnimationFrame(audiospektrum);

Zunächst werden im Beispiel die jeweils aktuellen Frequenzdaten per „getByteFrequencyData()“ abgerufen. Per „clearRect()“ leeren wir die Leinwand bei jedem Funktionsaufruf.

Über eine „for“-Schleife berechnen wit für jeden Balken des Audiospektrums die X-Position des Balkens („balken_x“), die Breite („balken_breite“) sowie die Höhe („balken_hoehe“). Die Werte für die Höhe sind negativ, da die Balken vom unteren Leinwandrand nach oben wachsen. Die Y-Position entspricht immer der Höhe der Leinwand. Die jeweiligen Frequenzwerte, die per „frequenzdaten[i]“ verfügbar sind, können zwischen 0 und 255 liegen. Im Beispiel wird der Wert für die Höhe der Leinwand umgerechnet.

Die Balkenfarbe soll abhängig sein von der Balkengröße und zwischen Grün („farbe_gruen“) und Rot („farbe_rot“) variieren. Kleine Balken sind dabei grün und große Balken rot dargestellt. Da die Farbwerte ebenso wie die Frequenzwerte zwischen 0 und 255 liegen, lassen sich die Frequenzwerte einfach für die Farbdefinition einsetzen.

Per „fillStyle()“ definieren wir die Farbe des zu zeichnenden Balkens. Anschließend wird per „fillRect()“ der Balken mit den vorher berechneten Werten gezeichnet.

audiocontext_spektrum_beispiel
Audiospektrum in Aktion während der Wiedergabe

Sobald die Audiowiedergabe startet, wird das dazugehörige Audiospektrum auf die Leinwand des „<canvas>“-Elementes gezeichnet. Sobald die Wiedergabe endet, verschwinden die Balken wieder. Das Audiospektrum reagiert auch bei Veränderung durch den Lautstärkeregler in der Steuerleiste des Audioelements.

Alternative Darstellungsformen

Mit relativ wenig Aufwand lässt sich die Darstellungsform des Audiospektrums verändern. Da innerhalb der „for“-Schleife die Zeichenmethoden untergebracht sind, genügt es, dort ein paar Änderungen vorzunehmen für ein anderes Aussehen.

for (var i = 0; i < frequenzdaten.length; i++) { 
  var kreis_radius = leinwand_hoehe / 100 / 2 * (i / frequenzdaten.length * 100);
  var farbe_rot = frequenzdaten[i];
  var farbe_gruen = 255-frequenzdaten[i];
  var farbe_alpha = 1 * (frequenzdaten[i] / 255);
  leinwand.beginPath();
  leinwand.strokeStyle = "rgba(" + farbe_rot + ", " + farbe_gruen + ", 0, " + farbe_alpha + ")";
  leinwand.lineWidth = 5 * (frequenzdaten[i] / 255);
  leinwand.arc(leinwand_breite / 2, leinwand_hoehe / 2, kreis_radius, 0, 2 * Math.PI, false);
  leinwand.stroke();
 }

Im Beispiel stellen wir statt Balken Kreise zur Visualisierung dar. Dazu wird der Radius der Kreise („kreis_radius“) berechnet. Der Ausschlag definiert sich, wie auch beim Balkenspektrum über die Farbe, wobei hier noch ein zusätzlicher Alphakanal („farbe_alpha“) hinzukommt. Per „strokeStyle()“ bringen wir hier eine Rahmen-, aber keine Füllfarbe ein.  Außerdem wird die Linienstärke der Kreise („lineWidth“) ebenfalls dem jeweiligen Pegelausschlag angepasst. Per „arc()“ zeichnen wir den Kreis, mit „stroke()“ erhält er seine Farbe.

audiocontext_spektrum_beispiel_alternativ
Alternative Darstellungsform mit Kreisen statt Balken

Das hier dargestellte Audiospektrum ist nur ein relativ simples Beispiel. Es können natürlich auch wesentlich komplexere Visualisierungen entwickelt werden. Dennoch denke ich, Sie konnten hier einen soliden Einstieg in das Thema mitnehmen. Habe ich etwas Wichtiges übersehen?

(dpe)

Kategorien
Fortbildung Programmierung

HTML5 und die Web-Audio-API: Audiodateien abspielen, manipulieren und Klänge erzeugen

Mit HTML5 und dem „<audio>“-Element ist es möglich, Audiodateien ganz ohne Plug-in im Browser abzuspielen. Mit der neuen Web-Audio-API kann man nun Audiodateien direkt per JavaScript laden oder eigene Klänge erzeugen. Außerdem kann die API die Wiedergabe von Audiodateien manipulieren, indem zum Beispiel Frequenzbereiche verändert werden. Wir werfen einen genaueren Blick auf die musikalische Schnittstelle.

audiocontext

Anwendungsfall 1: Wiedergabe einer Audiodatei

Zunächst einmal muss festgelegt werden, welche Quelle für die Audiowiedergabe genutzt werden soll. Wir könnten eine Audiodatei direkt per JavaScript laden oder eine per „<audio>“-Element bereits definierte Quelle nutzen. In jedem Fall muss ein „AudioContext“ bereitgestellt werden. Anschließend wird die Quelle definiert.

var musik = new AudioContext();
var quelle = musik.createBufferSource();

Im Beispiel soll eine Audiodatei direkt per JavaScript geladen werden. Dazu weisen wir dem „AudioContext“-Objekt („musik“) die Methode „createBufferSource()“ zu. Im nächsten Schritt wird die Audiodatei mittels „XMLHttpRequest()“ geladen.

var xhr = new XMLHttpRequest();

xhr.open("GET", "musik.mp3", true);
xhr.responseType = "arraybuffer";

xhr.addEventListener("load", function() {
  quelle.buffer = musik.createBuffer(xhr.response, false);
  quelle.connect(musik.destination);
  quelle.start(0);
}, false);

xhr.send();

Der Aufruf per „XMLHttpRequest()“ ist notwendig, um Zugriff auf die Audiodatei zu erlangen. Wichtig ist, dass der „responseType“ den Wert „arraybuffer“ besitzt. Nur so kann die Antwort des Requests – also der Inhalt der Audiodatei – korrekt behandelt werden. Im Beispiel wird damit die Datei „musik.mp3“ geladen. Innerhalb des Event-Listeners wird der Inhalt der Audiodatei über die Methode „createBuffer()“ der Audioquelle („quelle“) als Buffer zugewiesen.

Die Quelle verbinden wir nun noch per „connect()“ mit dem „AudioContext“-Objekt. Im letzten Schritt wird mit der Wiedergabe per „start()“ begonnen. Die Zahl innerhalb der „start()“-Methode gibt die Zeit in Sekunden an, nach der die Wiedergabe beginnen soll. Bei einem Wert größer Null wird die Wiedergabe erst nach Ablauf der angegebenen Sekunden gestartet; ansonsten beginnt sie sofort.

Anwendungsfall 2: Eigene Klänge erzeugen

Statt eine Audiodatei wiederzugeben, ist es mit der Web-Audio-API auch möglich, einen eigenen Klang zu erzeugen. Hierzu wird die Methode „createOscillator()“ genutzt.

var musik = new AudioContext();
var quelle = musik.createOscillator();

quelle.frequency.value = 440;
quelle.type = "sine";
quelle.connect(musik.destination);
quelle.start(0);

Auch in diesem Beispiel erstellen wir zunächst ein „AudioContext“-Objekt und definieren eine Quelle. Die Quelle ist in diesem Fall jedoch keine Bufferquelle, sondern ein Oszillator. Über die Eigenschaft „frequency“ geben wir eine Frequenz in Hertz an, wobei „type“ die Art der Frequenzschwingung bezeichnet. Neben einer Sinusschwingung („sine“) sind Rechteckschwingung („square“), Dreieckschwingung („triangle“) und Kipp- beziehungsweise Sägezahnschwingung („sawtooth“) möglich.

Per „connect()“ wird die Quelle wieder dem „AudioContext“-Objekt zugewiesen. Da in diesem Beispiel keine Datei geladen werden muss, ist der Einsatz von „XMLHttpRequest()“ nicht nötig. Per „createOscillator()“ generierte Klänge spielen solange, bis sie per „stop()“ angehalten werden. Während des Abspielens ist es jedoch möglich, die Frequenz zu verändern.

Statt eine feste Frequenz anzugeben, können Sie also per „setTimeout()“ die Frequenz während der Wiedergabe verändern.

var quelle_frequenz = 100;
var quelle_frequenz_richtung = 1;

window.setTimeout("frequenzen()", 10);

function frequenzen() {
  if (quelle_frequenz_richtung == 1) {
    quelle_frequenz += 1;
    if (quelle_frequenz > 200) quelle_frequenz_richtung = -1;
  } else {
    quelle_frequenz -= 1;
    if (quelle_frequenz < 100) quelle_frequenz_richtung = 1;
   }
   quelle.frequency.value = quelle_frequenz;
   window.setTimeout("frequenzen()", 10);
}

Im Beispiel wird eine Frequenz bei 100 Hertz beginnend jede Hundertstelsekunde um ein Hertz noch oben verändert, bis sie 200 Hertz erreicht hat. Anschließend wird die Frequenz auf gleichem Wege reduziert. Diese Frequenzveränderung wird im Beispiel als Dauerschleife abgespielt.

Natürlich können auch mehrere Quellen gleichzeitig spielen. Für jedes „AudioContext“-Objekt lassen sich beliebig viele Quellen definieren und wiedergeben. Wichtig ist, dass jede einzelne Quelle per „start()“ startet.

quelle1.musik.createOscillator();
quelle2.musik.createOscillator();

quelle1.frequency.value = 250;
quelle2.frequency.value = 500;

quelle1.connect(musik.destination);
quelle2.connect(musik.destination);

quelle1.start(0);
quelle2.start(1);

Im Beispiel werden zwei Quellen, die unterschiedlich definiert sein können – zum Beispiel per „createOscillator()“ und „createBufferSource()“ –, dem  „AudioContext“-Objekt zugewiesen. Anschließend startet die Wiedergabe, wobei die zweite Quelle eine Sekunde später beginnt.

Wiedergabe manipulieren

Statt eine Audiodatei oder einen Klang nur wiederzugeben, bietet die Web-Audio-API mehrere Methoden, um die Wiedergabe zu manipulieren. So können biquadratische Filter („createBiquadFilter()“) auf die Wiedergabe angewendet werden. Diese Filter erlauben die Dämpfung bestimmter Frequenzbereiche.

Tiefpassfilter („lowpass“) dämpfen Frequenzen oberhalb einer gesetzten Grenze, Hochpassfilter („highpass“) dämpfen Frequenzen unterhalb einer Grenze. Bei Bandbreitenfilter („bandpass“) werden Frequenzen außerhalb einer Frequenzbandbreite abgeschwächt. Darüber hinaus gibt es Filter zur Anhebung und Absenkung von Tiefen beziehungsweise Höhen („lowshelf“ und „highshelf“) für bestimmte Frequenzen und einen Filter, der Tiefen und Höhen innerhalb eines Frequenzbereich anhebt und absenkt („peaking“).

Die Methode „createBiquadFilter()“ ähnelt sehr der „createOscillator()“-Methode. Neben der Eigenschaft „frequency“ gibt es für einige Filter noch die zusätzliche optionale Eigenschaft „Q“, welche die Qualität des Filters angibt. Beim Tiefpassfilter wird über die Eigenschaft definiert, wie stark die umliegenden Frequenzen berücksichtigt werden sollen. Erlaubt sind Werte zwischen 0,1 und 1000, wobei 1 der Standardwert ist.

var musik = new AudioContext();
var quelle = musik.createOscillator();
var filter = musik.createBiquadFilter();
quelle.frequency.value = 500;
quelle.type = "sine";

filter.frequency.value = 250;
filter.Q.value = 2;
filter.type = "lowpass";

quelle.connect(filter)
filter.connect(musik.destination);
quelle.start();

Im Beispiel wird ein Tiefpassfilter auf Frequenzen oberhalb von 250 Hertz angewendet. Damit der Filter auch zum Einsatz kommt, muss er per „connect()“ dem „AudioContect“-Objekt zugewiesen werden. Natürlich können auch mehrere Filter angewendet werden. Die „connect()“-Methode sieht vor, dass alle Audioknoten, die erzeugt werden, quasi in Reihe miteinander verbunden werden.

quelle.connect(filter1);
filter1.connect(filter2);
filter2.connect(filter3)
filter3.connect(musik.destination);

Im Beispiel wird die Quelle zunächst mit „filter1“ verbunden. Dieser wird mit „filter2“ und dieser wiederum mit „filter3“ verbunden. Der dritte Filter wird schließlich mit dem „AudioContect“-Objekt verbunden.

Es gibt eine Reihe weiterer Möglichkeiten, um die Wiedergabe zu manipulieren. Mit „createConvolver()“ fügt man der Wiedergabe einen Nachhall hinzu. Mit „createChannelSplitter()“ und „createChannelMerge()“ werden Audiokanäle separiert beziehungsweise zusammengefügt. Außerdem lässt sich mit „createDynamicsCompressor()“ ein Kompressor einrichten, welcher die Lautstärkespitzen abschwächt.

Wiedergabe eines „<audio>“-Elementes

Statt eine Audiodatei direkt per JavaScript zu laden, erlaubt die Web-Audio-API auch, auf ein „<audio>“-Element zuzugreifen.

var musik = new AudioContext();
var quelle = musik.createMediaElementSource(document.getElementsByTagName("audio")[0]);

Statt „createBufferSource()“ wird in diesem Fall die Methode „createMediaElementSource()“ verwendet. Der Methode wird das jeweilige „<audio>“-Element per „getElementsByTagName()“ oder anderen ähnlichen Methoden zugewiesen.

Anschließend kann die Quelle mit den vorgestellten Möglichkeiten manipuliert werden. Eine Wiedergabe per „quelle.start()“ ist hierbei jedoch nicht möglich. Die Wiedergabe wird entweder über die Steuerleiste des „<audio>“-Elementes gestartet oder über die JavaScript-Methode „play()“ für die Steuerung des „<audio>“-Elementes.

document.getElementsByTagName("audio")[0].play();

Browserunterstützung

Die Web-Audio-API wird bereits seit Chrome in der Version 11 unterstützt. Der in älteren Versionen verwendete Vendor-Präfix ist mittlerweile nicht mehr nötig. Außerdem unterstützen Firefox ab Version 25 und Opera ab Version 15 die API. Der Internet Explorer unterstützt die API derzeit noch nicht.

Links zum Beitrag

(dpe)

Kategorien
Fotografie Inspiration

Videodreh fürs Web: Teil 1 – die günstige Lösung

Ein Internet ohne Videos? Fast unvorstellbar. Ob YouTube oder über die eigene Webseite – schnell produzierte und originelle Filme sind voll im Trend. Braucht man für einen Text nur das Notebook, für einen kleinen Audiobetrag auch nicht viel mehr – sind Videos doch deutlich schwieriger zu produzieren. Es braucht eine Kamera, richtigen Ton, gutes Licht und Geschick bei der Postproduktion. Zumindest bei der Hardware liegen im Einstieg die Hürden nicht unendlich hoch, wie man am Beispiel des iPhone sieht.

Keine Frage: Moderne Smartphones haben eine beeindruckende Videokamera eingebaut. Da liegt die Idee nahe, auch zumindest halbwegs professionelle Produktionen mit dem kleinen Wegbegleiter zu realisieren – vorneweg als erstes taugliches Gerät dieser Art, das Apple iPhone. Schon viele Fernsehsender und Produktionsgesellschaften experimentieren seit geraumer Zeit mit der Technologie in der Westentasche. Die Investitionen sind jedoch entsprechend. Nur hochpreisige und überaus schwerfällige Technik wird angebunden. Das ist schon hinsichtlich Komplexität und des finanziellen Aufwandes wirklich nur für ambitionierte Videoproduzenten brauchbar. Dabei kann der Einstieg ganz einfach sein.

Kein Video ohne Stativ

Vieles lässt sich mit Unerfahrenheit und dem Newcomer-Bonus verzeihen – nicht jedoch verwackelte Videos. Über kurze Zeit liegt das Smartphone vielleicht noch gut in der Hand und die Ergebnisse sind relativ ruhig. Interviews oder lange statische Aufnahmen sind jedoch unmöglich ohne richtiges Stativ. Entsprechend des unkonventionellen Einsatzes bedarf es jedoch auch einer klugen Lösung. Der GorillaPod Video ist für mich am praktikabelsten. Auf kleinsten Raum ist das zähe Ungetüm unterzubringen und wirklich immer griffbereit. Durch flexible Beine und magnetische Füße lässt sich das kleine Stativ nahezu überall anbringen. So wird die relativ kleine Größe schnell kompensiert. Doch auch auf den drei kleinen Füßen auf einem Tisch stehend lassen sich gute Videos machen. Der integrierte Schwenkarm ist jedoch leider nicht mehr als eine kleine Anspielung an die großen Stative. Wirklich effektiv nutzen lässt sich die Funktion durch eine manchmal schwerfällige Mechanik und die fehlende Stabilität leider nicht. Trotzdem ist der kleine Helfer für knapp 30 US-Dollar fast unabdingbar. Für weitere 20 US-Dollar gibt es die Halterung für das Mobiltelefon. Durch die Federmechanik ist diese jedoch leider etwas wackelig – da gibt es besseres.

ece1

Eine solidere Haltung

Auf dem Stativ muss das iPhone auch halten. Anders als professionelle Videokameras ist das iPhone jedoch nicht für ein Stativ gedacht. Entsprechend muss nachgerüstet werden. Die optionale Halterung des GorillaPod ist leider etwas anfällig – GLIF ist da weitaus besser. Die multifunktionale iPhone-Halterung für solide 30 US-Dollar ist absolut das Geld wert. Einmal das iPhone eingespannt ist es fast bombensicher eingeklemmt. Schließlich gibt es kaum einen tragischeren Vorfall, als ein während des Drehs ein fallendes iPhone beobachten zu müssen. Die kleine Halterung ist voll kompatibel zum GorillaPod und wenn der Dreh vorbei ist, lässt sich mit dem kleinen Tool auch noch das iPhone im Bett schräg stellen. Passt.

ece2

Guter Ton für den direkten Kontakt

Eingebaute Mikrofone sind seit jeher ein Ärgernis für aufnahme-ambitionierte Nutzer. So ist auch kaum daran zu denken, mit dem integrierten Mikrofon des iPhone irgendwelche Videos produzieren zu können. Schon bei geringer Entfernung dominieren die Störgeräusche und für eine gute Qualität müsste man fast mit der Nase das Display berühren. Ein externes Mikrofon muss her. Leider gibt es nicht unendlich viel Auswahl. Mit dem iRig Mic existiert zumindest eine solide Lösung. Das Handmikrofon kann einfach in den Kopfhöreranschluss gesteckt werden. Gleich im Anschluss können spannende Interviews geführt oder auch Ansager gedreht werden. Das Mikrofon liegt durch die schwere Verarbeitung gut in der Hand. Leider ist der Eindruck besser, als die Resultate wirklich werden. Einige Störgeräusche sind unvermeidlich und auch die Bedienung steckt voller Tücken. Das Mikrofon verfügt über drei Einstellungen der Empfindlichkeit. Nur die mittlere Position liefert wirklich akzeptable Resultate bei einer normalen Verwendung – das muss man auch erstmal herausfinden. Für knapp 50 US-Dollar ist das Teil zudem nicht gerade günstig, bei richtiger Verwendung jedoch gut angelegtes Geld.

ece3

Ton für die volle Handfreiheit

Nicht immer muss es ein Handmikrofon sein. Wer nicht das iRig Mic auf einen Besenstil als Mikrofonangel schrauben möchte, hat wenig Alternativen. Der gleiche Hersteller bietet mit dem iRiG Mic Cast einen kleinen Mikrofonaufsatz an, der es mächtig in sich hat. In nicht allzu weiter Entfernung liefert das kleine Mikrofon wirklich solide Ergebnisse und ist kein Vergleich zu dem integrierten Tonabnehmer. Mittels verschiedener Empfindlichkeiten lässt sich der Klang noch etwas optimieren. Für ungefähr 30 US-Dollar ein kleines Wunderwerk, das im Einsatz wirklich überzeugt. Die Grenzen sind jedoch auch klar die Stärken, bei dem der große Bruder aufholen kann. Auch hier gebe ich klar eine Empfehlung als zweites Mikrofon, wenn gerade kein Handmikrofon benötigt wird.

ece4

Fazit

Für ungefähr 100 US-Dollar lässt sich aus einem normalen iPhone eine solide Lösung für die mobile und stationäre Videoproduktion schaffen. Ausprobieren lohnt, wenn sonst die Anschaffung einer Videokamera ansteht. Die Ergebnisse lassen sich sehen und mit den Hilfsmitteln wird der Abstand zu (semi-)professionellem Video relativ gering. Problempunkte wie Licht oder Objektiv können leider im Fokus einer möglichst günstigen Umsetzung nicht vollständig gelöst werden – zu kostenintensiv sind die Lösungen im Vergleich. In einem weiteren Beitrag werden wir uns bald mit einer professionelleren Lösung befassen…

(dpe)