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


AudioWorkletGlobalScope.registerProcessor(name, processorCtor);


A string representing the name under which the processor will be registered.
The constructor of a class derived from AudioWorkletProcessor.

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



  • The name is an empty string, or
  • a constructor under the given name is already registered. Registering the same name twice is not allowed.


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')


Specification Status Comment
Web Audio API
The definition of 'registerProcessor()' in that specification.
Working Draft

Browser compatibility

BCD tables only load in the browser

See also