OscillatorNode: type-Eigenschaft

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 type-Eigenschaft des OscillatorNode-Interfaces gibt an, welche Form der Wellenform der Oszillator ausgibt. Es stehen mehrere gängige Wellenformen zur Verfügung sowie eine Option, eine benutzerdefinierte Wellenform festzulegen. Die Form der Wellenform beeinflusst den erzeugten Ton.

Wert

Ein String, der die Form der Oszillatorwelle angibt. Die verschiedenen verfügbaren Werte sind:

sine

Eine Sinuswelle. Dies ist der Standardwert.

square

Eine Rechteckwelle mit einem Tastverhältnis von 0.5; das heißt, das Signal ist für die Hälfte jedes Zeitraums "hoch".

sawtooth

Eine Sägezahnwelle.

triangle

Eine Dreieckswelle.

custom

Eine benutzerdefinierte Wellenform. Sie setzen type nie manuell auf custom; stattdessen verwenden Sie die Methode setPeriodicWave(), um die Daten bereitzustellen, die die Wellenform repräsentieren. Dadurch wird type automatisch auf custom gesetzt.

Ausnahmen

InvalidStateError DOMException

Wird ausgelöst, wenn der Wert custom angegeben wurde. Um eine benutzerdefinierte Wellenform festzulegen, rufen Sie einfach setPeriodicWave() auf. Dadurch wird der Typ automatisch für Sie festgelegt.

Beispiele

Das folgende Beispiel zeigt die grundlegende Nutzung eines AudioContext, um einen Oszillator-Knoten zu erstellen. Für ein praktisches Beispiel schauen Sie sich unser Violent Theremin-Demo an (siehe app.js für den 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.start();

Spezifikationen

Specification
Web Audio API
# dom-oscillatornode-type

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch