Firefox Tomorrow

web api instance method

AudioWorkletGlobalScope: registerProcessor() method

View on MDN ↗

The registerProcessor method of the AudioWorkletGlobalScope interface registers a class constructor derived from AudioWorkletProcessor interface under a specified name.

Syntax

registerProcessor(name, processorCtor)

Parameters

  • name
    • : A string representing the name under which the processor will be registered.
  • processorCtor

[!NOTE] A key-value pair { name: constructor } is saved internally in the AudioWorkletGlobalScope once the processor is registered. The name is to be referred to when creating an AudioWorkletNode based on the registered processor. A new processor by the given name is internally created and associated with the new node.

Return value

None (undefined).

Exceptions

  • NotSupportedError DOMException

    • : Thrown under the following conditions:
      • The name is an empty string.
      • A constructor under the given name is already registered. Registering the same name twice is not allowed.
  • TypeError

    • : Thrown under the following conditions:

Examples

In this example we create a custom AudioWorkletNode that outputs silence.

First, we need to define a custom AudioWorkletProcessor and register it. Note that this should be done in a separate file.

// test-processor.js
class TestProcessor extends AudioWorkletProcessor {
  process(inputs, outputs, parameters) {
    return true;
  }
}

registerProcessor("test-processor", TestProcessor);

Next, in our main script file we’ll load the processor, create an instance of AudioWorkletNode — passing it the processor name that we used when calling registerProcessor — and connect it to an audio graph.

const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule("test-processor.js");
const node = new AudioWorkletNode(audioContext, "test-processor");
node.connect(audioContext.destination);

Specifications

SpecificationsStandards references are available on the canonical MDN page.

Browser compatibility

Browser compatibilityCompatibility data is available on the canonical MDN page.

See also