Live-Web-Audioeingabe aktiviert

Chris Wilson
Chris Wilson

Ich bin echt gespannt auf eine neue Funktion, die in den Chrome Canary-Build von gestern (23.0.1270.0) integriert wurde: die Möglichkeit, mit geringer Latenz Zugriff auf Live-Audio über ein Mikrofon oder eine andere Audioeingabe unter OSX zu erhalten. (Dies wurde unter Windows noch nicht aktiviert, aber mach dir keine Sorgen, wir arbeiten daran!)

Rufen Sie dazu chrome://flags/ auf, aktivieren Sie unten die Option "Web-Audioeingabe" und starten Sie den Browser neu. Jetzt können Sie loslegen.

Sie können die Live-Audioeingabe testen, indem Sie das Spektrum Ihrer Eingabe mit dem Live Input Visualizer überprüfen.

Im Folgenden erfahren Sie, wie Web Audio-Coder unter Ihnen den Audioeingabestream anfordern und einen Knoten mit einer beliebigen Verarbeitungsgrafik verbinden können.

// success callback when requesting audio input stream
function gotStream(stream) {
    window.AudioContext = window.AudioContext || window.webkitAudioContext;
    var audioContext = new AudioContext();

    // Create an AudioNode from the stream.
    var mediaStreamSource = audioContext.createMediaStreamSource( stream );

    // Connect it to the destination to hear yourself (or any other node for processing!)
    mediaStreamSource.connect( audioContext.destination );
}

navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia;
navigator.getUserMedia( {audio:true}, gotStream );

Es gibt viele Möglichkeiten für die Audioeingabe mit niedriger Latenz, insbesondere im Musikbereich. Ein kurzes Beispiel für die Verwendung dieser Funktion finden Sie in einem einfachen Tonhöhendetektor, den ich zusammengetragen habe. Versuchen Sie, eine Gitarre anzuschließen oder einfach in das Mikrofon zu pfeifen.

Und wie versprochen, habe ich dem Vocoder, den ich für Google IO geschrieben habe, Live-Audio als Eingangsquelle hinzugefügt. Wähle einfach unter dem Modulator die Option "Live-Eingang" aus. Möglicherweise müssen Sie den Modulatorenverstärkung und den Synthiepegel anpassen. Es gibt eine geringfügige Verzögerung bei der Verarbeitung (nicht aufgrund der Eingabelatenz). Jetzt, da ich den Live-Audioeingang habe, ist es Zeit für eine weitere Optimierung.

Vielleicht möchten Sie sich auch die Sammlung meiner Web-Audio-Demos ansehen. Wenn Sie dies gelesen haben, könnte ich Ihnen noch weitere Live-Audiodemos anbieten.