code: function(muted, id) {
        var self = this;
  
        // If the sound hasn't loaded, add it to the load queue to mute when capable.
        if (self._state !== 'loaded'|| self._playLock) {
          self._queue.push({
            event: 'mute',
            action: function() {
              self.mute(muted, id);
            }
          });
  
          return self;
        }
  
        // If applying mute/unmute to all sounds, update the group's value.
        if (typeof id === 'undefined') {
          if (typeof muted === 'boolean') {
            self._muted = muted;
          } else {
            return self._muted;
          }
        }
  
        // If no id is passed, get all ID's to be muted.
        var ids = self._getSoundIds(id);
  
        for (var i=0; i<ids.length; i++) {
          // Get the sound.
          var sound = self._soundById(ids[i]);
  
          if (sound) {
            sound._muted = muted;
  
            // Cancel active fade and set the volume to the end value.
            if (sound._interval) {
              self._stopFade(sound._id);
            }
  
            if (self._webAudio && sound._node) {
              sound._node.gain.setValueAtTime(muted ? 0 : sound._volume, Howler.ctx.currentTime);
            } else if (sound._node) {
              sound._node.muted = Howler._muted ? true : muted;
            }
  
            self._emit('mute', sound._id);
          }
        }
  
        return self;
      }
docs: Mute/unmute a single sound or all sounds in this Howl group.
  @param  {Boolean} muted Set to true to mute and false to unmute.
  @param  {Number} id    The sound ID to update (omit to mute/unmute all).
  @return {Howl}