AudioParam

L'interface AudioParam représente un paramètre audio, en général un paramètre d'un AudioNode tel qu'un GainNode.gain. On peut lui donner une valeur spécifique ou définir une variation de valeur qui intervient à un certain moment et selon un certain fonctionnement.

Il y a deux sortes de AudioParam, a-rate et k-rate :

  • Un AudioParam a-rate réévalue la valeur du paramètre audio pour chaque trame d'échantillons du signal audio.
  • Un AudioParam k-rate utilise la même valeur de paramètre audio initial pour l'ensemble du bloc traité, c'est-à-dire 128 échantillons.

Chaque AudioNode définit lequel de ses paramètres sont a-rate ou k-rate.

Chaque AudioParam a une liste d'événements, initialement vide, qui définit quand et comment les valeurs changent. Si cette liste n'est pas vide, les modifications faites directement avec AudioParam.value sont ignorées. Cette liste d'événements permet de planifier les changements qui doivent se produire à des moments très précis à l'aide de courbes d'automatisation chronologiques arbitraires. Les informations de temps utilisées sont celles définies par AudioContext.currentTime.

Propriétés

Hérite des propriétés de son parent, AudioNode.

AudioParam.defaultValue Lecture seule
Volume initial tel que défini par l'AudioNode qui crée l'AudioParam.
AudioParam.maxValue Lecture seule
Valeur maximum de la plage nominale (effective). 
AudioParam.minValue Lecture seule
Valeur minimum de la plage nominale (effective). 
AudioParam.value
Volume, exprimé sous forme de nombre flottant, initialement défini par la valeur de AudioParam.defaultValue. Même s'il peut être modifié, toute modification qui a lieu alors que des événements d'automatisation sont prévus - événements programmés en utilisant les méthodes de la AudioParam - est ignorée, sans lever aucune exception

Méthodes

Hérite des propriétés de son parent, AudioNode.

AudioParam.setValueAtTime()
Planifie un changement de la valeur d' AudioParam à un moment précis, startTime, tel que mesuré par rapport à AudioContext.currentTime. La nouvelle valeur est passée en argument.
AudioParam.linearRampToValueAtTime()
Planifie un changement de la valeur d'AudioParam. Le changement commence à l'heure prévue pour l'événement précédent, évolue selon une rampe linéaire jusqu'à la nouvelle valeur passée dans l'argument value, et atteint la nouvelle valeur à l'heure indiquée par le paramètre endTime.
AudioParam.exponentialRampToValueAtTime()
Planifie un changement de la valeur d'AudioParam. Le changement commence à l'heure prévue pour l'événement précédent, suit une rampe exponentielle jusqu'à la nouvelle valeur passée dans l'argument value, et atteint la nouvelle valeur à l'heure indiquée par le paramètre endTime.
Les rampes exponentielles sont utiles lors du changement de fréquence ou de taux de lecture en raison de la façon dont l'oreille humaine fonctionne.
AudioParam.setTargetAtTime()
Planifie le début d'un changement de la valeur d'AudioParam. Le changement commence à l'heure spécifiée par l'argument startTime et de façon exponentielle tend vers la valeur donnée par le paramètre target. Le taux de décroissance exponentielle est définie par le paramètre timeConstant. C'est le temps nécessaire à un système continu linéaire du premier ordre invariant dans le temps pour atteindre la valeur de 1 - 1 / e (environ 63,2%) donné une réponse d'entrée de l'étape (passage de 0 à 1 en valeur), Plus il est grand, plus la transition sera facile. Ceci est utile pour la décroissance ou la libération de portions d'enveloppes.
AudioParam.setValueCurveAtTime()
Planifie des valeurs de AudioParam selon un jeu de valeurs, défini par le paramètre  values (Float32Array), mis à l'échelle pour s'adapter à l'intervalle de temps donné, en commençant à startTime.
AudioParam.cancelScheduledValues()
Annule toutes les modifications futures prévues du AudioParam.
AudioParam.cancelAndHoldAtTime()
Annule toutes les modifications futures prévues du AudioParam mais maintient sa valeur à un certain moment, en attendant que d'autres changements soient effectués. La nouvelle valeur est passée en argument.

Exemples

Ce premier exemple simple montre la définition de la valeur de  gain d'un GainNode. gain est un exemple de paramètre audio de type a-rate, car sa valeur peut potentiellement être différente pour chaque trame d'échantillon.

var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();

var gainNode = audioCtx.createGain();
gainNode.gain.value = 0;

Ce deuxième exemple montre la définition de plusieurs paramètres d'un BiquadFilterNode. Ce sont des exemples de paramètre audio de type k-rate AudioParam's, comme les valeurs sont définies une fois pour l'ensemble des échantillons.

var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();

var biquadFilter = audioCtx.createBiquadFilter();

biquadFilter.type = "lowshelf";
biquadFilter.frequency.value = 1000;
biquadFilter.gain.value = 25;

Spécifications

Spécification Statut Commentaire
Web Audio API
La définition de 'AudioParam' dans cette spécification.
Version de travail  

Compatibilité navigateurs

Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support basique 14.0 webkit (Oui) 23 (23) Pas de support 15 webkit
22 (unprefixed)
6 webkit
Non prefixé (Oui) (Oui) (Oui) Pas de support (Oui) Pas de support
minValueandmaxValue 52.0 Pas de support (Oui) Pas de support 39 Pas de support
cancelAndHoldAtTime() 57.0 Pas de support Pas de support Pas de support Pas de support Pas de support
Fonctionnalité Android Webview Chrome pour Android Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Basic support 14 webkit (Oui) 23 (23) Pas de support 15 webkit
22 (unprefixed)
6 webkit
Non préfixé (Oui) (Oui) (Oui) Pas de support (Oui) Pas de support
minValue and maxValue 52 Pas de support (Oui) Pas de support 39 Pas de support
cancelAndHoldAtTime() 57 Pas de support Pas de support Pas de support Pas de support Pas de support

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : marie-ototoi, fscholz, tregagnon, dexterneo
 Dernière mise à jour par : marie-ototoi,