code: function loadAudio (url, onload, onerror) {
      if (useStreamingBuffer) {
        var audio = new window.Audio()
        audio.src = url
        audio.controls = false
        audio.autoplay = false
        audio.preload = false
        audio.addEventListener('canplay', function () {
          onload && onload(audio)
        })
        audio.addEventListener('error', function (err) {
          onerror && onerror(err)
        })
        document.body.appendChild(audio)
      } else if (url.indexOf('data:audio') === 0) { // Base64 string
        var base64 = url.split(',')[1]
        var buffer = base64ToArrayBuffer(base64)
        ctx.decodeAudioData(buffer, onload, onerror)
      } else { // XMLHTTP buffer
        var request = new window.XMLHttpRequest()
        request.open('GET', url, true)
        request.responseType = 'arraybuffer'
        request.onload = function () {
          ctx.decodeAudioData(request.response, onload, onerror)
        }
        request.send()
      }
    }
docs: /* Load audio file: streaming | base64 | arraybuffer
  ----------------------------------------------------------------------