(function ( Dancer ) {

  var CODECS = {
    'mp3' : 'audio/mpeg;',
    'ogg' : 'audio/ogg; codecs="vorbis"',
    'wav' : 'audio/wav; codecs="1"',
    'aac' : 'audio/mp4; codecs="mp4a.40.2"'
  },
  audioEl = document.createElement( 'audio' );

  Dancer.options = {};

  Dancer.setOptions = function ( o ) {
    for ( var option in o ) {
      if ( o.hasOwnProperty( option ) ) {
        Dancer.options[ option ] = o[ option ];
      }
    }
  };

  Dancer.isSupported = function () {
    if ( !window.Float32Array || !window.Uint32Array ) {
      return null;
    } else if ( window.AudioContext || window.webkitAudioContext ) {
      return 'webaudio';
    } else if ( audioEl && audioEl.mozSetup ) {
      return 'audiodata';
    } else if ( FlashDetect.versionAtLeast( 9 ) ) {
      return 'flash';
    } else {
      return '';
    }
  };

  Dancer.canPlay = function ( type ) {
    var canPlay = audioEl.canPlayType;
    return !!(
      Dancer.isSupported() === 'flash' ?
        type.toLowerCase() === 'mp3' :
        audioEl.canPlayType &&
        audioEl.canPlayType( CODECS[ type.toLowerCase() ] ).replace( /no/, ''));
  };

  Dancer.addPlugin = function ( name, fn ) {
    if ( Dancer.prototype[ name ] === undefined ) {
      Dancer.prototype[ name ] = fn;
    }
  };

  Dancer._makeSupportedPath = function ( source, codecs ) {
    if ( !codecs ) { return source; }

    for ( var i = 0; i < codecs.length; i++ ) {
      if ( Dancer.canPlay( codecs[ i ] ) ) {
        return source + '.' + codecs[ i ];
      }
    }
    return source;
  };

  Dancer._getAdapter = function ( instance ) {
    switch ( Dancer.isSupported() ) {
      case 'webaudio':
        return new Dancer.adapters.webkit( instance );
      case 'audiodata':
        return new Dancer.adapters.moz( instance );
      case 'flash':
        return new Dancer.adapters.flash( instance );
      default:
        return null;
    }
  };

})( window.Dancer );

@@ -568,16 +568,44 @@
 lse if (
+ !isUnsupportedSafari() && (
  window.
@@ -647,16 +647,17 @@
 ontext )
+)
  %7B%0A     
@@ -1938,16 +1938,457 @@
 %7D%0A  %7D;%0A%0A
+  // Browser detection is lame, but Safari 6 has Web Audio API,%0A  // but does not support processing audio from a Media Element Source%0A  // https://gist.github.com/3265344%0A  function isUnsupportedSafari () %7B%0A    var%0A      isApple = !!( navigator.vendor %7C%7C '' ).match( /Apple/ ),%0A      version = navigator.userAgent.match( /Version%5C/(%5B%5E %5D*)/ );%0A    version = version ? parseFloat( version%5B 1 %5D ) : 0;%0A    return isApple && version %3C= 6;%0A  %7D%0A%0A
 %7D)( wind

Add detection for Safari 6 to go to flash since it improperly implements Web Audio API