AudioWorklet: port

The port read-only property of the AudioWorklet interface returns a MessagePort object that can be used to send and receive messages between the main thread and the associated AudioWorkletGlobalScope.

This allows for custom, asynchronous communication between code in the main thread and the global scope of an audio worklet, such as receiving control data or global settings.

Value

The MessagePort object connecting the AudioWorklet and its associated AudioWorkletGlobalScope.

Examples

See AudioWorkletNode.port for more examples.

Using a port for global messages

In the following example, we can use port.onmessage to receive data and port.postMessage to send data:

js
const context = new AudioContext();
// Load the module that contains worklet code
await context.audioWorklet.addModule("processor.js");

// Listener for messages from AudioWorkletGlobalScope
context.audioWorklet.port.onmessage = (event) => {
  console.log("Message from global worklet:", event.data);
};

// Set a global config, for example:
context.audioWorklet.port.postMessage({
  volume: 0.8,
});

Specifications

Specification
Web Audio API
# dom-audioworklet-port

Browser compatibility

See also