WebAudioAPI()

Contains all WebAudioAPI top-level functionality.

new WebAudioAPI()

Returns a singleton instance of the WebAudioAPI interface.

Classes

WebAudioAPI

Methods

analyzeAudio(analysisType, opt trackName) → {Any}

Analyzes the current realtime audio output according to the specified analysisType.

The trackName parameter is optional, and if left blank, will cause the analysis to be carried out on the aggregate output over all tracks and all applied effects.

The type of return value from this function will depend on the analysis being carried out and can be determined by examining the corresponding concrete definitions of the AnalysisBase interface.

Parameters:
Name Type Attributes Description
analysisType number

Audio AnalysisType to execute

trackName string <optional>

Name of the track whose audio should be analyzed

Returns:
Any -

Result of the specified analysis

See:

async applyMasterEffect(effectName, effectType)

Applies a new master effect to the aggregate output from all tracks at the specified time.

Calling this function affects the sequential ordering in which master effects will be processed, with each new call appending the corresponding effect to the end of the processing sequence.

The parameters of the added effect will be set to their default values such that the result of adding the effect will not be audible. In order to manipulate and utilize this effect, use the updateMasterEffect() function.

If a master effect with the specified effectName has already been applied, then calling this function will simply re-order the effect to move it to the very end of the effect processing sequence, without changing its parameter values.

Parameters:
Name Type Description
effectName string

User-defined name to associate with the master effect

effectType number

Master EffectType to apply

See:

async applyTrackEffect(trackName, effectName, effectType)

Applies a new effect to the specified track at the specified time.

Calling this function affects the sequential ordering in which effects will be processed within the specified track, with each new call appending the corresponding effect to the end of the processing sequence.

The parameters of the added effect will be set to their default values such that the result of adding the effect will not be audible. In order to manipulate and utilize this effect, use the updateTrackEffect() function.

If an effect with the specified effectName has already been applied to the specified track, then calling this function will simply re-order the effect to move it to the very end of the effect processing sequence, without changing its parameter values.

Parameters:
Name Type Description
trackName string

Name of the track on which to apply the effect

effectName string

User-defined name to associate with the track effect

effectType number

Track-specific EffectType to apply

See:

clearAllTracks()

Cancels all current and scheduled audio from playing on all existing tracks.

clearTrack(name)

Cancels all current and scheduled audio from playing on the specified track.

Parameters:
Name Type Description
name string

Name of the track to clear

async connectAudioInputDeviceToTrack(trackName, audioInputDeviceName)

Connects an audio input device to the specified audio track.

Note: A single audio input device can be connected to multiple audio tracks, but an audio track can only be connected to a single audio input device.

Parameters:
Name Type Description
trackName string

Name of the track to which to connect the audio input device

audioInputDeviceName string

Name of the audio input device to connect to the track

async connectMidiDeviceToTrack(trackName, midiDeviceName)

Connects a MIDI device to the specified audio track.

Note: A single MIDI device can be connected to multiple audio tracks, but an audio track can only be connected to a single MIDI device.

Parameters:
Name Type Description
trackName string

Name of the track to which to connect the MIDI device

midiDeviceName string

Name of the MIDI device to connect to the track

convertNoteDurationToSeconds(duration) → {number}

Converts a note Duration into a corresponding number of seconds given the current Tempo settings.

Parameters:
Name Type Description
duration number

Note Duration to convert to seconds

Returns:
number -

Number of seconds corresponding to the specified duration at current Tempo settings

convertSecondsToNoteDuration(seconds) → {number}

Converts a number of seconds into the nearest corresponding note Duration given the current Tempo settings.

Parameters:
Name Type Description
seconds number

Number of seconds to convert to a note Duration

Returns:
number -

Note Duration corresponding to the specified seconds at current Tempo settings

createAudioBufferFromSamples(sampleRate, samples) → {AudioBuffer}

Converts a 2D array of floating point samples into an AudioBuffer object with the specified sampleRate.

Parameters:
Name Type Description
sampleRate number

Sample rate at which the audio data was recorded

samples Array.<Array.<number>>

2D array of floating point audio samples to encode

Returns:
AudioBuffer -

Newly created AudioBuffer containing the audio data

See:

createTrack(name)

Creates a track capable of playing sequential audio. A single track can only utilize a single instrument at a time.

Parameters:
Name Type Description
name string

Name of the newly created track

async decodeAudioClip(audioClip) → {AudioBuffer}

Decodes an ArrayBuffer containing an audio clip into an AudioBuffer object.

Parameters:
Name Type Description
audioClip ArrayBuffer | Blob

Array buffer or blob containing the audio clip to decode

Returns:
AudioBuffer -

Decoded audio buffer for the specified audio clip

See:

deregisterMidiDeviceCallback(midiDeviceName)

Removes a user-registered callback from the specified MIDI device so that it will no longer fire upon reception of a MIDI event.

Parameters:
Name Type Description
midiDeviceName string

Name of the MIDI device for which to stop receiving events

async disconnectAudioInputDeviceFromTrack(trackName)

Disconnects all audio input devices from the specified audio track.

Parameters:
Name Type Description
trackName string

Name of the track from which to disconnect the audio input devices

async disconnectMidiDeviceFromTrack(trackName)

Disconnects all MIDI devices from the specified audio track.

Parameters:
Name Type Description
trackName string

Name of the track from which to disconnect the MIDI devices

async encodeAudioAs(encodingType, sampleRate, samples) → {Blob}

Encodes a 2D array of floating point samples into a Blob containing raw audio data according to the specified sampleRate and EncodingType specified in the encodingType parameter.

Parameters:
Name Type Description
encodingType number

Numeric value corresponding to the desired EncodingType

sampleRate number

Sample rate at which the audio data was recorded

samples Array.<Array.<number>>

2D array of floating point audio samples to encode

Returns:
Blob -

Data Blob containing the newly encoded audio data

See:

getAvailableAnalysisTypes() → {Object.<string, number>}

Returns a listing of all available audio analysis types in the WebAudioAPI library.

This function can be used to enumerate available analysis options for displaying on a web page.

Returns:
Object.<string, number> -

Listing of all available audio analysis types in the WebAudioAPI library

See:

async getAvailableAudioInputDevices() → {Promise.<Array.<string>>}

Returns a listing of the available audio input devices connected to the client device.

Individual results from this function call can be passed directly to the connectAudioInputDeviceToTrack() function to attach an input device to a specified audio track.

Returns:
Promise.<Array.<string>> -

Listing of all available audio input devices connected to the client

async getAvailableAudioOutputDevices() → {Promise.<Array.<string>>}

Returns a listing of the available audio output devices connected to the client device.

Individual results from this function call can be passed directly to the selectAudioOutputDevice() function to choose where to direct all audio output.

Returns:
Promise.<Array.<string>> -

Listing of all available audio output devices connected to the client

getAvailableEffectParameters(effectType) → {Array.<EffectParameter>}

Returns a list of effect-specific EffectParameters for manipulation in the effectOptions parameter of the updateMasterEffect() or the updateTrackEffect() function.

This function can be used to enumerate available effect parameters for displaying on a web page. Note, however, that the effectType parameter must be the numeric value associated with a certain EffectType, not a string-based key.

Parameters:
Name Type Description
effectType number

The EffectType for which to return a parameter list

Returns:
Array.<EffectParameter> -

List of effect-specific parameters available for updating

See:

getAvailableEffects() → {Object.<string, number>}

Returns a listing of all available effects in the WebAudioAPI library.

This function can be used to enumerate available effect options for displaying on a web page. Note, however, that the effectType parameter passed to either the applyMasterEffect() or the applyTrackEffect() function must be the numeric value associated with a certain EffectType, not a string-based key.

Returns:
Object.<string, number> -

Listing of all available effect types in the WebAudioAPI library

See:

getAvailableEncoders() → {Object.<string, number>}

Returns a listing of all available encoders in the WebAudioAPI library.

This function can be used to enumerate available encoding options for displaying on a web page.

Returns:
Object.<string, number> -

Listing of all available encoding types in the WebAudioAPI library

See:

async getAvailableInstruments(instrumentLibraryLocation) → {Promise.<Array.<string>>}

Returns a listing of the available instruments located in the specified asset library.

Individual results from this function call can be passed directly to the updateInstrument() function to load a specific instrument into an audio track.

Parameters:
Name Type Description
instrumentLibraryLocation string

Absolute or relative URL pointing to a WebAudioAPI instrument library

Returns:
Promise.<Array.<string>> -

Listing of all available instrument names

getAvailableKeySignatures() → {Object.<string, number>}

Returns a full listing of recognized key signatures by the WebAudioAPI library.

This function can be used to enumerate available key signatures for displaying on a web page. Note, however, that the keySignature parameter passed to the updateKeySignature() function must be the location of the desired key on the circle of fifths associated with a certain KeySignature, not a string-based key signature.

Returns:
Object.<string, number> -

Listing of recognized key signatures by the WebAudioAPI library

See:

async getAvailableMidiDevices() → {Promise.<Array.<string>>}

Returns a listing of the available MIDI devices connected to the client device.

Individual results from this function call can be passed directly to the connectMidiDeviceToTrack() function to attach a MIDI device to a specified audio track.

Returns:
Promise.<Array.<string>> -

Listing of all available MIDI devices connected to the client device

getAvailableModificationParameters(modificationType) → {Object.<string, Object.<string, Array.<string>>>}

Returns a list of modification-specific parameters for use in the modificationOptions parameter of the getModification() function or an empty list if the specified modification does not require any parameters.

This function can be used to enumerate available modification parameters for displaying on a web page. Note, however, that the modificationType parameter must be the numeric value associated with a certain ModificationType, not a string-based key.

The object returned from this function will contain 2 keys: 'required' and 'optional'. These keys can be used to access sub-objects with 2 keys: 'singleNote' and 'sequence'. These keys hold arrays containing the string-based names of parameters that are available for manipulation within the given modification.

Parameter values within the "sequence" array indicate parameters that have meaning when used with the playSequence() function. Parameter values within the "singleNote" array indicate parameters that have meaning when used with the playNote() function.

Parameters:
Name Type Description
modificationType number

The ModificationType for which to return a parameter list

Returns:
Object.<string, Object.<string, Array.<string>>> -

List of modification-specific parameter keys and when they are required

See:

getAvailableNoteDurations() → {Object.<string, number>}

Returns a full listing of recognized note durations by the WebAudioAPI library.

This function can be used to enumerate available duration options for displaying on a web page. Note, however, that the duration parameter passed to the playNote() function must be the numeric value associated with a certain Duration, not a string-based key.

Returns:
Object.<string, number> -

Listing of recognized note durations by the WebAudioAPI library

See:

getAvailableNoteModifications() → {Object.<string, number>}

Returns a listing of all available note modifications in the WebAudioAPI library.

This function can be used to enumerate available note modification options for displaying on a web page. Note, however, that the modification type parameter passed to the getModification() function must include the numeric value associated with a certain ModificationType, not a string-based key.

Returns:
Object.<string, number> -

Listing of all available note modifications in the WebAudioAPI library

See:

getAvailableNotes() → {Object.<string, number>}

Returns a full listing of recognized musical notes by the WebAudioAPI library.

This function can be used to enumerate available note options for displaying on a web page. Note, however, that the note parameter passed to the playNote() function must be the numeric MIDI value associated with a certain Note, not a string-based key.

Returns:
Object.<string, number> -

Listing of recognized musical notes by the WebAudioAPI library

See:

getCurrentMasterEffectParameters(effectName) → {Object}

Returns the current parameter settings for the specified master effect.

Parameters:
Name Type Description
effectName string

Name of the master effect for which to retrieve current settings

Returns:
Object -

Effect-specific parameter values with keys as returned by getAvailableEffectParameters()

getCurrentTime() → {number}

Returns the current global time since the WebAudioAPI library was started or resumed using the start() function.

Returns:
number -

Current global time since the WebAudioAPI library was started

getCurrentTrackEffectParameters(trackName, effectName) → {Object}

Returns the current parameter settings for a track-specific effect.

Parameters:
Name Type Description
trackName string

Name of the track for which to retrieve current effect settings

effectName string

Name of the track effect for which to retrieve current settings

Returns:
Object -

Effect-specific parameter values with keys as returned by getAvailableEffectParameters()

getKeySignature() → {Key}

Returns the current global Key parameters for all audio tracks.

Returns:
Key -

Global Key parameters and settings

getModification(modificationType, opt modificationOptions) → {ModificationDetails}

Returns a properly formatted structure containing the relevant musical modification and parameters passed into this function.

Note that the modificationOptions parameter should normally be either omitted/undefined or an Object containing the required keys as returned by the getAvailableModificationParameters() function; however, if there is only one required key, you may simply pass a numerical value to modificationOptions instead of explicitly enumerating an Object with the single required key.

Parameters:
Name Type Attributes Description
modificationType number

Number corresponding to the ModificationType to generate

modificationOptions Object | number <optional>

Potential modification-specific options as returned by getAvailableModificationParameters()

Returns:
ModificationDetails -

A structure containing the relevant musical modification details passed into this function

See:

getTempo() → {Tempo}

Returns the current global Tempo parameters for all audio tracks.

Returns:
Tempo -

Global Tempo parameters and settings

getVersion() → {string}

Returns the current WebAudioAPI library version number.

Returns:
string -

Current library version number

async playChord(trackName, chord, startTime, opt modifications, opt areDrumNotes) → {Promise.<number>}

Schedules a chord of notes to be played on a specific track.

Note that the chord parameter should be an array of [note, duration, mods] tuples, where the note parameter should correspond to a valid MIDI note number, the duration parameter should correspond to the beat scaling factor associated with one of the note durations from getAvailableNoteDurations(), and mods may either be a single modification to the chord, a list of modifications, or omitted completely.

The modifications parameter is optional, and if included, may either be a single ModificationDetails structure or a list of such structures. This structure should be obtained from the getModification() function.

Parameters:
Name Type Attributes Default Description
trackName string

Name of the track on which to play the note

chord Array.<Array>

Array of [note, duration, mods] corresponding to the chord to be played

startTime number

Global API time at which to start playing the chord

modifications Array.<ModificationDetails> <optional>

Optional individual or list of modifications to apply to the chord

areDrumNotes boolean <optional>
false

Optional flag indicating whether this chord contains only drum notes (i.e., not affected by key or duration)

Returns:
Promise.<number> -

Duration (in seconds) of the chord being played

See:

async playClip(trackName, audioClip, startTime, opt duration) → {Promise.<number>}

Schedules an audio clip to be played on a specific track for some duration of time.

The format of the audio clip in the audioClip parameter may be a data buffer containing raw audio-encoded data (such as from a WAV file), a blob containing audio-encoded data, an already-decoded audio buffer, or a MidiClip or AudioClip that was recorded using this library.

If the duration parameter is not specified or is set to null, the audio clip will play to completion.

Parameters:
Name Type Attributes Description
trackName string

Name of the track on which to play the clip

audioClip ArrayBuffer | AudioBuffer | Blob | MidiClip | AudioClip

Object containing audio data to play

startTime number

Global API time at which to start playing the clip

duration number <optional>

Number of seconds for which to continue playing the clip

Returns:
Promise.<number> -

Duration (in seconds) of the clip being played

See:

async playFile(trackName, fileURL, startTime, opt duration) → {Promise.<number>}

Schedules an audio file to be played on a specific track for some duration of time.

If the duration parameter is not specified or is set to null, the audio file will play to completion.

Parameters:
Name Type Attributes Description
trackName string

Name of the track on which to play the file

fileURL string

URL location pointing to an audio file

startTime string

Global API time at which to start playing the file

duration number <optional>

Number of seconds for which to continue playing the file

Returns:
Promise.<number> -

Duration (in seconds) of the file being played

async playNote(trackName, note, startTime, duration, opt modifications, opt isDrumNote) → {Promise.<number>}

Schedules a note to be played on a specific track for some duration of time.

Note that the duration parameter should correspond to the beat scaling factor associated with one of the note durations from getAvailableNoteDurations(). Likewise, the note parameter should correspond to a MIDI note number as associated with one of the notes returned from getAvailableNotes().

The modifications parameter is optional, and if included, may either be a single ModificationDetails structure or a list of such structures. This structure should be obtained from the getModification() function.

Parameters:
Name Type Attributes Default Description
trackName string

Name of the track on which to play the note

note number

MIDI Note number to be played

startTime number

Global API time at which to start playing the note

duration number

Duration for which to continue playing the note

modifications ModificationDetails | Array.<ModificationDetails> <optional>

Optional individual or list of modifications to apply to the note

isDrumNote boolean <optional>
false

Optional flag indicating whether this note is a drum note (i.e., not affected by key or duration)

Returns:
Promise.<number> -

Duration (in seconds) of the note being played

See:

async playSequence(trackName, sequence, startTime, opt modifications, opt areDrumNotes) → {Promise.<number>}

Schedules a musical sequence to be played on a specific track.

Note that the sequence parameter should be an array containing either chords (as defined in the playChord() function) or [note, duration, mods] tuples, where the note parameter should correspond to a valid MIDI note number, the duration parameter should correspond to the beat scaling factor associated with one of the note durations from getAvailableNoteDurations(), and mods may either be a single modification that affects the whole sequence, a list of modifications, or omitted completely.

The modifications parameter is optional, and if included, may either be a single ModificationDetails structure or a list of such structures. This structure should be obtained from the getModification() function.

Parameters:
Name Type Attributes Default Description
trackName string

Name of the track on which to play the note

sequence Array.<(Array|Array.<Array>)>

Array of [note, duration, mods] and/or chords corresponding to the sequence to be played

startTime number

Global API time at which to start playing the sequence

modifications Array.<ModificationDetails> <optional>

Optional individual or list of modifications to apply to the sequence

areDrumNotes boolean <optional>
false

Optional flag indicating whether this sequence contains only drum notes (i.e., not affected by key or duration)

Returns:
Promise.<number> -

Duration (in seconds) of the sequence being played

See:

recordAudioClip(trackName, startTime, opt duration) → {AudioClip}

Schedules an audio clip to be recorded on a specific track for some duration of time.

If the duration parameter is not specified or is set to null, the audio clip will continue to record until manually stopped by the finalize() function on the returned AudioClip object.

Note that the recorded audio clip will not include any effects that might exist on the target track. This is so that recording on an effect-modified track and then immediately playing back on the same track will not cause the effects to be doubled.

Parameters:
Name Type Attributes Description
trackName string

Name of the track on which to record the audio clip

startTime number

Global API time at which to start recording the audio clip

duration number <optional>

Number of seconds for which to continue recording the audio clip

Returns:
AudioClip -

Reference to an AudioClip object representing the audio data to be recorded

See:

recordMidiClip(trackName, startTime, opt duration) → {MidiClip}

Schedules a MIDI clip to be recorded on a specific track for some duration of time.

If the duration parameter is not specified or is set to null, the MIDI clip will continue to record until manually stopped by the finalize() function on the returned MidiClip object.

Note that the recorded MIDI clip will not include any effects that might exist on the target track. This is so that recording on an effect-modified track and then immediately playing back on the same track will not cause the effects to be doubled.

Parameters:
Name Type Attributes Description
trackName string

Name of the track on which to record the MIDI clip

startTime number

Global API time at which to start recording the MIDI clip

duration number <optional>

Number of seconds for which to continue recording the MIDI clip

Returns:
MidiClip -

Reference to a MidiClip object representing the MIDI data to be recorded

See:

recordOutput(opt trackName, opt startTime, opt duration) → {AudioRecording}

Schedules an audio recording to be executed on the cumulative output of the specified audio track for some duration of time.

If the trackName parameter is not specified or is set to null, the audio recording will include the cumulative output of all audio tracks and effects.

If the startTime parameter is not specified or is set to null, the audio recording will begin immediately.

If the duration parameter is not specified or is set to null, the audio recording will continue until manually stopped by the finalize() function on the returned AudioRecording object.

Note that the recorded audio will include all existing effects.

Parameters:
Name Type Attributes Description
trackName string <optional>

Name of the track from which to record all audio output

startTime number <optional>

Global API time at which to start recording the audio output

duration number <optional>

Number of seconds for which to continue recording the audio output

Returns:
AudioRecording -

Reference to an AudioRecording object representing the audio recording

See:

registerMidiDeviceCallback(midiDeviceName, midiEventCallback)

Registers a callback function to receive incoming events from the specified MIDI device.

The midiEventCallback parameter should be a function that receives one parameter of type MIDIMessageEvent.

Note: A callback may be registered for a MIDI device that is also connected to an audio track; however, only one top-level event callback can be registered to a MIDI device at a time.

Parameters:
Name Type Description
midiDeviceName string

Name of the MIDI device for which to receive events

midiEventCallback MidiEventCallback

Callback to fire when a MIDI event is received

removeAllTracks()

Removes all existing audio tracks and cancels all current and scheduled audio.

async removeInstrument(trackName)

Removes the instrument used to play back audio on the specified track.

Parameters:
Name Type Description
trackName string

Name of the track from which to remove the current instrument

async removeMasterEffect(effectName) → {Promise.<(Effect|null)>}

Removes the specified master effect from being applied.

Parameters:
Name Type Description
effectName string

Name of the master effect to be removed

Returns:
Promise.<(Effect|null)> -

The effect that was removed, if any

See:

removeTrack(name)

Removes the specified audio track and cancels any audio scheduled for playback on this track from playing or starting to play in the future.

Parameters:
Name Type Description
name string

Name of the track to remove

async removeTrackEffect(trackName, effectName)

Removes the specified effect from being applid on the corresponding track.

Parameters:
Name Type Description
trackName string

Name of the track from which to remove the effect

effectName string

Name of the track effect to be removed

async selectAudioOutputDevice(audioOutputDeviceName)

Redirects all audio output to the specified device.

Parameters:
Name Type Description
audioOutputDeviceName string

Name of the output device to which to direct all audio

async start()

Starts the WebAudioAPI library and allows audio playback to resume.

async startNote(trackName, note, opt velocity) → {Promise.<Object>}

Immediately begins playing a note on the specified track. Playback continues until the note is explicitly stopped using the stopNote() function.

Note that the note parameter should correspond to a MIDI note number as associated with one of the notes returned from getAvailableNotes().

Parameters:
Name Type Attributes Default Description
trackName string

Name of the track on which to start playing the note

note number

MIDI Note number to be played

velocity number <optional>
0.75

Intensity of the note to play between [0.0, 1.0]

Returns:
Promise.<Object> -

Reference to the newly scheduled note

See:

stop()

Stops the WebAudioAPI library and pauses any currently playing audio.

async stopNote(trackName, note)

Immediately stop playing a note on the specified track. The note to be stopped must be a reference to an actively playing note that was previously returned from the startNote() function.

Parameters:
Name Type Description
trackName string

Name of the track on which to stop playing the note

note Object

Reference to an active note that was started using startNote()

async updateInstrument(trackName, instrumentName)

Updates the instrument used to play back audio on the specified track.

The instrument name must refer to a valid instrument as returned by the getAvailableInstruments() function.

Parameters:
Name Type Description
trackName string

Name of the track for which to update the instrument

instrumentName string

Name of the instrument to assign to the track

updateKeySignature(keySignature)

Updates the global key signature parameters for all audio tracks.

The keySignature parameter should correspond to the location of the desired key on the circle of fifths as returned by the getAvailableKeySignatures() function. Alternately, you can specify the number of sharps as a positive value or the number of flats as a negative value.

Parameters:
Name Type Description
keySignature number

Numerical KeySignature indicator based on its circle of fifths position

async updateMasterEffect(effectName, effectOptions, opt updateTime, opt transitionLength)

Updates the parameters of a master effect at the specified time.

Calling this function will not affect the sequential processing order of any applied effects.

Note that the updateTime parameter can be omitted to immediately cause the requested changes to take effect.

Parameters:
Name Type Attributes Description
effectName string

Name of the master effect to be updated

effectOptions Object

Effect-specific options as returned by getAvailableEffectParameters()

updateTime number <optional>

Global API time at which to update the effect

transitionLength number <optional>

Number of seconds over which to update the effect

updateTempo(beatBase, beatsPerMinute, timeSignatureNumerator, timeSignatureDenominator)

Updates the global tempo parameters for all audio tracks.

The beatBase parameter should correspond to the beat scaling factor associated with one of the note durations from getAvailableNoteDurations().

Any parameter may be set to null to keep it unchanged between consecutive function calls.

Parameters:
Name Type Description
beatBase number | null

Note Duration corresponding to a global beat

beatsPerMinute number | null

Number of global beats per minute

timeSignatureNumerator number | null

Number of beats per measure

timeSignatureDenominator number | null

Note Duration corresponding to a measure beat

async updateTrackEffect(trackName, effectName, effectOptions, opt updateTime, opt transitionLength)

Updates the parameters of a track-specific effect at the specified time.

Calling this function will not affect the sequential processing order of any applied effects.

Note that the updateTime parameter can be omitted to immediately cause the requested changes to take effect.

Parameters:
Name Type Attributes Description
trackName string

Name of the track for which to update the effect

effectName string

Name of the track effect to be updated

effectOptions Object

Effect-specific options as returned by getAvailableEffectParameters()

updateTime number <optional>

Global API time at which to update the effect

transitionLength number <optional>

Number of seconds over which to update the effect