AudioNode
=========

L'interface **`AudioNode`** est une interface générique pour représenter un module de traitement audio tel qu'une source audio `<audio>`, un élément `<video>`, un `OscillatorNode`, une sortie audio, ou un module de traitement intermédiaire (filtres `BiquadFilterNode` ou `ConvolverNode` (en-US)), un contrôle de volume `GainNode`.

EventTarget

AudioNode

![Des objets AudioNode participant à un objet AudioContext pour créer un graphe de routage audio.](/fr/docs/Web/API/AudioNode/webaudiobasics.png)

Un `AudioNode` a des entrées et sorties, chacune avec un certain nombre de *canaux*. Un `AudioNode` avec zero entrée et une ou plusieurs sorties est appelée un *noeud source*. Le traitement exact varie d'un `AudioNode` à l'autre; en général un noeud lit l'entrée, réalise un traitement, et génère de nouvelles valeurs pour la sortie, ou laisse simplement l'entrée traverser (par exemple dans le cas de l'`AnalyserNode`, où le résultat du traitment du traitement est accessible à part).

Plusieurs noeuds peuvent être reliés dans un *graphe de traitement*. Un tel graphe est contenu dans un `AudioContext`. Chaque `AudioNode` fait partie d'exactement un contexte. Les noeuds de traitement héritent des propriétés et méthodse d'`AudioNode`, mais définissent aussi leurs propres fonctionnalités par dessus. Pour plus de détails, voir les pages individuelles liées sur la page d'accueil Web Audio API.

**Note :** Un `AudioNode` peut être la cible d'évènements, et implémente donc l'interface `EventTarget`.

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

`AudioNode.context` (en-US) Lecture seule 

Renvoie le `AudioContext` associé, c'est-à-dire l'objet représentant le graphe de traitement dont le noeud fait partie.


`AudioNode.numberOfInputs` (en-US) Lecture seule 

Renvoie le nombre d'entrées d'un noeud. Les noeuds source sont des noeuds dont la propriété `numberOfInputs` a la valeur `0`.


`AudioNode.numberOfOutputs` (en-US) Lecture seule 

Renvoie le nombre de sorties d'un noeud. Les noeuds de destination — comme `AudioDestinationNode` (en-US) — sont des noeuds dont cette propriété a la valeur `0`.


`AudioNode.channelCount` (en-US)

Représente un entier utilisé pour déterminer le nombre de canaux lors d'une conversion ascendante ou descendante. Son usage et sa définition précise dépendent de la valeur de `AudioNode.channelCountMode` (en-US).


`AudioNode.channelCountMode` (en-US)

Représente une liste énumérative qui décrit la façon dont les canaux doivent être connectés entre les entrées et les sorties.

`AudioNode.channelInterpretation` (en-US)

Représente une liste énumérative qui décrit la signification des canaux. Cette interprétation définit la façon dont la conversion ascendante ou descendante est réalisée. Les valeurs possibles sont `"speakers"` ou `"discrete"`.

Méthodes
--------

*Implémente aussi les méthodes de l'interface* `EventTarget`.

`AudioNode.connect()` (en-US)

Permet de connecter une sortie du noeud à l'entrée d'un autre noeud, soit comme données audio, soir comme valeur d'un `AudioParam`.

`AudioNode.disconnect()` (en-US)

Permet de déconnecter le noeud d'un autre noeud auquel il est déjà connecté.

Exemple
-------

Ce simple extrait de code illustre la creation de quelques noeuds audio, et la façon dont les propriétés et méthodes `AudioNode` peuvent être utilisées. Vous pouvez trouver d'autres exemples sur n'importe lequel des exemples liés sur la page Web Audio API (par exemple Violent Theremin.)


```js
var AudioContext = window.AudioContext || window.webkitAudioContext;

var audioCtx = new AudioContext();

var oscillator = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();

oscillator.connect(gainNode);
gainNode.connect(audioCtx.destination);

oscillator.context;
oscillator.numberOfInputs;
oscillator.numberOfOutputs;
oscillator.channelCount;
```

Spécifications
--------------

| Specification |
| --- |
| Web Audio API # AudioNode |

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