L'interface OscillatorNode
représente un signal périodique, une sinusoïde par exemple. C'est un module de traitement audio AudioNode
qui crée un signal sinusoïdal à une fréquence donnée — c'est-à-dire génère une tonalité constante.
On crée un OscillatorNode
en utilisant la méthode AudioContext.createOscillator
. Il a toujours exactement une sortie, et aucune entrée. Ses propriétés par défaut (voir AudioNode
pour la définition) sont :
- Nombre d'entrées :
0
- Nombre de sorties :
1
- Mode de calcul des canaux :
max
- Nombre de canaux :
2
(propriété ignorée dans le mode de calcul par défaut) - Interprétation des canaux :
speakers
Propriétés
Hérite des propriétés de ses parents, AudioNode
.
OscillatorNode.frequency
AudioParam
de type a-rate représentant la fréquence d'oscillation en Hertz (la propriété frequency est en lecture seule, mais sa sous-propriété value ne l'est pas).
OscillatorNode.detune
AudioParam
de type a-rate représentant le désaccordage de l' oscillation exprimé en cents (la propriété detune est en lecture seule, mais sa sous-propriété value ne l'est pas).
OscillatorNode.type
- Chaîne de caractères indiquant la forme de l'onde générée. Différentes ondes produisent différentes tonalités. Les valeurs standard sont
"sine"
,"square"
,"sawtooth"
,"triangle"
et"custom"
. La valeur par défault is"sine"
.custom
permet d'utiliser unePeriodicWave
pour décrire une forme d'onde personnalisée.
Méthodes
Hérite des méthodes de ses parents, AudioNode
.
OscillatorNode.start()
- Cette méthode déclenche la lecture du son.
OscillatorNode.stop()
- Cette méthode interrompt la lecture du son.
OscillatorNode.setPeriodicWave()
- Cette méthode définit une
PeriodicWave
qui peut être utilisée pour donner sa forme à la sortie de l'oscillateur, quand on utilise l'attributtype = "custom"
. Elle remplace la méthode devenue obsolèteOscillatorNode.setWaveTable
.
Event handlers
OscillatorNode.onended
- Propriété utilisée pour assigner un gestionnaire d'évènement à l'évènement
ended
, qui est émis une fois que la lecture du son est terminée.
Exemples
L'exemple suivant montre une utilisation basique d'un AudioContext
pour créer un OscillatorNode
. Pour un exemple appliqué, jetez un oeil à notre Violent Theremin demo (voir app.js pour l'intégralité du code).
// crée un contexteaudio
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
// create Oscillator node
var oscillator = contexteAudio.createOscillator();
oscillator.connect(contexteAudio.destination);
oscillator.type = 'square';
oscillator.frequency.value = 440; // valeur en hertz
oscillator.start();
Specifications
Specification | Status | Comment |
---|---|---|
Web Audio API La définition de 'OscillatorNode' dans cette spécification. |
Version de travail |
Compatibilité avec les navigateurs
Nous convertissons les données de compatibilité dans un format JSON.
Ce tableau de compatibilité utilise encore l'ancien format
car nous n'avons pas encore converti les données qu'il contient.
Vous pouvez nous aider en contribuant !
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 14 webkit | 23 | Pas de support | 15 webkit 22 (unprefixed) |
6 webkit |
Feature | Android | Chrome | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | Pas de support | 28 webkit | 25 | 1.2 | Pas de support | Pas de support | 6 webkit |
Voir également