This article needs a technical review. How you can help.

The gain property of the GainNode interface is an a-rate AudioParam representing the amount of gain to apply.


var audioCtx = new AudioContext();
var gainNode = audioCtx.createGain();
gainNode.gain.value = 0.5;


An AudioParam.

Note: Though the AudioParam returned is read-only, the value it represents is not.


The following example shows basic usage of an AudioContext to create a GainNode, which is then used to mute and unmute the audio when a Mute button is clicked by changing the gain property value. For more complete applied examples/information, check out our Voice-change-O-matic demo (view source.)

  <a class="mute">Mute button</a>
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
var gainNode = audioCtx.createGain();
var mute = document.querySelector('.mute');



mute.onclick = voiceMute;

function voiceMute() {
  if( == "") {
    gainNode.gain.value = 0; = "activated";
    mute.innerHTML = "Unmute";
  } else {
    gainNode.gain.value = 1; = "";
    mute.innerHTML = "Mute";


Specification Status Comment
Web Audio API
The definition of 'gain' in that specification.
Working Draft  

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 10.0webkit 25.0 (25.0)  Not supported 15.0webkit
22 (unprefixed)
Feature Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support ? 26.0 1.2 ? ? ? 33.0

See also

Document Tags and Contributors

 Contributors to this page: fscholz, chrisdavidmills
 Last updated by: fscholz,