Interface AnalyserNode

This interface represents a node which is able to provide real-time frequency and time-domain analysis information. The audio stream will be passed un-processed from input to output.

numberOfInputs : 1 numberOfOutputs : 1 Note that this output may be left unconnected.

Hierarchy

Index

Properties

Methods

Properties

public context: AudioContext

The AudioContext which owns this AudioNode.

public fftSize: number

The size of the FFT used for frequency-domain analysis. This must be a power of two.

public frequencyBinCount: number

Half the FFT size.

public maxDecibels: number

The maximum power value in the scaling range for the FFT analysis data for conversion to unsigned byte values.

public minDecibels: number

The minimum power value in the scaling range for the FFT analysis data for conversion to unsigned byte values.

public numberOfInputs: number

The number of inputs feeding into the AudioNode. This will be 0 for an AudioSourceNode.

public numberOfOutputs: number

The number of outputs coming out of the AudioNode. This will be 0 for an AudioDestinationNode.

public smoothingTimeConstant: number

A value from 0 -> 1 where 0 represents no time averaging with the last analysis frame.

Methods

public connect(destination: AudioNode, output?: number, input?: number)

Connects the AudioNode to another AudioNode.

It is possible to connect an AudioNode output to more than one input with multiple calls to connect(). Thus, "fanout" is supported.

It is possible to connect an AudioNode to another AudioNode which creates a cycle. In other words, an AudioNode may connect to another AudioNode, which in turn connects back to the first AudioNode. This is allowed only if there is at least one DelayNode in the cycle or an exception will be thrown.

There can only be one connection between a given output of one specific node and a given input of another specific node. Multiple connections with the same termini are ignored. For example:

nodeA.connect(nodeB);
nodeA.connect(nodeB);

will have the same effect as

nodeA.connect(nodeB);

Parameters

  • destination: AudioNode

    the AudioNode to connect to.

  • output?: number optional

    an index describing which output of the AudioNode from which to connect. An out-of-bound value throws an exception.

  • input?: number optional

    an index describing which input of the destination AudioNode to connect to. An out-of-bound value throws an exception.

public connect(destination: AudioParam, output?: number)

Connects the AudioNode to an AudioParam, controlling the parameter value with an audio-rate signal.

It is possible to connect an AudioNode output to more than one AudioParam with multiple calls to connect(). Thus, "fanout" is supported.

It is possible to connect more than one AudioNode output to a single AudioParam with multiple calls to connect(). Thus, "fanin" is supported.

An AudioParam will take the rendered audio data from any AudioNode output connected to it and convert it to mono by down-mixing if it is not already mono, then mix it together with other such outputs and finally will mix with the intrinsic parameter value (the value the AudioParam would normally have without any audio connections), including any timeline changes scheduled for the parameter.

There can only be one connection between a given output of one specific node and a specific AudioParam. Multiple connections with the same termini are ignored. For example:

nodeA.connect(param);
nodeA.connect(param);

will have the same effect as

nodeA.connect(param);

Parameters

  • destination: AudioParam

    the AudioParam to connect to.

  • output?: number optional

    an index describing which output of the AudioNode from which to connect. An out-of-bound value throws an exception.

public disconnect(output?: number)

Disconnects an AudioNode's output.

Parameters

  • output?: number optional

    an index describing which output of the AudioNode to disconnect. An out-of-bound value throws an exception.

public getByteFrequencyData(array: any)

Copies the current frequency data into the passed unsigned byte array. If the array has fewer elements than the frequencyBinCount, the excess elements will be dropped.

Parameters

  • array: any

public getByteTimeDomainData(array: any)

Copies the current time-domain (waveform) data into the passed unsigned byte array. If the array has fewer elements than the frequencyBinCount, the excess elements will be dropped.

Parameters

  • array: any

    where time-domain analysis data will be copied.

public getFloatFrequencyData(array: any)

Copies the current frequency data into the passed floating-point array. If the array has fewer elements than the frequencyBinCount, the excess elements will be dropped.

Parameters

  • array: any

    where frequency-domain analysis data will be copied.