GainNode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.

The GainNode interface represents a change in volume. It is an AudioNode audio-processing module that causes a given gain to be applied to the input data before its propagation to the output. A GainNode always has exactly one input and one output, both with the same number of channels.

The gain is a unitless value, changing with time, that is multiplied to each corresponding sample of all input channels. If modified, the new gain is instantly applied, causing unaesthetic 'clicks' in the resulting audio. To prevent this from happening, never change the value directly but use the exponential interpolation methods on the AudioParam interface.

The GainNode is increasing the gain of the output.

EventTarget AudioNode GainNode
Number of inputs 1
Number of outputs 1
Channel count mode "max"
Channel count 2 (not used in the default count mode)
Channel interpretation "speakers"

Constructor

GainNode()

Creates and returns a new GainNode object. As an alternative, you can use the BaseAudioContext.createGain() factory method; see Creating an AudioNode.

Instance properties

Inherits properties from its parent, AudioNode.

GainNode.gain Read only

An a-rate AudioParam representing the amount of gain to apply. You have to set AudioParam.value or use the methods of AudioParam to change the effect of gain.

Instance methods

No specific method; inherits methods from its parent, AudioNode.

Example

See BaseAudioContext.createGain() for example code showing how to use an AudioContext to create a GainNode.

Specifications

Specification
Web Audio API
# GainNode

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
GainNode
GainNode() constructor
gain

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

See also