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` (en-US). 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` (en-US).

Propriétés
----------

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

`AudioParam.defaultValue` (en-US) Lecture seule 

Volume initial tel que défini par l'`AudioNode` qui crée l'`AudioParam`.

`AudioParam.maxValue` (en-US) Lecture seule 

Valeur maximum de la plage nominale (effective).

`AudioParam.minValue` (en-US) Lecture seule 

Valeur minimum de la plage nominale (effective).


`AudioParam.value` (en-US)

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()` (en-US)

Planifie un changement de la valeur d' `AudioParam` à un moment précis, `startTime`, tel que mesuré par rapport à `AudioContext.currentTime` (en-US). La nouvelle valeur est passée en argument.

`AudioParam.linearRampToValueAtTime()` (en-US)

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()` (en-US)

 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()` (en-US)

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()` (en-US)

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()` (en-US)

Annule toutes les modifications futures prévues du `AudioParam`.

`AudioParam.cancelAndHoldAtTime()` (en-US)

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 with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Utiliser la Web Audio API