message: re-adding Safari shim
diff: @@ -71,11 +71,12 @@ define(["Tone/core/Tone", "Tone/signal/SignalBase"], function(Tone){
  * })
  */
  Tone.WaveShaper.prototype.setMap = function(mapping){
  + var array = new Array(this._curve.length);
  for (var i = 0, len = this._curve.length; i < len; i++){
  var normalized = (i / (len - 1)) * 2 - 1;
  - this._curve[i] = mapping(normalized, i);
  + array[i] = mapping(normalized, i);
  }
  - this._shaper.curve = this._curve;
  + this.curve = array;
  return this;
  };
  @@ -92,6 +93,16 @@ define(["Tone/core/Tone", "Tone/signal/SignalBase"], function(Tone){
  return this._shaper.curve;
  },
  set : function(mapping){
  + //Safari has a bug which requires that the first values
  + //be in the first and second array location
  + var ua = navigator.userAgent.toLowerCase();
  + var isSafari = ua.indexOf("safari") !== -1 && ua.indexOf("chrome") === -1;
  + if (isSafari){
  + var curve = new Float32Array(mapping.length+1);
  + curve.set(mapping, 1);
  + curve[0] = mapping[0];
  + mapping = curve;
  + }
  this._curve = new Float32Array(mapping);
  this._shaper.curve = this._curve;
  }
  @@ -109,7 +120,7 @@ define(["Tone/core/Tone", "Tone/signal/SignalBase"], function(Tone){
  return this._shaper.oversample;
  },
  set : function(oversampling){
  - if (["none", "2x", "4x"].indexOf(oversampling) !== -1){
  + if (["none", "2x", "4x"].includes(oversampling)){
  this._shaper.oversample = oversampling;
  } else {
  throw new RangeError("Tone.WaveShaper: oversampling must be either 'none', '2x', or '4x'");
  