Path: blob/main/files/en-us/web/api/audioworkletglobalscope/registerprocessor/index.md
6567 views
------{{ APIRef("Web Audio API") }}
The registerProcessor method of the {{domxref("AudioWorkletGlobalScope")}} interface registers a class constructor derived from {{domxref("AudioWorkletProcessor")}} interface under a specified name.
Syntax
Parameters
name: A string representing the name under which the processor will be registered.
processorCtor: The constructor of a class derived from {{domxref("AudioWorkletProcessor")}}.
Note: A key-value pair
{ name: constructor }is saved internally in the {{domxref("AudioWorkletGlobalScope")}} once the processor is registered. The name is to be referred to when creating an {{domxref("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 ({{jsxref("undefined")}}).
Exceptions
NotSupportedError{{domxref("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.
{{jsxref("TypeError")}}
: Thrown under the following conditions:
The processorCtor is not a callable constructor.
The {{domxref("AudioWorkletProcessor.parameterDescriptors", "parameterDescriptors")}} property of the constructor exists and doesn't return an array of {{domxref("AudioParamDescriptor")}}-based objects.
Examples
In this example we create a custom AudioWorkletNode that outputs silence.
First, we need to define a custom {{domxref("AudioWorkletProcessor")}} and register it. Note that this should be done in a separate file.
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.
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}