Live-Web-Audioeingabe aktiviert

Chris Wilson
Chris Wilson

Ich freue mich sehr über eine neue Funktion, die in der gestrigen Chrome Canary-Version (23.0.1270.0) eingeführt wurde: die Möglichkeit, unter macOS mit geringer Latenz auf Live-Audio von einem Mikrofon oder anderen Audioeingängen zuzugreifen. (Diese Funktion ist unter Windows noch nicht verfügbar, aber wir arbeiten daran!)

Rufe dazu chrome://flags/ auf und aktiviere unten die Option „Web Audio Input“. Starte den Browser neu und schon kannst du loslegen.

Du kannst den Live-Audioeingang testen, indem du dir das Spektrum deiner Eingabe mit dem Live-Eingabe-Visualizer ansiehst.

Web Audio-Coder können hier nachlesen, wie sie den Audio-Eingabestream anfordern und einen Knoten abrufen, um eine Verbindung zu einem beliebigen Verarbeitungsgraphen herzustellen.

// 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 Audioeingaben mit niedriger Latenz, insbesondere im Musikbereich. Ein einfaches Beispiel dafür ist ein einfacher Tonhöhenmesser, den ich zusammengestellt habe. Schließen Sie einfach eine Gitarre an oder pfeifen Sie in das Mikrofon.

Und wie versprochen habe ich dem Vocoder, den ich für die Google IO geschrieben habe, Live-Audio als Eingabequelle hinzugefügt. Wählen Sie dazu unter „Modulator“ einfach „Live-Eingabe“ aus. Möglicherweise müssen Sie den Modulator-Gain und die Synth-Lautstärke anpassen. Aufgrund der Verarbeitung gibt es eine leichte Verzögerung (nicht aufgrund der Eingabelatenz). Jetzt, da ich Live-Audioinput habe, ist es an der Zeit für weitere Optimierungen.

Sehen Sie sich auch die Sammlung meiner Web-Audio-Demos an. Vielleicht habe ich bis dahin noch weitere Live-Audio-Demos veröffentlicht.