Interface ParamMgrNode<Params, InternalParams>

Parameter Manager is an implementation of WamNode, it uses native WebAudio AudioParam to adapt WamParameter API for automations. It can be used to create automatable values that will be changed with two methods:

  1. if the automated value is an AudioParam:

    According to the WebAudio Spec,

the computedValue of the automated AudioParam is the sum of its paramIntrinsicValue (value attribute) and its audio input. The ParamMgr uses this property to automate AudioParams. It will create corresponding audio output that is connected to the automated AudioParam.

 Meanwhile, the `paramIntrinsicValue` will be set to its `minValue`.

Note: as the automated `AudioParam` value is fixed, to get its actual value, please use `getIParamValue()` method.

BiquadFilterNode.getFrequencyResponse() will not work if its AudioParams are automated in this case.

  1. if the automated value is not an AudioParam

    While setting up the ParamMgr, user can provide an onChange callback for any furthur opertion

along with an automationRate in milliseconds as the frequency of calling the callback if the value has been changed.

 The rate cannot succeed `k-rate` as the function call on the main thread.
interface ParamMgrNode<Params, InternalParams> {
    $lock: Int32Array;
    $paramsBuffer: Float32Array;
    $prevParamsBuffer: Float32Array;
    channelCount: number;
    channelCountMode: ChannelCountMode;
    channelInterpretation: ChannelInterpretation;
    context: BaseAudioContext;
    groupId: string;
    initialized: boolean;
    instanceId: string;
    internalParams: InternalParams[];
    internalParamsConfig: InternalParametersDescriptor<InternalParams>;
    module: WebAudioModule<WamNode>;
    moduleId: string;
    numberOfInputs: number;
    numberOfOutputs: number;
    onprocessorerror: ((this, ev) => any);
    parameters: TypedAudioParamMap<Params>;
    paramsUpdateCheckFn: number[];
    paramsUpdateCheckFnRef: number[];
    port: TypedMessagePort<ParamMgrNodeMsgIn, ParamMgrNodeMsgOut>;
    addEventListener<K>(type, listener, options?): void;
    addEventListener<K>(type, listener, options?): void;
    addEventListener(type, listener, options?): void;
    cancelAndHoldParamAtTime(name, cancelTime): AudioParam;
    cancelScheduledParamValues(name, cancelTime): AudioParam;
    clearEvents(): void;
    connect(destinationNode, output?, input?): AudioNode;
    connect(destinationParam, output?): void;
    connectEvents(toId, output?): void;
    connectIParam(name, dest, index?): void;
    convertFrameToTime(frame): number;
    convertTimeToFrame(time): number;
    destroy(): void;
    disconnect(): void;
    disconnect(output): void;
    disconnect(destinationNode): void;
    disconnect(destinationNode, output): void;
    disconnect(destinationNode, output, input): void;
    disconnect(destinationParam): void;
    disconnect(destinationParam, output): void;
    disconnectEvents(toId?, output?): void;
    disconnectIParam(name, dest?, index?): void;
    dispatchEvent(event): boolean;
    dispatchWamEvent(event): void;
    exponentialRampToNormalizedParamValueAtTime(name, value, endTime): AudioParam;
    exponentialRampToParamValueAtTime(name, value, endTime): AudioParam;
    getCompensationDelay(): Promise<number>;
    getIParamIndex(name): number;
    getIParamValue(name): number;
    getIParamsValues(): Record<InternalParams, number>;
    getNormalizedParamValue(name): number;
    getNormalizedParamsValues(): Partial<Record<Params, number>>;
    getParam(name): AudioParam;
    getParamValue(name): number;
    getParameterInfo(...parameterIdQuery): Promise<WamParameterInfoMap>;
    getParameterValues(normalized?, ...parameterIdQuery): Promise<WamParameterDataMap>;
    getParams(): Record<Params, AudioParam>;
    getParamsValues(): Record<Params, number>;
    getState(): Promise<any>;
    initialize(): Promise<ParamMgrNode<string, string>>;
    linearRampToNormalizedParamValueAtTime(name, value, endTime): AudioParam;
    linearRampToParamValueAtTime(name, value, endTime): AudioParam;
    removeEventListener<K>(type, listener, options?): void;
    removeEventListener<K>(type, listener, options?): void;
    removeEventListener(type, listener, options?): void;
    requestDispatchIParamChange(name): void;
    scheduleEvents(...event): void;
    setBuffer(buffer): void;
    setNormalizedParamTargetAtTime(name, target, startTime, timeConstant): AudioParam;
    setNormalizedParamValue(name, value): void;
    setNormalizedParamValueAtTime(name, value, startTime): AudioParam;
    setNormalizedParamValueCurveAtTime(name, values, startTime, duration): AudioParam;
    setNormalizedParamsValues(values): void;
    setParamTargetAtTime(name, target, startTime, timeConstant): AudioParam;
    setParamValue(name, value): void;
    setParamValueAtTime(name, value, startTime): AudioParam;
    setParamValueCurveAtTime(name, values, startTime, duration): AudioParam;
    setParameterValues(parameterValues): Promise<void>;
    setParamsValues(values): void;
    setState(state): Promise<void>;
}

Type Parameters

  • Params extends string = string

  • InternalParams extends string = Params

Hierarchy (view full)

Properties

$lock: Int32Array

The lock will be true if the $paramsBuffer is changing by the processor. This is a view of a SharedArrayBuffer

Deprecated

$paramsBuffer: Float32Array

The values of internal parameters, contains one value for each param, will be updated each AudioWorklet buffer. This is a view of a SharedArrayBuffer

Deprecated

$prevParamsBuffer: Float32Array

Previous params value since last event dispatch of any non-AudioParam internal parameters

Deprecated

channelCount: number
channelCountMode: ChannelCountMode
channelInterpretation: ChannelInterpretation
context: BaseAudioContext
groupId: string
initialized: boolean

The state of the initialization.

instanceId: string
internalParams: InternalParams[]

An array that contains ordered internal params names. The order is important for the output connections and for the parameters' values buffer

Deprecated

The plugin's internal parameters description. Used for denormalize normalized exposed parameters values

module: WebAudioModule<WamNode>
moduleId: string
numberOfInputs: number
numberOfOutputs: number
onprocessorerror: ((this, ev) => any)

Type declaration

    • (this, ev): any
    • Parameters

      • this: AudioWorkletNode
      • ev: Event

      Returns any

paramsUpdateCheckFn: number[]

Event dispatch callback functions bound to specific values for the parameter.

Deprecated

paramsUpdateCheckFnRef: number[]

Event dispatch callbacks reference of the setTimeout calls. Used to clear the callbacks while destroying the plugin.

Deprecated

Methods

  • Type Parameters

    • K extends "processorerror"

    Parameters

    • type: K
    • listener: ((this, ev) => any)
        • (this, ev): any
        • Parameters

          • this: AudioWorkletNode
          • ev: AudioWorkletNodeEventMap[K]

          Returns any

    • Optional options: boolean | AddEventListenerOptions

    Returns void

  • Type Parameters

    • K extends keyof WamEventMap

    Parameters

    • type: K
    • listener: ((this, ev) => any)
        • (this, ev): any
        • Parameters

          • this: AudioWorkletNode
          • ev: CustomEvent<WamEventMap[K]>

          Returns any

    • Optional options: boolean | AddEventListenerOptions

    Returns void

  • Parameters

    • type: string
    • listener: EventListenerOrEventListenerObject
    • Optional options: boolean | AddEventListenerOptions

    Returns void

  • Parameters

    • name: Params
    • cancelTime: number

    Returns AudioParam

  • Parameters

    • name: Params
    • cancelTime: number

    Returns AudioParam

  • Clear all pending WamEvents.

    Returns void

  • Parameters

    • destinationNode: AudioNode
    • Optional output: number
    • Optional input: number

    Returns AudioNode

  • Parameters

    • destinationParam: AudioParam
    • Optional output: number

    Returns void

  • Connect an event output stream to another WAM. If no output index is given, assume output 0.

    Parameters

    • toId: string
    • Optional output: number

    Returns void

  • connect an internal parameter audio output to an AudioParam or an AudioNode. Note that if the destination is declared in the internalParamsConfig, there is no need to reconnect it.

    Parameters

    • name: InternalParams
    • dest: AudioNode | AudioParam
    • Optional index: number

    Returns void

  • convert a frame index to WebAudio time stamp

    Parameters

    • frame: number

    Returns number

  • convert an WebAudio time stamp to frame index

    Parameters

    • time: number

    Returns number

  • Stop processing and remove the node from the graph.

    Returns void

  • Returns void

  • Parameters

    • output: number

    Returns void

  • Parameters

    • destinationNode: AudioNode

    Returns void

  • Parameters

    • destinationNode: AudioNode
    • output: number

    Returns void

  • Parameters

    • destinationNode: AudioNode
    • output: number
    • input: number

    Returns void

  • Parameters

    • destinationParam: AudioParam

    Returns void

  • Parameters

    • destinationParam: AudioParam
    • output: number

    Returns void

  • Disconnect an event output stream from another WAM. If no arguments are given, all event streams will be disconnected.

    Parameters

    • Optional toId: string
    • Optional output: number

    Returns void

  • disonnect an internal parameter audio output to an AudioParam or an AudioNode.

    Parameters

    • name: InternalParams
    • Optional dest: AudioNode | AudioParam
    • Optional index: number

    Returns void

  • Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.

    MDN Reference

    Parameters

    • event: Event

    Returns boolean

  • Parameters

    • name: Params
    • value: number
    • endTime: number

    Returns AudioParam

  • Parameters

    • name: Params
    • value: number
    • endTime: number

    Returns AudioParam

  • Compensation delay hint in samples

    Returns Promise<number>

  • get the output index of an internal parameter from its name, null if not exist

    Parameters

    Returns number

  • normalized value version of getParamValue()

    Parameters

    Returns number

  • normalized value version of getParamsValues()

    Returns Partial<Record<Params, number>>

  • get the AudioParam instance of an exposed parameter

    Parameters

    Returns AudioParam

  • get the current value of an exposed parameter, shorthand for AudioParam.prototype.value

    Parameters

    Returns number

  • Get parameter info for the specified parameter ids, or omit argument to get info for all parameters.

    Parameters

    • Rest ...parameterIdQuery: string[]

    Returns Promise<WamParameterInfoMap>

  • Get parameter values for the specified parameter ids, or omit argument to get values for all parameters.

    Parameters

    • Optional normalized: boolean
    • Rest ...parameterIdQuery: string[]

    Returns Promise<WamParameterDataMap>

  • get the AudioParam instance of every exposed parameters

    Returns Record<Params, AudioParam>

  • get the current value of every exposed parameters

    Returns Record<Params, number>

  • Returns an object (such as JSON or a serialized blob) that can be used to restore the WAM's state.

    Returns Promise<any>

  • Parameters

    • name: Params
    • value: number
    • endTime: number

    Returns AudioParam

  • Parameters

    • name: Params
    • value: number
    • endTime: number

    Returns AudioParam

  • Force to check if an internal param is updated to dispatch immediately value change event if necessary. Note that the event will also be throttled to the automation rate.

    Parameters

    Returns void

  • Schedule a WamEvent. Listeners will be triggered when the event is processed.

    Parameters

    • Rest ...event: WamEvent[]

    Returns void

  • Parameters

    • name: Params
    • target: number
    • startTime: number
    • timeConstant: number

    Returns AudioParam

  • normalized value version of setParamValue()

    Parameters

    Returns void

  • Parameters

    • name: Params
    • value: number
    • startTime: number

    Returns AudioParam

  • Parameters

    • name: Params
    • values: number[] | Float32Array | Iterable<number>
    • startTime: number
    • duration: number

    Returns AudioParam

  • normalized value version of setParamsValues()

    Parameters

    • values: Record<Params, number>

    Returns void

  • Parameters

    • name: Params
    • target: number
    • startTime: number
    • timeConstant: number

    Returns AudioParam

  • get the current value of an exposed parameter, shorthand for AudioParam.prototype.value = value

    Parameters

    Returns void

  • Parameters

    • name: Params
    • value: number
    • startTime: number

    Returns AudioParam

  • Parameters

    • name: Params
    • values: number[] | Float32Array | Iterable<number>
    • startTime: number
    • duration: number

    Returns AudioParam

  • Set parameter values for the specified parameter ids.

    Parameters

    • parameterValues: WamParameterDataMap

    Returns Promise<void>

  • set the current value of every exposed parameters

    Parameters

    • values: Partial<Record<Params, number>>

    Returns void

  • Use an object (such as JSON or a serialized blob) to restore the WAM's state.

    Parameters

    • state: any

    Returns Promise<void>

Generated using TypeDoc