---
title: AnalyserNode
slug: Web/API/AnalyserNode
tags:
- API
- AnalyserNode
- Reference
translation_of: Web/API/AnalyserNode
---
{{APIRef("Web Audio API")}}
L' interface **`AnalyserNode`\*\*** \*\*représente un noeud capable de fournir en temps réel des informations d'analyse de la fréquence et du domaine temporel. C'est un {{domxref("AudioNode")}} qui transmet le flux audio inchangé depuis l'entrée vers la sortie, mais permet de capturer les données générées pour les traiter et/ou les visualiser.
Il a exactement une entrée et une sortie. Le noeud fonctionne même si la sortie n'est pas connectée.
![Sans modifier le flux audio, le nœud permet d'obtenir la fréquence et les données temporelles associées en utilisant une transformée de Fourier rapide.](fttaudiodata_en.svg)
Nombre d'entrées |
1 |
Nombre de sorties |
1 (mais peut ne pas être connectée) |
Mode de comptage des canaux |
"explicit" |
Nombre de canaux |
1 |
Interprétation du canal |
"speakers" |
## Héritage
L'interface hérite des parents suivants:
{{InheritanceDiagram}}
## Constructeur
- {{domxref("AnalyserNode.AnalyserNode", "AnalyserNode()")}}
- : Crée une nouvelle instance de l'objet `AnalyserNode`.
## Propriétés
_Hérite des propriétés de son parent._ _{{domxref("AudioNode")}}_.
- {{domxref("AnalyserNode.fftSize")}}
- : Entier long non signé qui représente la taille de la [FFT](/en-US/docs/) (transformation de Fourier rapide) qui sera utilisé pour déterminer le domaine fréquentiel.
- {{domxref("AnalyserNode.frequencyBinCount")}} {{readonlyInline}}
- : Entier long non signé égal à la moitié fftSize. C'est en général le nombre de valeurs qu'on manipule pour la visualisation.
- {{domxref("AnalyserNode.minDecibels")}}
- : Nombre flottant à double précision qui représente la valeur minimale de puissance dans la plage de mise à l'échelle pour l'analyse des données FFT, pour la conversion en octets non signés - cela équivaut à la valeur minimum de la plage de résultats de `getByteFrequencyData()`.
- {{domxref("AnalyserNode.maxDecibels")}}
- : Nombre flottant à double précision qui représente la valeur maximale de puissance dans la plage de mise à l'échelle pour l'analyse des données FFT, pour la conversion en octets non signés - cela équivaut à la valeur maximum de la plage de résultats de `getByteFrequencyData()`.
- {{domxref("AnalyserNode.smoothingTimeConstant")}}
- : Nombre flottant à double précision qui représente la moyenne de la trame en cours avec la dernière trame analysée - elle permet de lisser la transition entre les valeurs.
## Méthodes
_Hérite des propriétés de son parent,_ _{{domxref("AudioNode")}}_.
- {{domxref("AnalyserNode.getFloatFrequencyData()")}}
- : Copie les données de fréquence dans un tableau {{domxref("Float32Array")}} passé en paramètre.
- {{domxref("AnalyserNode.getByteFrequencyData()")}}
- : Copie les données de fréquence dans un tableau {{domxref("Uint8Array")}} passé en paramètre.
- {{domxref("AnalyserNode.getFloatTimeDomainData()")}}
- : Copie les données de forme d'onde ou du domaine temporel dans un tableau {{domxref("Float32Array")}} passé en paramètre.
- {{domxref("AnalyserNode.getByteTimeDomainData()")}}
- : Copie les données de forme d'onde ou du domaine temporel dans un tableau {{domxref("Uint8Array")}} passé en paramètre.
## Exemples
> **Note :**: Voir [Visualisations avec la Web Audio API](/fr/docs/Web/API/Web_Audio_API/Visualizations_with_Web_Audio_API) pour plus d'informations.
L'exemple suivant montre comment créer simplement un `AnalyserNode` avec {{domxref("AudioContext")}}, puis utiliser {{domxref("window.requestAnimationFrame()","requestAnimationFrame")}} et {{htmlelement("canvas")}} pour collecter les données temporelles et dessiner un oscilloscope en sortie. Pour des exemples plus complets, voir notre démo [Voice-change-O-matic](https://mdn.github.io/voice-change-o-matic/) (et en particulier [app.js lines 128–205](https://github.com/mdn/voice-change-o-matic/blob/gh-pages/scripts/app.js#L128-L205)).
```js
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
var analyseur = contexteAudio.createAnalyser();
...
analyseur.fftSize = 2048;
var tailleMemoireTampon = analyseur.frequencyBinCount;
var tableauDonnees = new Uint8Array(tailleMemoireTampon);
analyseur.getByteTimeDomainData(tableauDonnees);
// dessine un oscilloscope de la source audio
var canvas = document.getElementById("oscilloscope");
var contexteCanvas = canvas.getContext("2d");
function dessiner() {
requestAnimationFrame(dessiner);
analyseur.getByteTimeDomainData(tableauDonnees);
contexteCanvas.fillStyle = 'rgb(200, 200, 200)';
contexteCanvas.fillRect(0, 0, WIDTH, HEIGHT);
contexteCanvas.lineWidth = 2;
contexteCanvas.strokeStyle = 'rgb(0, 0, 0)';
contexteCanvas.beginPath();
var sliceWidth = WIDTH * 1.0 / tailleMemoireTampon;
var x = 0;
for(var i = 0; i < tailleMemoireTampon; i++) {
var v = tableauDonnees[i] / 128.0;
var y = v * HEIGHT/2;
if(i === 0) {
contexteCanvas.moveTo(x, y);
} else {
contexteCanvas.lineTo(x, y);
}
x += sliceWidth;
}
contexteCanvas.lineTo(canvas.width, canvas.height/2);
contexteCanvas.stroke();
};
dessiner();
```
## Spécifications
| Spécification | État | Commentaires |
| ---------------------------------------------------------------------------------------------------- | ------------------------------------ | ------------ |
| {{SpecName('Web Audio API', '#the-analysernode-interface', 'AnalyserNode')}} | {{Spec2('Web Audio API')}} | |
## Compatibilité navigateurs
{{Compat("api.AnalyserNode")}}
## Voir aussi
- [Utiliser la Web Audio API](/fr/docs/Web/API/Web_Audio_API/Using_Web_Audio_API)