L'API Web Audio consente di riprodurre, manipolare e sintetizzare il suono all'interno di un'applicazione Web. Per generalizzare possiamo giocare su 3 diversi oggetti: le sorgenti, i filtri degli effetti, l'analizzatore.
Le fonti
Le sorgenti possono essere qualsiasi sorgente audio a cui potresti pensare (microfono, soundcloud, beacon eccetera.). Possiamo anche notare la possibilità di creare un'onda sinusoidale (in questo esempio, la frequenza della sinusoide creata dipende dalla posizione del cursore http://mdn.github.io/violent-theremin/).
Filtri per effetti
Possiamo ottenere effetti molto sviluppati sul suono come mostra questo elenco di esempi: https://webaudiodemos.appspot.com/input/index.html.
Sono presenti anche i filtri standard di elaborazione del segnale (per chi sa: guadagno, passa basso, passa alto, attenuazione, ecc).
l'analizzatore
L'analizzatore fornisce in tempo reale due informazioni: la tabella delle frequenze di uscita (che permette di rappresentare lo spettro sonoro del suono riprodotto http://webaudioapi.com/samples/visualizer/ ) e la forma dell'onda.
Operazione
Tutti questi componenti sono organizzati come nodi da collegare tra loro.

Prendiamo l'esempio più semplice possibile, vogliamo suonare la nota LA (=440Hz) e poter cambiare il volume.
var audioCtxt = new window.AudioContext(), // Création du context audio
sinusoide = audioCtxt.createOscillator(), // Création de la sinusoide
volumeCtrl = audioCtxt.createGain(); // Création du filtre qui controle le volume
sinusoide.frequency.value = 440;
volumeCtrl.gain.value = 0.07;
sinusoide.start(0);
//Créations des connexions
sinusoide.connect(volumeCtrl);
volumeCtrl.connect(audioCtxt.destination);
// On baisse le volume toutes les 50 millisecondes
monInterval = setInterval(function(){
volumeCtrl.gain.value -= 0.001;
if(volumeCtrl.gain.value < 0) {
volumeCtrl.gain.value = 0;
clearInterval(monInterval);
}
}, 50);
Puoi creare e connettere in qualsiasi momento tutti i nodi che vuoi a una o più destinazioni.
A parte la trasposizione di software di elaborazione di musica e segnali su Internet, lo sfruttamento di questa API è (in gran parte) solo in fase sperimentale (http://bruno-simon.com/lab/music-spinners/) e applicazioni ludiche (http://dinahmoelabs.com/plink).
Possiamo ancora immaginare che questi strumenti uniti a tutto l'ambiente offerto dal web possano dare vita a progetti molto interessanti e innovativi.
Ho un piccolo problema a immaginare un'applicazione diretta per migliorare l'UX delle pagine Web in cui l'aggiunta di suoni rimane problematica. D'altra parte, non c'è dubbio che questa API sarà molto utile per i siti esperienziali (http://www.unseen-music.com/yume/).
Grégoire Humbert, sviluppatore front-end presso UX-Republic
[tipo separatore=”” size=”” icon=”stella”] [actionbox color=”default” title=”” description=”JS-REPUBLIC è una società di servizi specializzata nello sviluppo di JavaScript. Siamo un centro di formazione riconosciuto. Trova tutta la nostra formazione tecnica sul nostro sito partner dedicato alla Formazione” btn_label=”La nostra formazione” btn_link=”http://training.ux-republic.com” btn_color=”primary” btn_size=”big” btn_icon=”star” btn_external =”1″]
