/Web APIs


The AudioWorkletNode() constructor creates a new AudioWorkletNode object, which represents an AudioNode that uses a JavaScript function to perform custom audio processing.


new AudioWorkletNode(context, name);
new AudioWorkletNode(context, name, options);



The BaseAudioContext instance this node will be associated with.


A string, which represents the name of the AudioWorkletProcessor this node will be based on. A processor with the provided name must first be registered using the AudioWorkletGlobalScope.registerProcessor() method.

options Optional

An object containing zero or more of the following optional properties to configure the new node:

Note: The result of the structured clone algorithm applied to the object is also internally passed into the associated AudioWorkletProcessor() constructor — this allows custom initialization of an underlying user-defined AudioWorkletProcessor.

numberOfInputs Optional

The value to initialize the numberOfInputs property to. Defaults to 1.

numberOfOutputs Optional

The value to initialize the numberOfOutputs property to. Defaults to 1.

outputChannelCount Optional

An array defining the number of channels for each output. For example, outputChannelCount: [n, m] specifies the number of channels in the first output to be n and the second output to be m. The array length must match numberOfOutputs.

parameterData Optional

An object containing the initial values of custom AudioParam objects on this node (in its parameters property), with key being the name of a custom parameter and value being its initial value.

processorOptions Optional

Any additional data that can be used for custom initialization of the underlying AudioWorkletProcessor.

Return value

The newly constructed AudioWorkletNode instance.


NotSupportedError DOMException

The specified options.outputChannelCount is 0 or larger than the current implementation supports.

Both options.numberOfInputs and options.numberOfOutputs are 0.

IndexSizeError DOMException

The length of options.outputChannelCount array does not match options.numberOfOutputs.

Usage notes

Different options parameter values can have the following effects.

If the number of inputs and number of outputs are both set to 0, a NotSupportedError will be thrown and the node construction process aborted. If the length of the outputChannelCount array doesn't match numberOfOutputs, an IndexSizeError DOMException will be thrown.

If outputChannelCount isn't specified, and numberOfInputs and numberOfOutputs are both 1, the AudioWorkletNode's initial channel count is set to 1. This has the effect of changing the output channel count to dynamically change to the computed number of channels, based on the input's channel count and the current setting of the AudioNode property channelCountMode.

Otherwise, if outputChannelCount is provided and if the values of numberOfInputs and numberOfOutputs are both 1, the audio worklet node's channel count is set to the value of outputChannelCount. Otherwise, the channel count of each channel in the set of output channels is set to match the corresponding value in the outputChannelCount array.


For a complete example demonstrating user-defined audio processing, see the AudioWorkletNode page.


Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet

See also

© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.