_loadBuffer(_path, callback, errorCallback) {
    var path = p5.prototype._checkFileFormats(_path);
    var self = this;
    var errorTrace = new Error().stack;
    var ac = getAudioContext();

    var request = new XMLHttpRequest();
    request.open('GET', path, true);
    request.responseType = 'arraybuffer';

    request.onload = function () {
      if (request.status === 200) {
        // on success loading file:
        ac.decodeAudioData(
          request.response,
          function (buff) {
            var buffer = {};
            var chunks = path.split('/');
            buffer.name = chunks[chunks.length - 1];
            buffer.audioBuffer = buff;
            self.impulses.push(buffer);
            self._setBuffer(buffer.audioBuffer);
            if (callback) {
              callback(buffer);
            }
          },
          // error decoding buffer. "e" is undefined in Chrome 11/22/2015
          function () {
            var err = new CustomError('decodeAudioData', errorTrace, self.url);
            var msg = 'AudioContext error at decodeAudioData for ' + self.url;
            if (errorCallback) {
              err.msg = msg;
              errorCallback(err);
            } else {
              console.error(
                msg + '\n The error stack trace includes: \n' + err.stack
              );
            }
          }
        );
      }
      // if request status != 200, it failed
      else {
        var err = new CustomError('loadConvolver', errorTrace, self.url);
        var msg =
          'Unable to load ' +
          self.url +
          '. The request status was: ' +
          request.status +
          ' (' +
          request.statusText +
          ')';

        if (errorCallback) {
          err.message = msg;
          errorCallback(err);
        } else {
          console.error(
            msg + '\n The error stack trace includes: \n' + err.stack
          );
        }
      }
    };

    // if there is another error, aside from 404...
    request.onerror = function () {
      var err = new CustomError('loadConvolver', errorTrace, self.url);
      var msg =
        'There was no response from the server at ' +
        self.url +
        '. Check the url and internet connectivity.';

      if (errorCallback) {
        err.message = msg;
        errorCallback(err);
      } else {
        console.error(
          msg + '\n The error stack trace includes: \n' + err.stack
        );
      }
    };
    request.send();
  }
Private method to load a buffer as an Impulse Response,
 assign it to the convolverNode, and add to the Array of .impulses.

 @param   {String}   path
 @param   {Function} callback
 @param   {Function} errorCallback
 @private