AudioParam

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

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.

js
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.

js
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

Specification
Web Audio API
# AudioParam

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi