OscillatorNode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

Die OscillatorNode-Schnittstelle repräsentiert eine periodische Wellenform, wie beispielsweise eine Sinuswelle. Es handelt sich um ein AudioScheduledSourceNode Audiobearbeitungsmodul, das eine bestimmte Frequenz einer gegebenen Welle erzeugt – im Wesentlichen einen konstanten Ton.

EventTarget AudioNode AudioScheduledSourceNode OscillatorNode
Anzahl der Eingänge 0
Anzahl der Ausgänge 1
Kanalanzahlmodus max
Kanalanzahl 2 (im Standardzählmodus nicht verwendet)
Kanalinterpretation speakers

Konstruktor

OscillatorNode()

Erstellt eine neue Instanz eines OscillatorNode-Objekts, gegebenenfalls mit einem Objekt, das Standardwerte für die Eigenschaften des Knotens angibt. Alternativ kann die Fabrikmethode BaseAudioContext.createOscillator() verwendet werden; siehe Erstellen eines AudioNode.

Instanz-Eigenschaften

Erbt auch Eigenschaften von seinem Elternteil, AudioScheduledSourceNode.

OscillatorNode.frequency

Ein a-rate AudioParam, das die Oszillationsfrequenz in Hertz darstellt (obwohl das zurückgegebene AudioParam schreibgeschützt ist, ist der dargestellte Wert dies nicht). Der Standardwert ist 440 Hz (ein Standardmittel-A-Ton).

OscillatorNode.detune

Ein a-rate AudioParam, das die Verstimmung der Oszillation in Cents darstellt (obwohl das zurückgegebene AudioParam schreibgeschützt ist, ist der dargestellte Wert dies nicht). Der Standardwert ist 0.

OscillatorNode.type

Ein String, der die Form der abzuspielenden Wellenform angibt; dies kann einer von mehreren Standardwerten sein oder custom, um eine PeriodicWave zur Beschreibung einer benutzerdefinierten Wellenform zu verwenden. Unterschiedliche Wellen erzeugen unterschiedliche Töne. Standardwerte sind "sine", "square", "sawtooth", "triangle" und "custom". Der Standardwert ist "sine".

Instanz-Methoden

Erbt auch Methoden von seinem Elternteil, AudioScheduledSourceNode.

OscillatorNode.setPeriodicWave()

Setzt eine PeriodicWave, die eine periodische Wellenform beschreibt, die anstelle einer der Standardwellenformen verwendet werden soll; das Aufrufen dieser Methode setzt den type auf custom.

AudioScheduledSourceNode.start()

Gibt die genaue Zeit an, zu der der Ton abgespielt werden soll.

AudioScheduledSourceNode.stop()

Gibt die Zeit an, zu der das Abspielen des Tons beendet werden soll.

Ereignisse

Erbt auch Ereignisse von seinem Elternteil, AudioScheduledSourceNode.

Beispiele

Das folgende Beispiel zeigt die grundlegende Verwendung eines AudioContext, um einen Oszillator-Knoten zu erstellen und darauf einen Ton abzuspielen. Für ein angewandtes Beispiel, schauen Sie sich unser Violent Theremin Demo an (siehe app.js für relevanten Code).

js
// create web audio api context
const audioCtx = new AudioContext();

// create Oscillator node
const oscillator = audioCtx.createOscillator();

oscillator.type = "square";
oscillator.frequency.setValueAtTime(440, audioCtx.currentTime); // value in hertz
oscillator.connect(audioCtx.destination);
oscillator.start();

Spezifikationen

Specification
Web Audio API
# OscillatorNode

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch