--- title: OscillatorNode slug: Web/API/OscillatorNode translation_of: Web/API/OscillatorNode ---
{{APIRef("Web Audio API")}}

L'interface OscillatorNode représente un signal périodique, une sinusoïde par exemple. C'est un module de traitement audio {{domxref("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 {{domxref("AudioContext.createOscillator")}}. Il a toujours exactement une sortie, et aucune entrée. Ses propriétés par défaut (voir {{domxref("AudioNode")}} pour la définition) sont :

Propriétés

Hérite des propriétés de ses parents, {{domxref("AudioNode")}}.

{{domxref("OscillatorNode.frequency")}}
{{domxref("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).
{{domxref("OscillatorNode.detune")}}
{{domxref("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).
{{domxref("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 une {{domxref("PeriodicWave")}} pour décrire une forme d'onde personnalisée.

Méthodes

Hérite des méthodes de ses parents, {{domxref("AudioNode")}}.

{{domxref("OscillatorNode.start()")}}
Cette méthode déclenche la lecture du son.
{{domxref("OscillatorNode.stop()")}}
Cette méthode interrompt la lecture du son.
{{domxref("OscillatorNode.setPeriodicWave()")}}
Cette méthode définit une {{domxref("PeriodicWave")}} qui peut être utilisée pour donner sa forme à la sortie de l'oscillateur, quand on utilise l'attribut type = "custom". Elle remplace la méthode devenue obsolète {{domxref("OscillatorNode.setWaveTable")}}.

Event handlers

{{domxref("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 {{ domxref("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();

Spécifications

Spécification Statut Commentaire
{{SpecName('Web Audio API', '#the-oscillatornode-interface', 'OscillatorNode')}} {{Spec2('Web Audio API')}}

Compatibilité des navigateurs

{{Compat("api.OscillatorNode")}}

Voir aussi