BaseAudioContext.createPeriodicWave()

Cette traduction est en cours.

La méthode createPeriodicWave() de l'interface BaseAudioContext est utilisée pour créer une PeriodicWave (onde périodique), qui sert à définir une onde sinusoïdale périodique qui peut être utilisée pour modeler la sortie d'un OscillatorNode.

Syntaxe

var onde = AudioContext.createPeriodicWave(réel, imag[, constraints]);

Retour

Un PeriodicWave.

Paramètres

réel
Un tableau de termes cosinus (traditionnellement les termes A).
imag
Un tableau de termes sinus (traditionnellement les termes B).
contraintes Facultatif
Un objet dictionnaire spécifiant si la normalisation doit être désactivée (si non spécifié, la normalisation est activée par défaut). Il accepte une propriété :
  • disableNormalization: si réglé à true, la normalisation est désactivée pour l'onde périodique. Sa valeur par défaut est false.

Si normalisée, l'onde résultante aura une valeur absolue de sommet égale à 1.

Exemple

L'exemple suivant illustre un usage ,simple de createPeriodicWave(), pour créer un objet PeriodicWave contenant une simple courbe de sinus.

var réel = new Float32Array(2);
var imag = new Float32Array(2);
var contexteAudio = new AudioContext();
var oscillateur = contexteAudio.createOscillator();

réel[0] = 0;
imag[0] = 0;
réel[1] = 1;
imag[1] = 0;

var onde = contexteAudio.createPeriodicWave(réel, imag, {disableNormalization: true});

oscillateur.setPeriodicWave(wave);

oscillateur.connect(contexteAudio.destination);

oscillateur.start();
oscillateur.stop(2);

Cela fonctionne car un son n'ayant qu'un unique harmonique est par définition une onde sinusoïdale.

Here, we create a PeriodicWave with two values. The first value is the DC offset, which is the value at which the oscillator starts. 0 is good here, because we want to start the curve at the middle of the [-1.0; 1.0] range.

The second and subsequent values are sine and cosine components. You can think of it as the result of a Fourier transform, where you get frequency domain values from time domain value. Here, with createPeriodicWave(), you specify the frequencies, and the browser performs an inverse Fourier transform to get a time domain buffer for the frequency of the oscillator. Here, we only set one component at full volume (1.0) on the fundamental tone, so we get a sine wave.

Les coefficients de la transformation de Fourier doivent être données dans un ordre croissant (c'est-à-dire (a+bi)ei,(c+di)e2i,(f+gi)e3i\left(a+bi\right)e^{i} , \left(c+di\right)e^{2i} , \left(f+gi\right)e^{3i}     etc) et peuvent être positifs ou négatifs.  A simple way of manually obtaining such coefficients (though not the best) is to use a graphing calculator.

Spécifications

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

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung Internet
Support simpleChrome Support complet 59
Notes
Support complet 59
Notes
Notes Default values supported
Support complet 57
Support complet 10
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Edge Support complet OuiFirefox Support complet 25IE Aucun support NonOpera Support complet 22
Support complet 22
Support complet 15
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Safari Support complet 6
Préfixée
Support complet 6
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
WebView Android Support complet 59
Notes
Support complet 59
Notes
Notes Default values supported
Support complet 57
Support complet 4.4.3
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Chrome Android Support complet 59
Notes
Support complet 59
Notes
Notes Default values supported
Support complet 57
Support complet 33
Préfixée
Préfixée Nécessite l'utilisation d'un préfixe : webkit
Edge Mobile Support complet OuiFirefox Android Support complet 26Opera Android Support complet OuiSafari iOS Aucun support NonSamsung Internet Android ?
Possible to disable normalisationChrome Support complet OuiEdge Support complet OuiFirefox Aucun support NonIE Aucun support NonOpera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile Support complet OuiFirefox Android Aucun support NonOpera Android ? Safari iOS ? Samsung Internet Android ?

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
Voir les notes d'implémentation.
Voir les notes d'implémentation.
Cette fonctionnalité nécessite un préfixe particulier ou utilise un autre nom.
Cette fonctionnalité nécessite un préfixe particulier ou utilise un autre nom.

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : mdnwebdocs-bot, JNa0
Dernière mise à jour par : mdnwebdocs-bot,