AnalyserNode.fftSize

La propriété fftSize de l'objet AnalyserNode est un nombre entier non signé qui représente la taille de la FFT (transfomation de Fourier rapide) à utiliser pour déterminer le domaine fréquentiel.

La valeur de la propriété fftSize property's doit être une puissance de 2 non nulle située dans l'intervalle compris entre 32 er 2048; sa valeur par défaut est 2048.

Note: si la valeur n'est pas une puissance de 2, ou si elle ne se trouve pas dans l'intervalle spécifiée, l'exception INDEX_SIZE_ERR est levée.

Syntaxe

var contexteAudio = new AudioContext();
var analyseur = contexteAudio.createAnalyser();
analyseur.fftSize = 2048;

Valeur

Un nombre entier non signé.

Exemple

L'exemple suivant montre comment créer simplement un  AnalyserNode avec AudioContext, puis utiliser  requestAnimationFrame et <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  (et en particulier app.js lines 128–205).

var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
var analyseur = contexteAudio.createAnalyser();

  ...

analyseur.fftSize = 2048;
var tailleMemoireTampon = analyseur.fftSize;
var tableauDonnees = new Uint8Array(tailleMemoireTampon);
analyseur.getByteTimeDomainData(tableauDonnees);

// dessine un oscilloscope de la source audio

function dessiner() {

      dessin = requestAnimationFrame(dessiner);

      analyseur.getByteTimeDomainData(dataArray);

      contexteCanvas.fillStyle = 'rgb(200, 200, 200)';
      contexteCanvas.fillRect(0, 0, LARGEUR, HAUTEUR);

      contexteCanvas.lineWidth = 2;
      contexteCanvas.strokeStyle = 'rgb(0, 0, 0)';

      contexteCanvas.beginPath();

      var largeurTranche = LARGEUR * 1.0 / tailleMemoireTampon;
      var x = 0;

      for(var i = 0; i < tailleMemoireTampon; i++) {
   
        var v = tableauDonnees[i] / 128.0;
        var y = v * HAUTEUR/2;

        if(i === 0) {
          contexteCanvas.moveTo(x, y);
        } else {
          contexteCanvas.lineTo(x, y);
        }

        x += largeurTranche;
      }

      contexteCanvas.lineTo(canvas.width, canvas.height/2);
      contexteCanvas.stroke();
    };

    dessiner();

Spécifications

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

Compatibilité navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support basique 10.0webkit 25.0 (25.0)  Pas de support 15.0webkit
22 (unprefixed)
6.0webkit
Fonctionnalité Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome pour Android
Support basique ? 26.0 1.2 ? ? ? 33.0

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : pmalhaire, marie-ototoi
 Dernière mise à jour par : pmalhaire,