Découvrez la puissance de l’API Web Audio

Web Audio API

L’API Web Audio est un outil incroyable qui permet de manipuler des opérations audio à l’intérieur d’un “contexte audio” et a été conçue pour permettre un “cheminement modulaire”. Les opérations audio de base sont effectuées à l’aide de “nœuds audio” qui sont reliés entre eux pour former un “graphique de routage audio”. Même à l’intérieur d’un seul contexte, plusieurs sources – avec différents types de configurations de canaux – sont prises en charge. Cette conception modulaire offre la flexibilité nécessaire pour créer des fonctions audio complexes avec des effets dynamiques.

Les nœuds audio

Les nœuds audio sont reliés les uns aux autres pour former des chaînes et des réseaux simples grâce à leurs entrées et sorties. Ils commencent généralement avec une ou plusieurs sources. Les sources fournissent des tableaux d’intensités sonores (échantillons) en très petites tranches de temps, souvent des dizaines de milliers par seconde. Ces échantillons peuvent être calculés mathématiquement (comme avec un “OscillatorNode”) ou ils peuvent provenir d’enregistrements de fichiers son/vidéo (comme avec “AudioBufferSourceNode” et “MediaElementAudioSourceNode”) ou encore de flux audio (comme avec “MediaStreamAudioSourceNode”). En réalité, les fichiers sonores sont simplement des enregistrements des intensités sonores elles-mêmes, issues de microphones ou d’instruments électroniques, qui sont ensuite mélangés pour former une seule onde complexe.

Les sorties de ces nœuds peuvent être reliées aux entrées d’autres nœuds, qui mélangent ou modifient ces flux d’échantillons sonores pour en créer de nouveaux. Une modification courante consiste à multiplier les échantillons par une valeur pour les rendre plus forts ou plus faibles (comme c’est le cas avec “GainNode”). Une fois que le son a été suffisamment traité pour obtenir l’effet souhaité, il peut être relié à l’entrée d’une destination (BaseAudioContext.destination), qui envoie le son aux haut-parleurs ou aux écouteurs. Cette dernière connexion n’est nécessaire que si l’utilisateur doit entendre le son.

À lire aussi  Audi R8 V10 Plus (2013) : la supercar d’exception

Un flux de travail simple

Un flux de travail simple et typique pour l’audio Web ressemblerait à ceci :

  1. Créez un contexte audio.
  2. À l’intérieur du contexte, créez des sources telles que des fichiers
  3. Créez des nœuds d’effets tels que de la réverbération, des filtres biquad, des panoramiques, ou des compresseurs.
  4. Choisissez la destination finale du son, par exemple vos haut-parleurs système.
  5. Connectez les sources aux effets, et les effets à la destination.

Schéma illustrant le flux audio

Une précision et une faible latence

Le timing est contrôlé avec une grande précision et une faible latence, ce qui permet aux développeurs d’écrire du code qui répond avec précision aux événements et qui peut cibler des échantillons spécifiques, même à une fréquence d’échantillonnage élevée. Ainsi, les applications telles que les boîtes à rythmes et les séquenceurs sont parfaitement réalisables.

L’API Web Audio nous permet également de contrôler la spatialisation audio. En utilisant un système basé sur un modèle source-écouteur, il permet de contrôler le modèle de panoramique et de traiter l’atténuation induite par la distance lors du déplacement d’une source (ou d’un auditeur).

Découvrez dès maintenant la puissance de l’API Web Audio et laissez libre cours à votre créativité musicale !

Note: Cet article est une adaptation de l’article original en anglais. Les informations et les images utilisées sont fidèles à l’original.