code: function(vol) {
        var self = this || Howler;
        vol = parseFloat(vol);
  
        // If we don't have an AudioContext created yet, run the setup.
        if (!self.ctx) {
          setupAudioContext();
        }
  
        if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {
          self._volume = vol;
  
          // Don't update any of the nodes if we are muted.
          if (self._muted) {
            return self;
          }
  
          // When using Web Audio, we just need to adjust the master gain.
          if (self.usingWebAudio) {
            self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);
          }
  
          // Loop through and change volume for all HTML5 audio nodes.
          for (var i=0; i<self._howls.length; i++) {
            if (!self._howls[i]._webAudio) {
              // Get all of the sounds in this Howl group.
              var ids = self._howls[i]._getSoundIds();
  
              // Loop through all sounds and change the volumes.
              for (var j=0; j<ids.length; j++) {
                var sound = self._howls[i]._soundById(ids[j]);
  
                if (sound && sound._node) {
                  sound._node.volume = sound._volume * vol;
                }
              }
            }
          }
  
          return self;
        }
  
        return self._volume;
      }
docs: Get/set the global volume for all sounds.
  @param  {Float} vol Volume from 0.0 to 1.0.
  @return {Howler/Float}     Returns self or current volume.