diff options
| -rw-r--r-- | bundle.js | 2 | ||||
| -rw-r--r-- | bundle.js.map | 2 | ||||
| -rw-r--r-- | client/index.js | 59 | ||||
| -rw-r--r-- | index.html | 24 |
4 files changed, 45 insertions, 42 deletions
@@ -4,7 +4,7 @@ * @license http://opensource.org/licenses/MIT MIT License * @copyright 2014-2017 Yotam Mann */ -return function(t){e=t()}(function(){var t=function(t,e){this.isUndef(t)||1===t?this.input=this.context.createGain():t>1&&(this.input=new Array(t)),this.isUndef(e)||1===e?this.output=this.context.createGain():e>1&&(this.output=new Array(t))};t.prototype.set=function(e,i,s){if(this.isObject(e))s=i;else if(this.isString(e)){var n={};n[e]=i,e=n}t:for(var o in e){i=e[o];var r=this;if(-1!==o.indexOf(".")){for(var a=o.split("."),h=0;h<a.length-1;h++)if((r=r[a[h]])instanceof t){a.splice(0,h+1);var l=a.join(".");r.set(l,i);continue t}o=a[a.length-1]}var c=r[o];this.isUndef(c)||(t.Signal&&c instanceof t.Signal||t.Param&&c instanceof t.Param?c.value!==i&&(this.isUndef(s)?c.value=i:c.rampTo(i,s)):c instanceof AudioParam?c.value!==i&&(c.value=i):c instanceof t?c.set(i):c!==i&&(r[o]=i))}return this},t.prototype.get=function(e){this.isUndef(e)?e=this._collectDefaults(this.constructor):this.isString(e)&&(e=[e]);for(var i={},s=0;s<e.length;s++){var n=e[s],o=this,r=i;if(-1!==n.indexOf(".")){for(var a=n.split("."),h=0;h<a.length-1;h++){var l=a[h];r[l]=r[l]||{},r=r[l],o=o[l]}n=a[a.length-1]}var c=o[n];this.isObject(e[n])?r[n]=c.get():t.Signal&&c instanceof t.Signal?r[n]=c.value:t.Param&&c instanceof t.Param?r[n]=c.value:c instanceof AudioParam?r[n]=c.value:c instanceof t?r[n]=c.get():this.isFunction(c)||this.isUndef(c)||(r[n]=c)}return i},t.prototype._collectDefaults=function(t){var e=[];if(this.isUndef(t.defaults)||(e=Object.keys(t.defaults)),!this.isUndef(t._super))for(var i=this._collectDefaults(t._super),s=0;s<i.length;s++)-1===e.indexOf(i[s])&&e.push(i[s]);return e},t.prototype.toString=function(){for(var e in t){var i=e[0].match(/^[A-Z]$/),s=t[e]===this.constructor;if(this.isFunction(t[e])&&i&&s)return e}return"Tone"},Object.defineProperty(t.prototype,"numberOfInputs",{get:function(){return this.input?this.isArray(this.input)?this.input.length:1:0}}),Object.defineProperty(t.prototype,"numberOfOutputs",{get:function(){return this.output?this.isArray(this.output)?this.output.length:1:0}}),t.prototype.dispose=function(){return this.isUndef(this.input)||(this.input instanceof AudioNode&&this.input.disconnect(),this.input=null),this.isUndef(this.output)||(this.output instanceof AudioNode&&this.output.disconnect(),this.output=null),this},t.prototype.connect=function(t,e,i){return Array.isArray(this.output)?(e=this.defaultArg(e,0),this.output[e].connect(t,0,i)):this.output.connect(t,e,i),this},t.prototype.disconnect=function(t,e,i){this.isArray(this.output)?this.isNumber(t)?this.output[t].disconnect():(e=this.defaultArg(e,0),this.output[e].disconnect(t,0,i)):this.output.disconnect.apply(this.output,arguments)},t.prototype.connectSeries=function(){if(arguments.length>1)for(var t=arguments[0],e=1;e<arguments.length;e++){var i=arguments[e];t.connect(i),t=i}return this},t.prototype.chain=function(){if(arguments.length>0)for(var t=this,e=0;e<arguments.length;e++){var i=arguments[e];t.connect(i),t=i}return this},t.prototype.fan=function(){if(arguments.length>0)for(var t=0;t<arguments.length;t++)this.connect(arguments[t]);return this},AudioNode.prototype.chain=t.prototype.chain,AudioNode.prototype.fan=t.prototype.fan,t.prototype.defaultArg=function(t,e){if(this.isObject(t)&&this.isObject(e)){var i={};for(var s in t)i[s]=this.defaultArg(e[s],t[s]);for(var n in e)i[n]=this.defaultArg(t[n],e[n]);return i}return this.isUndef(t)?e:t},t.prototype.optionsObject=function(t,e,i){var s={};if(1===t.length&&this.isObject(t[0]))s=t[0];else for(var n=0;n<e.length;n++)s[e[n]]=t[n];return this.isUndef(i)?s:this.defaultArg(s,i)},t.prototype.isUndef=function(t){return void 0===t},t.prototype.isFunction=function(t){return"function"==typeof t},t.prototype.isNumber=function(t){return"number"==typeof t},t.prototype.isObject=function(t){return"[object Object]"===Object.prototype.toString.call(t)&&t.constructor===Object},t.prototype.isBoolean=function(t){return"boolean"==typeof t},t.prototype.isArray=function(t){return Array.isArray(t)},t.prototype.isString=function(t){return"string"==typeof t},t.noOp=function(){},t.prototype._readOnly=function(t){if(Array.isArray(t))for(var e=0;e<t.length;e++)this._readOnly(t[e]);else Object.defineProperty(this,t,{writable:!1,enumerable:!0})},t.prototype._writable=function(t){if(Array.isArray(t))for(var e=0;e<t.length;e++)this._writable(t[e]);else Object.defineProperty(this,t,{writable:!0})},t.State={Started:"started",Stopped:"stopped",Paused:"paused"},t.prototype.equalPowerScale=function(t){var e=.5*Math.PI;return Math.sin(t*e)},t.prototype.dbToGain=function(t){return Math.pow(2,t/6)},t.prototype.gainToDb=function(t){return Math.log(t)/Math.LN10*20},t.prototype.intervalToFrequencyRatio=function(t){return Math.pow(2,t/12)},t.prototype.now=function(){return t.context.now()},t.now=function(){return t.context.now()},t.extend=function(e,i){function s(){}t.prototype.isUndef(i)&&(i=t),s.prototype=i.prototype,e.prototype=new s,e.prototype.constructor=e,e._super=i};var e;return Object.defineProperty(t,"context",{get:function(){return e},set:function(i){e=t.Context&&i instanceof t.Context?i:new t.Context(i),t.Context&&t.Context.emit("init",e)}}),Object.defineProperty(t.prototype,"context",{get:function(){return t.context}}),t.setContext=function(e){t.context=e},Object.defineProperty(t.prototype,"blockTime",{get:function(){return 128/this.context.sampleRate}}),Object.defineProperty(t.prototype,"sampleTime",{get:function(){return 1/this.context.sampleRate}}),Object.defineProperty(t,"supported",{get:function(){var t=window.hasOwnProperty("AudioContext")||window.hasOwnProperty("webkitAudioContext"),e=window.hasOwnProperty("Promise"),i=window.hasOwnProperty("Worker");return t&&e&&i}}),t.version="r10",window.TONE_SILENCE_VERSION_LOGGING||console.log("%c * Tone.js "+t.version+" * ","background: #000; color: #fff"),t}),t(function(t){return t.SignalBase=function(){},t.extend(t.SignalBase),t.SignalBase.prototype.connect=function(e,i,s){return t.Signal&&t.Signal===e.constructor||t.Param&&t.Param===e.constructor||t.TimelineSignal&&t.TimelineSignal===e.constructor?(e._param.cancelScheduledValues(0),e._param.value=0,e.overridden=!0):e instanceof AudioParam&&(e.cancelScheduledValues(0),e.value=0),t.prototype.connect.call(this,e,i,s),this},t.SignalBase}),t(function(t){return t.WaveShaper=function(t,e){this._shaper=this.input=this.output=this.context.createWaveShaper(),this._curve=null,Array.isArray(t)?this.curve=t:isFinite(t)||this.isUndef(t)?this._curve=new Float32Array(this.defaultArg(t,1024)):this.isFunction(t)&&(this._curve=new Float32Array(this.defaultArg(e,1024)),this.setMap(t))},t.extend(t.WaveShaper,t.SignalBase),t.WaveShaper.prototype.setMap=function(t){for(var e=0,i=this._curve.length;e<i;e++){var s=e/(i-1)*2-1;this._curve[e]=t(s,e)}return this._shaper.curve=this._curve,this},Object.defineProperty(t.WaveShaper.prototype,"curve",{get:function(){return this._shaper.curve},set:function(t){this._curve=new Float32Array(t),this._shaper.curve=this._curve}}),Object.defineProperty(t.WaveShaper.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){if(-1===["none","2x","4x"].indexOf(t))throw new RangeError("Tone.WaveShaper: oversampling must be either 'none', '2x', or '4x'");this._shaper.oversample=t}}),t.WaveShaper.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null,this},t.WaveShaper}),t(function(t){return t.TimeBase=function(e,i){if(!(this instanceof t.TimeBase))return new t.TimeBase(e,i);if(this._expr=this._noOp,e instanceof t.TimeBase)this.copy(e);else if(!this.isUndef(i)||this.isNumber(e)){i=this.defaultArg(i,this._defaultUnits);var s=this._primaryExpressions[i].method;this._expr=s.bind(this,e)}else this.isString(e)?this.set(e):this.isUndef(e)&&(this._expr=this._defaultExpr())},t.extend(t.TimeBase),t.TimeBase.prototype.set=function(t){return this._expr=this._parseExprString(t),this},t.TimeBase.prototype.clone=function(){var t=new this.constructor;return t.copy(this),t},t.TimeBase.prototype.copy=function(t){var e=t._expr();return this.set(e)},t.TimeBase.prototype._primaryExpressions={n:{regexp:/^(\d+)n/i,method:function(t){return t=parseInt(t),1===t?this._beatsToUnits(this._timeSignature()):this._beatsToUnits(4/t)}},t:{regexp:/^(\d+)t/i,method:function(t){return t=parseInt(t),this._beatsToUnits(8/(3*parseInt(t)))}},m:{regexp:/^(\d+)m/i,method:function(t){return this._beatsToUnits(parseInt(t)*this._timeSignature())}},i:{regexp:/^(\d+)i/i,method:function(t){return this._ticksToUnits(parseInt(t))}},hz:{regexp:/^(\d+(?:\.\d+)?)hz/i,method:function(t){return this._frequencyToUnits(parseFloat(t))}},tr:{regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method:function(t,e,i){var s=0;return t&&"0"!==t&&(s+=this._beatsToUnits(this._timeSignature()*parseFloat(t))),e&&"0"!==e&&(s+=this._beatsToUnits(parseFloat(e))),i&&"0"!==i&&(s+=this._beatsToUnits(parseFloat(i)/4)),s}},s:{regexp:/^(\d+(?:\.\d+)?s)/,method:function(t){return this._secondsToUnits(parseFloat(t))}},samples:{regexp:/^(\d+)samples/,method:function(t){return parseInt(t)/this.context.sampleRate}},default:{regexp:/^(\d+(?:\.\d+)?)/,method:function(t){return this._primaryExpressions[this._defaultUnits].method.call(this,t)}}},t.TimeBase.prototype._binaryExpressions={"+":{regexp:/^\+/,precedence:2,method:function(t,e){return t()+e()}},"-":{regexp:/^\-/,precedence:2,method:function(t,e){return t()-e()}},"*":{regexp:/^\*/,precedence:1,method:function(t,e){return t()*e()}},"/":{regexp:/^\//,precedence:1,method:function(t,e){return t()/e()}}},t.TimeBase.prototype._unaryExpressions={neg:{regexp:/^\-/,method:function(t){return-t()}}},t.TimeBase.prototype._syntaxGlue={"(":{regexp:/^\(/},")":{regexp:/^\)/}},t.TimeBase.prototype._tokenize=function(t){for(var e=-1,i=[];t.length>0;){t=t.trim();var s=function(t,e){for(var i=["_binaryExpressions","_unaryExpressions","_primaryExpressions","_syntaxGlue"],s=0;s<i.length;s++){var n=e[i[s]];for(var o in n){var r=n[o],a=r.regexp,h=t.match(a);if(null!==h)return{method:r.method,precedence:r.precedence,regexp:r.regexp,value:h[0]}}}throw new SyntaxError("Tone.TimeBase: Unexpected token "+t)}(t,this);i.push(s),t=t.substr(s.value.length)}return{next:function(){return i[++e]},peek:function(){return i[e+1]}}},t.TimeBase.prototype._matchGroup=function(t,e,i){if(!this.isUndef(t))for(var s in e){var n=e[s];if(n.regexp.test(t.value)){if(this.isUndef(i))return n;if(n.precedence===i)return n}}return!1},t.TimeBase.prototype._parseBinary=function(t,e){this.isUndef(e)&&(e=2);var i;i=e<0?this._parseUnary(t):this._parseBinary(t,e-1);for(var s=t.peek();s&&this._matchGroup(s,this._binaryExpressions,e);)s=t.next(),i=s.method.bind(this,i,this._parseBinary(t,e-1)),s=t.peek();return i},t.TimeBase.prototype._parseUnary=function(t){var e,i;e=t.peek();var s=this._matchGroup(e,this._unaryExpressions);return s?(e=t.next(),i=this._parseUnary(t),s.method.bind(this,i)):this._parsePrimary(t)},t.TimeBase.prototype._parsePrimary=function(t){var e,i;if(e=t.peek(),this.isUndef(e))throw new SyntaxError("Tone.TimeBase: Unexpected end of expression");if(this._matchGroup(e,this._primaryExpressions)){e=t.next();var s=e.value.match(e.regexp);return e.method.bind(this,s[1],s[2],s[3])}if(e&&"("===e.value){if(t.next(),i=this._parseBinary(t),!(e=t.next())||")"!==e.value)throw new SyntaxError("Expected )");return i}throw new SyntaxError("Tone.TimeBase: Cannot process token "+e.value)},t.TimeBase.prototype._parseExprString=function(t){this.isString(t)||(t=t.toString());var e=this._tokenize(t);return this._parseBinary(e)},t.TimeBase.prototype._noOp=function(){return 0},t.TimeBase.prototype._defaultExpr=function(){return this._noOp},t.TimeBase.prototype._defaultUnits="s",t.TimeBase.prototype._frequencyToUnits=function(t){return 1/t},t.TimeBase.prototype._beatsToUnits=function(e){return 60/t.Transport.bpm.value*e},t.TimeBase.prototype._secondsToUnits=function(t){return t},t.TimeBase.prototype._ticksToUnits=function(e){return e*(this._beatsToUnits(1)/t.Transport.PPQ)},t.TimeBase.prototype._timeSignature=function(){return t.Transport.timeSignature},t.TimeBase.prototype._pushExpr=function(e,i,s){return e instanceof t.TimeBase||(e=new this.constructor(e,s)),this._expr=this._binaryExpressions[i].method.bind(this,this._expr,e._expr),this},t.TimeBase.prototype.add=function(t,e){return this._pushExpr(t,"+",e)},t.TimeBase.prototype.sub=function(t,e){return this._pushExpr(t,"-",e)},t.TimeBase.prototype.mult=function(t,e){return this._pushExpr(t,"*",e)},t.TimeBase.prototype.div=function(t,e){return this._pushExpr(t,"/",e)},t.TimeBase.prototype.valueOf=function(){return this._expr()},t.TimeBase.prototype.dispose=function(){this._expr=null},t.TimeBase}),t(function(t){return t.Time=function(e,i){if(!(this instanceof t.Time))return new t.Time(e,i);this._plusNow=!1,t.TimeBase.call(this,e,i)},t.extend(t.Time,t.TimeBase),t.Time.prototype._unaryExpressions=Object.create(t.TimeBase.prototype._unaryExpressions),t.Time.prototype._unaryExpressions.quantize={regexp:/^@/,method:function(e){return t.Transport.nextSubdivision(e())}},t.Time.prototype._unaryExpressions.now={regexp:/^\+/,method:function(t){return this._plusNow=!0,t()}},t.Time.prototype.quantize=function(t,e){return e=this.defaultArg(e,1),this._expr=function(t,e,i){return t=t(),e=e.toSeconds(),t+(Math.round(t/e)*e-t)*i}.bind(this,this._expr,new this.constructor(t),e),this},t.Time.prototype.addNow=function(){return this._plusNow=!0,this},t.Time.prototype._defaultExpr=function(){return this._plusNow=!0,this._noOp},t.Time.prototype.copy=function(e){return t.TimeBase.prototype.copy.call(this,e),this._plusNow=e._plusNow,this},t.Time.prototype.toNotation=function(){var t=this.toSeconds(),e=["1m","2n","4n","8n","16n","32n","64n","128n"],i=this._toNotationHelper(t,e),s=["1m","2n","2t","4n","4t","8n","8t","16n","16t","32n","32t","64n","64t","128n"],n=this._toNotationHelper(t,s);return n.split("+").length<i.split("+").length?n:i},t.Time.prototype._toNotationHelper=function(t,e){for(var i=this._notationToUnits(e[e.length-1]),s="",n=0;n<e.length;n++){var o=this._notationToUnits(e[n]),r=t/o;if(1-r%1<1e-6&&(r+=1e-6),(r=Math.floor(r))>0){if(s+=1===r?e[n]:r.toString()+"*"+e[n],(t-=r*o)<i)break;s+=" + "}}return""===s&&(s="0"),s},t.Time.prototype._notationToUnits=function(t){for(var e=this._primaryExpressions,i=[e.n,e.t,e.m],s=0;s<i.length;s++){var n=i[s],o=t.match(n.regexp);if(o)return n.method.call(this,o[1])}},t.Time.prototype.toBarsBeatsSixteenths=function(){var t=this._beatsToUnits(1),e=this.toSeconds()/t,i=Math.floor(e/this._timeSignature()),s=e%1*4;return e=Math.floor(e)%this._timeSignature(),s=s.toString(),s.length>3&&(s=parseFloat(s).toFixed(3)),[i,e,s].join(":")},t.Time.prototype.toTicks=function(){var e=this._beatsToUnits(1),i=this.valueOf()/e;return Math.floor(i*t.Transport.PPQ)},t.Time.prototype.toSamples=function(){return this.toSeconds()*this.context.sampleRate},t.Time.prototype.toFrequency=function(){return 1/this.toSeconds()},t.Time.prototype.toSeconds=function(){return this.valueOf()},t.Time.prototype.toMilliseconds=function(){return 1e3*this.toSeconds()},t.Time.prototype.valueOf=function(){return this._expr()+(this._plusNow?this.now():0)},t.Time}),t(function(t){t.Frequency=function(e,i){if(!(this instanceof t.Frequency))return new t.Frequency(e,i);t.TimeBase.call(this,e,i)},t.extend(t.Frequency,t.TimeBase),t.Frequency.prototype._primaryExpressions=Object.create(t.TimeBase.prototype._primaryExpressions),t.Frequency.prototype._primaryExpressions.midi={regexp:/^(\d+(?:\.\d+)?midi)/,method:function(t){return this.midiToFrequency(t)}},t.Frequency.prototype._primaryExpressions.note={regexp:/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i,method:function(t,i){var s=e[t.toLowerCase()],n=s+12*(parseInt(i)+1);return this.midiToFrequency(n)}},t.Frequency.prototype._primaryExpressions.tr={regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method:function(t,e,i){var s=1;return t&&"0"!==t&&(s*=this._beatsToUnits(this._timeSignature()*parseFloat(t))),e&&"0"!==e&&(s*=this._beatsToUnits(parseFloat(e))),i&&"0"!==i&&(s*=this._beatsToUnits(parseFloat(i)/4)),s}},t.Frequency.prototype.transpose=function(t){return this._expr=function(t,e){return t()*this.intervalToFrequencyRatio(e)}.bind(this,this._expr,t),this},t.Frequency.prototype.harmonize=function(t){return this._expr=function(t,e){for(var i=t(),s=[],n=0;n<e.length;n++)s[n]=i*this.intervalToFrequencyRatio(e[n]);return s}.bind(this,this._expr,t),this},t.Frequency.prototype.toMidi=function(){return this.frequencyToMidi(this.valueOf())},t.Frequency.prototype.toNote=function(){var e=this.valueOf(),s=Math.log(e/t.Frequency.A4)/Math.LN2,n=Math.round(12*s)+57,o=Math.floor(n/12);return o<0&&(n+=-12*o),i[n%12]+o.toString()},t.Frequency.prototype.toSeconds=function(){return 1/this.valueOf()},t.Frequency.prototype.toFrequency=function(){return this.valueOf()},t.Frequency.prototype.toTicks=function(){var e=this._beatsToUnits(1),i=this.valueOf()/e;return Math.floor(i*t.Transport.PPQ)},t.Frequency.prototype._frequencyToUnits=function(t){return t},t.Frequency.prototype._ticksToUnits=function(e){return 1/(60*e/(t.Transport.bpm.value*t.Transport.PPQ))},t.Frequency.prototype._beatsToUnits=function(e){return 1/t.TimeBase.prototype._beatsToUnits.call(this,e)},t.Frequency.prototype._secondsToUnits=function(t){return 1/t},t.Frequency.prototype._defaultUnits="hz";var e={cbb:-2,cb:-1,c:0,"c#":1,cx:2,dbb:0,db:1,d:2,"d#":3,dx:4,ebb:2,eb:3,e:4,"e#":5,ex:6,fbb:3,fb:4,f:5,"f#":6,fx:7,gbb:5,gb:6,g:7,"g#":8,gx:9,abb:7,ab:8,a:9,"a#":10,ax:11,bbb:9,bb:10,b:11,"b#":12,bx:13},i=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];return t.Frequency.A4=440,t.Frequency.prototype.midiToFrequency=function(e){return t.Frequency.A4*Math.pow(2,(e-69)/12)},t.Frequency.prototype.frequencyToMidi=function(e){return 69+12*Math.log(e/t.Frequency.A4)/Math.LN2},t.Frequency}),t(function(t){return t.TransportTime=function(e,i){if(!(this instanceof t.TransportTime))return new t.TransportTime(e,i);t.Time.call(this,e,i)},t.extend(t.TransportTime,t.Time),t.TransportTime.prototype._unaryExpressions=Object.create(t.Time.prototype._unaryExpressions),t.TransportTime.prototype._unaryExpressions.quantize={regexp:/^@/,method:function(e){var i=this._secondsToTicks(e()),s=Math.ceil(t.Transport.ticks/i);return this._ticksToUnits(s*i)}},t.TransportTime.prototype._secondsToTicks=function(e){var i=this._beatsToUnits(1),s=e/i;return Math.round(s*t.Transport.PPQ)},t.TransportTime.prototype.valueOf=function(){return this._secondsToTicks(this._expr())+(this._plusNow?t.Transport.ticks:0)},t.TransportTime.prototype.toTicks=function(){return this.valueOf()},t.TransportTime.prototype.toSeconds=function(){return this._expr()+(this._plusNow?t.Transport.seconds:0)},t.TransportTime.prototype.toFrequency=function(){return 1/this.toSeconds()},t.TransportTime}),t(function(t){return t.Emitter=function(){this._events={}},t.extend(t.Emitter),t.Emitter.prototype.on=function(t,e){for(var i=t.split(/\W+/),s=0;s<i.length;s++){var n=i[s];this._events.hasOwnProperty(n)||(this._events[n]=[]),this._events[n].push(e)}return this},t.Emitter.prototype.off=function(e,i){for(var s=e.split(/\W+/),n=0;n<s.length;n++)if(e=s[n],this._events.hasOwnProperty(e))if(t.prototype.isUndef(i))this._events[e]=[];else for(var o=this._events[e],r=0;r<o.length;r++)o[r]===i&&o.splice(r,1);return this},t.Emitter.prototype.emit=function(t){if(this._events){var e=Array.apply(null,arguments).slice(1);if(this._events.hasOwnProperty(t))for(var i=this._events[t],s=0,n=i.length;s<n;s++)i[s].apply(this,e)}return this},t.Emitter.mixin=function(e){var i=["on","off","emit"];e._events={};for(var s=0;s<i.length;s++){var n=i[s],o=t.Emitter.prototype[n];e[n]=o}},t.Emitter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._events=null,this},t.Emitter}),t(function(t){return!window.hasOwnProperty("AudioContext")&&window.hasOwnProperty("webkitAudioContext")&&(window.AudioContext=window.webkitAudioContext),t.Context=function(e){t.Emitter.call(this),e||(e=new window.AudioContext),this._context=e;for(var i in this._context)this._defineProperty(this._context,i);this._latencyHint="interactive",this._lookAhead=.1,this._updateInterval=this._lookAhead/3,this._computedUpdateInterval=0,this._worker=this._createWorker(),this._constants={}},t.extend(t.Context,t.Emitter),t.Emitter.mixin(t.Context),t.Context.prototype._defineProperty=function(t,e){this.isUndef(this[e])&&Object.defineProperty(this,e,{get:function(){return"function"==typeof t[e]?t[e].bind(t):t[e]},set:function(i){t[e]=i}})},t.Context.prototype.now=function(){return this._context.currentTime},t.Context.prototype._createWorker=function(){window.URL=window.URL||window.webkitURL;var t=new Blob(["var timeoutTime = "+(1e3*this._updateInterval).toFixed(1)+";self.onmessage = function(msg){\ttimeoutTime = parseInt(msg.data);};function tick(){\tsetTimeout(tick, timeoutTime);\tself.postMessage('tick');}tick();"]),e=URL.createObjectURL(t),i=new Worker(e);return i.addEventListener("message",function(){this.emit("tick")}.bind(this)),i.addEventListener("message",function(){var t=this.now();if(this.isNumber(this._lastUpdate)){var e=t-this._lastUpdate;this._computedUpdateInterval=Math.max(e,.97*this._computedUpdateInterval)}this._lastUpdate=t}.bind(this)),i},t.Context.prototype.getConstant=function(t){if(this._constants[t])return this._constants[t];for(var e=this._context.createBuffer(1,128,this._context.sampleRate),i=e.getChannelData(0),s=0;s<i.length;s++)i[s]=t;var n=this._context.createBufferSource();return n.channelCount=1,n.channelCountMode="explicit",n.buffer=e,n.loop=!0,n.start(0),this._constants[t]=n,n},Object.defineProperty(t.Context.prototype,"lag",{get:function(){var t=this._computedUpdateInterval-this._updateInterval;return t=Math.max(t,0)}}),Object.defineProperty(t.Context.prototype,"lookAhead",{get:function(){return this._lookAhead},set:function(t){this._lookAhead=t}}),Object.defineProperty(t.Context.prototype,"updateInterval",{get:function(){return this._updateInterval},set:function(e){this._updateInterval=Math.max(e,t.prototype.blockTime),this._worker.postMessage(Math.max(1e3*e,1))}}),Object.defineProperty(t.Context.prototype,"latencyHint",{get:function(){return this._latencyHint},set:function(t){var e=t;if(this._latencyHint=t,this.isString(t))switch(t){case"interactive":e=.1,this._context.latencyHint=t;break;case"playback":e=.8,this._context.latencyHint=t;break;case"balanced":e=.25,this._context.latencyHint=t;break;case"fastest":e=.01}this.lookAhead=e,this.updateInterval=e/3}}),t.supported?(!function(){function e(e,i,n){if(e.input)Array.isArray(e.input)?(t.prototype.isUndef(n)&&(n=0),this.connect(e.input[n])):this.connect(e.input,i,n);else try{e instanceof AudioNode?s.call(this,e,i,n):s.call(this,e,i)}catch(t){throw new Error("error connecting to node: "+e+"\n"+t)}}function i(e,i,s){if(e&&e.input&&Array.isArray(e.input))t.prototype.isUndef(s)&&(s=0),this.disconnect(e.input[s],i,s);else if(e&&e.input)this.disconnect(e.input,i,s);else try{n.apply(this,arguments)}catch(t){throw new Error("error disconnecting node: "+e+"\n"+t)}}var s=AudioNode.prototype.connect,n=AudioNode.prototype.disconnect;AudioNode.prototype.connect!==e&&(AudioNode.prototype.connect=e,AudioNode.prototype.disconnect=i)}(),t.context=new t.Context):console.warn("This browser does not support Tone.js"),t.Context}),t(function(t){return t.Type={Default:"number",Time:"time",Frequency:"frequency",TransportTime:"transportTime",Ticks:"ticks",NormalRange:"normalRange",AudioRange:"audioRange",Decibels:"db",Interval:"interval",BPM:"bpm",Positive:"positive",Cents:"cents",Degrees:"degrees",MIDI:"midi",BarsBeatsSixteenths:"barsBeatsSixteenths",Samples:"samples",Hertz:"hertz",Note:"note",Milliseconds:"milliseconds",Seconds:"seconds",Notation:"notation"},t.prototype.toSeconds=function(e){return this.isNumber(e)?e:this.isUndef(e)?this.now():this.isString(e)?new t.Time(e).toSeconds():e instanceof t.TimeBase?e.toSeconds():void 0},t.prototype.toFrequency=function(e){return this.isNumber(e)?e:this.isString(e)||this.isUndef(e)?new t.Frequency(e).valueOf():e instanceof t.TimeBase?e.toFrequency():void 0},t.prototype.toTicks=function(e){return this.isNumber(e)||this.isString(e)?new t.TransportTime(e).toTicks():this.isUndef(e)?t.Transport.ticks:e instanceof t.TimeBase?e.toTicks():void 0},t}),t(function(t){return t.Param=function(){var e=this.optionsObject(arguments,["param","units","convert"],t.Param.defaults);this._param=this.input=e.param,this.units=e.units,this.convert=e.convert,this.overridden=!1,this._lfo=null,this.isObject(e.lfo)?this.value=e.lfo:this.isUndef(e.value)||(this.value=e.value)},t.extend(t.Param),t.Param.defaults={units:t.Type.Default,convert:!0,param:void 0},Object.defineProperty(t.Param.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(e){if(this.isObject(e)){if(this.isUndef(t.LFO))throw new Error("Include 'Tone.LFO' to use an LFO as a Param value.");this._lfo&&this._lfo.dispose(),this._lfo=new t.LFO(e).start(),this._lfo.connect(this.input)}else{var i=this._fromUnits(e);this._param.cancelScheduledValues(0),this._param.value=i}}}),t.Param.prototype._fromUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Time:return this.toSeconds(e);case t.Type.Frequency:return this.toFrequency(e);case t.Type.Decibels:return this.dbToGain(e);case t.Type.NormalRange:return Math.min(Math.max(e,0),1);case t.Type.AudioRange:return Math.min(Math.max(e,-1),1);case t.Type.Positive:return Math.max(e,0);default:return e}},t.Param.prototype._toUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Decibels:return this.gainToDb(e);default:return e}},t.Param.prototype._minOutput=1e-5,t.Param.prototype.setValueAtTime=function(t,e){return t=this._fromUnits(t),e=this.toSeconds(e),e<=this.now()+this.blockTime?this._param.value=t:this._param.setValueAtTime(t,e),this},t.Param.prototype.setRampPoint=function(t){t=this.defaultArg(t,this.now());var e=this._param.value;return 0===e&&(e=this._minOutput),this._param.setValueAtTime(e,t),this},t.Param.prototype.linearRampToValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.linearRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValueAtTime=function(t,e){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),this._param.exponentialRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValue=function(t,e,i){return i=this.toSeconds(i),this.setRampPoint(i),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.linearRampToValue=function(t,e,i){return i=this.toSeconds(i),this.setRampPoint(i),this.linearRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.setTargetAtTime=function(t,e,i){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),i=Math.max(this._minOutput,i),this._param.setTargetAtTime(t,this.toSeconds(e),i),this},t.Param.prototype.setValueCurveAtTime=function(t,e,i){for(var s=0;s<t.length;s++)t[s]=this._fromUnits(t[s]);return this._param.setValueCurveAtTime(t,this.toSeconds(e),this.toSeconds(i)),this},t.Param.prototype.cancelScheduledValues=function(t){return this._param.cancelScheduledValues(this.toSeconds(t)),this},t.Param.prototype.rampTo=function(e,i,s){return i=this.defaultArg(i,0),this.units===t.Type.Frequency||this.units===t.Type.BPM||this.units===t.Type.Decibels?this.exponentialRampToValue(e,i,s):this.linearRampToValue(e,i,s),this},Object.defineProperty(t.Param.prototype,"lfo",{get:function(){return this._lfo}}),t.Param.prototype.dispose=function(){return t.prototype.dispose.call(this),this._param=null,this._lfo&&(this._lfo.dispose(),this._lfo=null),this},t.Param}),t(function(t){return window.GainNode&&!AudioContext.prototype.createGain&&(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),t.Gain=function(){var e=this.optionsObject(arguments,["gain","units"],t.Gain.defaults);this.input=this.output=this._gainNode=this.context.createGain(),this.gain=new t.Param({param:this._gainNode.gain,units:e.units,value:e.gain,convert:e.convert}),this._readOnly("gain")},t.extend(t.Gain),t.Gain.defaults={gain:1,convert:!0},t.Gain.prototype.dispose=function(){t.Param.prototype.dispose.call(this),this._gainNode.disconnect(),this._gainNode=null,this._writable("gain"),this.gain.dispose(),this.gain=null},t.prototype.createInsOuts=function(e,i){1===e?this.input=new t.Gain:e>1&&(this.input=new Array(e)),1===i?this.output=new t.Gain:i>1&&(this.output=new Array(e))},t.Gain}),t(function(t){return t.Signal=function(){var e=this.optionsObject(arguments,["value","units"],t.Signal.defaults);this.output=this._gain=this.context.createGain(),e.param=this._gain.gain,t.Param.call(this,e),this.input=this._param=this._gain.gain,this.context.getConstant(1).chain(this._gain)},t.extend(t.Signal,t.Param),t.Signal.defaults={value:0,units:t.Type.Default,convert:!0},t.Signal.prototype.connect=t.SignalBase.prototype.connect,t.Signal.prototype.dispose=function(){return t.Param.prototype.dispose.call(this),this._param=null,this._gain.disconnect(),this._gain=null,this},t.Signal}),t(function(t){return t.Timeline=function(){var e=this.optionsObject(arguments,["memory"],t.Timeline.defaults);this._timeline=[],this._toRemove=[],this._iterating=!1,this.memory=e.memory},t.extend(t.Timeline),t.Timeline.defaults={memory:1/0},Object.defineProperty(t.Timeline.prototype,"length",{get:function(){return this._timeline.length}}),t.Timeline.prototype.add=function(t){if(this.isUndef(t.time))throw new Error("Tone.Timeline: events must have a time attribute");if(this._timeline.length){var e=this._search(t.time);this._timeline.splice(e+1,0,t)}else this._timeline.push(t);if(this.length>this.memory){var i=this.length-this.memory;this._timeline.splice(0,i)}return this},t.Timeline.prototype.remove=function(t){if(this._iterating)this._toRemove.push(t);else{var e=this._timeline.indexOf(t);-1!==e&&this._timeline.splice(e,1)}return this},t.Timeline.prototype.get=function(t){var e=this._search(t);return-1!==e?this._timeline[e]:null},t.Timeline.prototype.peek=function(){return this._timeline[0]},t.Timeline.prototype.shift=function(){return this._timeline.shift()},t.Timeline.prototype.getAfter=function(t){var e=this._search(t);return e+1<this._timeline.length?this._timeline[e+1]:null},t.Timeline.prototype.getBefore=function(t){var e=this._timeline.length;if(e>0&&this._timeline[e-1].time<t)return this._timeline[e-1];var i=this._search(t);return i-1>=0?this._timeline[i-1]:null},t.Timeline.prototype.cancel=function(t){if(this._timeline.length>1){var e=this._search(t);if(e>=0)if(this._timeline[e].time===t){for(var i=e;i>=0&&this._timeline[i].time===t;i--)e=i;this._timeline=this._timeline.slice(0,e)}else this._timeline=this._timeline.slice(0,e+1);else this._timeline=[]}else 1===this._timeline.length&&this._timeline[0].time>=t&&(this._timeline=[]);return this},t.Timeline.prototype.cancelBefore=function(t){if(this._timeline.length){var e=this._search(t);e>=0&&(this._timeline=this._timeline.slice(e+1))}return this},t.Timeline.prototype._search=function(t){var e=0,i=this._timeline.length,s=i;if(i>0&&this._timeline[i-1].time<=t)return i-1;for(;e<s;){var n=Math.floor(e+(s-e)/2),o=this._timeline[n],r=this._timeline[n+1];if(o.time===t){for(var a=n;a<this._timeline.length;a++){this._timeline[a].time===t&&(n=a)}return n}if(o.time<t&&r.time>t)return n;o.time>t?s=n:o.time<t&&(e=n+1)}return-1},t.Timeline.prototype._iterate=function(t,e,i){this._iterating=!0,e=this.defaultArg(e,0),i=this.defaultArg(i,this._timeline.length-1);for(var s=e;s<=i;s++)t(this._timeline[s]);if(this._iterating=!1,this._toRemove.length>0){for(var n=0;n<this._toRemove.length;n++){var o=this._timeline.indexOf(this._toRemove[n]);-1!==o&&this._timeline.splice(o,1)}this._toRemove=[]}},t.Timeline.prototype.forEach=function(t){return this._iterate(t),this},t.Timeline.prototype.forEachBefore=function(t,e){var i=this._search(t);return-1!==i&&this._iterate(e,0,i),this},t.Timeline.prototype.forEachAfter=function(t,e){var i=this._search(t);return this._iterate(e,i+1),this},t.Timeline.prototype.forEachFrom=function(t,e){for(var i=this._search(t);i>=0&&this._timeline[i].time>=t;)i--;return this._iterate(e,i+1),this},t.Timeline.prototype.forEachAtTime=function(t,e){var i=this._search(t);return-1!==i&&this._iterate(function(i){i.time===t&&e(i)},0,i),this},t.Timeline.prototype.dispose=function(){t.prototype.dispose.call(this),this._timeline=null,this._toRemove=null},t.Timeline}),t(function(t){return t.TimelineSignal=function(){var e=this.optionsObject(arguments,["value","units"],t.Signal.defaults);this._events=new t.Timeline(10),t.Signal.apply(this,e),e.param=this._param,t.Param.call(this,e),this._initial=this._fromUnits(this._param.value)},t.extend(t.TimelineSignal,t.Param),t.TimelineSignal.Type={Linear:"linear",Exponential:"exponential",Target:"target",Curve:"curve",Set:"set"},Object.defineProperty(t.TimelineSignal.prototype,"value",{get:function(){var t=this.now(),e=this.getValueAtTime(t);return this._toUnits(e)},set:function(t){var e=this._fromUnits(t);this._initial=e,this.cancelScheduledValues(),this._param.value=e}}),t.TimelineSignal.prototype.setValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.add({type:t.TimelineSignal.Type.Set,value:e,time:i}),this._param.setValueAtTime(e,i),this},t.TimelineSignal.prototype.linearRampToValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.add({type:t.TimelineSignal.Type.Linear,value:e,time:i}),this._param.linearRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.exponentialRampToValueAtTime=function(e,i){i=this.toSeconds(i);var s=this._searchBefore(i);s&&0===s.value&&this.setValueAtTime(this._minOutput,s.time),e=this._fromUnits(e);var n=Math.max(e,this._minOutput);return this._events.add({type:t.TimelineSignal.Type.Exponential,value:n,time:i}),e<this._minOutput?(this._param.exponentialRampToValueAtTime(this._minOutput,i-this.sampleTime),this.setValueAtTime(0,i)):this._param.exponentialRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.setTargetAtTime=function(e,i,s){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),s=Math.max(this._minOutput,s),i=this.toSeconds(i),this._events.add({type:t.TimelineSignal.Type.Target,value:e,time:i,constant:s}),this._param.setTargetAtTime(e,i,s),this},t.TimelineSignal.prototype.setValueCurveAtTime=function(e,i,s,n){n=this.defaultArg(n,1);for(var o=new Array(e.length),r=0;r<o.length;r++)o[r]=this._fromUnits(e[r])*n;i=this.toSeconds(i),s=this.toSeconds(s),this._events.add({type:t.TimelineSignal.Type.Curve,value:o,time:i,duration:s}),this._param.setValueAtTime(o[0],i);for(var a=1;a<o.length;a++){var h=i+a/(o.length-1)*s;this._param.linearRampToValueAtTime(o[a],h)}return this},t.TimelineSignal.prototype.cancelScheduledValues=function(t){return t=this.toSeconds(t),this._events.cancel(t),this._param.cancelScheduledValues(t),this},t.TimelineSignal.prototype.setRampPoint=function(e){e=this.toSeconds(e);var i=this._toUnits(this.getValueAtTime(e)),s=this._searchBefore(e);if(s&&s.time===e)this.cancelScheduledValues(e+this.sampleTime);else if(s&&s.type===t.TimelineSignal.Type.Curve&&s.time+s.duration>e)this.cancelScheduledValues(e),this.linearRampToValueAtTime(i,e);else{var n=this._searchAfter(e);n&&(this.cancelScheduledValues(e),n.type===t.TimelineSignal.Type.Linear?this.linearRampToValueAtTime(i,e):n.type===t.TimelineSignal.Type.Exponential&&this.exponentialRampToValueAtTime(i,e)),this.setValueAtTime(i,e)}return this},t.TimelineSignal.prototype.linearRampToValueBetween=function(t,e,i){return this.setRampPoint(e),this.linearRampToValueAtTime(t,i),this},t.TimelineSignal.prototype.exponentialRampToValueBetween=function(t,e,i){return this.setRampPoint(e),this.exponentialRampToValueAtTime(t,i),this},t.TimelineSignal.prototype._searchBefore=function(t){return this._events.get(t)},t.TimelineSignal.prototype._searchAfter=function(t){return this._events.getAfter(t)},t.TimelineSignal.prototype.getValueAtTime=function(e){e=this.toSeconds(e);var i=this._searchAfter(e),s=this._searchBefore(e),n=this._initial;if(null===s)n=this._initial;else if(s.type===t.TimelineSignal.Type.Target){var o,r=this._events.getBefore(s.time);o=null===r?this._initial:r.value,n=this._exponentialApproach(s.time,o,s.value,s.constant,e)}else n=s.type===t.TimelineSignal.Type.Curve?this._curveInterpolate(s.time,s.value,s.duration,e):null===i?s.value:i.type===t.TimelineSignal.Type.Linear?this._linearInterpolate(s.time,s.value,i.time,i.value,e):i.type===t.TimelineSignal.Type.Exponential?this._exponentialInterpolate(s.time,s.value,i.time,i.value,e):s.value;return n},t.TimelineSignal.prototype.connect=t.SignalBase.prototype.connect,t.TimelineSignal.prototype._exponentialApproach=function(t,e,i,s,n){return i+(e-i)*Math.exp(-(n-t)/s)},t.TimelineSignal.prototype._linearInterpolate=function(t,e,i,s,n){return e+(n-t)/(i-t)*(s-e)},t.TimelineSignal.prototype._exponentialInterpolate=function(t,e,i,s,n){return(e=Math.max(this._minOutput,e))*Math.pow(s/e,(n-t)/(i-t))},t.TimelineSignal.prototype._curveInterpolate=function(t,e,i,s){var n=e.length;if(s>=t+i)return e[n-1];if(s<=t)return e[0];var o=(s-t)/i,r=Math.floor((n-1)*o),a=Math.ceil((n-1)*o),h=e[r],l=e[a];return a===r?h:this._linearInterpolate(r,h,a,l,o*(n-1))},t.TimelineSignal.prototype.dispose=function(){t.Signal.prototype.dispose.call(this),t.Param.prototype.dispose.call(this),this._events.dispose(),this._events=null},t.TimelineSignal}),t(function(t){return t.Pow=function(e){this._exp=this.defaultArg(e,1),this._expScaler=this.input=this.output=new t.WaveShaper(this._expFunc(this._exp),8192)},t.extend(t.Pow,t.SignalBase),Object.defineProperty(t.Pow.prototype,"value",{get:function(){return this._exp},set:function(t){this._exp=t,this._expScaler.setMap(this._expFunc(this._exp))}}),t.Pow.prototype._expFunc=function(t){return function(e){return Math.pow(Math.abs(e),t)}},t.Pow.prototype.dispose=function(){return t.prototype.dispose.call(this),this._expScaler.dispose(),this._expScaler=null,this},t.Pow}),t(function(t){return t.Envelope=function(){var e=this.optionsObject(arguments,["attack","decay","sustain","release"],t.Envelope.defaults);this.attack=e.attack,this.decay=e.decay,this.sustain=e.sustain,this.release=e.release,this._attackCurve="linear",this._releaseCurve="exponential",this._sig=this.output=new t.TimelineSignal,this._sig.setValueAtTime(0,0),this.attackCurve=e.attackCurve,this.releaseCurve=e.releaseCurve},t.extend(t.Envelope),t.Envelope.defaults={attack:.01,decay:.1,sustain:.5,release:1,attackCurve:"linear",releaseCurve:"exponential"},Object.defineProperty(t.Envelope.prototype,"value",{get:function(){return this.getValueAtTime(this.now())}}),Object.defineProperty(t.Envelope.prototype,"attackCurve",{get:function(){if(this.isString(this._attackCurve))return this._attackCurve;if(this.isArray(this._attackCurve)){for(var e in t.Envelope.Type)if(t.Envelope.Type[e].In===this._attackCurve)return e;return this._attackCurve}},set:function(e){if(t.Envelope.Type.hasOwnProperty(e)){var i=t.Envelope.Type[e];this.isObject(i)?this._attackCurve=i.In:this._attackCurve=i}else{if(!this.isArray(e))throw new Error("Tone.Envelope: invalid curve: "+e);this._attackCurve=e}}}),Object.defineProperty(t.Envelope.prototype,"releaseCurve",{get:function(){if(this.isString(this._releaseCurve))return this._releaseCurve;if(this.isArray(this._releaseCurve)){for(var e in t.Envelope.Type)if(t.Envelope.Type[e].Out===this._releaseCurve)return e;return this._releaseCurve}},set:function(e){if(t.Envelope.Type.hasOwnProperty(e)){var i=t.Envelope.Type[e];this.isObject(i)?this._releaseCurve=i.Out:this._releaseCurve=i}else{if(!this.isArray(e))throw new Error("Tone.Envelope: invalid curve: "+e);this._releaseCurve=e}}}),t.Envelope.prototype.triggerAttack=function(t,e){t=this.toSeconds(t);var i=this.toSeconds(this.attack),s=i,n=this.toSeconds(this.decay);e=this.defaultArg(e,1);var o=this.getValueAtTime(t);if(o>0){s=(1-o)/(1/s)}if("linear"===this._attackCurve)this._sig.linearRampToValue(e,s,t);else if("exponential"===this._attackCurve)this._sig.exponentialRampToValue(e,s,t);else if(s>0){this._sig.setRampPoint(t);var r=this._attackCurve;if(s<i){var a=1-s/i,h=Math.floor(a*this._attackCurve.length);r=this._attackCurve.slice(h),r[0]=o}this._sig.setValueCurveAtTime(r,t,s,e)}return this._sig.exponentialRampToValue(e*this.sustain,n,s+t),this},t.Envelope.prototype.triggerRelease=function(t){t=this.toSeconds(t);var e=this.getValueAtTime(t);if(e>0){var i=this.toSeconds(this.release);if("linear"===this._releaseCurve)this._sig.linearRampToValue(0,i,t);else if("exponential"===this._releaseCurve)this._sig.exponentialRampToValue(0,i,t);else{var s=this._releaseCurve;this.isArray(s)&&(this._sig.setRampPoint(t),this._sig.setValueCurveAtTime(s,t,i,e))}}return this},t.Envelope.prototype.getValueAtTime=function(t){return this._sig.getValueAtTime(t)},t.Envelope.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),this.triggerAttack(e,i),this.triggerRelease(e+this.toSeconds(t)),this},t.Envelope.prototype.cancel=function(t){return this._sig.cancelScheduledValues(t),this},t.Envelope.prototype.connect=t.Signal.prototype.connect,function(){function e(t){for(var e=new Array(t.length),i=0;i<t.length;i++)e[i]=1-t[i];return e}var i,s,n=[];for(i=0;i<128;i++)n[i]=Math.sin(i/127*(Math.PI/2));var o=[];for(i=0;i<127;i++){s=i/127;var r=Math.sin(s*(2*Math.PI)*6.4-Math.PI/2)+1;o[i]=r/10+.83*s}o[127]=1;var a=[];for(i=0;i<128;i++)a[i]=Math.ceil(i/127*5)/5;var h=[];for(i=0;i<128;i++)s=i/127,h[i]=.5*(1-Math.cos(Math.PI*s));var l=[];for(i=0;i<128;i++){s=i/127;var c=4*Math.pow(s,3)+.2,u=Math.cos(c*Math.PI*2*s);l[i]=Math.abs(u*(1-s))}t.Envelope.Type={linear:"linear",exponential:"exponential",bounce:{In:e(l),Out:l},cosine:{In:n,Out:function(t){return t.slice(0).reverse()}(n)},step:{In:a,Out:e(a)},ripple:{In:o,Out:e(o)},sine:{In:h,Out:e(h)}}}(),t.Envelope.prototype.dispose=function(){return t.prototype.dispose.call(this),this._sig.dispose(),this._sig=null,this._attackCurve=null,this._releaseCurve=null,this},t.Envelope}),t(function(t){return t.AmplitudeEnvelope=function(){t.Envelope.apply(this,arguments),this.input=this.output=new t.Gain,this._sig.connect(this.output.gain)},t.extend(t.AmplitudeEnvelope,t.Envelope),t.AmplitudeEnvelope.prototype.dispose=function(){return this.input.dispose(),this.input=null,t.Envelope.prototype.dispose.call(this),this},t.AmplitudeEnvelope}),t(function(t){return window.AnalyserNode&&!AnalyserNode.prototype.getFloatTimeDomainData&&(AnalyserNode.prototype.getFloatTimeDomainData=function(t){var e=new Uint8Array(t.length);this.getByteTimeDomainData(e);for(var i=0;i<e.length;i++)t[i]=(e[i]-128)/128}),t.Analyser=function(){var e=this.optionsObject(arguments,["type","size"],t.Analyser.defaults);this._analyser=this.input=this.output=this.context.createAnalyser(),this._type=e.type,this._returnType=e.returnType,this._buffer=null,this.size=e.size,this.type=e.type,this.returnType=e.returnType,this.minDecibels=e.minDecibels,this.maxDecibels=e.maxDecibels},t.extend(t.Analyser),t.Analyser.defaults={size:1024,returnType:"byte",type:"fft",smoothing:.8,maxDecibels:-30,minDecibels:-100},t.Analyser.Type={Waveform:"waveform",FFT:"fft"},t.Analyser.ReturnType={Byte:"byte",Float:"float"},t.Analyser.prototype.analyse=function(){return this._type===t.Analyser.Type.FFT?this._returnType===t.Analyser.ReturnType.Byte?this._analyser.getByteFrequencyData(this._buffer):this._analyser.getFloatFrequencyData(this._buffer):this._type===t.Analyser.Type.Waveform&&(this._returnType===t.Analyser.ReturnType.Byte?this._analyser.getByteTimeDomainData(this._buffer):this._analyser.getFloatTimeDomainData(this._buffer)),this._buffer},Object.defineProperty(t.Analyser.prototype,"size",{get:function(){return this._analyser.frequencyBinCount},set:function(t){this._analyser.fftSize=2*t,this.type=this._type}}),Object.defineProperty(t.Analyser.prototype,"returnType",{get:function(){return this._returnType},set:function(e){if(e===t.Analyser.ReturnType.Byte)this._buffer=new Uint8Array(this._analyser.frequencyBinCount);else{if(e!==t.Analyser.ReturnType.Float)throw new TypeError("Tone.Analayser: invalid return type: "+e);this._buffer=new Float32Array(this._analyser.frequencyBinCount)}this._returnType=e}}),Object.defineProperty(t.Analyser.prototype,"type",{get:function(){return this._type},set:function(e){if(e!==t.Analyser.Type.Waveform&&e!==t.Analyser.Type.FFT)throw new TypeError("Tone.Analyser: invalid type: "+e);this._type=e}}),Object.defineProperty(t.Analyser.prototype,"smoothing",{get:function(){return this._analyser.smoothingTimeConstant},set:function(t){this._analyser.smoothingTimeConstant=t}}),Object.defineProperty(t.Analyser.prototype,"minDecibels",{get:function(){return this._analyser.minDecibels},set:function(t){this._analyser.minDecibels=t}}),Object.defineProperty(t.Analyser.prototype,"maxDecibels",{get:function(){return this._analyser.maxDecibels},set:function(t){this._analyser.maxDecibels=t}}),t.Analyser.prototype.dispose=function(){t.prototype.dispose.call(this),this._analyser.disconnect(),this._analyser=null,this._buffer=null},t.Analyser}),t(function(t){return t.Compressor=function(){var e=this.optionsObject(arguments,["threshold","ratio"],t.Compressor.defaults);this._compressor=this.input=this.output=this.context.createDynamicsCompressor(),this.threshold=new t.Param({param:this._compressor.threshold,units:t.Type.Decibels,convert:!1}),this.attack=new t.Param(this._compressor.attack,t.Type.Time),this.release=new t.Param(this._compressor.release,t.Type.Time),this.knee=new t.Param({param:this._compressor.knee,units:t.Type.Decibels,convert:!1}),this.ratio=new t.Param({param:this._compressor.ratio,convert:!1}),this._readOnly(["knee","release","attack","ratio","threshold"]),this.set(e)},t.extend(t.Compressor),t.Compressor.defaults={ratio:12,threshold:-24,release:.25,attack:.003,knee:30},t.Compressor.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["knee","release","attack","ratio","threshold"]),this._compressor.disconnect(),this._compressor=null,this.attack.dispose(),this.attack=null,this.release.dispose(),this.release=null,this.threshold.dispose(),this.threshold=null,this.ratio.dispose(),this.ratio=null,this.knee.dispose(),this.knee=null,this},t.Compressor}),t(function(t){return t.Add=function(e){this.createInsOuts(2,0),this._sum=this.input[0]=this.input[1]=this.output=new t.Gain,this._param=this.input[1]=new t.Signal(e),this._param.connect(this._sum)},t.extend(t.Add,t.Signal),t.Add.prototype.dispose=function(){return t.prototype.dispose.call(this),this._sum.dispose(),this._sum=null,this._param.dispose(),this._param=null,this},t.Add}),t(function(t){return t.Multiply=function(e){this.createInsOuts(2,0),this._mult=this.input[0]=this.output=new t.Gain,this._param=this.input[1]=this.output.gain,this._param.value=this.defaultArg(e,0)},t.extend(t.Multiply,t.Signal),t.Multiply.prototype.dispose=function(){return t.prototype.dispose.call(this),this._mult.dispose(),this._mult=null,this._param=null,this},t.Multiply}),t(function(t){return t.Negate=function(){this._multiply=this.input=this.output=new t.Multiply(-1)},t.extend(t.Negate,t.SignalBase),t.Negate.prototype.dispose=function(){return t.prototype.dispose.call(this),this._multiply.dispose(),this._multiply=null,this},t.Negate}),t(function(t){return t.Subtract=function(e){this.createInsOuts(2,0),this._sum=this.input[0]=this.output=new t.Gain,this._neg=new t.Negate,this._param=this.input[1]=new t.Signal(e),this._param.chain(this._neg,this._sum)},t.extend(t.Subtract,t.Signal),t.Subtract.prototype.dispose=function(){return t.prototype.dispose.call(this),this._neg.dispose(),this._neg=null,this._sum.disconnect(),this._sum=null,this._param.dispose(),this._param=null,this},t.Subtract}),t(function(t){return t.GreaterThanZero=function(){this._thresh=this.output=new t.WaveShaper(function(t){return t<=0?0:1},127),this._scale=this.input=new t.Multiply(1e4),this._scale.connect(this._thresh)},t.extend(t.GreaterThanZero,t.SignalBase),t.GreaterThanZero.prototype.dispose=function(){return t.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._thresh.dispose(),this._thresh=null,this},t.GreaterThanZero}),t(function(t){return t.GreaterThan=function(e){this.createInsOuts(2,0),this._param=this.input[0]=new t.Subtract(e),this.input[1]=this._param.input[1],this._gtz=this.output=new t.GreaterThanZero,this._param.connect(this._gtz)},t.extend(t.GreaterThan,t.Signal),t.GreaterThan.prototype.dispose=function(){return t.prototype.dispose.call(this),this._param.dispose(),this._param=null,this._gtz.dispose(),this._gtz=null,this},t.GreaterThan}),t(function(t){return t.Abs=function(){this._abs=this.input=this.output=new t.WaveShaper(function(t){return 0===t?0:Math.abs(t)},127)},t.extend(t.Abs,t.SignalBase),t.Abs.prototype.dispose=function(){return t.prototype.dispose.call(this),this._abs.dispose(),this._abs=null,this},t.Abs}),t(function(t){return t.Modulo=function(e){this.createInsOuts(1,0),this._shaper=new t.WaveShaper(Math.pow(2,16)),this._multiply=new t.Multiply,this._subtract=this.output=new t.Subtract,this._modSignal=new t.Signal(e),this.input.fan(this._shaper,this._subtract),this._modSignal.connect(this._multiply,0,0),this._shaper.connect(this._multiply,0,1),this._multiply.connect(this._subtract,0,1),this._setWaveShaper(e)},t.extend(t.Modulo,t.SignalBase),t.Modulo.prototype._setWaveShaper=function(t){this._shaper.setMap(function(e){return Math.floor((e+1e-4)/t)})},Object.defineProperty(t.Modulo.prototype,"value",{get:function(){return this._modSignal.value},set:function(t){this._modSignal.value=t,this._setWaveShaper(t)}}),t.Modulo.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this._multiply.dispose(),this._multiply=null,this._subtract.dispose(),this._subtract=null,this._modSignal.dispose(),this._modSignal=null,this},t.Modulo}),t(function(t){return t.AudioToGain=function(){this._norm=this.input=this.output=new t.WaveShaper(function(t){return(t+1)/2})},t.extend(t.AudioToGain,t.SignalBase),t.AudioToGain.prototype.dispose=function(){return t.prototype.dispose.call(this),this._norm.dispose(),this._norm=null,this},t.AudioToGain}),t(function(t){function e(t,e,i){var s=new t;return i._eval(e[0]).connect(s,0,0),i._eval(e[1]).connect(s,0,1),s}function i(t,e,i){var s=new t;return i._eval(e[0]).connect(s,0,0),s}function s(t){return t?parseFloat(t):void 0}function n(t){return t&&t.args?parseFloat(t.args):void 0}return t.Expr=function(){var t=this._replacements(Array.prototype.slice.call(arguments)),e=this._parseInputs(t);this._nodes=[],this.input=new Array(e);for(var i=0;i<e;i++)this.input[i]=this.context.createGain();var s,n=this._parseTree(t);try{s=this._eval(n)}catch(e){throw this._disposeNodes(),new Error("Tone.Expr: Could evaluate expression: "+t)}this.output=s},t.extend(t.Expr,t.SignalBase),t.Expr._Expressions={value:{signal:{regexp:/^\d+\.\d+|^\d+/,method:function(e){return new t.Signal(s(e))}},input:{regexp:/^\$\d/,method:function(t,e){return e.input[s(t.substr(1))]}}},glue:{"(":{regexp:/^\(/},")":{regexp:/^\)/},",":{regexp:/^,/}},func:{abs:{regexp:/^abs/,method:i.bind(this,t.Abs)},mod:{regexp:/^mod/,method:function(e,i){var s=n(e[1]),o=new t.Modulo(s);return i._eval(e[0]).connect(o),o}},pow:{regexp:/^pow/,method:function(e,i){var s=n(e[1]),o=new t.Pow(s);return i._eval(e[0]).connect(o),o}},a2g:{regexp:/^a2g/,method:function(e,i){var s=new t.AudioToGain;return i._eval(e[0]).connect(s),s}}},binary:{"+":{regexp:/^\+/,precedence:1,method:e.bind(this,t.Add)},"-":{regexp:/^\-/,precedence:1,method:function(s,n){return 1===s.length?i(t.Negate,s,n):e(t.Subtract,s,n)}},"*":{regexp:/^\*/,precedence:0,method:e.bind(this,t.Multiply)}},unary:{"-":{regexp:/^\-/,method:i.bind(this,t.Negate)},"!":{regexp:/^\!/,method:i.bind(this,t.NOT)}}},t.Expr.prototype._parseInputs=function(t){var e=t.match(/\$\d/g),i=0;if(null!==e)for(var s=0;s<e.length;s++){var n=parseInt(e[s].substr(1))+1;i=Math.max(i,n)}return i},t.Expr.prototype._replacements=function(t){for(var e=t.shift(),i=0;i<t.length;i++)e=e.replace(/\%/i,t[i]);return e},t.Expr.prototype._tokenize=function(e){for(var i=-1,s=[];e.length>0;){e=e.trim();var n=function(e){for(var i in t.Expr._Expressions){var s=t.Expr._Expressions[i];for(var n in s){var o=s[n],r=o.regexp,a=e.match(r);if(null!==a)return{type:i,value:a[0],method:o.method}}}throw new SyntaxError("Tone.Expr: Unexpected token "+e)}(e);s.push(n),e=e.substr(n.value.length)}return{next:function(){return s[++i]},peek:function(){return s[i+1]}}},t.Expr.prototype._parseTree=function(e){function i(t,e){return!c(t)&&"glue"===t.type&&t.value===e}function s(e,i,s){var n=t.Expr._Expressions[i];if(!c(e))for(var o in n){var r=n[o];if(r.regexp.test(e.value)){if(c(s))return!0;if(r.precedence===s)return!0}}return!1}function n(t){c(t)&&(t=5);var e;e=t<0?o():n(t-1);for(var i=l.peek();s(i,"binary",t);)i=l.next(),e={operator:i.value,method:i.method,args:[e,n(t-1)]},i=l.peek();return e}function o(){var t,e;return t=l.peek(),s(t,"unary")?(t=l.next(),e=o(),{operator:t.value,method:t.method,args:[e]}):r()}function r(){var t,e;if(t=l.peek(),c(t))throw new SyntaxError("Tone.Expr: Unexpected termination of expression");if("func"===t.type)return t=l.next(),a(t);if("value"===t.type)return t=l.next(),{method:t.method,args:t.value};if(i(t,"(")){if(l.next(),e=n(),t=l.next(),!i(t,")"))throw new SyntaxError("Expected )");return e}throw new SyntaxError("Tone.Expr: Parse error, cannot process token "+t.value)}function a(t){var e,s=[];if(e=l.next(),!i(e,"("))throw new SyntaxError('Tone.Expr: Expected ( in a function call "'+t.value+'"');if(e=l.peek(),i(e,")")||(s=h()),e=l.next(),!i(e,")"))throw new SyntaxError('Tone.Expr: Expected ) in a function call "'+t.value+'"');return{method:t.method,args:s,name:name}}function h(){for(var t,e,s=[];;){if(e=n(),c(e))break;if(s.push(e),t=l.peek(),!i(t,","))break;l.next()}return s}var l=this._tokenize(e),c=this.isUndef.bind(this);return n()},t.Expr.prototype._eval=function(t){if(!this.isUndef(t)){var e=t.method(t.args,this);return this._nodes.push(e),e}},t.Expr.prototype._disposeNodes=function(){for(var t=0;t<this._nodes.length;t++){var e=this._nodes[t];this.isFunction(e.dispose)?e.dispose():this.isFunction(e.disconnect)&&e.disconnect(),e=null,this._nodes[t]=null}this._nodes=null},t.Expr.prototype.dispose=function(){t.prototype.dispose.call(this),this._disposeNodes()},t.Expr}),t(function(t){return t.EqualPowerGain=function(){this._eqPower=this.input=this.output=new t.WaveShaper(function(t){return Math.abs(t)<.001?0:this.equalPowerScale(t)}.bind(this),4096)},t.extend(t.EqualPowerGain,t.SignalBase),t.EqualPowerGain.prototype.dispose=function(){return t.prototype.dispose.call(this),this._eqPower.dispose(),this._eqPower=null,this},t.EqualPowerGain}),t(function(t){return t.CrossFade=function(e){this.createInsOuts(2,1),this.a=this.input[0]=new t.Gain,this.b=this.input[1]=new t.Gain,this.fade=new t.Signal(this.defaultArg(e,.5),t.Type.NormalRange),this._equalPowerA=new t.EqualPowerGain,this._equalPowerB=new t.EqualPowerGain,this._invert=new t.Expr("1 - $0"),this.a.connect(this.output),this.b.connect(this.output),this.fade.chain(this._equalPowerB,this.b.gain),this.fade.chain(this._invert,this._equalPowerA,this.a.gain),this._readOnly("fade")},t.extend(t.CrossFade),t.CrossFade.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable("fade"),this._equalPowerA.dispose(),this._equalPowerA=null,this._equalPowerB.dispose(),this._equalPowerB=null,this.fade.dispose(),this.fade=null,this._invert.dispose(),this._invert=null,this.a.dispose(),this.a=null,this.b.dispose(),this.b=null,this},t.CrossFade}),t(function(t){return t.Filter=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,["frequency","type","rolloff"],t.Filter.defaults);this._filters=[],this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(0,t.Type.Cents),this.gain=new t.Signal({value:e.gain,convert:!1}),this.Q=new t.Signal(e.Q),this._type=e.type,this._rolloff=e.rolloff,this.rolloff=e.rolloff,this._readOnly(["detune","frequency","gain","Q"])},t.extend(t.Filter),t.Filter.defaults={type:"lowpass",frequency:350,rolloff:-12,Q:1,gain:0},Object.defineProperty(t.Filter.prototype,"type",{get:function(){return this._type},set:function(t){if(-1===["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t))throw new TypeError("Tone.Filter: invalid type "+t);this._type=t;for(var e=0;e<this._filters.length;e++)this._filters[e].type=t}}),Object.defineProperty(t.Filter.prototype,"rolloff",{get:function(){return this._rolloff},set:function(t){t=parseInt(t,10);var e=[-12,-24,-48,-96],i=e.indexOf(t);if(-1===i)throw new RangeError("Tone.Filter: rolloff can only be -12, -24, -48 or -96");i+=1,this._rolloff=t,this.input.disconnect();for(var s=0;s<this._filters.length;s++)this._filters[s].disconnect(),this._filters[s]=null;this._filters=new Array(i);for(var n=0;n<i;n++){var o=this.context.createBiquadFilter();o.type=this._type,this.frequency.connect(o.frequency),this.detune.connect(o.detune),this.Q.connect(o.Q),this.gain.connect(o.gain),this._filters[n]=o}var r=[this.input].concat(this._filters).concat([this.output]);this.connectSeries.apply(this,r)}}),t.Filter.prototype.dispose=function(){t.prototype.dispose.call(this);for(var e=0;e<this._filters.length;e++)this._filters[e].disconnect(),this._filters[e]=null;return this._filters=null,this._writable(["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.frequency=null,this.Q=null,this.detune.dispose(),this.detune=null,this.gain.dispose(),this.gain=null,this},t.Filter}),t(function(t){return t.MultibandSplit=function(){var e=this.optionsObject(arguments,["lowFrequency","highFrequency"],t.MultibandSplit.defaults);this.input=new t.Gain,this.output=new Array(3),this.low=this.output[0]=new t.Filter(0,"lowpass"),this._lowMidFilter=new t.Filter(0,"highpass"),this.mid=this.output[1]=new t.Filter(0,"lowpass"),this.high=this.output[2]=new t.Filter(0,"highpass"),this.lowFrequency=new t.Signal(e.lowFrequency,t.Type.Frequency),this.highFrequency=new t.Signal(e.highFrequency,t.Type.Frequency),this.Q=new t.Signal(e.Q),this.input.fan(this.low,this.high),this.input.chain(this._lowMidFilter,this.mid),this.lowFrequency.connect(this.low.frequency),this.lowFrequency.connect(this._lowMidFilter.frequency),this.highFrequency.connect(this.mid.frequency),this.highFrequency.connect(this.high.frequency),this.Q.connect(this.low.Q),this.Q.connect(this._lowMidFilter.Q),this.Q.connect(this.mid.Q),this.Q.connect(this.high.Q),this._readOnly(["high","mid","low","highFrequency","lowFrequency"])},t.extend(t.MultibandSplit),t.MultibandSplit.defaults={lowFrequency:400,highFrequency:2500,Q:1},t.MultibandSplit.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this.low=null,this._lowMidFilter.dispose(),this._lowMidFilter=null,this.mid.dispose(),this.mid=null,this.high.dispose(),this.high=null,this.lowFrequency.dispose(),this.lowFrequency=null,this.highFrequency.dispose(),this.highFrequency=null,this.Q.dispose(),this.Q=null,this},t.MultibandSplit}),t(function(t){return t.EQ3=function(){var e=this.optionsObject(arguments,["low","mid","high"],t.EQ3.defaults);this.output=new t.Gain,this._multibandSplit=this.input=new t.MultibandSplit({lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this._lowGain=new t.Gain(e.low,t.Type.Decibels),this._midGain=new t.Gain(e.mid,t.Type.Decibels),this._highGain=new t.Gain(e.high,t.Type.Decibels),this.low=this._lowGain.gain,this.mid=this._midGain.gain,this.high=this._highGain.gain,this.Q=this._multibandSplit.Q,this.lowFrequency=this._multibandSplit.lowFrequency,this.highFrequency=this._multibandSplit.highFrequency,this._multibandSplit.low.chain(this._lowGain,this.output),this._multibandSplit.mid.chain(this._midGain,this.output),this._multibandSplit.high.chain(this._highGain,this.output),this._readOnly(["low","mid","high","lowFrequency","highFrequency"])},t.extend(t.EQ3),t.EQ3.defaults={low:0,mid:0,high:0,lowFrequency:400,highFrequency:2500},t.EQ3.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["low","mid","high","lowFrequency","highFrequency"]),this._multibandSplit.dispose(),this._multibandSplit=null,this.lowFrequency=null,this.highFrequency=null,this._lowGain.dispose(),this._lowGain=null,this._midGain.dispose(),this._midGain=null,this._highGain.dispose(),this._highGain=null,this.low=null,this.mid=null,this.high=null,this.Q=null,this},t.EQ3}),t(function(t){return t.Scale=function(e,i){this._outputMin=this.defaultArg(e,0),this._outputMax=this.defaultArg(i,1),this._scale=this.input=new t.Multiply(1),this._add=this.output=new t.Add(0),this._scale.connect(this._add),this._setRange()},t.extend(t.Scale,t.SignalBase),Object.defineProperty(t.Scale.prototype,"min",{get:function(){return this._outputMin},set:function(t){this._outputMin=t,this._setRange()}}),Object.defineProperty(t.Scale.prototype,"max",{get:function(){return this._outputMax},set:function(t){this._outputMax=t,this._setRange()}}),t.Scale.prototype._setRange=function(){this._add.value=this._outputMin,this._scale.value=this._outputMax-this._outputMin},t.Scale.prototype.dispose=function(){return t.prototype.dispose.call(this),this._add.dispose(),this._add=null,this._scale.dispose(),this._scale=null,this},t.Scale}),t(function(t){return t.ScaleExp=function(e,i,s){this._scale=this.output=new t.Scale(e,i),this._exp=this.input=new t.Pow(this.defaultArg(s,2)),this._exp.connect(this._scale)},t.extend(t.ScaleExp,t.SignalBase),Object.defineProperty(t.ScaleExp.prototype,"exponent",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),Object.defineProperty(t.ScaleExp.prototype,"min",{get:function(){return this._scale.min},set:function(t){this._scale.min=t}}),Object.defineProperty(t.ScaleExp.prototype,"max",{get:function(){return this._scale.max},set:function(t){this._scale.max=t}}),t.ScaleExp.prototype.dispose=function(){return t.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._exp.dispose(),this._exp=null,this},t.ScaleExp}),t(function(t){return window.DelayNode&&!AudioContext.prototype.createDelay&&(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),t.Delay=function(){var e=this.optionsObject(arguments,["delayTime","maxDelay"],t.Delay.defaults);this._delayNode=this.input=this.output=this.context.createDelay(this.toSeconds(e.maxDelay)),this.delayTime=new t.Param({param:this._delayNode.delayTime,units:t.Type.Time,value:e.delayTime}),this._readOnly("delayTime")},t.extend(t.Delay),t.Delay.defaults={maxDelay:1,delayTime:0},t.Delay.prototype.dispose=function(){return t.Param.prototype.dispose.call(this),this._delayNode.disconnect(),this._delayNode=null,this._writable("delayTime"),this.delayTime=null,this},t.Delay}),t(function(t){return t.FeedbackCombFilter=function(){var e=this.optionsObject(arguments,["delayTime","resonance"],t.FeedbackCombFilter.defaults);this._delay=this.input=this.output=new t.Delay(e.delayTime),this.delayTime=this._delay.delayTime,this._feedback=new t.Gain(e.resonance,t.Type.NormalRange),this.resonance=this._feedback.gain,this._delay.chain(this._feedback,this._delay),this._readOnly(["resonance","delayTime"])},t.extend(t.FeedbackCombFilter),t.FeedbackCombFilter.defaults={delayTime:.1,resonance:.5},t.FeedbackCombFilter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["resonance","delayTime"]),this._delay.dispose(),this._delay=null,this.delayTime=null,this._feedback.dispose(),this._feedback=null,this.resonance=null,this},t.FeedbackCombFilter}),t(function(t){return t.Follower=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,["attack","release"],t.Follower.defaults);this._abs=new t.Abs,this._filter=this.context.createBiquadFilter(),this._filter.type="lowpass",this._filter.frequency.value=0,this._filter.Q.value=-100,this._frequencyValues=new t.WaveShaper,this._sub=new t.Subtract,this._delay=new t.Delay(this.blockTime),this._mult=new t.Multiply(1e4),this._attack=e.attack,this._release=e.release,this.input.chain(this._abs,this._filter,this.output),this._abs.connect(this._sub,0,1),this._filter.chain(this._delay,this._sub),this._sub.chain(this._mult,this._frequencyValues,this._filter.frequency),this._setAttackRelease(this._attack,this._release)},t.extend(t.Follower),t.Follower.defaults={attack:.05,release:.5},t.Follower.prototype._setAttackRelease=function(e,i){var s=this.blockTime;e=t.Time(e).toFrequency(),i=t.Time(i).toFrequency(),e=Math.max(e,s),i=Math.max(i,s),this._frequencyValues.setMap(function(t){return t<=0?e:i})},Object.defineProperty(t.Follower.prototype,"attack",{get:function(){return this._attack},set:function(t){this._attack=t,this._setAttackRelease(this._attack,this._release)}}),Object.defineProperty(t.Follower.prototype,"release",{get:function(){return this._release},set:function(t){this._release=t,this._setAttackRelease(this._attack,this._release)}}),t.Follower.prototype.connect=t.Signal.prototype.connect,t.Follower.prototype.dispose=function(){return t.prototype.dispose.call(this),this._filter.disconnect(),this._filter=null,this._frequencyValues.disconnect(),this._frequencyValues=null,this._delay.dispose(),this._delay=null,this._sub.disconnect(),this._sub=null,this._abs.dispose(),this._abs=null,this._mult.dispose(),this._mult=null,this._curve=null,this},t.Follower}),t(function(t){return t.ScaledEnvelope=function(){var e=this.optionsObject(arguments,["attack","decay","sustain","release"],t.Envelope.defaults);t.Envelope.call(this,e),e=this.defaultArg(e,t.ScaledEnvelope.defaults),this._exp=this.output=new t.Pow(e.exponent),this._scale=this.output=new t.Scale(e.min,e.max),this._sig.chain(this._exp,this._scale)},t.extend(t.ScaledEnvelope,t.Envelope),t.ScaledEnvelope.defaults={min:0,max:1,exponent:1},Object.defineProperty(t.ScaledEnvelope.prototype,"min",{get:function(){return this._scale.min},set:function(t){this._scale.min=t}}),Object.defineProperty(t.ScaledEnvelope.prototype,"max",{get:function(){return this._scale.max},set:function(t){this._scale.max=t}}),Object.defineProperty(t.ScaledEnvelope.prototype,"exponent",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),t.ScaledEnvelope.prototype.dispose=function(){return t.Envelope.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._exp.dispose(),this._exp=null,this},t.ScaledEnvelope}),t(function(t){return t.FrequencyEnvelope=function(){var e=this.optionsObject(arguments,["attack","decay","sustain","release"],t.Envelope.defaults);t.ScaledEnvelope.call(this,e),e=this.defaultArg(e,t.FrequencyEnvelope.defaults),this._octaves=e.octaves,this.baseFrequency=e.baseFrequency,this.octaves=e.octaves},t.extend(t.FrequencyEnvelope,t.Envelope),t.FrequencyEnvelope.defaults={baseFrequency:200,octaves:4,exponent:2},Object.defineProperty(t.FrequencyEnvelope.prototype,"baseFrequency",{get:function(){return this._scale.min},set:function(t){this._scale.min=this.toFrequency(t),this.octaves=this._octaves}}),Object.defineProperty(t.FrequencyEnvelope.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._scale.max=this.baseFrequency*Math.pow(2,t)}}),Object.defineProperty(t.FrequencyEnvelope.prototype,"exponent",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),t.FrequencyEnvelope.prototype.dispose=function(){return t.ScaledEnvelope.prototype.dispose.call(this),this},t.FrequencyEnvelope}),t(function(t){return t.Gate=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,["threshold","attack","release"],t.Gate.defaults);this._follower=new t.Follower(e.attack,e.release),this._gt=new t.GreaterThan(this.dbToGain(e.threshold)),this.input.connect(this.output),this.input.chain(this._gt,this._follower,this.output.gain)},t.extend(t.Gate),t.Gate.defaults={attack:.1,release:.1,threshold:-40},Object.defineProperty(t.Gate.prototype,"threshold",{get:function(){return this.gainToDb(this._gt.value)},set:function(t){this._gt.value=this.dbToGain(t)}}),Object.defineProperty(t.Gate.prototype,"attack",{get:function(){return this._follower.attack},set:function(t){this._follower.attack=t}}),Object.defineProperty(t.Gate.prototype,"release",{get:function(){return this._follower.release},set:function(t){this._follower.release=t}}),t.Gate.prototype.dispose=function(){return t.prototype.dispose.call(this),this._follower.dispose(),this._gt.dispose(),this._follower=null,this._gt=null,this},t.Gate}),t(function(t){return t.TimelineState=function(e){t.Timeline.call(this),this._initial=e},t.extend(t.TimelineState,t.Timeline),t.TimelineState.prototype.getValueAtTime=function(t){var e=this.get(t);return null!==e?e.state:this._initial},t.TimelineState.prototype.setStateAtTime=function(t,e){this.add({state:t,time:e})},t.TimelineState}),t(function(t){return t.Clock=function(){t.Emitter.call(this);var e=this.optionsObject(arguments,["callback","frequency"],t.Clock.defaults);this.callback=e.callback,this._nextTick=0,this._lastState=t.State.Stopped,this.frequency=new t.TimelineSignal(e.frequency,t.Type.Frequency),this._readOnly("frequency"),this.ticks=0,this._state=new t.TimelineState(t.State.Stopped),this._boundLoop=this._loop.bind(this),this.context.on("tick",this._boundLoop)},t.extend(t.Clock,t.Emitter),t.Clock.defaults={callback:t.noOp,frequency:1,lookAhead:"auto"},Object.defineProperty(t.Clock.prototype,"state",{get:function(){return this._state.getValueAtTime(this.now())}}),t.Clock.prototype.start=function(e,i){return e=this.toSeconds(e),this._state.getValueAtTime(e)!==t.State.Started&&this._state.add({state:t.State.Started,time:e,offset:i}),this},t.Clock.prototype.stop=function(e){return e=this.toSeconds(e),this._state.cancel(e),this._state.setStateAtTime(t.State.Stopped,e),this},t.Clock.prototype.pause=function(e){return e=this.toSeconds(e),this._state.getValueAtTime(e)===t.State.Started&&this._state.setStateAtTime(t.State.Paused,e),this},t.Clock.prototype._loop=function(){for(var e=this.now(),i=this.context.lookAhead,s=this.context.updateInterval,n=2*this.context.lag,o=e+i+s+n;o>this._nextTick&&this._state;){var r=this._state.getValueAtTime(this._nextTick);if(r!==this._lastState){this._lastState=r;var a=this._state.get(this._nextTick);r===t.State.Started?(this._nextTick=a.time,this.isUndef(a.offset)||(this.ticks=a.offset),this.emit("start",a.time,this.ticks)):r===t.State.Stopped?(this.ticks=0,this.emit("stop",a.time)):r===t.State.Paused&&this.emit("pause",a.time)}var h=this._nextTick;this.frequency&&(this._nextTick+=1/this.frequency.getValueAtTime(this._nextTick),r===t.State.Started&&(this.callback(h),this.ticks++))}},t.Clock.prototype.getStateAtTime=function(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)},t.Clock.prototype.dispose=function(){t.Emitter.prototype.dispose.call(this),this.context.off("tick",this._boundLoop),this._writable("frequency"),this.frequency.dispose(),this.frequency=null,this._boundLoop=null,this._nextTick=1/0,this.callback=null,this._state.dispose(),this._state=null},t.Clock}),t(function(t){t.IntervalTimeline=function(){this._root=null,this._length=0},t.extend(t.IntervalTimeline),t.IntervalTimeline.prototype.add=function(t){if(this.isUndef(t.time)||this.isUndef(t.duration))throw new Error("Tone.IntervalTimeline: events must have time and duration parameters");var i=new e(t.time,t.time+t.duration,t);for(null===this._root?this._root=i:this._root.insert(i),this._length++;null!==i;)i.updateHeight(),i.updateMax(),this._rebalance(i),i=i.parent;return this},t.IntervalTimeline.prototype.remove=function(t){if(null!==this._root){var e=[];this._root.search(t.time,e);for(var i=0;i<e.length;i++){var s=e[i];if(s.event===t){this._removeNode(s),this._length--;break}}}return this},Object.defineProperty(t.IntervalTimeline.prototype,"length",{get:function(){return this._length}}),t.IntervalTimeline.prototype.cancel=function(t){return this.forEachAfter(t,function(t){this.remove(t)}.bind(this)),this},t.IntervalTimeline.prototype._setRoot=function(t){this._root=t,null!==this._root&&(this._root.parent=null)},t.IntervalTimeline.prototype._replaceNodeInParent=function(t,e){null!==t.parent?(t.isLeftChild()?t.parent.left=e:t.parent.right=e,this._rebalance(t.parent)):this._setRoot(e)},t.IntervalTimeline.prototype._removeNode=function(t){if(null===t.left&&null===t.right)this._replaceNodeInParent(t,null);else if(null===t.right)this._replaceNodeInParent(t,t.left);else if(null===t.left)this._replaceNodeInParent(t,t.right);else{var e,i,s=t.getBalance();if(s>0)if(null===t.left.right)e=t.left,e.right=t.right,i=e;else{for(e=t.left.right;null!==e.right;)e=e.right;e.parent.right=e.left,i=e.parent,e.left=t.left,e.right=t.right}else if(null===t.right.left)e=t.right,e.left=t.left,i=e;else{for(e=t.right.left;null!==e.left;)e=e.left;e.parent=e.parent,e.parent.left=e.right,i=e.parent,e.left=t.left,e.right=t.right}null!==t.parent?t.isLeftChild()?t.parent.left=e:t.parent.right=e:this._setRoot(e),this._rebalance(i)}t.dispose()},t.IntervalTimeline.prototype._rotateLeft=function(t){var e=t.parent,i=t.isLeftChild(),s=t.right;t.right=s.left,s.left=t,null!==e?i?e.left=s:e.right=s:this._setRoot(s)},t.IntervalTimeline.prototype._rotateRight=function(t){var e=t.parent,i=t.isLeftChild(),s=t.left;t.left=s.right,s.right=t,null!==e?i?e.left=s:e.right=s:this._setRoot(s)},t.IntervalTimeline.prototype._rebalance=function(t){var e=t.getBalance();e>1?t.left.getBalance()<0?this._rotateLeft(t.left):this._rotateRight(t):e<-1&&(t.right.getBalance()>0?this._rotateRight(t.right):this._rotateLeft(t))},t.IntervalTimeline.prototype.get=function(t){if(null!==this._root){var e=[];if(this._root.search(t,e),e.length>0){for(var i=e[0],s=1;s<e.length;s++)e[s].low>i.low&&(i=e[s]);return i.event}}return null},t.IntervalTimeline.prototype.forEach=function(t){if(null!==this._root){var e=[];null!==this._root&&this._root.traverse(function(t){e.push(t)});for(var i=0;i<e.length;i++){var s=e[i].event;s&&t(s)}}return this},t.IntervalTimeline.prototype.forEachAtTime=function(t,e){if(null!==this._root){var i=[];this._root.search(t,i);for(var s=i.length-1;s>=0;s--){var n=i[s].event;n&&e(n)}}return this},t.IntervalTimeline.prototype.forEachAfter=function(t,e){if(null!==this._root){var i=[];this._root.searchAfter(t,i);for(var s=i.length-1;s>=0;s--){var n=i[s].event;n&&e(n)}}return this},t.IntervalTimeline.prototype.dispose=function(){var t=[];null!==this._root&&this._root.traverse(function(e){t.push(e)});for(var e=0;e<t.length;e++)t[e].dispose();return t=null,this._root=null,this};var e=function(t,e,i){this.event=i,this.low=t,this.high=e,this.max=this.high,this._left=null,this._right=null,this.parent=null,this.height=0};return e.prototype.insert=function(t){t.low<=this.low?null===this.left?this.left=t:this.left.insert(t):null===this.right?this.right=t:this.right.insert(t)},e.prototype.search=function(t,e){t>this.max||(null!==this.left&&this.left.search(t,e),this.low<=t&&this.high>t&&e.push(this),this.low>t||null!==this.right&&this.right.search(t,e))},e.prototype.searchAfter=function(t,e){this.low>=t&&(e.push(this),null!==this.left&&this.left.searchAfter(t,e)),null!==this.right&&this.right.searchAfter(t,e)},e.prototype.traverse=function(t){t(this),null!==this.left&&this.left.traverse(t),null!==this.right&&this.right.traverse(t)},e.prototype.updateHeight=function(){null!==this.left&&null!==this.right?this.height=Math.max(this.left.height,this.right.height)+1:null!==this.right?this.height=this.right.height+1:null!==this.left?this.height=this.left.height+1:this.height=0},e.prototype.updateMax=function(){this.max=this.high,null!==this.left&&(this.max=Math.max(this.max,this.left.max)),null!==this.right&&(this.max=Math.max(this.max,this.right.max))},e.prototype.getBalance=function(){var t=0;return null!==this.left&&null!==this.right?t=this.left.height-this.right.height:null!==this.left?t=this.left.height+1:null!==this.right&&(t=-(this.right.height+1)),t},e.prototype.isLeftChild=function(){return null!==this.parent&&this.parent.left===this},Object.defineProperty(e.prototype,"left",{get:function(){return this._left},set:function(t){this._left=t,null!==t&&(t.parent=this),this.updateHeight(),this.updateMax()}}),Object.defineProperty(e.prototype,"right",{get:function(){return this._right},set:function(t){this._right=t,null!==t&&(t.parent=this),this.updateHeight(),this.updateMax()}}),e.prototype.dispose=function(){this.parent=null,this._left=null,this._right=null,this.event=null},t.IntervalTimeline}),t(function(t){t.Transport=function(){t.Emitter.call(this),this.loop=!1,this._loopStart=0,this._loopEnd=0,this._ppq=e.defaults.PPQ,this._clock=new t.Clock({callback:this._processTick.bind(this),frequency:0}),this._bindClockEvents(),this.bpm=this._clock.frequency,this.bpm._toUnits=this._toUnits.bind(this),this.bpm._fromUnits=this._fromUnits.bind(this),this.bpm.units=t.Type.BPM,this.bpm.value=e.defaults.bpm,this._readOnly("bpm"),this._timeSignature=e.defaults.timeSignature,this._scheduledEvents={},this._eventID=0,this._timeline=new t.Timeline,this._repeatedEvents=new t.IntervalTimeline,this._onceEvents=new t.Timeline,this._syncedSignals=[],this._swingTicks=e.defaults.PPQ/2,this._swingAmount=0},t.extend(t.Transport,t.Emitter),t.Transport.defaults={bpm:120,swing:0,swingSubdivision:"8n",timeSignature:4,loopStart:0,loopEnd:"4m",PPQ:192},t.Transport.prototype._processTick=function(e){var i=this._clock.ticks;if(this._swingAmount>0&&i%this._ppq!=0&&i%(2*this._swingTicks)!=0){var s=i%(2*this._swingTicks)/(2*this._swingTicks),n=Math.sin(s*Math.PI)*this._swingAmount;e+=t.Time(2*this._swingTicks/3,"i")*n}this.loop&&i===this._loopEnd&&(this.emit("loopEnd",e),this._clock.ticks=this._loopStart,i=this._loopStart,this.emit("loopStart",e,this.seconds),this.emit("loop",e)),this._onceEvents.forEachBefore(i,function(t){t.callback(e),delete this._scheduledEvents[t.id.toString()]}.bind(this)),this._onceEvents.cancelBefore(i),this._timeline.forEachAtTime(i,function(t){t.callback(e)}),this._repeatedEvents.forEachAtTime(i,function(t){(i-t.time)%t.interval==0&&t.callback(e)})},t.Transport.prototype.schedule=function(t,e){var i={time:this.toTicks(e),callback:t},s=this._eventID++;return this._scheduledEvents[s.toString()]={event:i,timeline:this._timeline},this._timeline.add(i),s},t.Transport.prototype.scheduleRepeat=function(t,e,i,s){if(e<=0)throw new Error("Tone.Transport: repeat events must have an interval larger than 0");var n={time:this.toTicks(i),duration:this.toTicks(this.defaultArg(s,1/0)),interval:this.toTicks(e),callback:t},o=this._eventID++;return this._scheduledEvents[o.toString()]={event:n,timeline:this._repeatedEvents},this._repeatedEvents.add(n),o},t.Transport.prototype.scheduleOnce=function(t,e){var i=this._eventID++,s={time:this.toTicks(e),callback:t,id:i};return this._scheduledEvents[i.toString()]={event:s,timeline:this._onceEvents},this._onceEvents.add(s),i},t.Transport.prototype.clear=function(t){if(this._scheduledEvents.hasOwnProperty(t)){var e=this._scheduledEvents[t.toString()];e.timeline.remove(e.event),delete this._scheduledEvents[t.toString()]}return this},t.Transport.prototype.cancel=function(t){return t=this.defaultArg(t,0),t=this.toTicks(t),this._timeline.cancel(t),this._onceEvents.cancel(t),this._repeatedEvents.cancel(t),this},t.Transport.prototype._bindClockEvents=function(){this._clock.on("start",function(e,i){i=t.Time(this._clock.ticks,"i").toSeconds(),this.emit("start",e,i)}.bind(this)),this._clock.on("stop",function(t){this.emit("stop",t)}.bind(this)),this._clock.on("pause",function(t){this.emit("pause",t)}.bind(this))},Object.defineProperty(t.Transport.prototype,"state",{get:function(){return this._clock.getStateAtTime(this.now())}}),t.Transport.prototype.start=function(t,e){return this.isUndef(e)||(e=this.toTicks(e)),this._clock.start(t,e),this},t.Transport.prototype.stop=function(t){return this._clock.stop(t),this},t.Transport.prototype.pause=function(t){return this._clock.pause(t),this},Object.defineProperty(t.Transport.prototype,"timeSignature",{get:function(){return this._timeSignature},set:function(t){this.isArray(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}}),Object.defineProperty(t.Transport.prototype,"loopStart",{get:function(){return t.TransportTime(this._loopStart,"i").toSeconds()},set:function(t){this._loopStart=this.toTicks(t)}}),Object.defineProperty(t.Transport.prototype,"loopEnd",{get:function(){return t.TransportTime(this._loopEnd,"i").toSeconds()},set:function(t){this._loopEnd=this.toTicks(t)}}),t.Transport.prototype.setLoopPoints=function(t,e){return this.loopStart=t,this.loopEnd=e,this},Object.defineProperty(t.Transport.prototype,"swing",{get:function(){return this._swingAmount},set:function(t){this._swingAmount=t}}),Object.defineProperty(t.Transport.prototype,"swingSubdivision",{get:function(){return t.Time(this._swingTicks,"i").toNotation()},set:function(t){this._swingTicks=this.toTicks(t)}}),Object.defineProperty(t.Transport.prototype,"position",{get:function(){return t.TransportTime(this.ticks,"i").toBarsBeatsSixteenths()},set:function(t){var e=this.toTicks(t);this.ticks=e}}),Object.defineProperty(t.Transport.prototype,"seconds",{get:function(){return t.TransportTime(this.ticks,"i").toSeconds()},set:function(t){var e=this.toTicks(t);this.ticks=e}}),Object.defineProperty(t.Transport.prototype,"progress",{get:function(){return this.loop?(this.ticks-this._loopStart)/(this._loopEnd-this._loopStart):0}}),Object.defineProperty(t.Transport.prototype,"ticks",{get:function(){return this._clock.ticks},set:function(e){if(this._clock.ticks!==e){var i=this.now();this.state===t.State.Started?(this.emit("stop",i),this._clock.ticks=e,this.emit("start",i,this.seconds)):this._clock.ticks=e}}}),Object.defineProperty(t.Transport.prototype,"PPQ",{get:function(){return this._ppq},set:function(t){var e=this.bpm.value;this._ppq=t,this.bpm.value=e}}),Object.defineProperty(t.Transport.prototype,"latencyHint",{get:function(){return t.Clock.latencyHint},set:function(e){t.Clock.latencyHint=e}}),t.Transport.prototype._fromUnits=function(t){return 1/(60/t/this.PPQ)},t.Transport.prototype._toUnits=function(t){return t/this.PPQ*60},t.Transport.prototype.nextSubdivision=function(e){e=this.toSeconds(e);var i;if(this.state!==t.State.Started)return 0;i=this._clock._nextTick;var s=t.Time(this.ticks,"i"),n=e-s%e;return 0===n&&(n=e),i+n},t.Transport.prototype.syncSignal=function(e,i){i||(i=0!==e._param.value?e._param.value/this.bpm._param.value:0);var s=new t.Gain(i);return this.bpm.chain(s,e._param),this._syncedSignals.push({ratio:s,signal:e,initial:e._param.value}),e._param.value=0,this},t.Transport.prototype.unsyncSignal=function(t){for(var e=this._syncedSignals.length-1;e>=0;e--){var i=this._syncedSignals[e];i.signal===t&&(i.ratio.dispose(),i.signal._param.value=i.initial,this._syncedSignals.splice(e,1))}return this},t.Transport.prototype.dispose=function(){return t.Emitter.prototype.dispose.call(this),this._clock.dispose(),this._clock=null,this._writable("bpm"),this.bpm=null,this._timeline.dispose(),this._timeline=null,this._onceEvents.dispose(),this._onceEvents=null,this._repeatedEvents.dispose(),this._repeatedEvents=null,this};var e=t.Transport;return t.Transport=new e,t.Context.on("init",function(i){i.Transport instanceof e?t.Transport=i.Transport:(t.Transport=new e,i.Transport=t.Transport)}),t.Transport}),t(function(t){return t.Volume=function(){var e=this.optionsObject(arguments,["volume"],t.Volume.defaults);this.output=this.input=new t.Gain(e.volume,t.Type.Decibels),this._unmutedVolume=e.volume,this.volume=this.output.gain,this._readOnly("volume"),this.mute=e.mute},t.extend(t.Volume),t.Volume.defaults={volume:0,mute:!1},Object.defineProperty(t.Volume.prototype,"mute",{get:function(){return this.volume.value===-1/0},set:function(t){!this.mute&&t?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!t&&(this.volume.value=this._unmutedVolume)}}),t.Volume.prototype.dispose=function(){return this.input.dispose(),t.prototype.dispose.call(this),this._writable("volume"),this.volume.dispose(),this.volume=null,this},t.Volume}),t(function(t){t.Master=function(){this.createInsOuts(1,1),this._volume=this.output=new t.Volume,this.volume=this._volume.volume,this._readOnly("volume"),this.input.chain(this.output,this.context.destination)},t.extend(t.Master),t.Master.defaults={volume:0,mute:!1},Object.defineProperty(t.Master.prototype,"mute",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.Master.prototype.chain=function(){this.input.disconnect(),this.input.chain.apply(this.input,arguments),arguments[arguments.length-1].connect(this.output)},t.Master.prototype.dispose=function(){t.prototype.dispose.call(this),this._writable("volume"),this._volume.dispose(),this._volume=null,this.volume=null},t.prototype.toMaster=function(){return this.connect(t.Master),this},AudioNode.prototype.toMaster=function(){return this.connect(t.Master),this};var e=t.Master;return t.Master=new e,t.Context.on("init",function(i){i.Master instanceof e?t.Master=i.Master:t.Master=new e,i.Master=t.Master}),t.Master}),t(function(t){return t.Source=function(e){e=this.defaultArg(e,t.Source.defaults),this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly("volume"),this._state=new t.TimelineState(t.State.Stopped),this._state.memory=10,this._synced=!1,this._scheduled=[],this._volume.output.output.channelCount=2,this._volume.output.output.channelCountMode="explicit",this.mute=e.mute},t.extend(t.Source),t.Source.defaults={volume:0,mute:!1},Object.defineProperty(t.Source.prototype,"state",{get:function(){return this._synced?t.Transport.state===t.State.Started?this._state.getValueAtTime(t.Transport.seconds):t.State.Stopped:this._state.getValueAtTime(this.now())}}),Object.defineProperty(t.Source.prototype,"mute",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.Source.prototype._start=t.noOp,t.Source.prototype._stop=t.noOp,t.Source.prototype.start=function(e,i,s){if(e=this.isUndef(e)&&this._synced?t.Transport.seconds:this.toSeconds(e),this.retrigger||this._state.getValueAtTime(e)!==t.State.Started||this.stop(e),this._state.setStateAtTime(t.State.Started,e),this._synced){var n=this._state.get(e);n.offset=this.defaultArg(i,0),n.duration=s;var o=t.Transport.schedule(function(t){this._start(t,i,s)}.bind(this),e);this._scheduled.push(o)}else this._start.apply(this,arguments);return this},t.Source.prototype.stop=function(e){if(e=this.isUndef(e)&&this._synced?t.Transport.seconds:this.toSeconds(e),this._state.cancel(e),this._state.setStateAtTime(t.State.Stopped,e),this._synced){var i=t.Transport.schedule(this._stop.bind(this),e);this._scheduled.push(i)}else this._stop.apply(this,arguments);return this},t.Source.prototype.sync=function(){return this._synced=!0,t.Transport.on("start loopStart",function(e,i){if(i>0){var s=this._state.get(i);if(s&&s.state===t.State.Started&&s.time!==i){var n,o=i-this.toSeconds(s.time);s.duration&&(n=this.toSeconds(s.duration)-o),this._start(e,this.toSeconds(s.offset)+o,n)}}}.bind(this)),t.Transport.on("stop pause loopEnd",function(e){this._state.getValueAtTime(t.Transport.seconds)===t.State.Started&&this._stop(e)}.bind(this)),this},t.Source.prototype.unsync=function(){this._synced=!1,t.Transport.off("start stop pause loopEnd loopStart");for(var e=0;e<this._scheduled.length;e++){var i=this._scheduled[e];t.Transport.clear(i)}return this._scheduled=[],this._state.cancel(0),this},t.Source.prototype.dispose=function(){t.prototype.dispose.call(this),this.unsync(),this._scheduled=null,this._writable("volume"),this._volume.dispose(),this._volume=null,this.volume=null,this._state.dispose(),this._state=null},t.Source}),t(function(t){return window.OscillatorNode&&!OscillatorNode.prototype.start&&(OscillatorNode.prototype.start=OscillatorNode.prototype.noteOn,OscillatorNode.prototype.stop=OscillatorNode.prototype.noteOff,OscillatorNode.prototype.setPeriodicWave||(OscillatorNode.prototype.setPeriodicWave=OscillatorNode.prototype.setWaveTable),AudioContext.prototype.createPeriodicWave||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable)),t.Oscillator=function(){var e=this.optionsObject(arguments,["frequency","type"],t.Oscillator.defaults);t.Source.call(this,e),this._oscillator=null,this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this._wave=null,this._partials=this.defaultArg(e.partials,[1]),this._phase=e.phase,this._type=null,this.type=e.type,this.phase=this._phase,this._readOnly(["frequency","detune"])},t.extend(t.Oscillator,t.Source),t.Oscillator.defaults={type:"sine",frequency:440,detune:0,phase:0,partials:[]},t.Oscillator.Type={Sine:"sine",Triangle:"triangle",Sawtooth:"sawtooth",Square:"square",Custom:"custom"},t.Oscillator.prototype._start=function(t){this._oscillator=this.context.createOscillator(),this._oscillator.setPeriodicWave(this._wave),this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(this.toSeconds(t))},t.Oscillator.prototype._stop=function(t){return this._oscillator&&(this._oscillator.stop(this.toSeconds(t)),this._oscillator=null),this},t.Oscillator.prototype.syncFrequency=function(){return t.Transport.syncSignal(this.frequency),this},t.Oscillator.prototype.unsyncFrequency=function(){return t.Transport.unsyncSignal(this.frequency),this},Object.defineProperty(t.Oscillator.prototype,"type",{get:function(){return this._type},set:function(t){var e=this._getRealImaginary(t,this._phase),i=this.context.createPeriodicWave(e[0],e[1]);this._wave=i,null!==this._oscillator&&this._oscillator.setPeriodicWave(this._wave),this._type=t}}),t.Oscillator.prototype._getRealImaginary=function(e,i){var s=2048,n=new Float32Array(s),o=new Float32Array(s),r=1;if(e===t.Oscillator.Type.Custom)r=this._partials.length+1,s=r;else{var a=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(e);a&&(r=parseInt(a[2])+1,e=a[1],r=Math.max(r,2),s=r)}for(var h=1;h<s;++h){var l,c=2/(h*Math.PI);switch(e){case t.Oscillator.Type.Sine:l=h<=r?1:0;break;case t.Oscillator.Type.Square:l=1&h?2*c:0;break;case t.Oscillator.Type.Sawtooth:l=c*(1&h?1:-1);break;case t.Oscillator.Type.Triangle:l=1&h?c*c*2*(h-1>>1&1?-1:1):0;break;case t.Oscillator.Type.Custom:l=this._partials[h-1];break;default:throw new TypeError("Tone.Oscillator: invalid type: "+e)}0!==l?(n[h]=-l*Math.sin(i*h),o[h]=l*Math.cos(i*h)):(n[h]=0,o[h]=0)}return[n,o]},t.Oscillator.prototype._inverseFFT=function(t,e,i){for(var s=0,n=t.length,o=0;o<n;o++)s+=t[o]*Math.cos(o*i)+e[o]*Math.sin(o*i);return s},t.Oscillator.prototype._getInitialValue=function(){for(var t=this._getRealImaginary(this._type,0),e=t[0],i=t[1],s=0,n=2*Math.PI,o=0;o<8;o++)s=Math.max(this._inverseFFT(e,i,o/8*n),s);return-this._inverseFFT(e,i,this._phase)/s},Object.defineProperty(t.Oscillator.prototype,"partials",{get:function(){return this._type!==t.Oscillator.Type.Custom?[]:this._partials},set:function(e){this._partials=e,this.type=t.Oscillator.Type.Custom}}),Object.defineProperty(t.Oscillator.prototype,"phase",{get:function(){return this._phase*(180/Math.PI)},set:function(t){this._phase=t*Math.PI/180,this.type=this._type}}),t.Oscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),null!==this._oscillator&&(this._oscillator.disconnect(),this._oscillator=null),this._wave=null,this._writable(["frequency","detune"]),this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this._partials=null,this},t.Oscillator}),t(function(t){return t.Zero=function(){this._gain=this.input=this.output=new t.Gain,this.context.getConstant(0).connect(this._gain)},t.extend(t.Zero),t.Zero.prototype.dispose=function(){return t.prototype.dispose.call(this),this._gain.dispose(),this._gain=null,this},t.Zero}),t(function(t){return t.LFO=function(){var e=this.optionsObject(arguments,["frequency","min","max"],t.LFO.defaults);this._oscillator=new t.Oscillator({frequency:e.frequency,type:e.type}),this.frequency=this._oscillator.frequency,this.amplitude=this._oscillator.volume,this.amplitude.units=t.Type.NormalRange,this.amplitude.value=e.amplitude,this._stoppedSignal=new t.Signal(0,t.Type.AudioRange),this._zeros=new t.Zero,this._stoppedValue=0,this._a2g=new t.AudioToGain,this._scaler=this.output=new t.Scale(e.min,e.max),this._units=t.Type.Default,this.units=e.units,this._oscillator.chain(this._a2g,this._scaler),this._zeros.connect(this._a2g),this._stoppedSignal.connect(this._a2g),this._readOnly(["amplitude","frequency"]),this.phase=e.phase},t.extend(t.LFO,t.Oscillator),t.LFO.defaults={type:"sine",min:0,max:1,phase:0,frequency:"4n",amplitude:1,units:t.Type.Default},t.LFO.prototype.start=function(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(0,t),this._oscillator.start(t),this},t.LFO.prototype.stop=function(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(this._stoppedValue,t),this._oscillator.stop(t),this},t.LFO.prototype.sync=function(){return this._oscillator.sync(),this._oscillator.syncFrequency(),this},t.LFO.prototype.unsync=function(){return this._oscillator.unsync(),this._oscillator.unsyncFrequency(),this},Object.defineProperty(t.LFO.prototype,"min",{get:function(){return this._toUnits(this._scaler.min)},set:function(t){t=this._fromUnits(t),this._scaler.min=t}}),Object.defineProperty(t.LFO.prototype,"max",{get:function(){return this._toUnits(this._scaler.max)},set:function(t){t=this._fromUnits(t),this._scaler.max=t}}),Object.defineProperty(t.LFO.prototype,"type",{get:function(){return this._oscillator.type},set:function(t){this._oscillator.type=t,this._stoppedValue=this._oscillator._getInitialValue(),this._stoppedSignal.value=this._stoppedValue}}),Object.defineProperty(t.LFO.prototype,"phase",{get:function(){return this._oscillator.phase},set:function(t){this._oscillator.phase=t,this._stoppedValue=this._oscillator._getInitialValue(),this._stoppedSignal.value=this._stoppedValue}}),Object.defineProperty(t.LFO.prototype,"units",{get:function(){return this._units},set:function(t){var e=this.min,i=this.max;this._units=t,this.min=e,this.max=i}}),Object.defineProperty(t.LFO.prototype,"mute",{get:function(){return this._oscillator.mute},set:function(t){this._oscillator.mute=t}}),Object.defineProperty(t.LFO.prototype,"state",{get:function(){return this._oscillator.state}}),t.LFO.prototype.connect=function(e){return e.constructor!==t.Signal&&e.constructor!==t.Param&&e.constructor!==t.TimelineSignal||(this.convert=e.convert,this.units=e.units),t.Signal.prototype.connect.apply(this,arguments),this},t.LFO.prototype._fromUnits=t.Param.prototype._fromUnits,t.LFO.prototype._toUnits=t.Param.prototype._toUnits,t.LFO.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["amplitude","frequency"]),this._oscillator.dispose(),this._oscillator=null,this._stoppedSignal.dispose(),this._stoppedSignal=null,this._zeros.dispose(),this._zeros=null,this._scaler.dispose(),this._scaler=null,this._a2g.dispose(),this._a2g=null,this.frequency=null,this.amplitude=null,this},t.LFO}),t(function(t){return t.Limiter=function(){var e=this.optionsObject(arguments,["threshold"],t.Limiter.defaults);this._compressor=this.input=this.output=new t.Compressor({attack:.001,decay:.001,threshold:e.threshold}),this.threshold=this._compressor.threshold,this._readOnly("threshold")},t.extend(t.Limiter),t.Limiter.defaults={threshold:-12},t.Limiter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._compressor.dispose(),this._compressor=null,this._writable("threshold"),this.threshold=null,this},t.Limiter}),t(function(t){return t.LowpassCombFilter=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,["delayTime","resonance","dampening"],t.LowpassCombFilter.defaults);this._delay=this.input=new t.Delay(e.delayTime),this.delayTime=this._delay.delayTime,this._lowpass=this.output=this.context.createBiquadFilter(),this._lowpass.Q.value=-3.0102999566398125,this._lowpass.type="lowpass",this.dampening=new t.Param({param:this._lowpass.frequency,units:t.Type.Frequency,value:e.dampening}),this._feedback=new t.Gain(e.resonance,t.Type.NormalRange),this.resonance=this._feedback.gain,this._delay.chain(this._lowpass,this._feedback,this._delay),this._readOnly(["dampening","resonance","delayTime"])},t.extend(t.LowpassCombFilter),t.LowpassCombFilter.defaults={delayTime:.1,resonance:.5,dampening:3e3},t.LowpassCombFilter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["dampening","resonance","delayTime"]),this.dampening.dispose(),this.dampening=null,this.resonance.dispose(),this.resonance=null,this._delay.dispose(),this._delay=null,this.delayTime=null,this._lowpass.disconnect(),this._lowpass=null,this._feedback.disconnect(),this._feedback=null,this},t.LowpassCombFilter}),t(function(t){return t.Merge=function(){this.createInsOuts(2,0),this.left=this.input[0]=new t.Gain,this.right=this.input[1]=new t.Gain,this._merger=this.output=this.context.createChannelMerger(2),this.left.connect(this._merger,0,0),this.right.connect(this._merger,0,1),this.left.channelCount=1,this.right.channelCount=1,this.left.channelCountMode="explicit",this.right.channelCountMode="explicit"},t.extend(t.Merge),t.Merge.prototype.dispose=function(){return t.prototype.dispose.call(this),this.left.dispose(),this.left=null,this.right.dispose(),this.right=null,this._merger.disconnect(),this._merger=null,this},t.Merge}),t(function(t){return t.Meter=function(){var e=this.optionsObject(arguments,["type","smoothing"],t.Meter.defaults);this.type=e.type,this.input=this.output=this._analyser=new t.Analyser("waveform",512),this._analyser.returnType="float",this.smoothing=e.smoothing,this._lastValue=0},t.extend(t.Meter),t.Meter.Type={Level:"level",Signal:"signal"},t.Meter.defaults={smoothing:.8,type:t.Meter.Type.Level},Object.defineProperty(t.Meter.prototype,"value",{get:function(){var e=this._analyser.analyse();if(this.type===t.Meter.Type.Level){for(var i=0,s=0;s<e.length;s++)i+=Math.pow(e[s],2);var n=Math.sqrt(i/e.length);n=Math.max(n,this._lastValue*this.smoothing),this._lastValue=n;var o=n/.35;return Math.sqrt(o)}return e[0]}}),t.Meter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._analyser.dispose(),this._analyser=null,this},t.Meter}),t(function(t){return t.Split=function(){this.createInsOuts(0,2),this._splitter=this.input=this.context.createChannelSplitter(2),this.left=this.output[0]=new t.Gain,this.right=this.output[1]=new t.Gain,this._splitter.connect(this.left,0,0),this._splitter.connect(this.right,1,0)},t.extend(t.Split),t.Split.prototype.dispose=function(){return t.prototype.dispose.call(this),this._splitter.disconnect(),this.left.dispose(),this.left=null,this.right.dispose(),this.right=null,this._splitter=null,this},t.Split}),t(function(t){return t.MidSideSplit=function(){this.createInsOuts(0,2),this._split=this.input=new t.Split,this.mid=this.output[0]=new t.Expr("($0 + $1) * $2"),this.side=this.output[1]=new t.Expr("($0 - $1) * $2"),this._split.connect(this.mid,0,0),this._split.connect(this.mid,1,1),this._split.connect(this.side,0,0),this._split.connect(this.side,1,1),this.context.getConstant(Math.SQRT1_2).connect(this.mid,0,2),this.context.getConstant(Math.SQRT1_2).connect(this.side,0,2)},t.extend(t.MidSideSplit),t.MidSideSplit.prototype.dispose=function(){return t.prototype.dispose.call(this),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._split.dispose(),this._split=null,this},t.MidSideSplit}),t(function(t){return t.MidSideMerge=function(){this.createInsOuts(2,0),this.mid=this.input[0]=new t.Gain,this._left=new t.Expr("($0 + $1) * $2"),this.side=this.input[1]=new t.Gain,this._right=new t.Expr("($0 - $1) * $2"),this._merge=this.output=new t.Merge,this.mid.connect(this._left,0,0),this.side.connect(this._left,0,1),this.mid.connect(this._right,0,0),this.side.connect(this._right,0,1),this._left.connect(this._merge,0,0),this._right.connect(this._merge,0,1),this.context.getConstant(Math.SQRT1_2).connect(this._left,0,2),this.context.getConstant(Math.SQRT1_2).connect(this._right,0,2)},t.extend(t.MidSideMerge),t.MidSideMerge.prototype.dispose=function(){return t.prototype.dispose.call(this),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._left.dispose(),this._left=null,this._right.dispose(),this._right=null,this._merge.dispose(),this._merge=null,this},t.MidSideMerge}),t(function(t){return t.MidSideCompressor=function(e){e=this.defaultArg(e,t.MidSideCompressor.defaults),this._midSideSplit=this.input=new t.MidSideSplit,this._midSideMerge=this.output=new t.MidSideMerge,this.mid=new t.Compressor(e.mid),this.side=new t.Compressor(e.side),this._midSideSplit.mid.chain(this.mid,this._midSideMerge.mid),this._midSideSplit.side.chain(this.side,this._midSideMerge.side),this._readOnly(["mid","side"])},t.extend(t.MidSideCompressor),t.MidSideCompressor.defaults={mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},side:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10}},t.MidSideCompressor.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["mid","side"]),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._midSideSplit.dispose(),this._midSideSplit=null,this._midSideMerge.dispose(),this._midSideMerge=null,this},t.MidSideCompressor}),t(function(t){return t.Mono=function(){this.createInsOuts(1,0),this._merge=this.output=new t.Merge,this.input.connect(this._merge,0,0),this.input.connect(this._merge,0,1),this.input.gain.value=this.dbToGain(-10)},t.extend(t.Mono),t.Mono.prototype.dispose=function(){return t.prototype.dispose.call(this),this._merge.dispose(),this._merge=null,this},t.Mono}),t(function(t){return t.MultibandCompressor=function(e){e=this.defaultArg(arguments,t.MultibandCompressor.defaults),this._splitter=this.input=new t.MultibandSplit({lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this.lowFrequency=this._splitter.lowFrequency,this.highFrequency=this._splitter.highFrequency,this.output=new t.Gain,this.low=new t.Compressor(e.low),this.mid=new t.Compressor(e.mid),this.high=new t.Compressor(e.high),this._splitter.low.chain(this.low,this.output),this._splitter.mid.chain(this.mid,this.output),this._splitter.high.chain(this.high,this.output),this._readOnly(["high","mid","low","highFrequency","lowFrequency"])},t.extend(t.MultibandCompressor),t.MultibandCompressor.defaults={low:t.Compressor.defaults,mid:t.Compressor.defaults,high:t.Compressor.defaults,lowFrequency:250,highFrequency:2e3},t.MultibandCompressor.prototype.dispose=function(){return t.prototype.dispose.call(this),this._splitter.dispose(),this._writable(["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this._splitter=null,this.low=null,this.mid=null,this.high=null,this.lowFrequency=null,this.highFrequency=null,this},t.MultibandCompressor}),t(function(t){return t.Panner=function(e){this._hasStereoPanner?(this._panner=this.input=this.output=this.context.createStereoPanner(),this.pan=this._panner.pan):(this._crossFade=new t.CrossFade,this._merger=this.output=new t.Merge,this._splitter=this.input=new t.Split,this.pan=new t.Signal(0,t.Type.AudioRange),this._zero=new t.Zero,this._a2g=new t.AudioToGain,this._zero.connect(this._a2g),this.pan.chain(this._a2g,this._crossFade.fade),this._splitter.connect(this._crossFade,0,0),this._splitter.connect(this._crossFade,1,1),this._crossFade.a.connect(this._merger,0,0),this._crossFade.b.connect(this._merger,0,1)),this.pan.value=this.defaultArg(e,0),this._readOnly("pan")},t.extend(t.Panner),t.Panner.prototype._hasStereoPanner=t.prototype.isFunction(t.context.createStereoPanner),t.Panner.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable("pan"),this._hasStereoPanner?(this._panner.disconnect(),this._panner=null,this.pan=null):(this._zero.dispose(),this._zero=null,this._crossFade.dispose(),this._crossFade=null,this._splitter.dispose(),this._splitter=null,this._merger.dispose(),this._merger=null,this.pan.dispose(),this.pan=null,this._a2g.dispose(),this._a2g=null),this},t.Panner}),t(function(t){return t.Panner3D=function(){var e=this.optionsObject(arguments,["positionX","positionY","positionZ"],t.Panner3D.defaults);this._panner=this.input=this.output=this.context.createPanner(),this._panner.panningModel=e.panningModel,this._panner.maxDistance=e.maxDistance,this._panner.distanceModel=e.distanceModel,this._panner.coneOuterGain=e.coneOuterGain,this._panner.coneOuterAngle=e.coneOuterAngle,this._panner.coneInnerAngle=e.coneInnerAngle,this._panner.refDistance=e.refDistance,this._panner.rolloffFactor=e.rolloffFactor,this._orientation=[e.orientationX,e.orientationY,e.orientationZ],this._position=[e.positionX,e.positionY,e.positionZ],this.orientationX=e.orientationX,this.orientationY=e.orientationY,this.orientationZ=e.orientationZ,this.positionX=e.positionX,this.positionY=e.positionY,this.positionZ=e.positionZ},t.extend(t.Panner3D),t.Panner3D.defaults={positionX:0,positionY:0,positionZ:0,orientationX:0,orientationY:0,orientationZ:0,panningModel:"equalpower",maxDistance:1e4,distanceModel:"inverse",coneOuterGain:0,coneOuterAngle:360,coneInnerAngle:360,refDistance:1,rolloffFactor:1},t.Panner3D.prototype._rampTimeConstant=.01,t.Panner3D.prototype.setPosition=function(t,e,i){if(this._panner.positionX){var s=this.now();this._panner.positionX.setTargetAtTime(t,s,this._rampTimeConstant),this._panner.positionY.setTargetAtTime(e,s,this._rampTimeConstant),this._panner.positionZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this._panner.setPosition(t,e,i);return this._position=Array.prototype.slice.call(arguments),this},t.Panner3D.prototype.setOrientation=function(t,e,i){if(this._panner.orientationX){var s=this.now();this._panner.orientationX.setTargetAtTime(t,s,this._rampTimeConstant),this._panner.orientationY.setTargetAtTime(e,s,this._rampTimeConstant),this._panner.orientationZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this._panner.setOrientation(t,e,i);return this._orientation=Array.prototype.slice.call(arguments),this},Object.defineProperty(t.Panner3D.prototype,"positionX",{set:function(t){this._position[0]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[0]}}),Object.defineProperty(t.Panner3D.prototype,"positionY",{set:function(t){this._position[1]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[1]}}),Object.defineProperty(t.Panner3D.prototype,"positionZ",{set:function(t){this._position[2]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[2]}}),Object.defineProperty(t.Panner3D.prototype,"orientationX",{set:function(t){this._orientation[0]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[0]}}),Object.defineProperty(t.Panner3D.prototype,"orientationY",{set:function(t){this._orientation[1]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[1]}}),Object.defineProperty(t.Panner3D.prototype,"orientationZ",{set:function(t){this._orientation[2]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[2]}}),t.Panner3D._aliasProperty=function(e){Object.defineProperty(t.Panner3D.prototype,e,{set:function(t){this._panner[e]=t},get:function(){return this._panner[e]}})},t.Panner3D._aliasProperty("panningModel"),t.Panner3D._aliasProperty("refDistance"),t.Panner3D._aliasProperty("rolloffFactor"),t.Panner3D._aliasProperty("distanceModel"),t.Panner3D._aliasProperty("coneInnerAngle"),t.Panner3D._aliasProperty("coneOuterAngle"),t.Panner3D._aliasProperty("coneOuterGain"),t.Panner3D._aliasProperty("maxDistance"),t.Panner3D.prototype.dispose=function(){return this._panner.disconnect(),this._panner=null,this._orientation=null,this._position=null,this},t.Panner3D}),t(function(t){return t.PanVol=function(){var e=this.optionsObject(arguments,["pan","volume"],t.PanVol.defaults);this._panner=this.input=new t.Panner(e.pan),this.pan=this._panner.pan,this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._panner.connect(this._volume),this._readOnly(["pan","volume"])},t.extend(t.PanVol),t.PanVol.defaults={pan:.5,volume:0},t.PanVol.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["pan","volume"]),this._panner.dispose(),this._panner=null,this.pan=null,this._volume.dispose(),this._volume=null,this.volume=null,this},t.PanVol}),t(function(t){return t.CtrlInterpolate=function(){var e=this.optionsObject(arguments,["values","index"],t.CtrlInterpolate.defaults);this.values=e.values,this.index=e.index},t.extend(t.CtrlInterpolate),t.CtrlInterpolate.defaults={index:0,values:[]},Object.defineProperty(t.CtrlInterpolate.prototype,"value",{get:function(){var t=this.index;t=Math.min(t,this.values.length-1);var e=Math.floor(t),i=this.values[e],s=this.values[Math.ceil(t)];return this._interpolate(t-e,i,s)}}),t.CtrlInterpolate.prototype._interpolate=function(t,e,i){if(this.isArray(e)){for(var s=[],n=0;n<e.length;n++)s[n]=this._interpolate(t,e[n],i[n]);return s}if(this.isObject(e)){var o={};for(var r in e)o[r]=this._interpolate(t,e[r],i[r]);return o}return e=this._toNumber(e),i=this._toNumber(i),(1-t)*e+t*i},t.CtrlInterpolate.prototype._toNumber=function(t){return this.isNumber(t)?t:this.toSeconds(t)},t.CtrlInterpolate.prototype.dispose=function(){this.values=null},t.CtrlInterpolate}),t(function(t){return t.CtrlMarkov=function(t,e){this.values=this.defaultArg(t,{}),this.value=this.defaultArg(e,Object.keys(this.values)[0])},t.extend(t.CtrlMarkov),t.CtrlMarkov.prototype.next=function(){if(this.values.hasOwnProperty(this.value)){var t=this.values[this.value];if(this.isArray(t))for(var e=this._getProbDistribution(t),i=Math.random(),s=0,n=0;n<e.length;n++){var o=e[n];if(i>s&&i<s+o){var r=t[n];this.isObject(r)?this.value=r.value:this.value=r}s+=o}else this.value=t}return this.value},t.CtrlMarkov.prototype._getProbDistribution=function(t){for(var e=[],i=0,s=!1,n=0;n<t.length;n++){var o=t[n];this.isObject(o)?(s=!0,e[n]=o.probability):e[n]=1/t.length,i+=e[n]}if(s)for(var r=0;r<e.length;r++)e[r]=e[r]/i;return e},t.CtrlMarkov.prototype.dispose=function(){this.values=null},t.CtrlMarkov}),t(function(t){return t.CtrlPattern=function(){var e=this.optionsObject(arguments,["values","type"],t.CtrlPattern.defaults);this.values=e.values,this.index=0,this._type=null,this._shuffled=null,this._direction=null,this.type=e.type},t.extend(t.CtrlPattern),t.CtrlPattern.Type={Up:"up",Down:"down",UpDown:"upDown",DownUp:"downUp",AlternateUp:"alternateUp",AlternateDown:"alternateDown",Random:"random",RandomWalk:"randomWalk",RandomOnce:"randomOnce"},t.CtrlPattern.defaults={type:t.CtrlPattern.Type.Up,values:[]},Object.defineProperty(t.CtrlPattern.prototype,"value",{get:function(){if(0!==this.values.length){if(1===this.values.length)return this.values[0];this.index=Math.min(this.index,this.values.length-1);var e=this.values[this.index];return this.type===t.CtrlPattern.Type.RandomOnce&&(this.values.length!==this._shuffled.length&&this._shuffleValues(),e=this.values[this._shuffled[this.index]]),e}}}),Object.defineProperty(t.CtrlPattern.prototype,"type",{get:function(){return this._type},set:function(e){this._type=e,this._shuffled=null,this._type===t.CtrlPattern.Type.Up||this._type===t.CtrlPattern.Type.UpDown||this._type===t.CtrlPattern.Type.RandomOnce||this._type===t.CtrlPattern.Type.AlternateUp?this.index=0:this._type!==t.CtrlPattern.Type.Down&&this._type!==t.CtrlPattern.Type.DownUp&&this._type!==t.CtrlPattern.Type.AlternateDown||(this.index=this.values.length-1),this._type===t.CtrlPattern.Type.UpDown||this._type===t.CtrlPattern.Type.AlternateUp?this._direction=t.CtrlPattern.Type.Up:this._type!==t.CtrlPattern.Type.DownUp&&this._type!==t.CtrlPattern.Type.AlternateDown||(this._direction=t.CtrlPattern.Type.Down),this._type===t.CtrlPattern.Type.RandomOnce?this._shuffleValues():this._type===t.CtrlPattern.Random&&(this.index=Math.floor(Math.random()*this.values.length))}}),t.CtrlPattern.prototype.next=function(){var e=this.type;return e===t.CtrlPattern.Type.Up?++this.index>=this.values.length&&(this.index=0):e===t.CtrlPattern.Type.Down?--this.index<0&&(this.index=this.values.length-1):e===t.CtrlPattern.Type.UpDown||e===t.CtrlPattern.Type.DownUp?(this._direction===t.CtrlPattern.Type.Up?this.index++:this.index--,this.index<0?(this.index=1,this._direction=t.CtrlPattern.Type.Up):this.index>=this.values.length&&(this.index=this.values.length-2,this._direction=t.CtrlPattern.Type.Down)):e===t.CtrlPattern.Type.Random?this.index=Math.floor(Math.random()*this.values.length):e===t.CtrlPattern.Type.RandomWalk?Math.random()<.5?(this.index--,this.index=Math.max(this.index,0)):(this.index++,this.index=Math.min(this.index,this.values.length-1)):e===t.CtrlPattern.Type.RandomOnce?++this.index>=this.values.length&&(this.index=0,this._shuffleValues()):e===t.CtrlPattern.Type.AlternateUp?(this._direction===t.CtrlPattern.Type.Up?(this.index+=2,this._direction=t.CtrlPattern.Type.Down):(this.index-=1,this._direction=t.CtrlPattern.Type.Up),this.index>=this.values.length&&(this.index=0,this._direction=t.CtrlPattern.Type.Up)):e===t.CtrlPattern.Type.AlternateDown&&(this._direction===t.CtrlPattern.Type.Up?(this.index+=1,this._direction=t.CtrlPattern.Type.Down):(this.index-=2,this._direction=t.CtrlPattern.Type.Up),this.index<0&&(this.index=this.values.length-1,this._direction=t.CtrlPattern.Type.Down)),this.value},t.CtrlPattern.prototype._shuffleValues=function(){var t=[];this._shuffled=[];for(var e=0;e<this.values.length;e++)t[e]=e;for(;t.length>0;){var i=t.splice(Math.floor(t.length*Math.random()),1);this._shuffled.push(i[0])}},t.CtrlPattern.prototype.dispose=function(){this._shuffled=null,this.values=null},t.CtrlPattern}),t(function(t){return t.CtrlRandom=function(){var e=this.optionsObject(arguments,["min","max"],t.CtrlRandom.defaults);this.min=e.min,this.max=e.max,this.integer=e.integer},t.extend(t.CtrlRandom),t.CtrlRandom.defaults={min:0,max:1,integer:!1},Object.defineProperty(t.CtrlRandom.prototype,"value",{get:function(){var t=this.toSeconds(this.min),e=this.toSeconds(this.max),i=Math.random(),s=i*t+(1-i)*e;return this.integer&&(s=Math.floor(s)),s}}),t.CtrlRandom}),t(function(t){return window.AudioBuffer&&!AudioBuffer.prototype.copyToChannel&&(AudioBuffer.prototype.copyToChannel=function(t,e,i){var s=this.getChannelData(e);i=i||0;for(var n=0;n<s.length;n++)s[n+i]=t[n]},AudioBuffer.prototype.copyFromChannel=function(t,e,i){var s=this.getChannelData(e);i=i||0;for(var n=0;n<s.length;n++)t[n]=s[n+i]}),t.Buffer=function(){var e=this.optionsObject(arguments,["url","onload","onerror"],t.Buffer.defaults);this._buffer=null,this._reversed=e.reverse,this._xhr=null,e.url instanceof AudioBuffer||e.url instanceof t.Buffer?(this.set(e.url),e.onload&&e.onload(this)):this.isString(e.url)&&this.load(e.url,e.onload,e.onerror)},t.extend(t.Buffer),t.Buffer.defaults={url:void 0,reverse:!1},t.Buffer.prototype.set=function(e){return e instanceof t.Buffer?this._buffer=e.get():this._buffer=e,this},t.Buffer.prototype.get=function(){return this._buffer},t.Buffer.prototype.load=function(e,i,s){return new Promise(function(n,o){this._xhr=t.Buffer.load(e,function(t){this._xhr=null,this.set(t),n(this),i&&i(this)}.bind(this),function(t){this._xhr=null,o(t),s&&s(t)}.bind(this))}.bind(this))},t.Buffer.prototype.dispose=function(){return t.Emitter.prototype.dispose.call(this),this._buffer=null,this._xhr&&(t.Buffer._currentDownloads--,this._xhr.abort(),this._xhr=null),this},Object.defineProperty(t.Buffer.prototype,"loaded",{get:function(){return this.length>0}}),Object.defineProperty(t.Buffer.prototype,"duration",{get:function(){return this._buffer?this._buffer.duration:0}}),Object.defineProperty(t.Buffer.prototype,"length",{get:function(){return this._buffer?this._buffer.length:0}}),Object.defineProperty(t.Buffer.prototype,"numberOfChannels",{get:function(){return this._buffer?this._buffer.numberOfChannels:0}}),t.Buffer.prototype.fromArray=function(t){var e=t[0].length>0,i=e?t.length:1,s=e?t[0].length:t.length,n=this.context.createBuffer(i,s,this.context.sampleRate);e||1!==i||(t=[t]);for(var o=0;o<i;o++)n.copyToChannel(t[o],o);return this._buffer=n,this},t.Buffer.prototype.toMono=function(t){if(this.isNumber(t))this.fromArray(this.toArray(t));else{for(var e=new Float32Array(this.length),i=this.numberOfChannels,s=0;s<i;s++)for(var n=this.toArray(s),o=0;o<n.length;o++)e[o]+=n[o];e=e.map(function(t){return t/i}),this.fromArray(e)}return this},t.Buffer.prototype.toArray=function(t){if(this.isNumber(t))return this.getChannelData(t);if(1===this.numberOfChannels)return this.toArray(0);for(var e=[],i=0;i<this.numberOfChannels;i++)e[i]=this.getChannelData(i);return e},t.Buffer.prototype.getChannelData=function(t){return this._buffer.getChannelData(t)},t.Buffer.prototype.slice=function(e,i){i=this.defaultArg(i,this.duration);for(var s=Math.floor(this.context.sampleRate*this.toSeconds(e)),n=Math.floor(this.context.sampleRate*this.toSeconds(i)),o=[],r=0;r<this.numberOfChannels;r++)o[r]=this.toArray(r).slice(s,n);return(new t.Buffer).fromArray(o)},t.Buffer.prototype._reverse=function(){if(this.loaded)for(var t=0;t<this.numberOfChannels;t++)Array.prototype.reverse.call(this.getChannelData(t));return this},Object.defineProperty(t.Buffer.prototype,"reverse",{get:function(){return this._reversed},set:function(t){this._reversed!==t&&(this._reversed=t,this._reverse())}}),t.Emitter.mixin(t.Buffer),t.Buffer._downloadQueue=[],t.Buffer._currentDownloads=0,t.Buffer.baseUrl="",t.Buffer.load=function(e,i,s){function n(e){if(!s)throw new Error(e);s(e),t.Buffer.emit("error",e)}function o(){for(var e=0,i=0;i<t.Buffer._downloadQueue.length;i++)e+=t.Buffer._downloadQueue[i].progress;t.Buffer.emit("progress",e/t.Buffer._downloadQueue.length)}i=i||t.noOp;var r=new XMLHttpRequest;return r.open("GET",t.Buffer.baseUrl+e,!0),r.responseType="arraybuffer",r.progress=0,t.Buffer._currentDownloads++,t.Buffer._downloadQueue.push(r),r.addEventListener("load",function(){200===r.status?t.context.decodeAudioData(r.response,function(e){r.progress=1,o(),i(e),0===--t.Buffer._currentDownloads&&(t.Buffer._downloadQueue=[],t.Buffer.emit("load"))},function(){n("Tone.Buffer: could not decode audio data: "+e)}):n("Tone.Buffer: could not locate file: "+e)}),r.addEventListener("error",n),r.addEventListener("progress",function(t){t.lengthComputable&&(r.progress=t.loaded/t.total*.95,o())}),r.send(),r},t.Buffer.cancelDownloads=function(){return t.Buffer._downloadQueue.forEach(function(t){t.abort()}),t.Buffer._currentDownloads=0,t.Buffer},t.Buffer.supportsType=function(t){var e=t.split(".");return e=e[e.length-1],""!==document.createElement("audio").canPlayType("audio/"+e)},t.loaded=function(){function e(){t.Buffer.off("load",i),t.Buffer.off("error",s)}var i,s;return new Promise(function(e,n){i=function(){e()},s=function(){n()},t.Buffer.on("load",i),t.Buffer.on("error",s)}).then(e).catch(function(t){throw e(),new Error(t)})},t.Buffer}),t(function(t){return t.Buffers=function(t,e,i){this._buffers={},this.baseUrl=this.defaultArg(i,""),t=this._flattenUrls(t),this._loadingCount=0;for(var s in t)this._loadingCount++,this.add(s,t[s],this._bufferLoaded.bind(this,e))},t.extend(t.Buffers),t.Buffers.prototype.has=function(t){return this._buffers.hasOwnProperty(t)},t.Buffers.prototype.get=function(t){if(this.has(t))return this._buffers[t];throw new Error("Tone.Buffers: no buffer named "+t)},t.Buffers.prototype._bufferLoaded=function(t){0===--this._loadingCount&&t&&t(this)},Object.defineProperty(t.Buffers.prototype,"loaded",{get:function(){var t=!0;for(var e in this._buffers){var i=this.get(e);t=t&&i.loaded}return t}}),t.Buffers.prototype.add=function(e,i,s){return s=this.defaultArg(s,t.noOp),i instanceof t.Buffer?(this._buffers[e]=i,s(this)):i instanceof AudioBuffer?(this._buffers[e]=new t.Buffer(i),s(this)):this.isString(i)&&(this._buffers[e]=new t.Buffer(this.baseUrl+i,s)),this},t.Buffers.prototype._flattenUrls=function(t){var e={};for(var i in t)if(t.hasOwnProperty(i))if(this.isObject(t[i])){var s=this._flattenUrls(t[i]);for(var n in s)s.hasOwnProperty(n)&&(e[i+"."+n]=s[n])}else e[i]=t[i];return e},t.Buffers.prototype.dispose=function(){for(var t in this._buffers)this._buffers[t].dispose();return this._buffers=null,this},t.Buffers}),t(function(t){var e={};return t.prototype.send=function(i,s){e.hasOwnProperty(i)||(e[i]=this.context.createGain()),s=this.defaultArg(s,0);var n=new t.Gain(s,t.Type.Decibels);return this.output.chain(n,e[i]),n},t.prototype.receive=function(t,i){return e.hasOwnProperty(t)||(e[t]=this.context.createGain()),this.isUndef(i)&&(i=this.input),e[t].connect(i),this},t.Context.on("init",function(t){t.Buses?e=t.Buses:(e={},t.Buses=e)}),t}),t(function(t){return t.Draw=function(){this._events=new t.Timeline,this.expiration=.25,this.anticipation=.008,this._boundDrawLoop=this._drawLoop.bind(this)},t.extend(t.Draw),t.Draw.prototype.schedule=function(t,e){return this._events.add({callback:t,time:this.toSeconds(e)}),1===this._events.length&&requestAnimationFrame(this._boundDrawLoop),this},t.Draw.prototype.cancel=function(t){return this._events.cancel(this.toSeconds(t)),this},t.Draw.prototype._drawLoop=function(){for(var e=t.now();this._events.length&&this._events.peek().time-this.anticipation<=e;){var i=this._events.shift();e-i.time<=this.expiration&&i.callback()}this._events.length>0&&requestAnimationFrame(this._boundDrawLoop)},t.Draw=new t.Draw,t.Draw}),t(function(t){t.Listener=function(){var t=this.optionsObject(arguments,["positionX","positionY","positionZ"],e.defaults);this._orientation=[t.forwardX,t.forwardY,t.forwardZ,t.upX,t.upY,t.upZ],this._position=[t.positionX,t.positionY,t.positionZ],this.forwardX=t.forwardX,this.forwardY=t.forwardY,this.forwardZ=t.forwardZ,this.upX=t.upX,this.upY=t.upY,this.upZ=t.upZ,this.positionX=t.positionX,this.positionY=t.positionY,this.positionZ=t.positionZ},t.extend(t.Listener),t.Listener.defaults={positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:1,upX:0,upY:1,upZ:0},t.Listener.prototype._rampTimeConstant=.01,t.Listener.prototype.setPosition=function(t,e,i){if(this.context.listener.positionX){var s=this.now();this.context.listener.positionX.setTargetAtTime(t,s,this._rampTimeConstant),this.context.listener.positionY.setTargetAtTime(e,s,this._rampTimeConstant),this.context.listener.positionZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this.context.listener.setPosition(t,e,i);return this._position=Array.prototype.slice.call(arguments),this},t.Listener.prototype.setOrientation=function(t,e,i,s,n,o){if(this.context.listener.forwardX){var r=this.now();this.context.listener.forwardX.setTargetAtTime(t,r,this._rampTimeConstant),this.context.listener.forwardY.setTargetAtTime(e,r,this._rampTimeConstant),this.context.listener.forwardZ.setTargetAtTime(i,r,this._rampTimeConstant),this.context.listener.upX.setTargetAtTime(s,r,this._rampTimeConstant),this.context.listener.upY.setTargetAtTime(n,r,this._rampTimeConstant),this.context.listener.upZ.setTargetAtTime(o,r,this._rampTimeConstant)}else this.context.listener.setOrientation(t,e,i,s,n,o);return this._orientation=Array.prototype.slice.call(arguments),this},Object.defineProperty(t.Listener.prototype,"positionX",{set:function(t){this._position[0]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[0]}}),Object.defineProperty(t.Listener.prototype,"positionY",{set:function(t){this._position[1]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[1]}}),Object.defineProperty(t.Listener.prototype,"positionZ",{set:function(t){this._position[2]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[2]}}),Object.defineProperty(t.Listener.prototype,"forwardX",{set:function(t){this._orientation[0]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[0]}}),Object.defineProperty(t.Listener.prototype,"forwardY",{set:function(t){this._orientation[1]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[1]}}),Object.defineProperty(t.Listener.prototype,"forwardZ",{set:function(t){this._orientation[2]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[2]}}),Object.defineProperty(t.Listener.prototype,"upX",{set:function(t){this._orientation[3]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[3]}}),Object.defineProperty(t.Listener.prototype,"upY",{set:function(t){this._orientation[4]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[4]}}),Object.defineProperty(t.Listener.prototype,"upZ",{set:function(t){this._orientation[5]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[5]}}),t.Listener.prototype.dispose=function(){return this._orientation=null,this._position=null,this};var e=t.Listener;return t.Listener=new e,t.Context.on("init",function(i){i.Listener instanceof e?t.Listener=i.Listener:t.Listener=new e,i.Listener=t.Listener}),t.Listener}),t(function(t){return!window.hasOwnProperty("OfflineAudioContext")&&window.hasOwnProperty("webkitOfflineAudioContext")&&(window.OfflineAudioContext=window.webkitOfflineAudioContext),t.OfflineContext=function(e,i,s){var n=new OfflineAudioContext(e,i*s,s);t.Context.call(this,n),this._duration=i,this._currentTime=0,this.lookAhead=this.blockTime,this.updateInterval=this.blockTime},t.extend(t.OfflineContext,t.Context),t.OfflineContext.prototype.now=function(){return this._currentTime},t.OfflineContext.prototype._createWorker=function(){return{postMessage:function(){}}},t.OfflineContext.prototype.render=function(){for(;this._duration-this._currentTime>=0;)this.emit("tick"),this._currentTime+=t.prototype.blockTime;return new Promise(function(t){this._context.oncomplete=function(e){t(e.renderedBuffer)},this._context.startRendering()}.bind(this))},t.OfflineContext}),t(function(t){return t.Offline=function(e,i){var s=t.context.sampleRate,n=t.context,o=new t.OfflineContext(2,i,s);t.context=o,e(t.Transport);var r=o.render();return t.context=n,r.then(function(e){return new t.Buffer(e)})},t.Offline}),t(function(t){return t.Effect=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,["wet"],t.Effect.defaults);this._dryWet=new t.CrossFade(e.wet),this.wet=this._dryWet.fade,this.effectSend=new t.Gain,this.effectReturn=new t.Gain,this.input.connect(this._dryWet.a),this.input.connect(this.effectSend),this.effectReturn.connect(this._dryWet.b),this._dryWet.connect(this.output),this._readOnly(["wet"])},t.extend(t.Effect),t.Effect.defaults={wet:1},t.Effect.prototype.connectEffect=function(t){return this.effectSend.chain(t,this.effectReturn),this},t.Effect.prototype.dispose=function(){return t.prototype.dispose.call(this),this._dryWet.dispose(),this._dryWet=null,this.effectSend.dispose(),this.effectSend=null,this.effectReturn.dispose(),this.effectReturn=null,this._writable(["wet"]),this.wet=null,this},t.Effect}),t(function(t){return t.AutoFilter=function(){var e=this.optionsObject(arguments,["frequency","baseFrequency","octaves"],t.AutoFilter.defaults);t.Effect.call(this,e),this._lfo=new t.LFO({frequency:e.frequency,amplitude:e.depth}),this.depth=this._lfo.amplitude,this.frequency=this._lfo.frequency,this.filter=new t.Filter(e.filter),this._octaves=0,this.connectEffect(this.filter),this._lfo.connect(this.filter.frequency),this.type=e.type,this._readOnly(["frequency","depth"]),this.octaves=e.octaves,this.baseFrequency=e.baseFrequency},t.extend(t.AutoFilter,t.Effect),t.AutoFilter.defaults={frequency:1,type:"sine",depth:1,baseFrequency:200,octaves:2.6,filter:{type:"lowpass",rolloff:-12,Q:1}},t.AutoFilter.prototype.start=function(t){return this._lfo.start(t),this},t.AutoFilter.prototype.stop=function(t){return this._lfo.stop(t),this},t.AutoFilter.prototype.sync=function(t){return this._lfo.sync(t),this},t.AutoFilter.prototype.unsync=function(){return this._lfo.unsync(),this},Object.defineProperty(t.AutoFilter.prototype,"type",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),Object.defineProperty(t.AutoFilter.prototype,"baseFrequency",{get:function(){return this._lfo.min},set:function(t){this._lfo.min=this.toFrequency(t),this.octaves=this._octaves}}),Object.defineProperty(t.AutoFilter.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._lfo.max=this.baseFrequency*Math.pow(2,t)}}),t.AutoFilter.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._lfo.dispose(),this._lfo=null,this.filter.dispose(),this.filter=null,this._writable(["frequency","depth"]),this.frequency=null,this.depth=null,this},t.AutoFilter}),t(function(t){return t.AutoPanner=function(){var e=this.optionsObject(arguments,["frequency"],t.AutoPanner.defaults);t.Effect.call(this,e),this._lfo=new t.LFO({frequency:e.frequency,amplitude:e.depth,min:-1,max:1}),this.depth=this._lfo.amplitude,this._panner=new t.Panner,this.frequency=this._lfo.frequency,this.connectEffect(this._panner),this._lfo.connect(this._panner.pan),this.type=e.type,this._readOnly(["depth","frequency"])},t.extend(t.AutoPanner,t.Effect),t.AutoPanner.defaults={frequency:1,type:"sine",depth:1},t.AutoPanner.prototype.start=function(t){return this._lfo.start(t),this},t.AutoPanner.prototype.stop=function(t){return this._lfo.stop(t),this},t.AutoPanner.prototype.sync=function(t){return this._lfo.sync(t),this},t.AutoPanner.prototype.unsync=function(){return this._lfo.unsync(),this},Object.defineProperty(t.AutoPanner.prototype,"type",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),t.AutoPanner.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._lfo.dispose(),this._lfo=null,this._panner.dispose(),this._panner=null,this._writable(["depth","frequency"]),this.frequency=null,this.depth=null,this},t.AutoPanner}),t(function(t){return t.AutoWah=function(){var e=this.optionsObject(arguments,["baseFrequency","octaves","sensitivity"],t.AutoWah.defaults);t.Effect.call(this,e),this.follower=new t.Follower(e.follower),this._sweepRange=new t.ScaleExp(0,1,.5),this._baseFrequency=e.baseFrequency,this._octaves=e.octaves,this._inputBoost=new t.Gain,this._bandpass=new t.Filter({rolloff:-48,frequency:0,Q:e.Q}),this._peaking=new t.Filter(0,"peaking"),this._peaking.gain.value=e.gain,this.gain=this._peaking.gain,this.Q=this._bandpass.Q,this.effectSend.chain(this._inputBoost,this.follower,this._sweepRange),this._sweepRange.connect(this._bandpass.frequency),this._sweepRange.connect(this._peaking.frequency),this.effectSend.chain(this._bandpass,this._peaking,this.effectReturn),this._setSweepRange(),this.sensitivity=e.sensitivity,this._readOnly(["gain","Q"])},t.extend(t.AutoWah,t.Effect),t.AutoWah.defaults={baseFrequency:100,octaves:6,sensitivity:0,Q:2,gain:2,follower:{attack:.3,release:.5}},Object.defineProperty(t.AutoWah.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._setSweepRange()}}),Object.defineProperty(t.AutoWah.prototype,"baseFrequency",{get:function(){return this._baseFrequency},set:function(t){this._baseFrequency=t,this._setSweepRange()}}),Object.defineProperty(t.AutoWah.prototype,"sensitivity",{get:function(){return this.gainToDb(1/this._inputBoost.gain.value)},set:function(t){this._inputBoost.gain.value=1/this.dbToGain(t)}}),t.AutoWah.prototype._setSweepRange=function(){this._sweepRange.min=this._baseFrequency,this._sweepRange.max=Math.min(this._baseFrequency*Math.pow(2,this._octaves),this.context.sampleRate/2)},t.AutoWah.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this.follower.dispose(),this.follower=null,this._sweepRange.dispose(),this._sweepRange=null,this._bandpass.dispose(),this._bandpass=null,this._peaking.dispose(),this._peaking=null,this._inputBoost.dispose(),this._inputBoost=null,this._writable(["gain","Q"]),this.gain=null,this.Q=null,this},t.AutoWah}),t(function(t){return t.BitCrusher=function(){var e=this.optionsObject(arguments,["bits"],t.BitCrusher.defaults);t.Effect.call(this,e);var i=1/Math.pow(2,e.bits-1);this._subtract=new t.Subtract,this._modulo=new t.Modulo(i),this._bits=e.bits,this.effectSend.fan(this._subtract,this._modulo),this._modulo.connect(this._subtract,0,1),this._subtract.connect(this.effectReturn)},t.extend(t.BitCrusher,t.Effect),t.BitCrusher.defaults={bits:4},Object.defineProperty(t.BitCrusher.prototype,"bits",{get:function(){return this._bits},set:function(t){this._bits=t;var e=1/Math.pow(2,t-1);this._modulo.value=e}}),t.BitCrusher.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._subtract.dispose(),this._subtract=null,this._modulo.dispose(),this._modulo=null,this},t.BitCrusher}),t(function(t){return t.Chebyshev=function(){var e=this.optionsObject(arguments,["order"],t.Chebyshev.defaults);t.Effect.call(this,e),this._shaper=new t.WaveShaper(4096),this._order=e.order,this.connectEffect(this._shaper),this.order=e.order,this.oversample=e.oversample},t.extend(t.Chebyshev,t.Effect),t.Chebyshev.defaults={order:1,oversample:"none"},t.Chebyshev.prototype._getCoefficient=function(t,e,i){return i.hasOwnProperty(e)?i[e]:(i[e]=0===e?0:1===e?t:2*t*this._getCoefficient(t,e-1,i)-this._getCoefficient(t,e-2,i),i[e])},Object.defineProperty(t.Chebyshev.prototype,"order",{get:function(){return this._order},set:function(t){this._order=t;for(var e=new Array(4096),i=e.length,s=0;s<i;++s){var n=2*s/i-1;e[s]=0===n?0:this._getCoefficient(n,t,{})}this._shaper.curve=e}}),Object.defineProperty(t.Chebyshev.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){this._shaper.oversample=t}}),t.Chebyshev.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this},t.Chebyshev}),t(function(t){return t.StereoEffect=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,["wet"],t.Effect.defaults);this._dryWet=new t.CrossFade(e.wet),this.wet=this._dryWet.fade,this._split=new t.Split,this.effectSendL=this._split.left,this.effectSendR=this._split.right,this._merge=new t.Merge,this.effectReturnL=this._merge.left,this.effectReturnR=this._merge.right,this.input.connect(this._split),this.input.connect(this._dryWet,0,0),this._merge.connect(this._dryWet,0,1),this._dryWet.connect(this.output),this._readOnly(["wet"])},t.extend(t.StereoEffect,t.Effect),t.StereoEffect.prototype.dispose=function(){return t.prototype.dispose.call(this),this._dryWet.dispose(),this._dryWet=null,this._split.dispose(),this._split=null,this._merge.dispose(),this._merge=null,this.effectSendL=null,this.effectSendR=null,this.effectReturnL=null,this.effectReturnR=null,this._writable(["wet"]),this.wet=null,this},t.StereoEffect}),t(function(t){return t.FeedbackEffect=function(){var e=this.optionsObject(arguments,["feedback"]);e=this.defaultArg(e,t.FeedbackEffect.defaults),t.Effect.call(this,e),this._feedbackGain=new t.Gain(e.feedback,t.Type.NormalRange),this.feedback=this._feedbackGain.gain,this.effectReturn.chain(this._feedbackGain,this.effectSend),this._readOnly(["feedback"])},t.extend(t.FeedbackEffect,t.Effect),t.FeedbackEffect.defaults={feedback:.125},t.FeedbackEffect.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._writable(["feedback"]),this._feedbackGain.dispose(),this._feedbackGain=null,this.feedback=null,this},t.FeedbackEffect}),t(function(t){return t.StereoXFeedbackEffect=function(){var e=this.optionsObject(arguments,["feedback"],t.FeedbackEffect.defaults);t.StereoEffect.call(this,e),this.feedback=new t.Signal(e.feedback,t.Type.NormalRange),this._feedbackLR=new t.Gain,this._feedbackRL=new t.Gain,this.effectReturnL.chain(this._feedbackLR,this.effectSendR),this.effectReturnR.chain(this._feedbackRL,this.effectSendL),this.feedback.fan(this._feedbackLR.gain,this._feedbackRL.gain),this._readOnly(["feedback"])},t.extend(t.StereoXFeedbackEffect,t.FeedbackEffect),t.StereoXFeedbackEffect.prototype.dispose=function(){return t.StereoEffect.prototype.dispose.call(this),this._writable(["feedback"]),this.feedback.dispose(),this.feedback=null,this._feedbackLR.dispose(),this._feedbackLR=null,this._feedbackRL.dispose(),this._feedbackRL=null,this},t.StereoXFeedbackEffect}),t(function(t){return t.Chorus=function(){var e=this.optionsObject(arguments,["frequency","delayTime","depth"],t.Chorus.defaults);t.StereoXFeedbackEffect.call(this,e),this._depth=e.depth,this._delayTime=e.delayTime/1e3,this._lfoL=new t.LFO({frequency:e.frequency,min:0,max:1}),this._lfoR=new t.LFO({frequency:e.frequency,min:0,max:1,phase:180}),this._delayNodeL=new t.Delay,this._delayNodeR=new t.Delay,this.frequency=this._lfoL.frequency,this.effectSendL.chain(this._delayNodeL,this.effectReturnL),this.effectSendR.chain(this._delayNodeR,this.effectReturnR),this.effectSendL.connect(this.effectReturnL),this.effectSendR.connect(this.effectReturnR),this._lfoL.connect(this._delayNodeL.delayTime),this._lfoR.connect(this._delayNodeR.delayTime),this._lfoL.start(),this._lfoR.start(),this._lfoL.frequency.connect(this._lfoR.frequency),this.depth=this._depth,this.frequency.value=e.frequency,this.type=e.type,this._readOnly(["frequency"]),this.spread=e.spread},t.extend(t.Chorus,t.StereoXFeedbackEffect),t.Chorus.defaults={frequency:1.5,delayTime:3.5,depth:.7,feedback:.1,type:"sine",spread:180},Object.defineProperty(t.Chorus.prototype,"depth",{get:function(){return this._depth},set:function(t){this._depth=t;var e=this._delayTime*t;this._lfoL.min=Math.max(this._delayTime-e,0),this._lfoL.max=this._delayTime+e,this._lfoR.min=Math.max(this._delayTime-e,0),this._lfoR.max=this._delayTime+e}}),Object.defineProperty(t.Chorus.prototype,"delayTime",{get:function(){return 1e3*this._delayTime},set:function(t){this._delayTime=t/1e3,this.depth=this._depth}}),Object.defineProperty(t.Chorus.prototype,"type",{get:function(){return this._lfoL.type},set:function(t){this._lfoL.type=t,this._lfoR.type=t}}),Object.defineProperty(t.Chorus.prototype,"spread",{get:function(){return this._lfoR.phase-this._lfoL.phase},set:function(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}}),t.Chorus.prototype.dispose=function(){return t.StereoXFeedbackEffect.prototype.dispose.call(this),this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null,this._delayNodeL.dispose(),this._delayNodeL=null,this._delayNodeR.dispose(),this._delayNodeR=null,this._writable("frequency"),this.frequency=null,this},t.Chorus}),t(function(t){return t.Convolver=function(){var e=this.optionsObject(arguments,["url","onload"],t.Convolver.defaults);t.Effect.call(this,e),this._convolver=this.context.createConvolver(),this._buffer=new t.Buffer,this.isString(e.url)?this._buffer.load(e.url,function(t){this.buffer=t,e.onload()}.bind(this)):e.url&&(this.buffer=e.url,e.onload()),this.connectEffect(this._convolver)},t.extend(t.Convolver,t.Effect),t.Convolver.defaults={onload:t.noOp},Object.defineProperty(t.Convolver.prototype,"buffer",{get:function(){return this._buffer.get()},set:function(t){this._buffer.set(t),this._convolver.buffer=this._buffer.get()}}),t.Convolver.prototype.load=function(t,e){return this._buffer.load(t,function(t){this.buffer=t,e&&e()}.bind(this))},t.Convolver.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._convolver.disconnect(),this._convolver=null,this._buffer.dispose(),this._buffer=null,this},t.Convolver}),t(function(t){return t.Distortion=function(){var e=this.optionsObject(arguments,["distortion"],t.Distortion.defaults);t.Effect.call(this,e),this._shaper=new t.WaveShaper(4096),this._distortion=e.distortion,this.connectEffect(this._shaper),this.distortion=e.distortion,this.oversample=e.oversample},t.extend(t.Distortion,t.Effect),t.Distortion.defaults={distortion:.4,oversample:"none"},Object.defineProperty(t.Distortion.prototype,"distortion",{get:function(){return this._distortion},set:function(t){this._distortion=t;var e=100*t,i=Math.PI/180;this._shaper.setMap(function(t){return Math.abs(t)<.001?0:(3+e)*t*20*i/(Math.PI+e*Math.abs(t))})}}),Object.defineProperty(t.Distortion.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){this._shaper.oversample=t}}),t.Distortion.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this},t.Distortion}),t(function(t){return t.FeedbackDelay=function(){var e=this.optionsObject(arguments,["delayTime","feedback"],t.FeedbackDelay.defaults);t.FeedbackEffect.call(this,e),this._delayNode=new t.Delay(e.delayTime),this.delayTime=this._delayNode.delayTime,this.connectEffect(this._delayNode),this._readOnly(["delayTime"])},t.extend(t.FeedbackDelay,t.FeedbackEffect),t.FeedbackDelay.defaults={delayTime:.25},t.FeedbackDelay.prototype.dispose=function(){return t.FeedbackEffect.prototype.dispose.call(this),this._delayNode.dispose(),this._delayNode=null,this._writable(["delayTime"]),this.delayTime=null,this},t.FeedbackDelay}),t(function(t){var e=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100],i=[225,556,441,341];return t.Freeverb=function(){var s=this.optionsObject(arguments,["roomSize","dampening"],t.Freeverb.defaults);t.StereoEffect.call(this,s),this.roomSize=new t.Signal(s.roomSize,t.Type.NormalRange),this.dampening=new t.Signal(s.dampening,t.Type.Frequency),this._combFilters=[],this._allpassFiltersL=[],this._allpassFiltersR=[];for(var n=0;n<i.length;n++){var o=this.context.createBiquadFilter();o.type="allpass",o.frequency.value=i[n],this._allpassFiltersL.push(o)}for(var r=0;r<i.length;r++){var a=this.context.createBiquadFilter();a.type="allpass",a.frequency.value=i[r],this._allpassFiltersR.push(a)}for(var h=0;h<e.length;h++){var l=new t.LowpassCombFilter(e[h]);h<e.length/2?this.effectSendL.chain(l,this._allpassFiltersL[0]):this.effectSendR.chain(l,this._allpassFiltersR[0]),this.roomSize.connect(l.resonance),this.dampening.connect(l.dampening),this._combFilters.push(l)}this.connectSeries.apply(this,this._allpassFiltersL),this.connectSeries.apply(this,this._allpassFiltersR),this._allpassFiltersL[this._allpassFiltersL.length-1].connect(this.effectReturnL),this._allpassFiltersR[this._allpassFiltersR.length-1].connect(this.effectReturnR),this._readOnly(["roomSize","dampening"])},t.extend(t.Freeverb,t.StereoEffect),t.Freeverb.defaults={roomSize:.7,dampening:3e3},t.Freeverb.prototype.dispose=function(){t.StereoEffect.prototype.dispose.call(this);for(var e=0;e<this._allpassFiltersL.length;e++)this._allpassFiltersL[e].disconnect(),this._allpassFiltersL[e]=null;this._allpassFiltersL=null;for(var i=0;i<this._allpassFiltersR.length;i++)this._allpassFiltersR[i].disconnect(),this._allpassFiltersR[i]=null;this._allpassFiltersR=null;for(var s=0;s<this._combFilters.length;s++)this._combFilters[s].dispose(),this._combFilters[s]=null;return this._combFilters=null,this._writable(["roomSize","dampening"]),this.roomSize.dispose(),this.roomSize=null,this.dampening.dispose(),this.dampening=null,this},t.Freeverb}),t(function(t){var e=[.06748,.06404,.08212,.09004],i=[.773,.802,.753,.733],s=[347,113,37];return t.JCReverb=function(){var n=this.optionsObject(arguments,["roomSize"],t.JCReverb.defaults);t.StereoEffect.call(this,n),this.roomSize=new t.Signal(n.roomSize,t.Type.NormalRange),this._scaleRoomSize=new t.Scale(-.733,.197),this._allpassFilters=[],this._feedbackCombFilters=[];for(var o=0;o<s.length;o++){var r=this.context.createBiquadFilter();r.type="allpass",r.frequency.value=s[o],this._allpassFilters.push(r)}for(var a=0;a<e.length;a++){var h=new t.FeedbackCombFilter(e[a],.1);this._scaleRoomSize.connect(h.resonance),h.resonance.value=i[a],this._allpassFilters[this._allpassFilters.length-1].connect(h),a<e.length/2?h.connect(this.effectReturnL):h.connect(this.effectReturnR),this._feedbackCombFilters.push(h)}this.roomSize.connect(this._scaleRoomSize),this.connectSeries.apply(this,this._allpassFilters),this.effectSendL.connect(this._allpassFilters[0]),this.effectSendR.connect(this._allpassFilters[0]),this._readOnly(["roomSize"])},t.extend(t.JCReverb,t.StereoEffect),t.JCReverb.defaults={roomSize:.5},t.JCReverb.prototype.dispose=function(){t.StereoEffect.prototype.dispose.call(this);for(var e=0;e<this._allpassFilters.length;e++)this._allpassFilters[e].disconnect(),this._allpassFilters[e]=null;this._allpassFilters=null;for(var i=0;i<this._feedbackCombFilters.length;i++)this._feedbackCombFilters[i].dispose(),this._feedbackCombFilters[i]=null;return this._feedbackCombFilters=null,this._writable(["roomSize"]),this.roomSize.dispose(),this.roomSize=null,this._scaleRoomSize.dispose(),this._scaleRoomSize=null,this},t.JCReverb}),t(function(t){return t.MidSideEffect=function(){t.Effect.apply(this,arguments),this._midSideSplit=new t.MidSideSplit,this._midSideMerge=new t.MidSideMerge,this.midSend=this._midSideSplit.mid,this.sideSend=this._midSideSplit.side,this.midReturn=this._midSideMerge.mid,this.sideReturn=this._midSideMerge.side,this.effectSend.connect(this._midSideSplit),this._midSideMerge.connect(this.effectReturn)},t.extend(t.MidSideEffect,t.Effect),t.MidSideEffect.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._midSideSplit.dispose(),this._midSideSplit=null,this._midSideMerge.dispose(),this._midSideMerge=null,this.midSend=null,this.sideSend=null,this.midReturn=null,this.sideReturn=null,this},t.MidSideEffect}),t(function(t){return t.Phaser=function(){var e=this.optionsObject(arguments,["frequency","octaves","baseFrequency"],t.Phaser.defaults);t.StereoEffect.call(this,e),this._lfoL=new t.LFO(e.frequency,0,1),this._lfoR=new t.LFO(e.frequency,0,1),this._lfoR.phase=180,this._baseFrequency=e.baseFrequency,this._octaves=e.octaves,this.Q=new t.Signal(e.Q,t.Type.Positive),this._filtersL=this._makeFilters(e.stages,this._lfoL,this.Q),this._filtersR=this._makeFilters(e.stages,this._lfoR,this.Q),this.frequency=this._lfoL.frequency,this.frequency.value=e.frequency,this.effectSendL.connect(this._filtersL[0]),this.effectSendR.connect(this._filtersR[0]),this._filtersL[e.stages-1].connect(this.effectReturnL),this._filtersR[e.stages-1].connect(this.effectReturnR),this._lfoL.frequency.connect(this._lfoR.frequency),this.baseFrequency=e.baseFrequency,this.octaves=e.octaves,this._lfoL.start(),this._lfoR.start(),this._readOnly(["frequency","Q"])},t.extend(t.Phaser,t.StereoEffect),t.Phaser.defaults={frequency:.5,octaves:3,stages:10,Q:10,baseFrequency:350},t.Phaser.prototype._makeFilters=function(t,e,i){for(var s=new Array(t),n=0;n<t;n++){var o=this.context.createBiquadFilter();o.type="allpass",i.connect(o.Q),e.connect(o.frequency),s[n]=o}return this.connectSeries.apply(this,s),s},Object.defineProperty(t.Phaser.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t;var e=this._baseFrequency*Math.pow(2,t);this._lfoL.max=e,this._lfoR.max=e}}),Object.defineProperty(t.Phaser.prototype,"baseFrequency",{get:function(){return this._baseFrequency},set:function(t){this._baseFrequency=t,this._lfoL.min=t,this._lfoR.min=t,this.octaves=this._octaves}}),t.Phaser.prototype.dispose=function(){t.StereoEffect.prototype.dispose.call(this),this._writable(["frequency","Q"]),this.Q.dispose(),this.Q=null,this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null;for(var e=0;e<this._filtersL.length;e++)this._filtersL[e].disconnect(),this._filtersL[e]=null;this._filtersL=null;for(var i=0;i<this._filtersR.length;i++)this._filtersR[i].disconnect(),this._filtersR[i]=null;return this._filtersR=null,this.frequency=null,this},t.Phaser}),t(function(t){return t.PingPongDelay=function(){var e=this.optionsObject(arguments,["delayTime","feedback"],t.PingPongDelay.defaults);t.StereoXFeedbackEffect.call(this,e),this._leftDelay=new t.Delay(0,e.maxDelayTime),this._rightDelay=new t.Delay(0,e.maxDelayTime),this._rightPreDelay=new t.Delay(0,e.maxDelayTime),this.delayTime=new t.Signal(e.delayTime,t.Type.Time),this.effectSendL.chain(this._leftDelay,this.effectReturnL),this.effectSendR.chain(this._rightPreDelay,this._rightDelay,this.effectReturnR),this.delayTime.fan(this._leftDelay.delayTime,this._rightDelay.delayTime,this._rightPreDelay.delayTime),this._feedbackLR.disconnect(),this._feedbackLR.connect(this._rightDelay),this._readOnly(["delayTime"])},t.extend(t.PingPongDelay,t.StereoXFeedbackEffect),t.PingPongDelay.defaults={delayTime:.25,maxDelayTime:1},t.PingPongDelay.prototype.dispose=function(){return t.StereoXFeedbackEffect.prototype.dispose.call(this),this._leftDelay.dispose(),this._leftDelay=null,this._rightDelay.dispose(),this._rightDelay=null,this._rightPreDelay.dispose(),this._rightPreDelay=null,this._writable(["delayTime"]),this.delayTime.dispose(),this.delayTime=null,this},t.PingPongDelay}),t(function(t){return t.PitchShift=function(){var e=this.optionsObject(arguments,["pitch"],t.PitchShift.defaults);t.FeedbackEffect.call(this,e),this._frequency=new t.Signal(0),this._delayA=new t.Delay(0,1),this._lfoA=new t.LFO({min:0,max:.1,type:"sawtooth"}).connect(this._delayA.delayTime),this._delayB=new t.Delay(0,1),this._lfoB=new t.LFO({min:0,max:.1,type:"sawtooth",phase:180}).connect(this._delayB.delayTime),this._crossFade=new t.CrossFade,this._crossFadeLFO=new t.LFO({min:0,max:1,type:"triangle",phase:90}).connect(this._crossFade.fade),this._feedbackDelay=new t.Delay(e.delayTime),this.delayTime=this._feedbackDelay.delayTime,this._readOnly("delayTime"),this._pitch=e.pitch,this._windowSize=e.windowSize,this._delayA.connect(this._crossFade.a),this._delayB.connect(this._crossFade.b),this._frequency.fan(this._lfoA.frequency,this._lfoB.frequency,this._crossFadeLFO.frequency),this.effectSend.fan(this._delayA,this._delayB),this._crossFade.chain(this._feedbackDelay,this.effectReturn);var i=this.now();this._lfoA.start(i),this._lfoB.start(i),this._crossFadeLFO.start(i),this.windowSize=this._windowSize},t.extend(t.PitchShift,t.FeedbackEffect),t.PitchShift.defaults={pitch:0,windowSize:.1,delayTime:0,feedback:0},Object.defineProperty(t.PitchShift.prototype,"pitch",{get:function(){return this._pitch},set:function(t){this._pitch=t;var e=0;t<0?(this._lfoA.min=0,this._lfoA.max=this._windowSize,this._lfoB.min=0,this._lfoB.max=this._windowSize,e=this.intervalToFrequencyRatio(t-1)+1):(this._lfoA.min=this._windowSize,this._lfoA.max=0,this._lfoB.min=this._windowSize,this._lfoB.max=0,e=this.intervalToFrequencyRatio(t)-1),this._frequency.value=e*(1.2/this._windowSize)}}),Object.defineProperty(t.PitchShift.prototype,"windowSize",{get:function(){return this._windowSize},set:function(t){this._windowSize=this.toSeconds(t),this.pitch=this._pitch}}),t.PitchShift.prototype.dispose=function(){return t.FeedbackEffect.prototype.dispose.call(this),this._frequency.dispose(),this._frequency=null,this._delayA.disconnect(),this._delayA=null,this._delayB.disconnect(),this._delayB=null,this._lfoA.dispose(),this._lfoA=null,this._lfoB.dispose(),this._lfoB=null,this._crossFade.dispose(),this._crossFade=null,this._crossFadeLFO.dispose(),this._crossFadeLFO=null,this._writable("delayTime"),this._feedbackDelay.dispose(),this._feedbackDelay=null,this.delayTime=null,this},t.PitchShift}),t(function(t){return t.StereoFeedbackEffect=function(){var e=this.optionsObject(arguments,["feedback"],t.FeedbackEffect.defaults);t.StereoEffect.call(this,e),this.feedback=new t.Signal(e.feedback,t.Type.NormalRange),this._feedbackL=new t.Gain,this._feedbackR=new t.Gain,this.effectReturnL.chain(this._feedbackL,this.effectSendL),this.effectReturnR.chain(this._feedbackR,this.effectSendR),this.feedback.fan(this._feedbackL.gain,this._feedbackR.gain),this._readOnly(["feedback"])},t.extend(t.StereoFeedbackEffect,t.FeedbackEffect),t.StereoFeedbackEffect.prototype.dispose=function(){return t.StereoEffect.prototype.dispose.call(this),this._writable(["feedback"]),this.feedback.dispose(),this.feedback=null,this._feedbackL.dispose(),this._feedbackL=null,this._feedbackR.dispose(),this._feedbackR=null,this},t.StereoFeedbackEffect}),t(function(t){return t.StereoWidener=function(){var e=this.optionsObject(arguments,["width"],t.StereoWidener.defaults);t.MidSideEffect.call(this,e),this.width=new t.Signal(e.width,t.Type.NormalRange),this._midMult=new t.Expr("$0 * ($1 * (1 - $2))"),this._sideMult=new t.Expr("$0 * ($1 * $2)"),this._two=new t.Signal(2),this._two.connect(this._midMult,0,1),this.width.connect(this._midMult,0,2),this._two.connect(this._sideMult,0,1),this.width.connect(this._sideMult,0,2),this.midSend.chain(this._midMult,this.midReturn),this.sideSend.chain(this._sideMult,this.sideReturn),this._readOnly(["width"])},t.extend(t.StereoWidener,t.MidSideEffect),t.StereoWidener.defaults={width:.5},t.StereoWidener.prototype.dispose=function(){return t.MidSideEffect.prototype.dispose.call(this),this._writable(["width"]),this.width.dispose(),this.width=null,this._midMult.dispose(),this._midMult=null,this._sideMult.dispose(),this._sideMult=null,this._two.dispose(),this._two=null,this},t.StereoWidener}),t(function(t){return t.Tremolo=function(){var e=this.optionsObject(arguments,["frequency","depth"],t.Tremolo.defaults);t.StereoEffect.call(this,e),this._lfoL=new t.LFO({phase:e.spread,min:1,max:0}),this._lfoR=new t.LFO({phase:e.spread,min:1,max:0}),this._amplitudeL=new t.Gain,this._amplitudeR=new t.Gain,this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.depth=new t.Signal(e.depth,t.Type.NormalRange),this._readOnly(["frequency","depth"]),this.effectSendL.chain(this._amplitudeL,this.effectReturnL),this.effectSendR.chain(this._amplitudeR,this.effectReturnR),this._lfoL.connect(this._amplitudeL.gain),this._lfoR.connect(this._amplitudeR.gain),this.frequency.fan(this._lfoL.frequency,this._lfoR.frequency),this.depth.fan(this._lfoR.amplitude,this._lfoL.amplitude),this.type=e.type,this.spread=e.spread},t.extend(t.Tremolo,t.StereoEffect),t.Tremolo.defaults={frequency:10,type:"sine",depth:.5,spread:180},t.Tremolo.prototype.start=function(t){return this._lfoL.start(t),this._lfoR.start(t),this},t.Tremolo.prototype.stop=function(t){return this._lfoL.stop(t),this._lfoR.stop(t),this},t.Tremolo.prototype.sync=function(t){return this._lfoL.sync(t),this._lfoR.sync(t),this},t.Tremolo.prototype.unsync=function(){return this._lfoL.unsync(),this._lfoR.unsync(),this},Object.defineProperty(t.Tremolo.prototype,"type",{get:function(){return this._lfoL.type},set:function(t){this._lfoL.type=t,this._lfoR.type=t}}),Object.defineProperty(t.Tremolo.prototype,"spread",{get:function(){return this._lfoR.phase-this._lfoL.phase},set:function(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}}),t.Tremolo.prototype.dispose=function(){return t.StereoEffect.prototype.dispose.call(this),this._writable(["frequency","depth"]),this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null,this._amplitudeL.dispose(),this._amplitudeL=null,this._amplitudeR.dispose(),this._amplitudeR=null,this.frequency=null,this.depth=null,this},t.Tremolo}),t(function(t){return t.Vibrato=function(){var e=this.optionsObject(arguments,["frequency","depth"],t.Vibrato.defaults);t.Effect.call(this,e),this._delayNode=new t.Delay(0,e.maxDelay),this._lfo=new t.LFO({type:e.type,min:0,max:e.maxDelay,frequency:e.frequency,phase:-90}).start().connect(this._delayNode.delayTime),this.frequency=this._lfo.frequency,this.depth=this._lfo.amplitude,this.depth.value=e.depth,this._readOnly(["frequency","depth"]),this.effectSend.chain(this._delayNode,this.effectReturn)},t.extend(t.Vibrato,t.Effect),t.Vibrato.defaults={maxDelay:.005,frequency:5,depth:.1,type:"sine"},Object.defineProperty(t.Vibrato.prototype,"type",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),t.Vibrato.prototype.dispose=function(){t.Effect.prototype.dispose.call(this),this._delayNode.dispose(),this._delayNode=null,this._lfo.dispose(),this._lfo=null,this._writable(["frequency","depth"]),this.frequency=null,this.depth=null},t.Vibrato}),t(function(t){return t.Event=function(){var e=this.optionsObject(arguments,["callback","value"],t.Event.defaults);this._loop=e.loop,this.callback=e.callback,this.value=e.value,this._loopStart=this.toTicks(e.loopStart),this._loopEnd=this.toTicks(e.loopEnd),this._state=new t.TimelineState(t.State.Stopped),this._playbackRate=1,this._startOffset=0,this.probability=e.probability,this.humanize=e.humanize,this.mute=e.mute,this.playbackRate=e.playbackRate},t.extend(t.Event),t.Event.defaults={callback:t.noOp,loop:!1,loopEnd:"1m",loopStart:0,playbackRate:1,value:null,probability:1,mute:!1,humanize:!1},t.Event.prototype._rescheduleEvents=function(e){return e=this.defaultArg(e,-1),this._state.forEachFrom(e,function(e){var i;if(e.state===t.State.Started){this.isUndef(e.id)||t.Transport.clear(e.id);var s=e.time+Math.round(this.startOffset/this._playbackRate);if(this._loop){i=1/0,this.isNumber(this._loop)&&(i=this._loop*this._getLoopDuration());var n=this._state.getAfter(s);null!==n&&(i=Math.min(i,n.time-s)),i!==1/0&&(this._state.setStateAtTime(t.State.Stopped,s+i+1),i=t.Time(i,"i"));var o=t.Time(this._getLoopDuration(),"i");e.id=t.Transport.scheduleRepeat(this._tick.bind(this),o,t.TransportTime(s,"i"),i)}else e.id=t.Transport.schedule(this._tick.bind(this),s+"i")}}.bind(this)),this},Object.defineProperty(t.Event.prototype,"state",{get:function(){return this._state.getValueAtTime(t.Transport.ticks)}}),Object.defineProperty(t.Event.prototype,"startOffset",{get:function(){return this._startOffset},set:function(t){this._startOffset=t}}),t.Event.prototype.start=function(e){return e=this.toTicks(e),this._state.getValueAtTime(e)===t.State.Stopped&&(this._state.add({state:t.State.Started,time:e,id:void 0}),this._rescheduleEvents(e)),this},t.Event.prototype.stop=function(e){if(this.cancel(e),e=this.toTicks(e),this._state.getValueAtTime(e)===t.State.Started){this._state.setStateAtTime(t.State.Stopped,e);var i=this._state.getBefore(e),s=e;null!==i&&(s=i.time),this._rescheduleEvents(s)}return this},t.Event.prototype.cancel=function(e){return e=this.defaultArg(e,-1/0),e=this.toTicks(e),this._state.forEachFrom(e,function(e){t.Transport.clear(e.id)}),this._state.cancel(e),this},t.Event.prototype._tick=function(e){if(!this.mute&&this._state.getValueAtTime(t.Transport.ticks)===t.State.Started){if(this.probability<1&&Math.random()>this.probability)return;if(this.humanize){var i=.02;this.isBoolean(this.humanize)||(i=this.toSeconds(this.humanize)),e+=(2*Math.random()-1)*i}this.callback(e,this.value)}},t.Event.prototype._getLoopDuration=function(){return Math.round((this._loopEnd-this._loopStart)/this._playbackRate)},Object.defineProperty(t.Event.prototype,"loop",{get:function(){return this._loop},set:function(t){this._loop=t,this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,"loopEnd",{get:function(){return t.TransportTime(this._loopEnd,"i").toNotation()},set:function(t){this._loopEnd=this.toTicks(t),this._loop&&this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,"loopStart",{get:function(){return t.TransportTime(this._loopStart,"i").toNotation()},set:function(t){this._loopStart=this.toTicks(t),this._loop&&this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,"progress",{get:function(){if(this._loop){var e=t.Transport.ticks,i=this._state.get(e);if(null!==i&&i.state===t.State.Started){var s=this._getLoopDuration();return(e-i.time)%s/s}return 0}return 0}}),t.Event.prototype.dispose=function(){this.cancel(),this._state.dispose(),this._state=null,this.callback=null,this.value=null},t.Event}),t(function(t){return t.Loop=function(){var e=this.optionsObject(arguments,["callback","interval"],t.Loop.defaults);this._event=new t.Event({callback:this._tick.bind(this),loop:!0,loopEnd:e.interval,playbackRate:e.playbackRate,probability:e.probability}),this.callback=e.callback,this.iterations=e.iterations},t.extend(t.Loop),t.Loop.defaults={interval:"4n",callback:t.noOp,playbackRate:1,iterations:1/0,probability:!0,mute:!1},t.Loop.prototype.start=function(t){return this._event.start(t),this},t.Loop.prototype.stop=function(t){return this._event.stop(t),this},t.Loop.prototype.cancel=function(t){return this._event.cancel(t),this},t.Loop.prototype._tick=function(t){this.callback(t)},Object.defineProperty(t.Loop.prototype,"state",{get:function(){return this._event.state}}),Object.defineProperty(t.Loop.prototype,"progress",{get:function(){return this._event.progress}}),Object.defineProperty(t.Loop.prototype,"interval",{get:function(){return this._event.loopEnd},set:function(t){this._event.loopEnd=t}}),Object.defineProperty(t.Loop.prototype,"playbackRate",{get:function(){return this._event.playbackRate},set:function(t){this._event.playbackRate=t}}),Object.defineProperty(t.Loop.prototype,"humanize",{get:function(){return this._event.humanize},set:function(t){this._event.humanize=t}}),Object.defineProperty(t.Loop.prototype,"probability",{get:function(){return this._event.probability},set:function(t){this._event.probability=t}}),Object.defineProperty(t.Loop.prototype,"mute",{get:function(){return this._event.mute},set:function(t){this._event.mute=t}}),Object.defineProperty(t.Loop.prototype,"iterations",{get:function(){return!0===this._event.loop?1/0:this._event.loop},set:function(t){this._event.loop=t===1/0||t}}),t.Loop.prototype.dispose=function(){this._event.dispose(),this._event=null,this.callback=null},t.Loop}),t(function(t){return t.Part=function(){var e=this.optionsObject(arguments,["callback","events"],t.Part.defaults);this._loop=e.loop,this._loopStart=this.toTicks(e.loopStart),this._loopEnd=this.toTicks(e.loopEnd),this._playbackRate=e.playbackRate,this._probability=e.probability,this._humanize=e.humanize,this._startOffset=0,this._state=new t.TimelineState(t.State.Stopped),this._events=[],this.callback=e.callback,this.mute=e.mute;var i=this.defaultArg(e.events,[]);if(!this.isUndef(e.events))for(var s=0;s<i.length;s++)Array.isArray(i[s])?this.add(i[s][0],i[s][1]):this.add(i[s])},t.extend(t.Part,t.Event),t.Part.defaults={callback:t.noOp,loop:!1,loopEnd:"1m",loopStart:0,playbackRate:1,probability:1,humanize:!1,mute:!1},t.Part.prototype.start=function(e,i){var s=this.toTicks(e);return this._state.getValueAtTime(s)!==t.State.Started&&(i=this._loop?this.defaultArg(i,this._loopStart):this.defaultArg(i,0),i=this.toTicks(i),this._state.add({state:t.State.Started,time:s,offset:i}),this._forEach(function(t){this._startNote(t,s,i)})),this},t.Part.prototype._startNote=function(e,i,s){i-=s,this._loop?e.startOffset>=this._loopStart&&e.startOffset<this._loopEnd?(e.startOffset<s&&(i+=this._getLoopDuration()),e.start(t.TransportTime(i,"i"))):e.startOffset<this._loopStart&&e.startOffset>=s&&(e.loop=!1,e.start(t.TransportTime(i,"i"))):e.startOffset>=s&&e.start(t.TransportTime(i,"i"))},Object.defineProperty(t.Part.prototype,"startOffset",{get:function(){return this._startOffset},set:function(t){this._startOffset=t,this._forEach(function(t){t.startOffset+=this._startOffset})}}),t.Part.prototype.stop=function(e){var i=this.toTicks(e);return this._state.cancel(i),this._state.setStateAtTime(t.State.Stopped,i),this._forEach(function(t){t.stop(e)}),this},t.Part.prototype.at=function(e,i){e=t.TransportTime(e);for(var s=t.Time(1,"i").toSeconds(),n=0;n<this._events.length;n++){var o=this._events[n];if(Math.abs(e.toTicks()-o.startOffset)<s)return this.isUndef(i)||(o.value=i),o}return this.isUndef(i)?null:(this.add(e,i),this._events[this._events.length-1])},t.Part.prototype.add=function(e,i){e.hasOwnProperty("time")&&(i=e,e=i.time),e=this.toTicks(e);var s;return i instanceof t.Event?(s=i,s.callback=this._tick.bind(this)):s=new t.Event({callback:this._tick.bind(this),value:i}),s.startOffset=e,s.set({loopEnd:this.loopEnd,loopStart:this.loopStart,loop:this.loop,humanize:this.humanize,playbackRate:this.playbackRate,probability:this.probability}),this._events.push(s),this._restartEvent(s),this},t.Part.prototype._restartEvent=function(e){this._state.forEach(function(i){i.state===t.State.Started?this._startNote(e,i.time,i.offset):e.stop(t.TransportTime(i.time,"i"))}.bind(this))},t.Part.prototype.remove=function(e,i){e.hasOwnProperty("time")&&(i=e,e=i.time),e=this.toTicks(e);for(var s=this._events.length-1;s>=0;s--){var n=this._events[s];n instanceof t.Part?n.remove(e,i):n.startOffset===e&&(this.isUndef(i)||!this.isUndef(i)&&n.value===i)&&(this._events.splice(s,1),n.dispose())}return this},t.Part.prototype.removeAll=function(){return this._forEach(function(t){t.dispose()}),this._events=[],this},t.Part.prototype.cancel=function(t){return t=this.toTicks(t),this._forEach(function(e){e.cancel(t)}),this._state.cancel(t),this},t.Part.prototype._forEach=function(e,i){i=this.defaultArg(i,this);for(var s=this._events.length-1;s>=0;s--){var n=this._events[s];n instanceof t.Part?n._forEach(e,i):e.call(i,n)}return this},t.Part.prototype._setAll=function(t,e){this._forEach(function(i){i[t]=e})},t.Part.prototype._tick=function(t,e){this.mute||this.callback(t,e)},t.Part.prototype._testLoopBoundries=function(e){e.startOffset<this._loopStart||e.startOffset>=this._loopEnd?e.cancel(0):e.state===t.State.Stopped&&this._restartEvent(e)},Object.defineProperty(t.Part.prototype,"probability",{get:function(){return this._probability},set:function(t){this._probability=t,this._setAll("probability",t)}}),Object.defineProperty(t.Part.prototype,"humanize",{get:function(){return this._humanize},set:function(t){this._humanize=t,this._setAll("humanize",t)}}),Object.defineProperty(t.Part.prototype,"loop",{get:function(){return this._loop},set:function(t){this._loop=t,this._forEach(function(e){e._loopStart=this._loopStart,e._loopEnd=this._loopEnd,e.loop=t,this._testLoopBoundries(e)})}}),Object.defineProperty(t.Part.prototype,"loopEnd",{get:function(){return t.TransportTime(this._loopEnd,"i").toNotation()},set:function(t){this._loopEnd=this.toTicks(t),this._loop&&this._forEach(function(e){e.loopEnd=t,this._testLoopBoundries(e)})}}),Object.defineProperty(t.Part.prototype,"loopStart",{get:function(){return t.TransportTime(this._loopStart,"i").toNotation()},set:function(t){this._loopStart=this.toTicks(t),this._loop&&this._forEach(function(t){t.loopStart=this.loopStart,this._testLoopBoundries(t)})}}),Object.defineProperty(t.Part.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._setAll("playbackRate",t)}}),Object.defineProperty(t.Part.prototype,"length",{get:function(){return this._events.length}}),t.Part.prototype.dispose=function(){return this.removeAll(),this._state.dispose(),this._state=null,this.callback=null,this._events=null,this},t.Part}),t(function(t){return t.Pattern=function(){var e=this.optionsObject(arguments,["callback","values","pattern"],t.Pattern.defaults);t.Loop.call(this,e),this._pattern=new t.CtrlPattern({values:e.values,type:e.pattern,index:e.index})},t.extend(t.Pattern,t.Loop),t.Pattern.defaults={pattern:t.CtrlPattern.Type.Up,values:[]},t.Pattern.prototype._tick=function(t){this.callback(t,this._pattern.value),this._pattern.next()},Object.defineProperty(t.Pattern.prototype,"index",{get:function(){return this._pattern.index},set:function(t){this._pattern.index=t}}),Object.defineProperty(t.Pattern.prototype,"values",{get:function(){return this._pattern.values},set:function(t){this._pattern.values=t}}),Object.defineProperty(t.Pattern.prototype,"value",{get:function(){return this._pattern.value}}),Object.defineProperty(t.Pattern.prototype,"pattern",{get:function(){return this._pattern.type},set:function(t){this._pattern.type=t}}),t.Pattern.prototype.dispose=function(){t.Loop.prototype.dispose.call(this),this._pattern.dispose(),this._pattern=null},t.Pattern}),t(function(t){return t.Sequence=function(){var e=this.optionsObject(arguments,["callback","events","subdivision"],t.Sequence.defaults),i=e.events;if(delete e.events,t.Part.call(this,e),this._subdivision=this.toTicks(e.subdivision),this.isUndef(e.loopEnd)&&!this.isUndef(i)&&(this._loopEnd=i.length*this._subdivision),this._loop=!0,!this.isUndef(i))for(var s=0;s<i.length;s++)this.add(s,i[s])},t.extend(t.Sequence,t.Part),t.Sequence.defaults={subdivision:"4n"},Object.defineProperty(t.Sequence.prototype,"subdivision",{get:function(){return t.Time(this._subdivision,"i").toNotation()}}),t.Sequence.prototype.at=function(e,i){return this.isArray(i)&&this.remove(e),t.Part.prototype.at.call(this,this._indexTime(e),i)},t.Sequence.prototype.add=function(e,i){if(null===i)return this;if(this.isArray(i)){var s=Math.round(this._subdivision/i.length);i=new t.Sequence(this._tick.bind(this),i,t.Time(s,"i"))}return t.Part.prototype.add.call(this,this._indexTime(e),i),this},t.Sequence.prototype.remove=function(e,i){return t.Part.prototype.remove.call(this,this._indexTime(e),i),this},t.Sequence.prototype._indexTime=function(e){return e instanceof t.TransportTime?e:t.TransportTime(e*this._subdivision+this.startOffset,"i")},t.Sequence.prototype.dispose=function(){return t.Part.prototype.dispose.call(this),this},t.Sequence}),t(function(t){return t.PulseOscillator=function(){var e=this.optionsObject(arguments,["frequency","width"],t.Oscillator.defaults);t.Source.call(this,e),this.width=new t.Signal(e.width,t.Type.NormalRange),this._widthGate=new t.Gain,this._sawtooth=new t.Oscillator({frequency:e.frequency,detune:e.detune,type:"sawtooth",phase:e.phase}),this.frequency=this._sawtooth.frequency,this.detune=this._sawtooth.detune,this._thresh=new t.WaveShaper(function(t){return t<0?-1:1}),this._sawtooth.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),this._readOnly(["width","frequency","detune"])},t.extend(t.PulseOscillator,t.Oscillator),t.PulseOscillator.defaults={frequency:440,detune:0,phase:0,width:.2},t.PulseOscillator.prototype._start=function(t){t=this.toSeconds(t),this._sawtooth.start(t),this._widthGate.gain.setValueAtTime(1,t)},t.PulseOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._sawtooth.stop(t),this._widthGate.gain.setValueAtTime(0,t)},Object.defineProperty(t.PulseOscillator.prototype,"phase",{get:function(){return this._sawtooth.phase},set:function(t){this._sawtooth.phase=t}}),Object.defineProperty(t.PulseOscillator.prototype,"type",{get:function(){return"pulse"}}),Object.defineProperty(t.PulseOscillator.prototype,"partials",{get:function(){return[]}}),t.PulseOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._sawtooth.dispose(),this._sawtooth=null,this._writable(["width","frequency","detune"]),this.width.dispose(),this.width=null,this._widthGate.dispose(),this._widthGate=null,this._thresh.dispose(),this._thresh=null,this.frequency=null,this.detune=null,this},t.PulseOscillator}),t(function(t){return t.PWMOscillator=function(){var e=this.optionsObject(arguments,["frequency","modulationFrequency"],t.PWMOscillator.defaults);t.Source.call(this,e),this._pulse=new t.PulseOscillator(e.modulationFrequency),this._pulse._sawtooth.type="sine",this._modulator=new t.Oscillator({frequency:e.frequency,detune:e.detune,phase:e.phase}),this._scale=new t.Multiply(2),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this.modulationFrequency=this._pulse.frequency,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),this._readOnly(["modulationFrequency","frequency","detune"])},t.extend(t.PWMOscillator,t.Oscillator),t.PWMOscillator.defaults={frequency:440,detune:0,phase:0,modulationFrequency:.4},t.PWMOscillator.prototype._start=function(t){t=this.toSeconds(t),this._modulator.start(t),this._pulse.start(t)},t.PWMOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._modulator.stop(t),this._pulse.stop(t)},Object.defineProperty(t.PWMOscillator.prototype,"type",{get:function(){return"pwm"}}),Object.defineProperty(t.PWMOscillator.prototype,"partials",{get:function(){return[]}}),Object.defineProperty(t.PWMOscillator.prototype,"phase",{get:function(){return this._modulator.phase},set:function(t){this._modulator.phase=t}}),t.PWMOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._pulse.dispose(),this._pulse=null,this._scale.dispose(),this._scale=null,this._modulator.dispose(),this._modulator=null,this._writable(["modulationFrequency","frequency","detune"]),this.frequency=null,this.detune=null,this.modulationFrequency=null,this},t.PWMOscillator}),t(function(t){return t.FMOscillator=function(){var e=this.optionsObject(arguments,["frequency","type","modulationType"],t.FMOscillator.defaults);t.Source.call(this,e),this._carrier=new t.Oscillator(e.frequency,e.type),this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=this._carrier.detune,this.detune.value=e.detune,this.modulationIndex=new t.Multiply(e.modulationIndex),this.modulationIndex.units=t.Type.Positive,this._modulator=new t.Oscillator(e.frequency,e.modulationType),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this._modulationNode=new t.Gain(0),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),this.phase=e.phase,this._readOnly(["modulationIndex","frequency","detune","harmonicity"])},t.extend(t.FMOscillator,t.Oscillator),t.FMOscillator.defaults={frequency:440,detune:0,phase:0,modulationIndex:2,modulationType:"square",harmonicity:1},t.FMOscillator.prototype._start=function(t){t=this.toSeconds(t),this._modulator.start(t),this._carrier.start(t)},t.FMOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._modulator.stop(t),this._carrier.stop(t)},Object.defineProperty(t.FMOscillator.prototype,"type",{get:function(){return this._carrier.type},set:function(t){this._carrier.type=t}}),Object.defineProperty(t.FMOscillator.prototype,"modulationType",{get:function(){return this._modulator.type},set:function(t){this._modulator.type=t}}),Object.defineProperty(t.FMOscillator.prototype,"phase",{get:function(){return this._carrier.phase},set:function(t){this._carrier.phase=t,this._modulator.phase=t}}),Object.defineProperty(t.FMOscillator.prototype,"partials",{get:function(){return this._carrier.partials},set:function(t){this._carrier.partials=t}}),t.FMOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable(["modulationIndex","frequency","detune","harmonicity"]),this.frequency.dispose(),this.frequency=null,this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this._modulationNode.dispose(),this._modulationNode=null,this.modulationIndex.dispose(),this.modulationIndex=null,this},t.FMOscillator}),t(function(t){return t.AMOscillator=function(){var e=this.optionsObject(arguments,["frequency","type","modulationType"],t.AMOscillator.defaults);t.Source.call(this,e),this._carrier=new t.Oscillator(e.frequency,e.type),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this.detune.value=e.detune,this._modulator=new t.Oscillator(e.frequency,e.modulationType),this._modulationScale=new t.AudioToGain,this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this._modulationNode=new t.Gain(0),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.connect(this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),this.phase=e.phase,this._readOnly(["frequency","detune","harmonicity"])},t.extend(t.AMOscillator,t.Oscillator),t.AMOscillator.defaults={frequency:440,detune:0,phase:0,modulationType:"square",harmonicity:1},t.AMOscillator.prototype._start=function(t){t=this.toSeconds(t),this._modulator.start(t),this._carrier.start(t)},t.AMOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._modulator.stop(t),this._carrier.stop(t)},Object.defineProperty(t.AMOscillator.prototype,"type",{get:function(){return this._carrier.type},set:function(t){this._carrier.type=t}}),Object.defineProperty(t.AMOscillator.prototype,"modulationType",{get:function(){return this._modulator.type},set:function(t){this._modulator.type=t}}),Object.defineProperty(t.AMOscillator.prototype,"phase",{get:function(){return this._carrier.phase},set:function(t){this._carrier.phase=t,this._modulator.phase=t}}),Object.defineProperty(t.AMOscillator.prototype,"partials",{get:function(){return this._carrier.partials},set:function(t){this._carrier.partials=t}}),t.AMOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable(["frequency","detune","harmonicity"]),this.frequency=null,this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this._modulationNode.dispose(),this._modulationNode=null,this._modulationScale.dispose(),this._modulationScale=null,this},t.AMOscillator}),t(function(t){return t.FatOscillator=function(){var e=this.optionsObject(arguments,["frequency","type","spread"],t.FatOscillator.defaults);t.Source.call(this,e),this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this._oscillators=[],this._spread=e.spread,this._type=e.type,this._phase=e.phase,this._partials=this.defaultArg(e.partials,[]),this.count=e.count,this._readOnly(["frequency","detune"])},t.extend(t.FatOscillator,t.Oscillator),t.FatOscillator.defaults={frequency:440,detune:0,phase:0,spread:20,count:3,type:"sawtooth"},t.FatOscillator.prototype._start=function(t){t=this.toSeconds(t),this._forEach(function(e){e.start(t)})},t.FatOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._forEach(function(e){e.stop(t)})},t.FatOscillator.prototype._forEach=function(t){for(var e=0;e<this._oscillators.length;e++)t.call(this,this._oscillators[e],e)},Object.defineProperty(t.FatOscillator.prototype,"type",{get:function(){return this._type},set:function(t){this._type=t,this._forEach(function(e){e.type=t})}}),Object.defineProperty(t.FatOscillator.prototype,"spread",{get:function(){return this._spread},set:function(t){if(this._spread=t,this._oscillators.length>1){var e=-t/2,i=t/(this._oscillators.length-1);this._forEach(function(t,s){t.detune.value=e+i*s})}}}),Object.defineProperty(t.FatOscillator.prototype,"count",{get:function(){return this._oscillators.length},set:function(e){if(e=Math.max(e,1),this._oscillators.length!==e){this._forEach(function(t){t.dispose()}),this._oscillators=[];for(var i=0;i<e;i++){var s=new t.Oscillator;this.type===t.Oscillator.Type.Custom?s.partials=this._partials:s.type=this._type,s.phase=this._phase,s.volume.value=-6-e,this.frequency.connect(s.frequency),this.detune.connect(s.detune),s.connect(this.output),this._oscillators[i]=s}this.spread=this._spread,this.state===t.State.Started&&this._forEach(function(t){t.start()})}}}),Object.defineProperty(t.FatOscillator.prototype,"phase",{get:function(){return this._phase},set:function(t){this._phase=t,this._forEach(function(e){e.phase=t})}}),Object.defineProperty(t.FatOscillator.prototype,"partials",{get:function(){return this._partials},set:function(e){this._partials=e,this._type=t.Oscillator.Type.Custom,this._forEach(function(t){t.partials=e})}}),t.FatOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable(["frequency","detune"]),this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this._forEach(function(t){t.dispose()}),this._oscillators=null,this._partials=null,this},t.FatOscillator}),t(function(t){t.OmniOscillator=function(){var e=this.optionsObject(arguments,["frequency","type"],t.OmniOscillator.defaults);t.Source.call(this,e),this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this._sourceType=void 0,this._oscillator=null,this.type=e.type,this._readOnly(["frequency","detune"]),this.set(e)},t.extend(t.OmniOscillator,t.Oscillator),t.OmniOscillator.defaults={frequency:440,detune:0,type:"sine",phase:0};var e={Pulse:"PulseOscillator",PWM:"PWMOscillator",Osc:"Oscillator",FM:"FMOscillator",AM:"AMOscillator",Fat:"FatOscillator"};return t.OmniOscillator.prototype._start=function(t){this._oscillator.start(t)},t.OmniOscillator.prototype._stop=function(t){this._oscillator.stop(t)},Object.defineProperty(t.OmniOscillator.prototype,"type",{get:function(){var t="";return this._sourceType===e.FM?t="fm":this._sourceType===e.AM?t="am":this._sourceType===e.Fat&&(t="fat"),t+this._oscillator.type},set:function(t){"fm"===t.substr(0,2)?(this._createNewOscillator(e.FM),this._oscillator.type=t.substr(2)):"am"===t.substr(0,2)?(this._createNewOscillator(e.AM),this._oscillator.type=t.substr(2)):"fat"===t.substr(0,3)?(this._createNewOscillator(e.Fat),this._oscillator.type=t.substr(3)):"pwm"===t?this._createNewOscillator(e.PWM):"pulse"===t?this._createNewOscillator(e.Pulse):(this._createNewOscillator(e.Osc),this._oscillator.type=t)}}),Object.defineProperty(t.OmniOscillator.prototype,"partials",{get:function(){return this._oscillator.partials},set:function(t){this._oscillator.partials=t}}),t.OmniOscillator.prototype.set=function(e,i){return"type"===e?this.type=i:this.isObject(e)&&e.hasOwnProperty("type")&&(this.type=e.type),t.prototype.set.apply(this,arguments),this},t.OmniOscillator.prototype._createNewOscillator=function(e){if(e!==this._sourceType){this._sourceType=e;var i=t[e],s=this.now()+this.blockTime;if(null!==this._oscillator){var n=this._oscillator;n.stop(s),setTimeout(function(){n.dispose(),n=null},1e3*this.blockTime)}this._oscillator=new i,this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this.state===t.State.Started&&this._oscillator.start(s)}},Object.defineProperty(t.OmniOscillator.prototype,"phase",{get:function(){return this._oscillator.phase},set:function(t){this._oscillator.phase=t}}),Object.defineProperty(t.OmniOscillator.prototype,"width",{get:function(){if(this._sourceType===e.Pulse)return this._oscillator.width}}),Object.defineProperty(t.OmniOscillator.prototype,"count",{get:function(){if(this._sourceType===e.Fat)return this._oscillator.count},set:function(t){this._sourceType===e.Fat&&(this._oscillator.count=t)}}),Object.defineProperty(t.OmniOscillator.prototype,"spread",{get:function(){if(this._sourceType===e.Fat)return this._oscillator.spread},set:function(t){this._sourceType===e.Fat&&(this._oscillator.spread=t)}}),Object.defineProperty(t.OmniOscillator.prototype,"modulationType",{get:function(){if(this._sourceType===e.FM||this._sourceType===e.AM)return this._oscillator.modulationType},set:function(t){this._sourceType!==e.FM&&this._sourceType!==e.AM||(this._oscillator.modulationType=t)}}),Object.defineProperty(t.OmniOscillator.prototype,"modulationIndex",{get:function(){if(this._sourceType===e.FM)return this._oscillator.modulationIndex}}),Object.defineProperty(t.OmniOscillator.prototype,"harmonicity",{get:function(){if(this._sourceType===e.FM||this._sourceType===e.AM)return this._oscillator.harmonicity}}),Object.defineProperty(t.OmniOscillator.prototype,"modulationFrequency",{get:function(){if(this._sourceType===e.PWM)return this._oscillator.modulationFrequency}}),t.OmniOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable(["frequency","detune"]),this.detune.dispose(),this.detune=null,this.frequency.dispose(),this.frequency=null,this._oscillator.dispose(),this._oscillator=null,this._sourceType=null,this},t.OmniOscillator}),t(function(t){return t.Instrument=function(e){e=this.defaultArg(e,t.Instrument.defaults),this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly("volume")},t.extend(t.Instrument),t.Instrument.defaults={volume:0},t.Instrument.prototype.triggerAttack=t.noOp,t.Instrument.prototype.triggerRelease=t.noOp,t.Instrument.prototype.triggerAttackRelease=function(t,e,i,s){return i=this.isUndef(i)?this.now()+this.blockTime:this.toSeconds(i),e=this.toSeconds(e),this.triggerAttack(t,i,s),this.triggerRelease(i+e),this},t.Instrument.prototype.dispose=function(){return t.prototype.dispose.call(this),this._volume.dispose(),this._volume=null,this._writable(["volume"]),this.volume=null,this},t.Instrument}),t(function(t){return t.Monophonic=function(e){e=this.defaultArg(e,t.Monophonic.defaults),t.Instrument.call(this,e),this.portamento=e.portamento},t.extend(t.Monophonic,t.Instrument),t.Monophonic.defaults={portamento:0},t.Monophonic.prototype.triggerAttack=function(t,e,i){return e=this.isUndef(e)?this.now()+this.blockTime:this.toSeconds(e),this._triggerEnvelopeAttack(e,i),this.setNote(t,e),this},t.Monophonic.prototype.triggerRelease=function(t){return t=this.isUndef(t)?this.now()+this.blockTime:this.toSeconds(t),this._triggerEnvelopeRelease(t),this},t.Monophonic.prototype._triggerEnvelopeAttack=function(){},t.Monophonic.prototype._triggerEnvelopeRelease=function(){},t.Monophonic.prototype.setNote=function(t,e){if(e=this.toSeconds(e),this.portamento>0){var i=this.frequency.value;this.frequency.setValueAtTime(i,e);var s=this.toSeconds(this.portamento);this.frequency.exponentialRampToValueAtTime(t,e+s)}else this.frequency.setValueAtTime(t,e);return this},t.Monophonic}),t(function(t){return t.Synth=function(e){e=this.defaultArg(e,t.Synth.defaults),t.Monophonic.call(this,e),this.oscillator=new t.OmniOscillator(e.oscillator),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new t.AmplitudeEnvelope(e.envelope),this.oscillator.chain(this.envelope,this.output),this.oscillator.start(),this._readOnly(["oscillator","frequency","detune","envelope"])},t.extend(t.Synth,t.Monophonic),t.Synth.defaults={oscillator:{type:"triangle"},envelope:{attack:.005,decay:.1,sustain:.3,release:1}},t.Synth.prototype._triggerEnvelopeAttack=function(t,e){return this.envelope.triggerAttack(t,e),this},t.Synth.prototype._triggerEnvelopeRelease=function(t){return this.envelope.triggerRelease(t),this},t.Synth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable(["oscillator","frequency","detune","envelope"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this.frequency=null,this.detune=null,this},t.Synth}),t(function(t){return t.AMSynth=function(e){e=this.defaultArg(e,t.AMSynth.defaults),t.Monophonic.call(this,e),this._carrier=new t.Synth,this._carrier.volume.value=-10,this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope.set(e.envelope),this._modulator=new t.Synth,this._modulator.volume.value=-10,this.modulation=this._modulator.oscillator.set(e.modulation),this.modulationEnvelope=this._modulator.envelope.set(e.modulationEnvelope),this.frequency=new t.Signal(440,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this._modulationScale=new t.AudioToGain,this._modulationNode=new t.Gain,this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),this._readOnly(["frequency","harmonicity","oscillator","envelope","modulation","modulationEnvelope","detune"])},t.extend(t.AMSynth,t.Monophonic),t.AMSynth.defaults={harmonicity:3,detune:0,oscillator:{type:"sine"},envelope:{attack:.01,decay:.01,sustain:1,release:.5},modulation:{type:"square"},modulationEnvelope:{attack:.5,decay:0,sustain:1,release:.5}},t.AMSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.envelope.triggerAttack(t,e),this.modulationEnvelope.triggerAttack(t,e),this},t.AMSynth.prototype._triggerEnvelopeRelease=function(t){return this.envelope.triggerRelease(t),this.modulationEnvelope.triggerRelease(t),this},t.AMSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable(["frequency","harmonicity","oscillator","envelope","modulation","modulationEnvelope","detune"]),this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._modulationScale.dispose(),this._modulationScale=null,this._modulationNode.dispose(),this._modulationNode=null,this.oscillator=null,this.envelope=null,this.modulationEnvelope=null,this.modulation=null,this},t.AMSynth}),t(function(t){return t.MonoSynth=function(e){e=this.defaultArg(e,t.MonoSynth.defaults),t.Monophonic.call(this,e),this.oscillator=new t.OmniOscillator(e.oscillator),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.filter=new t.Filter(e.filter),this.filterEnvelope=new t.FrequencyEnvelope(e.filterEnvelope),this.envelope=new t.AmplitudeEnvelope(e.envelope),this.oscillator.chain(this.filter,this.envelope,this.output),this.oscillator.start(),this.filterEnvelope.connect(this.filter.frequency),this._readOnly(["oscillator","frequency","detune","filter","filterEnvelope","envelope"])},t.extend(t.MonoSynth,t.Monophonic),t.MonoSynth.defaults={frequency:"C4",detune:0,oscillator:{type:"square"},filter:{Q:6,type:"lowpass",rolloff:-24},envelope:{attack:.005,decay:.1,sustain:.9,release:1},filterEnvelope:{attack:.06,decay:.2,sustain:.5,release:2,baseFrequency:200,octaves:7,exponent:2}},t.MonoSynth.prototype._triggerEnvelopeAttack=function(t,e){return this.envelope.triggerAttack(t,e),this.filterEnvelope.triggerAttack(t),this},t.MonoSynth.prototype._triggerEnvelopeRelease=function(t){return this.envelope.triggerRelease(t),this.filterEnvelope.triggerRelease(t),this},t.MonoSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable(["oscillator","frequency","detune","filter","filterEnvelope","envelope"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this.filterEnvelope.dispose(),this.filterEnvelope=null,this.filter.dispose(),this.filter=null,this.frequency=null,this.detune=null,this},t.MonoSynth}),t(function(t){return t.DuoSynth=function(e){e=this.defaultArg(e,t.DuoSynth.defaults),t.Monophonic.call(this,e),this.voice0=new t.MonoSynth(e.voice0),this.voice0.volume.value=-10,this.voice1=new t.MonoSynth(e.voice1),this.voice1.volume.value=-10,this._vibrato=new t.LFO(e.vibratoRate,-50,50),this._vibrato.start(),this.vibratoRate=this._vibrato.frequency,this._vibratoGain=new t.Gain(e.vibratoAmount,t.Type.Positive),this.vibratoAmount=this._vibratoGain.gain,this.frequency=new t.Signal(440,t.Type.Frequency),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this.frequency.connect(this.voice0.frequency),this.frequency.chain(this.harmonicity,this.voice1.frequency),this._vibrato.connect(this._vibratoGain),this._vibratoGain.fan(this.voice0.detune,this.voice1.detune),this.voice0.connect(this.output),this.voice1.connect(this.output),this._readOnly(["voice0","voice1","frequency","vibratoAmount","vibratoRate"])},t.extend(t.DuoSynth,t.Monophonic),t.DuoSynth.defaults={vibratoAmount:.5,vibratoRate:5,harmonicity:1.5,voice0:{volume:-10,portamento:0,oscillator:{type:"sine"},filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}},voice1:{volume:-10,portamento:0,oscillator:{type:"sine"},filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}}},t.DuoSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.voice0.envelope.triggerAttack(t,e),this.voice1.envelope.triggerAttack(t,e),this.voice0.filterEnvelope.triggerAttack(t),this.voice1.filterEnvelope.triggerAttack(t),this},t.DuoSynth.prototype._triggerEnvelopeRelease=function(t){return this.voice0.triggerRelease(t),this.voice1.triggerRelease(t),this},t.DuoSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable(["voice0","voice1","frequency","vibratoAmount","vibratoRate"]),this.voice0.dispose(),this.voice0=null,this.voice1.dispose(),this.voice1=null,this.frequency.dispose(),this.frequency=null,this._vibratoGain.dispose(),this._vibratoGain=null,this._vibrato=null,this.harmonicity.dispose(),this.harmonicity=null,this.vibratoAmount.dispose(),this.vibratoAmount=null,this.vibratoRate=null,this},t.DuoSynth}),t(function(t){return t.FMSynth=function(e){e=this.defaultArg(e,t.FMSynth.defaults),t.Monophonic.call(this,e),this._carrier=new t.Synth(e.carrier),this._carrier.volume.value=-10,this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope.set(e.envelope),this._modulator=new t.Synth(e.modulator),this._modulator.volume.value=-10,this.modulation=this._modulator.oscillator.set(e.modulation),this.modulationEnvelope=this._modulator.envelope.set(e.modulationEnvelope),this.frequency=new t.Signal(440,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this.modulationIndex=new t.Multiply(e.modulationIndex),this.modulationIndex.units=t.Type.Positive,this._modulationNode=new t.Gain(0),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this._readOnly(["frequency","harmonicity","modulationIndex","oscillator","envelope","modulation","modulationEnvelope","detune"])},t.extend(t.FMSynth,t.Monophonic),t.FMSynth.defaults={harmonicity:3,modulationIndex:10,detune:0,oscillator:{type:"sine"},envelope:{attack:.01,decay:.01,sustain:1,release:.5},modulation:{type:"square"},modulationEnvelope:{attack:.5,decay:0,sustain:1,release:.5}},t.FMSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.envelope.triggerAttack(t,e),this.modulationEnvelope.triggerAttack(t),this},t.FMSynth.prototype._triggerEnvelopeRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this.modulationEnvelope.triggerRelease(t),this},t.FMSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable(["frequency","harmonicity","modulationIndex","oscillator","envelope","modulation","modulationEnvelope","detune"]),this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this.modulationIndex.dispose(),this.modulationIndex=null,this.harmonicity.dispose(),this.harmonicity=null,this._modulationNode.dispose(),this._modulationNode=null,this.oscillator=null,this.envelope=null,this.modulationEnvelope=null,this.modulation=null,this},t.FMSynth}),t(function(t){return t.MembraneSynth=function(e){e=this.defaultArg(e,t.MembraneSynth.defaults),t.Instrument.call(this,e),this.oscillator=new t.OmniOscillator(e.oscillator).start(),this.envelope=new t.AmplitudeEnvelope(e.envelope),this.octaves=e.octaves,this.pitchDecay=e.pitchDecay,this.oscillator.chain(this.envelope,this.output),this._readOnly(["oscillator","envelope"])},t.extend(t.MembraneSynth,t.Instrument),t.MembraneSynth.defaults={pitchDecay:.05,octaves:10,oscillator:{type:"sine"},envelope:{attack:.001,decay:.4,sustain:.01,release:1.4,attackCurve:"exponential"}},t.MembraneSynth.prototype.triggerAttack=function(t,e,i){e=this.toSeconds(e),t=this.toFrequency(t);var s=t*this.octaves;return this.oscillator.frequency.setValueAtTime(s,e),this.oscillator.frequency.exponentialRampToValueAtTime(t,e+this.toSeconds(this.pitchDecay)),this.envelope.triggerAttack(e,i),this},t.MembraneSynth.prototype.triggerRelease=function(t){return this.envelope.triggerRelease(t),this},t.MembraneSynth.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._writable(["oscillator","envelope"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this},t.MembraneSynth}),t(function(t){var e=[1,1.483,1.932,2.546,2.63,3.897];return t.MetalSynth=function(i){i=this.defaultArg(i,t.MetalSynth.defaults),t.Instrument.call(this,i),this.frequency=new t.Signal(i.frequency,t.Type.Frequency),this._oscillators=[],this._freqMultipliers=[],this._amplitue=new t.Gain(0).connect(this.output),this._highpass=new t.Filter({type:"highpass",Q:-3.0102999566398125}).connect(this._amplitue),this._octaves=i.octaves,this._filterFreqScaler=new t.Scale(i.resonance,7e3),this.envelope=new t.Envelope({attack:i.envelope.attack,attackCurve:"linear",decay:i.envelope.decay,sustain:0,release:i.envelope.release}).chain(this._filterFreqScaler,this._highpass.frequency),this.envelope.connect(this._amplitue.gain);for(var s=0;s<e.length;s++){var n=new t.FMOscillator({type:"square",modulationType:"square",harmonicity:i.harmonicity,modulationIndex:i.modulationIndex});n.connect(this._highpass).start(0),this._oscillators[s]=n;var o=new t.Multiply(e[s]);this._freqMultipliers[s]=o,this.frequency.chain(o,n.frequency)}this.octaves=i.octaves},t.extend(t.MetalSynth,t.Instrument),t.MetalSynth.defaults={frequency:200,envelope:{attack:.001,decay:1.4,release:.2},harmonicity:5.1,modulationIndex:32,resonance:4e3,octaves:1.5},t.MetalSynth.prototype.triggerAttack=function(t,e){return t=this.toSeconds(t),e=this.defaultArg(e,1),this.envelope.triggerAttack(t,e),this},t.MetalSynth.prototype.triggerRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this},t.MetalSynth.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),t=this.toSeconds(t),this.triggerAttack(e,i),this.triggerRelease(e+t),this},Object.defineProperty(t.MetalSynth.prototype,"modulationIndex",{get:function(){return this._oscillators[0].modulationIndex.value},set:function(t){for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].modulationIndex.value=t}}),Object.defineProperty(t.MetalSynth.prototype,"harmonicity",{get:function(){return this._oscillators[0].harmonicity.value},set:function(t){for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].harmonicity.value=t}}),Object.defineProperty(t.MetalSynth.prototype,"resonance",{get:function(){return this._filterFreqScaler.min},set:function(t){this._filterFreqScaler.min=t,this.octaves=this._octaves}}),Object.defineProperty(t.MetalSynth.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._filterFreqScaler.max=this._filterFreqScaler.min*Math.pow(2,t)}}),t.MetalSynth.prototype.dispose=function(){t.Instrument.prototype.dispose.call(this);for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].dispose(),this._freqMultipliers[e].dispose();this._oscillators=null,this._freqMultipliers=null,this.frequency.dispose(),this.frequency=null,this._filterFreqScaler.dispose(),this._filterFreqScaler=null,this._amplitue.dispose(),this._amplitue=null,this.envelope.dispose(),this.envelope=null,this._highpass.dispose(),this._highpass=null},t.MetalSynth}),t(function(t){return window.AudioBufferSourceNode&&!AudioBufferSourceNode.prototype.start&&(AudioBufferSourceNode.prototype.start=AudioBufferSourceNode.prototype.noteGrainOn,AudioBufferSourceNode.prototype.stop=AudioBufferSourceNode.prototype.noteOff),t.BufferSource=function(){var e=this.optionsObject(arguments,["buffer","onended"],t.BufferSource.defaults);this.onended=e.onended,this._startTime=-1,this._stopTime=-1,this._gainNode=this.output=new t.Gain,this._source=this.context.createBufferSource(),this._source.connect(this._gainNode),this.playbackRate=new t.Param(this._source.playbackRate,t.Type.Positive),this.fadeIn=e.fadeIn,this.fadeOut=e.fadeOut,this._gain=1,this._onendedTimeout=-1,this.isUndef(e.buffer)||(this.buffer=e.buffer),this.loop=e.loop},t.extend(t.BufferSource),t.BufferSource.defaults={onended:t.noOp,fadeIn:0,fadeOut:0},Object.defineProperty(t.BufferSource.prototype,"state",{get:function(){var e=this.now();return-1!==this._startTime&&e>=this._startTime&&e<this._stopTime?t.State.Started:t.State.Stopped}}),t.BufferSource.prototype.start=function(t,e,i,s,n){if(-1!==this._startTime)throw new Error("Tone.BufferSource: can only be started once.");return this.buffer&&(t=this.toSeconds(t),e=this.loop?this.defaultArg(e,this.loopStart):this.defaultArg(e,0),e=this.toSeconds(e),t=this.toSeconds(t),this._source.start(t,e),s=this.defaultArg(s,1),this._gain=s,n=this.isUndef(n)?this.toSeconds(this.fadeIn):this.toSeconds(n),n>0?(this._gainNode.gain.setValueAtTime(0,t),this._gainNode.gain.linearRampToValueAtTime(this._gain,t+n)):this._gainNode.gain.setValueAtTime(s,t),this._startTime=t+n,this.isUndef(i)||(i=this.defaultArg(i,this.buffer.duration-e),i=this.toSeconds(i),this.stop(t+i+n,n))),this},t.BufferSource.prototype.stop=function(t,e){return this.buffer&&(t=this.toSeconds(t),e=this.isUndef(e)?this.toSeconds(this.fadeOut):this.toSeconds(e),this._stopTime=t+e,this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),e>0?(this._gainNode.gain.setValueAtTime(this._gain,t),this._gainNode.gain.linearRampToValueAtTime(0,t+e),t+=e):this._gainNode.gain.setValueAtTime(0,t),this.isNumber(this._source.playbackState)&&2!==this._source.playbackState||this._source.stop(t),clearTimeout(this._onendedTimeout),this._onendedTimeout=setTimeout(this._onended.bind(this),1e3*(this._stopTime-this.now()))),this},t.BufferSource.prototype._onended=function(){this.onended(this),this.dispose()},Object.defineProperty(t.BufferSource.prototype,"loopStart",{get:function(){return this._source.loopStart},set:function(t){this._source.loopStart=this.toSeconds(t)}}),Object.defineProperty(t.BufferSource.prototype,"loopEnd",{get:function(){return this._source.loopEnd},set:function(t){this._source.loopEnd=this.toSeconds(t)}}),Object.defineProperty(t.BufferSource.prototype,"buffer",{get:function(){return this._source?this._source.buffer:null},set:function(e){e instanceof t.Buffer?this._source.buffer=e.get():this._source.buffer=e}}),Object.defineProperty(t.BufferSource.prototype,"loop",{get:function(){return this._source.loop},set:function(t){this._source.loop=t}}),t.BufferSource.prototype.dispose=function(){return this.onended=null,this._source&&(this._source.disconnect(),this._source=null),this._gainNode&&(this._gainNode.dispose(),this._gainNode=null),this._startTime=-1,this.playbackRate=null,this.output=null,clearTimeout(this._onendedTimeout),this},t.BufferSource}),t(function(t){function e(){for(var e in i)s[e]=(new t.Buffer).fromArray(i[e])}t.Noise=function(){var e=this.optionsObject(arguments,["type"],t.Noise.defaults);t.Source.call(this,e),this._source=null,this._type=e.type,this._playbackRate=e.playbackRate},t.extend(t.Noise,t.Source),t.Noise.defaults={type:"white",playbackRate:1},Object.defineProperty(t.Noise.prototype,"type",{get:function(){return this._type},set:function(e){if(this._type!==e){if(!(e in s))throw new TypeError("Tone.Noise: invalid type: "+e);if(this._type=e,this.state===t.State.Started){var i=this.now()+this.blockTime;this._stop(i),this._start(i)}}}}),Object.defineProperty(t.Noise.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}}),t.Noise.prototype._start=function(e){var i=s[this._type];this._source=new t.BufferSource(i).connect(this.output),this._source.loop=!0,this._source.playbackRate.value=this._playbackRate,this._source.start(this.toSeconds(e),Math.random()*(i.duration-.001))},t.Noise.prototype._stop=function(t){this._source&&(this._source.stop(this.toSeconds(t)),this._source=null)},t.Noise.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),null!==this._source&&(this._source.disconnect(),this._source=null),this._buffer=null,this};var i={pink:function(){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;var s,n,o,r,a,h,l;s=n=o=r=a=h=l=0;for(var c=0;c<220500;c++){var u=2*Math.random()-1;s=.99886*s+.0555179*u,n=.99332*n+.0750759*u,o=.969*o+.153852*u,r=.8665*r+.3104856*u,a=.55*a+.5329522*u,h=-.7616*h-.016898*u,i[c]=s+n+o+r+a+h+l+.5362*u,i[c]*=.11,l=.115926*u}}return t}(),brown:function(){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;for(var s=0,n=0;n<220500;n++){var o=2*Math.random()-1;i[n]=(s+.02*o)/1.02,s=i[n],i[n]*=3.5}}return t}(),white:function(){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;for(var s=0;s<220500;s++)i[s]=2*Math.random()-1}return t}()},s={};return e(),t.Context.on("init",e),t.Noise}),t(function(t){return t.NoiseSynth=function(e){e=this.defaultArg(e,t.NoiseSynth.defaults),t.Instrument.call(this,e),this.noise=new t.Noise,this.envelope=new t.AmplitudeEnvelope(e.envelope),this.noise.chain(this.envelope,this.output),this.noise.start(),this._readOnly(["noise","envelope"])},t.extend(t.NoiseSynth,t.Instrument),t.NoiseSynth.defaults={noise:{type:"white"},envelope:{attack:.005,decay:.1,sustain:0}},t.NoiseSynth.prototype.triggerAttack=function(t,e){return this.envelope.triggerAttack(t,e),this},t.NoiseSynth.prototype.triggerRelease=function(t){return this.envelope.triggerRelease(t),this},t.NoiseSynth.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),t=this.toSeconds(t),this.triggerAttack(e,i),this.triggerRelease(e+t),this},t.NoiseSynth.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._writable(["noise","envelope"]),this.noise.dispose(),this.noise=null,this.envelope.dispose(),this.envelope=null,this},t.NoiseSynth}),t(function(t){return t.PluckSynth=function(e){e=this.defaultArg(e,t.PluckSynth.defaults),t.Instrument.call(this,e),this._noise=new t.Noise("pink"),this.attackNoise=e.attackNoise,this._lfcf=new t.LowpassCombFilter({resonance:e.resonance,dampening:e.dampening}),this.resonance=this._lfcf.resonance,this.dampening=this._lfcf.dampening,this._noise.connect(this._lfcf),this._lfcf.connect(this.output),this._readOnly(["resonance","dampening"])},t.extend(t.PluckSynth,t.Instrument),t.PluckSynth.defaults={attackNoise:1,dampening:4e3,resonance:.9},t.PluckSynth.prototype.triggerAttack=function(t,e){t=this.toFrequency(t),e=this.toSeconds(e);var i=1/t;return this._lfcf.delayTime.setValueAtTime(i,e),this._noise.start(e),this._noise.stop(e+i*this.attackNoise),this},t.PluckSynth.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._noise.dispose(),this._lfcf.dispose(),this._noise=null,this._lfcf=null,this._writable(["resonance","dampening"]),this.dampening=null,this.resonance=null,this},t.PluckSynth}),t(function(t){return t.PolySynth=function(){t.Instrument.call(this);var e=this.optionsObject(arguments,["polyphony","voice"],t.PolySynth.defaults);e=this.defaultArg(e,t.Instrument.defaults),e.polyphony=Math.min(t.PolySynth.MAX_POLYPHONY,e.polyphony),this.voices=new Array(e.polyphony),this._triggers=new Array(e.polyphony),this.detune=new t.Signal(e.detune,t.Type.Cents),this._readOnly("detune");for(var i=0;i<e.polyphony;i++){var s=new e.voice(arguments[2],arguments[3]);this.voices[i]=s,s.connect(this.output),s.hasOwnProperty("detune")&&this.detune.connect(s.detune),this._triggers[i]={release:-1,note:null,voice:s}}this.volume.value=e.volume},t.extend(t.PolySynth,t.Instrument),t.PolySynth.defaults={polyphony:4,volume:0,detune:0,voice:t.Synth},t.PolySynth.prototype.triggerAttack=function(t,e,i){Array.isArray(t)||(t=[t]),e=this.toSeconds(e);for(var s=0;s<t.length;s++){for(var n=t[s],o=this._triggers[0],r=1;r<this._triggers.length;r++)this._triggers[r].release<o.release&&(o=this._triggers[r],r);o.release=1/0,o.note=JSON.stringify(n),o.voice.triggerAttack(n,e,i)}return this},t.PolySynth.prototype.triggerAttackRelease=function(t,e,i,s){if(i=this.toSeconds(i),this.triggerAttack(t,i,s),this.isArray(e)&&this.isArray(t))for(var n=0;n<t.length;n++){var o=e[Math.min(n,e.length-1)];this.triggerRelease(t[n],i+this.toSeconds(o))}else this.triggerRelease(t,i+this.toSeconds(e));return this},t.PolySynth.prototype.triggerRelease=function(t,e){Array.isArray(t)||(t=[t]),e=this.toSeconds(e);for(var i=0;i<t.length;i++)for(var s=JSON.stringify(t[i]),n=0;n<this._triggers.length;n++){var o=this._triggers[n];o.note===s&&o.release>e&&(o.voice.triggerRelease(e),o.release=e)}return this},t.PolySynth.prototype.set=function(t,e,i){for(var s=0;s<this.voices.length;s++)this.voices[s].set(t,e,i);return this},t.PolySynth.prototype.get=function(t){return this.voices[0].get(t)},t.PolySynth.prototype.releaseAll=function(t){t=this.toSeconds(t);for(var e=0;e<this._triggers.length;e++){var i=this._triggers[e];i.release>t&&(i.release=t,i.voice.triggerRelease(t))}return this},t.PolySynth.prototype.dispose=function(){t.Instrument.prototype.dispose.call(this);for(var e=0;e<this.voices.length;e++)this.voices[e].dispose(),this.voices[e]=null;return this._writable("detune"),this.detune.dispose(),this.detune=null,this.voices=null,this._triggers=null,this},t.PolySynth.MAX_POLYPHONY=20,t.PolySynth}),t(function(t){return t.Player=function(e){var i;e instanceof t.Buffer?(e=e.get(),i=t.Player.defaults):i=this.optionsObject(arguments,["url","onload"],t.Player.defaults),t.Source.call(this,i),this._source=null,this.autostart=i.autostart,this._buffer=new t.Buffer({url:i.url,onload:this._onload.bind(this,i.onload),reverse:i.reverse}),e instanceof AudioBuffer&&this._buffer.set(e),this._loop=i.loop,this._loopStart=i.loopStart,this._loopEnd=i.loopEnd,this._playbackRate=i.playbackRate,this.retrigger=i.retrigger},t.extend(t.Player,t.Source),t.Player.defaults={onload:t.noOp,playbackRate:1,loop:!1,autostart:!1,loopStart:0,loopEnd:0,retrigger:!1,reverse:!1},t.Player.prototype.load=function(t,e){return this._buffer.load(t,this._onload.bind(this,e))},t.Player.prototype._onload=function(e){e=this.defaultArg(e,t.noOp),e(this),this.autostart&&this.start()},t.Player.prototype._start=function(e,i,s){if(!this._buffer.loaded)throw Error("Tone.Player: tried to start Player before the buffer was loaded");if(i=this._loop?this.defaultArg(i,this._loopStart):this.defaultArg(i,0),i=this.toSeconds(i),s=this.defaultArg(s,Math.max(this._buffer.duration-i,0)),s=this.toSeconds(s),e=this.toSeconds(e),this._source=this.context.createBufferSource(),this._source.buffer=this._buffer.get(),this._loop?(this._source.loop=this._loop,this._source.loopStart=this.toSeconds(this._loopStart),this._source.loopEnd=this.toSeconds(this._loopEnd)):this._synced||this._state.setStateAtTime(t.State.Stopped,e+s),this._source.playbackRate.value=this._playbackRate,this._source.connect(this.output),this._loop){var n=this._source.loopEnd||this._buffer.duration,o=this._source.loopStart,r=n-o;if(i>n)for(;i>n;)i-=r;this._source.start(e,i)}else this._source.start(e,i,s);return this},t.Player.prototype._stop=function(t){return this._source&&(this._source.stop(this.toSeconds(t)),this._source=null),this},t.Player.prototype.seek=function(e,i){return i=this.toSeconds(i),this._state.getValueAtTime(i)===t.State.Started&&(e=this.toSeconds(e),this._stop(i),this._start(i,e)),this},t.Player.prototype.setLoopPoints=function(t,e){return this.loopStart=t,this.loopEnd=e,this},Object.defineProperty(t.Player.prototype,"loopStart",{get:function(){return this._loopStart},set:function(t){this._loopStart=t,this._source&&(this._source.loopStart=this.toSeconds(t))}}),Object.defineProperty(t.Player.prototype,"loopEnd",{get:function(){return this._loopEnd},set:function(t){this._loopEnd=t,this._source&&(this._source.loopEnd=this.toSeconds(t))}}),Object.defineProperty(t.Player.prototype,"buffer",{get:function(){return this._buffer},set:function(t){this._buffer.set(t)}}),Object.defineProperty(t.Player.prototype,"loop",{get:function(){return this._loop},set:function(t){this._loop=t,this._source&&(this._source.loop=t)}}),Object.defineProperty(t.Player.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}}),Object.defineProperty(t.Player.prototype,"reverse",{get:function(){return this._buffer.reverse},set:function(t){this._buffer.reverse=t}}),t.Player.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),null!==this._source&&(this._source.disconnect(),this._source=null),this._buffer.dispose(),this._buffer=null,this},t.Player}),t(function(t){return t.Sampler=function(){var e=this.optionsObject(arguments,["url","onload"],t.Sampler.defaults);t.Instrument.call(this,e),this.player=new t.Player(e.url,e.onload),this.player.retrigger=!0,this.envelope=new t.AmplitudeEnvelope(e.envelope),this.player.chain(this.envelope,this.output),this._readOnly(["player","envelope"]),this.loop=e.loop,this.reverse=e.reverse},t.extend(t.Sampler,t.Instrument),t.Sampler.defaults={onload:t.noOp,loop:!1,reverse:!1,envelope:{attack:.001,decay:0,sustain:1,release:.1}},t.Sampler.prototype.triggerAttack=function(t,e,i){return e=this.toSeconds(e),t=this.defaultArg(t,0),this.player.playbackRate=this.intervalToFrequencyRatio(t),this.player.start(e),this.envelope.triggerAttack(e,i),this},t.Sampler.prototype.triggerRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this.player.stop(this.toSeconds(this.envelope.release)+t),this},Object.defineProperty(t.Sampler.prototype,"loop",{get:function(){return this.player.loop},set:function(t){this.player.loop=t}}),Object.defineProperty(t.Sampler.prototype,"reverse",{get:function(){return this.player.reverse},set:function(t){this.player.reverse=t}}),Object.defineProperty(t.Sampler.prototype,"buffer",{get:function(){return this.player.buffer},set:function(t){this.player.buffer=t}}),t.Sampler.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._writable(["player","envelope"]),this.player.dispose(),this.player=null,this.envelope.dispose(),this.envelope=null,this},t.Sampler}),t(function(t){return t.GainToAudio=function(){this._norm=this.input=this.output=new t.WaveShaper(function(t){return 2*Math.abs(t)-1})},t.extend(t.GainToAudio,t.SignalBase),t.GainToAudio.prototype.dispose=function(){return t.prototype.dispose.call(this),this._norm.dispose(),this._norm=null,this},t.GainToAudio}),t(function(t){return t.Normalize=function(e,i){this._inputMin=this.defaultArg(e,0),this._inputMax=this.defaultArg(i,1),this._sub=this.input=new t.Add(0),this._div=this.output=new t.Multiply(1),this._sub.connect(this._div),this._setRange()},t.extend(t.Normalize,t.SignalBase),Object.defineProperty(t.Normalize.prototype,"min",{get:function(){return this._inputMin},set:function(t){this._inputMin=t,this._setRange()}}),Object.defineProperty(t.Normalize.prototype,"max",{get:function(){return this._inputMax},set:function(t){this._inputMax=t,this._setRange()}}),t.Normalize.prototype._setRange=function(){this._sub.value=-this._inputMin,this._div.value=1/(this._inputMax-this._inputMin)},t.Normalize.prototype.dispose=function(){return t.prototype.dispose.call(this),this._sub.dispose(),this._sub=null,this._div.dispose(),this._div=null,this},t.Normalize}),t(function(t){return t.MultiPlayer=function(){var e=this.optionsObject(arguments,["urls","onload"],t.MultiPlayer.defaults);e.urls instanceof t.Buffers?this.buffers=e.urls:this.buffers=new t.Buffers(e.urls,e.onload),this._activeSources={},this.fadeIn=e.fadeIn,this.fadeOut=e.fadeOut,this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly("volume"),this._volume.output.output.channelCount=2,this._volume.output.output.channelCountMode="explicit",this.mute=e.mute},t.extend(t.MultiPlayer,t.Source),t.MultiPlayer.defaults={onload:t.noOp,fadeIn:0,fadeOut:0},t.MultiPlayer.prototype._makeSource=function(e){var i;this.isString(e)||this.isNumber(e)?i=this.buffers.get(e).get():e instanceof t.Buffer?i=e.get():e instanceof AudioBuffer&&(i=e);var s=new t.BufferSource(i).connect(this.output);return this._activeSources.hasOwnProperty(e)||(this._activeSources[e]=[]),this._activeSources[e].push(s),s},t.MultiPlayer.prototype.start=function(t,e,i,s,n,o){e=this.toSeconds(e);var r=this._makeSource(t);return r.start(e,i,s,this.defaultArg(o,1),this.fadeIn),s&&r.stop(e+this.toSeconds(s),this.fadeOut),n=this.defaultArg(n,0),r.playbackRate.value=this.intervalToFrequencyRatio(n),this},t.MultiPlayer.prototype.startLoop=function(t,e,i,s,n,o,r){e=this.toSeconds(e);var a=this._makeSource(t);return a.loop=!0,a.loopStart=this.toSeconds(this.defaultArg(s,0)),a.loopEnd=this.toSeconds(this.defaultArg(n,0)),a.start(e,i,void 0,this.defaultArg(r,1),this.fadeIn),o=this.defaultArg(o,0),a.playbackRate.value=this.intervalToFrequencyRatio(o),this},t.MultiPlayer.prototype.stop=function(t,e){if(!this._activeSources[t]||!this._activeSources[t].length)throw new Error("Tone.MultiPlayer: cannot stop a buffer that hasn't been started or is already stopped");return e=this.toSeconds(e),this._activeSources[t].shift().stop(e,this.fadeOut),this},t.MultiPlayer.prototype.stopAll=function(t){t=this.toSeconds(t);for(var e in this._activeSources)for(var i=this._activeSources[e],s=0;s<i.length;s++)i[s].stop(t);return this},t.MultiPlayer.prototype.add=function(t,e,i){return this.buffers.add(t,e,i),this},Object.defineProperty(t.MultiPlayer.prototype,"state",{get:function(){return this._activeSources.length>0?t.State.Started:t.State.Stopped}}),Object.defineProperty(t.MultiPlayer.prototype,"mute",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.MultiPlayer.prototype.dispose=function(){t.prototype.dispose.call(this),this._volume.dispose(),this._volume=null,this._writable("volume"),this.volume=null;for(var e in this._activeSources)this._activeSources[e].forEach(function(t){t.dispose()});return this.buffers.dispose(),this.buffers=null,this._activeSources=null,this},t.MultiPlayer}),t(function(t){return t.GrainPlayer=function(){var e=this.optionsObject(arguments,["url","onload"],t.GrainPlayer.defaults);t.Source.call(this),this.buffer=new t.Buffer(e.url,e.onload),this._player=(new t.MultiPlayer).connect(this.output),this._clock=new t.Clock(this._tick.bind(this),1),this._loopStart=0,this._loopEnd=0,this._playbackRate=e.playbackRate,this._grainSize=e.grainSize,this._overlap=e.overlap,this.detune=e.detune,this.drift=e.drift,this.overlap=e.overlap,this.loop=e.loop,this.playbackRate=e.playbackRate,this.grainSize=e.grainSize,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this.reverse=e.reverse},t.extend(t.GrainPlayer,t.Source),t.GrainPlayer.defaults={onload:t.noOp,overlap:.1,grainSize:.2,drift:0,playbackRate:1,detune:0,loop:!1,loopStart:0,loopEnd:0,reverse:!1},t.GrainPlayer.prototype._start=function(t,e,i){e=this.defaultArg(e,0),e=this.toSeconds(e),t=this.toSeconds(t),this._offset=e,this._clock.start(t),this._player.volume.setValueAtTime(0,t),i&&this._stop(t+this.toSeconds(i))},t.GrainPlayer.prototype._stop=function(t){this._clock.stop(t),this._player.volume.cancelScheduledValues(t),this._player.volume.setValueAtTime(-1/0,t)},t.GrainPlayer.prototype._tick=function(t){var e=this.buffer.duration;this.loop&&this._loopEnd>0&&(e=this._loopEnd);var i=(2*Math.random()-1)*this.drift,s=this._offset-this._overlap+i,n=this.detune/100;s=Math.max(s,0),s=Math.min(s,e);var o=this._player.fadeIn;if(this.loop&&this._offset>e){var r=this._offset-e;this._player.start(this.buffer,t,s,r+this._overlap,n),s=this._offset%e,this._offset=this._loopStart,this._player.fadeIn=0,this._player.start(this.buffer,t+r,this._offset,s+this._overlap,n)}else this._offset>e?this.stop(t):(0===s&&(this._player.fadeIn=0),this._player.start(this.buffer,t,s,this.grainSize+this._overlap,n));this._player.fadeIn=o;var a=this._clock._nextTick-t;this._offset+=a*this._playbackRate},t.GrainPlayer.prototype.scrub=function(t,e){return this._offset=this.toSeconds(t),this._tick(this.toSeconds(e)),this},Object.defineProperty(t.GrainPlayer.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this.grainSize=this._grainSize}}),Object.defineProperty(t.GrainPlayer.prototype,"loopStart",{get:function(){return this._loopStart},set:function(t){this._loopStart=this.toSeconds(t)}}),Object.defineProperty(t.GrainPlayer.prototype,"loopEnd",{get:function(){return this._loopEnd},set:function(t){this._loopEnd=this.toSeconds(t)}}),Object.defineProperty(t.GrainPlayer.prototype,"reverse",{get:function(){return this.buffer.reverse},set:function(t){this.buffer.reverse=t}}),Object.defineProperty(t.GrainPlayer.prototype,"grainSize",{get:function(){return this._grainSize},set:function(t){this._grainSize=this.toSeconds(t),this._clock.frequency.value=this._playbackRate/this._grainSize}}),Object.defineProperty(t.GrainPlayer.prototype,"overlap",{get:function(){return this._overlap},set:function(t){t=this.toSeconds(t),this._overlap=t,this._overlap<0?(this._player.fadeIn=.01,this._player.fadeOut=.01):(this._player.fadeIn=t,this._player.fadeOut=t)}}),t.GrainPlayer.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this.buffer.dispose(),this.buffer=null,this._player.dispose(),this._player=null,this._clock.dispose(),this._clock=null,this},t.GrainPlayer}),t(function(t){return t.UserMedia=function(){var e=this.optionsObject(arguments,["volume"],t.UserMedia.defaults);this._mediaStream=null,this._stream=null,this._device=null,this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly("volume"),this.mute=e.mute},t.extend(t.UserMedia),t.UserMedia.defaults={volume:0,mute:!1},t.UserMedia.prototype.open=function(t){return t=this.defaultArg(t,"default"),this.enumerateDevices().then(function(e){var i;if(this.isNumber(t)?i=e[t]:(i=e.find(function(e){return e.label===t||e.deviceId===t}))||(i=e[0]),!i)throw new Error("Tone.UserMedia: no matching audio inputs.");this._device=i;var s={audio:{deviceId:i.deviceId,echoCancellation:!1,sampleRate:this.context.sampleRate}};return navigator.mediaDevices.getUserMedia(s).then(function(t){return this._stream||(this._stream=t,this._mediaStream=this.context.createMediaStreamSource(t),this._mediaStream.connect(this.output)),this}.bind(this))}.bind(this))},t.UserMedia.prototype.close=function(){return this._stream&&(this._stream.getAudioTracks().forEach(function(t){t.stop()}),this._stream=null,this._mediaStream.disconnect(),this._mediaStream=null),this._device=null,this},t.UserMedia.prototype.enumerateDevices=function(){return navigator.mediaDevices.enumerateDevices().then(function(t){return t.filter(function(t){return"audioinput"===t.kind})})},Object.defineProperty(t.UserMedia.prototype,"state",{get:function(){return this._stream&&this._stream.active?t.State.Started:t.State.Stopped}}),Object.defineProperty(t.UserMedia.prototype,"deviceId",{get:function(){if(this._device)return this._device.deviceId}}),Object.defineProperty(t.UserMedia.prototype,"groupId",{get:function(){if(this._device)return this._device.groupId}}),Object.defineProperty(t.UserMedia.prototype,"label",{get:function(){if(this._device)return this._device.label}}),Object.defineProperty(t.UserMedia.prototype,"mute",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.UserMedia.prototype.dispose=function(){return t.prototype.dispose.call(this),this.close(),this._writable("volume"),this._volume.dispose(),this._volume=null,this.volume=null,this},Object.defineProperty(t.UserMedia,"supported",{get:function(){return!t.prototype.isUndef(navigator.mediaDevices)&&t.prototype.isFunction(navigator.mediaDevices.getUserMedia)}}),t.UserMedia}),e})},function(t,e,i){"use strict";function s(t){return t&&t.__esModule?t:{default:t}}function n(t){return t[Math.floor(Math.random()*t.length)]}function o(t,e){return t-e*Math.floor(t/e)}function r(t){if(f){var e=document.createElement("div"),i=document.createElement("div");i.innerHTML="Tap to start - please unmute your phone",Object.assign(e.style,{position:"absolute",width:"100%",height:"100%",zIndex:"10000",top:"0px",left:"0px",backgroundColor:"rgba(0, 0, 0, 0.8)"}),Object.assign(i.style,{position:"absolute",left:"50%",top:"50%",padding:"20px",backgroundColor:"#7F33ED",color:"white",fontFamily:"monospace",borderRadius:"3px",transform:"translate3D(-50%,-50%,0)",textAlign:"center",lineHeight:"1.5"}),e.appendChild(i),document.body.appendChild(e),c.default.setContext(h.default.context),c.default.on(i),c.default.onStarted(function(i){e.remove(),t()})}else t()}Object.defineProperty(e,"__esModule",{value:!0}),e.requestAudioContext=e.browser=e.mod=e.choice=void 0;var a=i(4),h=s(a),l=i(17),c=s(l),u=navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPod/i),p=navigator.userAgent.match(/iPad/i),d=navigator.userAgent.match(/Android/i),f=u||p||d,y=!f;document.body.classList.add(f?"mobile":"desktop");var _={isIphone:u,isIpad:p,isMobile:f,isDesktop:y};e.choice=n,e.mod=o,e.browser=_,e.requestAudioContext=r},function(t,e){function i(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function s(t){return"function"==typeof t}function n(t){return"number"==typeof t}function o(t){return"object"==typeof t&&null!==t}function r(t){return void 0===t}t.exports=i,i.EventEmitter=i,i.prototype._events=void 0,i.prototype._maxListeners=void 0,i.defaultMaxListeners=10,i.prototype.setMaxListeners=function(t){if(!n(t)||t<0||isNaN(t))throw TypeError("n must be a positive number");return this._maxListeners=t,this},i.prototype.emit=function(t){var e,i,n,a,h,l;if(this._events||(this._events={}),"error"===t&&(!this._events.error||o(this._events.error)&&!this._events.error.length)){if((e=arguments[1])instanceof Error)throw e;var c=new Error('Uncaught, unspecified "error" event. ('+e+")");throw c.context=e,c}if(i=this._events[t],r(i))return!1;if(s(i))switch(arguments.length){case 1:i.call(this);break;case 2:i.call(this,arguments[1]);break;case 3:i.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),i.apply(this,a)}else if(o(i))for(a=Array.prototype.slice.call(arguments,1),l=i.slice(),n=l.length,h=0;h<n;h++)l[h].apply(this,a);return!0},i.prototype.addListener=function(t,e){var n;if(!s(e))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",t,s(e.listener)?e.listener:e),this._events[t]?o(this._events[t])?this._events[t].push(e):this._events[t]=[this._events[t],e]:this._events[t]=e,o(this._events[t])&&!this._events[t].warned&&(n=r(this._maxListeners)?i.defaultMaxListeners:this._maxListeners)&&n>0&&this._events[t].length>n&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace()),this},i.prototype.on=i.prototype.addListener,i.prototype.once=function(t,e){function i(){this.removeListener(t,i),n||(n=!0,e.apply(this,arguments))}if(!s(e))throw TypeError("listener must be a function");var n=!1;return i.listener=e,this.on(t,i),this},i.prototype.removeListener=function(t,e){var i,n,r,a;if(!s(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(i=this._events[t],r=i.length,n=-1,i===e||s(i.listener)&&i.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(o(i)){for(a=r;a-- >0;)if(i[a]===e||i[a].listener&&i[a].listener===e){n=a;break}if(n<0)return this;1===i.length?(i.length=0,delete this._events[t]):i.splice(n,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},i.prototype.removeAllListeners=function(t){var e,i;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(i=this._events[t],s(i))this.removeListener(t,i);else if(i)for(;i.length;)this.removeListener(t,i[i.length-1]);return delete this._events[t],this},i.prototype.listeners=function(t){return this._events&&this._events[t]?s(this._events[t])?[this._events[t]]:this._events[t].slice():[]},i.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(s(e))return 1;if(e)return e.length}return 0},i.listenerCount=function(t,e){return t.listenerCount(e)}},function(t,e){e.findPosition=function(t){var e=document.body,i=document.defaultView,s=document.documentElement,n=document.createElement("div");n.style.paddingLeft=n.style.width="1px",e.appendChild(n);var o=2==n.offsetWidth;e.removeChild(n),n=t.getBoundingClientRect();var r=s.clientTop||e.clientTop||0,a=s.clientLeft||e.clientLeft||0,h=i.pageYOffset||o&&s.scrollTop||e.scrollTop,l=i.pageXOffset||o&&s.scrollLeft||e.scrollLeft;return{top:n.top+h-r,left:n.left+l-a}},e.getCursorPosition=function(t,e){var i,s;void 0!=t.pageX&&void 0!=t.pageY?(i=t.pageX,s=t.pageY):(i=t.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,s=t.clientY+document.body.scrollTop+document.documentElement.scrollTop),i-=e.left,s-=e.top;var n={x:i,y:s};return n.touches=[{x:i,y:s}],n},e.getTouchPosition=function(t,e){var i,s;i=t.targetTouches[0].pageX,s=t.targetTouches[0].pageY,i-=e.left,s-=e.top;var n={x:i,y:s};n.touches=new Array;for(var o=0;o<t.targetTouches.length;o++)n.touches.push({x:t.targetTouches[o].pageX-e.left,y:t.targetTouches[o].pageY-e.top});n.changed=new Array;for(var o=0;o<t.changedTouches.length;o++)n.changed.push({x:t.changedTouches[o].pageX-e.left,y:t.changedTouches[o].pageY-e.top});return n}},function(t,e){e.throttle=function(t,e){var i;return function(){var s=this,n=arguments;i||(i=setTimeout(function(){i=null;try{t.apply(s,n)}catch(t){console.log(t)}},e))}}},function(t,e){e.defineTransmit=function(t){if("function"==typeof t)return t;switch(t){case"js":return function(t,e){this.makeOSC(this.emit,t,e),this.emit("*",t,e)};case"ajax":return function(t){this.makeOSC(e.ajaxTransmit,t)};case"node":return function(t){this.makeOSC(e.nodeTransmit,t)};case"ios":return function(t){};case"max":return function(t){this.makeOSC(e.maxTransmit,t)};case"wc":return function(t,e){this.emit("internal",t,e)}}},e.setGlobalTransmit=function(t){var i=e.defineTransmit(t);this.transmit=i,this.destination=t;for(var s in nx.widgets)this.widgets[s].transmit=i,this.widgets[s].destination=t},e.setWidgetTransmit=function(t){var i=e.defineTransmit(t);this.transmit=i,this.destination=t},e.ajaxTransmit=function(t,e){var i="value"==t?this.oscPath:this.oscPath+"/"+t;xmlhttp=new XMLHttpRequest,xmlhttp.open("POST",nx.ajaxPath,!0),xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"),xmlhttp.send("oscName="+i+"&data="+e)},e.setAjaxPath=function(t){this.ajaxPath=t},e.nodeTransmit=function(t,e){var i={oscName:"value"==t?this.oscPath:this.oscPath+"/"+t,value:e};socket.emit("nx",i)},e.maxTransmit=function(t,e){var i="value"==t?this.oscPath:this.oscPath+"/"+t;window.max.outlet(i+" "+e)}},function(t,e,i){"use strict";function s(t,e,i,s,n,o,r){return e+i*Math.cos(2*Math.PI*(s*t+n))*r+o}function n(t,e,i){for(var n=void 0,o=void 0,a=void 0,h=void 0,l=[],c=0;c<3;c++)n=r[0][c],o=r[1][c],a=r[2][c],h=r[3][c],l[c]=Math.round(255*s(t,n,o,a,h,e,i));return"rgb("+l+")"}Object.defineProperty(e,"__esModule",{value:!0});var o=[[[.5,.5,.5],[.5,.5,.5],[1,1,1],[0,.33,.67]],[[.5,.5,.5],[.5,.5,.5],[1,1,1],[0,.1,.2]],[[.5,.5,.5],[.5,.5,.5],[1,1,1],[.3,.2,.2]],[[.5,.5,.5],[.5,.5,.5],[1,1,.5],[.8,.9,.3]],[[.5,.5,.5],[.5,.5,.5],[1,.7,.4],[0,.15,.2]],[[.5,.5,.5],[.5,.5,.5],[2,1,0],[.5,.2,.25]],[[.8,.5,.4],[.2,.4,.2],[2,1,1],[0,.25,.25]]],r=o[0];e.default=n},function(t,e,i){"use strict";function s(t){var e={sample:(0,r.choice)(l)};e.sample.index=(e.sample.index+1)%a;var i=e.sample.players[e.sample.index];i.playbackRate=t/e.sample.root,i.start()}Object.defineProperty(e,"__esModule",{value:!0});var n=i(4),o=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(5),a=4,h=new o.default.Compressor(-30,3).toMaster(),l=[{root:226,fn:"samples/380737__cabled-mess__sansula-01-a-raw.wav"},{root:267,fn:"samples/380736__cabled-mess__sansula-02-c-raw.wav"},{root:340,fn:"samples/380735__cabled-mess__sansula-03-e-raw.wav"},{root:452,fn:"samples/380733__cabled-mess__sansula-06-a-02-raw.wav"}];l.forEach(function(t){t.players=[],t.index=-1;for(var e=0;e<a;e++){var i=t.fn;window.location.href.match(/asdf.us/)&&(i="http://asdf.us/kalimba/"+i);var s=new o.default.Player({url:i,retrigger:!0,playbackRate:1});s.connect(h),t.players.push(s)}}),e.default={play:s}},function(t,e,i){"use strict";function s(t){if(t.altKey||t.ctrlKey||t.metaKey)return void t.stopPropagation();if(document.activeElement instanceof HTMLInputElement&&t.keyCode in r)return void t.stopPropagation();if(t.keyCode in o){var e=o[t.keyCode];t.shiftKey&&(e+=a.length),e-=7,h(e)}}function n(t){h=t}Object.defineProperty(e,"__esModule",{value:!0});var o={},r={},a="zxcvbnmasdfghjklqwertyuiop",h=function(){};a.toUpperCase().split("").map(function(t,e){o[t.charCodeAt(0)]=e}),"1234567890".split("").map(function(t,e){o[t.charCodeAt(0)]=e+a.length,r[t.charCodeAt(0)]=!0}),window.addEventListener("keydown",s,!0),e.default={listen:n}},function(t,e,i){"use strict";function s(){c.forEach(function(t,e){t.heading=document.createElement("div"),t.heading.innerHTML=t.name,t.heading.classList.add("heading"),t.heading.addEventListener("click",function(){n(e)}),scale_list.appendChild(t.heading)}),n(0)}function n(t){u&&u.heading&&u.heading.classList.remove("selected"),u=c[t],u.heading&&u.heading.classList.add("selected"),p(u)}function o(){return u}function r(t){p=t}function a(){return c.map(function(t){return t.name})}Object.defineProperty(e,"__esModule",{value:!0});var h=i(16),l=function(t){return t&&t.__esModule?t:{default:t}}(h),c=[{intervals:"1/1 9/8 5/4 4/3 3/2 5/3 15/8 2/1",name:"harmonic scale"},{root:450,intervals:"1/1 9/8 5/4 4/3 3/2 5/3 15/8 2/1",name:"harmonic scale @ 450"},{tet:5},{tet:12},{tet:17},{intervals:"1/1 81/80 33/32 21/20 16/15 12/11 11/10 10/9 9/8 8/7 7/6 32/27 6/5 11/9 5/4 14/11 9/7 21/16 4/3 27/20 11/8 7/5 10/7 16/11 40/27 3/2 32/21 14/9 11/7 8/5 18/11 5/3 27/16 12/7 7/4 16/9 9/5 20/11 11/6 15/8 40/21 64/33 160/81 2/1",name:"harry partch scale"},{scl:"! young-lm_piano.scl\n!\nLaMonte Young's Well-Tempered Piano\n12\n!\n567/512\n9/8\n147/128\n21/16\n1323/1024\n189/128\n3/2\n49/32\n7/4\n441/256\n63/32\n2/1\n"},{scl:"! meanquar.scl\n!\n1/4-comma meantone scale. Pietro Aaron's temperament (1523)\n 12\n!\n 76.04900\n 193.15686\n 310.26471\n 5/4\n 503.42157\n 579.47057\n 696.57843\n 25/16\n 889.73529\n 1006.84314\n 1082.89214\n 2/1\n"},{scl:"! mavila12.scl\n!\nA 12-note mavila scale (for warping meantone-based music), 5-limit TOP\n 12\n!\n-30.99719\n 163.50770\n 358.01258\n 327.01540\n 521.52028\n 490.52310\n 685.02798\n 654.03080\n 848.53568\n 1043.04057\n 1012.04338\n 1206.54826\n"},{scl:"! carlos_alpha.scl\n!\nWendy Carlos' Alpha scale with perfect fifth divided in nine\n 18\n!\n 78.00000\n 156.00000\n 234.00000\n 312.00000\n 390.00000\n 468.00000\n 546.00000\n 624.00000\n 702.00000\n 780.00000\n 858.00000\n 936.00000\n 1014.00000\n 1092.00000\n 1170.00000\n 1248.00000\n 1326.00000\n 1404.00000\n"}].map(function(t){return new l.default(t)}),u=c[0],p=function(){};e.default={scales:c,current:o,build:s,pick:n,names:a,onChange:r}},function(t,e,s){var n=s(19),o=s(7),r=s(3),a=s(2),h=s(18),l=s(54);window.nx=new n,window.nx.onload=function(){},window.nx=h(window.nx,o),window.nx=h(window.nx,r),window.nx=h(window.nx,a),window.onload=function(){try{l.load({google:{families:["Open Sans"]}})}catch(t){console.log("font not loaded")}nx.addStylesheet();var t=document.getElementsByTagName("canvas");for(i=0;i<t.length;i++)nx.transform(t[i]);nx.isTouchDevice&&(document.addEventListener("touchmove",nx.blockMove,!0),document.addEventListener("touchstart",nx.blockMove,!0)),nx.onload(),nx.startPulse()}},function(t,e,i){"use strict";function s(t){return t&&t.__esModule?t:{default:t}}function n(){N=L.widgets.grid,N.sequenceMode=!0,N.bpm=1,N.col=B,N.row=z,N.init(),N.resize(D*B,D*z),N.draw(),L.widgets.scale.choices=C.default.names(),L.widgets.scale.init(),L.widgets.scale.on("*",function(t){return C.default.pick(t.value)}),C.default.onChange(function(t){r()}),r(),N.on("*",function(t){return"level"in t&&r()}),L.widgets.shiftUp.on("*",function(t){return t.press&&h()}),L.widgets.shiftDown.on("*",function(t){return t.press&&l()}),L.widgets.slideUp.on("*",function(t){return t.press&&c()}),L.widgets.slideDown.on("*",function(t){return t.press&&u()}),L.widgets.slideLeft.on("*",function(t){return t.press&&p()}),L.widgets.slideRight.on("*",function(t){return t.press&&d()}),L.widgets.rotateUp.on("*",function(t){return t.press&&m(-1)}),L.widgets.rotateDown.on("*",function(t){return t.press&&m(1)}),L.widgets.rotateLeft.on("*",function(t){return t.press&&_(-1)}),L.widgets.rotateRight.on("*",function(t){return t.press&&_(1)}),L.widgets.flip.on("*",function(t){return t.press&&f()}),L.widgets.flop.on("*",function(t){return t.press&&y()}),L.colorize("#f4d142"),W.start(),I.default.Transport.bpm.value=108,L.widgets.tempo.min=10,L.widgets.tempo.max=1e3,L.widgets.tempo.set({value:108}),L.widgets.tempo.on("*",function(t){return I.default.Transport.bpm.value=L.widgets.tempo.val.value}),I.default.Transport.start()}function o(){N.draw(),r()}function r(){for(var t=document.querySelector("#labels"),e=C.default.current().scale.length,i=a(),s="",n=0;n<z;n++){var o=z-n-12,r=(0,j.mod)(o,e),h=r+1;i.includes(r)?s+="<b>"+h+"</b><br>":s+=h+"<br>"}t.innerHTML=s}function a(t){t=t||S();var e=C.default.current().scale.length;return t.reduce(function(t,i){var s=(0,j.mod)(z-i-12,e);return t.includes(s)||t.push(s),t},[]).sort()}function h(){var t=S(),e=a(t),i=C.default.current().scale.length;g(O(t,function(t){for(var s=z-t-12,n=(0,j.mod)(s,i),o=e.indexOf(n)+1,r=Math.floor(s/i);o>=e.length;)o-=e.length,r+=1;return 12-(e[o]+r*i)}))}function l(){var t=S(),e=a(t),i=C.default.current().scale.length;g(O(t,function(t){for(var s=z-t-12,n=(0,j.mod)(s,i),o=e.indexOf(n)-1,r=Math.floor(s/i);o<0;)o+=e.length,r-=1;return 12-(e[o]+r*i)}))}function c(){g(O(S(),function(t){return(t-1+z)%z}))}function u(){g(O(S(),function(t){return(t+1+z)%z}))}function p(){v(O(T(),function(t){return(t-1+B)%B}))}function d(){v(O(T(),function(t){return(t+1+B)%B}))}function f(){g(A(S()))}function y(){v(A(T()))}function _(t){v(k(T(),t))}function m(t){g(k(S(),t))}function v(t){if(t){var e=N.matrix,i=x();w(e,function(e,s,n){e in t&&(i[t[e]][s]=n)}),b(N.matrix,i),o()}}function g(t){if(t){var e=N.matrix,i=x();w(e,function(e,s,n){s in t&&(i[e][t[s]]=n)}),b(N.matrix,i),o()}}function w(t,e){for(var i=B,s=z,n=0;n<i;n++)for(var o=0;o<s;o++)e(n,o,t[n][o]);return t}function b(t,e){return w(e,function(i,s,n){return t[i][s]=e[i][s]})}function x(){for(var t=N.matrix.length,e=N.matrix[0].length,i=new Array(t),s=0;s<t;s++){i[s]=new Array(e);for(var n=0;n<e;n++)i[s][n]=0}return i}function S(){var t=new Array(z);return w(N.matrix,function(e,i,s){s&&(t[i]=1)}),t.reduce(function(t,e,i){return 1===e&&t.push(i),t},[])}function T(){return N.matrix.reduce(function(t,e,i){return e.some(function(t){return 1===t})&&t.push(i),t},[])}function k(t,e){if(t.length){for(var i={},s=P(t,e),n=0;n<s.length;n++)i[s[n]]=t[n];return i}}function P(t,e){var i=t.slice(0);return i.unshift.apply(i,i.splice(-e,i.length)),i}function O(t,e){if(t.length){for(var i={},s=0;s<t.length;s++)i[t[s]]=e(t[s]);return i}}function A(t){if(t.length){for(var e={},i=t.slice(0).reverse(),s=0;s<i.length;s++)e[i[s]]=t[s];return e}}var M=i(4),I=s(M);i(14);var q=i(12),E=s(q),F=i(10),U=(s(F),i(11)),G=s(U),R=i(13),C=s(R),j=i(5),L=window.nx,z=j.browser.isMobile?18:24,B=16,D=j.browser.isMobile?22:27,N=void 0,W=new I.default.Sequence(function(t,e){var i=N.matrix[e];N.jumpToCol(e);for(var s=0;s<z;s++)if(1===i[s]){var n=C.default.current().index(z-s-12);G.default.play(n)}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"16n");L.onload=function(){return(0,j.requestAudioContext)(n)},E.default.listen(function(t){var e=C.default.current().index(t);G.default.play(e)})},function(t,e,i){"use strict";t.exports=function(){function t(t,e,i){return(t-e)/(i-e)}function e(t,e){return t-e*Math.floor(t/e)}var i=function(t){t=this.opt=Object.assign({name:"",root:440,octave:0,interval:2,tet:0,intervals:null},t||{}),this.generate()};i.prototype.generate=function(t){t=Object.assign(this.opt,t||{}),t.scl?this.generate_scl():t.tet?this.generate_tet():t.intervals&&this.generate_intervals()},i.prototype.generate_intervals=function(){var t=(this.opt.root,this.opt.intervals);"string"==typeof t&&(t=t.split(" ")),this.name=this.opt.name||"interval list",this.intervals=t,this.interval=this.opt.interval=s.call(this,t.pop()),this.scale=t.map(n.bind(this)).filter(function(t){return!!t})},i.prototype.generate_tet=function(){var t=this.scale=[],e=this.opt.root,i=this.opt.tet,s=this.interval=this.opt.interval,n=Math.pow(s,1/i),o=e;t.push(o);for(var r=0;r<i-1;r++)o*=n,t.push(o);this.name=this.opt.name||i+"-tone equal temperament",this.intervals=null},i.prototype.generate_scl=function(){var t=this.opt.root,e=this.parse_scl(this.opt.scl);this.intervals=e.notes,this.interval=e.notes.pop(),this.name=this.opt.name||e.description,this.scale=e.notes.map(function(e){return e*t})},i.prototype.parse_scl=function(t){var e={};return e.comments=[],e.notes=[],t.trim().split("\n").forEach(function(t){if(-1!==t.indexOf("!"))e.comments.push(t);else if("description"in e)if(e.notes.length){var i=t.replace(/^[^-\.0-9]+/,"").replace(/[^-\/\.0-9]+$/,"");i=-1!==i.indexOf(".")?Math.pow(2,parseFloat(i)/1200):s(i),i&&e.notes.push(i)}else e.notes.push(1);else e.description=t}),e},i.prototype.index=function(i,s){s=s||this.opt.octave;var n=this.scale[0|e(i,this.scale.length)],o=Math.floor(t(i,0,this.scale.length))+s;return n*=Math.pow(this.interval,o)},i.prototype.range=function(t,e){for(var i=[],s=t;s<e;s++)i.push(this.index(s));return i},i.prototype.set_root=function(t){this.opt.root=t,this.generate()},i.prototype.quantize_frequency=function(t){if(0==t)return 0;for(var e=t,i=0,s=this.interval,n=this.scale;e<root;)e*=s,i-=1;for(;e>root*s;)e/=s,i+=1;for(var o=0;o<n.length;o++)if(!(e>n[o])){e=n[o];break}return e*=Math.pow(2,i)},i.prototype.quantize_index=function(t){return 0|e(index-1,this.scale.length)};var s=i.prototype.parse_interval=function(t){if("number"==typeof t)return t;if(-1==!t.indexOf("/"))return parseInt(t);var e=t.split("/"),i=parseInt(e[0]),s=parseInt(e[1]);return isNaN(i)?1:isNaN(s)||0==s?i:i==s?1:i/s},n=i.prototype.parse_interval_string=function(t){return-1!==t.indexOf("/")?s(t)*this.opt.root:(t.indexOf("f"),parseFloat(t))};return i}()},function(t,e,i){"use strict";var s,n,o;"function"==typeof Symbol&&Symbol.iterator;/** +return function(t){e=t()}(function(){var t=function(t,e){this.isUndef(t)||1===t?this.input=this.context.createGain():t>1&&(this.input=new Array(t)),this.isUndef(e)||1===e?this.output=this.context.createGain():e>1&&(this.output=new Array(t))};t.prototype.set=function(e,i,s){if(this.isObject(e))s=i;else if(this.isString(e)){var n={};n[e]=i,e=n}t:for(var o in e){i=e[o];var r=this;if(-1!==o.indexOf(".")){for(var a=o.split("."),h=0;h<a.length-1;h++)if((r=r[a[h]])instanceof t){a.splice(0,h+1);var l=a.join(".");r.set(l,i);continue t}o=a[a.length-1]}var c=r[o];this.isUndef(c)||(t.Signal&&c instanceof t.Signal||t.Param&&c instanceof t.Param?c.value!==i&&(this.isUndef(s)?c.value=i:c.rampTo(i,s)):c instanceof AudioParam?c.value!==i&&(c.value=i):c instanceof t?c.set(i):c!==i&&(r[o]=i))}return this},t.prototype.get=function(e){this.isUndef(e)?e=this._collectDefaults(this.constructor):this.isString(e)&&(e=[e]);for(var i={},s=0;s<e.length;s++){var n=e[s],o=this,r=i;if(-1!==n.indexOf(".")){for(var a=n.split("."),h=0;h<a.length-1;h++){var l=a[h];r[l]=r[l]||{},r=r[l],o=o[l]}n=a[a.length-1]}var c=o[n];this.isObject(e[n])?r[n]=c.get():t.Signal&&c instanceof t.Signal?r[n]=c.value:t.Param&&c instanceof t.Param?r[n]=c.value:c instanceof AudioParam?r[n]=c.value:c instanceof t?r[n]=c.get():this.isFunction(c)||this.isUndef(c)||(r[n]=c)}return i},t.prototype._collectDefaults=function(t){var e=[];if(this.isUndef(t.defaults)||(e=Object.keys(t.defaults)),!this.isUndef(t._super))for(var i=this._collectDefaults(t._super),s=0;s<i.length;s++)-1===e.indexOf(i[s])&&e.push(i[s]);return e},t.prototype.toString=function(){for(var e in t){var i=e[0].match(/^[A-Z]$/),s=t[e]===this.constructor;if(this.isFunction(t[e])&&i&&s)return e}return"Tone"},Object.defineProperty(t.prototype,"numberOfInputs",{get:function(){return this.input?this.isArray(this.input)?this.input.length:1:0}}),Object.defineProperty(t.prototype,"numberOfOutputs",{get:function(){return this.output?this.isArray(this.output)?this.output.length:1:0}}),t.prototype.dispose=function(){return this.isUndef(this.input)||(this.input instanceof AudioNode&&this.input.disconnect(),this.input=null),this.isUndef(this.output)||(this.output instanceof AudioNode&&this.output.disconnect(),this.output=null),this},t.prototype.connect=function(t,e,i){return Array.isArray(this.output)?(e=this.defaultArg(e,0),this.output[e].connect(t,0,i)):this.output.connect(t,e,i),this},t.prototype.disconnect=function(t,e,i){this.isArray(this.output)?this.isNumber(t)?this.output[t].disconnect():(e=this.defaultArg(e,0),this.output[e].disconnect(t,0,i)):this.output.disconnect.apply(this.output,arguments)},t.prototype.connectSeries=function(){if(arguments.length>1)for(var t=arguments[0],e=1;e<arguments.length;e++){var i=arguments[e];t.connect(i),t=i}return this},t.prototype.chain=function(){if(arguments.length>0)for(var t=this,e=0;e<arguments.length;e++){var i=arguments[e];t.connect(i),t=i}return this},t.prototype.fan=function(){if(arguments.length>0)for(var t=0;t<arguments.length;t++)this.connect(arguments[t]);return this},AudioNode.prototype.chain=t.prototype.chain,AudioNode.prototype.fan=t.prototype.fan,t.prototype.defaultArg=function(t,e){if(this.isObject(t)&&this.isObject(e)){var i={};for(var s in t)i[s]=this.defaultArg(e[s],t[s]);for(var n in e)i[n]=this.defaultArg(t[n],e[n]);return i}return this.isUndef(t)?e:t},t.prototype.optionsObject=function(t,e,i){var s={};if(1===t.length&&this.isObject(t[0]))s=t[0];else for(var n=0;n<e.length;n++)s[e[n]]=t[n];return this.isUndef(i)?s:this.defaultArg(s,i)},t.prototype.isUndef=function(t){return void 0===t},t.prototype.isFunction=function(t){return"function"==typeof t},t.prototype.isNumber=function(t){return"number"==typeof t},t.prototype.isObject=function(t){return"[object Object]"===Object.prototype.toString.call(t)&&t.constructor===Object},t.prototype.isBoolean=function(t){return"boolean"==typeof t},t.prototype.isArray=function(t){return Array.isArray(t)},t.prototype.isString=function(t){return"string"==typeof t},t.noOp=function(){},t.prototype._readOnly=function(t){if(Array.isArray(t))for(var e=0;e<t.length;e++)this._readOnly(t[e]);else Object.defineProperty(this,t,{writable:!1,enumerable:!0})},t.prototype._writable=function(t){if(Array.isArray(t))for(var e=0;e<t.length;e++)this._writable(t[e]);else Object.defineProperty(this,t,{writable:!0})},t.State={Started:"started",Stopped:"stopped",Paused:"paused"},t.prototype.equalPowerScale=function(t){var e=.5*Math.PI;return Math.sin(t*e)},t.prototype.dbToGain=function(t){return Math.pow(2,t/6)},t.prototype.gainToDb=function(t){return Math.log(t)/Math.LN10*20},t.prototype.intervalToFrequencyRatio=function(t){return Math.pow(2,t/12)},t.prototype.now=function(){return t.context.now()},t.now=function(){return t.context.now()},t.extend=function(e,i){function s(){}t.prototype.isUndef(i)&&(i=t),s.prototype=i.prototype,e.prototype=new s,e.prototype.constructor=e,e._super=i};var e;return Object.defineProperty(t,"context",{get:function(){return e},set:function(i){e=t.Context&&i instanceof t.Context?i:new t.Context(i),t.Context&&t.Context.emit("init",e)}}),Object.defineProperty(t.prototype,"context",{get:function(){return t.context}}),t.setContext=function(e){t.context=e},Object.defineProperty(t.prototype,"blockTime",{get:function(){return 128/this.context.sampleRate}}),Object.defineProperty(t.prototype,"sampleTime",{get:function(){return 1/this.context.sampleRate}}),Object.defineProperty(t,"supported",{get:function(){var t=window.hasOwnProperty("AudioContext")||window.hasOwnProperty("webkitAudioContext"),e=window.hasOwnProperty("Promise"),i=window.hasOwnProperty("Worker");return t&&e&&i}}),t.version="r10",window.TONE_SILENCE_VERSION_LOGGING||console.log("%c * Tone.js "+t.version+" * ","background: #000; color: #fff"),t}),t(function(t){return t.SignalBase=function(){},t.extend(t.SignalBase),t.SignalBase.prototype.connect=function(e,i,s){return t.Signal&&t.Signal===e.constructor||t.Param&&t.Param===e.constructor||t.TimelineSignal&&t.TimelineSignal===e.constructor?(e._param.cancelScheduledValues(0),e._param.value=0,e.overridden=!0):e instanceof AudioParam&&(e.cancelScheduledValues(0),e.value=0),t.prototype.connect.call(this,e,i,s),this},t.SignalBase}),t(function(t){return t.WaveShaper=function(t,e){this._shaper=this.input=this.output=this.context.createWaveShaper(),this._curve=null,Array.isArray(t)?this.curve=t:isFinite(t)||this.isUndef(t)?this._curve=new Float32Array(this.defaultArg(t,1024)):this.isFunction(t)&&(this._curve=new Float32Array(this.defaultArg(e,1024)),this.setMap(t))},t.extend(t.WaveShaper,t.SignalBase),t.WaveShaper.prototype.setMap=function(t){for(var e=0,i=this._curve.length;e<i;e++){var s=e/(i-1)*2-1;this._curve[e]=t(s,e)}return this._shaper.curve=this._curve,this},Object.defineProperty(t.WaveShaper.prototype,"curve",{get:function(){return this._shaper.curve},set:function(t){this._curve=new Float32Array(t),this._shaper.curve=this._curve}}),Object.defineProperty(t.WaveShaper.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){if(-1===["none","2x","4x"].indexOf(t))throw new RangeError("Tone.WaveShaper: oversampling must be either 'none', '2x', or '4x'");this._shaper.oversample=t}}),t.WaveShaper.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null,this},t.WaveShaper}),t(function(t){return t.TimeBase=function(e,i){if(!(this instanceof t.TimeBase))return new t.TimeBase(e,i);if(this._expr=this._noOp,e instanceof t.TimeBase)this.copy(e);else if(!this.isUndef(i)||this.isNumber(e)){i=this.defaultArg(i,this._defaultUnits);var s=this._primaryExpressions[i].method;this._expr=s.bind(this,e)}else this.isString(e)?this.set(e):this.isUndef(e)&&(this._expr=this._defaultExpr())},t.extend(t.TimeBase),t.TimeBase.prototype.set=function(t){return this._expr=this._parseExprString(t),this},t.TimeBase.prototype.clone=function(){var t=new this.constructor;return t.copy(this),t},t.TimeBase.prototype.copy=function(t){var e=t._expr();return this.set(e)},t.TimeBase.prototype._primaryExpressions={n:{regexp:/^(\d+)n/i,method:function(t){return t=parseInt(t),1===t?this._beatsToUnits(this._timeSignature()):this._beatsToUnits(4/t)}},t:{regexp:/^(\d+)t/i,method:function(t){return t=parseInt(t),this._beatsToUnits(8/(3*parseInt(t)))}},m:{regexp:/^(\d+)m/i,method:function(t){return this._beatsToUnits(parseInt(t)*this._timeSignature())}},i:{regexp:/^(\d+)i/i,method:function(t){return this._ticksToUnits(parseInt(t))}},hz:{regexp:/^(\d+(?:\.\d+)?)hz/i,method:function(t){return this._frequencyToUnits(parseFloat(t))}},tr:{regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method:function(t,e,i){var s=0;return t&&"0"!==t&&(s+=this._beatsToUnits(this._timeSignature()*parseFloat(t))),e&&"0"!==e&&(s+=this._beatsToUnits(parseFloat(e))),i&&"0"!==i&&(s+=this._beatsToUnits(parseFloat(i)/4)),s}},s:{regexp:/^(\d+(?:\.\d+)?s)/,method:function(t){return this._secondsToUnits(parseFloat(t))}},samples:{regexp:/^(\d+)samples/,method:function(t){return parseInt(t)/this.context.sampleRate}},default:{regexp:/^(\d+(?:\.\d+)?)/,method:function(t){return this._primaryExpressions[this._defaultUnits].method.call(this,t)}}},t.TimeBase.prototype._binaryExpressions={"+":{regexp:/^\+/,precedence:2,method:function(t,e){return t()+e()}},"-":{regexp:/^\-/,precedence:2,method:function(t,e){return t()-e()}},"*":{regexp:/^\*/,precedence:1,method:function(t,e){return t()*e()}},"/":{regexp:/^\//,precedence:1,method:function(t,e){return t()/e()}}},t.TimeBase.prototype._unaryExpressions={neg:{regexp:/^\-/,method:function(t){return-t()}}},t.TimeBase.prototype._syntaxGlue={"(":{regexp:/^\(/},")":{regexp:/^\)/}},t.TimeBase.prototype._tokenize=function(t){for(var e=-1,i=[];t.length>0;){t=t.trim();var s=function(t,e){for(var i=["_binaryExpressions","_unaryExpressions","_primaryExpressions","_syntaxGlue"],s=0;s<i.length;s++){var n=e[i[s]];for(var o in n){var r=n[o],a=r.regexp,h=t.match(a);if(null!==h)return{method:r.method,precedence:r.precedence,regexp:r.regexp,value:h[0]}}}throw new SyntaxError("Tone.TimeBase: Unexpected token "+t)}(t,this);i.push(s),t=t.substr(s.value.length)}return{next:function(){return i[++e]},peek:function(){return i[e+1]}}},t.TimeBase.prototype._matchGroup=function(t,e,i){if(!this.isUndef(t))for(var s in e){var n=e[s];if(n.regexp.test(t.value)){if(this.isUndef(i))return n;if(n.precedence===i)return n}}return!1},t.TimeBase.prototype._parseBinary=function(t,e){this.isUndef(e)&&(e=2);var i;i=e<0?this._parseUnary(t):this._parseBinary(t,e-1);for(var s=t.peek();s&&this._matchGroup(s,this._binaryExpressions,e);)s=t.next(),i=s.method.bind(this,i,this._parseBinary(t,e-1)),s=t.peek();return i},t.TimeBase.prototype._parseUnary=function(t){var e,i;e=t.peek();var s=this._matchGroup(e,this._unaryExpressions);return s?(e=t.next(),i=this._parseUnary(t),s.method.bind(this,i)):this._parsePrimary(t)},t.TimeBase.prototype._parsePrimary=function(t){var e,i;if(e=t.peek(),this.isUndef(e))throw new SyntaxError("Tone.TimeBase: Unexpected end of expression");if(this._matchGroup(e,this._primaryExpressions)){e=t.next();var s=e.value.match(e.regexp);return e.method.bind(this,s[1],s[2],s[3])}if(e&&"("===e.value){if(t.next(),i=this._parseBinary(t),!(e=t.next())||")"!==e.value)throw new SyntaxError("Expected )");return i}throw new SyntaxError("Tone.TimeBase: Cannot process token "+e.value)},t.TimeBase.prototype._parseExprString=function(t){this.isString(t)||(t=t.toString());var e=this._tokenize(t);return this._parseBinary(e)},t.TimeBase.prototype._noOp=function(){return 0},t.TimeBase.prototype._defaultExpr=function(){return this._noOp},t.TimeBase.prototype._defaultUnits="s",t.TimeBase.prototype._frequencyToUnits=function(t){return 1/t},t.TimeBase.prototype._beatsToUnits=function(e){return 60/t.Transport.bpm.value*e},t.TimeBase.prototype._secondsToUnits=function(t){return t},t.TimeBase.prototype._ticksToUnits=function(e){return e*(this._beatsToUnits(1)/t.Transport.PPQ)},t.TimeBase.prototype._timeSignature=function(){return t.Transport.timeSignature},t.TimeBase.prototype._pushExpr=function(e,i,s){return e instanceof t.TimeBase||(e=new this.constructor(e,s)),this._expr=this._binaryExpressions[i].method.bind(this,this._expr,e._expr),this},t.TimeBase.prototype.add=function(t,e){return this._pushExpr(t,"+",e)},t.TimeBase.prototype.sub=function(t,e){return this._pushExpr(t,"-",e)},t.TimeBase.prototype.mult=function(t,e){return this._pushExpr(t,"*",e)},t.TimeBase.prototype.div=function(t,e){return this._pushExpr(t,"/",e)},t.TimeBase.prototype.valueOf=function(){return this._expr()},t.TimeBase.prototype.dispose=function(){this._expr=null},t.TimeBase}),t(function(t){return t.Time=function(e,i){if(!(this instanceof t.Time))return new t.Time(e,i);this._plusNow=!1,t.TimeBase.call(this,e,i)},t.extend(t.Time,t.TimeBase),t.Time.prototype._unaryExpressions=Object.create(t.TimeBase.prototype._unaryExpressions),t.Time.prototype._unaryExpressions.quantize={regexp:/^@/,method:function(e){return t.Transport.nextSubdivision(e())}},t.Time.prototype._unaryExpressions.now={regexp:/^\+/,method:function(t){return this._plusNow=!0,t()}},t.Time.prototype.quantize=function(t,e){return e=this.defaultArg(e,1),this._expr=function(t,e,i){return t=t(),e=e.toSeconds(),t+(Math.round(t/e)*e-t)*i}.bind(this,this._expr,new this.constructor(t),e),this},t.Time.prototype.addNow=function(){return this._plusNow=!0,this},t.Time.prototype._defaultExpr=function(){return this._plusNow=!0,this._noOp},t.Time.prototype.copy=function(e){return t.TimeBase.prototype.copy.call(this,e),this._plusNow=e._plusNow,this},t.Time.prototype.toNotation=function(){var t=this.toSeconds(),e=["1m","2n","4n","8n","16n","32n","64n","128n"],i=this._toNotationHelper(t,e),s=["1m","2n","2t","4n","4t","8n","8t","16n","16t","32n","32t","64n","64t","128n"],n=this._toNotationHelper(t,s);return n.split("+").length<i.split("+").length?n:i},t.Time.prototype._toNotationHelper=function(t,e){for(var i=this._notationToUnits(e[e.length-1]),s="",n=0;n<e.length;n++){var o=this._notationToUnits(e[n]),r=t/o;if(1-r%1<1e-6&&(r+=1e-6),(r=Math.floor(r))>0){if(s+=1===r?e[n]:r.toString()+"*"+e[n],(t-=r*o)<i)break;s+=" + "}}return""===s&&(s="0"),s},t.Time.prototype._notationToUnits=function(t){for(var e=this._primaryExpressions,i=[e.n,e.t,e.m],s=0;s<i.length;s++){var n=i[s],o=t.match(n.regexp);if(o)return n.method.call(this,o[1])}},t.Time.prototype.toBarsBeatsSixteenths=function(){var t=this._beatsToUnits(1),e=this.toSeconds()/t,i=Math.floor(e/this._timeSignature()),s=e%1*4;return e=Math.floor(e)%this._timeSignature(),s=s.toString(),s.length>3&&(s=parseFloat(s).toFixed(3)),[i,e,s].join(":")},t.Time.prototype.toTicks=function(){var e=this._beatsToUnits(1),i=this.valueOf()/e;return Math.floor(i*t.Transport.PPQ)},t.Time.prototype.toSamples=function(){return this.toSeconds()*this.context.sampleRate},t.Time.prototype.toFrequency=function(){return 1/this.toSeconds()},t.Time.prototype.toSeconds=function(){return this.valueOf()},t.Time.prototype.toMilliseconds=function(){return 1e3*this.toSeconds()},t.Time.prototype.valueOf=function(){return this._expr()+(this._plusNow?this.now():0)},t.Time}),t(function(t){t.Frequency=function(e,i){if(!(this instanceof t.Frequency))return new t.Frequency(e,i);t.TimeBase.call(this,e,i)},t.extend(t.Frequency,t.TimeBase),t.Frequency.prototype._primaryExpressions=Object.create(t.TimeBase.prototype._primaryExpressions),t.Frequency.prototype._primaryExpressions.midi={regexp:/^(\d+(?:\.\d+)?midi)/,method:function(t){return this.midiToFrequency(t)}},t.Frequency.prototype._primaryExpressions.note={regexp:/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i,method:function(t,i){var s=e[t.toLowerCase()],n=s+12*(parseInt(i)+1);return this.midiToFrequency(n)}},t.Frequency.prototype._primaryExpressions.tr={regexp:/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?):?(\d+(?:\.\d+)?)?/,method:function(t,e,i){var s=1;return t&&"0"!==t&&(s*=this._beatsToUnits(this._timeSignature()*parseFloat(t))),e&&"0"!==e&&(s*=this._beatsToUnits(parseFloat(e))),i&&"0"!==i&&(s*=this._beatsToUnits(parseFloat(i)/4)),s}},t.Frequency.prototype.transpose=function(t){return this._expr=function(t,e){return t()*this.intervalToFrequencyRatio(e)}.bind(this,this._expr,t),this},t.Frequency.prototype.harmonize=function(t){return this._expr=function(t,e){for(var i=t(),s=[],n=0;n<e.length;n++)s[n]=i*this.intervalToFrequencyRatio(e[n]);return s}.bind(this,this._expr,t),this},t.Frequency.prototype.toMidi=function(){return this.frequencyToMidi(this.valueOf())},t.Frequency.prototype.toNote=function(){var e=this.valueOf(),s=Math.log(e/t.Frequency.A4)/Math.LN2,n=Math.round(12*s)+57,o=Math.floor(n/12);return o<0&&(n+=-12*o),i[n%12]+o.toString()},t.Frequency.prototype.toSeconds=function(){return 1/this.valueOf()},t.Frequency.prototype.toFrequency=function(){return this.valueOf()},t.Frequency.prototype.toTicks=function(){var e=this._beatsToUnits(1),i=this.valueOf()/e;return Math.floor(i*t.Transport.PPQ)},t.Frequency.prototype._frequencyToUnits=function(t){return t},t.Frequency.prototype._ticksToUnits=function(e){return 1/(60*e/(t.Transport.bpm.value*t.Transport.PPQ))},t.Frequency.prototype._beatsToUnits=function(e){return 1/t.TimeBase.prototype._beatsToUnits.call(this,e)},t.Frequency.prototype._secondsToUnits=function(t){return 1/t},t.Frequency.prototype._defaultUnits="hz";var e={cbb:-2,cb:-1,c:0,"c#":1,cx:2,dbb:0,db:1,d:2,"d#":3,dx:4,ebb:2,eb:3,e:4,"e#":5,ex:6,fbb:3,fb:4,f:5,"f#":6,fx:7,gbb:5,gb:6,g:7,"g#":8,gx:9,abb:7,ab:8,a:9,"a#":10,ax:11,bbb:9,bb:10,b:11,"b#":12,bx:13},i=["C","C#","D","D#","E","F","F#","G","G#","A","A#","B"];return t.Frequency.A4=440,t.Frequency.prototype.midiToFrequency=function(e){return t.Frequency.A4*Math.pow(2,(e-69)/12)},t.Frequency.prototype.frequencyToMidi=function(e){return 69+12*Math.log(e/t.Frequency.A4)/Math.LN2},t.Frequency}),t(function(t){return t.TransportTime=function(e,i){if(!(this instanceof t.TransportTime))return new t.TransportTime(e,i);t.Time.call(this,e,i)},t.extend(t.TransportTime,t.Time),t.TransportTime.prototype._unaryExpressions=Object.create(t.Time.prototype._unaryExpressions),t.TransportTime.prototype._unaryExpressions.quantize={regexp:/^@/,method:function(e){var i=this._secondsToTicks(e()),s=Math.ceil(t.Transport.ticks/i);return this._ticksToUnits(s*i)}},t.TransportTime.prototype._secondsToTicks=function(e){var i=this._beatsToUnits(1),s=e/i;return Math.round(s*t.Transport.PPQ)},t.TransportTime.prototype.valueOf=function(){return this._secondsToTicks(this._expr())+(this._plusNow?t.Transport.ticks:0)},t.TransportTime.prototype.toTicks=function(){return this.valueOf()},t.TransportTime.prototype.toSeconds=function(){return this._expr()+(this._plusNow?t.Transport.seconds:0)},t.TransportTime.prototype.toFrequency=function(){return 1/this.toSeconds()},t.TransportTime}),t(function(t){return t.Emitter=function(){this._events={}},t.extend(t.Emitter),t.Emitter.prototype.on=function(t,e){for(var i=t.split(/\W+/),s=0;s<i.length;s++){var n=i[s];this._events.hasOwnProperty(n)||(this._events[n]=[]),this._events[n].push(e)}return this},t.Emitter.prototype.off=function(e,i){for(var s=e.split(/\W+/),n=0;n<s.length;n++)if(e=s[n],this._events.hasOwnProperty(e))if(t.prototype.isUndef(i))this._events[e]=[];else for(var o=this._events[e],r=0;r<o.length;r++)o[r]===i&&o.splice(r,1);return this},t.Emitter.prototype.emit=function(t){if(this._events){var e=Array.apply(null,arguments).slice(1);if(this._events.hasOwnProperty(t))for(var i=this._events[t],s=0,n=i.length;s<n;s++)i[s].apply(this,e)}return this},t.Emitter.mixin=function(e){var i=["on","off","emit"];e._events={};for(var s=0;s<i.length;s++){var n=i[s],o=t.Emitter.prototype[n];e[n]=o}},t.Emitter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._events=null,this},t.Emitter}),t(function(t){return!window.hasOwnProperty("AudioContext")&&window.hasOwnProperty("webkitAudioContext")&&(window.AudioContext=window.webkitAudioContext),t.Context=function(e){t.Emitter.call(this),e||(e=new window.AudioContext),this._context=e;for(var i in this._context)this._defineProperty(this._context,i);this._latencyHint="interactive",this._lookAhead=.1,this._updateInterval=this._lookAhead/3,this._computedUpdateInterval=0,this._worker=this._createWorker(),this._constants={}},t.extend(t.Context,t.Emitter),t.Emitter.mixin(t.Context),t.Context.prototype._defineProperty=function(t,e){this.isUndef(this[e])&&Object.defineProperty(this,e,{get:function(){return"function"==typeof t[e]?t[e].bind(t):t[e]},set:function(i){t[e]=i}})},t.Context.prototype.now=function(){return this._context.currentTime},t.Context.prototype._createWorker=function(){window.URL=window.URL||window.webkitURL;var t=new Blob(["var timeoutTime = "+(1e3*this._updateInterval).toFixed(1)+";self.onmessage = function(msg){\ttimeoutTime = parseInt(msg.data);};function tick(){\tsetTimeout(tick, timeoutTime);\tself.postMessage('tick');}tick();"]),e=URL.createObjectURL(t),i=new Worker(e);return i.addEventListener("message",function(){this.emit("tick")}.bind(this)),i.addEventListener("message",function(){var t=this.now();if(this.isNumber(this._lastUpdate)){var e=t-this._lastUpdate;this._computedUpdateInterval=Math.max(e,.97*this._computedUpdateInterval)}this._lastUpdate=t}.bind(this)),i},t.Context.prototype.getConstant=function(t){if(this._constants[t])return this._constants[t];for(var e=this._context.createBuffer(1,128,this._context.sampleRate),i=e.getChannelData(0),s=0;s<i.length;s++)i[s]=t;var n=this._context.createBufferSource();return n.channelCount=1,n.channelCountMode="explicit",n.buffer=e,n.loop=!0,n.start(0),this._constants[t]=n,n},Object.defineProperty(t.Context.prototype,"lag",{get:function(){var t=this._computedUpdateInterval-this._updateInterval;return t=Math.max(t,0)}}),Object.defineProperty(t.Context.prototype,"lookAhead",{get:function(){return this._lookAhead},set:function(t){this._lookAhead=t}}),Object.defineProperty(t.Context.prototype,"updateInterval",{get:function(){return this._updateInterval},set:function(e){this._updateInterval=Math.max(e,t.prototype.blockTime),this._worker.postMessage(Math.max(1e3*e,1))}}),Object.defineProperty(t.Context.prototype,"latencyHint",{get:function(){return this._latencyHint},set:function(t){var e=t;if(this._latencyHint=t,this.isString(t))switch(t){case"interactive":e=.1,this._context.latencyHint=t;break;case"playback":e=.8,this._context.latencyHint=t;break;case"balanced":e=.25,this._context.latencyHint=t;break;case"fastest":e=.01}this.lookAhead=e,this.updateInterval=e/3}}),t.supported?(!function(){function e(e,i,n){if(e.input)Array.isArray(e.input)?(t.prototype.isUndef(n)&&(n=0),this.connect(e.input[n])):this.connect(e.input,i,n);else try{e instanceof AudioNode?s.call(this,e,i,n):s.call(this,e,i)}catch(t){throw new Error("error connecting to node: "+e+"\n"+t)}}function i(e,i,s){if(e&&e.input&&Array.isArray(e.input))t.prototype.isUndef(s)&&(s=0),this.disconnect(e.input[s],i,s);else if(e&&e.input)this.disconnect(e.input,i,s);else try{n.apply(this,arguments)}catch(t){throw new Error("error disconnecting node: "+e+"\n"+t)}}var s=AudioNode.prototype.connect,n=AudioNode.prototype.disconnect;AudioNode.prototype.connect!==e&&(AudioNode.prototype.connect=e,AudioNode.prototype.disconnect=i)}(),t.context=new t.Context):console.warn("This browser does not support Tone.js"),t.Context}),t(function(t){return t.Type={Default:"number",Time:"time",Frequency:"frequency",TransportTime:"transportTime",Ticks:"ticks",NormalRange:"normalRange",AudioRange:"audioRange",Decibels:"db",Interval:"interval",BPM:"bpm",Positive:"positive",Cents:"cents",Degrees:"degrees",MIDI:"midi",BarsBeatsSixteenths:"barsBeatsSixteenths",Samples:"samples",Hertz:"hertz",Note:"note",Milliseconds:"milliseconds",Seconds:"seconds",Notation:"notation"},t.prototype.toSeconds=function(e){return this.isNumber(e)?e:this.isUndef(e)?this.now():this.isString(e)?new t.Time(e).toSeconds():e instanceof t.TimeBase?e.toSeconds():void 0},t.prototype.toFrequency=function(e){return this.isNumber(e)?e:this.isString(e)||this.isUndef(e)?new t.Frequency(e).valueOf():e instanceof t.TimeBase?e.toFrequency():void 0},t.prototype.toTicks=function(e){return this.isNumber(e)||this.isString(e)?new t.TransportTime(e).toTicks():this.isUndef(e)?t.Transport.ticks:e instanceof t.TimeBase?e.toTicks():void 0},t}),t(function(t){return t.Param=function(){var e=this.optionsObject(arguments,["param","units","convert"],t.Param.defaults);this._param=this.input=e.param,this.units=e.units,this.convert=e.convert,this.overridden=!1,this._lfo=null,this.isObject(e.lfo)?this.value=e.lfo:this.isUndef(e.value)||(this.value=e.value)},t.extend(t.Param),t.Param.defaults={units:t.Type.Default,convert:!0,param:void 0},Object.defineProperty(t.Param.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(e){if(this.isObject(e)){if(this.isUndef(t.LFO))throw new Error("Include 'Tone.LFO' to use an LFO as a Param value.");this._lfo&&this._lfo.dispose(),this._lfo=new t.LFO(e).start(),this._lfo.connect(this.input)}else{var i=this._fromUnits(e);this._param.cancelScheduledValues(0),this._param.value=i}}}),t.Param.prototype._fromUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Time:return this.toSeconds(e);case t.Type.Frequency:return this.toFrequency(e);case t.Type.Decibels:return this.dbToGain(e);case t.Type.NormalRange:return Math.min(Math.max(e,0),1);case t.Type.AudioRange:return Math.min(Math.max(e,-1),1);case t.Type.Positive:return Math.max(e,0);default:return e}},t.Param.prototype._toUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Decibels:return this.gainToDb(e);default:return e}},t.Param.prototype._minOutput=1e-5,t.Param.prototype.setValueAtTime=function(t,e){return t=this._fromUnits(t),e=this.toSeconds(e),e<=this.now()+this.blockTime?this._param.value=t:this._param.setValueAtTime(t,e),this},t.Param.prototype.setRampPoint=function(t){t=this.defaultArg(t,this.now());var e=this._param.value;return 0===e&&(e=this._minOutput),this._param.setValueAtTime(e,t),this},t.Param.prototype.linearRampToValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.linearRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValueAtTime=function(t,e){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),this._param.exponentialRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValue=function(t,e,i){return i=this.toSeconds(i),this.setRampPoint(i),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.linearRampToValue=function(t,e,i){return i=this.toSeconds(i),this.setRampPoint(i),this.linearRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.setTargetAtTime=function(t,e,i){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),i=Math.max(this._minOutput,i),this._param.setTargetAtTime(t,this.toSeconds(e),i),this},t.Param.prototype.setValueCurveAtTime=function(t,e,i){for(var s=0;s<t.length;s++)t[s]=this._fromUnits(t[s]);return this._param.setValueCurveAtTime(t,this.toSeconds(e),this.toSeconds(i)),this},t.Param.prototype.cancelScheduledValues=function(t){return this._param.cancelScheduledValues(this.toSeconds(t)),this},t.Param.prototype.rampTo=function(e,i,s){return i=this.defaultArg(i,0),this.units===t.Type.Frequency||this.units===t.Type.BPM||this.units===t.Type.Decibels?this.exponentialRampToValue(e,i,s):this.linearRampToValue(e,i,s),this},Object.defineProperty(t.Param.prototype,"lfo",{get:function(){return this._lfo}}),t.Param.prototype.dispose=function(){return t.prototype.dispose.call(this),this._param=null,this._lfo&&(this._lfo.dispose(),this._lfo=null),this},t.Param}),t(function(t){return window.GainNode&&!AudioContext.prototype.createGain&&(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),t.Gain=function(){var e=this.optionsObject(arguments,["gain","units"],t.Gain.defaults);this.input=this.output=this._gainNode=this.context.createGain(),this.gain=new t.Param({param:this._gainNode.gain,units:e.units,value:e.gain,convert:e.convert}),this._readOnly("gain")},t.extend(t.Gain),t.Gain.defaults={gain:1,convert:!0},t.Gain.prototype.dispose=function(){t.Param.prototype.dispose.call(this),this._gainNode.disconnect(),this._gainNode=null,this._writable("gain"),this.gain.dispose(),this.gain=null},t.prototype.createInsOuts=function(e,i){1===e?this.input=new t.Gain:e>1&&(this.input=new Array(e)),1===i?this.output=new t.Gain:i>1&&(this.output=new Array(e))},t.Gain}),t(function(t){return t.Signal=function(){var e=this.optionsObject(arguments,["value","units"],t.Signal.defaults);this.output=this._gain=this.context.createGain(),e.param=this._gain.gain,t.Param.call(this,e),this.input=this._param=this._gain.gain,this.context.getConstant(1).chain(this._gain)},t.extend(t.Signal,t.Param),t.Signal.defaults={value:0,units:t.Type.Default,convert:!0},t.Signal.prototype.connect=t.SignalBase.prototype.connect,t.Signal.prototype.dispose=function(){return t.Param.prototype.dispose.call(this),this._param=null,this._gain.disconnect(),this._gain=null,this},t.Signal}),t(function(t){return t.Timeline=function(){var e=this.optionsObject(arguments,["memory"],t.Timeline.defaults);this._timeline=[],this._toRemove=[],this._iterating=!1,this.memory=e.memory},t.extend(t.Timeline),t.Timeline.defaults={memory:1/0},Object.defineProperty(t.Timeline.prototype,"length",{get:function(){return this._timeline.length}}),t.Timeline.prototype.add=function(t){if(this.isUndef(t.time))throw new Error("Tone.Timeline: events must have a time attribute");if(this._timeline.length){var e=this._search(t.time);this._timeline.splice(e+1,0,t)}else this._timeline.push(t);if(this.length>this.memory){var i=this.length-this.memory;this._timeline.splice(0,i)}return this},t.Timeline.prototype.remove=function(t){if(this._iterating)this._toRemove.push(t);else{var e=this._timeline.indexOf(t);-1!==e&&this._timeline.splice(e,1)}return this},t.Timeline.prototype.get=function(t){var e=this._search(t);return-1!==e?this._timeline[e]:null},t.Timeline.prototype.peek=function(){return this._timeline[0]},t.Timeline.prototype.shift=function(){return this._timeline.shift()},t.Timeline.prototype.getAfter=function(t){var e=this._search(t);return e+1<this._timeline.length?this._timeline[e+1]:null},t.Timeline.prototype.getBefore=function(t){var e=this._timeline.length;if(e>0&&this._timeline[e-1].time<t)return this._timeline[e-1];var i=this._search(t);return i-1>=0?this._timeline[i-1]:null},t.Timeline.prototype.cancel=function(t){if(this._timeline.length>1){var e=this._search(t);if(e>=0)if(this._timeline[e].time===t){for(var i=e;i>=0&&this._timeline[i].time===t;i--)e=i;this._timeline=this._timeline.slice(0,e)}else this._timeline=this._timeline.slice(0,e+1);else this._timeline=[]}else 1===this._timeline.length&&this._timeline[0].time>=t&&(this._timeline=[]);return this},t.Timeline.prototype.cancelBefore=function(t){if(this._timeline.length){var e=this._search(t);e>=0&&(this._timeline=this._timeline.slice(e+1))}return this},t.Timeline.prototype._search=function(t){var e=0,i=this._timeline.length,s=i;if(i>0&&this._timeline[i-1].time<=t)return i-1;for(;e<s;){var n=Math.floor(e+(s-e)/2),o=this._timeline[n],r=this._timeline[n+1];if(o.time===t){for(var a=n;a<this._timeline.length;a++){this._timeline[a].time===t&&(n=a)}return n}if(o.time<t&&r.time>t)return n;o.time>t?s=n:o.time<t&&(e=n+1)}return-1},t.Timeline.prototype._iterate=function(t,e,i){this._iterating=!0,e=this.defaultArg(e,0),i=this.defaultArg(i,this._timeline.length-1);for(var s=e;s<=i;s++)t(this._timeline[s]);if(this._iterating=!1,this._toRemove.length>0){for(var n=0;n<this._toRemove.length;n++){var o=this._timeline.indexOf(this._toRemove[n]);-1!==o&&this._timeline.splice(o,1)}this._toRemove=[]}},t.Timeline.prototype.forEach=function(t){return this._iterate(t),this},t.Timeline.prototype.forEachBefore=function(t,e){var i=this._search(t);return-1!==i&&this._iterate(e,0,i),this},t.Timeline.prototype.forEachAfter=function(t,e){var i=this._search(t);return this._iterate(e,i+1),this},t.Timeline.prototype.forEachFrom=function(t,e){for(var i=this._search(t);i>=0&&this._timeline[i].time>=t;)i--;return this._iterate(e,i+1),this},t.Timeline.prototype.forEachAtTime=function(t,e){var i=this._search(t);return-1!==i&&this._iterate(function(i){i.time===t&&e(i)},0,i),this},t.Timeline.prototype.dispose=function(){t.prototype.dispose.call(this),this._timeline=null,this._toRemove=null},t.Timeline}),t(function(t){return t.TimelineSignal=function(){var e=this.optionsObject(arguments,["value","units"],t.Signal.defaults);this._events=new t.Timeline(10),t.Signal.apply(this,e),e.param=this._param,t.Param.call(this,e),this._initial=this._fromUnits(this._param.value)},t.extend(t.TimelineSignal,t.Param),t.TimelineSignal.Type={Linear:"linear",Exponential:"exponential",Target:"target",Curve:"curve",Set:"set"},Object.defineProperty(t.TimelineSignal.prototype,"value",{get:function(){var t=this.now(),e=this.getValueAtTime(t);return this._toUnits(e)},set:function(t){var e=this._fromUnits(t);this._initial=e,this.cancelScheduledValues(),this._param.value=e}}),t.TimelineSignal.prototype.setValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.add({type:t.TimelineSignal.Type.Set,value:e,time:i}),this._param.setValueAtTime(e,i),this},t.TimelineSignal.prototype.linearRampToValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.add({type:t.TimelineSignal.Type.Linear,value:e,time:i}),this._param.linearRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.exponentialRampToValueAtTime=function(e,i){i=this.toSeconds(i);var s=this._searchBefore(i);s&&0===s.value&&this.setValueAtTime(this._minOutput,s.time),e=this._fromUnits(e);var n=Math.max(e,this._minOutput);return this._events.add({type:t.TimelineSignal.Type.Exponential,value:n,time:i}),e<this._minOutput?(this._param.exponentialRampToValueAtTime(this._minOutput,i-this.sampleTime),this.setValueAtTime(0,i)):this._param.exponentialRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.setTargetAtTime=function(e,i,s){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),s=Math.max(this._minOutput,s),i=this.toSeconds(i),this._events.add({type:t.TimelineSignal.Type.Target,value:e,time:i,constant:s}),this._param.setTargetAtTime(e,i,s),this},t.TimelineSignal.prototype.setValueCurveAtTime=function(e,i,s,n){n=this.defaultArg(n,1);for(var o=new Array(e.length),r=0;r<o.length;r++)o[r]=this._fromUnits(e[r])*n;i=this.toSeconds(i),s=this.toSeconds(s),this._events.add({type:t.TimelineSignal.Type.Curve,value:o,time:i,duration:s}),this._param.setValueAtTime(o[0],i);for(var a=1;a<o.length;a++){var h=i+a/(o.length-1)*s;this._param.linearRampToValueAtTime(o[a],h)}return this},t.TimelineSignal.prototype.cancelScheduledValues=function(t){return t=this.toSeconds(t),this._events.cancel(t),this._param.cancelScheduledValues(t),this},t.TimelineSignal.prototype.setRampPoint=function(e){e=this.toSeconds(e);var i=this._toUnits(this.getValueAtTime(e)),s=this._searchBefore(e);if(s&&s.time===e)this.cancelScheduledValues(e+this.sampleTime);else if(s&&s.type===t.TimelineSignal.Type.Curve&&s.time+s.duration>e)this.cancelScheduledValues(e),this.linearRampToValueAtTime(i,e);else{var n=this._searchAfter(e);n&&(this.cancelScheduledValues(e),n.type===t.TimelineSignal.Type.Linear?this.linearRampToValueAtTime(i,e):n.type===t.TimelineSignal.Type.Exponential&&this.exponentialRampToValueAtTime(i,e)),this.setValueAtTime(i,e)}return this},t.TimelineSignal.prototype.linearRampToValueBetween=function(t,e,i){return this.setRampPoint(e),this.linearRampToValueAtTime(t,i),this},t.TimelineSignal.prototype.exponentialRampToValueBetween=function(t,e,i){return this.setRampPoint(e),this.exponentialRampToValueAtTime(t,i),this},t.TimelineSignal.prototype._searchBefore=function(t){return this._events.get(t)},t.TimelineSignal.prototype._searchAfter=function(t){return this._events.getAfter(t)},t.TimelineSignal.prototype.getValueAtTime=function(e){e=this.toSeconds(e);var i=this._searchAfter(e),s=this._searchBefore(e),n=this._initial;if(null===s)n=this._initial;else if(s.type===t.TimelineSignal.Type.Target){var o,r=this._events.getBefore(s.time);o=null===r?this._initial:r.value,n=this._exponentialApproach(s.time,o,s.value,s.constant,e)}else n=s.type===t.TimelineSignal.Type.Curve?this._curveInterpolate(s.time,s.value,s.duration,e):null===i?s.value:i.type===t.TimelineSignal.Type.Linear?this._linearInterpolate(s.time,s.value,i.time,i.value,e):i.type===t.TimelineSignal.Type.Exponential?this._exponentialInterpolate(s.time,s.value,i.time,i.value,e):s.value;return n},t.TimelineSignal.prototype.connect=t.SignalBase.prototype.connect,t.TimelineSignal.prototype._exponentialApproach=function(t,e,i,s,n){return i+(e-i)*Math.exp(-(n-t)/s)},t.TimelineSignal.prototype._linearInterpolate=function(t,e,i,s,n){return e+(n-t)/(i-t)*(s-e)},t.TimelineSignal.prototype._exponentialInterpolate=function(t,e,i,s,n){return(e=Math.max(this._minOutput,e))*Math.pow(s/e,(n-t)/(i-t))},t.TimelineSignal.prototype._curveInterpolate=function(t,e,i,s){var n=e.length;if(s>=t+i)return e[n-1];if(s<=t)return e[0];var o=(s-t)/i,r=Math.floor((n-1)*o),a=Math.ceil((n-1)*o),h=e[r],l=e[a];return a===r?h:this._linearInterpolate(r,h,a,l,o*(n-1))},t.TimelineSignal.prototype.dispose=function(){t.Signal.prototype.dispose.call(this),t.Param.prototype.dispose.call(this),this._events.dispose(),this._events=null},t.TimelineSignal}),t(function(t){return t.Pow=function(e){this._exp=this.defaultArg(e,1),this._expScaler=this.input=this.output=new t.WaveShaper(this._expFunc(this._exp),8192)},t.extend(t.Pow,t.SignalBase),Object.defineProperty(t.Pow.prototype,"value",{get:function(){return this._exp},set:function(t){this._exp=t,this._expScaler.setMap(this._expFunc(this._exp))}}),t.Pow.prototype._expFunc=function(t){return function(e){return Math.pow(Math.abs(e),t)}},t.Pow.prototype.dispose=function(){return t.prototype.dispose.call(this),this._expScaler.dispose(),this._expScaler=null,this},t.Pow}),t(function(t){return t.Envelope=function(){var e=this.optionsObject(arguments,["attack","decay","sustain","release"],t.Envelope.defaults);this.attack=e.attack,this.decay=e.decay,this.sustain=e.sustain,this.release=e.release,this._attackCurve="linear",this._releaseCurve="exponential",this._sig=this.output=new t.TimelineSignal,this._sig.setValueAtTime(0,0),this.attackCurve=e.attackCurve,this.releaseCurve=e.releaseCurve},t.extend(t.Envelope),t.Envelope.defaults={attack:.01,decay:.1,sustain:.5,release:1,attackCurve:"linear",releaseCurve:"exponential"},Object.defineProperty(t.Envelope.prototype,"value",{get:function(){return this.getValueAtTime(this.now())}}),Object.defineProperty(t.Envelope.prototype,"attackCurve",{get:function(){if(this.isString(this._attackCurve))return this._attackCurve;if(this.isArray(this._attackCurve)){for(var e in t.Envelope.Type)if(t.Envelope.Type[e].In===this._attackCurve)return e;return this._attackCurve}},set:function(e){if(t.Envelope.Type.hasOwnProperty(e)){var i=t.Envelope.Type[e];this.isObject(i)?this._attackCurve=i.In:this._attackCurve=i}else{if(!this.isArray(e))throw new Error("Tone.Envelope: invalid curve: "+e);this._attackCurve=e}}}),Object.defineProperty(t.Envelope.prototype,"releaseCurve",{get:function(){if(this.isString(this._releaseCurve))return this._releaseCurve;if(this.isArray(this._releaseCurve)){for(var e in t.Envelope.Type)if(t.Envelope.Type[e].Out===this._releaseCurve)return e;return this._releaseCurve}},set:function(e){if(t.Envelope.Type.hasOwnProperty(e)){var i=t.Envelope.Type[e];this.isObject(i)?this._releaseCurve=i.Out:this._releaseCurve=i}else{if(!this.isArray(e))throw new Error("Tone.Envelope: invalid curve: "+e);this._releaseCurve=e}}}),t.Envelope.prototype.triggerAttack=function(t,e){t=this.toSeconds(t);var i=this.toSeconds(this.attack),s=i,n=this.toSeconds(this.decay);e=this.defaultArg(e,1);var o=this.getValueAtTime(t);if(o>0){s=(1-o)/(1/s)}if("linear"===this._attackCurve)this._sig.linearRampToValue(e,s,t);else if("exponential"===this._attackCurve)this._sig.exponentialRampToValue(e,s,t);else if(s>0){this._sig.setRampPoint(t);var r=this._attackCurve;if(s<i){var a=1-s/i,h=Math.floor(a*this._attackCurve.length);r=this._attackCurve.slice(h),r[0]=o}this._sig.setValueCurveAtTime(r,t,s,e)}return this._sig.exponentialRampToValue(e*this.sustain,n,s+t),this},t.Envelope.prototype.triggerRelease=function(t){t=this.toSeconds(t);var e=this.getValueAtTime(t);if(e>0){var i=this.toSeconds(this.release);if("linear"===this._releaseCurve)this._sig.linearRampToValue(0,i,t);else if("exponential"===this._releaseCurve)this._sig.exponentialRampToValue(0,i,t);else{var s=this._releaseCurve;this.isArray(s)&&(this._sig.setRampPoint(t),this._sig.setValueCurveAtTime(s,t,i,e))}}return this},t.Envelope.prototype.getValueAtTime=function(t){return this._sig.getValueAtTime(t)},t.Envelope.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),this.triggerAttack(e,i),this.triggerRelease(e+this.toSeconds(t)),this},t.Envelope.prototype.cancel=function(t){return this._sig.cancelScheduledValues(t),this},t.Envelope.prototype.connect=t.Signal.prototype.connect,function(){function e(t){for(var e=new Array(t.length),i=0;i<t.length;i++)e[i]=1-t[i];return e}var i,s,n=[];for(i=0;i<128;i++)n[i]=Math.sin(i/127*(Math.PI/2));var o=[];for(i=0;i<127;i++){s=i/127;var r=Math.sin(s*(2*Math.PI)*6.4-Math.PI/2)+1;o[i]=r/10+.83*s}o[127]=1;var a=[];for(i=0;i<128;i++)a[i]=Math.ceil(i/127*5)/5;var h=[];for(i=0;i<128;i++)s=i/127,h[i]=.5*(1-Math.cos(Math.PI*s));var l=[];for(i=0;i<128;i++){s=i/127;var c=4*Math.pow(s,3)+.2,u=Math.cos(c*Math.PI*2*s);l[i]=Math.abs(u*(1-s))}t.Envelope.Type={linear:"linear",exponential:"exponential",bounce:{In:e(l),Out:l},cosine:{In:n,Out:function(t){return t.slice(0).reverse()}(n)},step:{In:a,Out:e(a)},ripple:{In:o,Out:e(o)},sine:{In:h,Out:e(h)}}}(),t.Envelope.prototype.dispose=function(){return t.prototype.dispose.call(this),this._sig.dispose(),this._sig=null,this._attackCurve=null,this._releaseCurve=null,this},t.Envelope}),t(function(t){return t.AmplitudeEnvelope=function(){t.Envelope.apply(this,arguments),this.input=this.output=new t.Gain,this._sig.connect(this.output.gain)},t.extend(t.AmplitudeEnvelope,t.Envelope),t.AmplitudeEnvelope.prototype.dispose=function(){return this.input.dispose(),this.input=null,t.Envelope.prototype.dispose.call(this),this},t.AmplitudeEnvelope}),t(function(t){return window.AnalyserNode&&!AnalyserNode.prototype.getFloatTimeDomainData&&(AnalyserNode.prototype.getFloatTimeDomainData=function(t){var e=new Uint8Array(t.length);this.getByteTimeDomainData(e);for(var i=0;i<e.length;i++)t[i]=(e[i]-128)/128}),t.Analyser=function(){var e=this.optionsObject(arguments,["type","size"],t.Analyser.defaults);this._analyser=this.input=this.output=this.context.createAnalyser(),this._type=e.type,this._returnType=e.returnType,this._buffer=null,this.size=e.size,this.type=e.type,this.returnType=e.returnType,this.minDecibels=e.minDecibels,this.maxDecibels=e.maxDecibels},t.extend(t.Analyser),t.Analyser.defaults={size:1024,returnType:"byte",type:"fft",smoothing:.8,maxDecibels:-30,minDecibels:-100},t.Analyser.Type={Waveform:"waveform",FFT:"fft"},t.Analyser.ReturnType={Byte:"byte",Float:"float"},t.Analyser.prototype.analyse=function(){return this._type===t.Analyser.Type.FFT?this._returnType===t.Analyser.ReturnType.Byte?this._analyser.getByteFrequencyData(this._buffer):this._analyser.getFloatFrequencyData(this._buffer):this._type===t.Analyser.Type.Waveform&&(this._returnType===t.Analyser.ReturnType.Byte?this._analyser.getByteTimeDomainData(this._buffer):this._analyser.getFloatTimeDomainData(this._buffer)),this._buffer},Object.defineProperty(t.Analyser.prototype,"size",{get:function(){return this._analyser.frequencyBinCount},set:function(t){this._analyser.fftSize=2*t,this.type=this._type}}),Object.defineProperty(t.Analyser.prototype,"returnType",{get:function(){return this._returnType},set:function(e){if(e===t.Analyser.ReturnType.Byte)this._buffer=new Uint8Array(this._analyser.frequencyBinCount);else{if(e!==t.Analyser.ReturnType.Float)throw new TypeError("Tone.Analayser: invalid return type: "+e);this._buffer=new Float32Array(this._analyser.frequencyBinCount)}this._returnType=e}}),Object.defineProperty(t.Analyser.prototype,"type",{get:function(){return this._type},set:function(e){if(e!==t.Analyser.Type.Waveform&&e!==t.Analyser.Type.FFT)throw new TypeError("Tone.Analyser: invalid type: "+e);this._type=e}}),Object.defineProperty(t.Analyser.prototype,"smoothing",{get:function(){return this._analyser.smoothingTimeConstant},set:function(t){this._analyser.smoothingTimeConstant=t}}),Object.defineProperty(t.Analyser.prototype,"minDecibels",{get:function(){return this._analyser.minDecibels},set:function(t){this._analyser.minDecibels=t}}),Object.defineProperty(t.Analyser.prototype,"maxDecibels",{get:function(){return this._analyser.maxDecibels},set:function(t){this._analyser.maxDecibels=t}}),t.Analyser.prototype.dispose=function(){t.prototype.dispose.call(this),this._analyser.disconnect(),this._analyser=null,this._buffer=null},t.Analyser}),t(function(t){return t.Compressor=function(){var e=this.optionsObject(arguments,["threshold","ratio"],t.Compressor.defaults);this._compressor=this.input=this.output=this.context.createDynamicsCompressor(),this.threshold=new t.Param({param:this._compressor.threshold,units:t.Type.Decibels,convert:!1}),this.attack=new t.Param(this._compressor.attack,t.Type.Time),this.release=new t.Param(this._compressor.release,t.Type.Time),this.knee=new t.Param({param:this._compressor.knee,units:t.Type.Decibels,convert:!1}),this.ratio=new t.Param({param:this._compressor.ratio,convert:!1}),this._readOnly(["knee","release","attack","ratio","threshold"]),this.set(e)},t.extend(t.Compressor),t.Compressor.defaults={ratio:12,threshold:-24,release:.25,attack:.003,knee:30},t.Compressor.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["knee","release","attack","ratio","threshold"]),this._compressor.disconnect(),this._compressor=null,this.attack.dispose(),this.attack=null,this.release.dispose(),this.release=null,this.threshold.dispose(),this.threshold=null,this.ratio.dispose(),this.ratio=null,this.knee.dispose(),this.knee=null,this},t.Compressor}),t(function(t){return t.Add=function(e){this.createInsOuts(2,0),this._sum=this.input[0]=this.input[1]=this.output=new t.Gain,this._param=this.input[1]=new t.Signal(e),this._param.connect(this._sum)},t.extend(t.Add,t.Signal),t.Add.prototype.dispose=function(){return t.prototype.dispose.call(this),this._sum.dispose(),this._sum=null,this._param.dispose(),this._param=null,this},t.Add}),t(function(t){return t.Multiply=function(e){this.createInsOuts(2,0),this._mult=this.input[0]=this.output=new t.Gain,this._param=this.input[1]=this.output.gain,this._param.value=this.defaultArg(e,0)},t.extend(t.Multiply,t.Signal),t.Multiply.prototype.dispose=function(){return t.prototype.dispose.call(this),this._mult.dispose(),this._mult=null,this._param=null,this},t.Multiply}),t(function(t){return t.Negate=function(){this._multiply=this.input=this.output=new t.Multiply(-1)},t.extend(t.Negate,t.SignalBase),t.Negate.prototype.dispose=function(){return t.prototype.dispose.call(this),this._multiply.dispose(),this._multiply=null,this},t.Negate}),t(function(t){return t.Subtract=function(e){this.createInsOuts(2,0),this._sum=this.input[0]=this.output=new t.Gain,this._neg=new t.Negate,this._param=this.input[1]=new t.Signal(e),this._param.chain(this._neg,this._sum)},t.extend(t.Subtract,t.Signal),t.Subtract.prototype.dispose=function(){return t.prototype.dispose.call(this),this._neg.dispose(),this._neg=null,this._sum.disconnect(),this._sum=null,this._param.dispose(),this._param=null,this},t.Subtract}),t(function(t){return t.GreaterThanZero=function(){this._thresh=this.output=new t.WaveShaper(function(t){return t<=0?0:1},127),this._scale=this.input=new t.Multiply(1e4),this._scale.connect(this._thresh)},t.extend(t.GreaterThanZero,t.SignalBase),t.GreaterThanZero.prototype.dispose=function(){return t.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._thresh.dispose(),this._thresh=null,this},t.GreaterThanZero}),t(function(t){return t.GreaterThan=function(e){this.createInsOuts(2,0),this._param=this.input[0]=new t.Subtract(e),this.input[1]=this._param.input[1],this._gtz=this.output=new t.GreaterThanZero,this._param.connect(this._gtz)},t.extend(t.GreaterThan,t.Signal),t.GreaterThan.prototype.dispose=function(){return t.prototype.dispose.call(this),this._param.dispose(),this._param=null,this._gtz.dispose(),this._gtz=null,this},t.GreaterThan}),t(function(t){return t.Abs=function(){this._abs=this.input=this.output=new t.WaveShaper(function(t){return 0===t?0:Math.abs(t)},127)},t.extend(t.Abs,t.SignalBase),t.Abs.prototype.dispose=function(){return t.prototype.dispose.call(this),this._abs.dispose(),this._abs=null,this},t.Abs}),t(function(t){return t.Modulo=function(e){this.createInsOuts(1,0),this._shaper=new t.WaveShaper(Math.pow(2,16)),this._multiply=new t.Multiply,this._subtract=this.output=new t.Subtract,this._modSignal=new t.Signal(e),this.input.fan(this._shaper,this._subtract),this._modSignal.connect(this._multiply,0,0),this._shaper.connect(this._multiply,0,1),this._multiply.connect(this._subtract,0,1),this._setWaveShaper(e)},t.extend(t.Modulo,t.SignalBase),t.Modulo.prototype._setWaveShaper=function(t){this._shaper.setMap(function(e){return Math.floor((e+1e-4)/t)})},Object.defineProperty(t.Modulo.prototype,"value",{get:function(){return this._modSignal.value},set:function(t){this._modSignal.value=t,this._setWaveShaper(t)}}),t.Modulo.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this._multiply.dispose(),this._multiply=null,this._subtract.dispose(),this._subtract=null,this._modSignal.dispose(),this._modSignal=null,this},t.Modulo}),t(function(t){return t.AudioToGain=function(){this._norm=this.input=this.output=new t.WaveShaper(function(t){return(t+1)/2})},t.extend(t.AudioToGain,t.SignalBase),t.AudioToGain.prototype.dispose=function(){return t.prototype.dispose.call(this),this._norm.dispose(),this._norm=null,this},t.AudioToGain}),t(function(t){function e(t,e,i){var s=new t;return i._eval(e[0]).connect(s,0,0),i._eval(e[1]).connect(s,0,1),s}function i(t,e,i){var s=new t;return i._eval(e[0]).connect(s,0,0),s}function s(t){return t?parseFloat(t):void 0}function n(t){return t&&t.args?parseFloat(t.args):void 0}return t.Expr=function(){var t=this._replacements(Array.prototype.slice.call(arguments)),e=this._parseInputs(t);this._nodes=[],this.input=new Array(e);for(var i=0;i<e;i++)this.input[i]=this.context.createGain();var s,n=this._parseTree(t);try{s=this._eval(n)}catch(e){throw this._disposeNodes(),new Error("Tone.Expr: Could evaluate expression: "+t)}this.output=s},t.extend(t.Expr,t.SignalBase),t.Expr._Expressions={value:{signal:{regexp:/^\d+\.\d+|^\d+/,method:function(e){return new t.Signal(s(e))}},input:{regexp:/^\$\d/,method:function(t,e){return e.input[s(t.substr(1))]}}},glue:{"(":{regexp:/^\(/},")":{regexp:/^\)/},",":{regexp:/^,/}},func:{abs:{regexp:/^abs/,method:i.bind(this,t.Abs)},mod:{regexp:/^mod/,method:function(e,i){var s=n(e[1]),o=new t.Modulo(s);return i._eval(e[0]).connect(o),o}},pow:{regexp:/^pow/,method:function(e,i){var s=n(e[1]),o=new t.Pow(s);return i._eval(e[0]).connect(o),o}},a2g:{regexp:/^a2g/,method:function(e,i){var s=new t.AudioToGain;return i._eval(e[0]).connect(s),s}}},binary:{"+":{regexp:/^\+/,precedence:1,method:e.bind(this,t.Add)},"-":{regexp:/^\-/,precedence:1,method:function(s,n){return 1===s.length?i(t.Negate,s,n):e(t.Subtract,s,n)}},"*":{regexp:/^\*/,precedence:0,method:e.bind(this,t.Multiply)}},unary:{"-":{regexp:/^\-/,method:i.bind(this,t.Negate)},"!":{regexp:/^\!/,method:i.bind(this,t.NOT)}}},t.Expr.prototype._parseInputs=function(t){var e=t.match(/\$\d/g),i=0;if(null!==e)for(var s=0;s<e.length;s++){var n=parseInt(e[s].substr(1))+1;i=Math.max(i,n)}return i},t.Expr.prototype._replacements=function(t){for(var e=t.shift(),i=0;i<t.length;i++)e=e.replace(/\%/i,t[i]);return e},t.Expr.prototype._tokenize=function(e){for(var i=-1,s=[];e.length>0;){e=e.trim();var n=function(e){for(var i in t.Expr._Expressions){var s=t.Expr._Expressions[i];for(var n in s){var o=s[n],r=o.regexp,a=e.match(r);if(null!==a)return{type:i,value:a[0],method:o.method}}}throw new SyntaxError("Tone.Expr: Unexpected token "+e)}(e);s.push(n),e=e.substr(n.value.length)}return{next:function(){return s[++i]},peek:function(){return s[i+1]}}},t.Expr.prototype._parseTree=function(e){function i(t,e){return!c(t)&&"glue"===t.type&&t.value===e}function s(e,i,s){var n=t.Expr._Expressions[i];if(!c(e))for(var o in n){var r=n[o];if(r.regexp.test(e.value)){if(c(s))return!0;if(r.precedence===s)return!0}}return!1}function n(t){c(t)&&(t=5);var e;e=t<0?o():n(t-1);for(var i=l.peek();s(i,"binary",t);)i=l.next(),e={operator:i.value,method:i.method,args:[e,n(t-1)]},i=l.peek();return e}function o(){var t,e;return t=l.peek(),s(t,"unary")?(t=l.next(),e=o(),{operator:t.value,method:t.method,args:[e]}):r()}function r(){var t,e;if(t=l.peek(),c(t))throw new SyntaxError("Tone.Expr: Unexpected termination of expression");if("func"===t.type)return t=l.next(),a(t);if("value"===t.type)return t=l.next(),{method:t.method,args:t.value};if(i(t,"(")){if(l.next(),e=n(),t=l.next(),!i(t,")"))throw new SyntaxError("Expected )");return e}throw new SyntaxError("Tone.Expr: Parse error, cannot process token "+t.value)}function a(t){var e,s=[];if(e=l.next(),!i(e,"("))throw new SyntaxError('Tone.Expr: Expected ( in a function call "'+t.value+'"');if(e=l.peek(),i(e,")")||(s=h()),e=l.next(),!i(e,")"))throw new SyntaxError('Tone.Expr: Expected ) in a function call "'+t.value+'"');return{method:t.method,args:s,name:name}}function h(){for(var t,e,s=[];;){if(e=n(),c(e))break;if(s.push(e),t=l.peek(),!i(t,","))break;l.next()}return s}var l=this._tokenize(e),c=this.isUndef.bind(this);return n()},t.Expr.prototype._eval=function(t){if(!this.isUndef(t)){var e=t.method(t.args,this);return this._nodes.push(e),e}},t.Expr.prototype._disposeNodes=function(){for(var t=0;t<this._nodes.length;t++){var e=this._nodes[t];this.isFunction(e.dispose)?e.dispose():this.isFunction(e.disconnect)&&e.disconnect(),e=null,this._nodes[t]=null}this._nodes=null},t.Expr.prototype.dispose=function(){t.prototype.dispose.call(this),this._disposeNodes()},t.Expr}),t(function(t){return t.EqualPowerGain=function(){this._eqPower=this.input=this.output=new t.WaveShaper(function(t){return Math.abs(t)<.001?0:this.equalPowerScale(t)}.bind(this),4096)},t.extend(t.EqualPowerGain,t.SignalBase),t.EqualPowerGain.prototype.dispose=function(){return t.prototype.dispose.call(this),this._eqPower.dispose(),this._eqPower=null,this},t.EqualPowerGain}),t(function(t){return t.CrossFade=function(e){this.createInsOuts(2,1),this.a=this.input[0]=new t.Gain,this.b=this.input[1]=new t.Gain,this.fade=new t.Signal(this.defaultArg(e,.5),t.Type.NormalRange),this._equalPowerA=new t.EqualPowerGain,this._equalPowerB=new t.EqualPowerGain,this._invert=new t.Expr("1 - $0"),this.a.connect(this.output),this.b.connect(this.output),this.fade.chain(this._equalPowerB,this.b.gain),this.fade.chain(this._invert,this._equalPowerA,this.a.gain),this._readOnly("fade")},t.extend(t.CrossFade),t.CrossFade.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable("fade"),this._equalPowerA.dispose(),this._equalPowerA=null,this._equalPowerB.dispose(),this._equalPowerB=null,this.fade.dispose(),this.fade=null,this._invert.dispose(),this._invert=null,this.a.dispose(),this.a=null,this.b.dispose(),this.b=null,this},t.CrossFade}),t(function(t){return t.Filter=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,["frequency","type","rolloff"],t.Filter.defaults);this._filters=[],this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(0,t.Type.Cents),this.gain=new t.Signal({value:e.gain,convert:!1}),this.Q=new t.Signal(e.Q),this._type=e.type,this._rolloff=e.rolloff,this.rolloff=e.rolloff,this._readOnly(["detune","frequency","gain","Q"])},t.extend(t.Filter),t.Filter.defaults={type:"lowpass",frequency:350,rolloff:-12,Q:1,gain:0},Object.defineProperty(t.Filter.prototype,"type",{get:function(){return this._type},set:function(t){if(-1===["lowpass","highpass","bandpass","lowshelf","highshelf","notch","allpass","peaking"].indexOf(t))throw new TypeError("Tone.Filter: invalid type "+t);this._type=t;for(var e=0;e<this._filters.length;e++)this._filters[e].type=t}}),Object.defineProperty(t.Filter.prototype,"rolloff",{get:function(){return this._rolloff},set:function(t){t=parseInt(t,10);var e=[-12,-24,-48,-96],i=e.indexOf(t);if(-1===i)throw new RangeError("Tone.Filter: rolloff can only be -12, -24, -48 or -96");i+=1,this._rolloff=t,this.input.disconnect();for(var s=0;s<this._filters.length;s++)this._filters[s].disconnect(),this._filters[s]=null;this._filters=new Array(i);for(var n=0;n<i;n++){var o=this.context.createBiquadFilter();o.type=this._type,this.frequency.connect(o.frequency),this.detune.connect(o.detune),this.Q.connect(o.Q),this.gain.connect(o.gain),this._filters[n]=o}var r=[this.input].concat(this._filters).concat([this.output]);this.connectSeries.apply(this,r)}}),t.Filter.prototype.dispose=function(){t.prototype.dispose.call(this);for(var e=0;e<this._filters.length;e++)this._filters[e].disconnect(),this._filters[e]=null;return this._filters=null,this._writable(["detune","frequency","gain","Q"]),this.frequency.dispose(),this.Q.dispose(),this.frequency=null,this.Q=null,this.detune.dispose(),this.detune=null,this.gain.dispose(),this.gain=null,this},t.Filter}),t(function(t){return t.MultibandSplit=function(){var e=this.optionsObject(arguments,["lowFrequency","highFrequency"],t.MultibandSplit.defaults);this.input=new t.Gain,this.output=new Array(3),this.low=this.output[0]=new t.Filter(0,"lowpass"),this._lowMidFilter=new t.Filter(0,"highpass"),this.mid=this.output[1]=new t.Filter(0,"lowpass"),this.high=this.output[2]=new t.Filter(0,"highpass"),this.lowFrequency=new t.Signal(e.lowFrequency,t.Type.Frequency),this.highFrequency=new t.Signal(e.highFrequency,t.Type.Frequency),this.Q=new t.Signal(e.Q),this.input.fan(this.low,this.high),this.input.chain(this._lowMidFilter,this.mid),this.lowFrequency.connect(this.low.frequency),this.lowFrequency.connect(this._lowMidFilter.frequency),this.highFrequency.connect(this.mid.frequency),this.highFrequency.connect(this.high.frequency),this.Q.connect(this.low.Q),this.Q.connect(this._lowMidFilter.Q),this.Q.connect(this.mid.Q),this.Q.connect(this.high.Q),this._readOnly(["high","mid","low","highFrequency","lowFrequency"])},t.extend(t.MultibandSplit),t.MultibandSplit.defaults={lowFrequency:400,highFrequency:2500,Q:1},t.MultibandSplit.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this.low=null,this._lowMidFilter.dispose(),this._lowMidFilter=null,this.mid.dispose(),this.mid=null,this.high.dispose(),this.high=null,this.lowFrequency.dispose(),this.lowFrequency=null,this.highFrequency.dispose(),this.highFrequency=null,this.Q.dispose(),this.Q=null,this},t.MultibandSplit}),t(function(t){return t.EQ3=function(){var e=this.optionsObject(arguments,["low","mid","high"],t.EQ3.defaults);this.output=new t.Gain,this._multibandSplit=this.input=new t.MultibandSplit({lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this._lowGain=new t.Gain(e.low,t.Type.Decibels),this._midGain=new t.Gain(e.mid,t.Type.Decibels),this._highGain=new t.Gain(e.high,t.Type.Decibels),this.low=this._lowGain.gain,this.mid=this._midGain.gain,this.high=this._highGain.gain,this.Q=this._multibandSplit.Q,this.lowFrequency=this._multibandSplit.lowFrequency,this.highFrequency=this._multibandSplit.highFrequency,this._multibandSplit.low.chain(this._lowGain,this.output),this._multibandSplit.mid.chain(this._midGain,this.output),this._multibandSplit.high.chain(this._highGain,this.output),this._readOnly(["low","mid","high","lowFrequency","highFrequency"])},t.extend(t.EQ3),t.EQ3.defaults={low:0,mid:0,high:0,lowFrequency:400,highFrequency:2500},t.EQ3.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["low","mid","high","lowFrequency","highFrequency"]),this._multibandSplit.dispose(),this._multibandSplit=null,this.lowFrequency=null,this.highFrequency=null,this._lowGain.dispose(),this._lowGain=null,this._midGain.dispose(),this._midGain=null,this._highGain.dispose(),this._highGain=null,this.low=null,this.mid=null,this.high=null,this.Q=null,this},t.EQ3}),t(function(t){return t.Scale=function(e,i){this._outputMin=this.defaultArg(e,0),this._outputMax=this.defaultArg(i,1),this._scale=this.input=new t.Multiply(1),this._add=this.output=new t.Add(0),this._scale.connect(this._add),this._setRange()},t.extend(t.Scale,t.SignalBase),Object.defineProperty(t.Scale.prototype,"min",{get:function(){return this._outputMin},set:function(t){this._outputMin=t,this._setRange()}}),Object.defineProperty(t.Scale.prototype,"max",{get:function(){return this._outputMax},set:function(t){this._outputMax=t,this._setRange()}}),t.Scale.prototype._setRange=function(){this._add.value=this._outputMin,this._scale.value=this._outputMax-this._outputMin},t.Scale.prototype.dispose=function(){return t.prototype.dispose.call(this),this._add.dispose(),this._add=null,this._scale.dispose(),this._scale=null,this},t.Scale}),t(function(t){return t.ScaleExp=function(e,i,s){this._scale=this.output=new t.Scale(e,i),this._exp=this.input=new t.Pow(this.defaultArg(s,2)),this._exp.connect(this._scale)},t.extend(t.ScaleExp,t.SignalBase),Object.defineProperty(t.ScaleExp.prototype,"exponent",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),Object.defineProperty(t.ScaleExp.prototype,"min",{get:function(){return this._scale.min},set:function(t){this._scale.min=t}}),Object.defineProperty(t.ScaleExp.prototype,"max",{get:function(){return this._scale.max},set:function(t){this._scale.max=t}}),t.ScaleExp.prototype.dispose=function(){return t.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._exp.dispose(),this._exp=null,this},t.ScaleExp}),t(function(t){return window.DelayNode&&!AudioContext.prototype.createDelay&&(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),t.Delay=function(){var e=this.optionsObject(arguments,["delayTime","maxDelay"],t.Delay.defaults);this._delayNode=this.input=this.output=this.context.createDelay(this.toSeconds(e.maxDelay)),this.delayTime=new t.Param({param:this._delayNode.delayTime,units:t.Type.Time,value:e.delayTime}),this._readOnly("delayTime")},t.extend(t.Delay),t.Delay.defaults={maxDelay:1,delayTime:0},t.Delay.prototype.dispose=function(){return t.Param.prototype.dispose.call(this),this._delayNode.disconnect(),this._delayNode=null,this._writable("delayTime"),this.delayTime=null,this},t.Delay}),t(function(t){return t.FeedbackCombFilter=function(){var e=this.optionsObject(arguments,["delayTime","resonance"],t.FeedbackCombFilter.defaults);this._delay=this.input=this.output=new t.Delay(e.delayTime),this.delayTime=this._delay.delayTime,this._feedback=new t.Gain(e.resonance,t.Type.NormalRange),this.resonance=this._feedback.gain,this._delay.chain(this._feedback,this._delay),this._readOnly(["resonance","delayTime"])},t.extend(t.FeedbackCombFilter),t.FeedbackCombFilter.defaults={delayTime:.1,resonance:.5},t.FeedbackCombFilter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["resonance","delayTime"]),this._delay.dispose(),this._delay=null,this.delayTime=null,this._feedback.dispose(),this._feedback=null,this.resonance=null,this},t.FeedbackCombFilter}),t(function(t){return t.Follower=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,["attack","release"],t.Follower.defaults);this._abs=new t.Abs,this._filter=this.context.createBiquadFilter(),this._filter.type="lowpass",this._filter.frequency.value=0,this._filter.Q.value=-100,this._frequencyValues=new t.WaveShaper,this._sub=new t.Subtract,this._delay=new t.Delay(this.blockTime),this._mult=new t.Multiply(1e4),this._attack=e.attack,this._release=e.release,this.input.chain(this._abs,this._filter,this.output),this._abs.connect(this._sub,0,1),this._filter.chain(this._delay,this._sub),this._sub.chain(this._mult,this._frequencyValues,this._filter.frequency),this._setAttackRelease(this._attack,this._release)},t.extend(t.Follower),t.Follower.defaults={attack:.05,release:.5},t.Follower.prototype._setAttackRelease=function(e,i){var s=this.blockTime;e=t.Time(e).toFrequency(),i=t.Time(i).toFrequency(),e=Math.max(e,s),i=Math.max(i,s),this._frequencyValues.setMap(function(t){return t<=0?e:i})},Object.defineProperty(t.Follower.prototype,"attack",{get:function(){return this._attack},set:function(t){this._attack=t,this._setAttackRelease(this._attack,this._release)}}),Object.defineProperty(t.Follower.prototype,"release",{get:function(){return this._release},set:function(t){this._release=t,this._setAttackRelease(this._attack,this._release)}}),t.Follower.prototype.connect=t.Signal.prototype.connect,t.Follower.prototype.dispose=function(){return t.prototype.dispose.call(this),this._filter.disconnect(),this._filter=null,this._frequencyValues.disconnect(),this._frequencyValues=null,this._delay.dispose(),this._delay=null,this._sub.disconnect(),this._sub=null,this._abs.dispose(),this._abs=null,this._mult.dispose(),this._mult=null,this._curve=null,this},t.Follower}),t(function(t){return t.ScaledEnvelope=function(){var e=this.optionsObject(arguments,["attack","decay","sustain","release"],t.Envelope.defaults);t.Envelope.call(this,e),e=this.defaultArg(e,t.ScaledEnvelope.defaults),this._exp=this.output=new t.Pow(e.exponent),this._scale=this.output=new t.Scale(e.min,e.max),this._sig.chain(this._exp,this._scale)},t.extend(t.ScaledEnvelope,t.Envelope),t.ScaledEnvelope.defaults={min:0,max:1,exponent:1},Object.defineProperty(t.ScaledEnvelope.prototype,"min",{get:function(){return this._scale.min},set:function(t){this._scale.min=t}}),Object.defineProperty(t.ScaledEnvelope.prototype,"max",{get:function(){return this._scale.max},set:function(t){this._scale.max=t}}),Object.defineProperty(t.ScaledEnvelope.prototype,"exponent",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),t.ScaledEnvelope.prototype.dispose=function(){return t.Envelope.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._exp.dispose(),this._exp=null,this},t.ScaledEnvelope}),t(function(t){return t.FrequencyEnvelope=function(){var e=this.optionsObject(arguments,["attack","decay","sustain","release"],t.Envelope.defaults);t.ScaledEnvelope.call(this,e),e=this.defaultArg(e,t.FrequencyEnvelope.defaults),this._octaves=e.octaves,this.baseFrequency=e.baseFrequency,this.octaves=e.octaves},t.extend(t.FrequencyEnvelope,t.Envelope),t.FrequencyEnvelope.defaults={baseFrequency:200,octaves:4,exponent:2},Object.defineProperty(t.FrequencyEnvelope.prototype,"baseFrequency",{get:function(){return this._scale.min},set:function(t){this._scale.min=this.toFrequency(t),this.octaves=this._octaves}}),Object.defineProperty(t.FrequencyEnvelope.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._scale.max=this.baseFrequency*Math.pow(2,t)}}),Object.defineProperty(t.FrequencyEnvelope.prototype,"exponent",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),t.FrequencyEnvelope.prototype.dispose=function(){return t.ScaledEnvelope.prototype.dispose.call(this),this},t.FrequencyEnvelope}),t(function(t){return t.Gate=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,["threshold","attack","release"],t.Gate.defaults);this._follower=new t.Follower(e.attack,e.release),this._gt=new t.GreaterThan(this.dbToGain(e.threshold)),this.input.connect(this.output),this.input.chain(this._gt,this._follower,this.output.gain)},t.extend(t.Gate),t.Gate.defaults={attack:.1,release:.1,threshold:-40},Object.defineProperty(t.Gate.prototype,"threshold",{get:function(){return this.gainToDb(this._gt.value)},set:function(t){this._gt.value=this.dbToGain(t)}}),Object.defineProperty(t.Gate.prototype,"attack",{get:function(){return this._follower.attack},set:function(t){this._follower.attack=t}}),Object.defineProperty(t.Gate.prototype,"release",{get:function(){return this._follower.release},set:function(t){this._follower.release=t}}),t.Gate.prototype.dispose=function(){return t.prototype.dispose.call(this),this._follower.dispose(),this._gt.dispose(),this._follower=null,this._gt=null,this},t.Gate}),t(function(t){return t.TimelineState=function(e){t.Timeline.call(this),this._initial=e},t.extend(t.TimelineState,t.Timeline),t.TimelineState.prototype.getValueAtTime=function(t){var e=this.get(t);return null!==e?e.state:this._initial},t.TimelineState.prototype.setStateAtTime=function(t,e){this.add({state:t,time:e})},t.TimelineState}),t(function(t){return t.Clock=function(){t.Emitter.call(this);var e=this.optionsObject(arguments,["callback","frequency"],t.Clock.defaults);this.callback=e.callback,this._nextTick=0,this._lastState=t.State.Stopped,this.frequency=new t.TimelineSignal(e.frequency,t.Type.Frequency),this._readOnly("frequency"),this.ticks=0,this._state=new t.TimelineState(t.State.Stopped),this._boundLoop=this._loop.bind(this),this.context.on("tick",this._boundLoop)},t.extend(t.Clock,t.Emitter),t.Clock.defaults={callback:t.noOp,frequency:1,lookAhead:"auto"},Object.defineProperty(t.Clock.prototype,"state",{get:function(){return this._state.getValueAtTime(this.now())}}),t.Clock.prototype.start=function(e,i){return e=this.toSeconds(e),this._state.getValueAtTime(e)!==t.State.Started&&this._state.add({state:t.State.Started,time:e,offset:i}),this},t.Clock.prototype.stop=function(e){return e=this.toSeconds(e),this._state.cancel(e),this._state.setStateAtTime(t.State.Stopped,e),this},t.Clock.prototype.pause=function(e){return e=this.toSeconds(e),this._state.getValueAtTime(e)===t.State.Started&&this._state.setStateAtTime(t.State.Paused,e),this},t.Clock.prototype._loop=function(){for(var e=this.now(),i=this.context.lookAhead,s=this.context.updateInterval,n=2*this.context.lag,o=e+i+s+n;o>this._nextTick&&this._state;){var r=this._state.getValueAtTime(this._nextTick);if(r!==this._lastState){this._lastState=r;var a=this._state.get(this._nextTick);r===t.State.Started?(this._nextTick=a.time,this.isUndef(a.offset)||(this.ticks=a.offset),this.emit("start",a.time,this.ticks)):r===t.State.Stopped?(this.ticks=0,this.emit("stop",a.time)):r===t.State.Paused&&this.emit("pause",a.time)}var h=this._nextTick;this.frequency&&(this._nextTick+=1/this.frequency.getValueAtTime(this._nextTick),r===t.State.Started&&(this.callback(h),this.ticks++))}},t.Clock.prototype.getStateAtTime=function(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)},t.Clock.prototype.dispose=function(){t.Emitter.prototype.dispose.call(this),this.context.off("tick",this._boundLoop),this._writable("frequency"),this.frequency.dispose(),this.frequency=null,this._boundLoop=null,this._nextTick=1/0,this.callback=null,this._state.dispose(),this._state=null},t.Clock}),t(function(t){t.IntervalTimeline=function(){this._root=null,this._length=0},t.extend(t.IntervalTimeline),t.IntervalTimeline.prototype.add=function(t){if(this.isUndef(t.time)||this.isUndef(t.duration))throw new Error("Tone.IntervalTimeline: events must have time and duration parameters");var i=new e(t.time,t.time+t.duration,t);for(null===this._root?this._root=i:this._root.insert(i),this._length++;null!==i;)i.updateHeight(),i.updateMax(),this._rebalance(i),i=i.parent;return this},t.IntervalTimeline.prototype.remove=function(t){if(null!==this._root){var e=[];this._root.search(t.time,e);for(var i=0;i<e.length;i++){var s=e[i];if(s.event===t){this._removeNode(s),this._length--;break}}}return this},Object.defineProperty(t.IntervalTimeline.prototype,"length",{get:function(){return this._length}}),t.IntervalTimeline.prototype.cancel=function(t){return this.forEachAfter(t,function(t){this.remove(t)}.bind(this)),this},t.IntervalTimeline.prototype._setRoot=function(t){this._root=t,null!==this._root&&(this._root.parent=null)},t.IntervalTimeline.prototype._replaceNodeInParent=function(t,e){null!==t.parent?(t.isLeftChild()?t.parent.left=e:t.parent.right=e,this._rebalance(t.parent)):this._setRoot(e)},t.IntervalTimeline.prototype._removeNode=function(t){if(null===t.left&&null===t.right)this._replaceNodeInParent(t,null);else if(null===t.right)this._replaceNodeInParent(t,t.left);else if(null===t.left)this._replaceNodeInParent(t,t.right);else{var e,i,s=t.getBalance();if(s>0)if(null===t.left.right)e=t.left,e.right=t.right,i=e;else{for(e=t.left.right;null!==e.right;)e=e.right;e.parent.right=e.left,i=e.parent,e.left=t.left,e.right=t.right}else if(null===t.right.left)e=t.right,e.left=t.left,i=e;else{for(e=t.right.left;null!==e.left;)e=e.left;e.parent=e.parent,e.parent.left=e.right,i=e.parent,e.left=t.left,e.right=t.right}null!==t.parent?t.isLeftChild()?t.parent.left=e:t.parent.right=e:this._setRoot(e),this._rebalance(i)}t.dispose()},t.IntervalTimeline.prototype._rotateLeft=function(t){var e=t.parent,i=t.isLeftChild(),s=t.right;t.right=s.left,s.left=t,null!==e?i?e.left=s:e.right=s:this._setRoot(s)},t.IntervalTimeline.prototype._rotateRight=function(t){var e=t.parent,i=t.isLeftChild(),s=t.left;t.left=s.right,s.right=t,null!==e?i?e.left=s:e.right=s:this._setRoot(s)},t.IntervalTimeline.prototype._rebalance=function(t){var e=t.getBalance();e>1?t.left.getBalance()<0?this._rotateLeft(t.left):this._rotateRight(t):e<-1&&(t.right.getBalance()>0?this._rotateRight(t.right):this._rotateLeft(t))},t.IntervalTimeline.prototype.get=function(t){if(null!==this._root){var e=[];if(this._root.search(t,e),e.length>0){for(var i=e[0],s=1;s<e.length;s++)e[s].low>i.low&&(i=e[s]);return i.event}}return null},t.IntervalTimeline.prototype.forEach=function(t){if(null!==this._root){var e=[];null!==this._root&&this._root.traverse(function(t){e.push(t)});for(var i=0;i<e.length;i++){var s=e[i].event;s&&t(s)}}return this},t.IntervalTimeline.prototype.forEachAtTime=function(t,e){if(null!==this._root){var i=[];this._root.search(t,i);for(var s=i.length-1;s>=0;s--){var n=i[s].event;n&&e(n)}}return this},t.IntervalTimeline.prototype.forEachAfter=function(t,e){if(null!==this._root){var i=[];this._root.searchAfter(t,i);for(var s=i.length-1;s>=0;s--){var n=i[s].event;n&&e(n)}}return this},t.IntervalTimeline.prototype.dispose=function(){var t=[];null!==this._root&&this._root.traverse(function(e){t.push(e)});for(var e=0;e<t.length;e++)t[e].dispose();return t=null,this._root=null,this};var e=function(t,e,i){this.event=i,this.low=t,this.high=e,this.max=this.high,this._left=null,this._right=null,this.parent=null,this.height=0};return e.prototype.insert=function(t){t.low<=this.low?null===this.left?this.left=t:this.left.insert(t):null===this.right?this.right=t:this.right.insert(t)},e.prototype.search=function(t,e){t>this.max||(null!==this.left&&this.left.search(t,e),this.low<=t&&this.high>t&&e.push(this),this.low>t||null!==this.right&&this.right.search(t,e))},e.prototype.searchAfter=function(t,e){this.low>=t&&(e.push(this),null!==this.left&&this.left.searchAfter(t,e)),null!==this.right&&this.right.searchAfter(t,e)},e.prototype.traverse=function(t){t(this),null!==this.left&&this.left.traverse(t),null!==this.right&&this.right.traverse(t)},e.prototype.updateHeight=function(){null!==this.left&&null!==this.right?this.height=Math.max(this.left.height,this.right.height)+1:null!==this.right?this.height=this.right.height+1:null!==this.left?this.height=this.left.height+1:this.height=0},e.prototype.updateMax=function(){this.max=this.high,null!==this.left&&(this.max=Math.max(this.max,this.left.max)),null!==this.right&&(this.max=Math.max(this.max,this.right.max))},e.prototype.getBalance=function(){var t=0;return null!==this.left&&null!==this.right?t=this.left.height-this.right.height:null!==this.left?t=this.left.height+1:null!==this.right&&(t=-(this.right.height+1)),t},e.prototype.isLeftChild=function(){return null!==this.parent&&this.parent.left===this},Object.defineProperty(e.prototype,"left",{get:function(){return this._left},set:function(t){this._left=t,null!==t&&(t.parent=this),this.updateHeight(),this.updateMax()}}),Object.defineProperty(e.prototype,"right",{get:function(){return this._right},set:function(t){this._right=t,null!==t&&(t.parent=this),this.updateHeight(),this.updateMax()}}),e.prototype.dispose=function(){this.parent=null,this._left=null,this._right=null,this.event=null},t.IntervalTimeline}),t(function(t){t.Transport=function(){t.Emitter.call(this),this.loop=!1,this._loopStart=0,this._loopEnd=0,this._ppq=e.defaults.PPQ,this._clock=new t.Clock({callback:this._processTick.bind(this),frequency:0}),this._bindClockEvents(),this.bpm=this._clock.frequency,this.bpm._toUnits=this._toUnits.bind(this),this.bpm._fromUnits=this._fromUnits.bind(this),this.bpm.units=t.Type.BPM,this.bpm.value=e.defaults.bpm,this._readOnly("bpm"),this._timeSignature=e.defaults.timeSignature,this._scheduledEvents={},this._eventID=0,this._timeline=new t.Timeline,this._repeatedEvents=new t.IntervalTimeline,this._onceEvents=new t.Timeline,this._syncedSignals=[],this._swingTicks=e.defaults.PPQ/2,this._swingAmount=0},t.extend(t.Transport,t.Emitter),t.Transport.defaults={bpm:120,swing:0,swingSubdivision:"8n",timeSignature:4,loopStart:0,loopEnd:"4m",PPQ:192},t.Transport.prototype._processTick=function(e){var i=this._clock.ticks;if(this._swingAmount>0&&i%this._ppq!=0&&i%(2*this._swingTicks)!=0){var s=i%(2*this._swingTicks)/(2*this._swingTicks),n=Math.sin(s*Math.PI)*this._swingAmount;e+=t.Time(2*this._swingTicks/3,"i")*n}this.loop&&i===this._loopEnd&&(this.emit("loopEnd",e),this._clock.ticks=this._loopStart,i=this._loopStart,this.emit("loopStart",e,this.seconds),this.emit("loop",e)),this._onceEvents.forEachBefore(i,function(t){t.callback(e),delete this._scheduledEvents[t.id.toString()]}.bind(this)),this._onceEvents.cancelBefore(i),this._timeline.forEachAtTime(i,function(t){t.callback(e)}),this._repeatedEvents.forEachAtTime(i,function(t){(i-t.time)%t.interval==0&&t.callback(e)})},t.Transport.prototype.schedule=function(t,e){var i={time:this.toTicks(e),callback:t},s=this._eventID++;return this._scheduledEvents[s.toString()]={event:i,timeline:this._timeline},this._timeline.add(i),s},t.Transport.prototype.scheduleRepeat=function(t,e,i,s){if(e<=0)throw new Error("Tone.Transport: repeat events must have an interval larger than 0");var n={time:this.toTicks(i),duration:this.toTicks(this.defaultArg(s,1/0)),interval:this.toTicks(e),callback:t},o=this._eventID++;return this._scheduledEvents[o.toString()]={event:n,timeline:this._repeatedEvents},this._repeatedEvents.add(n),o},t.Transport.prototype.scheduleOnce=function(t,e){var i=this._eventID++,s={time:this.toTicks(e),callback:t,id:i};return this._scheduledEvents[i.toString()]={event:s,timeline:this._onceEvents},this._onceEvents.add(s),i},t.Transport.prototype.clear=function(t){if(this._scheduledEvents.hasOwnProperty(t)){var e=this._scheduledEvents[t.toString()];e.timeline.remove(e.event),delete this._scheduledEvents[t.toString()]}return this},t.Transport.prototype.cancel=function(t){return t=this.defaultArg(t,0),t=this.toTicks(t),this._timeline.cancel(t),this._onceEvents.cancel(t),this._repeatedEvents.cancel(t),this},t.Transport.prototype._bindClockEvents=function(){this._clock.on("start",function(e,i){i=t.Time(this._clock.ticks,"i").toSeconds(),this.emit("start",e,i)}.bind(this)),this._clock.on("stop",function(t){this.emit("stop",t)}.bind(this)),this._clock.on("pause",function(t){this.emit("pause",t)}.bind(this))},Object.defineProperty(t.Transport.prototype,"state",{get:function(){return this._clock.getStateAtTime(this.now())}}),t.Transport.prototype.start=function(t,e){return this.isUndef(e)||(e=this.toTicks(e)),this._clock.start(t,e),this},t.Transport.prototype.stop=function(t){return this._clock.stop(t),this},t.Transport.prototype.pause=function(t){return this._clock.pause(t),this},Object.defineProperty(t.Transport.prototype,"timeSignature",{get:function(){return this._timeSignature},set:function(t){this.isArray(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}}),Object.defineProperty(t.Transport.prototype,"loopStart",{get:function(){return t.TransportTime(this._loopStart,"i").toSeconds()},set:function(t){this._loopStart=this.toTicks(t)}}),Object.defineProperty(t.Transport.prototype,"loopEnd",{get:function(){return t.TransportTime(this._loopEnd,"i").toSeconds()},set:function(t){this._loopEnd=this.toTicks(t)}}),t.Transport.prototype.setLoopPoints=function(t,e){return this.loopStart=t,this.loopEnd=e,this},Object.defineProperty(t.Transport.prototype,"swing",{get:function(){return this._swingAmount},set:function(t){this._swingAmount=t}}),Object.defineProperty(t.Transport.prototype,"swingSubdivision",{get:function(){return t.Time(this._swingTicks,"i").toNotation()},set:function(t){this._swingTicks=this.toTicks(t)}}),Object.defineProperty(t.Transport.prototype,"position",{get:function(){return t.TransportTime(this.ticks,"i").toBarsBeatsSixteenths()},set:function(t){var e=this.toTicks(t);this.ticks=e}}),Object.defineProperty(t.Transport.prototype,"seconds",{get:function(){return t.TransportTime(this.ticks,"i").toSeconds()},set:function(t){var e=this.toTicks(t);this.ticks=e}}),Object.defineProperty(t.Transport.prototype,"progress",{get:function(){return this.loop?(this.ticks-this._loopStart)/(this._loopEnd-this._loopStart):0}}),Object.defineProperty(t.Transport.prototype,"ticks",{get:function(){return this._clock.ticks},set:function(e){if(this._clock.ticks!==e){var i=this.now();this.state===t.State.Started?(this.emit("stop",i),this._clock.ticks=e,this.emit("start",i,this.seconds)):this._clock.ticks=e}}}),Object.defineProperty(t.Transport.prototype,"PPQ",{get:function(){return this._ppq},set:function(t){var e=this.bpm.value;this._ppq=t,this.bpm.value=e}}),Object.defineProperty(t.Transport.prototype,"latencyHint",{get:function(){return t.Clock.latencyHint},set:function(e){t.Clock.latencyHint=e}}),t.Transport.prototype._fromUnits=function(t){return 1/(60/t/this.PPQ)},t.Transport.prototype._toUnits=function(t){return t/this.PPQ*60},t.Transport.prototype.nextSubdivision=function(e){e=this.toSeconds(e);var i;if(this.state!==t.State.Started)return 0;i=this._clock._nextTick;var s=t.Time(this.ticks,"i"),n=e-s%e;return 0===n&&(n=e),i+n},t.Transport.prototype.syncSignal=function(e,i){i||(i=0!==e._param.value?e._param.value/this.bpm._param.value:0);var s=new t.Gain(i);return this.bpm.chain(s,e._param),this._syncedSignals.push({ratio:s,signal:e,initial:e._param.value}),e._param.value=0,this},t.Transport.prototype.unsyncSignal=function(t){for(var e=this._syncedSignals.length-1;e>=0;e--){var i=this._syncedSignals[e];i.signal===t&&(i.ratio.dispose(),i.signal._param.value=i.initial,this._syncedSignals.splice(e,1))}return this},t.Transport.prototype.dispose=function(){return t.Emitter.prototype.dispose.call(this),this._clock.dispose(),this._clock=null,this._writable("bpm"),this.bpm=null,this._timeline.dispose(),this._timeline=null,this._onceEvents.dispose(),this._onceEvents=null,this._repeatedEvents.dispose(),this._repeatedEvents=null,this};var e=t.Transport;return t.Transport=new e,t.Context.on("init",function(i){i.Transport instanceof e?t.Transport=i.Transport:(t.Transport=new e,i.Transport=t.Transport)}),t.Transport}),t(function(t){return t.Volume=function(){var e=this.optionsObject(arguments,["volume"],t.Volume.defaults);this.output=this.input=new t.Gain(e.volume,t.Type.Decibels),this._unmutedVolume=e.volume,this.volume=this.output.gain,this._readOnly("volume"),this.mute=e.mute},t.extend(t.Volume),t.Volume.defaults={volume:0,mute:!1},Object.defineProperty(t.Volume.prototype,"mute",{get:function(){return this.volume.value===-1/0},set:function(t){!this.mute&&t?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!t&&(this.volume.value=this._unmutedVolume)}}),t.Volume.prototype.dispose=function(){return this.input.dispose(),t.prototype.dispose.call(this),this._writable("volume"),this.volume.dispose(),this.volume=null,this},t.Volume}),t(function(t){t.Master=function(){this.createInsOuts(1,1),this._volume=this.output=new t.Volume,this.volume=this._volume.volume,this._readOnly("volume"),this.input.chain(this.output,this.context.destination)},t.extend(t.Master),t.Master.defaults={volume:0,mute:!1},Object.defineProperty(t.Master.prototype,"mute",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.Master.prototype.chain=function(){this.input.disconnect(),this.input.chain.apply(this.input,arguments),arguments[arguments.length-1].connect(this.output)},t.Master.prototype.dispose=function(){t.prototype.dispose.call(this),this._writable("volume"),this._volume.dispose(),this._volume=null,this.volume=null},t.prototype.toMaster=function(){return this.connect(t.Master),this},AudioNode.prototype.toMaster=function(){return this.connect(t.Master),this};var e=t.Master;return t.Master=new e,t.Context.on("init",function(i){i.Master instanceof e?t.Master=i.Master:t.Master=new e,i.Master=t.Master}),t.Master}),t(function(t){return t.Source=function(e){e=this.defaultArg(e,t.Source.defaults),this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly("volume"),this._state=new t.TimelineState(t.State.Stopped),this._state.memory=10,this._synced=!1,this._scheduled=[],this._volume.output.output.channelCount=2,this._volume.output.output.channelCountMode="explicit",this.mute=e.mute},t.extend(t.Source),t.Source.defaults={volume:0,mute:!1},Object.defineProperty(t.Source.prototype,"state",{get:function(){return this._synced?t.Transport.state===t.State.Started?this._state.getValueAtTime(t.Transport.seconds):t.State.Stopped:this._state.getValueAtTime(this.now())}}),Object.defineProperty(t.Source.prototype,"mute",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.Source.prototype._start=t.noOp,t.Source.prototype._stop=t.noOp,t.Source.prototype.start=function(e,i,s){if(e=this.isUndef(e)&&this._synced?t.Transport.seconds:this.toSeconds(e),this.retrigger||this._state.getValueAtTime(e)!==t.State.Started||this.stop(e),this._state.setStateAtTime(t.State.Started,e),this._synced){var n=this._state.get(e);n.offset=this.defaultArg(i,0),n.duration=s;var o=t.Transport.schedule(function(t){this._start(t,i,s)}.bind(this),e);this._scheduled.push(o)}else this._start.apply(this,arguments);return this},t.Source.prototype.stop=function(e){if(e=this.isUndef(e)&&this._synced?t.Transport.seconds:this.toSeconds(e),this._state.cancel(e),this._state.setStateAtTime(t.State.Stopped,e),this._synced){var i=t.Transport.schedule(this._stop.bind(this),e);this._scheduled.push(i)}else this._stop.apply(this,arguments);return this},t.Source.prototype.sync=function(){return this._synced=!0,t.Transport.on("start loopStart",function(e,i){if(i>0){var s=this._state.get(i);if(s&&s.state===t.State.Started&&s.time!==i){var n,o=i-this.toSeconds(s.time);s.duration&&(n=this.toSeconds(s.duration)-o),this._start(e,this.toSeconds(s.offset)+o,n)}}}.bind(this)),t.Transport.on("stop pause loopEnd",function(e){this._state.getValueAtTime(t.Transport.seconds)===t.State.Started&&this._stop(e)}.bind(this)),this},t.Source.prototype.unsync=function(){this._synced=!1,t.Transport.off("start stop pause loopEnd loopStart");for(var e=0;e<this._scheduled.length;e++){var i=this._scheduled[e];t.Transport.clear(i)}return this._scheduled=[],this._state.cancel(0),this},t.Source.prototype.dispose=function(){t.prototype.dispose.call(this),this.unsync(),this._scheduled=null,this._writable("volume"),this._volume.dispose(),this._volume=null,this.volume=null,this._state.dispose(),this._state=null},t.Source}),t(function(t){return window.OscillatorNode&&!OscillatorNode.prototype.start&&(OscillatorNode.prototype.start=OscillatorNode.prototype.noteOn,OscillatorNode.prototype.stop=OscillatorNode.prototype.noteOff,OscillatorNode.prototype.setPeriodicWave||(OscillatorNode.prototype.setPeriodicWave=OscillatorNode.prototype.setWaveTable),AudioContext.prototype.createPeriodicWave||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable)),t.Oscillator=function(){var e=this.optionsObject(arguments,["frequency","type"],t.Oscillator.defaults);t.Source.call(this,e),this._oscillator=null,this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this._wave=null,this._partials=this.defaultArg(e.partials,[1]),this._phase=e.phase,this._type=null,this.type=e.type,this.phase=this._phase,this._readOnly(["frequency","detune"])},t.extend(t.Oscillator,t.Source),t.Oscillator.defaults={type:"sine",frequency:440,detune:0,phase:0,partials:[]},t.Oscillator.Type={Sine:"sine",Triangle:"triangle",Sawtooth:"sawtooth",Square:"square",Custom:"custom"},t.Oscillator.prototype._start=function(t){this._oscillator=this.context.createOscillator(),this._oscillator.setPeriodicWave(this._wave),this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(this.toSeconds(t))},t.Oscillator.prototype._stop=function(t){return this._oscillator&&(this._oscillator.stop(this.toSeconds(t)),this._oscillator=null),this},t.Oscillator.prototype.syncFrequency=function(){return t.Transport.syncSignal(this.frequency),this},t.Oscillator.prototype.unsyncFrequency=function(){return t.Transport.unsyncSignal(this.frequency),this},Object.defineProperty(t.Oscillator.prototype,"type",{get:function(){return this._type},set:function(t){var e=this._getRealImaginary(t,this._phase),i=this.context.createPeriodicWave(e[0],e[1]);this._wave=i,null!==this._oscillator&&this._oscillator.setPeriodicWave(this._wave),this._type=t}}),t.Oscillator.prototype._getRealImaginary=function(e,i){var s=2048,n=new Float32Array(s),o=new Float32Array(s),r=1;if(e===t.Oscillator.Type.Custom)r=this._partials.length+1,s=r;else{var a=/^(sine|triangle|square|sawtooth)(\d+)$/.exec(e);a&&(r=parseInt(a[2])+1,e=a[1],r=Math.max(r,2),s=r)}for(var h=1;h<s;++h){var l,c=2/(h*Math.PI);switch(e){case t.Oscillator.Type.Sine:l=h<=r?1:0;break;case t.Oscillator.Type.Square:l=1&h?2*c:0;break;case t.Oscillator.Type.Sawtooth:l=c*(1&h?1:-1);break;case t.Oscillator.Type.Triangle:l=1&h?c*c*2*(h-1>>1&1?-1:1):0;break;case t.Oscillator.Type.Custom:l=this._partials[h-1];break;default:throw new TypeError("Tone.Oscillator: invalid type: "+e)}0!==l?(n[h]=-l*Math.sin(i*h),o[h]=l*Math.cos(i*h)):(n[h]=0,o[h]=0)}return[n,o]},t.Oscillator.prototype._inverseFFT=function(t,e,i){for(var s=0,n=t.length,o=0;o<n;o++)s+=t[o]*Math.cos(o*i)+e[o]*Math.sin(o*i);return s},t.Oscillator.prototype._getInitialValue=function(){for(var t=this._getRealImaginary(this._type,0),e=t[0],i=t[1],s=0,n=2*Math.PI,o=0;o<8;o++)s=Math.max(this._inverseFFT(e,i,o/8*n),s);return-this._inverseFFT(e,i,this._phase)/s},Object.defineProperty(t.Oscillator.prototype,"partials",{get:function(){return this._type!==t.Oscillator.Type.Custom?[]:this._partials},set:function(e){this._partials=e,this.type=t.Oscillator.Type.Custom}}),Object.defineProperty(t.Oscillator.prototype,"phase",{get:function(){return this._phase*(180/Math.PI)},set:function(t){this._phase=t*Math.PI/180,this.type=this._type}}),t.Oscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),null!==this._oscillator&&(this._oscillator.disconnect(),this._oscillator=null),this._wave=null,this._writable(["frequency","detune"]),this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this._partials=null,this},t.Oscillator}),t(function(t){return t.Zero=function(){this._gain=this.input=this.output=new t.Gain,this.context.getConstant(0).connect(this._gain)},t.extend(t.Zero),t.Zero.prototype.dispose=function(){return t.prototype.dispose.call(this),this._gain.dispose(),this._gain=null,this},t.Zero}),t(function(t){return t.LFO=function(){var e=this.optionsObject(arguments,["frequency","min","max"],t.LFO.defaults);this._oscillator=new t.Oscillator({frequency:e.frequency,type:e.type}),this.frequency=this._oscillator.frequency,this.amplitude=this._oscillator.volume,this.amplitude.units=t.Type.NormalRange,this.amplitude.value=e.amplitude,this._stoppedSignal=new t.Signal(0,t.Type.AudioRange),this._zeros=new t.Zero,this._stoppedValue=0,this._a2g=new t.AudioToGain,this._scaler=this.output=new t.Scale(e.min,e.max),this._units=t.Type.Default,this.units=e.units,this._oscillator.chain(this._a2g,this._scaler),this._zeros.connect(this._a2g),this._stoppedSignal.connect(this._a2g),this._readOnly(["amplitude","frequency"]),this.phase=e.phase},t.extend(t.LFO,t.Oscillator),t.LFO.defaults={type:"sine",min:0,max:1,phase:0,frequency:"4n",amplitude:1,units:t.Type.Default},t.LFO.prototype.start=function(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(0,t),this._oscillator.start(t),this},t.LFO.prototype.stop=function(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(this._stoppedValue,t),this._oscillator.stop(t),this},t.LFO.prototype.sync=function(){return this._oscillator.sync(),this._oscillator.syncFrequency(),this},t.LFO.prototype.unsync=function(){return this._oscillator.unsync(),this._oscillator.unsyncFrequency(),this},Object.defineProperty(t.LFO.prototype,"min",{get:function(){return this._toUnits(this._scaler.min)},set:function(t){t=this._fromUnits(t),this._scaler.min=t}}),Object.defineProperty(t.LFO.prototype,"max",{get:function(){return this._toUnits(this._scaler.max)},set:function(t){t=this._fromUnits(t),this._scaler.max=t}}),Object.defineProperty(t.LFO.prototype,"type",{get:function(){return this._oscillator.type},set:function(t){this._oscillator.type=t,this._stoppedValue=this._oscillator._getInitialValue(),this._stoppedSignal.value=this._stoppedValue}}),Object.defineProperty(t.LFO.prototype,"phase",{get:function(){return this._oscillator.phase},set:function(t){this._oscillator.phase=t,this._stoppedValue=this._oscillator._getInitialValue(),this._stoppedSignal.value=this._stoppedValue}}),Object.defineProperty(t.LFO.prototype,"units",{get:function(){return this._units},set:function(t){var e=this.min,i=this.max;this._units=t,this.min=e,this.max=i}}),Object.defineProperty(t.LFO.prototype,"mute",{get:function(){return this._oscillator.mute},set:function(t){this._oscillator.mute=t}}),Object.defineProperty(t.LFO.prototype,"state",{get:function(){return this._oscillator.state}}),t.LFO.prototype.connect=function(e){return e.constructor!==t.Signal&&e.constructor!==t.Param&&e.constructor!==t.TimelineSignal||(this.convert=e.convert,this.units=e.units),t.Signal.prototype.connect.apply(this,arguments),this},t.LFO.prototype._fromUnits=t.Param.prototype._fromUnits,t.LFO.prototype._toUnits=t.Param.prototype._toUnits,t.LFO.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["amplitude","frequency"]),this._oscillator.dispose(),this._oscillator=null,this._stoppedSignal.dispose(),this._stoppedSignal=null,this._zeros.dispose(),this._zeros=null,this._scaler.dispose(),this._scaler=null,this._a2g.dispose(),this._a2g=null,this.frequency=null,this.amplitude=null,this},t.LFO}),t(function(t){return t.Limiter=function(){var e=this.optionsObject(arguments,["threshold"],t.Limiter.defaults);this._compressor=this.input=this.output=new t.Compressor({attack:.001,decay:.001,threshold:e.threshold}),this.threshold=this._compressor.threshold,this._readOnly("threshold")},t.extend(t.Limiter),t.Limiter.defaults={threshold:-12},t.Limiter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._compressor.dispose(),this._compressor=null,this._writable("threshold"),this.threshold=null,this},t.Limiter}),t(function(t){return t.LowpassCombFilter=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,["delayTime","resonance","dampening"],t.LowpassCombFilter.defaults);this._delay=this.input=new t.Delay(e.delayTime),this.delayTime=this._delay.delayTime,this._lowpass=this.output=this.context.createBiquadFilter(),this._lowpass.Q.value=-3.0102999566398125,this._lowpass.type="lowpass",this.dampening=new t.Param({param:this._lowpass.frequency,units:t.Type.Frequency,value:e.dampening}),this._feedback=new t.Gain(e.resonance,t.Type.NormalRange),this.resonance=this._feedback.gain,this._delay.chain(this._lowpass,this._feedback,this._delay),this._readOnly(["dampening","resonance","delayTime"])},t.extend(t.LowpassCombFilter),t.LowpassCombFilter.defaults={delayTime:.1,resonance:.5,dampening:3e3},t.LowpassCombFilter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["dampening","resonance","delayTime"]),this.dampening.dispose(),this.dampening=null,this.resonance.dispose(),this.resonance=null,this._delay.dispose(),this._delay=null,this.delayTime=null,this._lowpass.disconnect(),this._lowpass=null,this._feedback.disconnect(),this._feedback=null,this},t.LowpassCombFilter}),t(function(t){return t.Merge=function(){this.createInsOuts(2,0),this.left=this.input[0]=new t.Gain,this.right=this.input[1]=new t.Gain,this._merger=this.output=this.context.createChannelMerger(2),this.left.connect(this._merger,0,0),this.right.connect(this._merger,0,1),this.left.channelCount=1,this.right.channelCount=1,this.left.channelCountMode="explicit",this.right.channelCountMode="explicit"},t.extend(t.Merge),t.Merge.prototype.dispose=function(){return t.prototype.dispose.call(this),this.left.dispose(),this.left=null,this.right.dispose(),this.right=null,this._merger.disconnect(),this._merger=null,this},t.Merge}),t(function(t){return t.Meter=function(){var e=this.optionsObject(arguments,["type","smoothing"],t.Meter.defaults);this.type=e.type,this.input=this.output=this._analyser=new t.Analyser("waveform",512),this._analyser.returnType="float",this.smoothing=e.smoothing,this._lastValue=0},t.extend(t.Meter),t.Meter.Type={Level:"level",Signal:"signal"},t.Meter.defaults={smoothing:.8,type:t.Meter.Type.Level},Object.defineProperty(t.Meter.prototype,"value",{get:function(){var e=this._analyser.analyse();if(this.type===t.Meter.Type.Level){for(var i=0,s=0;s<e.length;s++)i+=Math.pow(e[s],2);var n=Math.sqrt(i/e.length);n=Math.max(n,this._lastValue*this.smoothing),this._lastValue=n;var o=n/.35;return Math.sqrt(o)}return e[0]}}),t.Meter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._analyser.dispose(),this._analyser=null,this},t.Meter}),t(function(t){return t.Split=function(){this.createInsOuts(0,2),this._splitter=this.input=this.context.createChannelSplitter(2),this.left=this.output[0]=new t.Gain,this.right=this.output[1]=new t.Gain,this._splitter.connect(this.left,0,0),this._splitter.connect(this.right,1,0)},t.extend(t.Split),t.Split.prototype.dispose=function(){return t.prototype.dispose.call(this),this._splitter.disconnect(),this.left.dispose(),this.left=null,this.right.dispose(),this.right=null,this._splitter=null,this},t.Split}),t(function(t){return t.MidSideSplit=function(){this.createInsOuts(0,2),this._split=this.input=new t.Split,this.mid=this.output[0]=new t.Expr("($0 + $1) * $2"),this.side=this.output[1]=new t.Expr("($0 - $1) * $2"),this._split.connect(this.mid,0,0),this._split.connect(this.mid,1,1),this._split.connect(this.side,0,0),this._split.connect(this.side,1,1),this.context.getConstant(Math.SQRT1_2).connect(this.mid,0,2),this.context.getConstant(Math.SQRT1_2).connect(this.side,0,2)},t.extend(t.MidSideSplit),t.MidSideSplit.prototype.dispose=function(){return t.prototype.dispose.call(this),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._split.dispose(),this._split=null,this},t.MidSideSplit}),t(function(t){return t.MidSideMerge=function(){this.createInsOuts(2,0),this.mid=this.input[0]=new t.Gain,this._left=new t.Expr("($0 + $1) * $2"),this.side=this.input[1]=new t.Gain,this._right=new t.Expr("($0 - $1) * $2"),this._merge=this.output=new t.Merge,this.mid.connect(this._left,0,0),this.side.connect(this._left,0,1),this.mid.connect(this._right,0,0),this.side.connect(this._right,0,1),this._left.connect(this._merge,0,0),this._right.connect(this._merge,0,1),this.context.getConstant(Math.SQRT1_2).connect(this._left,0,2),this.context.getConstant(Math.SQRT1_2).connect(this._right,0,2)},t.extend(t.MidSideMerge),t.MidSideMerge.prototype.dispose=function(){return t.prototype.dispose.call(this),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._left.dispose(),this._left=null,this._right.dispose(),this._right=null,this._merge.dispose(),this._merge=null,this},t.MidSideMerge}),t(function(t){return t.MidSideCompressor=function(e){e=this.defaultArg(e,t.MidSideCompressor.defaults),this._midSideSplit=this.input=new t.MidSideSplit,this._midSideMerge=this.output=new t.MidSideMerge,this.mid=new t.Compressor(e.mid),this.side=new t.Compressor(e.side),this._midSideSplit.mid.chain(this.mid,this._midSideMerge.mid),this._midSideSplit.side.chain(this.side,this._midSideMerge.side),this._readOnly(["mid","side"])},t.extend(t.MidSideCompressor),t.MidSideCompressor.defaults={mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},side:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10}},t.MidSideCompressor.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["mid","side"]),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._midSideSplit.dispose(),this._midSideSplit=null,this._midSideMerge.dispose(),this._midSideMerge=null,this},t.MidSideCompressor}),t(function(t){return t.Mono=function(){this.createInsOuts(1,0),this._merge=this.output=new t.Merge,this.input.connect(this._merge,0,0),this.input.connect(this._merge,0,1),this.input.gain.value=this.dbToGain(-10)},t.extend(t.Mono),t.Mono.prototype.dispose=function(){return t.prototype.dispose.call(this),this._merge.dispose(),this._merge=null,this},t.Mono}),t(function(t){return t.MultibandCompressor=function(e){e=this.defaultArg(arguments,t.MultibandCompressor.defaults),this._splitter=this.input=new t.MultibandSplit({lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this.lowFrequency=this._splitter.lowFrequency,this.highFrequency=this._splitter.highFrequency,this.output=new t.Gain,this.low=new t.Compressor(e.low),this.mid=new t.Compressor(e.mid),this.high=new t.Compressor(e.high),this._splitter.low.chain(this.low,this.output),this._splitter.mid.chain(this.mid,this.output),this._splitter.high.chain(this.high,this.output),this._readOnly(["high","mid","low","highFrequency","lowFrequency"])},t.extend(t.MultibandCompressor),t.MultibandCompressor.defaults={low:t.Compressor.defaults,mid:t.Compressor.defaults,high:t.Compressor.defaults,lowFrequency:250,highFrequency:2e3},t.MultibandCompressor.prototype.dispose=function(){return t.prototype.dispose.call(this),this._splitter.dispose(),this._writable(["high","mid","low","highFrequency","lowFrequency"]),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this._splitter=null,this.low=null,this.mid=null,this.high=null,this.lowFrequency=null,this.highFrequency=null,this},t.MultibandCompressor}),t(function(t){return t.Panner=function(e){this._hasStereoPanner?(this._panner=this.input=this.output=this.context.createStereoPanner(),this.pan=this._panner.pan):(this._crossFade=new t.CrossFade,this._merger=this.output=new t.Merge,this._splitter=this.input=new t.Split,this.pan=new t.Signal(0,t.Type.AudioRange),this._zero=new t.Zero,this._a2g=new t.AudioToGain,this._zero.connect(this._a2g),this.pan.chain(this._a2g,this._crossFade.fade),this._splitter.connect(this._crossFade,0,0),this._splitter.connect(this._crossFade,1,1),this._crossFade.a.connect(this._merger,0,0),this._crossFade.b.connect(this._merger,0,1)),this.pan.value=this.defaultArg(e,0),this._readOnly("pan")},t.extend(t.Panner),t.Panner.prototype._hasStereoPanner=t.prototype.isFunction(t.context.createStereoPanner),t.Panner.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable("pan"),this._hasStereoPanner?(this._panner.disconnect(),this._panner=null,this.pan=null):(this._zero.dispose(),this._zero=null,this._crossFade.dispose(),this._crossFade=null,this._splitter.dispose(),this._splitter=null,this._merger.dispose(),this._merger=null,this.pan.dispose(),this.pan=null,this._a2g.dispose(),this._a2g=null),this},t.Panner}),t(function(t){return t.Panner3D=function(){var e=this.optionsObject(arguments,["positionX","positionY","positionZ"],t.Panner3D.defaults);this._panner=this.input=this.output=this.context.createPanner(),this._panner.panningModel=e.panningModel,this._panner.maxDistance=e.maxDistance,this._panner.distanceModel=e.distanceModel,this._panner.coneOuterGain=e.coneOuterGain,this._panner.coneOuterAngle=e.coneOuterAngle,this._panner.coneInnerAngle=e.coneInnerAngle,this._panner.refDistance=e.refDistance,this._panner.rolloffFactor=e.rolloffFactor,this._orientation=[e.orientationX,e.orientationY,e.orientationZ],this._position=[e.positionX,e.positionY,e.positionZ],this.orientationX=e.orientationX,this.orientationY=e.orientationY,this.orientationZ=e.orientationZ,this.positionX=e.positionX,this.positionY=e.positionY,this.positionZ=e.positionZ},t.extend(t.Panner3D),t.Panner3D.defaults={positionX:0,positionY:0,positionZ:0,orientationX:0,orientationY:0,orientationZ:0,panningModel:"equalpower",maxDistance:1e4,distanceModel:"inverse",coneOuterGain:0,coneOuterAngle:360,coneInnerAngle:360,refDistance:1,rolloffFactor:1},t.Panner3D.prototype._rampTimeConstant=.01,t.Panner3D.prototype.setPosition=function(t,e,i){if(this._panner.positionX){var s=this.now();this._panner.positionX.setTargetAtTime(t,s,this._rampTimeConstant),this._panner.positionY.setTargetAtTime(e,s,this._rampTimeConstant),this._panner.positionZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this._panner.setPosition(t,e,i);return this._position=Array.prototype.slice.call(arguments),this},t.Panner3D.prototype.setOrientation=function(t,e,i){if(this._panner.orientationX){var s=this.now();this._panner.orientationX.setTargetAtTime(t,s,this._rampTimeConstant),this._panner.orientationY.setTargetAtTime(e,s,this._rampTimeConstant),this._panner.orientationZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this._panner.setOrientation(t,e,i);return this._orientation=Array.prototype.slice.call(arguments),this},Object.defineProperty(t.Panner3D.prototype,"positionX",{set:function(t){this._position[0]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[0]}}),Object.defineProperty(t.Panner3D.prototype,"positionY",{set:function(t){this._position[1]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[1]}}),Object.defineProperty(t.Panner3D.prototype,"positionZ",{set:function(t){this._position[2]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[2]}}),Object.defineProperty(t.Panner3D.prototype,"orientationX",{set:function(t){this._orientation[0]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[0]}}),Object.defineProperty(t.Panner3D.prototype,"orientationY",{set:function(t){this._orientation[1]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[1]}}),Object.defineProperty(t.Panner3D.prototype,"orientationZ",{set:function(t){this._orientation[2]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[2]}}),t.Panner3D._aliasProperty=function(e){Object.defineProperty(t.Panner3D.prototype,e,{set:function(t){this._panner[e]=t},get:function(){return this._panner[e]}})},t.Panner3D._aliasProperty("panningModel"),t.Panner3D._aliasProperty("refDistance"),t.Panner3D._aliasProperty("rolloffFactor"),t.Panner3D._aliasProperty("distanceModel"),t.Panner3D._aliasProperty("coneInnerAngle"),t.Panner3D._aliasProperty("coneOuterAngle"),t.Panner3D._aliasProperty("coneOuterGain"),t.Panner3D._aliasProperty("maxDistance"),t.Panner3D.prototype.dispose=function(){return this._panner.disconnect(),this._panner=null,this._orientation=null,this._position=null,this},t.Panner3D}),t(function(t){return t.PanVol=function(){var e=this.optionsObject(arguments,["pan","volume"],t.PanVol.defaults);this._panner=this.input=new t.Panner(e.pan),this.pan=this._panner.pan,this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._panner.connect(this._volume),this._readOnly(["pan","volume"])},t.extend(t.PanVol),t.PanVol.defaults={pan:.5,volume:0},t.PanVol.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(["pan","volume"]),this._panner.dispose(),this._panner=null,this.pan=null,this._volume.dispose(),this._volume=null,this.volume=null,this},t.PanVol}),t(function(t){return t.CtrlInterpolate=function(){var e=this.optionsObject(arguments,["values","index"],t.CtrlInterpolate.defaults);this.values=e.values,this.index=e.index},t.extend(t.CtrlInterpolate),t.CtrlInterpolate.defaults={index:0,values:[]},Object.defineProperty(t.CtrlInterpolate.prototype,"value",{get:function(){var t=this.index;t=Math.min(t,this.values.length-1);var e=Math.floor(t),i=this.values[e],s=this.values[Math.ceil(t)];return this._interpolate(t-e,i,s)}}),t.CtrlInterpolate.prototype._interpolate=function(t,e,i){if(this.isArray(e)){for(var s=[],n=0;n<e.length;n++)s[n]=this._interpolate(t,e[n],i[n]);return s}if(this.isObject(e)){var o={};for(var r in e)o[r]=this._interpolate(t,e[r],i[r]);return o}return e=this._toNumber(e),i=this._toNumber(i),(1-t)*e+t*i},t.CtrlInterpolate.prototype._toNumber=function(t){return this.isNumber(t)?t:this.toSeconds(t)},t.CtrlInterpolate.prototype.dispose=function(){this.values=null},t.CtrlInterpolate}),t(function(t){return t.CtrlMarkov=function(t,e){this.values=this.defaultArg(t,{}),this.value=this.defaultArg(e,Object.keys(this.values)[0])},t.extend(t.CtrlMarkov),t.CtrlMarkov.prototype.next=function(){if(this.values.hasOwnProperty(this.value)){var t=this.values[this.value];if(this.isArray(t))for(var e=this._getProbDistribution(t),i=Math.random(),s=0,n=0;n<e.length;n++){var o=e[n];if(i>s&&i<s+o){var r=t[n];this.isObject(r)?this.value=r.value:this.value=r}s+=o}else this.value=t}return this.value},t.CtrlMarkov.prototype._getProbDistribution=function(t){for(var e=[],i=0,s=!1,n=0;n<t.length;n++){var o=t[n];this.isObject(o)?(s=!0,e[n]=o.probability):e[n]=1/t.length,i+=e[n]}if(s)for(var r=0;r<e.length;r++)e[r]=e[r]/i;return e},t.CtrlMarkov.prototype.dispose=function(){this.values=null},t.CtrlMarkov}),t(function(t){return t.CtrlPattern=function(){var e=this.optionsObject(arguments,["values","type"],t.CtrlPattern.defaults);this.values=e.values,this.index=0,this._type=null,this._shuffled=null,this._direction=null,this.type=e.type},t.extend(t.CtrlPattern),t.CtrlPattern.Type={Up:"up",Down:"down",UpDown:"upDown",DownUp:"downUp",AlternateUp:"alternateUp",AlternateDown:"alternateDown",Random:"random",RandomWalk:"randomWalk",RandomOnce:"randomOnce"},t.CtrlPattern.defaults={type:t.CtrlPattern.Type.Up,values:[]},Object.defineProperty(t.CtrlPattern.prototype,"value",{get:function(){if(0!==this.values.length){if(1===this.values.length)return this.values[0];this.index=Math.min(this.index,this.values.length-1);var e=this.values[this.index];return this.type===t.CtrlPattern.Type.RandomOnce&&(this.values.length!==this._shuffled.length&&this._shuffleValues(),e=this.values[this._shuffled[this.index]]),e}}}),Object.defineProperty(t.CtrlPattern.prototype,"type",{get:function(){return this._type},set:function(e){this._type=e,this._shuffled=null,this._type===t.CtrlPattern.Type.Up||this._type===t.CtrlPattern.Type.UpDown||this._type===t.CtrlPattern.Type.RandomOnce||this._type===t.CtrlPattern.Type.AlternateUp?this.index=0:this._type!==t.CtrlPattern.Type.Down&&this._type!==t.CtrlPattern.Type.DownUp&&this._type!==t.CtrlPattern.Type.AlternateDown||(this.index=this.values.length-1),this._type===t.CtrlPattern.Type.UpDown||this._type===t.CtrlPattern.Type.AlternateUp?this._direction=t.CtrlPattern.Type.Up:this._type!==t.CtrlPattern.Type.DownUp&&this._type!==t.CtrlPattern.Type.AlternateDown||(this._direction=t.CtrlPattern.Type.Down),this._type===t.CtrlPattern.Type.RandomOnce?this._shuffleValues():this._type===t.CtrlPattern.Random&&(this.index=Math.floor(Math.random()*this.values.length))}}),t.CtrlPattern.prototype.next=function(){var e=this.type;return e===t.CtrlPattern.Type.Up?++this.index>=this.values.length&&(this.index=0):e===t.CtrlPattern.Type.Down?--this.index<0&&(this.index=this.values.length-1):e===t.CtrlPattern.Type.UpDown||e===t.CtrlPattern.Type.DownUp?(this._direction===t.CtrlPattern.Type.Up?this.index++:this.index--,this.index<0?(this.index=1,this._direction=t.CtrlPattern.Type.Up):this.index>=this.values.length&&(this.index=this.values.length-2,this._direction=t.CtrlPattern.Type.Down)):e===t.CtrlPattern.Type.Random?this.index=Math.floor(Math.random()*this.values.length):e===t.CtrlPattern.Type.RandomWalk?Math.random()<.5?(this.index--,this.index=Math.max(this.index,0)):(this.index++,this.index=Math.min(this.index,this.values.length-1)):e===t.CtrlPattern.Type.RandomOnce?++this.index>=this.values.length&&(this.index=0,this._shuffleValues()):e===t.CtrlPattern.Type.AlternateUp?(this._direction===t.CtrlPattern.Type.Up?(this.index+=2,this._direction=t.CtrlPattern.Type.Down):(this.index-=1,this._direction=t.CtrlPattern.Type.Up),this.index>=this.values.length&&(this.index=0,this._direction=t.CtrlPattern.Type.Up)):e===t.CtrlPattern.Type.AlternateDown&&(this._direction===t.CtrlPattern.Type.Up?(this.index+=1,this._direction=t.CtrlPattern.Type.Down):(this.index-=2,this._direction=t.CtrlPattern.Type.Up),this.index<0&&(this.index=this.values.length-1,this._direction=t.CtrlPattern.Type.Down)),this.value},t.CtrlPattern.prototype._shuffleValues=function(){var t=[];this._shuffled=[];for(var e=0;e<this.values.length;e++)t[e]=e;for(;t.length>0;){var i=t.splice(Math.floor(t.length*Math.random()),1);this._shuffled.push(i[0])}},t.CtrlPattern.prototype.dispose=function(){this._shuffled=null,this.values=null},t.CtrlPattern}),t(function(t){return t.CtrlRandom=function(){var e=this.optionsObject(arguments,["min","max"],t.CtrlRandom.defaults);this.min=e.min,this.max=e.max,this.integer=e.integer},t.extend(t.CtrlRandom),t.CtrlRandom.defaults={min:0,max:1,integer:!1},Object.defineProperty(t.CtrlRandom.prototype,"value",{get:function(){var t=this.toSeconds(this.min),e=this.toSeconds(this.max),i=Math.random(),s=i*t+(1-i)*e;return this.integer&&(s=Math.floor(s)),s}}),t.CtrlRandom}),t(function(t){return window.AudioBuffer&&!AudioBuffer.prototype.copyToChannel&&(AudioBuffer.prototype.copyToChannel=function(t,e,i){var s=this.getChannelData(e);i=i||0;for(var n=0;n<s.length;n++)s[n+i]=t[n]},AudioBuffer.prototype.copyFromChannel=function(t,e,i){var s=this.getChannelData(e);i=i||0;for(var n=0;n<s.length;n++)t[n]=s[n+i]}),t.Buffer=function(){var e=this.optionsObject(arguments,["url","onload","onerror"],t.Buffer.defaults);this._buffer=null,this._reversed=e.reverse,this._xhr=null,e.url instanceof AudioBuffer||e.url instanceof t.Buffer?(this.set(e.url),e.onload&&e.onload(this)):this.isString(e.url)&&this.load(e.url,e.onload,e.onerror)},t.extend(t.Buffer),t.Buffer.defaults={url:void 0,reverse:!1},t.Buffer.prototype.set=function(e){return e instanceof t.Buffer?this._buffer=e.get():this._buffer=e,this},t.Buffer.prototype.get=function(){return this._buffer},t.Buffer.prototype.load=function(e,i,s){return new Promise(function(n,o){this._xhr=t.Buffer.load(e,function(t){this._xhr=null,this.set(t),n(this),i&&i(this)}.bind(this),function(t){this._xhr=null,o(t),s&&s(t)}.bind(this))}.bind(this))},t.Buffer.prototype.dispose=function(){return t.Emitter.prototype.dispose.call(this),this._buffer=null,this._xhr&&(t.Buffer._currentDownloads--,this._xhr.abort(),this._xhr=null),this},Object.defineProperty(t.Buffer.prototype,"loaded",{get:function(){return this.length>0}}),Object.defineProperty(t.Buffer.prototype,"duration",{get:function(){return this._buffer?this._buffer.duration:0}}),Object.defineProperty(t.Buffer.prototype,"length",{get:function(){return this._buffer?this._buffer.length:0}}),Object.defineProperty(t.Buffer.prototype,"numberOfChannels",{get:function(){return this._buffer?this._buffer.numberOfChannels:0}}),t.Buffer.prototype.fromArray=function(t){var e=t[0].length>0,i=e?t.length:1,s=e?t[0].length:t.length,n=this.context.createBuffer(i,s,this.context.sampleRate);e||1!==i||(t=[t]);for(var o=0;o<i;o++)n.copyToChannel(t[o],o);return this._buffer=n,this},t.Buffer.prototype.toMono=function(t){if(this.isNumber(t))this.fromArray(this.toArray(t));else{for(var e=new Float32Array(this.length),i=this.numberOfChannels,s=0;s<i;s++)for(var n=this.toArray(s),o=0;o<n.length;o++)e[o]+=n[o];e=e.map(function(t){return t/i}),this.fromArray(e)}return this},t.Buffer.prototype.toArray=function(t){if(this.isNumber(t))return this.getChannelData(t);if(1===this.numberOfChannels)return this.toArray(0);for(var e=[],i=0;i<this.numberOfChannels;i++)e[i]=this.getChannelData(i);return e},t.Buffer.prototype.getChannelData=function(t){return this._buffer.getChannelData(t)},t.Buffer.prototype.slice=function(e,i){i=this.defaultArg(i,this.duration);for(var s=Math.floor(this.context.sampleRate*this.toSeconds(e)),n=Math.floor(this.context.sampleRate*this.toSeconds(i)),o=[],r=0;r<this.numberOfChannels;r++)o[r]=this.toArray(r).slice(s,n);return(new t.Buffer).fromArray(o)},t.Buffer.prototype._reverse=function(){if(this.loaded)for(var t=0;t<this.numberOfChannels;t++)Array.prototype.reverse.call(this.getChannelData(t));return this},Object.defineProperty(t.Buffer.prototype,"reverse",{get:function(){return this._reversed},set:function(t){this._reversed!==t&&(this._reversed=t,this._reverse())}}),t.Emitter.mixin(t.Buffer),t.Buffer._downloadQueue=[],t.Buffer._currentDownloads=0,t.Buffer.baseUrl="",t.Buffer.load=function(e,i,s){function n(e){if(!s)throw new Error(e);s(e),t.Buffer.emit("error",e)}function o(){for(var e=0,i=0;i<t.Buffer._downloadQueue.length;i++)e+=t.Buffer._downloadQueue[i].progress;t.Buffer.emit("progress",e/t.Buffer._downloadQueue.length)}i=i||t.noOp;var r=new XMLHttpRequest;return r.open("GET",t.Buffer.baseUrl+e,!0),r.responseType="arraybuffer",r.progress=0,t.Buffer._currentDownloads++,t.Buffer._downloadQueue.push(r),r.addEventListener("load",function(){200===r.status?t.context.decodeAudioData(r.response,function(e){r.progress=1,o(),i(e),0===--t.Buffer._currentDownloads&&(t.Buffer._downloadQueue=[],t.Buffer.emit("load"))},function(){n("Tone.Buffer: could not decode audio data: "+e)}):n("Tone.Buffer: could not locate file: "+e)}),r.addEventListener("error",n),r.addEventListener("progress",function(t){t.lengthComputable&&(r.progress=t.loaded/t.total*.95,o())}),r.send(),r},t.Buffer.cancelDownloads=function(){return t.Buffer._downloadQueue.forEach(function(t){t.abort()}),t.Buffer._currentDownloads=0,t.Buffer},t.Buffer.supportsType=function(t){var e=t.split(".");return e=e[e.length-1],""!==document.createElement("audio").canPlayType("audio/"+e)},t.loaded=function(){function e(){t.Buffer.off("load",i),t.Buffer.off("error",s)}var i,s;return new Promise(function(e,n){i=function(){e()},s=function(){n()},t.Buffer.on("load",i),t.Buffer.on("error",s)}).then(e).catch(function(t){throw e(),new Error(t)})},t.Buffer}),t(function(t){return t.Buffers=function(t,e,i){this._buffers={},this.baseUrl=this.defaultArg(i,""),t=this._flattenUrls(t),this._loadingCount=0;for(var s in t)this._loadingCount++,this.add(s,t[s],this._bufferLoaded.bind(this,e))},t.extend(t.Buffers),t.Buffers.prototype.has=function(t){return this._buffers.hasOwnProperty(t)},t.Buffers.prototype.get=function(t){if(this.has(t))return this._buffers[t];throw new Error("Tone.Buffers: no buffer named "+t)},t.Buffers.prototype._bufferLoaded=function(t){0===--this._loadingCount&&t&&t(this)},Object.defineProperty(t.Buffers.prototype,"loaded",{get:function(){var t=!0;for(var e in this._buffers){var i=this.get(e);t=t&&i.loaded}return t}}),t.Buffers.prototype.add=function(e,i,s){return s=this.defaultArg(s,t.noOp),i instanceof t.Buffer?(this._buffers[e]=i,s(this)):i instanceof AudioBuffer?(this._buffers[e]=new t.Buffer(i),s(this)):this.isString(i)&&(this._buffers[e]=new t.Buffer(this.baseUrl+i,s)),this},t.Buffers.prototype._flattenUrls=function(t){var e={};for(var i in t)if(t.hasOwnProperty(i))if(this.isObject(t[i])){var s=this._flattenUrls(t[i]);for(var n in s)s.hasOwnProperty(n)&&(e[i+"."+n]=s[n])}else e[i]=t[i];return e},t.Buffers.prototype.dispose=function(){for(var t in this._buffers)this._buffers[t].dispose();return this._buffers=null,this},t.Buffers}),t(function(t){var e={};return t.prototype.send=function(i,s){e.hasOwnProperty(i)||(e[i]=this.context.createGain()),s=this.defaultArg(s,0);var n=new t.Gain(s,t.Type.Decibels);return this.output.chain(n,e[i]),n},t.prototype.receive=function(t,i){return e.hasOwnProperty(t)||(e[t]=this.context.createGain()),this.isUndef(i)&&(i=this.input),e[t].connect(i),this},t.Context.on("init",function(t){t.Buses?e=t.Buses:(e={},t.Buses=e)}),t}),t(function(t){return t.Draw=function(){this._events=new t.Timeline,this.expiration=.25,this.anticipation=.008,this._boundDrawLoop=this._drawLoop.bind(this)},t.extend(t.Draw),t.Draw.prototype.schedule=function(t,e){return this._events.add({callback:t,time:this.toSeconds(e)}),1===this._events.length&&requestAnimationFrame(this._boundDrawLoop),this},t.Draw.prototype.cancel=function(t){return this._events.cancel(this.toSeconds(t)),this},t.Draw.prototype._drawLoop=function(){for(var e=t.now();this._events.length&&this._events.peek().time-this.anticipation<=e;){var i=this._events.shift();e-i.time<=this.expiration&&i.callback()}this._events.length>0&&requestAnimationFrame(this._boundDrawLoop)},t.Draw=new t.Draw,t.Draw}),t(function(t){t.Listener=function(){var t=this.optionsObject(arguments,["positionX","positionY","positionZ"],e.defaults);this._orientation=[t.forwardX,t.forwardY,t.forwardZ,t.upX,t.upY,t.upZ],this._position=[t.positionX,t.positionY,t.positionZ],this.forwardX=t.forwardX,this.forwardY=t.forwardY,this.forwardZ=t.forwardZ,this.upX=t.upX,this.upY=t.upY,this.upZ=t.upZ,this.positionX=t.positionX,this.positionY=t.positionY,this.positionZ=t.positionZ},t.extend(t.Listener),t.Listener.defaults={positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:1,upX:0,upY:1,upZ:0},t.Listener.prototype._rampTimeConstant=.01,t.Listener.prototype.setPosition=function(t,e,i){if(this.context.listener.positionX){var s=this.now();this.context.listener.positionX.setTargetAtTime(t,s,this._rampTimeConstant),this.context.listener.positionY.setTargetAtTime(e,s,this._rampTimeConstant),this.context.listener.positionZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this.context.listener.setPosition(t,e,i);return this._position=Array.prototype.slice.call(arguments),this},t.Listener.prototype.setOrientation=function(t,e,i,s,n,o){if(this.context.listener.forwardX){var r=this.now();this.context.listener.forwardX.setTargetAtTime(t,r,this._rampTimeConstant),this.context.listener.forwardY.setTargetAtTime(e,r,this._rampTimeConstant),this.context.listener.forwardZ.setTargetAtTime(i,r,this._rampTimeConstant),this.context.listener.upX.setTargetAtTime(s,r,this._rampTimeConstant),this.context.listener.upY.setTargetAtTime(n,r,this._rampTimeConstant),this.context.listener.upZ.setTargetAtTime(o,r,this._rampTimeConstant)}else this.context.listener.setOrientation(t,e,i,s,n,o);return this._orientation=Array.prototype.slice.call(arguments),this},Object.defineProperty(t.Listener.prototype,"positionX",{set:function(t){this._position[0]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[0]}}),Object.defineProperty(t.Listener.prototype,"positionY",{set:function(t){this._position[1]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[1]}}),Object.defineProperty(t.Listener.prototype,"positionZ",{set:function(t){this._position[2]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[2]}}),Object.defineProperty(t.Listener.prototype,"forwardX",{set:function(t){this._orientation[0]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[0]}}),Object.defineProperty(t.Listener.prototype,"forwardY",{set:function(t){this._orientation[1]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[1]}}),Object.defineProperty(t.Listener.prototype,"forwardZ",{set:function(t){this._orientation[2]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[2]}}),Object.defineProperty(t.Listener.prototype,"upX",{set:function(t){this._orientation[3]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[3]}}),Object.defineProperty(t.Listener.prototype,"upY",{set:function(t){this._orientation[4]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[4]}}),Object.defineProperty(t.Listener.prototype,"upZ",{set:function(t){this._orientation[5]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[5]}}),t.Listener.prototype.dispose=function(){return this._orientation=null,this._position=null,this};var e=t.Listener;return t.Listener=new e,t.Context.on("init",function(i){i.Listener instanceof e?t.Listener=i.Listener:t.Listener=new e,i.Listener=t.Listener}),t.Listener}),t(function(t){return!window.hasOwnProperty("OfflineAudioContext")&&window.hasOwnProperty("webkitOfflineAudioContext")&&(window.OfflineAudioContext=window.webkitOfflineAudioContext),t.OfflineContext=function(e,i,s){var n=new OfflineAudioContext(e,i*s,s);t.Context.call(this,n),this._duration=i,this._currentTime=0,this.lookAhead=this.blockTime,this.updateInterval=this.blockTime},t.extend(t.OfflineContext,t.Context),t.OfflineContext.prototype.now=function(){return this._currentTime},t.OfflineContext.prototype._createWorker=function(){return{postMessage:function(){}}},t.OfflineContext.prototype.render=function(){for(;this._duration-this._currentTime>=0;)this.emit("tick"),this._currentTime+=t.prototype.blockTime;return new Promise(function(t){this._context.oncomplete=function(e){t(e.renderedBuffer)},this._context.startRendering()}.bind(this))},t.OfflineContext}),t(function(t){return t.Offline=function(e,i){var s=t.context.sampleRate,n=t.context,o=new t.OfflineContext(2,i,s);t.context=o,e(t.Transport);var r=o.render();return t.context=n,r.then(function(e){return new t.Buffer(e)})},t.Offline}),t(function(t){return t.Effect=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,["wet"],t.Effect.defaults);this._dryWet=new t.CrossFade(e.wet),this.wet=this._dryWet.fade,this.effectSend=new t.Gain,this.effectReturn=new t.Gain,this.input.connect(this._dryWet.a),this.input.connect(this.effectSend),this.effectReturn.connect(this._dryWet.b),this._dryWet.connect(this.output),this._readOnly(["wet"])},t.extend(t.Effect),t.Effect.defaults={wet:1},t.Effect.prototype.connectEffect=function(t){return this.effectSend.chain(t,this.effectReturn),this},t.Effect.prototype.dispose=function(){return t.prototype.dispose.call(this),this._dryWet.dispose(),this._dryWet=null,this.effectSend.dispose(),this.effectSend=null,this.effectReturn.dispose(),this.effectReturn=null,this._writable(["wet"]),this.wet=null,this},t.Effect}),t(function(t){return t.AutoFilter=function(){var e=this.optionsObject(arguments,["frequency","baseFrequency","octaves"],t.AutoFilter.defaults);t.Effect.call(this,e),this._lfo=new t.LFO({frequency:e.frequency,amplitude:e.depth}),this.depth=this._lfo.amplitude,this.frequency=this._lfo.frequency,this.filter=new t.Filter(e.filter),this._octaves=0,this.connectEffect(this.filter),this._lfo.connect(this.filter.frequency),this.type=e.type,this._readOnly(["frequency","depth"]),this.octaves=e.octaves,this.baseFrequency=e.baseFrequency},t.extend(t.AutoFilter,t.Effect),t.AutoFilter.defaults={frequency:1,type:"sine",depth:1,baseFrequency:200,octaves:2.6,filter:{type:"lowpass",rolloff:-12,Q:1}},t.AutoFilter.prototype.start=function(t){return this._lfo.start(t),this},t.AutoFilter.prototype.stop=function(t){return this._lfo.stop(t),this},t.AutoFilter.prototype.sync=function(t){return this._lfo.sync(t),this},t.AutoFilter.prototype.unsync=function(){return this._lfo.unsync(),this},Object.defineProperty(t.AutoFilter.prototype,"type",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),Object.defineProperty(t.AutoFilter.prototype,"baseFrequency",{get:function(){return this._lfo.min},set:function(t){this._lfo.min=this.toFrequency(t),this.octaves=this._octaves}}),Object.defineProperty(t.AutoFilter.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._lfo.max=this.baseFrequency*Math.pow(2,t)}}),t.AutoFilter.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._lfo.dispose(),this._lfo=null,this.filter.dispose(),this.filter=null,this._writable(["frequency","depth"]),this.frequency=null,this.depth=null,this},t.AutoFilter}),t(function(t){return t.AutoPanner=function(){var e=this.optionsObject(arguments,["frequency"],t.AutoPanner.defaults);t.Effect.call(this,e),this._lfo=new t.LFO({frequency:e.frequency,amplitude:e.depth,min:-1,max:1}),this.depth=this._lfo.amplitude,this._panner=new t.Panner,this.frequency=this._lfo.frequency,this.connectEffect(this._panner),this._lfo.connect(this._panner.pan),this.type=e.type,this._readOnly(["depth","frequency"])},t.extend(t.AutoPanner,t.Effect),t.AutoPanner.defaults={frequency:1,type:"sine",depth:1},t.AutoPanner.prototype.start=function(t){return this._lfo.start(t),this},t.AutoPanner.prototype.stop=function(t){return this._lfo.stop(t),this},t.AutoPanner.prototype.sync=function(t){return this._lfo.sync(t),this},t.AutoPanner.prototype.unsync=function(){return this._lfo.unsync(),this},Object.defineProperty(t.AutoPanner.prototype,"type",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),t.AutoPanner.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._lfo.dispose(),this._lfo=null,this._panner.dispose(),this._panner=null,this._writable(["depth","frequency"]),this.frequency=null,this.depth=null,this},t.AutoPanner}),t(function(t){return t.AutoWah=function(){var e=this.optionsObject(arguments,["baseFrequency","octaves","sensitivity"],t.AutoWah.defaults);t.Effect.call(this,e),this.follower=new t.Follower(e.follower),this._sweepRange=new t.ScaleExp(0,1,.5),this._baseFrequency=e.baseFrequency,this._octaves=e.octaves,this._inputBoost=new t.Gain,this._bandpass=new t.Filter({rolloff:-48,frequency:0,Q:e.Q}),this._peaking=new t.Filter(0,"peaking"),this._peaking.gain.value=e.gain,this.gain=this._peaking.gain,this.Q=this._bandpass.Q,this.effectSend.chain(this._inputBoost,this.follower,this._sweepRange),this._sweepRange.connect(this._bandpass.frequency),this._sweepRange.connect(this._peaking.frequency),this.effectSend.chain(this._bandpass,this._peaking,this.effectReturn),this._setSweepRange(),this.sensitivity=e.sensitivity,this._readOnly(["gain","Q"])},t.extend(t.AutoWah,t.Effect),t.AutoWah.defaults={baseFrequency:100,octaves:6,sensitivity:0,Q:2,gain:2,follower:{attack:.3,release:.5}},Object.defineProperty(t.AutoWah.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._setSweepRange()}}),Object.defineProperty(t.AutoWah.prototype,"baseFrequency",{get:function(){return this._baseFrequency},set:function(t){this._baseFrequency=t,this._setSweepRange()}}),Object.defineProperty(t.AutoWah.prototype,"sensitivity",{get:function(){return this.gainToDb(1/this._inputBoost.gain.value)},set:function(t){this._inputBoost.gain.value=1/this.dbToGain(t)}}),t.AutoWah.prototype._setSweepRange=function(){this._sweepRange.min=this._baseFrequency,this._sweepRange.max=Math.min(this._baseFrequency*Math.pow(2,this._octaves),this.context.sampleRate/2)},t.AutoWah.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this.follower.dispose(),this.follower=null,this._sweepRange.dispose(),this._sweepRange=null,this._bandpass.dispose(),this._bandpass=null,this._peaking.dispose(),this._peaking=null,this._inputBoost.dispose(),this._inputBoost=null,this._writable(["gain","Q"]),this.gain=null,this.Q=null,this},t.AutoWah}),t(function(t){return t.BitCrusher=function(){var e=this.optionsObject(arguments,["bits"],t.BitCrusher.defaults);t.Effect.call(this,e);var i=1/Math.pow(2,e.bits-1);this._subtract=new t.Subtract,this._modulo=new t.Modulo(i),this._bits=e.bits,this.effectSend.fan(this._subtract,this._modulo),this._modulo.connect(this._subtract,0,1),this._subtract.connect(this.effectReturn)},t.extend(t.BitCrusher,t.Effect),t.BitCrusher.defaults={bits:4},Object.defineProperty(t.BitCrusher.prototype,"bits",{get:function(){return this._bits},set:function(t){this._bits=t;var e=1/Math.pow(2,t-1);this._modulo.value=e}}),t.BitCrusher.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._subtract.dispose(),this._subtract=null,this._modulo.dispose(),this._modulo=null,this},t.BitCrusher}),t(function(t){return t.Chebyshev=function(){var e=this.optionsObject(arguments,["order"],t.Chebyshev.defaults);t.Effect.call(this,e),this._shaper=new t.WaveShaper(4096),this._order=e.order,this.connectEffect(this._shaper),this.order=e.order,this.oversample=e.oversample},t.extend(t.Chebyshev,t.Effect),t.Chebyshev.defaults={order:1,oversample:"none"},t.Chebyshev.prototype._getCoefficient=function(t,e,i){return i.hasOwnProperty(e)?i[e]:(i[e]=0===e?0:1===e?t:2*t*this._getCoefficient(t,e-1,i)-this._getCoefficient(t,e-2,i),i[e])},Object.defineProperty(t.Chebyshev.prototype,"order",{get:function(){return this._order},set:function(t){this._order=t;for(var e=new Array(4096),i=e.length,s=0;s<i;++s){var n=2*s/i-1;e[s]=0===n?0:this._getCoefficient(n,t,{})}this._shaper.curve=e}}),Object.defineProperty(t.Chebyshev.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){this._shaper.oversample=t}}),t.Chebyshev.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this},t.Chebyshev}),t(function(t){return t.StereoEffect=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,["wet"],t.Effect.defaults);this._dryWet=new t.CrossFade(e.wet),this.wet=this._dryWet.fade,this._split=new t.Split,this.effectSendL=this._split.left,this.effectSendR=this._split.right,this._merge=new t.Merge,this.effectReturnL=this._merge.left,this.effectReturnR=this._merge.right,this.input.connect(this._split),this.input.connect(this._dryWet,0,0),this._merge.connect(this._dryWet,0,1),this._dryWet.connect(this.output),this._readOnly(["wet"])},t.extend(t.StereoEffect,t.Effect),t.StereoEffect.prototype.dispose=function(){return t.prototype.dispose.call(this),this._dryWet.dispose(),this._dryWet=null,this._split.dispose(),this._split=null,this._merge.dispose(),this._merge=null,this.effectSendL=null,this.effectSendR=null,this.effectReturnL=null,this.effectReturnR=null,this._writable(["wet"]),this.wet=null,this},t.StereoEffect}),t(function(t){return t.FeedbackEffect=function(){var e=this.optionsObject(arguments,["feedback"]);e=this.defaultArg(e,t.FeedbackEffect.defaults),t.Effect.call(this,e),this._feedbackGain=new t.Gain(e.feedback,t.Type.NormalRange),this.feedback=this._feedbackGain.gain,this.effectReturn.chain(this._feedbackGain,this.effectSend),this._readOnly(["feedback"])},t.extend(t.FeedbackEffect,t.Effect),t.FeedbackEffect.defaults={feedback:.125},t.FeedbackEffect.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._writable(["feedback"]),this._feedbackGain.dispose(),this._feedbackGain=null,this.feedback=null,this},t.FeedbackEffect}),t(function(t){return t.StereoXFeedbackEffect=function(){var e=this.optionsObject(arguments,["feedback"],t.FeedbackEffect.defaults);t.StereoEffect.call(this,e),this.feedback=new t.Signal(e.feedback,t.Type.NormalRange),this._feedbackLR=new t.Gain,this._feedbackRL=new t.Gain,this.effectReturnL.chain(this._feedbackLR,this.effectSendR),this.effectReturnR.chain(this._feedbackRL,this.effectSendL),this.feedback.fan(this._feedbackLR.gain,this._feedbackRL.gain),this._readOnly(["feedback"])},t.extend(t.StereoXFeedbackEffect,t.FeedbackEffect),t.StereoXFeedbackEffect.prototype.dispose=function(){return t.StereoEffect.prototype.dispose.call(this),this._writable(["feedback"]),this.feedback.dispose(),this.feedback=null,this._feedbackLR.dispose(),this._feedbackLR=null,this._feedbackRL.dispose(),this._feedbackRL=null,this},t.StereoXFeedbackEffect}),t(function(t){return t.Chorus=function(){var e=this.optionsObject(arguments,["frequency","delayTime","depth"],t.Chorus.defaults);t.StereoXFeedbackEffect.call(this,e),this._depth=e.depth,this._delayTime=e.delayTime/1e3,this._lfoL=new t.LFO({frequency:e.frequency,min:0,max:1}),this._lfoR=new t.LFO({frequency:e.frequency,min:0,max:1,phase:180}),this._delayNodeL=new t.Delay,this._delayNodeR=new t.Delay,this.frequency=this._lfoL.frequency,this.effectSendL.chain(this._delayNodeL,this.effectReturnL),this.effectSendR.chain(this._delayNodeR,this.effectReturnR),this.effectSendL.connect(this.effectReturnL),this.effectSendR.connect(this.effectReturnR),this._lfoL.connect(this._delayNodeL.delayTime),this._lfoR.connect(this._delayNodeR.delayTime),this._lfoL.start(),this._lfoR.start(),this._lfoL.frequency.connect(this._lfoR.frequency),this.depth=this._depth,this.frequency.value=e.frequency,this.type=e.type,this._readOnly(["frequency"]),this.spread=e.spread},t.extend(t.Chorus,t.StereoXFeedbackEffect),t.Chorus.defaults={frequency:1.5,delayTime:3.5,depth:.7,feedback:.1,type:"sine",spread:180},Object.defineProperty(t.Chorus.prototype,"depth",{get:function(){return this._depth},set:function(t){this._depth=t;var e=this._delayTime*t;this._lfoL.min=Math.max(this._delayTime-e,0),this._lfoL.max=this._delayTime+e,this._lfoR.min=Math.max(this._delayTime-e,0),this._lfoR.max=this._delayTime+e}}),Object.defineProperty(t.Chorus.prototype,"delayTime",{get:function(){return 1e3*this._delayTime},set:function(t){this._delayTime=t/1e3,this.depth=this._depth}}),Object.defineProperty(t.Chorus.prototype,"type",{get:function(){return this._lfoL.type},set:function(t){this._lfoL.type=t,this._lfoR.type=t}}),Object.defineProperty(t.Chorus.prototype,"spread",{get:function(){return this._lfoR.phase-this._lfoL.phase},set:function(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}}),t.Chorus.prototype.dispose=function(){return t.StereoXFeedbackEffect.prototype.dispose.call(this),this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null,this._delayNodeL.dispose(),this._delayNodeL=null,this._delayNodeR.dispose(),this._delayNodeR=null,this._writable("frequency"),this.frequency=null,this},t.Chorus}),t(function(t){return t.Convolver=function(){var e=this.optionsObject(arguments,["url","onload"],t.Convolver.defaults);t.Effect.call(this,e),this._convolver=this.context.createConvolver(),this._buffer=new t.Buffer,this.isString(e.url)?this._buffer.load(e.url,function(t){this.buffer=t,e.onload()}.bind(this)):e.url&&(this.buffer=e.url,e.onload()),this.connectEffect(this._convolver)},t.extend(t.Convolver,t.Effect),t.Convolver.defaults={onload:t.noOp},Object.defineProperty(t.Convolver.prototype,"buffer",{get:function(){return this._buffer.get()},set:function(t){this._buffer.set(t),this._convolver.buffer=this._buffer.get()}}),t.Convolver.prototype.load=function(t,e){return this._buffer.load(t,function(t){this.buffer=t,e&&e()}.bind(this))},t.Convolver.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._convolver.disconnect(),this._convolver=null,this._buffer.dispose(),this._buffer=null,this},t.Convolver}),t(function(t){return t.Distortion=function(){var e=this.optionsObject(arguments,["distortion"],t.Distortion.defaults);t.Effect.call(this,e),this._shaper=new t.WaveShaper(4096),this._distortion=e.distortion,this.connectEffect(this._shaper),this.distortion=e.distortion,this.oversample=e.oversample},t.extend(t.Distortion,t.Effect),t.Distortion.defaults={distortion:.4,oversample:"none"},Object.defineProperty(t.Distortion.prototype,"distortion",{get:function(){return this._distortion},set:function(t){this._distortion=t;var e=100*t,i=Math.PI/180;this._shaper.setMap(function(t){return Math.abs(t)<.001?0:(3+e)*t*20*i/(Math.PI+e*Math.abs(t))})}}),Object.defineProperty(t.Distortion.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){this._shaper.oversample=t}}),t.Distortion.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this},t.Distortion}),t(function(t){return t.FeedbackDelay=function(){var e=this.optionsObject(arguments,["delayTime","feedback"],t.FeedbackDelay.defaults);t.FeedbackEffect.call(this,e),this._delayNode=new t.Delay(e.delayTime),this.delayTime=this._delayNode.delayTime,this.connectEffect(this._delayNode),this._readOnly(["delayTime"])},t.extend(t.FeedbackDelay,t.FeedbackEffect),t.FeedbackDelay.defaults={delayTime:.25},t.FeedbackDelay.prototype.dispose=function(){return t.FeedbackEffect.prototype.dispose.call(this),this._delayNode.dispose(),this._delayNode=null,this._writable(["delayTime"]),this.delayTime=null,this},t.FeedbackDelay}),t(function(t){var e=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100],i=[225,556,441,341];return t.Freeverb=function(){var s=this.optionsObject(arguments,["roomSize","dampening"],t.Freeverb.defaults);t.StereoEffect.call(this,s),this.roomSize=new t.Signal(s.roomSize,t.Type.NormalRange),this.dampening=new t.Signal(s.dampening,t.Type.Frequency),this._combFilters=[],this._allpassFiltersL=[],this._allpassFiltersR=[];for(var n=0;n<i.length;n++){var o=this.context.createBiquadFilter();o.type="allpass",o.frequency.value=i[n],this._allpassFiltersL.push(o)}for(var r=0;r<i.length;r++){var a=this.context.createBiquadFilter();a.type="allpass",a.frequency.value=i[r],this._allpassFiltersR.push(a)}for(var h=0;h<e.length;h++){var l=new t.LowpassCombFilter(e[h]);h<e.length/2?this.effectSendL.chain(l,this._allpassFiltersL[0]):this.effectSendR.chain(l,this._allpassFiltersR[0]),this.roomSize.connect(l.resonance),this.dampening.connect(l.dampening),this._combFilters.push(l)}this.connectSeries.apply(this,this._allpassFiltersL),this.connectSeries.apply(this,this._allpassFiltersR),this._allpassFiltersL[this._allpassFiltersL.length-1].connect(this.effectReturnL),this._allpassFiltersR[this._allpassFiltersR.length-1].connect(this.effectReturnR),this._readOnly(["roomSize","dampening"])},t.extend(t.Freeverb,t.StereoEffect),t.Freeverb.defaults={roomSize:.7,dampening:3e3},t.Freeverb.prototype.dispose=function(){t.StereoEffect.prototype.dispose.call(this);for(var e=0;e<this._allpassFiltersL.length;e++)this._allpassFiltersL[e].disconnect(),this._allpassFiltersL[e]=null;this._allpassFiltersL=null;for(var i=0;i<this._allpassFiltersR.length;i++)this._allpassFiltersR[i].disconnect(),this._allpassFiltersR[i]=null;this._allpassFiltersR=null;for(var s=0;s<this._combFilters.length;s++)this._combFilters[s].dispose(),this._combFilters[s]=null;return this._combFilters=null,this._writable(["roomSize","dampening"]),this.roomSize.dispose(),this.roomSize=null,this.dampening.dispose(),this.dampening=null,this},t.Freeverb}),t(function(t){var e=[.06748,.06404,.08212,.09004],i=[.773,.802,.753,.733],s=[347,113,37];return t.JCReverb=function(){var n=this.optionsObject(arguments,["roomSize"],t.JCReverb.defaults);t.StereoEffect.call(this,n),this.roomSize=new t.Signal(n.roomSize,t.Type.NormalRange),this._scaleRoomSize=new t.Scale(-.733,.197),this._allpassFilters=[],this._feedbackCombFilters=[];for(var o=0;o<s.length;o++){var r=this.context.createBiquadFilter();r.type="allpass",r.frequency.value=s[o],this._allpassFilters.push(r)}for(var a=0;a<e.length;a++){var h=new t.FeedbackCombFilter(e[a],.1);this._scaleRoomSize.connect(h.resonance),h.resonance.value=i[a],this._allpassFilters[this._allpassFilters.length-1].connect(h),a<e.length/2?h.connect(this.effectReturnL):h.connect(this.effectReturnR),this._feedbackCombFilters.push(h)}this.roomSize.connect(this._scaleRoomSize),this.connectSeries.apply(this,this._allpassFilters),this.effectSendL.connect(this._allpassFilters[0]),this.effectSendR.connect(this._allpassFilters[0]),this._readOnly(["roomSize"])},t.extend(t.JCReverb,t.StereoEffect),t.JCReverb.defaults={roomSize:.5},t.JCReverb.prototype.dispose=function(){t.StereoEffect.prototype.dispose.call(this);for(var e=0;e<this._allpassFilters.length;e++)this._allpassFilters[e].disconnect(),this._allpassFilters[e]=null;this._allpassFilters=null;for(var i=0;i<this._feedbackCombFilters.length;i++)this._feedbackCombFilters[i].dispose(),this._feedbackCombFilters[i]=null;return this._feedbackCombFilters=null,this._writable(["roomSize"]),this.roomSize.dispose(),this.roomSize=null,this._scaleRoomSize.dispose(),this._scaleRoomSize=null,this},t.JCReverb}),t(function(t){return t.MidSideEffect=function(){t.Effect.apply(this,arguments),this._midSideSplit=new t.MidSideSplit,this._midSideMerge=new t.MidSideMerge,this.midSend=this._midSideSplit.mid,this.sideSend=this._midSideSplit.side,this.midReturn=this._midSideMerge.mid,this.sideReturn=this._midSideMerge.side,this.effectSend.connect(this._midSideSplit),this._midSideMerge.connect(this.effectReturn)},t.extend(t.MidSideEffect,t.Effect),t.MidSideEffect.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._midSideSplit.dispose(),this._midSideSplit=null,this._midSideMerge.dispose(),this._midSideMerge=null,this.midSend=null,this.sideSend=null,this.midReturn=null,this.sideReturn=null,this},t.MidSideEffect}),t(function(t){return t.Phaser=function(){var e=this.optionsObject(arguments,["frequency","octaves","baseFrequency"],t.Phaser.defaults);t.StereoEffect.call(this,e),this._lfoL=new t.LFO(e.frequency,0,1),this._lfoR=new t.LFO(e.frequency,0,1),this._lfoR.phase=180,this._baseFrequency=e.baseFrequency,this._octaves=e.octaves,this.Q=new t.Signal(e.Q,t.Type.Positive),this._filtersL=this._makeFilters(e.stages,this._lfoL,this.Q),this._filtersR=this._makeFilters(e.stages,this._lfoR,this.Q),this.frequency=this._lfoL.frequency,this.frequency.value=e.frequency,this.effectSendL.connect(this._filtersL[0]),this.effectSendR.connect(this._filtersR[0]),this._filtersL[e.stages-1].connect(this.effectReturnL),this._filtersR[e.stages-1].connect(this.effectReturnR),this._lfoL.frequency.connect(this._lfoR.frequency),this.baseFrequency=e.baseFrequency,this.octaves=e.octaves,this._lfoL.start(),this._lfoR.start(),this._readOnly(["frequency","Q"])},t.extend(t.Phaser,t.StereoEffect),t.Phaser.defaults={frequency:.5,octaves:3,stages:10,Q:10,baseFrequency:350},t.Phaser.prototype._makeFilters=function(t,e,i){for(var s=new Array(t),n=0;n<t;n++){var o=this.context.createBiquadFilter();o.type="allpass",i.connect(o.Q),e.connect(o.frequency),s[n]=o}return this.connectSeries.apply(this,s),s},Object.defineProperty(t.Phaser.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t;var e=this._baseFrequency*Math.pow(2,t);this._lfoL.max=e,this._lfoR.max=e}}),Object.defineProperty(t.Phaser.prototype,"baseFrequency",{get:function(){return this._baseFrequency},set:function(t){this._baseFrequency=t,this._lfoL.min=t,this._lfoR.min=t,this.octaves=this._octaves}}),t.Phaser.prototype.dispose=function(){t.StereoEffect.prototype.dispose.call(this),this._writable(["frequency","Q"]),this.Q.dispose(),this.Q=null,this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null;for(var e=0;e<this._filtersL.length;e++)this._filtersL[e].disconnect(),this._filtersL[e]=null;this._filtersL=null;for(var i=0;i<this._filtersR.length;i++)this._filtersR[i].disconnect(),this._filtersR[i]=null;return this._filtersR=null,this.frequency=null,this},t.Phaser}),t(function(t){return t.PingPongDelay=function(){var e=this.optionsObject(arguments,["delayTime","feedback"],t.PingPongDelay.defaults);t.StereoXFeedbackEffect.call(this,e),this._leftDelay=new t.Delay(0,e.maxDelayTime),this._rightDelay=new t.Delay(0,e.maxDelayTime),this._rightPreDelay=new t.Delay(0,e.maxDelayTime),this.delayTime=new t.Signal(e.delayTime,t.Type.Time),this.effectSendL.chain(this._leftDelay,this.effectReturnL),this.effectSendR.chain(this._rightPreDelay,this._rightDelay,this.effectReturnR),this.delayTime.fan(this._leftDelay.delayTime,this._rightDelay.delayTime,this._rightPreDelay.delayTime),this._feedbackLR.disconnect(),this._feedbackLR.connect(this._rightDelay),this._readOnly(["delayTime"])},t.extend(t.PingPongDelay,t.StereoXFeedbackEffect),t.PingPongDelay.defaults={delayTime:.25,maxDelayTime:1},t.PingPongDelay.prototype.dispose=function(){return t.StereoXFeedbackEffect.prototype.dispose.call(this),this._leftDelay.dispose(),this._leftDelay=null,this._rightDelay.dispose(),this._rightDelay=null,this._rightPreDelay.dispose(),this._rightPreDelay=null,this._writable(["delayTime"]),this.delayTime.dispose(),this.delayTime=null,this},t.PingPongDelay}),t(function(t){return t.PitchShift=function(){var e=this.optionsObject(arguments,["pitch"],t.PitchShift.defaults);t.FeedbackEffect.call(this,e),this._frequency=new t.Signal(0),this._delayA=new t.Delay(0,1),this._lfoA=new t.LFO({min:0,max:.1,type:"sawtooth"}).connect(this._delayA.delayTime),this._delayB=new t.Delay(0,1),this._lfoB=new t.LFO({min:0,max:.1,type:"sawtooth",phase:180}).connect(this._delayB.delayTime),this._crossFade=new t.CrossFade,this._crossFadeLFO=new t.LFO({min:0,max:1,type:"triangle",phase:90}).connect(this._crossFade.fade),this._feedbackDelay=new t.Delay(e.delayTime),this.delayTime=this._feedbackDelay.delayTime,this._readOnly("delayTime"),this._pitch=e.pitch,this._windowSize=e.windowSize,this._delayA.connect(this._crossFade.a),this._delayB.connect(this._crossFade.b),this._frequency.fan(this._lfoA.frequency,this._lfoB.frequency,this._crossFadeLFO.frequency),this.effectSend.fan(this._delayA,this._delayB),this._crossFade.chain(this._feedbackDelay,this.effectReturn);var i=this.now();this._lfoA.start(i),this._lfoB.start(i),this._crossFadeLFO.start(i),this.windowSize=this._windowSize},t.extend(t.PitchShift,t.FeedbackEffect),t.PitchShift.defaults={pitch:0,windowSize:.1,delayTime:0,feedback:0},Object.defineProperty(t.PitchShift.prototype,"pitch",{get:function(){return this._pitch},set:function(t){this._pitch=t;var e=0;t<0?(this._lfoA.min=0,this._lfoA.max=this._windowSize,this._lfoB.min=0,this._lfoB.max=this._windowSize,e=this.intervalToFrequencyRatio(t-1)+1):(this._lfoA.min=this._windowSize,this._lfoA.max=0,this._lfoB.min=this._windowSize,this._lfoB.max=0,e=this.intervalToFrequencyRatio(t)-1),this._frequency.value=e*(1.2/this._windowSize)}}),Object.defineProperty(t.PitchShift.prototype,"windowSize",{get:function(){return this._windowSize},set:function(t){this._windowSize=this.toSeconds(t),this.pitch=this._pitch}}),t.PitchShift.prototype.dispose=function(){return t.FeedbackEffect.prototype.dispose.call(this),this._frequency.dispose(),this._frequency=null,this._delayA.disconnect(),this._delayA=null,this._delayB.disconnect(),this._delayB=null,this._lfoA.dispose(),this._lfoA=null,this._lfoB.dispose(),this._lfoB=null,this._crossFade.dispose(),this._crossFade=null,this._crossFadeLFO.dispose(),this._crossFadeLFO=null,this._writable("delayTime"),this._feedbackDelay.dispose(),this._feedbackDelay=null,this.delayTime=null,this},t.PitchShift}),t(function(t){return t.StereoFeedbackEffect=function(){var e=this.optionsObject(arguments,["feedback"],t.FeedbackEffect.defaults);t.StereoEffect.call(this,e),this.feedback=new t.Signal(e.feedback,t.Type.NormalRange),this._feedbackL=new t.Gain,this._feedbackR=new t.Gain,this.effectReturnL.chain(this._feedbackL,this.effectSendL),this.effectReturnR.chain(this._feedbackR,this.effectSendR),this.feedback.fan(this._feedbackL.gain,this._feedbackR.gain),this._readOnly(["feedback"])},t.extend(t.StereoFeedbackEffect,t.FeedbackEffect),t.StereoFeedbackEffect.prototype.dispose=function(){return t.StereoEffect.prototype.dispose.call(this),this._writable(["feedback"]),this.feedback.dispose(),this.feedback=null,this._feedbackL.dispose(),this._feedbackL=null,this._feedbackR.dispose(),this._feedbackR=null,this},t.StereoFeedbackEffect}),t(function(t){return t.StereoWidener=function(){var e=this.optionsObject(arguments,["width"],t.StereoWidener.defaults);t.MidSideEffect.call(this,e),this.width=new t.Signal(e.width,t.Type.NormalRange),this._midMult=new t.Expr("$0 * ($1 * (1 - $2))"),this._sideMult=new t.Expr("$0 * ($1 * $2)"),this._two=new t.Signal(2),this._two.connect(this._midMult,0,1),this.width.connect(this._midMult,0,2),this._two.connect(this._sideMult,0,1),this.width.connect(this._sideMult,0,2),this.midSend.chain(this._midMult,this.midReturn),this.sideSend.chain(this._sideMult,this.sideReturn),this._readOnly(["width"])},t.extend(t.StereoWidener,t.MidSideEffect),t.StereoWidener.defaults={width:.5},t.StereoWidener.prototype.dispose=function(){return t.MidSideEffect.prototype.dispose.call(this),this._writable(["width"]),this.width.dispose(),this.width=null,this._midMult.dispose(),this._midMult=null,this._sideMult.dispose(),this._sideMult=null,this._two.dispose(),this._two=null,this},t.StereoWidener}),t(function(t){return t.Tremolo=function(){var e=this.optionsObject(arguments,["frequency","depth"],t.Tremolo.defaults);t.StereoEffect.call(this,e),this._lfoL=new t.LFO({phase:e.spread,min:1,max:0}),this._lfoR=new t.LFO({phase:e.spread,min:1,max:0}),this._amplitudeL=new t.Gain,this._amplitudeR=new t.Gain,this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.depth=new t.Signal(e.depth,t.Type.NormalRange),this._readOnly(["frequency","depth"]),this.effectSendL.chain(this._amplitudeL,this.effectReturnL),this.effectSendR.chain(this._amplitudeR,this.effectReturnR),this._lfoL.connect(this._amplitudeL.gain),this._lfoR.connect(this._amplitudeR.gain),this.frequency.fan(this._lfoL.frequency,this._lfoR.frequency),this.depth.fan(this._lfoR.amplitude,this._lfoL.amplitude),this.type=e.type,this.spread=e.spread},t.extend(t.Tremolo,t.StereoEffect),t.Tremolo.defaults={frequency:10,type:"sine",depth:.5,spread:180},t.Tremolo.prototype.start=function(t){return this._lfoL.start(t),this._lfoR.start(t),this},t.Tremolo.prototype.stop=function(t){return this._lfoL.stop(t),this._lfoR.stop(t),this},t.Tremolo.prototype.sync=function(t){return this._lfoL.sync(t),this._lfoR.sync(t),this},t.Tremolo.prototype.unsync=function(){return this._lfoL.unsync(),this._lfoR.unsync(),this},Object.defineProperty(t.Tremolo.prototype,"type",{get:function(){return this._lfoL.type},set:function(t){this._lfoL.type=t,this._lfoR.type=t}}),Object.defineProperty(t.Tremolo.prototype,"spread",{get:function(){return this._lfoR.phase-this._lfoL.phase},set:function(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}}),t.Tremolo.prototype.dispose=function(){return t.StereoEffect.prototype.dispose.call(this),this._writable(["frequency","depth"]),this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null,this._amplitudeL.dispose(),this._amplitudeL=null,this._amplitudeR.dispose(),this._amplitudeR=null,this.frequency=null,this.depth=null,this},t.Tremolo}),t(function(t){return t.Vibrato=function(){var e=this.optionsObject(arguments,["frequency","depth"],t.Vibrato.defaults);t.Effect.call(this,e),this._delayNode=new t.Delay(0,e.maxDelay),this._lfo=new t.LFO({type:e.type,min:0,max:e.maxDelay,frequency:e.frequency,phase:-90}).start().connect(this._delayNode.delayTime),this.frequency=this._lfo.frequency,this.depth=this._lfo.amplitude,this.depth.value=e.depth,this._readOnly(["frequency","depth"]),this.effectSend.chain(this._delayNode,this.effectReturn)},t.extend(t.Vibrato,t.Effect),t.Vibrato.defaults={maxDelay:.005,frequency:5,depth:.1,type:"sine"},Object.defineProperty(t.Vibrato.prototype,"type",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),t.Vibrato.prototype.dispose=function(){t.Effect.prototype.dispose.call(this),this._delayNode.dispose(),this._delayNode=null,this._lfo.dispose(),this._lfo=null,this._writable(["frequency","depth"]),this.frequency=null,this.depth=null},t.Vibrato}),t(function(t){return t.Event=function(){var e=this.optionsObject(arguments,["callback","value"],t.Event.defaults);this._loop=e.loop,this.callback=e.callback,this.value=e.value,this._loopStart=this.toTicks(e.loopStart),this._loopEnd=this.toTicks(e.loopEnd),this._state=new t.TimelineState(t.State.Stopped),this._playbackRate=1,this._startOffset=0,this.probability=e.probability,this.humanize=e.humanize,this.mute=e.mute,this.playbackRate=e.playbackRate},t.extend(t.Event),t.Event.defaults={callback:t.noOp,loop:!1,loopEnd:"1m",loopStart:0,playbackRate:1,value:null,probability:1,mute:!1,humanize:!1},t.Event.prototype._rescheduleEvents=function(e){return e=this.defaultArg(e,-1),this._state.forEachFrom(e,function(e){var i;if(e.state===t.State.Started){this.isUndef(e.id)||t.Transport.clear(e.id);var s=e.time+Math.round(this.startOffset/this._playbackRate);if(this._loop){i=1/0,this.isNumber(this._loop)&&(i=this._loop*this._getLoopDuration());var n=this._state.getAfter(s);null!==n&&(i=Math.min(i,n.time-s)),i!==1/0&&(this._state.setStateAtTime(t.State.Stopped,s+i+1),i=t.Time(i,"i"));var o=t.Time(this._getLoopDuration(),"i");e.id=t.Transport.scheduleRepeat(this._tick.bind(this),o,t.TransportTime(s,"i"),i)}else e.id=t.Transport.schedule(this._tick.bind(this),s+"i")}}.bind(this)),this},Object.defineProperty(t.Event.prototype,"state",{get:function(){return this._state.getValueAtTime(t.Transport.ticks)}}),Object.defineProperty(t.Event.prototype,"startOffset",{get:function(){return this._startOffset},set:function(t){this._startOffset=t}}),t.Event.prototype.start=function(e){return e=this.toTicks(e),this._state.getValueAtTime(e)===t.State.Stopped&&(this._state.add({state:t.State.Started,time:e,id:void 0}),this._rescheduleEvents(e)),this},t.Event.prototype.stop=function(e){if(this.cancel(e),e=this.toTicks(e),this._state.getValueAtTime(e)===t.State.Started){this._state.setStateAtTime(t.State.Stopped,e);var i=this._state.getBefore(e),s=e;null!==i&&(s=i.time),this._rescheduleEvents(s)}return this},t.Event.prototype.cancel=function(e){return e=this.defaultArg(e,-1/0),e=this.toTicks(e),this._state.forEachFrom(e,function(e){t.Transport.clear(e.id)}),this._state.cancel(e),this},t.Event.prototype._tick=function(e){if(!this.mute&&this._state.getValueAtTime(t.Transport.ticks)===t.State.Started){if(this.probability<1&&Math.random()>this.probability)return;if(this.humanize){var i=.02;this.isBoolean(this.humanize)||(i=this.toSeconds(this.humanize)),e+=(2*Math.random()-1)*i}this.callback(e,this.value)}},t.Event.prototype._getLoopDuration=function(){return Math.round((this._loopEnd-this._loopStart)/this._playbackRate)},Object.defineProperty(t.Event.prototype,"loop",{get:function(){return this._loop},set:function(t){this._loop=t,this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,"loopEnd",{get:function(){return t.TransportTime(this._loopEnd,"i").toNotation()},set:function(t){this._loopEnd=this.toTicks(t),this._loop&&this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,"loopStart",{get:function(){return t.TransportTime(this._loopStart,"i").toNotation()},set:function(t){this._loopStart=this.toTicks(t),this._loop&&this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,"progress",{get:function(){if(this._loop){var e=t.Transport.ticks,i=this._state.get(e);if(null!==i&&i.state===t.State.Started){var s=this._getLoopDuration();return(e-i.time)%s/s}return 0}return 0}}),t.Event.prototype.dispose=function(){this.cancel(),this._state.dispose(),this._state=null,this.callback=null,this.value=null},t.Event}),t(function(t){return t.Loop=function(){var e=this.optionsObject(arguments,["callback","interval"],t.Loop.defaults);this._event=new t.Event({callback:this._tick.bind(this),loop:!0,loopEnd:e.interval,playbackRate:e.playbackRate,probability:e.probability}),this.callback=e.callback,this.iterations=e.iterations},t.extend(t.Loop),t.Loop.defaults={interval:"4n",callback:t.noOp,playbackRate:1,iterations:1/0,probability:!0,mute:!1},t.Loop.prototype.start=function(t){return this._event.start(t),this},t.Loop.prototype.stop=function(t){return this._event.stop(t),this},t.Loop.prototype.cancel=function(t){return this._event.cancel(t),this},t.Loop.prototype._tick=function(t){this.callback(t)},Object.defineProperty(t.Loop.prototype,"state",{get:function(){return this._event.state}}),Object.defineProperty(t.Loop.prototype,"progress",{get:function(){return this._event.progress}}),Object.defineProperty(t.Loop.prototype,"interval",{get:function(){return this._event.loopEnd},set:function(t){this._event.loopEnd=t}}),Object.defineProperty(t.Loop.prototype,"playbackRate",{get:function(){return this._event.playbackRate},set:function(t){this._event.playbackRate=t}}),Object.defineProperty(t.Loop.prototype,"humanize",{get:function(){return this._event.humanize},set:function(t){this._event.humanize=t}}),Object.defineProperty(t.Loop.prototype,"probability",{get:function(){return this._event.probability},set:function(t){this._event.probability=t}}),Object.defineProperty(t.Loop.prototype,"mute",{get:function(){return this._event.mute},set:function(t){this._event.mute=t}}),Object.defineProperty(t.Loop.prototype,"iterations",{get:function(){return!0===this._event.loop?1/0:this._event.loop},set:function(t){this._event.loop=t===1/0||t}}),t.Loop.prototype.dispose=function(){this._event.dispose(),this._event=null,this.callback=null},t.Loop}),t(function(t){return t.Part=function(){var e=this.optionsObject(arguments,["callback","events"],t.Part.defaults);this._loop=e.loop,this._loopStart=this.toTicks(e.loopStart),this._loopEnd=this.toTicks(e.loopEnd),this._playbackRate=e.playbackRate,this._probability=e.probability,this._humanize=e.humanize,this._startOffset=0,this._state=new t.TimelineState(t.State.Stopped),this._events=[],this.callback=e.callback,this.mute=e.mute;var i=this.defaultArg(e.events,[]);if(!this.isUndef(e.events))for(var s=0;s<i.length;s++)Array.isArray(i[s])?this.add(i[s][0],i[s][1]):this.add(i[s])},t.extend(t.Part,t.Event),t.Part.defaults={callback:t.noOp,loop:!1,loopEnd:"1m",loopStart:0,playbackRate:1,probability:1,humanize:!1,mute:!1},t.Part.prototype.start=function(e,i){var s=this.toTicks(e);return this._state.getValueAtTime(s)!==t.State.Started&&(i=this._loop?this.defaultArg(i,this._loopStart):this.defaultArg(i,0),i=this.toTicks(i),this._state.add({state:t.State.Started,time:s,offset:i}),this._forEach(function(t){this._startNote(t,s,i)})),this},t.Part.prototype._startNote=function(e,i,s){i-=s,this._loop?e.startOffset>=this._loopStart&&e.startOffset<this._loopEnd?(e.startOffset<s&&(i+=this._getLoopDuration()),e.start(t.TransportTime(i,"i"))):e.startOffset<this._loopStart&&e.startOffset>=s&&(e.loop=!1,e.start(t.TransportTime(i,"i"))):e.startOffset>=s&&e.start(t.TransportTime(i,"i"))},Object.defineProperty(t.Part.prototype,"startOffset",{get:function(){return this._startOffset},set:function(t){this._startOffset=t,this._forEach(function(t){t.startOffset+=this._startOffset})}}),t.Part.prototype.stop=function(e){var i=this.toTicks(e);return this._state.cancel(i),this._state.setStateAtTime(t.State.Stopped,i),this._forEach(function(t){t.stop(e)}),this},t.Part.prototype.at=function(e,i){e=t.TransportTime(e);for(var s=t.Time(1,"i").toSeconds(),n=0;n<this._events.length;n++){var o=this._events[n];if(Math.abs(e.toTicks()-o.startOffset)<s)return this.isUndef(i)||(o.value=i),o}return this.isUndef(i)?null:(this.add(e,i),this._events[this._events.length-1])},t.Part.prototype.add=function(e,i){e.hasOwnProperty("time")&&(i=e,e=i.time),e=this.toTicks(e);var s;return i instanceof t.Event?(s=i,s.callback=this._tick.bind(this)):s=new t.Event({callback:this._tick.bind(this),value:i}),s.startOffset=e,s.set({loopEnd:this.loopEnd,loopStart:this.loopStart,loop:this.loop,humanize:this.humanize,playbackRate:this.playbackRate,probability:this.probability}),this._events.push(s),this._restartEvent(s),this},t.Part.prototype._restartEvent=function(e){this._state.forEach(function(i){i.state===t.State.Started?this._startNote(e,i.time,i.offset):e.stop(t.TransportTime(i.time,"i"))}.bind(this))},t.Part.prototype.remove=function(e,i){e.hasOwnProperty("time")&&(i=e,e=i.time),e=this.toTicks(e);for(var s=this._events.length-1;s>=0;s--){var n=this._events[s];n instanceof t.Part?n.remove(e,i):n.startOffset===e&&(this.isUndef(i)||!this.isUndef(i)&&n.value===i)&&(this._events.splice(s,1),n.dispose())}return this},t.Part.prototype.removeAll=function(){return this._forEach(function(t){t.dispose()}),this._events=[],this},t.Part.prototype.cancel=function(t){return t=this.toTicks(t),this._forEach(function(e){e.cancel(t)}),this._state.cancel(t),this},t.Part.prototype._forEach=function(e,i){i=this.defaultArg(i,this);for(var s=this._events.length-1;s>=0;s--){var n=this._events[s];n instanceof t.Part?n._forEach(e,i):e.call(i,n)}return this},t.Part.prototype._setAll=function(t,e){this._forEach(function(i){i[t]=e})},t.Part.prototype._tick=function(t,e){this.mute||this.callback(t,e)},t.Part.prototype._testLoopBoundries=function(e){e.startOffset<this._loopStart||e.startOffset>=this._loopEnd?e.cancel(0):e.state===t.State.Stopped&&this._restartEvent(e)},Object.defineProperty(t.Part.prototype,"probability",{get:function(){return this._probability},set:function(t){this._probability=t,this._setAll("probability",t)}}),Object.defineProperty(t.Part.prototype,"humanize",{get:function(){return this._humanize},set:function(t){this._humanize=t,this._setAll("humanize",t)}}),Object.defineProperty(t.Part.prototype,"loop",{get:function(){return this._loop},set:function(t){this._loop=t,this._forEach(function(e){e._loopStart=this._loopStart,e._loopEnd=this._loopEnd,e.loop=t,this._testLoopBoundries(e)})}}),Object.defineProperty(t.Part.prototype,"loopEnd",{get:function(){return t.TransportTime(this._loopEnd,"i").toNotation()},set:function(t){this._loopEnd=this.toTicks(t),this._loop&&this._forEach(function(e){e.loopEnd=t,this._testLoopBoundries(e)})}}),Object.defineProperty(t.Part.prototype,"loopStart",{get:function(){return t.TransportTime(this._loopStart,"i").toNotation()},set:function(t){this._loopStart=this.toTicks(t),this._loop&&this._forEach(function(t){t.loopStart=this.loopStart,this._testLoopBoundries(t)})}}),Object.defineProperty(t.Part.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._setAll("playbackRate",t)}}),Object.defineProperty(t.Part.prototype,"length",{get:function(){return this._events.length}}),t.Part.prototype.dispose=function(){return this.removeAll(),this._state.dispose(),this._state=null,this.callback=null,this._events=null,this},t.Part}),t(function(t){return t.Pattern=function(){var e=this.optionsObject(arguments,["callback","values","pattern"],t.Pattern.defaults);t.Loop.call(this,e),this._pattern=new t.CtrlPattern({values:e.values,type:e.pattern,index:e.index})},t.extend(t.Pattern,t.Loop),t.Pattern.defaults={pattern:t.CtrlPattern.Type.Up,values:[]},t.Pattern.prototype._tick=function(t){this.callback(t,this._pattern.value),this._pattern.next()},Object.defineProperty(t.Pattern.prototype,"index",{get:function(){return this._pattern.index},set:function(t){this._pattern.index=t}}),Object.defineProperty(t.Pattern.prototype,"values",{get:function(){return this._pattern.values},set:function(t){this._pattern.values=t}}),Object.defineProperty(t.Pattern.prototype,"value",{get:function(){return this._pattern.value}}),Object.defineProperty(t.Pattern.prototype,"pattern",{get:function(){return this._pattern.type},set:function(t){this._pattern.type=t}}),t.Pattern.prototype.dispose=function(){t.Loop.prototype.dispose.call(this),this._pattern.dispose(),this._pattern=null},t.Pattern}),t(function(t){return t.Sequence=function(){var e=this.optionsObject(arguments,["callback","events","subdivision"],t.Sequence.defaults),i=e.events;if(delete e.events,t.Part.call(this,e),this._subdivision=this.toTicks(e.subdivision),this.isUndef(e.loopEnd)&&!this.isUndef(i)&&(this._loopEnd=i.length*this._subdivision),this._loop=!0,!this.isUndef(i))for(var s=0;s<i.length;s++)this.add(s,i[s])},t.extend(t.Sequence,t.Part),t.Sequence.defaults={subdivision:"4n"},Object.defineProperty(t.Sequence.prototype,"subdivision",{get:function(){return t.Time(this._subdivision,"i").toNotation()}}),t.Sequence.prototype.at=function(e,i){return this.isArray(i)&&this.remove(e),t.Part.prototype.at.call(this,this._indexTime(e),i)},t.Sequence.prototype.add=function(e,i){if(null===i)return this;if(this.isArray(i)){var s=Math.round(this._subdivision/i.length);i=new t.Sequence(this._tick.bind(this),i,t.Time(s,"i"))}return t.Part.prototype.add.call(this,this._indexTime(e),i),this},t.Sequence.prototype.remove=function(e,i){return t.Part.prototype.remove.call(this,this._indexTime(e),i),this},t.Sequence.prototype._indexTime=function(e){return e instanceof t.TransportTime?e:t.TransportTime(e*this._subdivision+this.startOffset,"i")},t.Sequence.prototype.dispose=function(){return t.Part.prototype.dispose.call(this),this},t.Sequence}),t(function(t){return t.PulseOscillator=function(){var e=this.optionsObject(arguments,["frequency","width"],t.Oscillator.defaults);t.Source.call(this,e),this.width=new t.Signal(e.width,t.Type.NormalRange),this._widthGate=new t.Gain,this._sawtooth=new t.Oscillator({frequency:e.frequency,detune:e.detune,type:"sawtooth",phase:e.phase}),this.frequency=this._sawtooth.frequency,this.detune=this._sawtooth.detune,this._thresh=new t.WaveShaper(function(t){return t<0?-1:1}),this._sawtooth.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),this._readOnly(["width","frequency","detune"])},t.extend(t.PulseOscillator,t.Oscillator),t.PulseOscillator.defaults={frequency:440,detune:0,phase:0,width:.2},t.PulseOscillator.prototype._start=function(t){t=this.toSeconds(t),this._sawtooth.start(t),this._widthGate.gain.setValueAtTime(1,t)},t.PulseOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._sawtooth.stop(t),this._widthGate.gain.setValueAtTime(0,t)},Object.defineProperty(t.PulseOscillator.prototype,"phase",{get:function(){return this._sawtooth.phase},set:function(t){this._sawtooth.phase=t}}),Object.defineProperty(t.PulseOscillator.prototype,"type",{get:function(){return"pulse"}}),Object.defineProperty(t.PulseOscillator.prototype,"partials",{get:function(){return[]}}),t.PulseOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._sawtooth.dispose(),this._sawtooth=null,this._writable(["width","frequency","detune"]),this.width.dispose(),this.width=null,this._widthGate.dispose(),this._widthGate=null,this._thresh.dispose(),this._thresh=null,this.frequency=null,this.detune=null,this},t.PulseOscillator}),t(function(t){return t.PWMOscillator=function(){var e=this.optionsObject(arguments,["frequency","modulationFrequency"],t.PWMOscillator.defaults);t.Source.call(this,e),this._pulse=new t.PulseOscillator(e.modulationFrequency),this._pulse._sawtooth.type="sine",this._modulator=new t.Oscillator({frequency:e.frequency,detune:e.detune,phase:e.phase}),this._scale=new t.Multiply(2),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this.modulationFrequency=this._pulse.frequency,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),this._readOnly(["modulationFrequency","frequency","detune"])},t.extend(t.PWMOscillator,t.Oscillator),t.PWMOscillator.defaults={frequency:440,detune:0,phase:0,modulationFrequency:.4},t.PWMOscillator.prototype._start=function(t){t=this.toSeconds(t),this._modulator.start(t),this._pulse.start(t)},t.PWMOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._modulator.stop(t),this._pulse.stop(t)},Object.defineProperty(t.PWMOscillator.prototype,"type",{get:function(){return"pwm"}}),Object.defineProperty(t.PWMOscillator.prototype,"partials",{get:function(){return[]}}),Object.defineProperty(t.PWMOscillator.prototype,"phase",{get:function(){return this._modulator.phase},set:function(t){this._modulator.phase=t}}),t.PWMOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._pulse.dispose(),this._pulse=null,this._scale.dispose(),this._scale=null,this._modulator.dispose(),this._modulator=null,this._writable(["modulationFrequency","frequency","detune"]),this.frequency=null,this.detune=null,this.modulationFrequency=null,this},t.PWMOscillator}),t(function(t){return t.FMOscillator=function(){var e=this.optionsObject(arguments,["frequency","type","modulationType"],t.FMOscillator.defaults);t.Source.call(this,e),this._carrier=new t.Oscillator(e.frequency,e.type),this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=this._carrier.detune,this.detune.value=e.detune,this.modulationIndex=new t.Multiply(e.modulationIndex),this.modulationIndex.units=t.Type.Positive,this._modulator=new t.Oscillator(e.frequency,e.modulationType),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this._modulationNode=new t.Gain(0),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),this.phase=e.phase,this._readOnly(["modulationIndex","frequency","detune","harmonicity"])},t.extend(t.FMOscillator,t.Oscillator),t.FMOscillator.defaults={frequency:440,detune:0,phase:0,modulationIndex:2,modulationType:"square",harmonicity:1},t.FMOscillator.prototype._start=function(t){t=this.toSeconds(t),this._modulator.start(t),this._carrier.start(t)},t.FMOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._modulator.stop(t),this._carrier.stop(t)},Object.defineProperty(t.FMOscillator.prototype,"type",{get:function(){return this._carrier.type},set:function(t){this._carrier.type=t}}),Object.defineProperty(t.FMOscillator.prototype,"modulationType",{get:function(){return this._modulator.type},set:function(t){this._modulator.type=t}}),Object.defineProperty(t.FMOscillator.prototype,"phase",{get:function(){return this._carrier.phase},set:function(t){this._carrier.phase=t,this._modulator.phase=t}}),Object.defineProperty(t.FMOscillator.prototype,"partials",{get:function(){return this._carrier.partials},set:function(t){this._carrier.partials=t}}),t.FMOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable(["modulationIndex","frequency","detune","harmonicity"]),this.frequency.dispose(),this.frequency=null,this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this._modulationNode.dispose(),this._modulationNode=null,this.modulationIndex.dispose(),this.modulationIndex=null,this},t.FMOscillator}),t(function(t){return t.AMOscillator=function(){var e=this.optionsObject(arguments,["frequency","type","modulationType"],t.AMOscillator.defaults);t.Source.call(this,e),this._carrier=new t.Oscillator(e.frequency,e.type),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this.detune.value=e.detune,this._modulator=new t.Oscillator(e.frequency,e.modulationType),this._modulationScale=new t.AudioToGain,this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this._modulationNode=new t.Gain(0),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.connect(this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),this.phase=e.phase,this._readOnly(["frequency","detune","harmonicity"])},t.extend(t.AMOscillator,t.Oscillator),t.AMOscillator.defaults={frequency:440,detune:0,phase:0,modulationType:"square",harmonicity:1},t.AMOscillator.prototype._start=function(t){t=this.toSeconds(t),this._modulator.start(t),this._carrier.start(t)},t.AMOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._modulator.stop(t),this._carrier.stop(t)},Object.defineProperty(t.AMOscillator.prototype,"type",{get:function(){return this._carrier.type},set:function(t){this._carrier.type=t}}),Object.defineProperty(t.AMOscillator.prototype,"modulationType",{get:function(){return this._modulator.type},set:function(t){this._modulator.type=t}}),Object.defineProperty(t.AMOscillator.prototype,"phase",{get:function(){return this._carrier.phase},set:function(t){this._carrier.phase=t,this._modulator.phase=t}}),Object.defineProperty(t.AMOscillator.prototype,"partials",{get:function(){return this._carrier.partials},set:function(t){this._carrier.partials=t}}),t.AMOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable(["frequency","detune","harmonicity"]),this.frequency=null,this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this._modulationNode.dispose(),this._modulationNode=null,this._modulationScale.dispose(),this._modulationScale=null,this},t.AMOscillator}),t(function(t){return t.FatOscillator=function(){var e=this.optionsObject(arguments,["frequency","type","spread"],t.FatOscillator.defaults);t.Source.call(this,e),this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this._oscillators=[],this._spread=e.spread,this._type=e.type,this._phase=e.phase,this._partials=this.defaultArg(e.partials,[]),this.count=e.count,this._readOnly(["frequency","detune"])},t.extend(t.FatOscillator,t.Oscillator),t.FatOscillator.defaults={frequency:440,detune:0,phase:0,spread:20,count:3,type:"sawtooth"},t.FatOscillator.prototype._start=function(t){t=this.toSeconds(t),this._forEach(function(e){e.start(t)})},t.FatOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._forEach(function(e){e.stop(t)})},t.FatOscillator.prototype._forEach=function(t){for(var e=0;e<this._oscillators.length;e++)t.call(this,this._oscillators[e],e)},Object.defineProperty(t.FatOscillator.prototype,"type",{get:function(){return this._type},set:function(t){this._type=t,this._forEach(function(e){e.type=t})}}),Object.defineProperty(t.FatOscillator.prototype,"spread",{get:function(){return this._spread},set:function(t){if(this._spread=t,this._oscillators.length>1){var e=-t/2,i=t/(this._oscillators.length-1);this._forEach(function(t,s){t.detune.value=e+i*s})}}}),Object.defineProperty(t.FatOscillator.prototype,"count",{get:function(){return this._oscillators.length},set:function(e){if(e=Math.max(e,1),this._oscillators.length!==e){this._forEach(function(t){t.dispose()}),this._oscillators=[];for(var i=0;i<e;i++){var s=new t.Oscillator;this.type===t.Oscillator.Type.Custom?s.partials=this._partials:s.type=this._type,s.phase=this._phase,s.volume.value=-6-e,this.frequency.connect(s.frequency),this.detune.connect(s.detune),s.connect(this.output),this._oscillators[i]=s}this.spread=this._spread,this.state===t.State.Started&&this._forEach(function(t){t.start()})}}}),Object.defineProperty(t.FatOscillator.prototype,"phase",{get:function(){return this._phase},set:function(t){this._phase=t,this._forEach(function(e){e.phase=t})}}),Object.defineProperty(t.FatOscillator.prototype,"partials",{get:function(){return this._partials},set:function(e){this._partials=e,this._type=t.Oscillator.Type.Custom,this._forEach(function(t){t.partials=e})}}),t.FatOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable(["frequency","detune"]),this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this._forEach(function(t){t.dispose()}),this._oscillators=null,this._partials=null,this},t.FatOscillator}),t(function(t){t.OmniOscillator=function(){var e=this.optionsObject(arguments,["frequency","type"],t.OmniOscillator.defaults);t.Source.call(this,e),this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this._sourceType=void 0,this._oscillator=null,this.type=e.type,this._readOnly(["frequency","detune"]),this.set(e)},t.extend(t.OmniOscillator,t.Oscillator),t.OmniOscillator.defaults={frequency:440,detune:0,type:"sine",phase:0};var e={Pulse:"PulseOscillator",PWM:"PWMOscillator",Osc:"Oscillator",FM:"FMOscillator",AM:"AMOscillator",Fat:"FatOscillator"};return t.OmniOscillator.prototype._start=function(t){this._oscillator.start(t)},t.OmniOscillator.prototype._stop=function(t){this._oscillator.stop(t)},Object.defineProperty(t.OmniOscillator.prototype,"type",{get:function(){var t="";return this._sourceType===e.FM?t="fm":this._sourceType===e.AM?t="am":this._sourceType===e.Fat&&(t="fat"),t+this._oscillator.type},set:function(t){"fm"===t.substr(0,2)?(this._createNewOscillator(e.FM),this._oscillator.type=t.substr(2)):"am"===t.substr(0,2)?(this._createNewOscillator(e.AM),this._oscillator.type=t.substr(2)):"fat"===t.substr(0,3)?(this._createNewOscillator(e.Fat),this._oscillator.type=t.substr(3)):"pwm"===t?this._createNewOscillator(e.PWM):"pulse"===t?this._createNewOscillator(e.Pulse):(this._createNewOscillator(e.Osc),this._oscillator.type=t)}}),Object.defineProperty(t.OmniOscillator.prototype,"partials",{get:function(){return this._oscillator.partials},set:function(t){this._oscillator.partials=t}}),t.OmniOscillator.prototype.set=function(e,i){return"type"===e?this.type=i:this.isObject(e)&&e.hasOwnProperty("type")&&(this.type=e.type),t.prototype.set.apply(this,arguments),this},t.OmniOscillator.prototype._createNewOscillator=function(e){if(e!==this._sourceType){this._sourceType=e;var i=t[e],s=this.now()+this.blockTime;if(null!==this._oscillator){var n=this._oscillator;n.stop(s),setTimeout(function(){n.dispose(),n=null},1e3*this.blockTime)}this._oscillator=new i,this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this.state===t.State.Started&&this._oscillator.start(s)}},Object.defineProperty(t.OmniOscillator.prototype,"phase",{get:function(){return this._oscillator.phase},set:function(t){this._oscillator.phase=t}}),Object.defineProperty(t.OmniOscillator.prototype,"width",{get:function(){if(this._sourceType===e.Pulse)return this._oscillator.width}}),Object.defineProperty(t.OmniOscillator.prototype,"count",{get:function(){if(this._sourceType===e.Fat)return this._oscillator.count},set:function(t){this._sourceType===e.Fat&&(this._oscillator.count=t)}}),Object.defineProperty(t.OmniOscillator.prototype,"spread",{get:function(){if(this._sourceType===e.Fat)return this._oscillator.spread},set:function(t){this._sourceType===e.Fat&&(this._oscillator.spread=t)}}),Object.defineProperty(t.OmniOscillator.prototype,"modulationType",{get:function(){if(this._sourceType===e.FM||this._sourceType===e.AM)return this._oscillator.modulationType},set:function(t){this._sourceType!==e.FM&&this._sourceType!==e.AM||(this._oscillator.modulationType=t)}}),Object.defineProperty(t.OmniOscillator.prototype,"modulationIndex",{get:function(){if(this._sourceType===e.FM)return this._oscillator.modulationIndex}}),Object.defineProperty(t.OmniOscillator.prototype,"harmonicity",{get:function(){if(this._sourceType===e.FM||this._sourceType===e.AM)return this._oscillator.harmonicity}}),Object.defineProperty(t.OmniOscillator.prototype,"modulationFrequency",{get:function(){if(this._sourceType===e.PWM)return this._oscillator.modulationFrequency}}),t.OmniOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable(["frequency","detune"]),this.detune.dispose(),this.detune=null,this.frequency.dispose(),this.frequency=null,this._oscillator.dispose(),this._oscillator=null,this._sourceType=null,this},t.OmniOscillator}),t(function(t){return t.Instrument=function(e){e=this.defaultArg(e,t.Instrument.defaults),this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly("volume")},t.extend(t.Instrument),t.Instrument.defaults={volume:0},t.Instrument.prototype.triggerAttack=t.noOp,t.Instrument.prototype.triggerRelease=t.noOp,t.Instrument.prototype.triggerAttackRelease=function(t,e,i,s){return i=this.isUndef(i)?this.now()+this.blockTime:this.toSeconds(i),e=this.toSeconds(e),this.triggerAttack(t,i,s),this.triggerRelease(i+e),this},t.Instrument.prototype.dispose=function(){return t.prototype.dispose.call(this),this._volume.dispose(),this._volume=null,this._writable(["volume"]),this.volume=null,this},t.Instrument}),t(function(t){return t.Monophonic=function(e){e=this.defaultArg(e,t.Monophonic.defaults),t.Instrument.call(this,e),this.portamento=e.portamento},t.extend(t.Monophonic,t.Instrument),t.Monophonic.defaults={portamento:0},t.Monophonic.prototype.triggerAttack=function(t,e,i){return e=this.isUndef(e)?this.now()+this.blockTime:this.toSeconds(e),this._triggerEnvelopeAttack(e,i),this.setNote(t,e),this},t.Monophonic.prototype.triggerRelease=function(t){return t=this.isUndef(t)?this.now()+this.blockTime:this.toSeconds(t),this._triggerEnvelopeRelease(t),this},t.Monophonic.prototype._triggerEnvelopeAttack=function(){},t.Monophonic.prototype._triggerEnvelopeRelease=function(){},t.Monophonic.prototype.setNote=function(t,e){if(e=this.toSeconds(e),this.portamento>0){var i=this.frequency.value;this.frequency.setValueAtTime(i,e);var s=this.toSeconds(this.portamento);this.frequency.exponentialRampToValueAtTime(t,e+s)}else this.frequency.setValueAtTime(t,e);return this},t.Monophonic}),t(function(t){return t.Synth=function(e){e=this.defaultArg(e,t.Synth.defaults),t.Monophonic.call(this,e),this.oscillator=new t.OmniOscillator(e.oscillator),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new t.AmplitudeEnvelope(e.envelope),this.oscillator.chain(this.envelope,this.output),this.oscillator.start(),this._readOnly(["oscillator","frequency","detune","envelope"])},t.extend(t.Synth,t.Monophonic),t.Synth.defaults={oscillator:{type:"triangle"},envelope:{attack:.005,decay:.1,sustain:.3,release:1}},t.Synth.prototype._triggerEnvelopeAttack=function(t,e){return this.envelope.triggerAttack(t,e),this},t.Synth.prototype._triggerEnvelopeRelease=function(t){return this.envelope.triggerRelease(t),this},t.Synth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable(["oscillator","frequency","detune","envelope"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this.frequency=null,this.detune=null,this},t.Synth}),t(function(t){return t.AMSynth=function(e){e=this.defaultArg(e,t.AMSynth.defaults),t.Monophonic.call(this,e),this._carrier=new t.Synth,this._carrier.volume.value=-10,this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope.set(e.envelope),this._modulator=new t.Synth,this._modulator.volume.value=-10,this.modulation=this._modulator.oscillator.set(e.modulation),this.modulationEnvelope=this._modulator.envelope.set(e.modulationEnvelope),this.frequency=new t.Signal(440,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this._modulationScale=new t.AudioToGain,this._modulationNode=new t.Gain,this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),this._readOnly(["frequency","harmonicity","oscillator","envelope","modulation","modulationEnvelope","detune"])},t.extend(t.AMSynth,t.Monophonic),t.AMSynth.defaults={harmonicity:3,detune:0,oscillator:{type:"sine"},envelope:{attack:.01,decay:.01,sustain:1,release:.5},modulation:{type:"square"},modulationEnvelope:{attack:.5,decay:0,sustain:1,release:.5}},t.AMSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.envelope.triggerAttack(t,e),this.modulationEnvelope.triggerAttack(t,e),this},t.AMSynth.prototype._triggerEnvelopeRelease=function(t){return this.envelope.triggerRelease(t),this.modulationEnvelope.triggerRelease(t),this},t.AMSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable(["frequency","harmonicity","oscillator","envelope","modulation","modulationEnvelope","detune"]),this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._modulationScale.dispose(),this._modulationScale=null,this._modulationNode.dispose(),this._modulationNode=null,this.oscillator=null,this.envelope=null,this.modulationEnvelope=null,this.modulation=null,this},t.AMSynth}),t(function(t){return t.MonoSynth=function(e){e=this.defaultArg(e,t.MonoSynth.defaults),t.Monophonic.call(this,e),this.oscillator=new t.OmniOscillator(e.oscillator),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.filter=new t.Filter(e.filter),this.filterEnvelope=new t.FrequencyEnvelope(e.filterEnvelope),this.envelope=new t.AmplitudeEnvelope(e.envelope),this.oscillator.chain(this.filter,this.envelope,this.output),this.oscillator.start(),this.filterEnvelope.connect(this.filter.frequency),this._readOnly(["oscillator","frequency","detune","filter","filterEnvelope","envelope"])},t.extend(t.MonoSynth,t.Monophonic),t.MonoSynth.defaults={frequency:"C4",detune:0,oscillator:{type:"square"},filter:{Q:6,type:"lowpass",rolloff:-24},envelope:{attack:.005,decay:.1,sustain:.9,release:1},filterEnvelope:{attack:.06,decay:.2,sustain:.5,release:2,baseFrequency:200,octaves:7,exponent:2}},t.MonoSynth.prototype._triggerEnvelopeAttack=function(t,e){return this.envelope.triggerAttack(t,e),this.filterEnvelope.triggerAttack(t),this},t.MonoSynth.prototype._triggerEnvelopeRelease=function(t){return this.envelope.triggerRelease(t),this.filterEnvelope.triggerRelease(t),this},t.MonoSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable(["oscillator","frequency","detune","filter","filterEnvelope","envelope"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this.filterEnvelope.dispose(),this.filterEnvelope=null,this.filter.dispose(),this.filter=null,this.frequency=null,this.detune=null,this},t.MonoSynth}),t(function(t){return t.DuoSynth=function(e){e=this.defaultArg(e,t.DuoSynth.defaults),t.Monophonic.call(this,e),this.voice0=new t.MonoSynth(e.voice0),this.voice0.volume.value=-10,this.voice1=new t.MonoSynth(e.voice1),this.voice1.volume.value=-10,this._vibrato=new t.LFO(e.vibratoRate,-50,50),this._vibrato.start(),this.vibratoRate=this._vibrato.frequency,this._vibratoGain=new t.Gain(e.vibratoAmount,t.Type.Positive),this.vibratoAmount=this._vibratoGain.gain,this.frequency=new t.Signal(440,t.Type.Frequency),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this.frequency.connect(this.voice0.frequency),this.frequency.chain(this.harmonicity,this.voice1.frequency),this._vibrato.connect(this._vibratoGain),this._vibratoGain.fan(this.voice0.detune,this.voice1.detune),this.voice0.connect(this.output),this.voice1.connect(this.output),this._readOnly(["voice0","voice1","frequency","vibratoAmount","vibratoRate"])},t.extend(t.DuoSynth,t.Monophonic),t.DuoSynth.defaults={vibratoAmount:.5,vibratoRate:5,harmonicity:1.5,voice0:{volume:-10,portamento:0,oscillator:{type:"sine"},filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}},voice1:{volume:-10,portamento:0,oscillator:{type:"sine"},filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}}},t.DuoSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.voice0.envelope.triggerAttack(t,e),this.voice1.envelope.triggerAttack(t,e),this.voice0.filterEnvelope.triggerAttack(t),this.voice1.filterEnvelope.triggerAttack(t),this},t.DuoSynth.prototype._triggerEnvelopeRelease=function(t){return this.voice0.triggerRelease(t),this.voice1.triggerRelease(t),this},t.DuoSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable(["voice0","voice1","frequency","vibratoAmount","vibratoRate"]),this.voice0.dispose(),this.voice0=null,this.voice1.dispose(),this.voice1=null,this.frequency.dispose(),this.frequency=null,this._vibratoGain.dispose(),this._vibratoGain=null,this._vibrato=null,this.harmonicity.dispose(),this.harmonicity=null,this.vibratoAmount.dispose(),this.vibratoAmount=null,this.vibratoRate=null,this},t.DuoSynth}),t(function(t){return t.FMSynth=function(e){e=this.defaultArg(e,t.FMSynth.defaults),t.Monophonic.call(this,e),this._carrier=new t.Synth(e.carrier),this._carrier.volume.value=-10,this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope.set(e.envelope),this._modulator=new t.Synth(e.modulator),this._modulator.volume.value=-10,this.modulation=this._modulator.oscillator.set(e.modulation),this.modulationEnvelope=this._modulator.envelope.set(e.modulationEnvelope),this.frequency=new t.Signal(440,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this.modulationIndex=new t.Multiply(e.modulationIndex),this.modulationIndex.units=t.Type.Positive,this._modulationNode=new t.Gain(0),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this._readOnly(["frequency","harmonicity","modulationIndex","oscillator","envelope","modulation","modulationEnvelope","detune"])},t.extend(t.FMSynth,t.Monophonic),t.FMSynth.defaults={harmonicity:3,modulationIndex:10,detune:0,oscillator:{type:"sine"},envelope:{attack:.01,decay:.01,sustain:1,release:.5},modulation:{type:"square"},modulationEnvelope:{attack:.5,decay:0,sustain:1,release:.5}},t.FMSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.envelope.triggerAttack(t,e),this.modulationEnvelope.triggerAttack(t),this},t.FMSynth.prototype._triggerEnvelopeRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this.modulationEnvelope.triggerRelease(t),this},t.FMSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable(["frequency","harmonicity","modulationIndex","oscillator","envelope","modulation","modulationEnvelope","detune"]),this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this.modulationIndex.dispose(),this.modulationIndex=null,this.harmonicity.dispose(),this.harmonicity=null,this._modulationNode.dispose(),this._modulationNode=null,this.oscillator=null,this.envelope=null,this.modulationEnvelope=null,this.modulation=null,this},t.FMSynth}),t(function(t){return t.MembraneSynth=function(e){e=this.defaultArg(e,t.MembraneSynth.defaults),t.Instrument.call(this,e),this.oscillator=new t.OmniOscillator(e.oscillator).start(),this.envelope=new t.AmplitudeEnvelope(e.envelope),this.octaves=e.octaves,this.pitchDecay=e.pitchDecay,this.oscillator.chain(this.envelope,this.output),this._readOnly(["oscillator","envelope"])},t.extend(t.MembraneSynth,t.Instrument),t.MembraneSynth.defaults={pitchDecay:.05,octaves:10,oscillator:{type:"sine"},envelope:{attack:.001,decay:.4,sustain:.01,release:1.4,attackCurve:"exponential"}},t.MembraneSynth.prototype.triggerAttack=function(t,e,i){e=this.toSeconds(e),t=this.toFrequency(t);var s=t*this.octaves;return this.oscillator.frequency.setValueAtTime(s,e),this.oscillator.frequency.exponentialRampToValueAtTime(t,e+this.toSeconds(this.pitchDecay)),this.envelope.triggerAttack(e,i),this},t.MembraneSynth.prototype.triggerRelease=function(t){return this.envelope.triggerRelease(t),this},t.MembraneSynth.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._writable(["oscillator","envelope"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this},t.MembraneSynth}),t(function(t){var e=[1,1.483,1.932,2.546,2.63,3.897];return t.MetalSynth=function(i){i=this.defaultArg(i,t.MetalSynth.defaults),t.Instrument.call(this,i),this.frequency=new t.Signal(i.frequency,t.Type.Frequency),this._oscillators=[],this._freqMultipliers=[],this._amplitue=new t.Gain(0).connect(this.output),this._highpass=new t.Filter({type:"highpass",Q:-3.0102999566398125}).connect(this._amplitue),this._octaves=i.octaves,this._filterFreqScaler=new t.Scale(i.resonance,7e3),this.envelope=new t.Envelope({attack:i.envelope.attack,attackCurve:"linear",decay:i.envelope.decay,sustain:0,release:i.envelope.release}).chain(this._filterFreqScaler,this._highpass.frequency),this.envelope.connect(this._amplitue.gain);for(var s=0;s<e.length;s++){var n=new t.FMOscillator({type:"square",modulationType:"square",harmonicity:i.harmonicity,modulationIndex:i.modulationIndex});n.connect(this._highpass).start(0),this._oscillators[s]=n;var o=new t.Multiply(e[s]);this._freqMultipliers[s]=o,this.frequency.chain(o,n.frequency)}this.octaves=i.octaves},t.extend(t.MetalSynth,t.Instrument),t.MetalSynth.defaults={frequency:200,envelope:{attack:.001,decay:1.4,release:.2},harmonicity:5.1,modulationIndex:32,resonance:4e3,octaves:1.5},t.MetalSynth.prototype.triggerAttack=function(t,e){return t=this.toSeconds(t),e=this.defaultArg(e,1),this.envelope.triggerAttack(t,e),this},t.MetalSynth.prototype.triggerRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this},t.MetalSynth.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),t=this.toSeconds(t),this.triggerAttack(e,i),this.triggerRelease(e+t),this},Object.defineProperty(t.MetalSynth.prototype,"modulationIndex",{get:function(){return this._oscillators[0].modulationIndex.value},set:function(t){for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].modulationIndex.value=t}}),Object.defineProperty(t.MetalSynth.prototype,"harmonicity",{get:function(){return this._oscillators[0].harmonicity.value},set:function(t){for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].harmonicity.value=t}}),Object.defineProperty(t.MetalSynth.prototype,"resonance",{get:function(){return this._filterFreqScaler.min},set:function(t){this._filterFreqScaler.min=t,this.octaves=this._octaves}}),Object.defineProperty(t.MetalSynth.prototype,"octaves",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._filterFreqScaler.max=this._filterFreqScaler.min*Math.pow(2,t)}}),t.MetalSynth.prototype.dispose=function(){t.Instrument.prototype.dispose.call(this);for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].dispose(),this._freqMultipliers[e].dispose();this._oscillators=null,this._freqMultipliers=null,this.frequency.dispose(),this.frequency=null,this._filterFreqScaler.dispose(),this._filterFreqScaler=null,this._amplitue.dispose(),this._amplitue=null,this.envelope.dispose(),this.envelope=null,this._highpass.dispose(),this._highpass=null},t.MetalSynth}),t(function(t){return window.AudioBufferSourceNode&&!AudioBufferSourceNode.prototype.start&&(AudioBufferSourceNode.prototype.start=AudioBufferSourceNode.prototype.noteGrainOn,AudioBufferSourceNode.prototype.stop=AudioBufferSourceNode.prototype.noteOff),t.BufferSource=function(){var e=this.optionsObject(arguments,["buffer","onended"],t.BufferSource.defaults);this.onended=e.onended,this._startTime=-1,this._stopTime=-1,this._gainNode=this.output=new t.Gain,this._source=this.context.createBufferSource(),this._source.connect(this._gainNode),this.playbackRate=new t.Param(this._source.playbackRate,t.Type.Positive),this.fadeIn=e.fadeIn,this.fadeOut=e.fadeOut,this._gain=1,this._onendedTimeout=-1,this.isUndef(e.buffer)||(this.buffer=e.buffer),this.loop=e.loop},t.extend(t.BufferSource),t.BufferSource.defaults={onended:t.noOp,fadeIn:0,fadeOut:0},Object.defineProperty(t.BufferSource.prototype,"state",{get:function(){var e=this.now();return-1!==this._startTime&&e>=this._startTime&&e<this._stopTime?t.State.Started:t.State.Stopped}}),t.BufferSource.prototype.start=function(t,e,i,s,n){if(-1!==this._startTime)throw new Error("Tone.BufferSource: can only be started once.");return this.buffer&&(t=this.toSeconds(t),e=this.loop?this.defaultArg(e,this.loopStart):this.defaultArg(e,0),e=this.toSeconds(e),t=this.toSeconds(t),this._source.start(t,e),s=this.defaultArg(s,1),this._gain=s,n=this.isUndef(n)?this.toSeconds(this.fadeIn):this.toSeconds(n),n>0?(this._gainNode.gain.setValueAtTime(0,t),this._gainNode.gain.linearRampToValueAtTime(this._gain,t+n)):this._gainNode.gain.setValueAtTime(s,t),this._startTime=t+n,this.isUndef(i)||(i=this.defaultArg(i,this.buffer.duration-e),i=this.toSeconds(i),this.stop(t+i+n,n))),this},t.BufferSource.prototype.stop=function(t,e){return this.buffer&&(t=this.toSeconds(t),e=this.isUndef(e)?this.toSeconds(this.fadeOut):this.toSeconds(e),this._stopTime=t+e,this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),e>0?(this._gainNode.gain.setValueAtTime(this._gain,t),this._gainNode.gain.linearRampToValueAtTime(0,t+e),t+=e):this._gainNode.gain.setValueAtTime(0,t),this.isNumber(this._source.playbackState)&&2!==this._source.playbackState||this._source.stop(t),clearTimeout(this._onendedTimeout),this._onendedTimeout=setTimeout(this._onended.bind(this),1e3*(this._stopTime-this.now()))),this},t.BufferSource.prototype._onended=function(){this.onended(this),this.dispose()},Object.defineProperty(t.BufferSource.prototype,"loopStart",{get:function(){return this._source.loopStart},set:function(t){this._source.loopStart=this.toSeconds(t)}}),Object.defineProperty(t.BufferSource.prototype,"loopEnd",{get:function(){return this._source.loopEnd},set:function(t){this._source.loopEnd=this.toSeconds(t)}}),Object.defineProperty(t.BufferSource.prototype,"buffer",{get:function(){return this._source?this._source.buffer:null},set:function(e){e instanceof t.Buffer?this._source.buffer=e.get():this._source.buffer=e}}),Object.defineProperty(t.BufferSource.prototype,"loop",{get:function(){return this._source.loop},set:function(t){this._source.loop=t}}),t.BufferSource.prototype.dispose=function(){return this.onended=null,this._source&&(this._source.disconnect(),this._source=null),this._gainNode&&(this._gainNode.dispose(),this._gainNode=null),this._startTime=-1,this.playbackRate=null,this.output=null,clearTimeout(this._onendedTimeout),this},t.BufferSource}),t(function(t){function e(){for(var e in i)s[e]=(new t.Buffer).fromArray(i[e])}t.Noise=function(){var e=this.optionsObject(arguments,["type"],t.Noise.defaults);t.Source.call(this,e),this._source=null,this._type=e.type,this._playbackRate=e.playbackRate},t.extend(t.Noise,t.Source),t.Noise.defaults={type:"white",playbackRate:1},Object.defineProperty(t.Noise.prototype,"type",{get:function(){return this._type},set:function(e){if(this._type!==e){if(!(e in s))throw new TypeError("Tone.Noise: invalid type: "+e);if(this._type=e,this.state===t.State.Started){var i=this.now()+this.blockTime;this._stop(i),this._start(i)}}}}),Object.defineProperty(t.Noise.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}}),t.Noise.prototype._start=function(e){var i=s[this._type];this._source=new t.BufferSource(i).connect(this.output),this._source.loop=!0,this._source.playbackRate.value=this._playbackRate,this._source.start(this.toSeconds(e),Math.random()*(i.duration-.001))},t.Noise.prototype._stop=function(t){this._source&&(this._source.stop(this.toSeconds(t)),this._source=null)},t.Noise.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),null!==this._source&&(this._source.disconnect(),this._source=null),this._buffer=null,this};var i={pink:function(){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;var s,n,o,r,a,h,l;s=n=o=r=a=h=l=0;for(var c=0;c<220500;c++){var u=2*Math.random()-1;s=.99886*s+.0555179*u,n=.99332*n+.0750759*u,o=.969*o+.153852*u,r=.8665*r+.3104856*u,a=.55*a+.5329522*u,h=-.7616*h-.016898*u,i[c]=s+n+o+r+a+h+l+.5362*u,i[c]*=.11,l=.115926*u}}return t}(),brown:function(){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;for(var s=0,n=0;n<220500;n++){var o=2*Math.random()-1;i[n]=(s+.02*o)/1.02,s=i[n],i[n]*=3.5}}return t}(),white:function(){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;for(var s=0;s<220500;s++)i[s]=2*Math.random()-1}return t}()},s={};return e(),t.Context.on("init",e),t.Noise}),t(function(t){return t.NoiseSynth=function(e){e=this.defaultArg(e,t.NoiseSynth.defaults),t.Instrument.call(this,e),this.noise=new t.Noise,this.envelope=new t.AmplitudeEnvelope(e.envelope),this.noise.chain(this.envelope,this.output),this.noise.start(),this._readOnly(["noise","envelope"])},t.extend(t.NoiseSynth,t.Instrument),t.NoiseSynth.defaults={noise:{type:"white"},envelope:{attack:.005,decay:.1,sustain:0}},t.NoiseSynth.prototype.triggerAttack=function(t,e){return this.envelope.triggerAttack(t,e),this},t.NoiseSynth.prototype.triggerRelease=function(t){return this.envelope.triggerRelease(t),this},t.NoiseSynth.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),t=this.toSeconds(t),this.triggerAttack(e,i),this.triggerRelease(e+t),this},t.NoiseSynth.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._writable(["noise","envelope"]),this.noise.dispose(),this.noise=null,this.envelope.dispose(),this.envelope=null,this},t.NoiseSynth}),t(function(t){return t.PluckSynth=function(e){e=this.defaultArg(e,t.PluckSynth.defaults),t.Instrument.call(this,e),this._noise=new t.Noise("pink"),this.attackNoise=e.attackNoise,this._lfcf=new t.LowpassCombFilter({resonance:e.resonance,dampening:e.dampening}),this.resonance=this._lfcf.resonance,this.dampening=this._lfcf.dampening,this._noise.connect(this._lfcf),this._lfcf.connect(this.output),this._readOnly(["resonance","dampening"])},t.extend(t.PluckSynth,t.Instrument),t.PluckSynth.defaults={attackNoise:1,dampening:4e3,resonance:.9},t.PluckSynth.prototype.triggerAttack=function(t,e){t=this.toFrequency(t),e=this.toSeconds(e);var i=1/t;return this._lfcf.delayTime.setValueAtTime(i,e),this._noise.start(e),this._noise.stop(e+i*this.attackNoise),this},t.PluckSynth.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._noise.dispose(),this._lfcf.dispose(),this._noise=null,this._lfcf=null,this._writable(["resonance","dampening"]),this.dampening=null,this.resonance=null,this},t.PluckSynth}),t(function(t){return t.PolySynth=function(){t.Instrument.call(this);var e=this.optionsObject(arguments,["polyphony","voice"],t.PolySynth.defaults);e=this.defaultArg(e,t.Instrument.defaults),e.polyphony=Math.min(t.PolySynth.MAX_POLYPHONY,e.polyphony),this.voices=new Array(e.polyphony),this._triggers=new Array(e.polyphony),this.detune=new t.Signal(e.detune,t.Type.Cents),this._readOnly("detune");for(var i=0;i<e.polyphony;i++){var s=new e.voice(arguments[2],arguments[3]);this.voices[i]=s,s.connect(this.output),s.hasOwnProperty("detune")&&this.detune.connect(s.detune),this._triggers[i]={release:-1,note:null,voice:s}}this.volume.value=e.volume},t.extend(t.PolySynth,t.Instrument),t.PolySynth.defaults={polyphony:4,volume:0,detune:0,voice:t.Synth},t.PolySynth.prototype.triggerAttack=function(t,e,i){Array.isArray(t)||(t=[t]),e=this.toSeconds(e);for(var s=0;s<t.length;s++){for(var n=t[s],o=this._triggers[0],r=1;r<this._triggers.length;r++)this._triggers[r].release<o.release&&(o=this._triggers[r],r);o.release=1/0,o.note=JSON.stringify(n),o.voice.triggerAttack(n,e,i)}return this},t.PolySynth.prototype.triggerAttackRelease=function(t,e,i,s){if(i=this.toSeconds(i),this.triggerAttack(t,i,s),this.isArray(e)&&this.isArray(t))for(var n=0;n<t.length;n++){var o=e[Math.min(n,e.length-1)];this.triggerRelease(t[n],i+this.toSeconds(o))}else this.triggerRelease(t,i+this.toSeconds(e));return this},t.PolySynth.prototype.triggerRelease=function(t,e){Array.isArray(t)||(t=[t]),e=this.toSeconds(e);for(var i=0;i<t.length;i++)for(var s=JSON.stringify(t[i]),n=0;n<this._triggers.length;n++){var o=this._triggers[n];o.note===s&&o.release>e&&(o.voice.triggerRelease(e),o.release=e)}return this},t.PolySynth.prototype.set=function(t,e,i){for(var s=0;s<this.voices.length;s++)this.voices[s].set(t,e,i);return this},t.PolySynth.prototype.get=function(t){return this.voices[0].get(t)},t.PolySynth.prototype.releaseAll=function(t){t=this.toSeconds(t);for(var e=0;e<this._triggers.length;e++){var i=this._triggers[e];i.release>t&&(i.release=t,i.voice.triggerRelease(t))}return this},t.PolySynth.prototype.dispose=function(){t.Instrument.prototype.dispose.call(this);for(var e=0;e<this.voices.length;e++)this.voices[e].dispose(),this.voices[e]=null;return this._writable("detune"),this.detune.dispose(),this.detune=null,this.voices=null,this._triggers=null,this},t.PolySynth.MAX_POLYPHONY=20,t.PolySynth}),t(function(t){return t.Player=function(e){var i;e instanceof t.Buffer?(e=e.get(),i=t.Player.defaults):i=this.optionsObject(arguments,["url","onload"],t.Player.defaults),t.Source.call(this,i),this._source=null,this.autostart=i.autostart,this._buffer=new t.Buffer({url:i.url,onload:this._onload.bind(this,i.onload),reverse:i.reverse}),e instanceof AudioBuffer&&this._buffer.set(e),this._loop=i.loop,this._loopStart=i.loopStart,this._loopEnd=i.loopEnd,this._playbackRate=i.playbackRate,this.retrigger=i.retrigger},t.extend(t.Player,t.Source),t.Player.defaults={onload:t.noOp,playbackRate:1,loop:!1,autostart:!1,loopStart:0,loopEnd:0,retrigger:!1,reverse:!1},t.Player.prototype.load=function(t,e){return this._buffer.load(t,this._onload.bind(this,e))},t.Player.prototype._onload=function(e){e=this.defaultArg(e,t.noOp),e(this),this.autostart&&this.start()},t.Player.prototype._start=function(e,i,s){if(!this._buffer.loaded)throw Error("Tone.Player: tried to start Player before the buffer was loaded");if(i=this._loop?this.defaultArg(i,this._loopStart):this.defaultArg(i,0),i=this.toSeconds(i),s=this.defaultArg(s,Math.max(this._buffer.duration-i,0)),s=this.toSeconds(s),e=this.toSeconds(e),this._source=this.context.createBufferSource(),this._source.buffer=this._buffer.get(),this._loop?(this._source.loop=this._loop,this._source.loopStart=this.toSeconds(this._loopStart),this._source.loopEnd=this.toSeconds(this._loopEnd)):this._synced||this._state.setStateAtTime(t.State.Stopped,e+s),this._source.playbackRate.value=this._playbackRate,this._source.connect(this.output),this._loop){var n=this._source.loopEnd||this._buffer.duration,o=this._source.loopStart,r=n-o;if(i>n)for(;i>n;)i-=r;this._source.start(e,i)}else this._source.start(e,i,s);return this},t.Player.prototype._stop=function(t){return this._source&&(this._source.stop(this.toSeconds(t)),this._source=null),this},t.Player.prototype.seek=function(e,i){return i=this.toSeconds(i),this._state.getValueAtTime(i)===t.State.Started&&(e=this.toSeconds(e),this._stop(i),this._start(i,e)),this},t.Player.prototype.setLoopPoints=function(t,e){return this.loopStart=t,this.loopEnd=e,this},Object.defineProperty(t.Player.prototype,"loopStart",{get:function(){return this._loopStart},set:function(t){this._loopStart=t,this._source&&(this._source.loopStart=this.toSeconds(t))}}),Object.defineProperty(t.Player.prototype,"loopEnd",{get:function(){return this._loopEnd},set:function(t){this._loopEnd=t,this._source&&(this._source.loopEnd=this.toSeconds(t))}}),Object.defineProperty(t.Player.prototype,"buffer",{get:function(){return this._buffer},set:function(t){this._buffer.set(t)}}),Object.defineProperty(t.Player.prototype,"loop",{get:function(){return this._loop},set:function(t){this._loop=t,this._source&&(this._source.loop=t)}}),Object.defineProperty(t.Player.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}}),Object.defineProperty(t.Player.prototype,"reverse",{get:function(){return this._buffer.reverse},set:function(t){this._buffer.reverse=t}}),t.Player.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),null!==this._source&&(this._source.disconnect(),this._source=null),this._buffer.dispose(),this._buffer=null,this},t.Player}),t(function(t){return t.Sampler=function(){var e=this.optionsObject(arguments,["url","onload"],t.Sampler.defaults);t.Instrument.call(this,e),this.player=new t.Player(e.url,e.onload),this.player.retrigger=!0,this.envelope=new t.AmplitudeEnvelope(e.envelope),this.player.chain(this.envelope,this.output),this._readOnly(["player","envelope"]),this.loop=e.loop,this.reverse=e.reverse},t.extend(t.Sampler,t.Instrument),t.Sampler.defaults={onload:t.noOp,loop:!1,reverse:!1,envelope:{attack:.001,decay:0,sustain:1,release:.1}},t.Sampler.prototype.triggerAttack=function(t,e,i){return e=this.toSeconds(e),t=this.defaultArg(t,0),this.player.playbackRate=this.intervalToFrequencyRatio(t),this.player.start(e),this.envelope.triggerAttack(e,i),this},t.Sampler.prototype.triggerRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this.player.stop(this.toSeconds(this.envelope.release)+t),this},Object.defineProperty(t.Sampler.prototype,"loop",{get:function(){return this.player.loop},set:function(t){this.player.loop=t}}),Object.defineProperty(t.Sampler.prototype,"reverse",{get:function(){return this.player.reverse},set:function(t){this.player.reverse=t}}),Object.defineProperty(t.Sampler.prototype,"buffer",{get:function(){return this.player.buffer},set:function(t){this.player.buffer=t}}),t.Sampler.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._writable(["player","envelope"]),this.player.dispose(),this.player=null,this.envelope.dispose(),this.envelope=null,this},t.Sampler}),t(function(t){return t.GainToAudio=function(){this._norm=this.input=this.output=new t.WaveShaper(function(t){return 2*Math.abs(t)-1})},t.extend(t.GainToAudio,t.SignalBase),t.GainToAudio.prototype.dispose=function(){return t.prototype.dispose.call(this),this._norm.dispose(),this._norm=null,this},t.GainToAudio}),t(function(t){return t.Normalize=function(e,i){this._inputMin=this.defaultArg(e,0),this._inputMax=this.defaultArg(i,1),this._sub=this.input=new t.Add(0),this._div=this.output=new t.Multiply(1),this._sub.connect(this._div),this._setRange()},t.extend(t.Normalize,t.SignalBase),Object.defineProperty(t.Normalize.prototype,"min",{get:function(){return this._inputMin},set:function(t){this._inputMin=t,this._setRange()}}),Object.defineProperty(t.Normalize.prototype,"max",{get:function(){return this._inputMax},set:function(t){this._inputMax=t,this._setRange()}}),t.Normalize.prototype._setRange=function(){this._sub.value=-this._inputMin,this._div.value=1/(this._inputMax-this._inputMin)},t.Normalize.prototype.dispose=function(){return t.prototype.dispose.call(this),this._sub.dispose(),this._sub=null,this._div.dispose(),this._div=null,this},t.Normalize}),t(function(t){return t.MultiPlayer=function(){var e=this.optionsObject(arguments,["urls","onload"],t.MultiPlayer.defaults);e.urls instanceof t.Buffers?this.buffers=e.urls:this.buffers=new t.Buffers(e.urls,e.onload),this._activeSources={},this.fadeIn=e.fadeIn,this.fadeOut=e.fadeOut,this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly("volume"),this._volume.output.output.channelCount=2,this._volume.output.output.channelCountMode="explicit",this.mute=e.mute},t.extend(t.MultiPlayer,t.Source),t.MultiPlayer.defaults={onload:t.noOp,fadeIn:0,fadeOut:0},t.MultiPlayer.prototype._makeSource=function(e){var i;this.isString(e)||this.isNumber(e)?i=this.buffers.get(e).get():e instanceof t.Buffer?i=e.get():e instanceof AudioBuffer&&(i=e);var s=new t.BufferSource(i).connect(this.output);return this._activeSources.hasOwnProperty(e)||(this._activeSources[e]=[]),this._activeSources[e].push(s),s},t.MultiPlayer.prototype.start=function(t,e,i,s,n,o){e=this.toSeconds(e);var r=this._makeSource(t);return r.start(e,i,s,this.defaultArg(o,1),this.fadeIn),s&&r.stop(e+this.toSeconds(s),this.fadeOut),n=this.defaultArg(n,0),r.playbackRate.value=this.intervalToFrequencyRatio(n),this},t.MultiPlayer.prototype.startLoop=function(t,e,i,s,n,o,r){e=this.toSeconds(e);var a=this._makeSource(t);return a.loop=!0,a.loopStart=this.toSeconds(this.defaultArg(s,0)),a.loopEnd=this.toSeconds(this.defaultArg(n,0)),a.start(e,i,void 0,this.defaultArg(r,1),this.fadeIn),o=this.defaultArg(o,0),a.playbackRate.value=this.intervalToFrequencyRatio(o),this},t.MultiPlayer.prototype.stop=function(t,e){if(!this._activeSources[t]||!this._activeSources[t].length)throw new Error("Tone.MultiPlayer: cannot stop a buffer that hasn't been started or is already stopped");return e=this.toSeconds(e),this._activeSources[t].shift().stop(e,this.fadeOut),this},t.MultiPlayer.prototype.stopAll=function(t){t=this.toSeconds(t);for(var e in this._activeSources)for(var i=this._activeSources[e],s=0;s<i.length;s++)i[s].stop(t);return this},t.MultiPlayer.prototype.add=function(t,e,i){return this.buffers.add(t,e,i),this},Object.defineProperty(t.MultiPlayer.prototype,"state",{get:function(){return this._activeSources.length>0?t.State.Started:t.State.Stopped}}),Object.defineProperty(t.MultiPlayer.prototype,"mute",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.MultiPlayer.prototype.dispose=function(){t.prototype.dispose.call(this),this._volume.dispose(),this._volume=null,this._writable("volume"),this.volume=null;for(var e in this._activeSources)this._activeSources[e].forEach(function(t){t.dispose()});return this.buffers.dispose(),this.buffers=null,this._activeSources=null,this},t.MultiPlayer}),t(function(t){return t.GrainPlayer=function(){var e=this.optionsObject(arguments,["url","onload"],t.GrainPlayer.defaults);t.Source.call(this),this.buffer=new t.Buffer(e.url,e.onload),this._player=(new t.MultiPlayer).connect(this.output),this._clock=new t.Clock(this._tick.bind(this),1),this._loopStart=0,this._loopEnd=0,this._playbackRate=e.playbackRate,this._grainSize=e.grainSize,this._overlap=e.overlap,this.detune=e.detune,this.drift=e.drift,this.overlap=e.overlap,this.loop=e.loop,this.playbackRate=e.playbackRate,this.grainSize=e.grainSize,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this.reverse=e.reverse},t.extend(t.GrainPlayer,t.Source),t.GrainPlayer.defaults={onload:t.noOp,overlap:.1,grainSize:.2,drift:0,playbackRate:1,detune:0,loop:!1,loopStart:0,loopEnd:0,reverse:!1},t.GrainPlayer.prototype._start=function(t,e,i){e=this.defaultArg(e,0),e=this.toSeconds(e),t=this.toSeconds(t),this._offset=e,this._clock.start(t),this._player.volume.setValueAtTime(0,t),i&&this._stop(t+this.toSeconds(i))},t.GrainPlayer.prototype._stop=function(t){this._clock.stop(t),this._player.volume.cancelScheduledValues(t),this._player.volume.setValueAtTime(-1/0,t)},t.GrainPlayer.prototype._tick=function(t){var e=this.buffer.duration;this.loop&&this._loopEnd>0&&(e=this._loopEnd);var i=(2*Math.random()-1)*this.drift,s=this._offset-this._overlap+i,n=this.detune/100;s=Math.max(s,0),s=Math.min(s,e);var o=this._player.fadeIn;if(this.loop&&this._offset>e){var r=this._offset-e;this._player.start(this.buffer,t,s,r+this._overlap,n),s=this._offset%e,this._offset=this._loopStart,this._player.fadeIn=0,this._player.start(this.buffer,t+r,this._offset,s+this._overlap,n)}else this._offset>e?this.stop(t):(0===s&&(this._player.fadeIn=0),this._player.start(this.buffer,t,s,this.grainSize+this._overlap,n));this._player.fadeIn=o;var a=this._clock._nextTick-t;this._offset+=a*this._playbackRate},t.GrainPlayer.prototype.scrub=function(t,e){return this._offset=this.toSeconds(t),this._tick(this.toSeconds(e)),this},Object.defineProperty(t.GrainPlayer.prototype,"playbackRate",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this.grainSize=this._grainSize}}),Object.defineProperty(t.GrainPlayer.prototype,"loopStart",{get:function(){return this._loopStart},set:function(t){this._loopStart=this.toSeconds(t)}}),Object.defineProperty(t.GrainPlayer.prototype,"loopEnd",{get:function(){return this._loopEnd},set:function(t){this._loopEnd=this.toSeconds(t)}}),Object.defineProperty(t.GrainPlayer.prototype,"reverse",{get:function(){return this.buffer.reverse},set:function(t){this.buffer.reverse=t}}),Object.defineProperty(t.GrainPlayer.prototype,"grainSize",{get:function(){return this._grainSize},set:function(t){this._grainSize=this.toSeconds(t),this._clock.frequency.value=this._playbackRate/this._grainSize}}),Object.defineProperty(t.GrainPlayer.prototype,"overlap",{get:function(){return this._overlap},set:function(t){t=this.toSeconds(t),this._overlap=t,this._overlap<0?(this._player.fadeIn=.01,this._player.fadeOut=.01):(this._player.fadeIn=t,this._player.fadeOut=t)}}),t.GrainPlayer.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this.buffer.dispose(),this.buffer=null,this._player.dispose(),this._player=null,this._clock.dispose(),this._clock=null,this},t.GrainPlayer}),t(function(t){return t.UserMedia=function(){var e=this.optionsObject(arguments,["volume"],t.UserMedia.defaults);this._mediaStream=null,this._stream=null,this._device=null,this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly("volume"),this.mute=e.mute},t.extend(t.UserMedia),t.UserMedia.defaults={volume:0,mute:!1},t.UserMedia.prototype.open=function(t){return t=this.defaultArg(t,"default"),this.enumerateDevices().then(function(e){var i;if(this.isNumber(t)?i=e[t]:(i=e.find(function(e){return e.label===t||e.deviceId===t}))||(i=e[0]),!i)throw new Error("Tone.UserMedia: no matching audio inputs.");this._device=i;var s={audio:{deviceId:i.deviceId,echoCancellation:!1,sampleRate:this.context.sampleRate}};return navigator.mediaDevices.getUserMedia(s).then(function(t){return this._stream||(this._stream=t,this._mediaStream=this.context.createMediaStreamSource(t),this._mediaStream.connect(this.output)),this}.bind(this))}.bind(this))},t.UserMedia.prototype.close=function(){return this._stream&&(this._stream.getAudioTracks().forEach(function(t){t.stop()}),this._stream=null,this._mediaStream.disconnect(),this._mediaStream=null),this._device=null,this},t.UserMedia.prototype.enumerateDevices=function(){return navigator.mediaDevices.enumerateDevices().then(function(t){return t.filter(function(t){return"audioinput"===t.kind})})},Object.defineProperty(t.UserMedia.prototype,"state",{get:function(){return this._stream&&this._stream.active?t.State.Started:t.State.Stopped}}),Object.defineProperty(t.UserMedia.prototype,"deviceId",{get:function(){if(this._device)return this._device.deviceId}}),Object.defineProperty(t.UserMedia.prototype,"groupId",{get:function(){if(this._device)return this._device.groupId}}),Object.defineProperty(t.UserMedia.prototype,"label",{get:function(){if(this._device)return this._device.label}}),Object.defineProperty(t.UserMedia.prototype,"mute",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.UserMedia.prototype.dispose=function(){return t.prototype.dispose.call(this),this.close(),this._writable("volume"),this._volume.dispose(),this._volume=null,this.volume=null,this},Object.defineProperty(t.UserMedia,"supported",{get:function(){return!t.prototype.isUndef(navigator.mediaDevices)&&t.prototype.isFunction(navigator.mediaDevices.getUserMedia)}}),t.UserMedia}),e})},function(t,e,i){"use strict";function s(t){return t&&t.__esModule?t:{default:t}}function n(t){return t[Math.floor(Math.random()*t.length)]}function o(t,e){return t-e*Math.floor(t/e)}function r(t){if(f){var e=document.createElement("div"),i=document.createElement("div");i.innerHTML="Tap to start - please unmute your phone",Object.assign(e.style,{position:"absolute",width:"100%",height:"100%",zIndex:"10000",top:"0px",left:"0px",backgroundColor:"rgba(0, 0, 0, 0.8)"}),Object.assign(i.style,{position:"absolute",left:"50%",top:"50%",padding:"20px",backgroundColor:"#7F33ED",color:"white",fontFamily:"monospace",borderRadius:"3px",transform:"translate3D(-50%,-50%,0)",textAlign:"center",lineHeight:"1.5"}),e.appendChild(i),document.body.appendChild(e),c.default.setContext(h.default.context),c.default.on(i),c.default.onStarted(function(i){e.remove(),t()})}else t()}Object.defineProperty(e,"__esModule",{value:!0}),e.requestAudioContext=e.browser=e.mod=e.choice=void 0;var a=i(4),h=s(a),l=i(17),c=s(l),u=navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPod/i),p=navigator.userAgent.match(/iPad/i),d=navigator.userAgent.match(/Android/i),f=u||p||d,y=!f;document.body.classList.add(f?"mobile":"desktop");var _={isIphone:u,isIpad:p,isMobile:f,isDesktop:y};e.choice=n,e.mod=o,e.browser=_,e.requestAudioContext=r},function(t,e){function i(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function s(t){return"function"==typeof t}function n(t){return"number"==typeof t}function o(t){return"object"==typeof t&&null!==t}function r(t){return void 0===t}t.exports=i,i.EventEmitter=i,i.prototype._events=void 0,i.prototype._maxListeners=void 0,i.defaultMaxListeners=10,i.prototype.setMaxListeners=function(t){if(!n(t)||t<0||isNaN(t))throw TypeError("n must be a positive number");return this._maxListeners=t,this},i.prototype.emit=function(t){var e,i,n,a,h,l;if(this._events||(this._events={}),"error"===t&&(!this._events.error||o(this._events.error)&&!this._events.error.length)){if((e=arguments[1])instanceof Error)throw e;var c=new Error('Uncaught, unspecified "error" event. ('+e+")");throw c.context=e,c}if(i=this._events[t],r(i))return!1;if(s(i))switch(arguments.length){case 1:i.call(this);break;case 2:i.call(this,arguments[1]);break;case 3:i.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),i.apply(this,a)}else if(o(i))for(a=Array.prototype.slice.call(arguments,1),l=i.slice(),n=l.length,h=0;h<n;h++)l[h].apply(this,a);return!0},i.prototype.addListener=function(t,e){var n;if(!s(e))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",t,s(e.listener)?e.listener:e),this._events[t]?o(this._events[t])?this._events[t].push(e):this._events[t]=[this._events[t],e]:this._events[t]=e,o(this._events[t])&&!this._events[t].warned&&(n=r(this._maxListeners)?i.defaultMaxListeners:this._maxListeners)&&n>0&&this._events[t].length>n&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace()),this},i.prototype.on=i.prototype.addListener,i.prototype.once=function(t,e){function i(){this.removeListener(t,i),n||(n=!0,e.apply(this,arguments))}if(!s(e))throw TypeError("listener must be a function");var n=!1;return i.listener=e,this.on(t,i),this},i.prototype.removeListener=function(t,e){var i,n,r,a;if(!s(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(i=this._events[t],r=i.length,n=-1,i===e||s(i.listener)&&i.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(o(i)){for(a=r;a-- >0;)if(i[a]===e||i[a].listener&&i[a].listener===e){n=a;break}if(n<0)return this;1===i.length?(i.length=0,delete this._events[t]):i.splice(n,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},i.prototype.removeAllListeners=function(t){var e,i;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(i=this._events[t],s(i))this.removeListener(t,i);else if(i)for(;i.length;)this.removeListener(t,i[i.length-1]);return delete this._events[t],this},i.prototype.listeners=function(t){return this._events&&this._events[t]?s(this._events[t])?[this._events[t]]:this._events[t].slice():[]},i.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(s(e))return 1;if(e)return e.length}return 0},i.listenerCount=function(t,e){return t.listenerCount(e)}},function(t,e){e.findPosition=function(t){var e=document.body,i=document.defaultView,s=document.documentElement,n=document.createElement("div");n.style.paddingLeft=n.style.width="1px",e.appendChild(n);var o=2==n.offsetWidth;e.removeChild(n),n=t.getBoundingClientRect();var r=s.clientTop||e.clientTop||0,a=s.clientLeft||e.clientLeft||0,h=i.pageYOffset||o&&s.scrollTop||e.scrollTop,l=i.pageXOffset||o&&s.scrollLeft||e.scrollLeft;return{top:n.top+h-r,left:n.left+l-a}},e.getCursorPosition=function(t,e){var i,s;void 0!=t.pageX&&void 0!=t.pageY?(i=t.pageX,s=t.pageY):(i=t.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,s=t.clientY+document.body.scrollTop+document.documentElement.scrollTop),i-=e.left,s-=e.top;var n={x:i,y:s};return n.touches=[{x:i,y:s}],n},e.getTouchPosition=function(t,e){var i,s;i=t.targetTouches[0].pageX,s=t.targetTouches[0].pageY,i-=e.left,s-=e.top;var n={x:i,y:s};n.touches=new Array;for(var o=0;o<t.targetTouches.length;o++)n.touches.push({x:t.targetTouches[o].pageX-e.left,y:t.targetTouches[o].pageY-e.top});n.changed=new Array;for(var o=0;o<t.changedTouches.length;o++)n.changed.push({x:t.changedTouches[o].pageX-e.left,y:t.changedTouches[o].pageY-e.top});return n}},function(t,e){e.throttle=function(t,e){var i;return function(){var s=this,n=arguments;i||(i=setTimeout(function(){i=null;try{t.apply(s,n)}catch(t){console.log(t)}},e))}}},function(t,e){e.defineTransmit=function(t){if("function"==typeof t)return t;switch(t){case"js":return function(t,e){this.makeOSC(this.emit,t,e),this.emit("*",t,e)};case"ajax":return function(t){this.makeOSC(e.ajaxTransmit,t)};case"node":return function(t){this.makeOSC(e.nodeTransmit,t)};case"ios":return function(t){};case"max":return function(t){this.makeOSC(e.maxTransmit,t)};case"wc":return function(t,e){this.emit("internal",t,e)}}},e.setGlobalTransmit=function(t){var i=e.defineTransmit(t);this.transmit=i,this.destination=t;for(var s in nx.widgets)this.widgets[s].transmit=i,this.widgets[s].destination=t},e.setWidgetTransmit=function(t){var i=e.defineTransmit(t);this.transmit=i,this.destination=t},e.ajaxTransmit=function(t,e){var i="value"==t?this.oscPath:this.oscPath+"/"+t;xmlhttp=new XMLHttpRequest,xmlhttp.open("POST",nx.ajaxPath,!0),xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"),xmlhttp.send("oscName="+i+"&data="+e)},e.setAjaxPath=function(t){this.ajaxPath=t},e.nodeTransmit=function(t,e){var i={oscName:"value"==t?this.oscPath:this.oscPath+"/"+t,value:e};socket.emit("nx",i)},e.maxTransmit=function(t,e){var i="value"==t?this.oscPath:this.oscPath+"/"+t;window.max.outlet(i+" "+e)}},function(t,e,i){"use strict";function s(t,e,i,s,n,o,r){return e+i*Math.cos(2*Math.PI*(s*t+n))*r+o}function n(t,e,i){for(var n=void 0,o=void 0,a=void 0,h=void 0,l=[],c=0;c<3;c++)n=r[0][c],o=r[1][c],a=r[2][c],h=r[3][c],l[c]=Math.round(255*s(t,n,o,a,h,e,i));return"rgb("+l+")"}Object.defineProperty(e,"__esModule",{value:!0});var o=[[[.5,.5,.5],[.5,.5,.5],[1,1,1],[0,.33,.67]],[[.5,.5,.5],[.5,.5,.5],[1,1,1],[0,.1,.2]],[[.5,.5,.5],[.5,.5,.5],[1,1,1],[.3,.2,.2]],[[.5,.5,.5],[.5,.5,.5],[1,1,.5],[.8,.9,.3]],[[.5,.5,.5],[.5,.5,.5],[1,.7,.4],[0,.15,.2]],[[.5,.5,.5],[.5,.5,.5],[2,1,0],[.5,.2,.25]],[[.8,.5,.4],[.2,.4,.2],[2,1,1],[0,.25,.25]]],r=o[0];e.default=n},function(t,e,i){"use strict";function s(t){var e={sample:(0,r.choice)(l)};e.sample.index=(e.sample.index+1)%a;var i=e.sample.players[e.sample.index];i.playbackRate=t/e.sample.root,i.start()}Object.defineProperty(e,"__esModule",{value:!0});var n=i(4),o=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(5),a=4,h=new o.default.Compressor(-30,3).toMaster(),l=[{root:226,fn:"samples/380737__cabled-mess__sansula-01-a-raw.wav"},{root:267,fn:"samples/380736__cabled-mess__sansula-02-c-raw.wav"},{root:340,fn:"samples/380735__cabled-mess__sansula-03-e-raw.wav"},{root:452,fn:"samples/380733__cabled-mess__sansula-06-a-02-raw.wav"}];l.forEach(function(t){t.players=[],t.index=-1;for(var e=0;e<a;e++){var i=t.fn;window.location.href.match(/asdf.us/)&&(i="http://asdf.us/kalimba/"+i);var s=new o.default.Player({url:i,retrigger:!0,playbackRate:1});s.connect(h),t.players.push(s)}}),e.default={play:s}},function(t,e,i){"use strict";function s(t){if(t.altKey||t.ctrlKey||t.metaKey)return void t.stopPropagation();if(document.activeElement instanceof HTMLInputElement&&t.keyCode in r)return void t.stopPropagation();if(t.keyCode in o){var e=o[t.keyCode];t.shiftKey&&(e+=a.length),e-=7,h(e)}}function n(t){h=t}Object.defineProperty(e,"__esModule",{value:!0});var o={},r={},a="zxcvbnmasdfghjklqwertyuiop",h=function(){};a.toUpperCase().split("").map(function(t,e){o[t.charCodeAt(0)]=e}),"1234567890".split("").map(function(t,e){o[t.charCodeAt(0)]=e+a.length,r[t.charCodeAt(0)]=!0}),window.addEventListener("keydown",s,!0),e.default={listen:n}},function(t,e,i){"use strict";function s(){c.forEach(function(t,e){t.heading=document.createElement("div"),t.heading.innerHTML=t.name,t.heading.classList.add("heading"),t.heading.addEventListener("click",function(){n(e)}),scale_list.appendChild(t.heading)}),n(0)}function n(t){u&&u.heading&&u.heading.classList.remove("selected"),u=c[t],u.heading&&u.heading.classList.add("selected"),p(u)}function o(){return u}function r(t){p=t}function a(){return c.map(function(t){return t.name})}Object.defineProperty(e,"__esModule",{value:!0});var h=i(16),l=function(t){return t&&t.__esModule?t:{default:t}}(h),c=[{intervals:"1/1 9/8 5/4 4/3 3/2 5/3 15/8 2/1",name:"harmonic scale"},{root:450,intervals:"1/1 9/8 5/4 4/3 3/2 5/3 15/8 2/1",name:"harmonic scale @ 450"},{tet:5},{tet:12},{tet:17},{intervals:"1/1 81/80 33/32 21/20 16/15 12/11 11/10 10/9 9/8 8/7 7/6 32/27 6/5 11/9 5/4 14/11 9/7 21/16 4/3 27/20 11/8 7/5 10/7 16/11 40/27 3/2 32/21 14/9 11/7 8/5 18/11 5/3 27/16 12/7 7/4 16/9 9/5 20/11 11/6 15/8 40/21 64/33 160/81 2/1",name:"harry partch scale"},{scl:"! young-lm_piano.scl\n!\nLaMonte Young's Well-Tempered Piano\n12\n!\n567/512\n9/8\n147/128\n21/16\n1323/1024\n189/128\n3/2\n49/32\n7/4\n441/256\n63/32\n2/1\n"},{scl:"! meanquar.scl\n!\n1/4-comma meantone scale. Pietro Aaron's temperament (1523)\n 12\n!\n 76.04900\n 193.15686\n 310.26471\n 5/4\n 503.42157\n 579.47057\n 696.57843\n 25/16\n 889.73529\n 1006.84314\n 1082.89214\n 2/1\n"},{scl:"! mavila12.scl\n!\nA 12-note mavila scale (for warping meantone-based music), 5-limit TOP\n 12\n!\n-30.99719\n 163.50770\n 358.01258\n 327.01540\n 521.52028\n 490.52310\n 685.02798\n 654.03080\n 848.53568\n 1043.04057\n 1012.04338\n 1206.54826\n"},{scl:"! carlos_alpha.scl\n!\nWendy Carlos' Alpha scale with perfect fifth divided in nine\n 18\n!\n 78.00000\n 156.00000\n 234.00000\n 312.00000\n 390.00000\n 468.00000\n 546.00000\n 624.00000\n 702.00000\n 780.00000\n 858.00000\n 936.00000\n 1014.00000\n 1092.00000\n 1170.00000\n 1248.00000\n 1326.00000\n 1404.00000\n"}].map(function(t){return new l.default(t)}),u=c[0],p=function(){};e.default={scales:c,current:o,build:s,pick:n,names:a,onChange:r}},function(t,e,s){var n=s(19),o=s(7),r=s(3),a=s(2),h=s(18),l=s(54);window.nx=new n,window.nx.onload=function(){},window.nx=h(window.nx,o),window.nx=h(window.nx,r),window.nx=h(window.nx,a),window.onload=function(){try{l.load({google:{families:["Open Sans"]}})}catch(t){console.log("font not loaded")}nx.addStylesheet();var t=document.getElementsByTagName("canvas");for(i=0;i<t.length;i++)nx.transform(t[i]);nx.isTouchDevice&&(document.addEventListener("touchmove",nx.blockMove,!0),document.addEventListener("touchstart",nx.blockMove,!0)),nx.onload(),nx.startPulse()}},function(t,e,i){"use strict";function s(t){return t&&t.__esModule?t:{default:t}}function n(){V=z.widgets.grid,V.sequenceMode=!0,V.bpm=1,V.col=D,V.row=B,V.init(),V.resize(N*D,N*B),V.draw(),z.widgets.scale.choices=j.default.names(),z.widgets.scale.init(),z.widgets.scale.on("*",function(t){return j.default.pick(t.value)}),j.default.onChange(function(t){a()}),a(),V.on("*",function(t){return"level"in t&&a()}),z.widgets.shiftUp.on("*",o(l)),z.widgets.shiftDown.on("*",o(c)),z.widgets.slideUp.on("*",o(u)),z.widgets.slideDown.on("*",o(p)),z.widgets.slideLeft.on("*",o(d)),z.widgets.slideRight.on("*",o(f)),z.widgets.rotateUp.on("*",o(function(){return v(-1)})),z.widgets.rotateDown.on("*",o(function(){return v(1)})),z.widgets.rotateLeft.on("*",o(function(){return m(-1)})),z.widgets.rotateRight.on("*",o(function(){return m(1)})),z.widgets.flip.on("*",o(y)),z.widgets.flop.on("*",o(_)),z.colorize("#f4d142"),X.start(),q.default.Transport.bpm.value=108,z.widgets.tempo.min=10,z.widgets.tempo.max=1e3,z.widgets.tempo.set({value:108}),z.widgets.tempo.on("*",function(t){return q.default.Transport.bpm.value=z.widgets.tempo.val.value}),q.default.Transport.start()}function o(t){return function(e){L.browser.isMobile?t():e.press&&t()}}function r(){V.draw(),a()}function a(){for(var t=document.querySelector("#labels"),e=j.default.current().scale.length,i=h(),s="",n=0;n<B;n++){var o=B-n-W,r=(0,L.mod)(o,e),a=r+1;i.includes(r)?s+="<b>"+a+"</b><br>":s+=a+"<br>"}t.innerHTML=s}function h(t){t=t||T();var e=j.default.current().scale.length;return t.reduce(function(t,i){var s=(0,L.mod)(B-i-W,e);return t.includes(s)||t.push(s),t},[]).sort()}function l(){var t=T(),e=h(t),i=j.default.current().scale.length;w(A(t,function(t){for(var s=B-t-W,n=(0,L.mod)(s,i),o=e.indexOf(n)+1,r=Math.floor(s/i);o>=e.length;)o-=e.length,r+=1;return B-W-(e[o]+r*i)}))}function c(){var t=T(),e=h(t),i=j.default.current().scale.length;w(A(t,function(t){for(var s=B-t-W,n=(0,L.mod)(s,i),o=e.indexOf(n)-1,r=Math.floor(s/i);o<0;)o+=e.length,r-=1;return B-W-(e[o]+r*i)}))}function u(){w(A(T(),function(t){return(t-1+B)%B}))}function p(){w(A(T(),function(t){return(t+1+B)%B}))}function d(){g(A(k(),function(t){return(t-1+D)%D}))}function f(){g(A(k(),function(t){return(t+1+D)%D}))}function y(){w(M(T()))}function _(){g(M(k()))}function m(t){g(P(k(),t))}function v(t){w(P(T(),t))}function g(t){if(t){var e=V.matrix,i=S();b(e,function(e,s,n){e in t&&(i[t[e]][s]=n)}),x(V.matrix,i),r()}}function w(t){if(t){var e=V.matrix,i=S();b(e,function(e,s,n){s in t&&(i[e][t[s]]=n)}),x(V.matrix,i),r()}}function b(t,e){for(var i=D,s=B,n=0;n<i;n++)for(var o=0;o<s;o++)e(n,o,t[n][o]);return t}function x(t,e){return b(e,function(i,s,n){return t[i][s]=e[i][s]})}function S(){for(var t=V.matrix.length,e=V.matrix[0].length,i=new Array(t),s=0;s<t;s++){i[s]=new Array(e);for(var n=0;n<e;n++)i[s][n]=0}return i}function T(){var t=new Array(B);return b(V.matrix,function(e,i,s){s&&(t[i]=1)}),t.reduce(function(t,e,i){return 1===e&&t.push(i),t},[])}function k(){return V.matrix.reduce(function(t,e,i){return e.some(function(t){return 1===t})&&t.push(i),t},[])}function P(t,e){if(t.length){for(var i={},s=O(t,e),n=0;n<s.length;n++)i[s[n]]=t[n];return i}}function O(t,e){var i=t.slice(0);return i.unshift.apply(i,i.splice(-e,i.length)),i}function A(t,e){if(t.length){for(var i={},s=0;s<t.length;s++)i[t[s]]=e(t[s]);return i}}function M(t){if(t.length){for(var e={},i=t.slice(0).reverse(),s=0;s<i.length;s++)e[i[s]]=t[s];return e}}var I=i(4),q=s(I);i(14);var E=i(12),F=s(E),U=i(10),G=(s(U),i(11)),R=s(G),C=i(13),j=s(C),L=i(5),z=window.nx,B=L.browser.isMobile?18:24,D=16,N=L.browser.isMobile?20:27,W=L.browser.isMobile?0:12,V=void 0,X=new q.default.Sequence(function(t,e){var i=V.matrix[e];V.jumpToCol(e);for(var s=0;s<B;s++)if(1===i[s]){var n=j.default.current().index(B-s-W);R.default.play(n)}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"16n");z.onload=function(){return(0,L.requestAudioContext)(n)},F.default.listen(function(t){var e=j.default.current().index(t);R.default.play(e)})},function(t,e,i){"use strict";t.exports=function(){function t(t,e,i){return(t-e)/(i-e)}function e(t,e){return t-e*Math.floor(t/e)}var i=function(t){t=this.opt=Object.assign({name:"",root:440,octave:0,interval:2,tet:0,intervals:null},t||{}),this.generate()};i.prototype.generate=function(t){t=Object.assign(this.opt,t||{}),t.scl?this.generate_scl():t.tet?this.generate_tet():t.intervals&&this.generate_intervals()},i.prototype.generate_intervals=function(){var t=(this.opt.root,this.opt.intervals);"string"==typeof t&&(t=t.split(" ")),this.name=this.opt.name||"interval list",this.intervals=t,this.interval=this.opt.interval=s.call(this,t.pop()),this.scale=t.map(n.bind(this)).filter(function(t){return!!t})},i.prototype.generate_tet=function(){var t=this.scale=[],e=this.opt.root,i=this.opt.tet,s=this.interval=this.opt.interval,n=Math.pow(s,1/i),o=e;t.push(o);for(var r=0;r<i-1;r++)o*=n,t.push(o);this.name=this.opt.name||i+"-tone equal temperament",this.intervals=null},i.prototype.generate_scl=function(){var t=this.opt.root,e=this.parse_scl(this.opt.scl);this.intervals=e.notes,this.interval=e.notes.pop(),this.name=this.opt.name||e.description,this.scale=e.notes.map(function(e){return e*t})},i.prototype.parse_scl=function(t){var e={};return e.comments=[],e.notes=[],t.trim().split("\n").forEach(function(t){if(-1!==t.indexOf("!"))e.comments.push(t);else if("description"in e)if(e.notes.length){var i=t.replace(/^[^-\.0-9]+/,"").replace(/[^-\/\.0-9]+$/,"");i=-1!==i.indexOf(".")?Math.pow(2,parseFloat(i)/1200):s(i),i&&e.notes.push(i)}else e.notes.push(1);else e.description=t}),e},i.prototype.index=function(i,s){s=s||this.opt.octave;var n=this.scale[0|e(i,this.scale.length)],o=Math.floor(t(i,0,this.scale.length))+s;return n*=Math.pow(this.interval,o)},i.prototype.range=function(t,e){for(var i=[],s=t;s<e;s++)i.push(this.index(s));return i},i.prototype.set_root=function(t){this.opt.root=t,this.generate()},i.prototype.quantize_frequency=function(t){if(0==t)return 0;for(var e=t,i=0,s=this.interval,n=this.scale;e<root;)e*=s,i-=1;for(;e>root*s;)e/=s,i+=1;for(var o=0;o<n.length;o++)if(!(e>n[o])){e=n[o];break}return e*=Math.pow(2,i)},i.prototype.quantize_index=function(t){return 0|e(index-1,this.scale.length)};var s=i.prototype.parse_interval=function(t){if("number"==typeof t)return t;if(-1==!t.indexOf("/"))return parseInt(t);var e=t.split("/"),i=parseInt(e[0]),s=parseInt(e[1]);return isNaN(i)?1:isNaN(s)||0==s?i:i==s?1:i/s},n=i.prototype.parse_interval_string=function(t){return-1!==t.indexOf("/")?s(t)*this.opt.root:(t.indexOf("f"),parseFloat(t))};return i}()},function(t,e,i){"use strict";var s,n,o;"function"==typeof Symbol&&Symbol.iterator;/** * StartAudioContext.js * @author Yotam Mann * @license http://opensource.org/licenses/MIT MIT License diff --git a/bundle.js.map b/bundle.js.map index 5d71a77..c6e2a98 100644 --- a/bundle.js.map +++ b/bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"./bundle.js","sources":["webpack:///./bundle.js"],"sourcesContent":["!function(t){function e(s){if(i[s])return i[s].exports;var n=i[s]={i:s,l:!1,exports:{}};return t[s].call(n.exports,n,n.exports,e),n.l=!0,n.exports}var i={};e.m=t,e.c=i,e.i=function(t){return t},e.d=function(t,i,s){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:s})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,\"a\",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=15)}([function(t,e,i){(function(t,s){function n(t,i){var s={seen:[],stylize:r};return arguments.length>=3&&(s.depth=arguments[2]),arguments.length>=4&&(s.colors=arguments[3]),y(i)?s.showHidden=i:i&&e._extend(s,i),b(s.showHidden)&&(s.showHidden=!1),b(s.depth)&&(s.depth=2),b(s.colors)&&(s.colors=!1),b(s.customInspect)&&(s.customInspect=!0),s.colors&&(s.stylize=o),h(s,t,s.depth)}function o(t,e){var i=n.styles[e];return i?\"\u001b[\"+n.colors[i][0]+\"m\"+t+\"\u001b[\"+n.colors[i][1]+\"m\":t}function r(t,e){return t}function a(t){var e={};return t.forEach(function(t,i){e[t]=!0}),e}function h(t,i,s){if(t.customInspect&&i&&P(i.inspect)&&i.inspect!==e.inspect&&(!i.constructor||i.constructor.prototype!==i)){var n=i.inspect(s,t);return g(n)||(n=h(t,n,s)),n}var o=l(t,i);if(o)return o;var r=Object.keys(i),y=a(r);if(t.showHidden&&(r=Object.getOwnPropertyNames(i)),k(i)&&(r.indexOf(\"message\")>=0||r.indexOf(\"description\")>=0))return c(i);if(0===r.length){if(P(i)){var _=i.name?\": \"+i.name:\"\";return t.stylize(\"[Function\"+_+\"]\",\"special\")}if(x(i))return t.stylize(RegExp.prototype.toString.call(i),\"regexp\");if(T(i))return t.stylize(Date.prototype.toString.call(i),\"date\");if(k(i))return c(i)}var m=\"\",v=!1,w=[\"{\",\"}\"];if(f(i)&&(v=!0,w=[\"[\",\"]\"]),P(i)){m=\" [Function\"+(i.name?\": \"+i.name:\"\")+\"]\"}if(x(i)&&(m=\" \"+RegExp.prototype.toString.call(i)),T(i)&&(m=\" \"+Date.prototype.toUTCString.call(i)),k(i)&&(m=\" \"+c(i)),0===r.length&&(!v||0==i.length))return w[0]+m+w[1];if(s<0)return x(i)?t.stylize(RegExp.prototype.toString.call(i),\"regexp\"):t.stylize(\"[Object]\",\"special\");t.seen.push(i);var b;return b=v?u(t,i,s,y,r):r.map(function(e){return p(t,i,s,y,e,v)}),t.seen.pop(),d(b,m,w)}function l(t,e){if(b(e))return t.stylize(\"undefined\",\"undefined\");if(g(e)){var i=\"'\"+JSON.stringify(e).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return t.stylize(i,\"string\")}return v(e)?t.stylize(\"\"+e,\"number\"):y(e)?t.stylize(\"\"+e,\"boolean\"):_(e)?t.stylize(\"null\",\"null\"):void 0}function c(t){return\"[\"+Error.prototype.toString.call(t)+\"]\"}function u(t,e,i,s,n){for(var o=[],r=0,a=e.length;r<a;++r)q(e,String(r))?o.push(p(t,e,i,s,String(r),!0)):o.push(\"\");return n.forEach(function(n){n.match(/^\\d+$/)||o.push(p(t,e,i,s,n,!0))}),o}function p(t,e,i,s,n,o){var r,a,l;if(l=Object.getOwnPropertyDescriptor(e,n)||{value:e[n]},l.get?a=l.set?t.stylize(\"[Getter/Setter]\",\"special\"):t.stylize(\"[Getter]\",\"special\"):l.set&&(a=t.stylize(\"[Setter]\",\"special\")),q(s,n)||(r=\"[\"+n+\"]\"),a||(t.seen.indexOf(l.value)<0?(a=_(i)?h(t,l.value,null):h(t,l.value,i-1),a.indexOf(\"\\n\")>-1&&(a=o?a.split(\"\\n\").map(function(t){return\" \"+t}).join(\"\\n\").substr(2):\"\\n\"+a.split(\"\\n\").map(function(t){return\" \"+t}).join(\"\\n\"))):a=t.stylize(\"[Circular]\",\"special\")),b(r)){if(o&&n.match(/^\\d+$/))return a;r=JSON.stringify(\"\"+n),r.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(r=r.substr(1,r.length-2),r=t.stylize(r,\"name\")):(r=r.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),r=t.stylize(r,\"string\"))}return r+\": \"+a}function d(t,e,i){var s=0;return t.reduce(function(t,e){return s++,e.indexOf(\"\\n\")>=0&&s++,t+e.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1},0)>60?i[0]+(\"\"===e?\"\":e+\"\\n \")+\" \"+t.join(\",\\n \")+\" \"+i[1]:i[0]+e+\" \"+t.join(\", \")+\" \"+i[1]}function f(t){return Array.isArray(t)}function y(t){return\"boolean\"==typeof t}function _(t){return null===t}function m(t){return null==t}function v(t){return\"number\"==typeof t}function g(t){return\"string\"==typeof t}function w(t){return\"symbol\"==typeof t}function b(t){return void 0===t}function x(t){return S(t)&&\"[object RegExp]\"===A(t)}function S(t){return\"object\"==typeof t&&null!==t}function T(t){return S(t)&&\"[object Date]\"===A(t)}function k(t){return S(t)&&(\"[object Error]\"===A(t)||t instanceof Error)}function P(t){return\"function\"==typeof t}function O(t){return null===t||\"boolean\"==typeof t||\"number\"==typeof t||\"string\"==typeof t||\"symbol\"==typeof t||void 0===t}function A(t){return Object.prototype.toString.call(t)}function M(t){return t<10?\"0\"+t.toString(10):t.toString(10)}function I(){var t=new Date,e=[M(t.getHours()),M(t.getMinutes()),M(t.getSeconds())].join(\":\");return[t.getDate(),U[t.getMonth()],e].join(\" \")}function q(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.format=function(t){if(!g(t)){for(var e=[],i=0;i<arguments.length;i++)e.push(n(arguments[i]));return e.join(\" \")}for(var i=1,s=arguments,o=s.length,r=String(t).replace(/%[sdj%]/g,function(t){if(\"%%\"===t)return\"%\";if(i>=o)return t;switch(t){case\"%s\":return String(s[i++]);case\"%d\":return Number(s[i++]);case\"%j\":try{return JSON.stringify(s[i++])}catch(t){return\"[Circular]\"}default:return t}}),a=s[i];i<o;a=s[++i])_(a)||!S(a)?r+=\" \"+a:r+=\" \"+n(a);return r},e.deprecate=function(i,n){function o(){if(!r){if(s.throwDeprecation)throw new Error(n);s.traceDeprecation?console.trace(n):console.error(n),r=!0}return i.apply(this,arguments)}if(b(t.process))return function(){return e.deprecate(i,n).apply(this,arguments)};if(!0===s.noDeprecation)return i;var r=!1;return o};var E,F={};e.debuglog=function(t){if(b(E)&&(E=s.env.NODE_DEBUG||\"\"),t=t.toUpperCase(),!F[t])if(new RegExp(\"\\\\b\"+t+\"\\\\b\",\"i\").test(E)){var i=s.pid;F[t]=function(){var s=e.format.apply(e,arguments);console.error(\"%s %d: %s\",t,i,s)}}else F[t]=function(){};return F[t]},e.inspect=n,n.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},n.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},e.isArray=f,e.isBoolean=y,e.isNull=_,e.isNullOrUndefined=m,e.isNumber=v,e.isString=g,e.isSymbol=w,e.isUndefined=b,e.isRegExp=x,e.isObject=S,e.isDate=T,e.isError=k,e.isFunction=P,e.isPrimitive=O,e.isBuffer=i(53);var U=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];e.log=function(){console.log(\"%s - %s\",I(),e.format.apply(e,arguments))},e.inherits=i(52),e._extend=function(t,e){if(!e||!S(e))return t;for(var i=Object.keys(e),s=i.length;s--;)t[i[s]]=e[i[s]];return t}}).call(e,i(55),i(51))},function(module,exports,__webpack_require__){var EventEmitter=__webpack_require__(6).EventEmitter,util=__webpack_require__(0),domUtils=__webpack_require__(7),drawingUtils=__webpack_require__(3),timingUtils=__webpack_require__(8),transmit=__webpack_require__(9),widget=module.exports=function(t){if(EventEmitter.apply(this),this.preClick=this.preClick.bind(this),this.preMove=this.preMove.bind(this),this.preRelease=this.preRelease.bind(this),this.preTouch=this.preTouch.bind(this),this.preTouchMove=this.preTouchMove.bind(this),this.preTouchRelease=this.preTouchRelease.bind(this),this.canvasID=t,this.oscPath=\"/\"+t,!document.getElementById(t)){var e=document.createElement(\"canvas\");e.id=t,document.body.appendChild(e)}if(this.type=void 0,this.canvas=document.getElementById(t),this.context=this.canvas.getContext(\"2d\"),this.checkPercentage(),this.canvas.className=this.canvas.className?this.canvas.className+=\" nx\":\"nx\",this.canvas.height=window.getComputedStyle(document.getElementById(t),null).getPropertyValue(\"height\").replace(\"px\",\"\"),this.canvas.width=window.getComputedStyle(document.getElementById(t),null).getPropertyValue(\"width\").replace(\"px\",\"\"),this.height=parseInt(window.getComputedStyle(document.getElementById(t),null).getPropertyValue(\"height\").replace(\"px\",\"\")),this.width=parseInt(window.getComputedStyle(document.getElementById(t),null).getPropertyValue(\"width\").replace(\"px\",\"\")),this.defaultSize||(this.defaultSize={width:100,height:100}),this.label=!1,this.labelSize=30,this.labelAlign=\"center\",this.labelFont=\"'Open Sans'\",null!=this.canvas.getAttribute(\"label\")&&(this.label=this.canvas.getAttribute(\"label\"),this.origDefaultHeight=this.defaultSize.height),this.label&&(this.defaultSize.height+=this.labelSize),300==this.width&&150==this.height)this.canvas.width=2*this.defaultSize.width,this.canvas.height=2*this.defaultSize.height,this.width=this.defaultSize.width,this.height=this.defaultSize.height;else{var i=this.width,s=this.height;this.canvas.width=2*i,this.canvas.height=2*s,this.width=i,this.height=s}this.canvas.style.width=this.canvas.width/2+\"px\",this.canvas.style.height=this.canvas.height/2+\"px\",this.context.scale(2,2),this.makeRoomForLabel(),this.offset=domUtils.findPosition(this.canvas),this.center={x:this.GUI.w/2,y:this.GUI.h/2},this.lineWidth=2,this.context.lineWidth=this.lineWidth,this.colors=new Object;for(var n in nx.colors)this.colors[n]=nx.colors[n];this.clickPos={x:0,y:0},this.clickPos.touches=new Array,this.clicked=!1,this.value=0,this.val=new Object,this.pval=new Object,this.nodePos=new Array,this.deltaMove=new Object,this.throttlePeriod=nx.throttlePeriod,this.throttle=timingUtils.throttle,this.hasMoved=!1,this.isRecording=!1,this.tapeNum=0,this.recorder=null,transmit&&(this.sendsTo=transmit.setWidgetTransmit,this.destination=\"js\"),this.events=new Object,nx.isTouchDevice?(this.canvas.ontouchstart=this.preTouch,this.canvas.ontouchmove=this.preTouchMove,this.canvas.ontouchend=this.preTouchRelease):this.canvas.addEventListener(\"mousedown\",this.preClick,!1),this.fontSize=nx.fontSize,this.fontWeight=nx.fontWeight,this.font=nx.font,this.clickCB=!1,this.releaseCB=!1,this.actuated=!0};util.inherits(widget,EventEmitter),widget.prototype.transmit=nx.transmit,widget.prototype.makeOSC=function(t,e){if(this.action=t,\"object\"==typeof e&&null!==e)for(var i in e)if(\"object\"==typeof e[i]&&null!==e[i])for(var s in e[i])this.action(i+\"/\"+s,e[i][s]);else this.action(i,e[i]);else\"number\"!=typeof e&&\"string\"!=typeof e||this.action(\"value\",e)},widget.prototype.getOffset=function(){this.offset=domUtils.findPosition(this.canvas)},widget.prototype.preClick=function(t){this.actuated=!0,this.offset=domUtils.findPosition(this.canvas),this.clickPos=domUtils.getCursorPosition(t,this.offset),document.addEventListener(\"mousemove\",this.preMove,!1),document.addEventListener(\"mouseup\",this.preRelease,!1),this.clicked=!0,this.deltaMove.x=0,this.deltaMove.y=0,this.hasMoved=!1,this.clickCB&&this.clickCB(),this.click(t),document.body.style.userSelect=\"none\",document.body.style.mozUserSelect=\"none\",document.body.style.webkitUserSelect=\"none\",document.body.style.cursor=\"pointer\"},widget.prototype.preMove=function(t){this.actuated=!0;var e=domUtils.getCursorPosition(t,this.offset);this.deltaMove.y=e.y-this.clickPos.y,this.deltaMove.x=e.x-this.clickPos.x,this.clickPos=e,this.hasMoved=!0,this.move(t)},widget.prototype.preRelease=function(t){this.actuated=!0,document.removeEventListener(\"mousemove\",this.preMove,!1),document.removeEventListener(\"mouseup\",this.preRelease,!1),this.clicked=!1,this.releaseCB&&this.releaseCB(),this.release(),document.body.style.userSelect=\"text\",document.body.style.mozUserSelect=\"text\",document.body.style.webkitUserSelect=\"text\",document.body.style.cursor=\"default\"},widget.prototype.preTouch=function(t){this.actuated=!0,this.clickPos=domUtils.getTouchPosition(t,this.offset),this.clicked=!0,this.deltaMove.x=0,this.deltaMove.y=0,this.hasMoved=!1,this.touch(t)},widget.prototype.preTouchMove=function(t){if(this.clicked){this.actuated=!0;var e=domUtils.getTouchPosition(t,this.offset);this.deltaMove.y=e.y-this.clickPos.y,this.deltaMove.x=e.x-this.clickPos.x,this.clickPos=e,this.hasMoved=!0,this.touchMove(t)}},widget.prototype.preTouchRelease=function(t){if(this.actuated=!0,t.targetTouches.length>=1){var e=domUtils.getTouchPosition(t,this.offset);this.clickPos=e}else this.clicked=!1;this.touchRelease()},widget.prototype.draw=function(){},widget.prototype.click=function(){},widget.prototype.move=function(){},widget.prototype.release=function(){},widget.prototype.touch=function(){this.click()},widget.prototype.touchMove=function(){this.move()},widget.prototype.touchRelease=function(){this.release()},widget.prototype.adjustSizeIfDefault=function(){300==this.width&&150==this.height&&(this.canvas.width=this.defaultSize.width,this.canvas.height=this.defaultSize.height,this.width=this.defaultSize.width,this.height=this.defaultSize.height)},widget.prototype.makeRoundedBG=function(){this.bgLeft=this.lineWidth,this.bgRight=this.width-this.lineWidth,this.bgTop=this.lineWidth,this.bgBottom=this.height-this.lineWidth,this.bgHeight=this.bgBottom-this.lineWidth,this.bgWidth=this.bgRight-this.lineWidth,drawingUtils.makeRoundRect(this.context,this.bgLeft,this.bgTop,this.bgWidth,this.bgHeight)},widget.prototype.erase=function(){this.context.clearRect(0,0,this.width,this.height)},widget.prototype.hideCursor=function(){this.canvas.style.cursor=\"none\"},widget.prototype.showCursor=function(){this.canvas.style.cursor=\"auto\"},widget.prototype.getName=function(){return\"deprecated -- use widget.type instead\"},widget.prototype.set=function(t,e){if(this.actuated=!1,\"object\"==typeof this.val&&\"null\"!==this.val){if(\"object\"==typeof t&&\"null\"!==t)for(var i in t)this.val[i]=t[i]}else\"string\"!=typeof this.val&&\"number\"!=typeof this.val||(\"object\"==typeof t&&\"null\"!==t?(this.val=t.value,this.draw()):\"string\"!=typeof t&&\"number\"!=typeof t||(this.val=t));this.draw(),e&&this.transmit(this.val,!0)},widget.prototype.destroy=function(){var t=nx.elemTypeArr.indexOf(this.getName());nx.elemTypeArr.splice(t,1),this.canvas.ontouchmove=null,this.canvas.ontouchend=null,this.canvas.onclick=null,this.canvas.onmousemove=null,this.canvas.onmouseoff=null,document.removeEventListener(\"mousemove\",this.preMove,!1),document.removeEventListener(\"mouseup\",this.preRelease,!1);var e=document.getElementById(this.canvasID);e&&e.parentNode.removeChild(e),this.customDestroy();var i=this.canvasID;delete nx.widgets[i],delete window[i]},widget.prototype.customDestroy=function(){},widget.prototype.wrapText=function(t,e,i,s,n){if(t){for(var o=t.split(\" \"),r=\"\",a=0;a<o.length;a++){var h=r+o[a]+\" \";this.context.measureText(h).width>s&&a>0?(this.context.fillText(r,e,i),r=o[a]+\" \",i+=n):r=h}this.context.fillText(r,e,i)}},widget.prototype.drawLabel=function(){if(this.label)with(this.context)fillStyle=this.colors.black,textAlign=\"center\",textBaseline=\"middle\",font=this.labelSize/2.8+\"px \"+this.labelFont+\" normal\",fillText(this.label,this.width/2,this.labelY)},widget.prototype.saveCanv=function(){var t=this.canvas.toDataURL(\"image/png\").replace(\"image/png\",\"image/octet-stream\");window.location.href=t},widget.prototype.setFont=function(){with(this.context)textAlign=\"center\",font=this.fontWeight+\" \"+this.fontSize+\"px \"+this.font,fillStyle=this.colors.black,globalAlpha=1},widget.prototype.checkPercentage=function(){var t=this.canvas.style.width,e=this.canvas.style.height;(t.indexOf(\"%\")>=0||e.indexOf(\"%\")>=0)&&(this.percent={w:t.indexOf(\"%\")>=0&&t.replace(\"%\",\"\"),h:e.indexOf(\"%\")>=0&&e.replace(\"%\",\"\")},this.stretch())},widget.prototype.stretch=function(){window.addEventListener(\"resize\",function(t){if(this.percent.w){var e=window.getComputedStyle(this.canvas.parentNode,null).getPropertyValue(\"width\").replace(\"px\",\"\");e*=this.percent.w/100}else var e=!1;if(this.percent.h){var i=window.getComputedStyle(this.canvas.parentNode,null).getPropertyValue(\"height\").replace(\"px\",\"\");i*=this.percent.h/100}else var i=!1;this.resize(e,i)}.bind(this))},widget.prototype.resize=function(t,e){this.canvas.width=t?2*t:this.canvas.width,this.canvas.height=e?2*e:this.canvas.height,this.width=t||this.width,this.height=e||this.height,this.canvas.style.width=this.width+\"px\",this.canvas.style.height=this.height+\"px\",this.context.scale(2,2),this.center={x:this.GUI.w/2,y:this.GUI.h/2},this.makeRoomForLabel(),this.init(),this.draw()},widget.prototype.normalize=function(t){return nx.scale(t,this.min,this.max,0,1)},widget.prototype.rangify=function(t){return nx.scale(t,0,1,this.min,this.max)},widget.prototype.makeRoomForLabel=function(){this.GUI={w:this.width,h:this.label?this.height-this.labelSize:this.height},this.labelY=this.height-this.labelSize/2}},function(t,e){e.toPolar=function(t,e){var i=Math.sqrt(t*t+e*e),s=Math.atan2(e,t);return s<0&&(s+=2*Math.PI),{radius:i,angle:s}},e.toCartesian=function(t,e){return{x:t*Math.cos(e),y:t*Math.sin(e)*-1}},e.clip=function(t,e,i){return Math.min(i,Math.max(e,t))},e.prune=function(t,e){if(\"number\"==typeof t)t=parseFloat(t.toFixed(e));else if(t instanceof Array)for(var i=0;i<t.length;i++)\"number\"==typeof t[i]&&(t[i]=parseFloat(t[i].toFixed(e)));return t},e.scale=function(t,e,i,s,n){return(t-e)*(n-s)/(i-e)+s},e.invert=function(t){return e.scale(t,1,0,0,1)},e.bounce=function(t,e,i,s){return t>e&&t<i?s:t<=e?Math.abs(s):t>=i?-1*Math.abs(s):void 0},e.mtof=function(t){return 440*Math.pow(2,(t-69)/12)},e.random=function(t){return Math.floor(Math.random()*t)},e.interp=function(t,e,i){return t*(i-e)+e},e.lphistory={},e.lp=function(t,e,i){this.lphistory[t]||(this.lphistory[t]=[]);var s=0;this.lphistory[t].push(e),this.lphistory[t].length>i&&this.lphistory[t].splice(0,1);for(var n=0;n<this.lphistory[t].length;n++)s+=this.lphistory[t][n];return s/this.lphistory[t].length},e.lp2=function(t,e){for(var i=0,s=0;s<this.lphistory.length;s++)i+=this.lphistory[s];i+=t;var n=i/(this.lphistory.length+1);return this.lphistory.push(n),this.lphistory.length>e&&this.lphistory.splice(0,1),n},e.lp3=function(t,e,i){var s=t+e*i;return newvalue=s/(i+1),newvalue}},function(module,exports,__webpack_require__){var math=__webpack_require__(2);exports.randomColor=function(){return\"rgb(\"+math.random(250)+\",\"+math.random(250)+\",\"+math.random(250)+\")\"},exports.hexToRgb=function(t,e){t=t.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i,function(t,e,i,s){return e+e+i+i+s+s});var i=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(t);return e||(e=.5),\"rgba(\"+parseInt(i[1],16)+\",\"+parseInt(i[2],16)+\",\"+parseInt(i[3],16)+\",\"+e+\")\"},exports.isInside=function(t,e){return t.x>e.x&&t.x<e.x+e.w&&t.y>e.y&&t.y<e.y+e.h},exports.makeRoundRect=function(t,e,i,s,n,o){var r=e,a=i,h=s+r,l=n+a;o||(o=2),t.beginPath(),t.moveTo(r+o,a),t.lineTo(h-o,a),t.quadraticCurveTo(h,a,h,a+o),t.lineTo(h,l-o),t.quadraticCurveTo(h,l,h-o,l),t.lineTo(r+o,l),t.quadraticCurveTo(r,l,r,l-o),t.lineTo(r,a+o),t.quadraticCurveTo(r,a,r+o,a),t.closePath()},exports.text=function(context,text,position){with(position||(position=[10,10]),context)beginPath(),font=\"bold 12px sans-serif\",fillText(text,position[0],position[1]),closePath()},exports.shadeBlendConvert=function(t,e,i){if(\"number\"!=typeof t||t<-1||t>1||\"string\"!=typeof e||\"r\"!=e[0]&&\"#\"!=e[0]||\"string\"!=typeof i&&void 0!==i)return null;this.sbcRip=function(t){var e=t.length,i=new Object;if(e>9){if(t=t.split(\",\"),t.length<3||t.length>4)return null;i[0]=s(t[0].slice(4)),i[1]=s(t[1]),i[2]=s(t[2]),i[3]=t[3]?parseFloat(t[3]):-1}else{switch(e){case 8:case 6:case 3:case 2:case 1:return null}e<6&&(t=\"#\"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+(e>4?t[4]+\"\"+t[4]:\"\")),t=s(t.slice(1),16),i[0]=t>>16&255,i[1]=t>>8&255,i[2]=255&t,i[3]=9==e||5==e?n((t>>24&255)/255*1e4)/1e4:-1}return i};var s=parseInt,n=Math.round,o=e.length>9,o=\"string\"==typeof i?i.length>9||\"c\"==i&&!o:o,r=t<0,t=r?-1*t:t,i=i&&\"c\"!=i?i:r?\"#000000\":\"#FFFFFF\",a=this.sbcRip(e),h=this.sbcRip(i);return a&&h?o?\"rgb(\"+n((h[0]-a[0])*t+a[0])+\",\"+n((h[1]-a[1])*t+a[1])+\",\"+n((h[2]-a[2])*t+a[2])+(a[3]<0&&h[3]<0?\")\":\",\"+(a[3]>-1&&h[3]>-1?n(1e4*((h[3]-a[3])*t+a[3]))/1e4:h[3]<0?a[3]:h[3])+\")\"):\"#\"+(4294967296+16777216*(a[3]>-1&&h[3]>-1?n(255*((h[3]-a[3])*t+a[3])):h[3]>-1?n(255*h[3]):a[3]>-1?n(255*a[3]):255)+65536*n((h[0]-a[0])*t+a[0])+256*n((h[1]-a[1])*t+a[1])+n((h[2]-a[2])*t+a[2])).toString(16).slice(a[3]>-1||h[3]>-1?1:3):null}},function(t,e,i){var s;!function(n,o){void 0!==(s=function(){return o()}.call(e,i,e,t))&&(t.exports=s)}(0,function(){\"use strict\";function t(t){t(e)}var e;/**\n\t * Tone.js\n\t * @author Yotam Mann\n\t * @license http://opensource.org/licenses/MIT MIT License\n\t * @copyright 2014-2017 Yotam Mann\n\t */\nreturn function(t){e=t()}(function(){var t=function(t,e){this.isUndef(t)||1===t?this.input=this.context.createGain():t>1&&(this.input=new Array(t)),this.isUndef(e)||1===e?this.output=this.context.createGain():e>1&&(this.output=new Array(t))};t.prototype.set=function(e,i,s){if(this.isObject(e))s=i;else if(this.isString(e)){var n={};n[e]=i,e=n}t:for(var o in e){i=e[o];var r=this;if(-1!==o.indexOf(\".\")){for(var a=o.split(\".\"),h=0;h<a.length-1;h++)if((r=r[a[h]])instanceof t){a.splice(0,h+1);var l=a.join(\".\");r.set(l,i);continue t}o=a[a.length-1]}var c=r[o];this.isUndef(c)||(t.Signal&&c instanceof t.Signal||t.Param&&c instanceof t.Param?c.value!==i&&(this.isUndef(s)?c.value=i:c.rampTo(i,s)):c instanceof AudioParam?c.value!==i&&(c.value=i):c instanceof t?c.set(i):c!==i&&(r[o]=i))}return this},t.prototype.get=function(e){this.isUndef(e)?e=this._collectDefaults(this.constructor):this.isString(e)&&(e=[e]);for(var i={},s=0;s<e.length;s++){var n=e[s],o=this,r=i;if(-1!==n.indexOf(\".\")){for(var a=n.split(\".\"),h=0;h<a.length-1;h++){var l=a[h];r[l]=r[l]||{},r=r[l],o=o[l]}n=a[a.length-1]}var c=o[n];this.isObject(e[n])?r[n]=c.get():t.Signal&&c instanceof t.Signal?r[n]=c.value:t.Param&&c instanceof t.Param?r[n]=c.value:c instanceof AudioParam?r[n]=c.value:c instanceof t?r[n]=c.get():this.isFunction(c)||this.isUndef(c)||(r[n]=c)}return i},t.prototype._collectDefaults=function(t){var e=[];if(this.isUndef(t.defaults)||(e=Object.keys(t.defaults)),!this.isUndef(t._super))for(var i=this._collectDefaults(t._super),s=0;s<i.length;s++)-1===e.indexOf(i[s])&&e.push(i[s]);return e},t.prototype.toString=function(){for(var e in t){var i=e[0].match(/^[A-Z]$/),s=t[e]===this.constructor;if(this.isFunction(t[e])&&i&&s)return e}return\"Tone\"},Object.defineProperty(t.prototype,\"numberOfInputs\",{get:function(){return this.input?this.isArray(this.input)?this.input.length:1:0}}),Object.defineProperty(t.prototype,\"numberOfOutputs\",{get:function(){return this.output?this.isArray(this.output)?this.output.length:1:0}}),t.prototype.dispose=function(){return this.isUndef(this.input)||(this.input instanceof AudioNode&&this.input.disconnect(),this.input=null),this.isUndef(this.output)||(this.output instanceof AudioNode&&this.output.disconnect(),this.output=null),this},t.prototype.connect=function(t,e,i){return Array.isArray(this.output)?(e=this.defaultArg(e,0),this.output[e].connect(t,0,i)):this.output.connect(t,e,i),this},t.prototype.disconnect=function(t,e,i){this.isArray(this.output)?this.isNumber(t)?this.output[t].disconnect():(e=this.defaultArg(e,0),this.output[e].disconnect(t,0,i)):this.output.disconnect.apply(this.output,arguments)},t.prototype.connectSeries=function(){if(arguments.length>1)for(var t=arguments[0],e=1;e<arguments.length;e++){var i=arguments[e];t.connect(i),t=i}return this},t.prototype.chain=function(){if(arguments.length>0)for(var t=this,e=0;e<arguments.length;e++){var i=arguments[e];t.connect(i),t=i}return this},t.prototype.fan=function(){if(arguments.length>0)for(var t=0;t<arguments.length;t++)this.connect(arguments[t]);return this},AudioNode.prototype.chain=t.prototype.chain,AudioNode.prototype.fan=t.prototype.fan,t.prototype.defaultArg=function(t,e){if(this.isObject(t)&&this.isObject(e)){var i={};for(var s in t)i[s]=this.defaultArg(e[s],t[s]);for(var n in e)i[n]=this.defaultArg(t[n],e[n]);return i}return this.isUndef(t)?e:t},t.prototype.optionsObject=function(t,e,i){var s={};if(1===t.length&&this.isObject(t[0]))s=t[0];else for(var n=0;n<e.length;n++)s[e[n]]=t[n];return this.isUndef(i)?s:this.defaultArg(s,i)},t.prototype.isUndef=function(t){return void 0===t},t.prototype.isFunction=function(t){return\"function\"==typeof t},t.prototype.isNumber=function(t){return\"number\"==typeof t},t.prototype.isObject=function(t){return\"[object Object]\"===Object.prototype.toString.call(t)&&t.constructor===Object},t.prototype.isBoolean=function(t){return\"boolean\"==typeof t},t.prototype.isArray=function(t){return Array.isArray(t)},t.prototype.isString=function(t){return\"string\"==typeof t},t.noOp=function(){},t.prototype._readOnly=function(t){if(Array.isArray(t))for(var e=0;e<t.length;e++)this._readOnly(t[e]);else Object.defineProperty(this,t,{writable:!1,enumerable:!0})},t.prototype._writable=function(t){if(Array.isArray(t))for(var e=0;e<t.length;e++)this._writable(t[e]);else Object.defineProperty(this,t,{writable:!0})},t.State={Started:\"started\",Stopped:\"stopped\",Paused:\"paused\"},t.prototype.equalPowerScale=function(t){var e=.5*Math.PI;return Math.sin(t*e)},t.prototype.dbToGain=function(t){return Math.pow(2,t/6)},t.prototype.gainToDb=function(t){return Math.log(t)/Math.LN10*20},t.prototype.intervalToFrequencyRatio=function(t){return Math.pow(2,t/12)},t.prototype.now=function(){return t.context.now()},t.now=function(){return t.context.now()},t.extend=function(e,i){function s(){}t.prototype.isUndef(i)&&(i=t),s.prototype=i.prototype,e.prototype=new s,e.prototype.constructor=e,e._super=i};var e;return Object.defineProperty(t,\"context\",{get:function(){return e},set:function(i){e=t.Context&&i instanceof t.Context?i:new t.Context(i),t.Context&&t.Context.emit(\"init\",e)}}),Object.defineProperty(t.prototype,\"context\",{get:function(){return t.context}}),t.setContext=function(e){t.context=e},Object.defineProperty(t.prototype,\"blockTime\",{get:function(){return 128/this.context.sampleRate}}),Object.defineProperty(t.prototype,\"sampleTime\",{get:function(){return 1/this.context.sampleRate}}),Object.defineProperty(t,\"supported\",{get:function(){var t=window.hasOwnProperty(\"AudioContext\")||window.hasOwnProperty(\"webkitAudioContext\"),e=window.hasOwnProperty(\"Promise\"),i=window.hasOwnProperty(\"Worker\");return t&&e&&i}}),t.version=\"r10\",window.TONE_SILENCE_VERSION_LOGGING||console.log(\"%c * Tone.js \"+t.version+\" * \",\"background: #000; color: #fff\"),t}),t(function(t){return t.SignalBase=function(){},t.extend(t.SignalBase),t.SignalBase.prototype.connect=function(e,i,s){return t.Signal&&t.Signal===e.constructor||t.Param&&t.Param===e.constructor||t.TimelineSignal&&t.TimelineSignal===e.constructor?(e._param.cancelScheduledValues(0),e._param.value=0,e.overridden=!0):e instanceof AudioParam&&(e.cancelScheduledValues(0),e.value=0),t.prototype.connect.call(this,e,i,s),this},t.SignalBase}),t(function(t){return t.WaveShaper=function(t,e){this._shaper=this.input=this.output=this.context.createWaveShaper(),this._curve=null,Array.isArray(t)?this.curve=t:isFinite(t)||this.isUndef(t)?this._curve=new Float32Array(this.defaultArg(t,1024)):this.isFunction(t)&&(this._curve=new Float32Array(this.defaultArg(e,1024)),this.setMap(t))},t.extend(t.WaveShaper,t.SignalBase),t.WaveShaper.prototype.setMap=function(t){for(var e=0,i=this._curve.length;e<i;e++){var s=e/(i-1)*2-1;this._curve[e]=t(s,e)}return this._shaper.curve=this._curve,this},Object.defineProperty(t.WaveShaper.prototype,\"curve\",{get:function(){return this._shaper.curve},set:function(t){this._curve=new Float32Array(t),this._shaper.curve=this._curve}}),Object.defineProperty(t.WaveShaper.prototype,\"oversample\",{get:function(){return this._shaper.oversample},set:function(t){if(-1===[\"none\",\"2x\",\"4x\"].indexOf(t))throw new RangeError(\"Tone.WaveShaper: oversampling must be either 'none', '2x', or '4x'\");this._shaper.oversample=t}}),t.WaveShaper.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null,this},t.WaveShaper}),t(function(t){return t.TimeBase=function(e,i){if(!(this instanceof t.TimeBase))return new t.TimeBase(e,i);if(this._expr=this._noOp,e instanceof t.TimeBase)this.copy(e);else if(!this.isUndef(i)||this.isNumber(e)){i=this.defaultArg(i,this._defaultUnits);var s=this._primaryExpressions[i].method;this._expr=s.bind(this,e)}else this.isString(e)?this.set(e):this.isUndef(e)&&(this._expr=this._defaultExpr())},t.extend(t.TimeBase),t.TimeBase.prototype.set=function(t){return this._expr=this._parseExprString(t),this},t.TimeBase.prototype.clone=function(){var t=new this.constructor;return t.copy(this),t},t.TimeBase.prototype.copy=function(t){var e=t._expr();return this.set(e)},t.TimeBase.prototype._primaryExpressions={n:{regexp:/^(\\d+)n/i,method:function(t){return t=parseInt(t),1===t?this._beatsToUnits(this._timeSignature()):this._beatsToUnits(4/t)}},t:{regexp:/^(\\d+)t/i,method:function(t){return t=parseInt(t),this._beatsToUnits(8/(3*parseInt(t)))}},m:{regexp:/^(\\d+)m/i,method:function(t){return this._beatsToUnits(parseInt(t)*this._timeSignature())}},i:{regexp:/^(\\d+)i/i,method:function(t){return this._ticksToUnits(parseInt(t))}},hz:{regexp:/^(\\d+(?:\\.\\d+)?)hz/i,method:function(t){return this._frequencyToUnits(parseFloat(t))}},tr:{regexp:/^(\\d+(?:\\.\\d+)?):(\\d+(?:\\.\\d+)?):?(\\d+(?:\\.\\d+)?)?/,method:function(t,e,i){var s=0;return t&&\"0\"!==t&&(s+=this._beatsToUnits(this._timeSignature()*parseFloat(t))),e&&\"0\"!==e&&(s+=this._beatsToUnits(parseFloat(e))),i&&\"0\"!==i&&(s+=this._beatsToUnits(parseFloat(i)/4)),s}},s:{regexp:/^(\\d+(?:\\.\\d+)?s)/,method:function(t){return this._secondsToUnits(parseFloat(t))}},samples:{regexp:/^(\\d+)samples/,method:function(t){return parseInt(t)/this.context.sampleRate}},default:{regexp:/^(\\d+(?:\\.\\d+)?)/,method:function(t){return this._primaryExpressions[this._defaultUnits].method.call(this,t)}}},t.TimeBase.prototype._binaryExpressions={\"+\":{regexp:/^\\+/,precedence:2,method:function(t,e){return t()+e()}},\"-\":{regexp:/^\\-/,precedence:2,method:function(t,e){return t()-e()}},\"*\":{regexp:/^\\*/,precedence:1,method:function(t,e){return t()*e()}},\"/\":{regexp:/^\\//,precedence:1,method:function(t,e){return t()/e()}}},t.TimeBase.prototype._unaryExpressions={neg:{regexp:/^\\-/,method:function(t){return-t()}}},t.TimeBase.prototype._syntaxGlue={\"(\":{regexp:/^\\(/},\")\":{regexp:/^\\)/}},t.TimeBase.prototype._tokenize=function(t){for(var e=-1,i=[];t.length>0;){t=t.trim();var s=function(t,e){for(var i=[\"_binaryExpressions\",\"_unaryExpressions\",\"_primaryExpressions\",\"_syntaxGlue\"],s=0;s<i.length;s++){var n=e[i[s]];for(var o in n){var r=n[o],a=r.regexp,h=t.match(a);if(null!==h)return{method:r.method,precedence:r.precedence,regexp:r.regexp,value:h[0]}}}throw new SyntaxError(\"Tone.TimeBase: Unexpected token \"+t)}(t,this);i.push(s),t=t.substr(s.value.length)}return{next:function(){return i[++e]},peek:function(){return i[e+1]}}},t.TimeBase.prototype._matchGroup=function(t,e,i){if(!this.isUndef(t))for(var s in e){var n=e[s];if(n.regexp.test(t.value)){if(this.isUndef(i))return n;if(n.precedence===i)return n}}return!1},t.TimeBase.prototype._parseBinary=function(t,e){this.isUndef(e)&&(e=2);var i;i=e<0?this._parseUnary(t):this._parseBinary(t,e-1);for(var s=t.peek();s&&this._matchGroup(s,this._binaryExpressions,e);)s=t.next(),i=s.method.bind(this,i,this._parseBinary(t,e-1)),s=t.peek();return i},t.TimeBase.prototype._parseUnary=function(t){var e,i;e=t.peek();var s=this._matchGroup(e,this._unaryExpressions);return s?(e=t.next(),i=this._parseUnary(t),s.method.bind(this,i)):this._parsePrimary(t)},t.TimeBase.prototype._parsePrimary=function(t){var e,i;if(e=t.peek(),this.isUndef(e))throw new SyntaxError(\"Tone.TimeBase: Unexpected end of expression\");if(this._matchGroup(e,this._primaryExpressions)){e=t.next();var s=e.value.match(e.regexp);return e.method.bind(this,s[1],s[2],s[3])}if(e&&\"(\"===e.value){if(t.next(),i=this._parseBinary(t),!(e=t.next())||\")\"!==e.value)throw new SyntaxError(\"Expected )\");return i}throw new SyntaxError(\"Tone.TimeBase: Cannot process token \"+e.value)},t.TimeBase.prototype._parseExprString=function(t){this.isString(t)||(t=t.toString());var e=this._tokenize(t);return this._parseBinary(e)},t.TimeBase.prototype._noOp=function(){return 0},t.TimeBase.prototype._defaultExpr=function(){return this._noOp},t.TimeBase.prototype._defaultUnits=\"s\",t.TimeBase.prototype._frequencyToUnits=function(t){return 1/t},t.TimeBase.prototype._beatsToUnits=function(e){return 60/t.Transport.bpm.value*e},t.TimeBase.prototype._secondsToUnits=function(t){return t},t.TimeBase.prototype._ticksToUnits=function(e){return e*(this._beatsToUnits(1)/t.Transport.PPQ)},t.TimeBase.prototype._timeSignature=function(){return t.Transport.timeSignature},t.TimeBase.prototype._pushExpr=function(e,i,s){return e instanceof t.TimeBase||(e=new this.constructor(e,s)),this._expr=this._binaryExpressions[i].method.bind(this,this._expr,e._expr),this},t.TimeBase.prototype.add=function(t,e){return this._pushExpr(t,\"+\",e)},t.TimeBase.prototype.sub=function(t,e){return this._pushExpr(t,\"-\",e)},t.TimeBase.prototype.mult=function(t,e){return this._pushExpr(t,\"*\",e)},t.TimeBase.prototype.div=function(t,e){return this._pushExpr(t,\"/\",e)},t.TimeBase.prototype.valueOf=function(){return this._expr()},t.TimeBase.prototype.dispose=function(){this._expr=null},t.TimeBase}),t(function(t){return t.Time=function(e,i){if(!(this instanceof t.Time))return new t.Time(e,i);this._plusNow=!1,t.TimeBase.call(this,e,i)},t.extend(t.Time,t.TimeBase),t.Time.prototype._unaryExpressions=Object.create(t.TimeBase.prototype._unaryExpressions),t.Time.prototype._unaryExpressions.quantize={regexp:/^@/,method:function(e){return t.Transport.nextSubdivision(e())}},t.Time.prototype._unaryExpressions.now={regexp:/^\\+/,method:function(t){return this._plusNow=!0,t()}},t.Time.prototype.quantize=function(t,e){return e=this.defaultArg(e,1),this._expr=function(t,e,i){return t=t(),e=e.toSeconds(),t+(Math.round(t/e)*e-t)*i}.bind(this,this._expr,new this.constructor(t),e),this},t.Time.prototype.addNow=function(){return this._plusNow=!0,this},t.Time.prototype._defaultExpr=function(){return this._plusNow=!0,this._noOp},t.Time.prototype.copy=function(e){return t.TimeBase.prototype.copy.call(this,e),this._plusNow=e._plusNow,this},t.Time.prototype.toNotation=function(){var t=this.toSeconds(),e=[\"1m\",\"2n\",\"4n\",\"8n\",\"16n\",\"32n\",\"64n\",\"128n\"],i=this._toNotationHelper(t,e),s=[\"1m\",\"2n\",\"2t\",\"4n\",\"4t\",\"8n\",\"8t\",\"16n\",\"16t\",\"32n\",\"32t\",\"64n\",\"64t\",\"128n\"],n=this._toNotationHelper(t,s);return n.split(\"+\").length<i.split(\"+\").length?n:i},t.Time.prototype._toNotationHelper=function(t,e){for(var i=this._notationToUnits(e[e.length-1]),s=\"\",n=0;n<e.length;n++){var o=this._notationToUnits(e[n]),r=t/o;if(1-r%1<1e-6&&(r+=1e-6),(r=Math.floor(r))>0){if(s+=1===r?e[n]:r.toString()+\"*\"+e[n],(t-=r*o)<i)break;s+=\" + \"}}return\"\"===s&&(s=\"0\"),s},t.Time.prototype._notationToUnits=function(t){for(var e=this._primaryExpressions,i=[e.n,e.t,e.m],s=0;s<i.length;s++){var n=i[s],o=t.match(n.regexp);if(o)return n.method.call(this,o[1])}},t.Time.prototype.toBarsBeatsSixteenths=function(){var t=this._beatsToUnits(1),e=this.toSeconds()/t,i=Math.floor(e/this._timeSignature()),s=e%1*4;return e=Math.floor(e)%this._timeSignature(),s=s.toString(),s.length>3&&(s=parseFloat(s).toFixed(3)),[i,e,s].join(\":\")},t.Time.prototype.toTicks=function(){var e=this._beatsToUnits(1),i=this.valueOf()/e;return Math.floor(i*t.Transport.PPQ)},t.Time.prototype.toSamples=function(){return this.toSeconds()*this.context.sampleRate},t.Time.prototype.toFrequency=function(){return 1/this.toSeconds()},t.Time.prototype.toSeconds=function(){return this.valueOf()},t.Time.prototype.toMilliseconds=function(){return 1e3*this.toSeconds()},t.Time.prototype.valueOf=function(){return this._expr()+(this._plusNow?this.now():0)},t.Time}),t(function(t){t.Frequency=function(e,i){if(!(this instanceof t.Frequency))return new t.Frequency(e,i);t.TimeBase.call(this,e,i)},t.extend(t.Frequency,t.TimeBase),t.Frequency.prototype._primaryExpressions=Object.create(t.TimeBase.prototype._primaryExpressions),t.Frequency.prototype._primaryExpressions.midi={regexp:/^(\\d+(?:\\.\\d+)?midi)/,method:function(t){return this.midiToFrequency(t)}},t.Frequency.prototype._primaryExpressions.note={regexp:/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i,method:function(t,i){var s=e[t.toLowerCase()],n=s+12*(parseInt(i)+1);return this.midiToFrequency(n)}},t.Frequency.prototype._primaryExpressions.tr={regexp:/^(\\d+(?:\\.\\d+)?):(\\d+(?:\\.\\d+)?):?(\\d+(?:\\.\\d+)?)?/,method:function(t,e,i){var s=1;return t&&\"0\"!==t&&(s*=this._beatsToUnits(this._timeSignature()*parseFloat(t))),e&&\"0\"!==e&&(s*=this._beatsToUnits(parseFloat(e))),i&&\"0\"!==i&&(s*=this._beatsToUnits(parseFloat(i)/4)),s}},t.Frequency.prototype.transpose=function(t){return this._expr=function(t,e){return t()*this.intervalToFrequencyRatio(e)}.bind(this,this._expr,t),this},t.Frequency.prototype.harmonize=function(t){return this._expr=function(t,e){for(var i=t(),s=[],n=0;n<e.length;n++)s[n]=i*this.intervalToFrequencyRatio(e[n]);return s}.bind(this,this._expr,t),this},t.Frequency.prototype.toMidi=function(){return this.frequencyToMidi(this.valueOf())},t.Frequency.prototype.toNote=function(){var e=this.valueOf(),s=Math.log(e/t.Frequency.A4)/Math.LN2,n=Math.round(12*s)+57,o=Math.floor(n/12);return o<0&&(n+=-12*o),i[n%12]+o.toString()},t.Frequency.prototype.toSeconds=function(){return 1/this.valueOf()},t.Frequency.prototype.toFrequency=function(){return this.valueOf()},t.Frequency.prototype.toTicks=function(){var e=this._beatsToUnits(1),i=this.valueOf()/e;return Math.floor(i*t.Transport.PPQ)},t.Frequency.prototype._frequencyToUnits=function(t){return t},t.Frequency.prototype._ticksToUnits=function(e){return 1/(60*e/(t.Transport.bpm.value*t.Transport.PPQ))},t.Frequency.prototype._beatsToUnits=function(e){return 1/t.TimeBase.prototype._beatsToUnits.call(this,e)},t.Frequency.prototype._secondsToUnits=function(t){return 1/t},t.Frequency.prototype._defaultUnits=\"hz\";var e={cbb:-2,cb:-1,c:0,\"c#\":1,cx:2,dbb:0,db:1,d:2,\"d#\":3,dx:4,ebb:2,eb:3,e:4,\"e#\":5,ex:6,fbb:3,fb:4,f:5,\"f#\":6,fx:7,gbb:5,gb:6,g:7,\"g#\":8,gx:9,abb:7,ab:8,a:9,\"a#\":10,ax:11,bbb:9,bb:10,b:11,\"b#\":12,bx:13},i=[\"C\",\"C#\",\"D\",\"D#\",\"E\",\"F\",\"F#\",\"G\",\"G#\",\"A\",\"A#\",\"B\"];return t.Frequency.A4=440,t.Frequency.prototype.midiToFrequency=function(e){return t.Frequency.A4*Math.pow(2,(e-69)/12)},t.Frequency.prototype.frequencyToMidi=function(e){return 69+12*Math.log(e/t.Frequency.A4)/Math.LN2},t.Frequency}),t(function(t){return t.TransportTime=function(e,i){if(!(this instanceof t.TransportTime))return new t.TransportTime(e,i);t.Time.call(this,e,i)},t.extend(t.TransportTime,t.Time),t.TransportTime.prototype._unaryExpressions=Object.create(t.Time.prototype._unaryExpressions),t.TransportTime.prototype._unaryExpressions.quantize={regexp:/^@/,method:function(e){var i=this._secondsToTicks(e()),s=Math.ceil(t.Transport.ticks/i);return this._ticksToUnits(s*i)}},t.TransportTime.prototype._secondsToTicks=function(e){var i=this._beatsToUnits(1),s=e/i;return Math.round(s*t.Transport.PPQ)},t.TransportTime.prototype.valueOf=function(){return this._secondsToTicks(this._expr())+(this._plusNow?t.Transport.ticks:0)},t.TransportTime.prototype.toTicks=function(){return this.valueOf()},t.TransportTime.prototype.toSeconds=function(){return this._expr()+(this._plusNow?t.Transport.seconds:0)},t.TransportTime.prototype.toFrequency=function(){return 1/this.toSeconds()},t.TransportTime}),t(function(t){return t.Emitter=function(){this._events={}},t.extend(t.Emitter),t.Emitter.prototype.on=function(t,e){for(var i=t.split(/\\W+/),s=0;s<i.length;s++){var n=i[s];this._events.hasOwnProperty(n)||(this._events[n]=[]),this._events[n].push(e)}return this},t.Emitter.prototype.off=function(e,i){for(var s=e.split(/\\W+/),n=0;n<s.length;n++)if(e=s[n],this._events.hasOwnProperty(e))if(t.prototype.isUndef(i))this._events[e]=[];else for(var o=this._events[e],r=0;r<o.length;r++)o[r]===i&&o.splice(r,1);return this},t.Emitter.prototype.emit=function(t){if(this._events){var e=Array.apply(null,arguments).slice(1);if(this._events.hasOwnProperty(t))for(var i=this._events[t],s=0,n=i.length;s<n;s++)i[s].apply(this,e)}return this},t.Emitter.mixin=function(e){var i=[\"on\",\"off\",\"emit\"];e._events={};for(var s=0;s<i.length;s++){var n=i[s],o=t.Emitter.prototype[n];e[n]=o}},t.Emitter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._events=null,this},t.Emitter}),t(function(t){return!window.hasOwnProperty(\"AudioContext\")&&window.hasOwnProperty(\"webkitAudioContext\")&&(window.AudioContext=window.webkitAudioContext),t.Context=function(e){t.Emitter.call(this),e||(e=new window.AudioContext),this._context=e;for(var i in this._context)this._defineProperty(this._context,i);this._latencyHint=\"interactive\",this._lookAhead=.1,this._updateInterval=this._lookAhead/3,this._computedUpdateInterval=0,this._worker=this._createWorker(),this._constants={}},t.extend(t.Context,t.Emitter),t.Emitter.mixin(t.Context),t.Context.prototype._defineProperty=function(t,e){this.isUndef(this[e])&&Object.defineProperty(this,e,{get:function(){return\"function\"==typeof t[e]?t[e].bind(t):t[e]},set:function(i){t[e]=i}})},t.Context.prototype.now=function(){return this._context.currentTime},t.Context.prototype._createWorker=function(){window.URL=window.URL||window.webkitURL;var t=new Blob([\"var timeoutTime = \"+(1e3*this._updateInterval).toFixed(1)+\";self.onmessage = function(msg){\\ttimeoutTime = parseInt(msg.data);};function tick(){\\tsetTimeout(tick, timeoutTime);\\tself.postMessage('tick');}tick();\"]),e=URL.createObjectURL(t),i=new Worker(e);return i.addEventListener(\"message\",function(){this.emit(\"tick\")}.bind(this)),i.addEventListener(\"message\",function(){var t=this.now();if(this.isNumber(this._lastUpdate)){var e=t-this._lastUpdate;this._computedUpdateInterval=Math.max(e,.97*this._computedUpdateInterval)}this._lastUpdate=t}.bind(this)),i},t.Context.prototype.getConstant=function(t){if(this._constants[t])return this._constants[t];for(var e=this._context.createBuffer(1,128,this._context.sampleRate),i=e.getChannelData(0),s=0;s<i.length;s++)i[s]=t;var n=this._context.createBufferSource();return n.channelCount=1,n.channelCountMode=\"explicit\",n.buffer=e,n.loop=!0,n.start(0),this._constants[t]=n,n},Object.defineProperty(t.Context.prototype,\"lag\",{get:function(){var t=this._computedUpdateInterval-this._updateInterval;return t=Math.max(t,0)}}),Object.defineProperty(t.Context.prototype,\"lookAhead\",{get:function(){return this._lookAhead},set:function(t){this._lookAhead=t}}),Object.defineProperty(t.Context.prototype,\"updateInterval\",{get:function(){return this._updateInterval},set:function(e){this._updateInterval=Math.max(e,t.prototype.blockTime),this._worker.postMessage(Math.max(1e3*e,1))}}),Object.defineProperty(t.Context.prototype,\"latencyHint\",{get:function(){return this._latencyHint},set:function(t){var e=t;if(this._latencyHint=t,this.isString(t))switch(t){case\"interactive\":e=.1,this._context.latencyHint=t;break;case\"playback\":e=.8,this._context.latencyHint=t;break;case\"balanced\":e=.25,this._context.latencyHint=t;break;case\"fastest\":e=.01}this.lookAhead=e,this.updateInterval=e/3}}),t.supported?(!function(){function e(e,i,n){if(e.input)Array.isArray(e.input)?(t.prototype.isUndef(n)&&(n=0),this.connect(e.input[n])):this.connect(e.input,i,n);else try{e instanceof AudioNode?s.call(this,e,i,n):s.call(this,e,i)}catch(t){throw new Error(\"error connecting to node: \"+e+\"\\n\"+t)}}function i(e,i,s){if(e&&e.input&&Array.isArray(e.input))t.prototype.isUndef(s)&&(s=0),this.disconnect(e.input[s],i,s);else if(e&&e.input)this.disconnect(e.input,i,s);else try{n.apply(this,arguments)}catch(t){throw new Error(\"error disconnecting node: \"+e+\"\\n\"+t)}}var s=AudioNode.prototype.connect,n=AudioNode.prototype.disconnect;AudioNode.prototype.connect!==e&&(AudioNode.prototype.connect=e,AudioNode.prototype.disconnect=i)}(),t.context=new t.Context):console.warn(\"This browser does not support Tone.js\"),t.Context}),t(function(t){return t.Type={Default:\"number\",Time:\"time\",Frequency:\"frequency\",TransportTime:\"transportTime\",Ticks:\"ticks\",NormalRange:\"normalRange\",AudioRange:\"audioRange\",Decibels:\"db\",Interval:\"interval\",BPM:\"bpm\",Positive:\"positive\",Cents:\"cents\",Degrees:\"degrees\",MIDI:\"midi\",BarsBeatsSixteenths:\"barsBeatsSixteenths\",Samples:\"samples\",Hertz:\"hertz\",Note:\"note\",Milliseconds:\"milliseconds\",Seconds:\"seconds\",Notation:\"notation\"},t.prototype.toSeconds=function(e){return this.isNumber(e)?e:this.isUndef(e)?this.now():this.isString(e)?new t.Time(e).toSeconds():e instanceof t.TimeBase?e.toSeconds():void 0},t.prototype.toFrequency=function(e){return this.isNumber(e)?e:this.isString(e)||this.isUndef(e)?new t.Frequency(e).valueOf():e instanceof t.TimeBase?e.toFrequency():void 0},t.prototype.toTicks=function(e){return this.isNumber(e)||this.isString(e)?new t.TransportTime(e).toTicks():this.isUndef(e)?t.Transport.ticks:e instanceof t.TimeBase?e.toTicks():void 0},t}),t(function(t){return t.Param=function(){var e=this.optionsObject(arguments,[\"param\",\"units\",\"convert\"],t.Param.defaults);this._param=this.input=e.param,this.units=e.units,this.convert=e.convert,this.overridden=!1,this._lfo=null,this.isObject(e.lfo)?this.value=e.lfo:this.isUndef(e.value)||(this.value=e.value)},t.extend(t.Param),t.Param.defaults={units:t.Type.Default,convert:!0,param:void 0},Object.defineProperty(t.Param.prototype,\"value\",{get:function(){return this._toUnits(this._param.value)},set:function(e){if(this.isObject(e)){if(this.isUndef(t.LFO))throw new Error(\"Include 'Tone.LFO' to use an LFO as a Param value.\");this._lfo&&this._lfo.dispose(),this._lfo=new t.LFO(e).start(),this._lfo.connect(this.input)}else{var i=this._fromUnits(e);this._param.cancelScheduledValues(0),this._param.value=i}}}),t.Param.prototype._fromUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Time:return this.toSeconds(e);case t.Type.Frequency:return this.toFrequency(e);case t.Type.Decibels:return this.dbToGain(e);case t.Type.NormalRange:return Math.min(Math.max(e,0),1);case t.Type.AudioRange:return Math.min(Math.max(e,-1),1);case t.Type.Positive:return Math.max(e,0);default:return e}},t.Param.prototype._toUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Decibels:return this.gainToDb(e);default:return e}},t.Param.prototype._minOutput=1e-5,t.Param.prototype.setValueAtTime=function(t,e){return t=this._fromUnits(t),e=this.toSeconds(e),e<=this.now()+this.blockTime?this._param.value=t:this._param.setValueAtTime(t,e),this},t.Param.prototype.setRampPoint=function(t){t=this.defaultArg(t,this.now());var e=this._param.value;return 0===e&&(e=this._minOutput),this._param.setValueAtTime(e,t),this},t.Param.prototype.linearRampToValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.linearRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValueAtTime=function(t,e){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),this._param.exponentialRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValue=function(t,e,i){return i=this.toSeconds(i),this.setRampPoint(i),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.linearRampToValue=function(t,e,i){return i=this.toSeconds(i),this.setRampPoint(i),this.linearRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.setTargetAtTime=function(t,e,i){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),i=Math.max(this._minOutput,i),this._param.setTargetAtTime(t,this.toSeconds(e),i),this},t.Param.prototype.setValueCurveAtTime=function(t,e,i){for(var s=0;s<t.length;s++)t[s]=this._fromUnits(t[s]);return this._param.setValueCurveAtTime(t,this.toSeconds(e),this.toSeconds(i)),this},t.Param.prototype.cancelScheduledValues=function(t){return this._param.cancelScheduledValues(this.toSeconds(t)),this},t.Param.prototype.rampTo=function(e,i,s){return i=this.defaultArg(i,0),this.units===t.Type.Frequency||this.units===t.Type.BPM||this.units===t.Type.Decibels?this.exponentialRampToValue(e,i,s):this.linearRampToValue(e,i,s),this},Object.defineProperty(t.Param.prototype,\"lfo\",{get:function(){return this._lfo}}),t.Param.prototype.dispose=function(){return t.prototype.dispose.call(this),this._param=null,this._lfo&&(this._lfo.dispose(),this._lfo=null),this},t.Param}),t(function(t){return window.GainNode&&!AudioContext.prototype.createGain&&(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),t.Gain=function(){var e=this.optionsObject(arguments,[\"gain\",\"units\"],t.Gain.defaults);this.input=this.output=this._gainNode=this.context.createGain(),this.gain=new t.Param({param:this._gainNode.gain,units:e.units,value:e.gain,convert:e.convert}),this._readOnly(\"gain\")},t.extend(t.Gain),t.Gain.defaults={gain:1,convert:!0},t.Gain.prototype.dispose=function(){t.Param.prototype.dispose.call(this),this._gainNode.disconnect(),this._gainNode=null,this._writable(\"gain\"),this.gain.dispose(),this.gain=null},t.prototype.createInsOuts=function(e,i){1===e?this.input=new t.Gain:e>1&&(this.input=new Array(e)),1===i?this.output=new t.Gain:i>1&&(this.output=new Array(e))},t.Gain}),t(function(t){return t.Signal=function(){var e=this.optionsObject(arguments,[\"value\",\"units\"],t.Signal.defaults);this.output=this._gain=this.context.createGain(),e.param=this._gain.gain,t.Param.call(this,e),this.input=this._param=this._gain.gain,this.context.getConstant(1).chain(this._gain)},t.extend(t.Signal,t.Param),t.Signal.defaults={value:0,units:t.Type.Default,convert:!0},t.Signal.prototype.connect=t.SignalBase.prototype.connect,t.Signal.prototype.dispose=function(){return t.Param.prototype.dispose.call(this),this._param=null,this._gain.disconnect(),this._gain=null,this},t.Signal}),t(function(t){return t.Timeline=function(){var e=this.optionsObject(arguments,[\"memory\"],t.Timeline.defaults);this._timeline=[],this._toRemove=[],this._iterating=!1,this.memory=e.memory},t.extend(t.Timeline),t.Timeline.defaults={memory:1/0},Object.defineProperty(t.Timeline.prototype,\"length\",{get:function(){return this._timeline.length}}),t.Timeline.prototype.add=function(t){if(this.isUndef(t.time))throw new Error(\"Tone.Timeline: events must have a time attribute\");if(this._timeline.length){var e=this._search(t.time);this._timeline.splice(e+1,0,t)}else this._timeline.push(t);if(this.length>this.memory){var i=this.length-this.memory;this._timeline.splice(0,i)}return this},t.Timeline.prototype.remove=function(t){if(this._iterating)this._toRemove.push(t);else{var e=this._timeline.indexOf(t);-1!==e&&this._timeline.splice(e,1)}return this},t.Timeline.prototype.get=function(t){var e=this._search(t);return-1!==e?this._timeline[e]:null},t.Timeline.prototype.peek=function(){return this._timeline[0]},t.Timeline.prototype.shift=function(){return this._timeline.shift()},t.Timeline.prototype.getAfter=function(t){var e=this._search(t);return e+1<this._timeline.length?this._timeline[e+1]:null},t.Timeline.prototype.getBefore=function(t){var e=this._timeline.length;if(e>0&&this._timeline[e-1].time<t)return this._timeline[e-1];var i=this._search(t);return i-1>=0?this._timeline[i-1]:null},t.Timeline.prototype.cancel=function(t){if(this._timeline.length>1){var e=this._search(t);if(e>=0)if(this._timeline[e].time===t){for(var i=e;i>=0&&this._timeline[i].time===t;i--)e=i;this._timeline=this._timeline.slice(0,e)}else this._timeline=this._timeline.slice(0,e+1);else this._timeline=[]}else 1===this._timeline.length&&this._timeline[0].time>=t&&(this._timeline=[]);return this},t.Timeline.prototype.cancelBefore=function(t){if(this._timeline.length){var e=this._search(t);e>=0&&(this._timeline=this._timeline.slice(e+1))}return this},t.Timeline.prototype._search=function(t){var e=0,i=this._timeline.length,s=i;if(i>0&&this._timeline[i-1].time<=t)return i-1;for(;e<s;){var n=Math.floor(e+(s-e)/2),o=this._timeline[n],r=this._timeline[n+1];if(o.time===t){for(var a=n;a<this._timeline.length;a++){this._timeline[a].time===t&&(n=a)}return n}if(o.time<t&&r.time>t)return n;o.time>t?s=n:o.time<t&&(e=n+1)}return-1},t.Timeline.prototype._iterate=function(t,e,i){this._iterating=!0,e=this.defaultArg(e,0),i=this.defaultArg(i,this._timeline.length-1);for(var s=e;s<=i;s++)t(this._timeline[s]);if(this._iterating=!1,this._toRemove.length>0){for(var n=0;n<this._toRemove.length;n++){var o=this._timeline.indexOf(this._toRemove[n]);-1!==o&&this._timeline.splice(o,1)}this._toRemove=[]}},t.Timeline.prototype.forEach=function(t){return this._iterate(t),this},t.Timeline.prototype.forEachBefore=function(t,e){var i=this._search(t);return-1!==i&&this._iterate(e,0,i),this},t.Timeline.prototype.forEachAfter=function(t,e){var i=this._search(t);return this._iterate(e,i+1),this},t.Timeline.prototype.forEachFrom=function(t,e){for(var i=this._search(t);i>=0&&this._timeline[i].time>=t;)i--;return this._iterate(e,i+1),this},t.Timeline.prototype.forEachAtTime=function(t,e){var i=this._search(t);return-1!==i&&this._iterate(function(i){i.time===t&&e(i)},0,i),this},t.Timeline.prototype.dispose=function(){t.prototype.dispose.call(this),this._timeline=null,this._toRemove=null},t.Timeline}),t(function(t){return t.TimelineSignal=function(){var e=this.optionsObject(arguments,[\"value\",\"units\"],t.Signal.defaults);this._events=new t.Timeline(10),t.Signal.apply(this,e),e.param=this._param,t.Param.call(this,e),this._initial=this._fromUnits(this._param.value)},t.extend(t.TimelineSignal,t.Param),t.TimelineSignal.Type={Linear:\"linear\",Exponential:\"exponential\",Target:\"target\",Curve:\"curve\",Set:\"set\"},Object.defineProperty(t.TimelineSignal.prototype,\"value\",{get:function(){var t=this.now(),e=this.getValueAtTime(t);return this._toUnits(e)},set:function(t){var e=this._fromUnits(t);this._initial=e,this.cancelScheduledValues(),this._param.value=e}}),t.TimelineSignal.prototype.setValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.add({type:t.TimelineSignal.Type.Set,value:e,time:i}),this._param.setValueAtTime(e,i),this},t.TimelineSignal.prototype.linearRampToValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.add({type:t.TimelineSignal.Type.Linear,value:e,time:i}),this._param.linearRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.exponentialRampToValueAtTime=function(e,i){i=this.toSeconds(i);var s=this._searchBefore(i);s&&0===s.value&&this.setValueAtTime(this._minOutput,s.time),e=this._fromUnits(e);var n=Math.max(e,this._minOutput);return this._events.add({type:t.TimelineSignal.Type.Exponential,value:n,time:i}),e<this._minOutput?(this._param.exponentialRampToValueAtTime(this._minOutput,i-this.sampleTime),this.setValueAtTime(0,i)):this._param.exponentialRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.setTargetAtTime=function(e,i,s){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),s=Math.max(this._minOutput,s),i=this.toSeconds(i),this._events.add({type:t.TimelineSignal.Type.Target,value:e,time:i,constant:s}),this._param.setTargetAtTime(e,i,s),this},t.TimelineSignal.prototype.setValueCurveAtTime=function(e,i,s,n){n=this.defaultArg(n,1);for(var o=new Array(e.length),r=0;r<o.length;r++)o[r]=this._fromUnits(e[r])*n;i=this.toSeconds(i),s=this.toSeconds(s),this._events.add({type:t.TimelineSignal.Type.Curve,value:o,time:i,duration:s}),this._param.setValueAtTime(o[0],i);for(var a=1;a<o.length;a++){var h=i+a/(o.length-1)*s;this._param.linearRampToValueAtTime(o[a],h)}return this},t.TimelineSignal.prototype.cancelScheduledValues=function(t){return t=this.toSeconds(t),this._events.cancel(t),this._param.cancelScheduledValues(t),this},t.TimelineSignal.prototype.setRampPoint=function(e){e=this.toSeconds(e);var i=this._toUnits(this.getValueAtTime(e)),s=this._searchBefore(e);if(s&&s.time===e)this.cancelScheduledValues(e+this.sampleTime);else if(s&&s.type===t.TimelineSignal.Type.Curve&&s.time+s.duration>e)this.cancelScheduledValues(e),this.linearRampToValueAtTime(i,e);else{var n=this._searchAfter(e);n&&(this.cancelScheduledValues(e),n.type===t.TimelineSignal.Type.Linear?this.linearRampToValueAtTime(i,e):n.type===t.TimelineSignal.Type.Exponential&&this.exponentialRampToValueAtTime(i,e)),this.setValueAtTime(i,e)}return this},t.TimelineSignal.prototype.linearRampToValueBetween=function(t,e,i){return this.setRampPoint(e),this.linearRampToValueAtTime(t,i),this},t.TimelineSignal.prototype.exponentialRampToValueBetween=function(t,e,i){return this.setRampPoint(e),this.exponentialRampToValueAtTime(t,i),this},t.TimelineSignal.prototype._searchBefore=function(t){return this._events.get(t)},t.TimelineSignal.prototype._searchAfter=function(t){return this._events.getAfter(t)},t.TimelineSignal.prototype.getValueAtTime=function(e){e=this.toSeconds(e);var i=this._searchAfter(e),s=this._searchBefore(e),n=this._initial;if(null===s)n=this._initial;else if(s.type===t.TimelineSignal.Type.Target){var o,r=this._events.getBefore(s.time);o=null===r?this._initial:r.value,n=this._exponentialApproach(s.time,o,s.value,s.constant,e)}else n=s.type===t.TimelineSignal.Type.Curve?this._curveInterpolate(s.time,s.value,s.duration,e):null===i?s.value:i.type===t.TimelineSignal.Type.Linear?this._linearInterpolate(s.time,s.value,i.time,i.value,e):i.type===t.TimelineSignal.Type.Exponential?this._exponentialInterpolate(s.time,s.value,i.time,i.value,e):s.value;return n},t.TimelineSignal.prototype.connect=t.SignalBase.prototype.connect,t.TimelineSignal.prototype._exponentialApproach=function(t,e,i,s,n){return i+(e-i)*Math.exp(-(n-t)/s)},t.TimelineSignal.prototype._linearInterpolate=function(t,e,i,s,n){return e+(n-t)/(i-t)*(s-e)},t.TimelineSignal.prototype._exponentialInterpolate=function(t,e,i,s,n){return(e=Math.max(this._minOutput,e))*Math.pow(s/e,(n-t)/(i-t))},t.TimelineSignal.prototype._curveInterpolate=function(t,e,i,s){var n=e.length;if(s>=t+i)return e[n-1];if(s<=t)return e[0];var o=(s-t)/i,r=Math.floor((n-1)*o),a=Math.ceil((n-1)*o),h=e[r],l=e[a];return a===r?h:this._linearInterpolate(r,h,a,l,o*(n-1))},t.TimelineSignal.prototype.dispose=function(){t.Signal.prototype.dispose.call(this),t.Param.prototype.dispose.call(this),this._events.dispose(),this._events=null},t.TimelineSignal}),t(function(t){return t.Pow=function(e){this._exp=this.defaultArg(e,1),this._expScaler=this.input=this.output=new t.WaveShaper(this._expFunc(this._exp),8192)},t.extend(t.Pow,t.SignalBase),Object.defineProperty(t.Pow.prototype,\"value\",{get:function(){return this._exp},set:function(t){this._exp=t,this._expScaler.setMap(this._expFunc(this._exp))}}),t.Pow.prototype._expFunc=function(t){return function(e){return Math.pow(Math.abs(e),t)}},t.Pow.prototype.dispose=function(){return t.prototype.dispose.call(this),this._expScaler.dispose(),this._expScaler=null,this},t.Pow}),t(function(t){return t.Envelope=function(){var e=this.optionsObject(arguments,[\"attack\",\"decay\",\"sustain\",\"release\"],t.Envelope.defaults);this.attack=e.attack,this.decay=e.decay,this.sustain=e.sustain,this.release=e.release,this._attackCurve=\"linear\",this._releaseCurve=\"exponential\",this._sig=this.output=new t.TimelineSignal,this._sig.setValueAtTime(0,0),this.attackCurve=e.attackCurve,this.releaseCurve=e.releaseCurve},t.extend(t.Envelope),t.Envelope.defaults={attack:.01,decay:.1,sustain:.5,release:1,attackCurve:\"linear\",releaseCurve:\"exponential\"},Object.defineProperty(t.Envelope.prototype,\"value\",{get:function(){return this.getValueAtTime(this.now())}}),Object.defineProperty(t.Envelope.prototype,\"attackCurve\",{get:function(){if(this.isString(this._attackCurve))return this._attackCurve;if(this.isArray(this._attackCurve)){for(var e in t.Envelope.Type)if(t.Envelope.Type[e].In===this._attackCurve)return e;return this._attackCurve}},set:function(e){if(t.Envelope.Type.hasOwnProperty(e)){var i=t.Envelope.Type[e];this.isObject(i)?this._attackCurve=i.In:this._attackCurve=i}else{if(!this.isArray(e))throw new Error(\"Tone.Envelope: invalid curve: \"+e);this._attackCurve=e}}}),Object.defineProperty(t.Envelope.prototype,\"releaseCurve\",{get:function(){if(this.isString(this._releaseCurve))return this._releaseCurve;if(this.isArray(this._releaseCurve)){for(var e in t.Envelope.Type)if(t.Envelope.Type[e].Out===this._releaseCurve)return e;return this._releaseCurve}},set:function(e){if(t.Envelope.Type.hasOwnProperty(e)){var i=t.Envelope.Type[e];this.isObject(i)?this._releaseCurve=i.Out:this._releaseCurve=i}else{if(!this.isArray(e))throw new Error(\"Tone.Envelope: invalid curve: \"+e);this._releaseCurve=e}}}),t.Envelope.prototype.triggerAttack=function(t,e){t=this.toSeconds(t);var i=this.toSeconds(this.attack),s=i,n=this.toSeconds(this.decay);e=this.defaultArg(e,1);var o=this.getValueAtTime(t);if(o>0){s=(1-o)/(1/s)}if(\"linear\"===this._attackCurve)this._sig.linearRampToValue(e,s,t);else if(\"exponential\"===this._attackCurve)this._sig.exponentialRampToValue(e,s,t);else if(s>0){this._sig.setRampPoint(t);var r=this._attackCurve;if(s<i){var a=1-s/i,h=Math.floor(a*this._attackCurve.length);r=this._attackCurve.slice(h),r[0]=o}this._sig.setValueCurveAtTime(r,t,s,e)}return this._sig.exponentialRampToValue(e*this.sustain,n,s+t),this},t.Envelope.prototype.triggerRelease=function(t){t=this.toSeconds(t);var e=this.getValueAtTime(t);if(e>0){var i=this.toSeconds(this.release);if(\"linear\"===this._releaseCurve)this._sig.linearRampToValue(0,i,t);else if(\"exponential\"===this._releaseCurve)this._sig.exponentialRampToValue(0,i,t);else{var s=this._releaseCurve;this.isArray(s)&&(this._sig.setRampPoint(t),this._sig.setValueCurveAtTime(s,t,i,e))}}return this},t.Envelope.prototype.getValueAtTime=function(t){return this._sig.getValueAtTime(t)},t.Envelope.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),this.triggerAttack(e,i),this.triggerRelease(e+this.toSeconds(t)),this},t.Envelope.prototype.cancel=function(t){return this._sig.cancelScheduledValues(t),this},t.Envelope.prototype.connect=t.Signal.prototype.connect,function(){function e(t){for(var e=new Array(t.length),i=0;i<t.length;i++)e[i]=1-t[i];return e}var i,s,n=[];for(i=0;i<128;i++)n[i]=Math.sin(i/127*(Math.PI/2));var o=[];for(i=0;i<127;i++){s=i/127;var r=Math.sin(s*(2*Math.PI)*6.4-Math.PI/2)+1;o[i]=r/10+.83*s}o[127]=1;var a=[];for(i=0;i<128;i++)a[i]=Math.ceil(i/127*5)/5;var h=[];for(i=0;i<128;i++)s=i/127,h[i]=.5*(1-Math.cos(Math.PI*s));var l=[];for(i=0;i<128;i++){s=i/127;var c=4*Math.pow(s,3)+.2,u=Math.cos(c*Math.PI*2*s);l[i]=Math.abs(u*(1-s))}t.Envelope.Type={linear:\"linear\",exponential:\"exponential\",bounce:{In:e(l),Out:l},cosine:{In:n,Out:function(t){return t.slice(0).reverse()}(n)},step:{In:a,Out:e(a)},ripple:{In:o,Out:e(o)},sine:{In:h,Out:e(h)}}}(),t.Envelope.prototype.dispose=function(){return t.prototype.dispose.call(this),this._sig.dispose(),this._sig=null,this._attackCurve=null,this._releaseCurve=null,this},t.Envelope}),t(function(t){return t.AmplitudeEnvelope=function(){t.Envelope.apply(this,arguments),this.input=this.output=new t.Gain,this._sig.connect(this.output.gain)},t.extend(t.AmplitudeEnvelope,t.Envelope),t.AmplitudeEnvelope.prototype.dispose=function(){return this.input.dispose(),this.input=null,t.Envelope.prototype.dispose.call(this),this},t.AmplitudeEnvelope}),t(function(t){return window.AnalyserNode&&!AnalyserNode.prototype.getFloatTimeDomainData&&(AnalyserNode.prototype.getFloatTimeDomainData=function(t){var e=new Uint8Array(t.length);this.getByteTimeDomainData(e);for(var i=0;i<e.length;i++)t[i]=(e[i]-128)/128}),t.Analyser=function(){var e=this.optionsObject(arguments,[\"type\",\"size\"],t.Analyser.defaults);this._analyser=this.input=this.output=this.context.createAnalyser(),this._type=e.type,this._returnType=e.returnType,this._buffer=null,this.size=e.size,this.type=e.type,this.returnType=e.returnType,this.minDecibels=e.minDecibels,this.maxDecibels=e.maxDecibels},t.extend(t.Analyser),t.Analyser.defaults={size:1024,returnType:\"byte\",type:\"fft\",smoothing:.8,maxDecibels:-30,minDecibels:-100},t.Analyser.Type={Waveform:\"waveform\",FFT:\"fft\"},t.Analyser.ReturnType={Byte:\"byte\",Float:\"float\"},t.Analyser.prototype.analyse=function(){return this._type===t.Analyser.Type.FFT?this._returnType===t.Analyser.ReturnType.Byte?this._analyser.getByteFrequencyData(this._buffer):this._analyser.getFloatFrequencyData(this._buffer):this._type===t.Analyser.Type.Waveform&&(this._returnType===t.Analyser.ReturnType.Byte?this._analyser.getByteTimeDomainData(this._buffer):this._analyser.getFloatTimeDomainData(this._buffer)),this._buffer},Object.defineProperty(t.Analyser.prototype,\"size\",{get:function(){return this._analyser.frequencyBinCount},set:function(t){this._analyser.fftSize=2*t,this.type=this._type}}),Object.defineProperty(t.Analyser.prototype,\"returnType\",{get:function(){return this._returnType},set:function(e){if(e===t.Analyser.ReturnType.Byte)this._buffer=new Uint8Array(this._analyser.frequencyBinCount);else{if(e!==t.Analyser.ReturnType.Float)throw new TypeError(\"Tone.Analayser: invalid return type: \"+e);this._buffer=new Float32Array(this._analyser.frequencyBinCount)}this._returnType=e}}),Object.defineProperty(t.Analyser.prototype,\"type\",{get:function(){return this._type},set:function(e){if(e!==t.Analyser.Type.Waveform&&e!==t.Analyser.Type.FFT)throw new TypeError(\"Tone.Analyser: invalid type: \"+e);this._type=e}}),Object.defineProperty(t.Analyser.prototype,\"smoothing\",{get:function(){return this._analyser.smoothingTimeConstant},set:function(t){this._analyser.smoothingTimeConstant=t}}),Object.defineProperty(t.Analyser.prototype,\"minDecibels\",{get:function(){return this._analyser.minDecibels},set:function(t){this._analyser.minDecibels=t}}),Object.defineProperty(t.Analyser.prototype,\"maxDecibels\",{get:function(){return this._analyser.maxDecibels},set:function(t){this._analyser.maxDecibels=t}}),t.Analyser.prototype.dispose=function(){t.prototype.dispose.call(this),this._analyser.disconnect(),this._analyser=null,this._buffer=null},t.Analyser}),t(function(t){return t.Compressor=function(){var e=this.optionsObject(arguments,[\"threshold\",\"ratio\"],t.Compressor.defaults);this._compressor=this.input=this.output=this.context.createDynamicsCompressor(),this.threshold=new t.Param({param:this._compressor.threshold,units:t.Type.Decibels,convert:!1}),this.attack=new t.Param(this._compressor.attack,t.Type.Time),this.release=new t.Param(this._compressor.release,t.Type.Time),this.knee=new t.Param({param:this._compressor.knee,units:t.Type.Decibels,convert:!1}),this.ratio=new t.Param({param:this._compressor.ratio,convert:!1}),this._readOnly([\"knee\",\"release\",\"attack\",\"ratio\",\"threshold\"]),this.set(e)},t.extend(t.Compressor),t.Compressor.defaults={ratio:12,threshold:-24,release:.25,attack:.003,knee:30},t.Compressor.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"knee\",\"release\",\"attack\",\"ratio\",\"threshold\"]),this._compressor.disconnect(),this._compressor=null,this.attack.dispose(),this.attack=null,this.release.dispose(),this.release=null,this.threshold.dispose(),this.threshold=null,this.ratio.dispose(),this.ratio=null,this.knee.dispose(),this.knee=null,this},t.Compressor}),t(function(t){return t.Add=function(e){this.createInsOuts(2,0),this._sum=this.input[0]=this.input[1]=this.output=new t.Gain,this._param=this.input[1]=new t.Signal(e),this._param.connect(this._sum)},t.extend(t.Add,t.Signal),t.Add.prototype.dispose=function(){return t.prototype.dispose.call(this),this._sum.dispose(),this._sum=null,this._param.dispose(),this._param=null,this},t.Add}),t(function(t){return t.Multiply=function(e){this.createInsOuts(2,0),this._mult=this.input[0]=this.output=new t.Gain,this._param=this.input[1]=this.output.gain,this._param.value=this.defaultArg(e,0)},t.extend(t.Multiply,t.Signal),t.Multiply.prototype.dispose=function(){return t.prototype.dispose.call(this),this._mult.dispose(),this._mult=null,this._param=null,this},t.Multiply}),t(function(t){return t.Negate=function(){this._multiply=this.input=this.output=new t.Multiply(-1)},t.extend(t.Negate,t.SignalBase),t.Negate.prototype.dispose=function(){return t.prototype.dispose.call(this),this._multiply.dispose(),this._multiply=null,this},t.Negate}),t(function(t){return t.Subtract=function(e){this.createInsOuts(2,0),this._sum=this.input[0]=this.output=new t.Gain,this._neg=new t.Negate,this._param=this.input[1]=new t.Signal(e),this._param.chain(this._neg,this._sum)},t.extend(t.Subtract,t.Signal),t.Subtract.prototype.dispose=function(){return t.prototype.dispose.call(this),this._neg.dispose(),this._neg=null,this._sum.disconnect(),this._sum=null,this._param.dispose(),this._param=null,this},t.Subtract}),t(function(t){return t.GreaterThanZero=function(){this._thresh=this.output=new t.WaveShaper(function(t){return t<=0?0:1},127),this._scale=this.input=new t.Multiply(1e4),this._scale.connect(this._thresh)},t.extend(t.GreaterThanZero,t.SignalBase),t.GreaterThanZero.prototype.dispose=function(){return t.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._thresh.dispose(),this._thresh=null,this},t.GreaterThanZero}),t(function(t){return t.GreaterThan=function(e){this.createInsOuts(2,0),this._param=this.input[0]=new t.Subtract(e),this.input[1]=this._param.input[1],this._gtz=this.output=new t.GreaterThanZero,this._param.connect(this._gtz)},t.extend(t.GreaterThan,t.Signal),t.GreaterThan.prototype.dispose=function(){return t.prototype.dispose.call(this),this._param.dispose(),this._param=null,this._gtz.dispose(),this._gtz=null,this},t.GreaterThan}),t(function(t){return t.Abs=function(){this._abs=this.input=this.output=new t.WaveShaper(function(t){return 0===t?0:Math.abs(t)},127)},t.extend(t.Abs,t.SignalBase),t.Abs.prototype.dispose=function(){return t.prototype.dispose.call(this),this._abs.dispose(),this._abs=null,this},t.Abs}),t(function(t){return t.Modulo=function(e){this.createInsOuts(1,0),this._shaper=new t.WaveShaper(Math.pow(2,16)),this._multiply=new t.Multiply,this._subtract=this.output=new t.Subtract,this._modSignal=new t.Signal(e),this.input.fan(this._shaper,this._subtract),this._modSignal.connect(this._multiply,0,0),this._shaper.connect(this._multiply,0,1),this._multiply.connect(this._subtract,0,1),this._setWaveShaper(e)},t.extend(t.Modulo,t.SignalBase),t.Modulo.prototype._setWaveShaper=function(t){this._shaper.setMap(function(e){return Math.floor((e+1e-4)/t)})},Object.defineProperty(t.Modulo.prototype,\"value\",{get:function(){return this._modSignal.value},set:function(t){this._modSignal.value=t,this._setWaveShaper(t)}}),t.Modulo.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this._multiply.dispose(),this._multiply=null,this._subtract.dispose(),this._subtract=null,this._modSignal.dispose(),this._modSignal=null,this},t.Modulo}),t(function(t){return t.AudioToGain=function(){this._norm=this.input=this.output=new t.WaveShaper(function(t){return(t+1)/2})},t.extend(t.AudioToGain,t.SignalBase),t.AudioToGain.prototype.dispose=function(){return t.prototype.dispose.call(this),this._norm.dispose(),this._norm=null,this},t.AudioToGain}),t(function(t){function e(t,e,i){var s=new t;return i._eval(e[0]).connect(s,0,0),i._eval(e[1]).connect(s,0,1),s}function i(t,e,i){var s=new t;return i._eval(e[0]).connect(s,0,0),s}function s(t){return t?parseFloat(t):void 0}function n(t){return t&&t.args?parseFloat(t.args):void 0}return t.Expr=function(){var t=this._replacements(Array.prototype.slice.call(arguments)),e=this._parseInputs(t);this._nodes=[],this.input=new Array(e);for(var i=0;i<e;i++)this.input[i]=this.context.createGain();var s,n=this._parseTree(t);try{s=this._eval(n)}catch(e){throw this._disposeNodes(),new Error(\"Tone.Expr: Could evaluate expression: \"+t)}this.output=s},t.extend(t.Expr,t.SignalBase),t.Expr._Expressions={value:{signal:{regexp:/^\\d+\\.\\d+|^\\d+/,method:function(e){return new t.Signal(s(e))}},input:{regexp:/^\\$\\d/,method:function(t,e){return e.input[s(t.substr(1))]}}},glue:{\"(\":{regexp:/^\\(/},\")\":{regexp:/^\\)/},\",\":{regexp:/^,/}},func:{abs:{regexp:/^abs/,method:i.bind(this,t.Abs)},mod:{regexp:/^mod/,method:function(e,i){var s=n(e[1]),o=new t.Modulo(s);return i._eval(e[0]).connect(o),o}},pow:{regexp:/^pow/,method:function(e,i){var s=n(e[1]),o=new t.Pow(s);return i._eval(e[0]).connect(o),o}},a2g:{regexp:/^a2g/,method:function(e,i){var s=new t.AudioToGain;return i._eval(e[0]).connect(s),s}}},binary:{\"+\":{regexp:/^\\+/,precedence:1,method:e.bind(this,t.Add)},\"-\":{regexp:/^\\-/,precedence:1,method:function(s,n){return 1===s.length?i(t.Negate,s,n):e(t.Subtract,s,n)}},\"*\":{regexp:/^\\*/,precedence:0,method:e.bind(this,t.Multiply)}},unary:{\"-\":{regexp:/^\\-/,method:i.bind(this,t.Negate)},\"!\":{regexp:/^\\!/,method:i.bind(this,t.NOT)}}},t.Expr.prototype._parseInputs=function(t){var e=t.match(/\\$\\d/g),i=0;if(null!==e)for(var s=0;s<e.length;s++){var n=parseInt(e[s].substr(1))+1;i=Math.max(i,n)}return i},t.Expr.prototype._replacements=function(t){for(var e=t.shift(),i=0;i<t.length;i++)e=e.replace(/\\%/i,t[i]);return e},t.Expr.prototype._tokenize=function(e){for(var i=-1,s=[];e.length>0;){e=e.trim();var n=function(e){for(var i in t.Expr._Expressions){var s=t.Expr._Expressions[i];for(var n in s){var o=s[n],r=o.regexp,a=e.match(r);if(null!==a)return{type:i,value:a[0],method:o.method}}}throw new SyntaxError(\"Tone.Expr: Unexpected token \"+e)}(e);s.push(n),e=e.substr(n.value.length)}return{next:function(){return s[++i]},peek:function(){return s[i+1]}}},t.Expr.prototype._parseTree=function(e){function i(t,e){return!c(t)&&\"glue\"===t.type&&t.value===e}function s(e,i,s){var n=t.Expr._Expressions[i];if(!c(e))for(var o in n){var r=n[o];if(r.regexp.test(e.value)){if(c(s))return!0;if(r.precedence===s)return!0}}return!1}function n(t){c(t)&&(t=5);var e;e=t<0?o():n(t-1);for(var i=l.peek();s(i,\"binary\",t);)i=l.next(),e={operator:i.value,method:i.method,args:[e,n(t-1)]},i=l.peek();return e}function o(){var t,e;return t=l.peek(),s(t,\"unary\")?(t=l.next(),e=o(),{operator:t.value,method:t.method,args:[e]}):r()}function r(){var t,e;if(t=l.peek(),c(t))throw new SyntaxError(\"Tone.Expr: Unexpected termination of expression\");if(\"func\"===t.type)return t=l.next(),a(t);if(\"value\"===t.type)return t=l.next(),{method:t.method,args:t.value};if(i(t,\"(\")){if(l.next(),e=n(),t=l.next(),!i(t,\")\"))throw new SyntaxError(\"Expected )\");return e}throw new SyntaxError(\"Tone.Expr: Parse error, cannot process token \"+t.value)}function a(t){var e,s=[];if(e=l.next(),!i(e,\"(\"))throw new SyntaxError('Tone.Expr: Expected ( in a function call \"'+t.value+'\"');if(e=l.peek(),i(e,\")\")||(s=h()),e=l.next(),!i(e,\")\"))throw new SyntaxError('Tone.Expr: Expected ) in a function call \"'+t.value+'\"');return{method:t.method,args:s,name:name}}function h(){for(var t,e,s=[];;){if(e=n(),c(e))break;if(s.push(e),t=l.peek(),!i(t,\",\"))break;l.next()}return s}var l=this._tokenize(e),c=this.isUndef.bind(this);return n()},t.Expr.prototype._eval=function(t){if(!this.isUndef(t)){var e=t.method(t.args,this);return this._nodes.push(e),e}},t.Expr.prototype._disposeNodes=function(){for(var t=0;t<this._nodes.length;t++){var e=this._nodes[t];this.isFunction(e.dispose)?e.dispose():this.isFunction(e.disconnect)&&e.disconnect(),e=null,this._nodes[t]=null}this._nodes=null},t.Expr.prototype.dispose=function(){t.prototype.dispose.call(this),this._disposeNodes()},t.Expr}),t(function(t){return t.EqualPowerGain=function(){this._eqPower=this.input=this.output=new t.WaveShaper(function(t){return Math.abs(t)<.001?0:this.equalPowerScale(t)}.bind(this),4096)},t.extend(t.EqualPowerGain,t.SignalBase),t.EqualPowerGain.prototype.dispose=function(){return t.prototype.dispose.call(this),this._eqPower.dispose(),this._eqPower=null,this},t.EqualPowerGain}),t(function(t){return t.CrossFade=function(e){this.createInsOuts(2,1),this.a=this.input[0]=new t.Gain,this.b=this.input[1]=new t.Gain,this.fade=new t.Signal(this.defaultArg(e,.5),t.Type.NormalRange),this._equalPowerA=new t.EqualPowerGain,this._equalPowerB=new t.EqualPowerGain,this._invert=new t.Expr(\"1 - $0\"),this.a.connect(this.output),this.b.connect(this.output),this.fade.chain(this._equalPowerB,this.b.gain),this.fade.chain(this._invert,this._equalPowerA,this.a.gain),this._readOnly(\"fade\")},t.extend(t.CrossFade),t.CrossFade.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(\"fade\"),this._equalPowerA.dispose(),this._equalPowerA=null,this._equalPowerB.dispose(),this._equalPowerB=null,this.fade.dispose(),this.fade=null,this._invert.dispose(),this._invert=null,this.a.dispose(),this.a=null,this.b.dispose(),this.b=null,this},t.CrossFade}),t(function(t){return t.Filter=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,[\"frequency\",\"type\",\"rolloff\"],t.Filter.defaults);this._filters=[],this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(0,t.Type.Cents),this.gain=new t.Signal({value:e.gain,convert:!1}),this.Q=new t.Signal(e.Q),this._type=e.type,this._rolloff=e.rolloff,this.rolloff=e.rolloff,this._readOnly([\"detune\",\"frequency\",\"gain\",\"Q\"])},t.extend(t.Filter),t.Filter.defaults={type:\"lowpass\",frequency:350,rolloff:-12,Q:1,gain:0},Object.defineProperty(t.Filter.prototype,\"type\",{get:function(){return this._type},set:function(t){if(-1===[\"lowpass\",\"highpass\",\"bandpass\",\"lowshelf\",\"highshelf\",\"notch\",\"allpass\",\"peaking\"].indexOf(t))throw new TypeError(\"Tone.Filter: invalid type \"+t);this._type=t;for(var e=0;e<this._filters.length;e++)this._filters[e].type=t}}),Object.defineProperty(t.Filter.prototype,\"rolloff\",{get:function(){return this._rolloff},set:function(t){t=parseInt(t,10);var e=[-12,-24,-48,-96],i=e.indexOf(t);if(-1===i)throw new RangeError(\"Tone.Filter: rolloff can only be -12, -24, -48 or -96\");i+=1,this._rolloff=t,this.input.disconnect();for(var s=0;s<this._filters.length;s++)this._filters[s].disconnect(),this._filters[s]=null;this._filters=new Array(i);for(var n=0;n<i;n++){var o=this.context.createBiquadFilter();o.type=this._type,this.frequency.connect(o.frequency),this.detune.connect(o.detune),this.Q.connect(o.Q),this.gain.connect(o.gain),this._filters[n]=o}var r=[this.input].concat(this._filters).concat([this.output]);this.connectSeries.apply(this,r)}}),t.Filter.prototype.dispose=function(){t.prototype.dispose.call(this);for(var e=0;e<this._filters.length;e++)this._filters[e].disconnect(),this._filters[e]=null;return this._filters=null,this._writable([\"detune\",\"frequency\",\"gain\",\"Q\"]),this.frequency.dispose(),this.Q.dispose(),this.frequency=null,this.Q=null,this.detune.dispose(),this.detune=null,this.gain.dispose(),this.gain=null,this},t.Filter}),t(function(t){return t.MultibandSplit=function(){var e=this.optionsObject(arguments,[\"lowFrequency\",\"highFrequency\"],t.MultibandSplit.defaults);this.input=new t.Gain,this.output=new Array(3),this.low=this.output[0]=new t.Filter(0,\"lowpass\"),this._lowMidFilter=new t.Filter(0,\"highpass\"),this.mid=this.output[1]=new t.Filter(0,\"lowpass\"),this.high=this.output[2]=new t.Filter(0,\"highpass\"),this.lowFrequency=new t.Signal(e.lowFrequency,t.Type.Frequency),this.highFrequency=new t.Signal(e.highFrequency,t.Type.Frequency),this.Q=new t.Signal(e.Q),this.input.fan(this.low,this.high),this.input.chain(this._lowMidFilter,this.mid),this.lowFrequency.connect(this.low.frequency),this.lowFrequency.connect(this._lowMidFilter.frequency),this.highFrequency.connect(this.mid.frequency),this.highFrequency.connect(this.high.frequency),this.Q.connect(this.low.Q),this.Q.connect(this._lowMidFilter.Q),this.Q.connect(this.mid.Q),this.Q.connect(this.high.Q),this._readOnly([\"high\",\"mid\",\"low\",\"highFrequency\",\"lowFrequency\"])},t.extend(t.MultibandSplit),t.MultibandSplit.defaults={lowFrequency:400,highFrequency:2500,Q:1},t.MultibandSplit.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"high\",\"mid\",\"low\",\"highFrequency\",\"lowFrequency\"]),this.low.dispose(),this.low=null,this._lowMidFilter.dispose(),this._lowMidFilter=null,this.mid.dispose(),this.mid=null,this.high.dispose(),this.high=null,this.lowFrequency.dispose(),this.lowFrequency=null,this.highFrequency.dispose(),this.highFrequency=null,this.Q.dispose(),this.Q=null,this},t.MultibandSplit}),t(function(t){return t.EQ3=function(){var e=this.optionsObject(arguments,[\"low\",\"mid\",\"high\"],t.EQ3.defaults);this.output=new t.Gain,this._multibandSplit=this.input=new t.MultibandSplit({lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this._lowGain=new t.Gain(e.low,t.Type.Decibels),this._midGain=new t.Gain(e.mid,t.Type.Decibels),this._highGain=new t.Gain(e.high,t.Type.Decibels),this.low=this._lowGain.gain,this.mid=this._midGain.gain,this.high=this._highGain.gain,this.Q=this._multibandSplit.Q,this.lowFrequency=this._multibandSplit.lowFrequency,this.highFrequency=this._multibandSplit.highFrequency,this._multibandSplit.low.chain(this._lowGain,this.output),this._multibandSplit.mid.chain(this._midGain,this.output),this._multibandSplit.high.chain(this._highGain,this.output),this._readOnly([\"low\",\"mid\",\"high\",\"lowFrequency\",\"highFrequency\"])},t.extend(t.EQ3),t.EQ3.defaults={low:0,mid:0,high:0,lowFrequency:400,highFrequency:2500},t.EQ3.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"low\",\"mid\",\"high\",\"lowFrequency\",\"highFrequency\"]),this._multibandSplit.dispose(),this._multibandSplit=null,this.lowFrequency=null,this.highFrequency=null,this._lowGain.dispose(),this._lowGain=null,this._midGain.dispose(),this._midGain=null,this._highGain.dispose(),this._highGain=null,this.low=null,this.mid=null,this.high=null,this.Q=null,this},t.EQ3}),t(function(t){return t.Scale=function(e,i){this._outputMin=this.defaultArg(e,0),this._outputMax=this.defaultArg(i,1),this._scale=this.input=new t.Multiply(1),this._add=this.output=new t.Add(0),this._scale.connect(this._add),this._setRange()},t.extend(t.Scale,t.SignalBase),Object.defineProperty(t.Scale.prototype,\"min\",{get:function(){return this._outputMin},set:function(t){this._outputMin=t,this._setRange()}}),Object.defineProperty(t.Scale.prototype,\"max\",{get:function(){return this._outputMax},set:function(t){this._outputMax=t,this._setRange()}}),t.Scale.prototype._setRange=function(){this._add.value=this._outputMin,this._scale.value=this._outputMax-this._outputMin},t.Scale.prototype.dispose=function(){return t.prototype.dispose.call(this),this._add.dispose(),this._add=null,this._scale.dispose(),this._scale=null,this},t.Scale}),t(function(t){return t.ScaleExp=function(e,i,s){this._scale=this.output=new t.Scale(e,i),this._exp=this.input=new t.Pow(this.defaultArg(s,2)),this._exp.connect(this._scale)},t.extend(t.ScaleExp,t.SignalBase),Object.defineProperty(t.ScaleExp.prototype,\"exponent\",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),Object.defineProperty(t.ScaleExp.prototype,\"min\",{get:function(){return this._scale.min},set:function(t){this._scale.min=t}}),Object.defineProperty(t.ScaleExp.prototype,\"max\",{get:function(){return this._scale.max},set:function(t){this._scale.max=t}}),t.ScaleExp.prototype.dispose=function(){return t.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._exp.dispose(),this._exp=null,this},t.ScaleExp}),t(function(t){return window.DelayNode&&!AudioContext.prototype.createDelay&&(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),t.Delay=function(){var e=this.optionsObject(arguments,[\"delayTime\",\"maxDelay\"],t.Delay.defaults);this._delayNode=this.input=this.output=this.context.createDelay(this.toSeconds(e.maxDelay)),this.delayTime=new t.Param({param:this._delayNode.delayTime,units:t.Type.Time,value:e.delayTime}),this._readOnly(\"delayTime\")},t.extend(t.Delay),t.Delay.defaults={maxDelay:1,delayTime:0},t.Delay.prototype.dispose=function(){return t.Param.prototype.dispose.call(this),this._delayNode.disconnect(),this._delayNode=null,this._writable(\"delayTime\"),this.delayTime=null,this},t.Delay}),t(function(t){return t.FeedbackCombFilter=function(){var e=this.optionsObject(arguments,[\"delayTime\",\"resonance\"],t.FeedbackCombFilter.defaults);this._delay=this.input=this.output=new t.Delay(e.delayTime),this.delayTime=this._delay.delayTime,this._feedback=new t.Gain(e.resonance,t.Type.NormalRange),this.resonance=this._feedback.gain,this._delay.chain(this._feedback,this._delay),this._readOnly([\"resonance\",\"delayTime\"])},t.extend(t.FeedbackCombFilter),t.FeedbackCombFilter.defaults={delayTime:.1,resonance:.5},t.FeedbackCombFilter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"resonance\",\"delayTime\"]),this._delay.dispose(),this._delay=null,this.delayTime=null,this._feedback.dispose(),this._feedback=null,this.resonance=null,this},t.FeedbackCombFilter}),t(function(t){return t.Follower=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,[\"attack\",\"release\"],t.Follower.defaults);this._abs=new t.Abs,this._filter=this.context.createBiquadFilter(),this._filter.type=\"lowpass\",this._filter.frequency.value=0,this._filter.Q.value=-100,this._frequencyValues=new t.WaveShaper,this._sub=new t.Subtract,this._delay=new t.Delay(this.blockTime),this._mult=new t.Multiply(1e4),this._attack=e.attack,this._release=e.release,this.input.chain(this._abs,this._filter,this.output),this._abs.connect(this._sub,0,1),this._filter.chain(this._delay,this._sub),this._sub.chain(this._mult,this._frequencyValues,this._filter.frequency),this._setAttackRelease(this._attack,this._release)},t.extend(t.Follower),t.Follower.defaults={attack:.05,release:.5},t.Follower.prototype._setAttackRelease=function(e,i){var s=this.blockTime;e=t.Time(e).toFrequency(),i=t.Time(i).toFrequency(),e=Math.max(e,s),i=Math.max(i,s),this._frequencyValues.setMap(function(t){return t<=0?e:i})},Object.defineProperty(t.Follower.prototype,\"attack\",{get:function(){return this._attack},set:function(t){this._attack=t,this._setAttackRelease(this._attack,this._release)}}),Object.defineProperty(t.Follower.prototype,\"release\",{get:function(){return this._release},set:function(t){this._release=t,this._setAttackRelease(this._attack,this._release)}}),t.Follower.prototype.connect=t.Signal.prototype.connect,t.Follower.prototype.dispose=function(){return t.prototype.dispose.call(this),this._filter.disconnect(),this._filter=null,this._frequencyValues.disconnect(),this._frequencyValues=null,this._delay.dispose(),this._delay=null,this._sub.disconnect(),this._sub=null,this._abs.dispose(),this._abs=null,this._mult.dispose(),this._mult=null,this._curve=null,this},t.Follower}),t(function(t){return t.ScaledEnvelope=function(){var e=this.optionsObject(arguments,[\"attack\",\"decay\",\"sustain\",\"release\"],t.Envelope.defaults);t.Envelope.call(this,e),e=this.defaultArg(e,t.ScaledEnvelope.defaults),this._exp=this.output=new t.Pow(e.exponent),this._scale=this.output=new t.Scale(e.min,e.max),this._sig.chain(this._exp,this._scale)},t.extend(t.ScaledEnvelope,t.Envelope),t.ScaledEnvelope.defaults={min:0,max:1,exponent:1},Object.defineProperty(t.ScaledEnvelope.prototype,\"min\",{get:function(){return this._scale.min},set:function(t){this._scale.min=t}}),Object.defineProperty(t.ScaledEnvelope.prototype,\"max\",{get:function(){return this._scale.max},set:function(t){this._scale.max=t}}),Object.defineProperty(t.ScaledEnvelope.prototype,\"exponent\",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),t.ScaledEnvelope.prototype.dispose=function(){return t.Envelope.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._exp.dispose(),this._exp=null,this},t.ScaledEnvelope}),t(function(t){return t.FrequencyEnvelope=function(){var e=this.optionsObject(arguments,[\"attack\",\"decay\",\"sustain\",\"release\"],t.Envelope.defaults);t.ScaledEnvelope.call(this,e),e=this.defaultArg(e,t.FrequencyEnvelope.defaults),this._octaves=e.octaves,this.baseFrequency=e.baseFrequency,this.octaves=e.octaves},t.extend(t.FrequencyEnvelope,t.Envelope),t.FrequencyEnvelope.defaults={baseFrequency:200,octaves:4,exponent:2},Object.defineProperty(t.FrequencyEnvelope.prototype,\"baseFrequency\",{get:function(){return this._scale.min},set:function(t){this._scale.min=this.toFrequency(t),this.octaves=this._octaves}}),Object.defineProperty(t.FrequencyEnvelope.prototype,\"octaves\",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._scale.max=this.baseFrequency*Math.pow(2,t)}}),Object.defineProperty(t.FrequencyEnvelope.prototype,\"exponent\",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),t.FrequencyEnvelope.prototype.dispose=function(){return t.ScaledEnvelope.prototype.dispose.call(this),this},t.FrequencyEnvelope}),t(function(t){return t.Gate=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,[\"threshold\",\"attack\",\"release\"],t.Gate.defaults);this._follower=new t.Follower(e.attack,e.release),this._gt=new t.GreaterThan(this.dbToGain(e.threshold)),this.input.connect(this.output),this.input.chain(this._gt,this._follower,this.output.gain)},t.extend(t.Gate),t.Gate.defaults={attack:.1,release:.1,threshold:-40},Object.defineProperty(t.Gate.prototype,\"threshold\",{get:function(){return this.gainToDb(this._gt.value)},set:function(t){this._gt.value=this.dbToGain(t)}}),Object.defineProperty(t.Gate.prototype,\"attack\",{get:function(){return this._follower.attack},set:function(t){this._follower.attack=t}}),Object.defineProperty(t.Gate.prototype,\"release\",{get:function(){return this._follower.release},set:function(t){this._follower.release=t}}),t.Gate.prototype.dispose=function(){return t.prototype.dispose.call(this),this._follower.dispose(),this._gt.dispose(),this._follower=null,this._gt=null,this},t.Gate}),t(function(t){return t.TimelineState=function(e){t.Timeline.call(this),this._initial=e},t.extend(t.TimelineState,t.Timeline),t.TimelineState.prototype.getValueAtTime=function(t){var e=this.get(t);return null!==e?e.state:this._initial},t.TimelineState.prototype.setStateAtTime=function(t,e){this.add({state:t,time:e})},t.TimelineState}),t(function(t){return t.Clock=function(){t.Emitter.call(this);var e=this.optionsObject(arguments,[\"callback\",\"frequency\"],t.Clock.defaults);this.callback=e.callback,this._nextTick=0,this._lastState=t.State.Stopped,this.frequency=new t.TimelineSignal(e.frequency,t.Type.Frequency),this._readOnly(\"frequency\"),this.ticks=0,this._state=new t.TimelineState(t.State.Stopped),this._boundLoop=this._loop.bind(this),this.context.on(\"tick\",this._boundLoop)},t.extend(t.Clock,t.Emitter),t.Clock.defaults={callback:t.noOp,frequency:1,lookAhead:\"auto\"},Object.defineProperty(t.Clock.prototype,\"state\",{get:function(){return this._state.getValueAtTime(this.now())}}),t.Clock.prototype.start=function(e,i){return e=this.toSeconds(e),this._state.getValueAtTime(e)!==t.State.Started&&this._state.add({state:t.State.Started,time:e,offset:i}),this},t.Clock.prototype.stop=function(e){return e=this.toSeconds(e),this._state.cancel(e),this._state.setStateAtTime(t.State.Stopped,e),this},t.Clock.prototype.pause=function(e){return e=this.toSeconds(e),this._state.getValueAtTime(e)===t.State.Started&&this._state.setStateAtTime(t.State.Paused,e),this},t.Clock.prototype._loop=function(){for(var e=this.now(),i=this.context.lookAhead,s=this.context.updateInterval,n=2*this.context.lag,o=e+i+s+n;o>this._nextTick&&this._state;){var r=this._state.getValueAtTime(this._nextTick);if(r!==this._lastState){this._lastState=r;var a=this._state.get(this._nextTick);r===t.State.Started?(this._nextTick=a.time,this.isUndef(a.offset)||(this.ticks=a.offset),this.emit(\"start\",a.time,this.ticks)):r===t.State.Stopped?(this.ticks=0,this.emit(\"stop\",a.time)):r===t.State.Paused&&this.emit(\"pause\",a.time)}var h=this._nextTick;this.frequency&&(this._nextTick+=1/this.frequency.getValueAtTime(this._nextTick),r===t.State.Started&&(this.callback(h),this.ticks++))}},t.Clock.prototype.getStateAtTime=function(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)},t.Clock.prototype.dispose=function(){t.Emitter.prototype.dispose.call(this),this.context.off(\"tick\",this._boundLoop),this._writable(\"frequency\"),this.frequency.dispose(),this.frequency=null,this._boundLoop=null,this._nextTick=1/0,this.callback=null,this._state.dispose(),this._state=null},t.Clock}),t(function(t){t.IntervalTimeline=function(){this._root=null,this._length=0},t.extend(t.IntervalTimeline),t.IntervalTimeline.prototype.add=function(t){if(this.isUndef(t.time)||this.isUndef(t.duration))throw new Error(\"Tone.IntervalTimeline: events must have time and duration parameters\");var i=new e(t.time,t.time+t.duration,t);for(null===this._root?this._root=i:this._root.insert(i),this._length++;null!==i;)i.updateHeight(),i.updateMax(),this._rebalance(i),i=i.parent;return this},t.IntervalTimeline.prototype.remove=function(t){if(null!==this._root){var e=[];this._root.search(t.time,e);for(var i=0;i<e.length;i++){var s=e[i];if(s.event===t){this._removeNode(s),this._length--;break}}}return this},Object.defineProperty(t.IntervalTimeline.prototype,\"length\",{get:function(){return this._length}}),t.IntervalTimeline.prototype.cancel=function(t){return this.forEachAfter(t,function(t){this.remove(t)}.bind(this)),this},t.IntervalTimeline.prototype._setRoot=function(t){this._root=t,null!==this._root&&(this._root.parent=null)},t.IntervalTimeline.prototype._replaceNodeInParent=function(t,e){null!==t.parent?(t.isLeftChild()?t.parent.left=e:t.parent.right=e,this._rebalance(t.parent)):this._setRoot(e)},t.IntervalTimeline.prototype._removeNode=function(t){if(null===t.left&&null===t.right)this._replaceNodeInParent(t,null);else if(null===t.right)this._replaceNodeInParent(t,t.left);else if(null===t.left)this._replaceNodeInParent(t,t.right);else{var e,i,s=t.getBalance();if(s>0)if(null===t.left.right)e=t.left,e.right=t.right,i=e;else{for(e=t.left.right;null!==e.right;)e=e.right;e.parent.right=e.left,i=e.parent,e.left=t.left,e.right=t.right}else if(null===t.right.left)e=t.right,e.left=t.left,i=e;else{for(e=t.right.left;null!==e.left;)e=e.left;e.parent=e.parent,e.parent.left=e.right,i=e.parent,e.left=t.left,e.right=t.right}null!==t.parent?t.isLeftChild()?t.parent.left=e:t.parent.right=e:this._setRoot(e),this._rebalance(i)}t.dispose()},t.IntervalTimeline.prototype._rotateLeft=function(t){var e=t.parent,i=t.isLeftChild(),s=t.right;t.right=s.left,s.left=t,null!==e?i?e.left=s:e.right=s:this._setRoot(s)},t.IntervalTimeline.prototype._rotateRight=function(t){var e=t.parent,i=t.isLeftChild(),s=t.left;t.left=s.right,s.right=t,null!==e?i?e.left=s:e.right=s:this._setRoot(s)},t.IntervalTimeline.prototype._rebalance=function(t){var e=t.getBalance();e>1?t.left.getBalance()<0?this._rotateLeft(t.left):this._rotateRight(t):e<-1&&(t.right.getBalance()>0?this._rotateRight(t.right):this._rotateLeft(t))},t.IntervalTimeline.prototype.get=function(t){if(null!==this._root){var e=[];if(this._root.search(t,e),e.length>0){for(var i=e[0],s=1;s<e.length;s++)e[s].low>i.low&&(i=e[s]);return i.event}}return null},t.IntervalTimeline.prototype.forEach=function(t){if(null!==this._root){var e=[];null!==this._root&&this._root.traverse(function(t){e.push(t)});for(var i=0;i<e.length;i++){var s=e[i].event;s&&t(s)}}return this},t.IntervalTimeline.prototype.forEachAtTime=function(t,e){if(null!==this._root){var i=[];this._root.search(t,i);for(var s=i.length-1;s>=0;s--){var n=i[s].event;n&&e(n)}}return this},t.IntervalTimeline.prototype.forEachAfter=function(t,e){if(null!==this._root){var i=[];this._root.searchAfter(t,i);for(var s=i.length-1;s>=0;s--){var n=i[s].event;n&&e(n)}}return this},t.IntervalTimeline.prototype.dispose=function(){var t=[];null!==this._root&&this._root.traverse(function(e){t.push(e)});for(var e=0;e<t.length;e++)t[e].dispose();return t=null,this._root=null,this};var e=function(t,e,i){this.event=i,this.low=t,this.high=e,this.max=this.high,this._left=null,this._right=null,this.parent=null,this.height=0};return e.prototype.insert=function(t){t.low<=this.low?null===this.left?this.left=t:this.left.insert(t):null===this.right?this.right=t:this.right.insert(t)},e.prototype.search=function(t,e){t>this.max||(null!==this.left&&this.left.search(t,e),this.low<=t&&this.high>t&&e.push(this),this.low>t||null!==this.right&&this.right.search(t,e))},e.prototype.searchAfter=function(t,e){this.low>=t&&(e.push(this),null!==this.left&&this.left.searchAfter(t,e)),null!==this.right&&this.right.searchAfter(t,e)},e.prototype.traverse=function(t){t(this),null!==this.left&&this.left.traverse(t),null!==this.right&&this.right.traverse(t)},e.prototype.updateHeight=function(){null!==this.left&&null!==this.right?this.height=Math.max(this.left.height,this.right.height)+1:null!==this.right?this.height=this.right.height+1:null!==this.left?this.height=this.left.height+1:this.height=0},e.prototype.updateMax=function(){this.max=this.high,null!==this.left&&(this.max=Math.max(this.max,this.left.max)),null!==this.right&&(this.max=Math.max(this.max,this.right.max))},e.prototype.getBalance=function(){var t=0;return null!==this.left&&null!==this.right?t=this.left.height-this.right.height:null!==this.left?t=this.left.height+1:null!==this.right&&(t=-(this.right.height+1)),t},e.prototype.isLeftChild=function(){return null!==this.parent&&this.parent.left===this},Object.defineProperty(e.prototype,\"left\",{get:function(){return this._left},set:function(t){this._left=t,null!==t&&(t.parent=this),this.updateHeight(),this.updateMax()}}),Object.defineProperty(e.prototype,\"right\",{get:function(){return this._right},set:function(t){this._right=t,null!==t&&(t.parent=this),this.updateHeight(),this.updateMax()}}),e.prototype.dispose=function(){this.parent=null,this._left=null,this._right=null,this.event=null},t.IntervalTimeline}),t(function(t){t.Transport=function(){t.Emitter.call(this),this.loop=!1,this._loopStart=0,this._loopEnd=0,this._ppq=e.defaults.PPQ,this._clock=new t.Clock({callback:this._processTick.bind(this),frequency:0}),this._bindClockEvents(),this.bpm=this._clock.frequency,this.bpm._toUnits=this._toUnits.bind(this),this.bpm._fromUnits=this._fromUnits.bind(this),this.bpm.units=t.Type.BPM,this.bpm.value=e.defaults.bpm,this._readOnly(\"bpm\"),this._timeSignature=e.defaults.timeSignature,this._scheduledEvents={},this._eventID=0,this._timeline=new t.Timeline,this._repeatedEvents=new t.IntervalTimeline,this._onceEvents=new t.Timeline,this._syncedSignals=[],this._swingTicks=e.defaults.PPQ/2,this._swingAmount=0},t.extend(t.Transport,t.Emitter),t.Transport.defaults={bpm:120,swing:0,swingSubdivision:\"8n\",timeSignature:4,loopStart:0,loopEnd:\"4m\",PPQ:192},t.Transport.prototype._processTick=function(e){var i=this._clock.ticks;if(this._swingAmount>0&&i%this._ppq!=0&&i%(2*this._swingTicks)!=0){var s=i%(2*this._swingTicks)/(2*this._swingTicks),n=Math.sin(s*Math.PI)*this._swingAmount;e+=t.Time(2*this._swingTicks/3,\"i\")*n}this.loop&&i===this._loopEnd&&(this.emit(\"loopEnd\",e),this._clock.ticks=this._loopStart,i=this._loopStart,this.emit(\"loopStart\",e,this.seconds),this.emit(\"loop\",e)),this._onceEvents.forEachBefore(i,function(t){t.callback(e),delete this._scheduledEvents[t.id.toString()]}.bind(this)),this._onceEvents.cancelBefore(i),this._timeline.forEachAtTime(i,function(t){t.callback(e)}),this._repeatedEvents.forEachAtTime(i,function(t){(i-t.time)%t.interval==0&&t.callback(e)})},t.Transport.prototype.schedule=function(t,e){var i={time:this.toTicks(e),callback:t},s=this._eventID++;return this._scheduledEvents[s.toString()]={event:i,timeline:this._timeline},this._timeline.add(i),s},t.Transport.prototype.scheduleRepeat=function(t,e,i,s){if(e<=0)throw new Error(\"Tone.Transport: repeat events must have an interval larger than 0\");var n={time:this.toTicks(i),duration:this.toTicks(this.defaultArg(s,1/0)),interval:this.toTicks(e),callback:t},o=this._eventID++;return this._scheduledEvents[o.toString()]={event:n,timeline:this._repeatedEvents},this._repeatedEvents.add(n),o},t.Transport.prototype.scheduleOnce=function(t,e){var i=this._eventID++,s={time:this.toTicks(e),callback:t,id:i};return this._scheduledEvents[i.toString()]={event:s,timeline:this._onceEvents},this._onceEvents.add(s),i},t.Transport.prototype.clear=function(t){if(this._scheduledEvents.hasOwnProperty(t)){var e=this._scheduledEvents[t.toString()];e.timeline.remove(e.event),delete this._scheduledEvents[t.toString()]}return this},t.Transport.prototype.cancel=function(t){return t=this.defaultArg(t,0),t=this.toTicks(t),this._timeline.cancel(t),this._onceEvents.cancel(t),this._repeatedEvents.cancel(t),this},t.Transport.prototype._bindClockEvents=function(){this._clock.on(\"start\",function(e,i){i=t.Time(this._clock.ticks,\"i\").toSeconds(),this.emit(\"start\",e,i)}.bind(this)),this._clock.on(\"stop\",function(t){this.emit(\"stop\",t)}.bind(this)),this._clock.on(\"pause\",function(t){this.emit(\"pause\",t)}.bind(this))},Object.defineProperty(t.Transport.prototype,\"state\",{get:function(){return this._clock.getStateAtTime(this.now())}}),t.Transport.prototype.start=function(t,e){return this.isUndef(e)||(e=this.toTicks(e)),this._clock.start(t,e),this},t.Transport.prototype.stop=function(t){return this._clock.stop(t),this},t.Transport.prototype.pause=function(t){return this._clock.pause(t),this},Object.defineProperty(t.Transport.prototype,\"timeSignature\",{get:function(){return this._timeSignature},set:function(t){this.isArray(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}}),Object.defineProperty(t.Transport.prototype,\"loopStart\",{get:function(){return t.TransportTime(this._loopStart,\"i\").toSeconds()},set:function(t){this._loopStart=this.toTicks(t)}}),Object.defineProperty(t.Transport.prototype,\"loopEnd\",{get:function(){return t.TransportTime(this._loopEnd,\"i\").toSeconds()},set:function(t){this._loopEnd=this.toTicks(t)}}),t.Transport.prototype.setLoopPoints=function(t,e){return this.loopStart=t,this.loopEnd=e,this},Object.defineProperty(t.Transport.prototype,\"swing\",{get:function(){return this._swingAmount},set:function(t){this._swingAmount=t}}),Object.defineProperty(t.Transport.prototype,\"swingSubdivision\",{get:function(){return t.Time(this._swingTicks,\"i\").toNotation()},set:function(t){this._swingTicks=this.toTicks(t)}}),Object.defineProperty(t.Transport.prototype,\"position\",{get:function(){return t.TransportTime(this.ticks,\"i\").toBarsBeatsSixteenths()},set:function(t){var e=this.toTicks(t);this.ticks=e}}),Object.defineProperty(t.Transport.prototype,\"seconds\",{get:function(){return t.TransportTime(this.ticks,\"i\").toSeconds()},set:function(t){var e=this.toTicks(t);this.ticks=e}}),Object.defineProperty(t.Transport.prototype,\"progress\",{get:function(){return this.loop?(this.ticks-this._loopStart)/(this._loopEnd-this._loopStart):0}}),Object.defineProperty(t.Transport.prototype,\"ticks\",{get:function(){return this._clock.ticks},set:function(e){if(this._clock.ticks!==e){var i=this.now();this.state===t.State.Started?(this.emit(\"stop\",i),this._clock.ticks=e,this.emit(\"start\",i,this.seconds)):this._clock.ticks=e}}}),Object.defineProperty(t.Transport.prototype,\"PPQ\",{get:function(){return this._ppq},set:function(t){var e=this.bpm.value;this._ppq=t,this.bpm.value=e}}),Object.defineProperty(t.Transport.prototype,\"latencyHint\",{get:function(){return t.Clock.latencyHint},set:function(e){t.Clock.latencyHint=e}}),t.Transport.prototype._fromUnits=function(t){return 1/(60/t/this.PPQ)},t.Transport.prototype._toUnits=function(t){return t/this.PPQ*60},t.Transport.prototype.nextSubdivision=function(e){e=this.toSeconds(e);var i;if(this.state!==t.State.Started)return 0;i=this._clock._nextTick;var s=t.Time(this.ticks,\"i\"),n=e-s%e;return 0===n&&(n=e),i+n},t.Transport.prototype.syncSignal=function(e,i){i||(i=0!==e._param.value?e._param.value/this.bpm._param.value:0);var s=new t.Gain(i);return this.bpm.chain(s,e._param),this._syncedSignals.push({ratio:s,signal:e,initial:e._param.value}),e._param.value=0,this},t.Transport.prototype.unsyncSignal=function(t){for(var e=this._syncedSignals.length-1;e>=0;e--){var i=this._syncedSignals[e];i.signal===t&&(i.ratio.dispose(),i.signal._param.value=i.initial,this._syncedSignals.splice(e,1))}return this},t.Transport.prototype.dispose=function(){return t.Emitter.prototype.dispose.call(this),this._clock.dispose(),this._clock=null,this._writable(\"bpm\"),this.bpm=null,this._timeline.dispose(),this._timeline=null,this._onceEvents.dispose(),this._onceEvents=null,this._repeatedEvents.dispose(),this._repeatedEvents=null,this};var e=t.Transport;return t.Transport=new e,t.Context.on(\"init\",function(i){i.Transport instanceof e?t.Transport=i.Transport:(t.Transport=new e,i.Transport=t.Transport)}),t.Transport}),t(function(t){return t.Volume=function(){var e=this.optionsObject(arguments,[\"volume\"],t.Volume.defaults);this.output=this.input=new t.Gain(e.volume,t.Type.Decibels),this._unmutedVolume=e.volume,this.volume=this.output.gain,this._readOnly(\"volume\"),this.mute=e.mute},t.extend(t.Volume),t.Volume.defaults={volume:0,mute:!1},Object.defineProperty(t.Volume.prototype,\"mute\",{get:function(){return this.volume.value===-1/0},set:function(t){!this.mute&&t?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!t&&(this.volume.value=this._unmutedVolume)}}),t.Volume.prototype.dispose=function(){return this.input.dispose(),t.prototype.dispose.call(this),this._writable(\"volume\"),this.volume.dispose(),this.volume=null,this},t.Volume}),t(function(t){t.Master=function(){this.createInsOuts(1,1),this._volume=this.output=new t.Volume,this.volume=this._volume.volume,this._readOnly(\"volume\"),this.input.chain(this.output,this.context.destination)},t.extend(t.Master),t.Master.defaults={volume:0,mute:!1},Object.defineProperty(t.Master.prototype,\"mute\",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.Master.prototype.chain=function(){this.input.disconnect(),this.input.chain.apply(this.input,arguments),arguments[arguments.length-1].connect(this.output)},t.Master.prototype.dispose=function(){t.prototype.dispose.call(this),this._writable(\"volume\"),this._volume.dispose(),this._volume=null,this.volume=null},t.prototype.toMaster=function(){return this.connect(t.Master),this},AudioNode.prototype.toMaster=function(){return this.connect(t.Master),this};var e=t.Master;return t.Master=new e,t.Context.on(\"init\",function(i){i.Master instanceof e?t.Master=i.Master:t.Master=new e,i.Master=t.Master}),t.Master}),t(function(t){return t.Source=function(e){e=this.defaultArg(e,t.Source.defaults),this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly(\"volume\"),this._state=new t.TimelineState(t.State.Stopped),this._state.memory=10,this._synced=!1,this._scheduled=[],this._volume.output.output.channelCount=2,this._volume.output.output.channelCountMode=\"explicit\",this.mute=e.mute},t.extend(t.Source),t.Source.defaults={volume:0,mute:!1},Object.defineProperty(t.Source.prototype,\"state\",{get:function(){return this._synced?t.Transport.state===t.State.Started?this._state.getValueAtTime(t.Transport.seconds):t.State.Stopped:this._state.getValueAtTime(this.now())}}),Object.defineProperty(t.Source.prototype,\"mute\",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.Source.prototype._start=t.noOp,t.Source.prototype._stop=t.noOp,t.Source.prototype.start=function(e,i,s){if(e=this.isUndef(e)&&this._synced?t.Transport.seconds:this.toSeconds(e),this.retrigger||this._state.getValueAtTime(e)!==t.State.Started||this.stop(e),this._state.setStateAtTime(t.State.Started,e),this._synced){var n=this._state.get(e);n.offset=this.defaultArg(i,0),n.duration=s;var o=t.Transport.schedule(function(t){this._start(t,i,s)}.bind(this),e);this._scheduled.push(o)}else this._start.apply(this,arguments);return this},t.Source.prototype.stop=function(e){if(e=this.isUndef(e)&&this._synced?t.Transport.seconds:this.toSeconds(e),this._state.cancel(e),this._state.setStateAtTime(t.State.Stopped,e),this._synced){var i=t.Transport.schedule(this._stop.bind(this),e);this._scheduled.push(i)}else this._stop.apply(this,arguments);return this},t.Source.prototype.sync=function(){return this._synced=!0,t.Transport.on(\"start loopStart\",function(e,i){if(i>0){var s=this._state.get(i);if(s&&s.state===t.State.Started&&s.time!==i){var n,o=i-this.toSeconds(s.time);s.duration&&(n=this.toSeconds(s.duration)-o),this._start(e,this.toSeconds(s.offset)+o,n)}}}.bind(this)),t.Transport.on(\"stop pause loopEnd\",function(e){this._state.getValueAtTime(t.Transport.seconds)===t.State.Started&&this._stop(e)}.bind(this)),this},t.Source.prototype.unsync=function(){this._synced=!1,t.Transport.off(\"start stop pause loopEnd loopStart\");for(var e=0;e<this._scheduled.length;e++){var i=this._scheduled[e];t.Transport.clear(i)}return this._scheduled=[],this._state.cancel(0),this},t.Source.prototype.dispose=function(){t.prototype.dispose.call(this),this.unsync(),this._scheduled=null,this._writable(\"volume\"),this._volume.dispose(),this._volume=null,this.volume=null,this._state.dispose(),this._state=null},t.Source}),t(function(t){return window.OscillatorNode&&!OscillatorNode.prototype.start&&(OscillatorNode.prototype.start=OscillatorNode.prototype.noteOn,OscillatorNode.prototype.stop=OscillatorNode.prototype.noteOff,OscillatorNode.prototype.setPeriodicWave||(OscillatorNode.prototype.setPeriodicWave=OscillatorNode.prototype.setWaveTable),AudioContext.prototype.createPeriodicWave||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable)),t.Oscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"type\"],t.Oscillator.defaults);t.Source.call(this,e),this._oscillator=null,this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this._wave=null,this._partials=this.defaultArg(e.partials,[1]),this._phase=e.phase,this._type=null,this.type=e.type,this.phase=this._phase,this._readOnly([\"frequency\",\"detune\"])},t.extend(t.Oscillator,t.Source),t.Oscillator.defaults={type:\"sine\",frequency:440,detune:0,phase:0,partials:[]},t.Oscillator.Type={Sine:\"sine\",Triangle:\"triangle\",Sawtooth:\"sawtooth\",Square:\"square\",Custom:\"custom\"},t.Oscillator.prototype._start=function(t){this._oscillator=this.context.createOscillator(),this._oscillator.setPeriodicWave(this._wave),this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(this.toSeconds(t))},t.Oscillator.prototype._stop=function(t){return this._oscillator&&(this._oscillator.stop(this.toSeconds(t)),this._oscillator=null),this},t.Oscillator.prototype.syncFrequency=function(){return t.Transport.syncSignal(this.frequency),this},t.Oscillator.prototype.unsyncFrequency=function(){return t.Transport.unsyncSignal(this.frequency),this},Object.defineProperty(t.Oscillator.prototype,\"type\",{get:function(){return this._type},set:function(t){var e=this._getRealImaginary(t,this._phase),i=this.context.createPeriodicWave(e[0],e[1]);this._wave=i,null!==this._oscillator&&this._oscillator.setPeriodicWave(this._wave),this._type=t}}),t.Oscillator.prototype._getRealImaginary=function(e,i){var s=2048,n=new Float32Array(s),o=new Float32Array(s),r=1;if(e===t.Oscillator.Type.Custom)r=this._partials.length+1,s=r;else{var a=/^(sine|triangle|square|sawtooth)(\\d+)$/.exec(e);a&&(r=parseInt(a[2])+1,e=a[1],r=Math.max(r,2),s=r)}for(var h=1;h<s;++h){var l,c=2/(h*Math.PI);switch(e){case t.Oscillator.Type.Sine:l=h<=r?1:0;break;case t.Oscillator.Type.Square:l=1&h?2*c:0;break;case t.Oscillator.Type.Sawtooth:l=c*(1&h?1:-1);break;case t.Oscillator.Type.Triangle:l=1&h?c*c*2*(h-1>>1&1?-1:1):0;break;case t.Oscillator.Type.Custom:l=this._partials[h-1];break;default:throw new TypeError(\"Tone.Oscillator: invalid type: \"+e)}0!==l?(n[h]=-l*Math.sin(i*h),o[h]=l*Math.cos(i*h)):(n[h]=0,o[h]=0)}return[n,o]},t.Oscillator.prototype._inverseFFT=function(t,e,i){for(var s=0,n=t.length,o=0;o<n;o++)s+=t[o]*Math.cos(o*i)+e[o]*Math.sin(o*i);return s},t.Oscillator.prototype._getInitialValue=function(){for(var t=this._getRealImaginary(this._type,0),e=t[0],i=t[1],s=0,n=2*Math.PI,o=0;o<8;o++)s=Math.max(this._inverseFFT(e,i,o/8*n),s);return-this._inverseFFT(e,i,this._phase)/s},Object.defineProperty(t.Oscillator.prototype,\"partials\",{get:function(){return this._type!==t.Oscillator.Type.Custom?[]:this._partials},set:function(e){this._partials=e,this.type=t.Oscillator.Type.Custom}}),Object.defineProperty(t.Oscillator.prototype,\"phase\",{get:function(){return this._phase*(180/Math.PI)},set:function(t){this._phase=t*Math.PI/180,this.type=this._type}}),t.Oscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),null!==this._oscillator&&(this._oscillator.disconnect(),this._oscillator=null),this._wave=null,this._writable([\"frequency\",\"detune\"]),this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this._partials=null,this},t.Oscillator}),t(function(t){return t.Zero=function(){this._gain=this.input=this.output=new t.Gain,this.context.getConstant(0).connect(this._gain)},t.extend(t.Zero),t.Zero.prototype.dispose=function(){return t.prototype.dispose.call(this),this._gain.dispose(),this._gain=null,this},t.Zero}),t(function(t){return t.LFO=function(){var e=this.optionsObject(arguments,[\"frequency\",\"min\",\"max\"],t.LFO.defaults);this._oscillator=new t.Oscillator({frequency:e.frequency,type:e.type}),this.frequency=this._oscillator.frequency,this.amplitude=this._oscillator.volume,this.amplitude.units=t.Type.NormalRange,this.amplitude.value=e.amplitude,this._stoppedSignal=new t.Signal(0,t.Type.AudioRange),this._zeros=new t.Zero,this._stoppedValue=0,this._a2g=new t.AudioToGain,this._scaler=this.output=new t.Scale(e.min,e.max),this._units=t.Type.Default,this.units=e.units,this._oscillator.chain(this._a2g,this._scaler),this._zeros.connect(this._a2g),this._stoppedSignal.connect(this._a2g),this._readOnly([\"amplitude\",\"frequency\"]),this.phase=e.phase},t.extend(t.LFO,t.Oscillator),t.LFO.defaults={type:\"sine\",min:0,max:1,phase:0,frequency:\"4n\",amplitude:1,units:t.Type.Default},t.LFO.prototype.start=function(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(0,t),this._oscillator.start(t),this},t.LFO.prototype.stop=function(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(this._stoppedValue,t),this._oscillator.stop(t),this},t.LFO.prototype.sync=function(){return this._oscillator.sync(),this._oscillator.syncFrequency(),this},t.LFO.prototype.unsync=function(){return this._oscillator.unsync(),this._oscillator.unsyncFrequency(),this},Object.defineProperty(t.LFO.prototype,\"min\",{get:function(){return this._toUnits(this._scaler.min)},set:function(t){t=this._fromUnits(t),this._scaler.min=t}}),Object.defineProperty(t.LFO.prototype,\"max\",{get:function(){return this._toUnits(this._scaler.max)},set:function(t){t=this._fromUnits(t),this._scaler.max=t}}),Object.defineProperty(t.LFO.prototype,\"type\",{get:function(){return this._oscillator.type},set:function(t){this._oscillator.type=t,this._stoppedValue=this._oscillator._getInitialValue(),this._stoppedSignal.value=this._stoppedValue}}),Object.defineProperty(t.LFO.prototype,\"phase\",{get:function(){return this._oscillator.phase},set:function(t){this._oscillator.phase=t,this._stoppedValue=this._oscillator._getInitialValue(),this._stoppedSignal.value=this._stoppedValue}}),Object.defineProperty(t.LFO.prototype,\"units\",{get:function(){return this._units},set:function(t){var e=this.min,i=this.max;this._units=t,this.min=e,this.max=i}}),Object.defineProperty(t.LFO.prototype,\"mute\",{get:function(){return this._oscillator.mute},set:function(t){this._oscillator.mute=t}}),Object.defineProperty(t.LFO.prototype,\"state\",{get:function(){return this._oscillator.state}}),t.LFO.prototype.connect=function(e){return e.constructor!==t.Signal&&e.constructor!==t.Param&&e.constructor!==t.TimelineSignal||(this.convert=e.convert,this.units=e.units),t.Signal.prototype.connect.apply(this,arguments),this},t.LFO.prototype._fromUnits=t.Param.prototype._fromUnits,t.LFO.prototype._toUnits=t.Param.prototype._toUnits,t.LFO.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"amplitude\",\"frequency\"]),this._oscillator.dispose(),this._oscillator=null,this._stoppedSignal.dispose(),this._stoppedSignal=null,this._zeros.dispose(),this._zeros=null,this._scaler.dispose(),this._scaler=null,this._a2g.dispose(),this._a2g=null,this.frequency=null,this.amplitude=null,this},t.LFO}),t(function(t){return t.Limiter=function(){var e=this.optionsObject(arguments,[\"threshold\"],t.Limiter.defaults);this._compressor=this.input=this.output=new t.Compressor({attack:.001,decay:.001,threshold:e.threshold}),this.threshold=this._compressor.threshold,this._readOnly(\"threshold\")},t.extend(t.Limiter),t.Limiter.defaults={threshold:-12},t.Limiter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._compressor.dispose(),this._compressor=null,this._writable(\"threshold\"),this.threshold=null,this},t.Limiter}),t(function(t){return t.LowpassCombFilter=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,[\"delayTime\",\"resonance\",\"dampening\"],t.LowpassCombFilter.defaults);this._delay=this.input=new t.Delay(e.delayTime),this.delayTime=this._delay.delayTime,this._lowpass=this.output=this.context.createBiquadFilter(),this._lowpass.Q.value=-3.0102999566398125,this._lowpass.type=\"lowpass\",this.dampening=new t.Param({param:this._lowpass.frequency,units:t.Type.Frequency,value:e.dampening}),this._feedback=new t.Gain(e.resonance,t.Type.NormalRange),this.resonance=this._feedback.gain,this._delay.chain(this._lowpass,this._feedback,this._delay),this._readOnly([\"dampening\",\"resonance\",\"delayTime\"])},t.extend(t.LowpassCombFilter),t.LowpassCombFilter.defaults={delayTime:.1,resonance:.5,dampening:3e3},t.LowpassCombFilter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"dampening\",\"resonance\",\"delayTime\"]),this.dampening.dispose(),this.dampening=null,this.resonance.dispose(),this.resonance=null,this._delay.dispose(),this._delay=null,this.delayTime=null,this._lowpass.disconnect(),this._lowpass=null,this._feedback.disconnect(),this._feedback=null,this},t.LowpassCombFilter}),t(function(t){return t.Merge=function(){this.createInsOuts(2,0),this.left=this.input[0]=new t.Gain,this.right=this.input[1]=new t.Gain,this._merger=this.output=this.context.createChannelMerger(2),this.left.connect(this._merger,0,0),this.right.connect(this._merger,0,1),this.left.channelCount=1,this.right.channelCount=1,this.left.channelCountMode=\"explicit\",this.right.channelCountMode=\"explicit\"},t.extend(t.Merge),t.Merge.prototype.dispose=function(){return t.prototype.dispose.call(this),this.left.dispose(),this.left=null,this.right.dispose(),this.right=null,this._merger.disconnect(),this._merger=null,this},t.Merge}),t(function(t){return t.Meter=function(){var e=this.optionsObject(arguments,[\"type\",\"smoothing\"],t.Meter.defaults);this.type=e.type,this.input=this.output=this._analyser=new t.Analyser(\"waveform\",512),this._analyser.returnType=\"float\",this.smoothing=e.smoothing,this._lastValue=0},t.extend(t.Meter),t.Meter.Type={Level:\"level\",Signal:\"signal\"},t.Meter.defaults={smoothing:.8,type:t.Meter.Type.Level},Object.defineProperty(t.Meter.prototype,\"value\",{get:function(){var e=this._analyser.analyse();if(this.type===t.Meter.Type.Level){for(var i=0,s=0;s<e.length;s++)i+=Math.pow(e[s],2);var n=Math.sqrt(i/e.length);n=Math.max(n,this._lastValue*this.smoothing),this._lastValue=n;var o=n/.35;return Math.sqrt(o)}return e[0]}}),t.Meter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._analyser.dispose(),this._analyser=null,this},t.Meter}),t(function(t){return t.Split=function(){this.createInsOuts(0,2),this._splitter=this.input=this.context.createChannelSplitter(2),this.left=this.output[0]=new t.Gain,this.right=this.output[1]=new t.Gain,this._splitter.connect(this.left,0,0),this._splitter.connect(this.right,1,0)},t.extend(t.Split),t.Split.prototype.dispose=function(){return t.prototype.dispose.call(this),this._splitter.disconnect(),this.left.dispose(),this.left=null,this.right.dispose(),this.right=null,this._splitter=null,this},t.Split}),t(function(t){return t.MidSideSplit=function(){this.createInsOuts(0,2),this._split=this.input=new t.Split,this.mid=this.output[0]=new t.Expr(\"($0 + $1) * $2\"),this.side=this.output[1]=new t.Expr(\"($0 - $1) * $2\"),this._split.connect(this.mid,0,0),this._split.connect(this.mid,1,1),this._split.connect(this.side,0,0),this._split.connect(this.side,1,1),this.context.getConstant(Math.SQRT1_2).connect(this.mid,0,2),this.context.getConstant(Math.SQRT1_2).connect(this.side,0,2)},t.extend(t.MidSideSplit),t.MidSideSplit.prototype.dispose=function(){return t.prototype.dispose.call(this),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._split.dispose(),this._split=null,this},t.MidSideSplit}),t(function(t){return t.MidSideMerge=function(){this.createInsOuts(2,0),this.mid=this.input[0]=new t.Gain,this._left=new t.Expr(\"($0 + $1) * $2\"),this.side=this.input[1]=new t.Gain,this._right=new t.Expr(\"($0 - $1) * $2\"),this._merge=this.output=new t.Merge,this.mid.connect(this._left,0,0),this.side.connect(this._left,0,1),this.mid.connect(this._right,0,0),this.side.connect(this._right,0,1),this._left.connect(this._merge,0,0),this._right.connect(this._merge,0,1),this.context.getConstant(Math.SQRT1_2).connect(this._left,0,2),this.context.getConstant(Math.SQRT1_2).connect(this._right,0,2)},t.extend(t.MidSideMerge),t.MidSideMerge.prototype.dispose=function(){return t.prototype.dispose.call(this),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._left.dispose(),this._left=null,this._right.dispose(),this._right=null,this._merge.dispose(),this._merge=null,this},t.MidSideMerge}),t(function(t){return t.MidSideCompressor=function(e){e=this.defaultArg(e,t.MidSideCompressor.defaults),this._midSideSplit=this.input=new t.MidSideSplit,this._midSideMerge=this.output=new t.MidSideMerge,this.mid=new t.Compressor(e.mid),this.side=new t.Compressor(e.side),this._midSideSplit.mid.chain(this.mid,this._midSideMerge.mid),this._midSideSplit.side.chain(this.side,this._midSideMerge.side),this._readOnly([\"mid\",\"side\"])},t.extend(t.MidSideCompressor),t.MidSideCompressor.defaults={mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},side:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10}},t.MidSideCompressor.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"mid\",\"side\"]),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._midSideSplit.dispose(),this._midSideSplit=null,this._midSideMerge.dispose(),this._midSideMerge=null,this},t.MidSideCompressor}),t(function(t){return t.Mono=function(){this.createInsOuts(1,0),this._merge=this.output=new t.Merge,this.input.connect(this._merge,0,0),this.input.connect(this._merge,0,1),this.input.gain.value=this.dbToGain(-10)},t.extend(t.Mono),t.Mono.prototype.dispose=function(){return t.prototype.dispose.call(this),this._merge.dispose(),this._merge=null,this},t.Mono}),t(function(t){return t.MultibandCompressor=function(e){e=this.defaultArg(arguments,t.MultibandCompressor.defaults),this._splitter=this.input=new t.MultibandSplit({lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this.lowFrequency=this._splitter.lowFrequency,this.highFrequency=this._splitter.highFrequency,this.output=new t.Gain,this.low=new t.Compressor(e.low),this.mid=new t.Compressor(e.mid),this.high=new t.Compressor(e.high),this._splitter.low.chain(this.low,this.output),this._splitter.mid.chain(this.mid,this.output),this._splitter.high.chain(this.high,this.output),this._readOnly([\"high\",\"mid\",\"low\",\"highFrequency\",\"lowFrequency\"])},t.extend(t.MultibandCompressor),t.MultibandCompressor.defaults={low:t.Compressor.defaults,mid:t.Compressor.defaults,high:t.Compressor.defaults,lowFrequency:250,highFrequency:2e3},t.MultibandCompressor.prototype.dispose=function(){return t.prototype.dispose.call(this),this._splitter.dispose(),this._writable([\"high\",\"mid\",\"low\",\"highFrequency\",\"lowFrequency\"]),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this._splitter=null,this.low=null,this.mid=null,this.high=null,this.lowFrequency=null,this.highFrequency=null,this},t.MultibandCompressor}),t(function(t){return t.Panner=function(e){this._hasStereoPanner?(this._panner=this.input=this.output=this.context.createStereoPanner(),this.pan=this._panner.pan):(this._crossFade=new t.CrossFade,this._merger=this.output=new t.Merge,this._splitter=this.input=new t.Split,this.pan=new t.Signal(0,t.Type.AudioRange),this._zero=new t.Zero,this._a2g=new t.AudioToGain,this._zero.connect(this._a2g),this.pan.chain(this._a2g,this._crossFade.fade),this._splitter.connect(this._crossFade,0,0),this._splitter.connect(this._crossFade,1,1),this._crossFade.a.connect(this._merger,0,0),this._crossFade.b.connect(this._merger,0,1)),this.pan.value=this.defaultArg(e,0),this._readOnly(\"pan\")},t.extend(t.Panner),t.Panner.prototype._hasStereoPanner=t.prototype.isFunction(t.context.createStereoPanner),t.Panner.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(\"pan\"),this._hasStereoPanner?(this._panner.disconnect(),this._panner=null,this.pan=null):(this._zero.dispose(),this._zero=null,this._crossFade.dispose(),this._crossFade=null,this._splitter.dispose(),this._splitter=null,this._merger.dispose(),this._merger=null,this.pan.dispose(),this.pan=null,this._a2g.dispose(),this._a2g=null),this},t.Panner}),t(function(t){return t.Panner3D=function(){var e=this.optionsObject(arguments,[\"positionX\",\"positionY\",\"positionZ\"],t.Panner3D.defaults);this._panner=this.input=this.output=this.context.createPanner(),this._panner.panningModel=e.panningModel,this._panner.maxDistance=e.maxDistance,this._panner.distanceModel=e.distanceModel,this._panner.coneOuterGain=e.coneOuterGain,this._panner.coneOuterAngle=e.coneOuterAngle,this._panner.coneInnerAngle=e.coneInnerAngle,this._panner.refDistance=e.refDistance,this._panner.rolloffFactor=e.rolloffFactor,this._orientation=[e.orientationX,e.orientationY,e.orientationZ],this._position=[e.positionX,e.positionY,e.positionZ],this.orientationX=e.orientationX,this.orientationY=e.orientationY,this.orientationZ=e.orientationZ,this.positionX=e.positionX,this.positionY=e.positionY,this.positionZ=e.positionZ},t.extend(t.Panner3D),t.Panner3D.defaults={positionX:0,positionY:0,positionZ:0,orientationX:0,orientationY:0,orientationZ:0,panningModel:\"equalpower\",maxDistance:1e4,distanceModel:\"inverse\",coneOuterGain:0,coneOuterAngle:360,coneInnerAngle:360,refDistance:1,rolloffFactor:1},t.Panner3D.prototype._rampTimeConstant=.01,t.Panner3D.prototype.setPosition=function(t,e,i){if(this._panner.positionX){var s=this.now();this._panner.positionX.setTargetAtTime(t,s,this._rampTimeConstant),this._panner.positionY.setTargetAtTime(e,s,this._rampTimeConstant),this._panner.positionZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this._panner.setPosition(t,e,i);return this._position=Array.prototype.slice.call(arguments),this},t.Panner3D.prototype.setOrientation=function(t,e,i){if(this._panner.orientationX){var s=this.now();this._panner.orientationX.setTargetAtTime(t,s,this._rampTimeConstant),this._panner.orientationY.setTargetAtTime(e,s,this._rampTimeConstant),this._panner.orientationZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this._panner.setOrientation(t,e,i);return this._orientation=Array.prototype.slice.call(arguments),this},Object.defineProperty(t.Panner3D.prototype,\"positionX\",{set:function(t){this._position[0]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[0]}}),Object.defineProperty(t.Panner3D.prototype,\"positionY\",{set:function(t){this._position[1]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[1]}}),Object.defineProperty(t.Panner3D.prototype,\"positionZ\",{set:function(t){this._position[2]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[2]}}),Object.defineProperty(t.Panner3D.prototype,\"orientationX\",{set:function(t){this._orientation[0]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[0]}}),Object.defineProperty(t.Panner3D.prototype,\"orientationY\",{set:function(t){this._orientation[1]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[1]}}),Object.defineProperty(t.Panner3D.prototype,\"orientationZ\",{set:function(t){this._orientation[2]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[2]}}),t.Panner3D._aliasProperty=function(e){Object.defineProperty(t.Panner3D.prototype,e,{set:function(t){this._panner[e]=t},get:function(){return this._panner[e]}})},t.Panner3D._aliasProperty(\"panningModel\"),t.Panner3D._aliasProperty(\"refDistance\"),t.Panner3D._aliasProperty(\"rolloffFactor\"),t.Panner3D._aliasProperty(\"distanceModel\"),t.Panner3D._aliasProperty(\"coneInnerAngle\"),t.Panner3D._aliasProperty(\"coneOuterAngle\"),t.Panner3D._aliasProperty(\"coneOuterGain\"),t.Panner3D._aliasProperty(\"maxDistance\"),t.Panner3D.prototype.dispose=function(){return this._panner.disconnect(),this._panner=null,this._orientation=null,this._position=null,this},t.Panner3D}),t(function(t){return t.PanVol=function(){var e=this.optionsObject(arguments,[\"pan\",\"volume\"],t.PanVol.defaults);this._panner=this.input=new t.Panner(e.pan),this.pan=this._panner.pan,this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._panner.connect(this._volume),this._readOnly([\"pan\",\"volume\"])},t.extend(t.PanVol),t.PanVol.defaults={pan:.5,volume:0},t.PanVol.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"pan\",\"volume\"]),this._panner.dispose(),this._panner=null,this.pan=null,this._volume.dispose(),this._volume=null,this.volume=null,this},t.PanVol}),t(function(t){return t.CtrlInterpolate=function(){var e=this.optionsObject(arguments,[\"values\",\"index\"],t.CtrlInterpolate.defaults);this.values=e.values,this.index=e.index},t.extend(t.CtrlInterpolate),t.CtrlInterpolate.defaults={index:0,values:[]},Object.defineProperty(t.CtrlInterpolate.prototype,\"value\",{get:function(){var t=this.index;t=Math.min(t,this.values.length-1);var e=Math.floor(t),i=this.values[e],s=this.values[Math.ceil(t)];return this._interpolate(t-e,i,s)}}),t.CtrlInterpolate.prototype._interpolate=function(t,e,i){if(this.isArray(e)){for(var s=[],n=0;n<e.length;n++)s[n]=this._interpolate(t,e[n],i[n]);return s}if(this.isObject(e)){var o={};for(var r in e)o[r]=this._interpolate(t,e[r],i[r]);return o}return e=this._toNumber(e),i=this._toNumber(i),(1-t)*e+t*i},t.CtrlInterpolate.prototype._toNumber=function(t){return this.isNumber(t)?t:this.toSeconds(t)},t.CtrlInterpolate.prototype.dispose=function(){this.values=null},t.CtrlInterpolate}),t(function(t){return t.CtrlMarkov=function(t,e){this.values=this.defaultArg(t,{}),this.value=this.defaultArg(e,Object.keys(this.values)[0])},t.extend(t.CtrlMarkov),t.CtrlMarkov.prototype.next=function(){if(this.values.hasOwnProperty(this.value)){var t=this.values[this.value];if(this.isArray(t))for(var e=this._getProbDistribution(t),i=Math.random(),s=0,n=0;n<e.length;n++){var o=e[n];if(i>s&&i<s+o){var r=t[n];this.isObject(r)?this.value=r.value:this.value=r}s+=o}else this.value=t}return this.value},t.CtrlMarkov.prototype._getProbDistribution=function(t){for(var e=[],i=0,s=!1,n=0;n<t.length;n++){var o=t[n];this.isObject(o)?(s=!0,e[n]=o.probability):e[n]=1/t.length,i+=e[n]}if(s)for(var r=0;r<e.length;r++)e[r]=e[r]/i;return e},t.CtrlMarkov.prototype.dispose=function(){this.values=null},t.CtrlMarkov}),t(function(t){return t.CtrlPattern=function(){var e=this.optionsObject(arguments,[\"values\",\"type\"],t.CtrlPattern.defaults);this.values=e.values,this.index=0,this._type=null,this._shuffled=null,this._direction=null,this.type=e.type},t.extend(t.CtrlPattern),t.CtrlPattern.Type={Up:\"up\",Down:\"down\",UpDown:\"upDown\",DownUp:\"downUp\",AlternateUp:\"alternateUp\",AlternateDown:\"alternateDown\",Random:\"random\",RandomWalk:\"randomWalk\",RandomOnce:\"randomOnce\"},t.CtrlPattern.defaults={type:t.CtrlPattern.Type.Up,values:[]},Object.defineProperty(t.CtrlPattern.prototype,\"value\",{get:function(){if(0!==this.values.length){if(1===this.values.length)return this.values[0];this.index=Math.min(this.index,this.values.length-1);var e=this.values[this.index];return this.type===t.CtrlPattern.Type.RandomOnce&&(this.values.length!==this._shuffled.length&&this._shuffleValues(),e=this.values[this._shuffled[this.index]]),e}}}),Object.defineProperty(t.CtrlPattern.prototype,\"type\",{get:function(){return this._type},set:function(e){this._type=e,this._shuffled=null,this._type===t.CtrlPattern.Type.Up||this._type===t.CtrlPattern.Type.UpDown||this._type===t.CtrlPattern.Type.RandomOnce||this._type===t.CtrlPattern.Type.AlternateUp?this.index=0:this._type!==t.CtrlPattern.Type.Down&&this._type!==t.CtrlPattern.Type.DownUp&&this._type!==t.CtrlPattern.Type.AlternateDown||(this.index=this.values.length-1),this._type===t.CtrlPattern.Type.UpDown||this._type===t.CtrlPattern.Type.AlternateUp?this._direction=t.CtrlPattern.Type.Up:this._type!==t.CtrlPattern.Type.DownUp&&this._type!==t.CtrlPattern.Type.AlternateDown||(this._direction=t.CtrlPattern.Type.Down),this._type===t.CtrlPattern.Type.RandomOnce?this._shuffleValues():this._type===t.CtrlPattern.Random&&(this.index=Math.floor(Math.random()*this.values.length))}}),t.CtrlPattern.prototype.next=function(){var e=this.type;return e===t.CtrlPattern.Type.Up?++this.index>=this.values.length&&(this.index=0):e===t.CtrlPattern.Type.Down?--this.index<0&&(this.index=this.values.length-1):e===t.CtrlPattern.Type.UpDown||e===t.CtrlPattern.Type.DownUp?(this._direction===t.CtrlPattern.Type.Up?this.index++:this.index--,this.index<0?(this.index=1,this._direction=t.CtrlPattern.Type.Up):this.index>=this.values.length&&(this.index=this.values.length-2,this._direction=t.CtrlPattern.Type.Down)):e===t.CtrlPattern.Type.Random?this.index=Math.floor(Math.random()*this.values.length):e===t.CtrlPattern.Type.RandomWalk?Math.random()<.5?(this.index--,this.index=Math.max(this.index,0)):(this.index++,this.index=Math.min(this.index,this.values.length-1)):e===t.CtrlPattern.Type.RandomOnce?++this.index>=this.values.length&&(this.index=0,this._shuffleValues()):e===t.CtrlPattern.Type.AlternateUp?(this._direction===t.CtrlPattern.Type.Up?(this.index+=2,this._direction=t.CtrlPattern.Type.Down):(this.index-=1,this._direction=t.CtrlPattern.Type.Up),this.index>=this.values.length&&(this.index=0,this._direction=t.CtrlPattern.Type.Up)):e===t.CtrlPattern.Type.AlternateDown&&(this._direction===t.CtrlPattern.Type.Up?(this.index+=1,this._direction=t.CtrlPattern.Type.Down):(this.index-=2,this._direction=t.CtrlPattern.Type.Up),this.index<0&&(this.index=this.values.length-1,this._direction=t.CtrlPattern.Type.Down)),this.value},t.CtrlPattern.prototype._shuffleValues=function(){var t=[];this._shuffled=[];for(var e=0;e<this.values.length;e++)t[e]=e;for(;t.length>0;){var i=t.splice(Math.floor(t.length*Math.random()),1);this._shuffled.push(i[0])}},t.CtrlPattern.prototype.dispose=function(){this._shuffled=null,this.values=null},t.CtrlPattern}),t(function(t){return t.CtrlRandom=function(){var e=this.optionsObject(arguments,[\"min\",\"max\"],t.CtrlRandom.defaults);this.min=e.min,this.max=e.max,this.integer=e.integer},t.extend(t.CtrlRandom),t.CtrlRandom.defaults={min:0,max:1,integer:!1},Object.defineProperty(t.CtrlRandom.prototype,\"value\",{get:function(){var t=this.toSeconds(this.min),e=this.toSeconds(this.max),i=Math.random(),s=i*t+(1-i)*e;return this.integer&&(s=Math.floor(s)),s}}),t.CtrlRandom}),t(function(t){return window.AudioBuffer&&!AudioBuffer.prototype.copyToChannel&&(AudioBuffer.prototype.copyToChannel=function(t,e,i){var s=this.getChannelData(e);i=i||0;for(var n=0;n<s.length;n++)s[n+i]=t[n]},AudioBuffer.prototype.copyFromChannel=function(t,e,i){var s=this.getChannelData(e);i=i||0;for(var n=0;n<s.length;n++)t[n]=s[n+i]}),t.Buffer=function(){var e=this.optionsObject(arguments,[\"url\",\"onload\",\"onerror\"],t.Buffer.defaults);this._buffer=null,this._reversed=e.reverse,this._xhr=null,e.url instanceof AudioBuffer||e.url instanceof t.Buffer?(this.set(e.url),e.onload&&e.onload(this)):this.isString(e.url)&&this.load(e.url,e.onload,e.onerror)},t.extend(t.Buffer),t.Buffer.defaults={url:void 0,reverse:!1},t.Buffer.prototype.set=function(e){return e instanceof t.Buffer?this._buffer=e.get():this._buffer=e,this},t.Buffer.prototype.get=function(){return this._buffer},t.Buffer.prototype.load=function(e,i,s){return new Promise(function(n,o){this._xhr=t.Buffer.load(e,function(t){this._xhr=null,this.set(t),n(this),i&&i(this)}.bind(this),function(t){this._xhr=null,o(t),s&&s(t)}.bind(this))}.bind(this))},t.Buffer.prototype.dispose=function(){return t.Emitter.prototype.dispose.call(this),this._buffer=null,this._xhr&&(t.Buffer._currentDownloads--,this._xhr.abort(),this._xhr=null),this},Object.defineProperty(t.Buffer.prototype,\"loaded\",{get:function(){return this.length>0}}),Object.defineProperty(t.Buffer.prototype,\"duration\",{get:function(){return this._buffer?this._buffer.duration:0}}),Object.defineProperty(t.Buffer.prototype,\"length\",{get:function(){return this._buffer?this._buffer.length:0}}),Object.defineProperty(t.Buffer.prototype,\"numberOfChannels\",{get:function(){return this._buffer?this._buffer.numberOfChannels:0}}),t.Buffer.prototype.fromArray=function(t){var e=t[0].length>0,i=e?t.length:1,s=e?t[0].length:t.length,n=this.context.createBuffer(i,s,this.context.sampleRate);e||1!==i||(t=[t]);for(var o=0;o<i;o++)n.copyToChannel(t[o],o);return this._buffer=n,this},t.Buffer.prototype.toMono=function(t){if(this.isNumber(t))this.fromArray(this.toArray(t));else{for(var e=new Float32Array(this.length),i=this.numberOfChannels,s=0;s<i;s++)for(var n=this.toArray(s),o=0;o<n.length;o++)e[o]+=n[o];e=e.map(function(t){return t/i}),this.fromArray(e)}return this},t.Buffer.prototype.toArray=function(t){if(this.isNumber(t))return this.getChannelData(t);if(1===this.numberOfChannels)return this.toArray(0);for(var e=[],i=0;i<this.numberOfChannels;i++)e[i]=this.getChannelData(i);return e},t.Buffer.prototype.getChannelData=function(t){return this._buffer.getChannelData(t)},t.Buffer.prototype.slice=function(e,i){i=this.defaultArg(i,this.duration);for(var s=Math.floor(this.context.sampleRate*this.toSeconds(e)),n=Math.floor(this.context.sampleRate*this.toSeconds(i)),o=[],r=0;r<this.numberOfChannels;r++)o[r]=this.toArray(r).slice(s,n);return(new t.Buffer).fromArray(o)},t.Buffer.prototype._reverse=function(){if(this.loaded)for(var t=0;t<this.numberOfChannels;t++)Array.prototype.reverse.call(this.getChannelData(t));return this},Object.defineProperty(t.Buffer.prototype,\"reverse\",{get:function(){return this._reversed},set:function(t){this._reversed!==t&&(this._reversed=t,this._reverse())}}),t.Emitter.mixin(t.Buffer),t.Buffer._downloadQueue=[],t.Buffer._currentDownloads=0,t.Buffer.baseUrl=\"\",t.Buffer.load=function(e,i,s){function n(e){if(!s)throw new Error(e);s(e),t.Buffer.emit(\"error\",e)}function o(){for(var e=0,i=0;i<t.Buffer._downloadQueue.length;i++)e+=t.Buffer._downloadQueue[i].progress;t.Buffer.emit(\"progress\",e/t.Buffer._downloadQueue.length)}i=i||t.noOp;var r=new XMLHttpRequest;return r.open(\"GET\",t.Buffer.baseUrl+e,!0),r.responseType=\"arraybuffer\",r.progress=0,t.Buffer._currentDownloads++,t.Buffer._downloadQueue.push(r),r.addEventListener(\"load\",function(){200===r.status?t.context.decodeAudioData(r.response,function(e){r.progress=1,o(),i(e),0===--t.Buffer._currentDownloads&&(t.Buffer._downloadQueue=[],t.Buffer.emit(\"load\"))},function(){n(\"Tone.Buffer: could not decode audio data: \"+e)}):n(\"Tone.Buffer: could not locate file: \"+e)}),r.addEventListener(\"error\",n),r.addEventListener(\"progress\",function(t){t.lengthComputable&&(r.progress=t.loaded/t.total*.95,o())}),r.send(),r},t.Buffer.cancelDownloads=function(){return t.Buffer._downloadQueue.forEach(function(t){t.abort()}),t.Buffer._currentDownloads=0,t.Buffer},t.Buffer.supportsType=function(t){var e=t.split(\".\");return e=e[e.length-1],\"\"!==document.createElement(\"audio\").canPlayType(\"audio/\"+e)},t.loaded=function(){function e(){t.Buffer.off(\"load\",i),t.Buffer.off(\"error\",s)}var i,s;return new Promise(function(e,n){i=function(){e()},s=function(){n()},t.Buffer.on(\"load\",i),t.Buffer.on(\"error\",s)}).then(e).catch(function(t){throw e(),new Error(t)})},t.Buffer}),t(function(t){return t.Buffers=function(t,e,i){this._buffers={},this.baseUrl=this.defaultArg(i,\"\"),t=this._flattenUrls(t),this._loadingCount=0;for(var s in t)this._loadingCount++,this.add(s,t[s],this._bufferLoaded.bind(this,e))},t.extend(t.Buffers),t.Buffers.prototype.has=function(t){return this._buffers.hasOwnProperty(t)},t.Buffers.prototype.get=function(t){if(this.has(t))return this._buffers[t];throw new Error(\"Tone.Buffers: no buffer named \"+t)},t.Buffers.prototype._bufferLoaded=function(t){0===--this._loadingCount&&t&&t(this)},Object.defineProperty(t.Buffers.prototype,\"loaded\",{get:function(){var t=!0;for(var e in this._buffers){var i=this.get(e);t=t&&i.loaded}return t}}),t.Buffers.prototype.add=function(e,i,s){return s=this.defaultArg(s,t.noOp),i instanceof t.Buffer?(this._buffers[e]=i,s(this)):i instanceof AudioBuffer?(this._buffers[e]=new t.Buffer(i),s(this)):this.isString(i)&&(this._buffers[e]=new t.Buffer(this.baseUrl+i,s)),this},t.Buffers.prototype._flattenUrls=function(t){var e={};for(var i in t)if(t.hasOwnProperty(i))if(this.isObject(t[i])){var s=this._flattenUrls(t[i]);for(var n in s)s.hasOwnProperty(n)&&(e[i+\".\"+n]=s[n])}else e[i]=t[i];return e},t.Buffers.prototype.dispose=function(){for(var t in this._buffers)this._buffers[t].dispose();return this._buffers=null,this},t.Buffers}),t(function(t){var e={};return t.prototype.send=function(i,s){e.hasOwnProperty(i)||(e[i]=this.context.createGain()),s=this.defaultArg(s,0);var n=new t.Gain(s,t.Type.Decibels);return this.output.chain(n,e[i]),n},t.prototype.receive=function(t,i){return e.hasOwnProperty(t)||(e[t]=this.context.createGain()),this.isUndef(i)&&(i=this.input),e[t].connect(i),this},t.Context.on(\"init\",function(t){t.Buses?e=t.Buses:(e={},t.Buses=e)}),t}),t(function(t){return t.Draw=function(){this._events=new t.Timeline,this.expiration=.25,this.anticipation=.008,this._boundDrawLoop=this._drawLoop.bind(this)},t.extend(t.Draw),t.Draw.prototype.schedule=function(t,e){return this._events.add({callback:t,time:this.toSeconds(e)}),1===this._events.length&&requestAnimationFrame(this._boundDrawLoop),this},t.Draw.prototype.cancel=function(t){return this._events.cancel(this.toSeconds(t)),this},t.Draw.prototype._drawLoop=function(){for(var e=t.now();this._events.length&&this._events.peek().time-this.anticipation<=e;){var i=this._events.shift();e-i.time<=this.expiration&&i.callback()}this._events.length>0&&requestAnimationFrame(this._boundDrawLoop)},t.Draw=new t.Draw,t.Draw}),t(function(t){t.Listener=function(){var t=this.optionsObject(arguments,[\"positionX\",\"positionY\",\"positionZ\"],e.defaults);this._orientation=[t.forwardX,t.forwardY,t.forwardZ,t.upX,t.upY,t.upZ],this._position=[t.positionX,t.positionY,t.positionZ],this.forwardX=t.forwardX,this.forwardY=t.forwardY,this.forwardZ=t.forwardZ,this.upX=t.upX,this.upY=t.upY,this.upZ=t.upZ,this.positionX=t.positionX,this.positionY=t.positionY,this.positionZ=t.positionZ},t.extend(t.Listener),t.Listener.defaults={positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:1,upX:0,upY:1,upZ:0},t.Listener.prototype._rampTimeConstant=.01,t.Listener.prototype.setPosition=function(t,e,i){if(this.context.listener.positionX){var s=this.now();this.context.listener.positionX.setTargetAtTime(t,s,this._rampTimeConstant),this.context.listener.positionY.setTargetAtTime(e,s,this._rampTimeConstant),this.context.listener.positionZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this.context.listener.setPosition(t,e,i);return this._position=Array.prototype.slice.call(arguments),this},t.Listener.prototype.setOrientation=function(t,e,i,s,n,o){if(this.context.listener.forwardX){var r=this.now();this.context.listener.forwardX.setTargetAtTime(t,r,this._rampTimeConstant),this.context.listener.forwardY.setTargetAtTime(e,r,this._rampTimeConstant),this.context.listener.forwardZ.setTargetAtTime(i,r,this._rampTimeConstant),this.context.listener.upX.setTargetAtTime(s,r,this._rampTimeConstant),this.context.listener.upY.setTargetAtTime(n,r,this._rampTimeConstant),this.context.listener.upZ.setTargetAtTime(o,r,this._rampTimeConstant)}else this.context.listener.setOrientation(t,e,i,s,n,o);return this._orientation=Array.prototype.slice.call(arguments),this},Object.defineProperty(t.Listener.prototype,\"positionX\",{set:function(t){this._position[0]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[0]}}),Object.defineProperty(t.Listener.prototype,\"positionY\",{set:function(t){this._position[1]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[1]}}),Object.defineProperty(t.Listener.prototype,\"positionZ\",{set:function(t){this._position[2]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[2]}}),Object.defineProperty(t.Listener.prototype,\"forwardX\",{set:function(t){this._orientation[0]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[0]}}),Object.defineProperty(t.Listener.prototype,\"forwardY\",{set:function(t){this._orientation[1]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[1]}}),Object.defineProperty(t.Listener.prototype,\"forwardZ\",{set:function(t){this._orientation[2]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[2]}}),Object.defineProperty(t.Listener.prototype,\"upX\",{set:function(t){this._orientation[3]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[3]}}),Object.defineProperty(t.Listener.prototype,\"upY\",{set:function(t){this._orientation[4]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[4]}}),Object.defineProperty(t.Listener.prototype,\"upZ\",{set:function(t){this._orientation[5]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[5]}}),t.Listener.prototype.dispose=function(){return this._orientation=null,this._position=null,this};var e=t.Listener;return t.Listener=new e,t.Context.on(\"init\",function(i){i.Listener instanceof e?t.Listener=i.Listener:t.Listener=new e,i.Listener=t.Listener}),t.Listener}),t(function(t){return!window.hasOwnProperty(\"OfflineAudioContext\")&&window.hasOwnProperty(\"webkitOfflineAudioContext\")&&(window.OfflineAudioContext=window.webkitOfflineAudioContext),t.OfflineContext=function(e,i,s){var n=new OfflineAudioContext(e,i*s,s);t.Context.call(this,n),this._duration=i,this._currentTime=0,this.lookAhead=this.blockTime,this.updateInterval=this.blockTime},t.extend(t.OfflineContext,t.Context),t.OfflineContext.prototype.now=function(){return this._currentTime},t.OfflineContext.prototype._createWorker=function(){return{postMessage:function(){}}},t.OfflineContext.prototype.render=function(){for(;this._duration-this._currentTime>=0;)this.emit(\"tick\"),this._currentTime+=t.prototype.blockTime;return new Promise(function(t){this._context.oncomplete=function(e){t(e.renderedBuffer)},this._context.startRendering()}.bind(this))},t.OfflineContext}),t(function(t){return t.Offline=function(e,i){var s=t.context.sampleRate,n=t.context,o=new t.OfflineContext(2,i,s);t.context=o,e(t.Transport);var r=o.render();return t.context=n,r.then(function(e){return new t.Buffer(e)})},t.Offline}),t(function(t){return t.Effect=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,[\"wet\"],t.Effect.defaults);this._dryWet=new t.CrossFade(e.wet),this.wet=this._dryWet.fade,this.effectSend=new t.Gain,this.effectReturn=new t.Gain,this.input.connect(this._dryWet.a),this.input.connect(this.effectSend),this.effectReturn.connect(this._dryWet.b),this._dryWet.connect(this.output),this._readOnly([\"wet\"])},t.extend(t.Effect),t.Effect.defaults={wet:1},t.Effect.prototype.connectEffect=function(t){return this.effectSend.chain(t,this.effectReturn),this},t.Effect.prototype.dispose=function(){return t.prototype.dispose.call(this),this._dryWet.dispose(),this._dryWet=null,this.effectSend.dispose(),this.effectSend=null,this.effectReturn.dispose(),this.effectReturn=null,this._writable([\"wet\"]),this.wet=null,this},t.Effect}),t(function(t){return t.AutoFilter=function(){var e=this.optionsObject(arguments,[\"frequency\",\"baseFrequency\",\"octaves\"],t.AutoFilter.defaults);t.Effect.call(this,e),this._lfo=new t.LFO({frequency:e.frequency,amplitude:e.depth}),this.depth=this._lfo.amplitude,this.frequency=this._lfo.frequency,this.filter=new t.Filter(e.filter),this._octaves=0,this.connectEffect(this.filter),this._lfo.connect(this.filter.frequency),this.type=e.type,this._readOnly([\"frequency\",\"depth\"]),this.octaves=e.octaves,this.baseFrequency=e.baseFrequency},t.extend(t.AutoFilter,t.Effect),t.AutoFilter.defaults={frequency:1,type:\"sine\",depth:1,baseFrequency:200,octaves:2.6,filter:{type:\"lowpass\",rolloff:-12,Q:1}},t.AutoFilter.prototype.start=function(t){return this._lfo.start(t),this},t.AutoFilter.prototype.stop=function(t){return this._lfo.stop(t),this},t.AutoFilter.prototype.sync=function(t){return this._lfo.sync(t),this},t.AutoFilter.prototype.unsync=function(){return this._lfo.unsync(),this},Object.defineProperty(t.AutoFilter.prototype,\"type\",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),Object.defineProperty(t.AutoFilter.prototype,\"baseFrequency\",{get:function(){return this._lfo.min},set:function(t){this._lfo.min=this.toFrequency(t),this.octaves=this._octaves}}),Object.defineProperty(t.AutoFilter.prototype,\"octaves\",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._lfo.max=this.baseFrequency*Math.pow(2,t)}}),t.AutoFilter.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._lfo.dispose(),this._lfo=null,this.filter.dispose(),this.filter=null,this._writable([\"frequency\",\"depth\"]),this.frequency=null,this.depth=null,this},t.AutoFilter}),t(function(t){return t.AutoPanner=function(){var e=this.optionsObject(arguments,[\"frequency\"],t.AutoPanner.defaults);t.Effect.call(this,e),this._lfo=new t.LFO({frequency:e.frequency,amplitude:e.depth,min:-1,max:1}),this.depth=this._lfo.amplitude,this._panner=new t.Panner,this.frequency=this._lfo.frequency,this.connectEffect(this._panner),this._lfo.connect(this._panner.pan),this.type=e.type,this._readOnly([\"depth\",\"frequency\"])},t.extend(t.AutoPanner,t.Effect),t.AutoPanner.defaults={frequency:1,type:\"sine\",depth:1},t.AutoPanner.prototype.start=function(t){return this._lfo.start(t),this},t.AutoPanner.prototype.stop=function(t){return this._lfo.stop(t),this},t.AutoPanner.prototype.sync=function(t){return this._lfo.sync(t),this},t.AutoPanner.prototype.unsync=function(){return this._lfo.unsync(),this},Object.defineProperty(t.AutoPanner.prototype,\"type\",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),t.AutoPanner.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._lfo.dispose(),this._lfo=null,this._panner.dispose(),this._panner=null,this._writable([\"depth\",\"frequency\"]),this.frequency=null,this.depth=null,this},t.AutoPanner}),t(function(t){return t.AutoWah=function(){var e=this.optionsObject(arguments,[\"baseFrequency\",\"octaves\",\"sensitivity\"],t.AutoWah.defaults);t.Effect.call(this,e),this.follower=new t.Follower(e.follower),this._sweepRange=new t.ScaleExp(0,1,.5),this._baseFrequency=e.baseFrequency,this._octaves=e.octaves,this._inputBoost=new t.Gain,this._bandpass=new t.Filter({rolloff:-48,frequency:0,Q:e.Q}),this._peaking=new t.Filter(0,\"peaking\"),this._peaking.gain.value=e.gain,this.gain=this._peaking.gain,this.Q=this._bandpass.Q,this.effectSend.chain(this._inputBoost,this.follower,this._sweepRange),this._sweepRange.connect(this._bandpass.frequency),this._sweepRange.connect(this._peaking.frequency),this.effectSend.chain(this._bandpass,this._peaking,this.effectReturn),this._setSweepRange(),this.sensitivity=e.sensitivity,this._readOnly([\"gain\",\"Q\"])},t.extend(t.AutoWah,t.Effect),t.AutoWah.defaults={baseFrequency:100,octaves:6,sensitivity:0,Q:2,gain:2,follower:{attack:.3,release:.5}},Object.defineProperty(t.AutoWah.prototype,\"octaves\",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._setSweepRange()}}),Object.defineProperty(t.AutoWah.prototype,\"baseFrequency\",{get:function(){return this._baseFrequency},set:function(t){this._baseFrequency=t,this._setSweepRange()}}),Object.defineProperty(t.AutoWah.prototype,\"sensitivity\",{get:function(){return this.gainToDb(1/this._inputBoost.gain.value)},set:function(t){this._inputBoost.gain.value=1/this.dbToGain(t)}}),t.AutoWah.prototype._setSweepRange=function(){this._sweepRange.min=this._baseFrequency,this._sweepRange.max=Math.min(this._baseFrequency*Math.pow(2,this._octaves),this.context.sampleRate/2)},t.AutoWah.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this.follower.dispose(),this.follower=null,this._sweepRange.dispose(),this._sweepRange=null,this._bandpass.dispose(),this._bandpass=null,this._peaking.dispose(),this._peaking=null,this._inputBoost.dispose(),this._inputBoost=null,this._writable([\"gain\",\"Q\"]),this.gain=null,this.Q=null,this},t.AutoWah}),t(function(t){return t.BitCrusher=function(){var e=this.optionsObject(arguments,[\"bits\"],t.BitCrusher.defaults);t.Effect.call(this,e);var i=1/Math.pow(2,e.bits-1);this._subtract=new t.Subtract,this._modulo=new t.Modulo(i),this._bits=e.bits,this.effectSend.fan(this._subtract,this._modulo),this._modulo.connect(this._subtract,0,1),this._subtract.connect(this.effectReturn)},t.extend(t.BitCrusher,t.Effect),t.BitCrusher.defaults={bits:4},Object.defineProperty(t.BitCrusher.prototype,\"bits\",{get:function(){return this._bits},set:function(t){this._bits=t;var e=1/Math.pow(2,t-1);this._modulo.value=e}}),t.BitCrusher.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._subtract.dispose(),this._subtract=null,this._modulo.dispose(),this._modulo=null,this},t.BitCrusher}),t(function(t){return t.Chebyshev=function(){var e=this.optionsObject(arguments,[\"order\"],t.Chebyshev.defaults);t.Effect.call(this,e),this._shaper=new t.WaveShaper(4096),this._order=e.order,this.connectEffect(this._shaper),this.order=e.order,this.oversample=e.oversample},t.extend(t.Chebyshev,t.Effect),t.Chebyshev.defaults={order:1,oversample:\"none\"},t.Chebyshev.prototype._getCoefficient=function(t,e,i){return i.hasOwnProperty(e)?i[e]:(i[e]=0===e?0:1===e?t:2*t*this._getCoefficient(t,e-1,i)-this._getCoefficient(t,e-2,i),i[e])},Object.defineProperty(t.Chebyshev.prototype,\"order\",{get:function(){return this._order},set:function(t){this._order=t;for(var e=new Array(4096),i=e.length,s=0;s<i;++s){var n=2*s/i-1;e[s]=0===n?0:this._getCoefficient(n,t,{})}this._shaper.curve=e}}),Object.defineProperty(t.Chebyshev.prototype,\"oversample\",{get:function(){return this._shaper.oversample},set:function(t){this._shaper.oversample=t}}),t.Chebyshev.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this},t.Chebyshev}),t(function(t){return t.StereoEffect=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,[\"wet\"],t.Effect.defaults);this._dryWet=new t.CrossFade(e.wet),this.wet=this._dryWet.fade,this._split=new t.Split,this.effectSendL=this._split.left,this.effectSendR=this._split.right,this._merge=new t.Merge,this.effectReturnL=this._merge.left,this.effectReturnR=this._merge.right,this.input.connect(this._split),this.input.connect(this._dryWet,0,0),this._merge.connect(this._dryWet,0,1),this._dryWet.connect(this.output),this._readOnly([\"wet\"])},t.extend(t.StereoEffect,t.Effect),t.StereoEffect.prototype.dispose=function(){return t.prototype.dispose.call(this),this._dryWet.dispose(),this._dryWet=null,this._split.dispose(),this._split=null,this._merge.dispose(),this._merge=null,this.effectSendL=null,this.effectSendR=null,this.effectReturnL=null,this.effectReturnR=null,this._writable([\"wet\"]),this.wet=null,this},t.StereoEffect}),t(function(t){return t.FeedbackEffect=function(){var e=this.optionsObject(arguments,[\"feedback\"]);e=this.defaultArg(e,t.FeedbackEffect.defaults),t.Effect.call(this,e),this._feedbackGain=new t.Gain(e.feedback,t.Type.NormalRange),this.feedback=this._feedbackGain.gain,this.effectReturn.chain(this._feedbackGain,this.effectSend),this._readOnly([\"feedback\"])},t.extend(t.FeedbackEffect,t.Effect),t.FeedbackEffect.defaults={feedback:.125},t.FeedbackEffect.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._writable([\"feedback\"]),this._feedbackGain.dispose(),this._feedbackGain=null,this.feedback=null,this},t.FeedbackEffect}),t(function(t){return t.StereoXFeedbackEffect=function(){var e=this.optionsObject(arguments,[\"feedback\"],t.FeedbackEffect.defaults);t.StereoEffect.call(this,e),this.feedback=new t.Signal(e.feedback,t.Type.NormalRange),this._feedbackLR=new t.Gain,this._feedbackRL=new t.Gain,this.effectReturnL.chain(this._feedbackLR,this.effectSendR),this.effectReturnR.chain(this._feedbackRL,this.effectSendL),this.feedback.fan(this._feedbackLR.gain,this._feedbackRL.gain),this._readOnly([\"feedback\"])},t.extend(t.StereoXFeedbackEffect,t.FeedbackEffect),t.StereoXFeedbackEffect.prototype.dispose=function(){return t.StereoEffect.prototype.dispose.call(this),this._writable([\"feedback\"]),this.feedback.dispose(),this.feedback=null,this._feedbackLR.dispose(),this._feedbackLR=null,this._feedbackRL.dispose(),this._feedbackRL=null,this},t.StereoXFeedbackEffect}),t(function(t){return t.Chorus=function(){var e=this.optionsObject(arguments,[\"frequency\",\"delayTime\",\"depth\"],t.Chorus.defaults);t.StereoXFeedbackEffect.call(this,e),this._depth=e.depth,this._delayTime=e.delayTime/1e3,this._lfoL=new t.LFO({frequency:e.frequency,min:0,max:1}),this._lfoR=new t.LFO({frequency:e.frequency,min:0,max:1,phase:180}),this._delayNodeL=new t.Delay,this._delayNodeR=new t.Delay,this.frequency=this._lfoL.frequency,this.effectSendL.chain(this._delayNodeL,this.effectReturnL),this.effectSendR.chain(this._delayNodeR,this.effectReturnR),this.effectSendL.connect(this.effectReturnL),this.effectSendR.connect(this.effectReturnR),this._lfoL.connect(this._delayNodeL.delayTime),this._lfoR.connect(this._delayNodeR.delayTime),this._lfoL.start(),this._lfoR.start(),this._lfoL.frequency.connect(this._lfoR.frequency),this.depth=this._depth,this.frequency.value=e.frequency,this.type=e.type,this._readOnly([\"frequency\"]),this.spread=e.spread},t.extend(t.Chorus,t.StereoXFeedbackEffect),t.Chorus.defaults={frequency:1.5,delayTime:3.5,depth:.7,feedback:.1,type:\"sine\",spread:180},Object.defineProperty(t.Chorus.prototype,\"depth\",{get:function(){return this._depth},set:function(t){this._depth=t;var e=this._delayTime*t;this._lfoL.min=Math.max(this._delayTime-e,0),this._lfoL.max=this._delayTime+e,this._lfoR.min=Math.max(this._delayTime-e,0),this._lfoR.max=this._delayTime+e}}),Object.defineProperty(t.Chorus.prototype,\"delayTime\",{get:function(){return 1e3*this._delayTime},set:function(t){this._delayTime=t/1e3,this.depth=this._depth}}),Object.defineProperty(t.Chorus.prototype,\"type\",{get:function(){return this._lfoL.type},set:function(t){this._lfoL.type=t,this._lfoR.type=t}}),Object.defineProperty(t.Chorus.prototype,\"spread\",{get:function(){return this._lfoR.phase-this._lfoL.phase},set:function(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}}),t.Chorus.prototype.dispose=function(){return t.StereoXFeedbackEffect.prototype.dispose.call(this),this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null,this._delayNodeL.dispose(),this._delayNodeL=null,this._delayNodeR.dispose(),this._delayNodeR=null,this._writable(\"frequency\"),this.frequency=null,this},t.Chorus}),t(function(t){return t.Convolver=function(){var e=this.optionsObject(arguments,[\"url\",\"onload\"],t.Convolver.defaults);t.Effect.call(this,e),this._convolver=this.context.createConvolver(),this._buffer=new t.Buffer,this.isString(e.url)?this._buffer.load(e.url,function(t){this.buffer=t,e.onload()}.bind(this)):e.url&&(this.buffer=e.url,e.onload()),this.connectEffect(this._convolver)},t.extend(t.Convolver,t.Effect),t.Convolver.defaults={onload:t.noOp},Object.defineProperty(t.Convolver.prototype,\"buffer\",{get:function(){return this._buffer.get()},set:function(t){this._buffer.set(t),this._convolver.buffer=this._buffer.get()}}),t.Convolver.prototype.load=function(t,e){return this._buffer.load(t,function(t){this.buffer=t,e&&e()}.bind(this))},t.Convolver.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._convolver.disconnect(),this._convolver=null,this._buffer.dispose(),this._buffer=null,this},t.Convolver}),t(function(t){return t.Distortion=function(){var e=this.optionsObject(arguments,[\"distortion\"],t.Distortion.defaults);t.Effect.call(this,e),this._shaper=new t.WaveShaper(4096),this._distortion=e.distortion,this.connectEffect(this._shaper),this.distortion=e.distortion,this.oversample=e.oversample},t.extend(t.Distortion,t.Effect),t.Distortion.defaults={distortion:.4,oversample:\"none\"},Object.defineProperty(t.Distortion.prototype,\"distortion\",{get:function(){return this._distortion},set:function(t){this._distortion=t;var e=100*t,i=Math.PI/180;this._shaper.setMap(function(t){return Math.abs(t)<.001?0:(3+e)*t*20*i/(Math.PI+e*Math.abs(t))})}}),Object.defineProperty(t.Distortion.prototype,\"oversample\",{get:function(){return this._shaper.oversample},set:function(t){this._shaper.oversample=t}}),t.Distortion.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this},t.Distortion}),t(function(t){return t.FeedbackDelay=function(){var e=this.optionsObject(arguments,[\"delayTime\",\"feedback\"],t.FeedbackDelay.defaults);t.FeedbackEffect.call(this,e),this._delayNode=new t.Delay(e.delayTime),this.delayTime=this._delayNode.delayTime,this.connectEffect(this._delayNode),this._readOnly([\"delayTime\"])},t.extend(t.FeedbackDelay,t.FeedbackEffect),t.FeedbackDelay.defaults={delayTime:.25},t.FeedbackDelay.prototype.dispose=function(){return t.FeedbackEffect.prototype.dispose.call(this),this._delayNode.dispose(),this._delayNode=null,this._writable([\"delayTime\"]),this.delayTime=null,this},t.FeedbackDelay}),t(function(t){var e=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100],i=[225,556,441,341];return t.Freeverb=function(){var s=this.optionsObject(arguments,[\"roomSize\",\"dampening\"],t.Freeverb.defaults);t.StereoEffect.call(this,s),this.roomSize=new t.Signal(s.roomSize,t.Type.NormalRange),this.dampening=new t.Signal(s.dampening,t.Type.Frequency),this._combFilters=[],this._allpassFiltersL=[],this._allpassFiltersR=[];for(var n=0;n<i.length;n++){var o=this.context.createBiquadFilter();o.type=\"allpass\",o.frequency.value=i[n],this._allpassFiltersL.push(o)}for(var r=0;r<i.length;r++){var a=this.context.createBiquadFilter();a.type=\"allpass\",a.frequency.value=i[r],this._allpassFiltersR.push(a)}for(var h=0;h<e.length;h++){var l=new t.LowpassCombFilter(e[h]);h<e.length/2?this.effectSendL.chain(l,this._allpassFiltersL[0]):this.effectSendR.chain(l,this._allpassFiltersR[0]),this.roomSize.connect(l.resonance),this.dampening.connect(l.dampening),this._combFilters.push(l)}this.connectSeries.apply(this,this._allpassFiltersL),this.connectSeries.apply(this,this._allpassFiltersR),this._allpassFiltersL[this._allpassFiltersL.length-1].connect(this.effectReturnL),this._allpassFiltersR[this._allpassFiltersR.length-1].connect(this.effectReturnR),this._readOnly([\"roomSize\",\"dampening\"])},t.extend(t.Freeverb,t.StereoEffect),t.Freeverb.defaults={roomSize:.7,dampening:3e3},t.Freeverb.prototype.dispose=function(){t.StereoEffect.prototype.dispose.call(this);for(var e=0;e<this._allpassFiltersL.length;e++)this._allpassFiltersL[e].disconnect(),this._allpassFiltersL[e]=null;this._allpassFiltersL=null;for(var i=0;i<this._allpassFiltersR.length;i++)this._allpassFiltersR[i].disconnect(),this._allpassFiltersR[i]=null;this._allpassFiltersR=null;for(var s=0;s<this._combFilters.length;s++)this._combFilters[s].dispose(),this._combFilters[s]=null;return this._combFilters=null,this._writable([\"roomSize\",\"dampening\"]),this.roomSize.dispose(),this.roomSize=null,this.dampening.dispose(),this.dampening=null,this},t.Freeverb}),t(function(t){var e=[.06748,.06404,.08212,.09004],i=[.773,.802,.753,.733],s=[347,113,37];return t.JCReverb=function(){var n=this.optionsObject(arguments,[\"roomSize\"],t.JCReverb.defaults);t.StereoEffect.call(this,n),this.roomSize=new t.Signal(n.roomSize,t.Type.NormalRange),this._scaleRoomSize=new t.Scale(-.733,.197),this._allpassFilters=[],this._feedbackCombFilters=[];for(var o=0;o<s.length;o++){var r=this.context.createBiquadFilter();r.type=\"allpass\",r.frequency.value=s[o],this._allpassFilters.push(r)}for(var a=0;a<e.length;a++){var h=new t.FeedbackCombFilter(e[a],.1);this._scaleRoomSize.connect(h.resonance),h.resonance.value=i[a],this._allpassFilters[this._allpassFilters.length-1].connect(h),a<e.length/2?h.connect(this.effectReturnL):h.connect(this.effectReturnR),this._feedbackCombFilters.push(h)}this.roomSize.connect(this._scaleRoomSize),this.connectSeries.apply(this,this._allpassFilters),this.effectSendL.connect(this._allpassFilters[0]),this.effectSendR.connect(this._allpassFilters[0]),this._readOnly([\"roomSize\"])},t.extend(t.JCReverb,t.StereoEffect),t.JCReverb.defaults={roomSize:.5},t.JCReverb.prototype.dispose=function(){t.StereoEffect.prototype.dispose.call(this);for(var e=0;e<this._allpassFilters.length;e++)this._allpassFilters[e].disconnect(),this._allpassFilters[e]=null;this._allpassFilters=null;for(var i=0;i<this._feedbackCombFilters.length;i++)this._feedbackCombFilters[i].dispose(),this._feedbackCombFilters[i]=null;return this._feedbackCombFilters=null,this._writable([\"roomSize\"]),this.roomSize.dispose(),this.roomSize=null,this._scaleRoomSize.dispose(),this._scaleRoomSize=null,this},t.JCReverb}),t(function(t){return t.MidSideEffect=function(){t.Effect.apply(this,arguments),this._midSideSplit=new t.MidSideSplit,this._midSideMerge=new t.MidSideMerge,this.midSend=this._midSideSplit.mid,this.sideSend=this._midSideSplit.side,this.midReturn=this._midSideMerge.mid,this.sideReturn=this._midSideMerge.side,this.effectSend.connect(this._midSideSplit),this._midSideMerge.connect(this.effectReturn)},t.extend(t.MidSideEffect,t.Effect),t.MidSideEffect.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._midSideSplit.dispose(),this._midSideSplit=null,this._midSideMerge.dispose(),this._midSideMerge=null,this.midSend=null,this.sideSend=null,this.midReturn=null,this.sideReturn=null,this},t.MidSideEffect}),t(function(t){return t.Phaser=function(){var e=this.optionsObject(arguments,[\"frequency\",\"octaves\",\"baseFrequency\"],t.Phaser.defaults);t.StereoEffect.call(this,e),this._lfoL=new t.LFO(e.frequency,0,1),this._lfoR=new t.LFO(e.frequency,0,1),this._lfoR.phase=180,this._baseFrequency=e.baseFrequency,this._octaves=e.octaves,this.Q=new t.Signal(e.Q,t.Type.Positive),this._filtersL=this._makeFilters(e.stages,this._lfoL,this.Q),this._filtersR=this._makeFilters(e.stages,this._lfoR,this.Q),this.frequency=this._lfoL.frequency,this.frequency.value=e.frequency,this.effectSendL.connect(this._filtersL[0]),this.effectSendR.connect(this._filtersR[0]),this._filtersL[e.stages-1].connect(this.effectReturnL),this._filtersR[e.stages-1].connect(this.effectReturnR),this._lfoL.frequency.connect(this._lfoR.frequency),this.baseFrequency=e.baseFrequency,this.octaves=e.octaves,this._lfoL.start(),this._lfoR.start(),this._readOnly([\"frequency\",\"Q\"])},t.extend(t.Phaser,t.StereoEffect),t.Phaser.defaults={frequency:.5,octaves:3,stages:10,Q:10,baseFrequency:350},t.Phaser.prototype._makeFilters=function(t,e,i){for(var s=new Array(t),n=0;n<t;n++){var o=this.context.createBiquadFilter();o.type=\"allpass\",i.connect(o.Q),e.connect(o.frequency),s[n]=o}return this.connectSeries.apply(this,s),s},Object.defineProperty(t.Phaser.prototype,\"octaves\",{get:function(){return this._octaves},set:function(t){this._octaves=t;var e=this._baseFrequency*Math.pow(2,t);this._lfoL.max=e,this._lfoR.max=e}}),Object.defineProperty(t.Phaser.prototype,\"baseFrequency\",{get:function(){return this._baseFrequency},set:function(t){this._baseFrequency=t,this._lfoL.min=t,this._lfoR.min=t,this.octaves=this._octaves}}),t.Phaser.prototype.dispose=function(){t.StereoEffect.prototype.dispose.call(this),this._writable([\"frequency\",\"Q\"]),this.Q.dispose(),this.Q=null,this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null;for(var e=0;e<this._filtersL.length;e++)this._filtersL[e].disconnect(),this._filtersL[e]=null;this._filtersL=null;for(var i=0;i<this._filtersR.length;i++)this._filtersR[i].disconnect(),this._filtersR[i]=null;return this._filtersR=null,this.frequency=null,this},t.Phaser}),t(function(t){return t.PingPongDelay=function(){var e=this.optionsObject(arguments,[\"delayTime\",\"feedback\"],t.PingPongDelay.defaults);t.StereoXFeedbackEffect.call(this,e),this._leftDelay=new t.Delay(0,e.maxDelayTime),this._rightDelay=new t.Delay(0,e.maxDelayTime),this._rightPreDelay=new t.Delay(0,e.maxDelayTime),this.delayTime=new t.Signal(e.delayTime,t.Type.Time),this.effectSendL.chain(this._leftDelay,this.effectReturnL),this.effectSendR.chain(this._rightPreDelay,this._rightDelay,this.effectReturnR),this.delayTime.fan(this._leftDelay.delayTime,this._rightDelay.delayTime,this._rightPreDelay.delayTime),this._feedbackLR.disconnect(),this._feedbackLR.connect(this._rightDelay),this._readOnly([\"delayTime\"])},t.extend(t.PingPongDelay,t.StereoXFeedbackEffect),t.PingPongDelay.defaults={delayTime:.25,maxDelayTime:1},t.PingPongDelay.prototype.dispose=function(){return t.StereoXFeedbackEffect.prototype.dispose.call(this),this._leftDelay.dispose(),this._leftDelay=null,this._rightDelay.dispose(),this._rightDelay=null,this._rightPreDelay.dispose(),this._rightPreDelay=null,this._writable([\"delayTime\"]),this.delayTime.dispose(),this.delayTime=null,this},t.PingPongDelay}),t(function(t){return t.PitchShift=function(){var e=this.optionsObject(arguments,[\"pitch\"],t.PitchShift.defaults);t.FeedbackEffect.call(this,e),this._frequency=new t.Signal(0),this._delayA=new t.Delay(0,1),this._lfoA=new t.LFO({min:0,max:.1,type:\"sawtooth\"}).connect(this._delayA.delayTime),this._delayB=new t.Delay(0,1),this._lfoB=new t.LFO({min:0,max:.1,type:\"sawtooth\",phase:180}).connect(this._delayB.delayTime),this._crossFade=new t.CrossFade,this._crossFadeLFO=new t.LFO({min:0,max:1,type:\"triangle\",phase:90}).connect(this._crossFade.fade),this._feedbackDelay=new t.Delay(e.delayTime),this.delayTime=this._feedbackDelay.delayTime,this._readOnly(\"delayTime\"),this._pitch=e.pitch,this._windowSize=e.windowSize,this._delayA.connect(this._crossFade.a),this._delayB.connect(this._crossFade.b),this._frequency.fan(this._lfoA.frequency,this._lfoB.frequency,this._crossFadeLFO.frequency),this.effectSend.fan(this._delayA,this._delayB),this._crossFade.chain(this._feedbackDelay,this.effectReturn);var i=this.now();this._lfoA.start(i),this._lfoB.start(i),this._crossFadeLFO.start(i),this.windowSize=this._windowSize},t.extend(t.PitchShift,t.FeedbackEffect),t.PitchShift.defaults={pitch:0,windowSize:.1,delayTime:0,feedback:0},Object.defineProperty(t.PitchShift.prototype,\"pitch\",{get:function(){return this._pitch},set:function(t){this._pitch=t;var e=0;t<0?(this._lfoA.min=0,this._lfoA.max=this._windowSize,this._lfoB.min=0,this._lfoB.max=this._windowSize,e=this.intervalToFrequencyRatio(t-1)+1):(this._lfoA.min=this._windowSize,this._lfoA.max=0,this._lfoB.min=this._windowSize,this._lfoB.max=0,e=this.intervalToFrequencyRatio(t)-1),this._frequency.value=e*(1.2/this._windowSize)}}),Object.defineProperty(t.PitchShift.prototype,\"windowSize\",{get:function(){return this._windowSize},set:function(t){this._windowSize=this.toSeconds(t),this.pitch=this._pitch}}),t.PitchShift.prototype.dispose=function(){return t.FeedbackEffect.prototype.dispose.call(this),this._frequency.dispose(),this._frequency=null,this._delayA.disconnect(),this._delayA=null,this._delayB.disconnect(),this._delayB=null,this._lfoA.dispose(),this._lfoA=null,this._lfoB.dispose(),this._lfoB=null,this._crossFade.dispose(),this._crossFade=null,this._crossFadeLFO.dispose(),this._crossFadeLFO=null,this._writable(\"delayTime\"),this._feedbackDelay.dispose(),this._feedbackDelay=null,this.delayTime=null,this},t.PitchShift}),t(function(t){return t.StereoFeedbackEffect=function(){var e=this.optionsObject(arguments,[\"feedback\"],t.FeedbackEffect.defaults);t.StereoEffect.call(this,e),this.feedback=new t.Signal(e.feedback,t.Type.NormalRange),this._feedbackL=new t.Gain,this._feedbackR=new t.Gain,this.effectReturnL.chain(this._feedbackL,this.effectSendL),this.effectReturnR.chain(this._feedbackR,this.effectSendR),this.feedback.fan(this._feedbackL.gain,this._feedbackR.gain),this._readOnly([\"feedback\"])},t.extend(t.StereoFeedbackEffect,t.FeedbackEffect),t.StereoFeedbackEffect.prototype.dispose=function(){return t.StereoEffect.prototype.dispose.call(this),this._writable([\"feedback\"]),this.feedback.dispose(),this.feedback=null,this._feedbackL.dispose(),this._feedbackL=null,this._feedbackR.dispose(),this._feedbackR=null,this},t.StereoFeedbackEffect}),t(function(t){return t.StereoWidener=function(){var e=this.optionsObject(arguments,[\"width\"],t.StereoWidener.defaults);t.MidSideEffect.call(this,e),this.width=new t.Signal(e.width,t.Type.NormalRange),this._midMult=new t.Expr(\"$0 * ($1 * (1 - $2))\"),this._sideMult=new t.Expr(\"$0 * ($1 * $2)\"),this._two=new t.Signal(2),this._two.connect(this._midMult,0,1),this.width.connect(this._midMult,0,2),this._two.connect(this._sideMult,0,1),this.width.connect(this._sideMult,0,2),this.midSend.chain(this._midMult,this.midReturn),this.sideSend.chain(this._sideMult,this.sideReturn),this._readOnly([\"width\"])},t.extend(t.StereoWidener,t.MidSideEffect),t.StereoWidener.defaults={width:.5},t.StereoWidener.prototype.dispose=function(){return t.MidSideEffect.prototype.dispose.call(this),this._writable([\"width\"]),this.width.dispose(),this.width=null,this._midMult.dispose(),this._midMult=null,this._sideMult.dispose(),this._sideMult=null,this._two.dispose(),this._two=null,this},t.StereoWidener}),t(function(t){return t.Tremolo=function(){var e=this.optionsObject(arguments,[\"frequency\",\"depth\"],t.Tremolo.defaults);t.StereoEffect.call(this,e),this._lfoL=new t.LFO({phase:e.spread,min:1,max:0}),this._lfoR=new t.LFO({phase:e.spread,min:1,max:0}),this._amplitudeL=new t.Gain,this._amplitudeR=new t.Gain,this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.depth=new t.Signal(e.depth,t.Type.NormalRange),this._readOnly([\"frequency\",\"depth\"]),this.effectSendL.chain(this._amplitudeL,this.effectReturnL),this.effectSendR.chain(this._amplitudeR,this.effectReturnR),this._lfoL.connect(this._amplitudeL.gain),this._lfoR.connect(this._amplitudeR.gain),this.frequency.fan(this._lfoL.frequency,this._lfoR.frequency),this.depth.fan(this._lfoR.amplitude,this._lfoL.amplitude),this.type=e.type,this.spread=e.spread},t.extend(t.Tremolo,t.StereoEffect),t.Tremolo.defaults={frequency:10,type:\"sine\",depth:.5,spread:180},t.Tremolo.prototype.start=function(t){return this._lfoL.start(t),this._lfoR.start(t),this},t.Tremolo.prototype.stop=function(t){return this._lfoL.stop(t),this._lfoR.stop(t),this},t.Tremolo.prototype.sync=function(t){return this._lfoL.sync(t),this._lfoR.sync(t),this},t.Tremolo.prototype.unsync=function(){return this._lfoL.unsync(),this._lfoR.unsync(),this},Object.defineProperty(t.Tremolo.prototype,\"type\",{get:function(){return this._lfoL.type},set:function(t){this._lfoL.type=t,this._lfoR.type=t}}),Object.defineProperty(t.Tremolo.prototype,\"spread\",{get:function(){return this._lfoR.phase-this._lfoL.phase},set:function(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}}),t.Tremolo.prototype.dispose=function(){return t.StereoEffect.prototype.dispose.call(this),this._writable([\"frequency\",\"depth\"]),this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null,this._amplitudeL.dispose(),this._amplitudeL=null,this._amplitudeR.dispose(),this._amplitudeR=null,this.frequency=null,this.depth=null,this},t.Tremolo}),t(function(t){return t.Vibrato=function(){var e=this.optionsObject(arguments,[\"frequency\",\"depth\"],t.Vibrato.defaults);t.Effect.call(this,e),this._delayNode=new t.Delay(0,e.maxDelay),this._lfo=new t.LFO({type:e.type,min:0,max:e.maxDelay,frequency:e.frequency,phase:-90}).start().connect(this._delayNode.delayTime),this.frequency=this._lfo.frequency,this.depth=this._lfo.amplitude,this.depth.value=e.depth,this._readOnly([\"frequency\",\"depth\"]),this.effectSend.chain(this._delayNode,this.effectReturn)},t.extend(t.Vibrato,t.Effect),t.Vibrato.defaults={maxDelay:.005,frequency:5,depth:.1,type:\"sine\"},Object.defineProperty(t.Vibrato.prototype,\"type\",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),t.Vibrato.prototype.dispose=function(){t.Effect.prototype.dispose.call(this),this._delayNode.dispose(),this._delayNode=null,this._lfo.dispose(),this._lfo=null,this._writable([\"frequency\",\"depth\"]),this.frequency=null,this.depth=null},t.Vibrato}),t(function(t){return t.Event=function(){var e=this.optionsObject(arguments,[\"callback\",\"value\"],t.Event.defaults);this._loop=e.loop,this.callback=e.callback,this.value=e.value,this._loopStart=this.toTicks(e.loopStart),this._loopEnd=this.toTicks(e.loopEnd),this._state=new t.TimelineState(t.State.Stopped),this._playbackRate=1,this._startOffset=0,this.probability=e.probability,this.humanize=e.humanize,this.mute=e.mute,this.playbackRate=e.playbackRate},t.extend(t.Event),t.Event.defaults={callback:t.noOp,loop:!1,loopEnd:\"1m\",loopStart:0,playbackRate:1,value:null,probability:1,mute:!1,humanize:!1},t.Event.prototype._rescheduleEvents=function(e){return e=this.defaultArg(e,-1),this._state.forEachFrom(e,function(e){var i;if(e.state===t.State.Started){this.isUndef(e.id)||t.Transport.clear(e.id);var s=e.time+Math.round(this.startOffset/this._playbackRate);if(this._loop){i=1/0,this.isNumber(this._loop)&&(i=this._loop*this._getLoopDuration());var n=this._state.getAfter(s);null!==n&&(i=Math.min(i,n.time-s)),i!==1/0&&(this._state.setStateAtTime(t.State.Stopped,s+i+1),i=t.Time(i,\"i\"));var o=t.Time(this._getLoopDuration(),\"i\");e.id=t.Transport.scheduleRepeat(this._tick.bind(this),o,t.TransportTime(s,\"i\"),i)}else e.id=t.Transport.schedule(this._tick.bind(this),s+\"i\")}}.bind(this)),this},Object.defineProperty(t.Event.prototype,\"state\",{get:function(){return this._state.getValueAtTime(t.Transport.ticks)}}),Object.defineProperty(t.Event.prototype,\"startOffset\",{get:function(){return this._startOffset},set:function(t){this._startOffset=t}}),t.Event.prototype.start=function(e){return e=this.toTicks(e),this._state.getValueAtTime(e)===t.State.Stopped&&(this._state.add({state:t.State.Started,time:e,id:void 0}),this._rescheduleEvents(e)),this},t.Event.prototype.stop=function(e){if(this.cancel(e),e=this.toTicks(e),this._state.getValueAtTime(e)===t.State.Started){this._state.setStateAtTime(t.State.Stopped,e);var i=this._state.getBefore(e),s=e;null!==i&&(s=i.time),this._rescheduleEvents(s)}return this},t.Event.prototype.cancel=function(e){return e=this.defaultArg(e,-1/0),e=this.toTicks(e),this._state.forEachFrom(e,function(e){t.Transport.clear(e.id)}),this._state.cancel(e),this},t.Event.prototype._tick=function(e){if(!this.mute&&this._state.getValueAtTime(t.Transport.ticks)===t.State.Started){if(this.probability<1&&Math.random()>this.probability)return;if(this.humanize){var i=.02;this.isBoolean(this.humanize)||(i=this.toSeconds(this.humanize)),e+=(2*Math.random()-1)*i}this.callback(e,this.value)}},t.Event.prototype._getLoopDuration=function(){return Math.round((this._loopEnd-this._loopStart)/this._playbackRate)},Object.defineProperty(t.Event.prototype,\"loop\",{get:function(){return this._loop},set:function(t){this._loop=t,this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,\"playbackRate\",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,\"loopEnd\",{get:function(){return t.TransportTime(this._loopEnd,\"i\").toNotation()},set:function(t){this._loopEnd=this.toTicks(t),this._loop&&this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,\"loopStart\",{get:function(){return t.TransportTime(this._loopStart,\"i\").toNotation()},set:function(t){this._loopStart=this.toTicks(t),this._loop&&this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,\"progress\",{get:function(){if(this._loop){var e=t.Transport.ticks,i=this._state.get(e);if(null!==i&&i.state===t.State.Started){var s=this._getLoopDuration();return(e-i.time)%s/s}return 0}return 0}}),t.Event.prototype.dispose=function(){this.cancel(),this._state.dispose(),this._state=null,this.callback=null,this.value=null},t.Event}),t(function(t){return t.Loop=function(){var e=this.optionsObject(arguments,[\"callback\",\"interval\"],t.Loop.defaults);this._event=new t.Event({callback:this._tick.bind(this),loop:!0,loopEnd:e.interval,playbackRate:e.playbackRate,probability:e.probability}),this.callback=e.callback,this.iterations=e.iterations},t.extend(t.Loop),t.Loop.defaults={interval:\"4n\",callback:t.noOp,playbackRate:1,iterations:1/0,probability:!0,mute:!1},t.Loop.prototype.start=function(t){return this._event.start(t),this},t.Loop.prototype.stop=function(t){return this._event.stop(t),this},t.Loop.prototype.cancel=function(t){return this._event.cancel(t),this},t.Loop.prototype._tick=function(t){this.callback(t)},Object.defineProperty(t.Loop.prototype,\"state\",{get:function(){return this._event.state}}),Object.defineProperty(t.Loop.prototype,\"progress\",{get:function(){return this._event.progress}}),Object.defineProperty(t.Loop.prototype,\"interval\",{get:function(){return this._event.loopEnd},set:function(t){this._event.loopEnd=t}}),Object.defineProperty(t.Loop.prototype,\"playbackRate\",{get:function(){return this._event.playbackRate},set:function(t){this._event.playbackRate=t}}),Object.defineProperty(t.Loop.prototype,\"humanize\",{get:function(){return this._event.humanize},set:function(t){this._event.humanize=t}}),Object.defineProperty(t.Loop.prototype,\"probability\",{get:function(){return this._event.probability},set:function(t){this._event.probability=t}}),Object.defineProperty(t.Loop.prototype,\"mute\",{get:function(){return this._event.mute},set:function(t){this._event.mute=t}}),Object.defineProperty(t.Loop.prototype,\"iterations\",{get:function(){return!0===this._event.loop?1/0:this._event.loop},set:function(t){this._event.loop=t===1/0||t}}),t.Loop.prototype.dispose=function(){this._event.dispose(),this._event=null,this.callback=null},t.Loop}),t(function(t){return t.Part=function(){var e=this.optionsObject(arguments,[\"callback\",\"events\"],t.Part.defaults);this._loop=e.loop,this._loopStart=this.toTicks(e.loopStart),this._loopEnd=this.toTicks(e.loopEnd),this._playbackRate=e.playbackRate,this._probability=e.probability,this._humanize=e.humanize,this._startOffset=0,this._state=new t.TimelineState(t.State.Stopped),this._events=[],this.callback=e.callback,this.mute=e.mute;var i=this.defaultArg(e.events,[]);if(!this.isUndef(e.events))for(var s=0;s<i.length;s++)Array.isArray(i[s])?this.add(i[s][0],i[s][1]):this.add(i[s])},t.extend(t.Part,t.Event),t.Part.defaults={callback:t.noOp,loop:!1,loopEnd:\"1m\",loopStart:0,playbackRate:1,probability:1,humanize:!1,mute:!1},t.Part.prototype.start=function(e,i){var s=this.toTicks(e);return this._state.getValueAtTime(s)!==t.State.Started&&(i=this._loop?this.defaultArg(i,this._loopStart):this.defaultArg(i,0),i=this.toTicks(i),this._state.add({state:t.State.Started,time:s,offset:i}),this._forEach(function(t){this._startNote(t,s,i)})),this},t.Part.prototype._startNote=function(e,i,s){i-=s,this._loop?e.startOffset>=this._loopStart&&e.startOffset<this._loopEnd?(e.startOffset<s&&(i+=this._getLoopDuration()),e.start(t.TransportTime(i,\"i\"))):e.startOffset<this._loopStart&&e.startOffset>=s&&(e.loop=!1,e.start(t.TransportTime(i,\"i\"))):e.startOffset>=s&&e.start(t.TransportTime(i,\"i\"))},Object.defineProperty(t.Part.prototype,\"startOffset\",{get:function(){return this._startOffset},set:function(t){this._startOffset=t,this._forEach(function(t){t.startOffset+=this._startOffset})}}),t.Part.prototype.stop=function(e){var i=this.toTicks(e);return this._state.cancel(i),this._state.setStateAtTime(t.State.Stopped,i),this._forEach(function(t){t.stop(e)}),this},t.Part.prototype.at=function(e,i){e=t.TransportTime(e);for(var s=t.Time(1,\"i\").toSeconds(),n=0;n<this._events.length;n++){var o=this._events[n];if(Math.abs(e.toTicks()-o.startOffset)<s)return this.isUndef(i)||(o.value=i),o}return this.isUndef(i)?null:(this.add(e,i),this._events[this._events.length-1])},t.Part.prototype.add=function(e,i){e.hasOwnProperty(\"time\")&&(i=e,e=i.time),e=this.toTicks(e);var s;return i instanceof t.Event?(s=i,s.callback=this._tick.bind(this)):s=new t.Event({callback:this._tick.bind(this),value:i}),s.startOffset=e,s.set({loopEnd:this.loopEnd,loopStart:this.loopStart,loop:this.loop,humanize:this.humanize,playbackRate:this.playbackRate,probability:this.probability}),this._events.push(s),this._restartEvent(s),this},t.Part.prototype._restartEvent=function(e){this._state.forEach(function(i){i.state===t.State.Started?this._startNote(e,i.time,i.offset):e.stop(t.TransportTime(i.time,\"i\"))}.bind(this))},t.Part.prototype.remove=function(e,i){e.hasOwnProperty(\"time\")&&(i=e,e=i.time),e=this.toTicks(e);for(var s=this._events.length-1;s>=0;s--){var n=this._events[s];n instanceof t.Part?n.remove(e,i):n.startOffset===e&&(this.isUndef(i)||!this.isUndef(i)&&n.value===i)&&(this._events.splice(s,1),n.dispose())}return this},t.Part.prototype.removeAll=function(){return this._forEach(function(t){t.dispose()}),this._events=[],this},t.Part.prototype.cancel=function(t){return t=this.toTicks(t),this._forEach(function(e){e.cancel(t)}),this._state.cancel(t),this},t.Part.prototype._forEach=function(e,i){i=this.defaultArg(i,this);for(var s=this._events.length-1;s>=0;s--){var n=this._events[s];n instanceof t.Part?n._forEach(e,i):e.call(i,n)}return this},t.Part.prototype._setAll=function(t,e){this._forEach(function(i){i[t]=e})},t.Part.prototype._tick=function(t,e){this.mute||this.callback(t,e)},t.Part.prototype._testLoopBoundries=function(e){e.startOffset<this._loopStart||e.startOffset>=this._loopEnd?e.cancel(0):e.state===t.State.Stopped&&this._restartEvent(e)},Object.defineProperty(t.Part.prototype,\"probability\",{get:function(){return this._probability},set:function(t){this._probability=t,this._setAll(\"probability\",t)}}),Object.defineProperty(t.Part.prototype,\"humanize\",{get:function(){return this._humanize},set:function(t){this._humanize=t,this._setAll(\"humanize\",t)}}),Object.defineProperty(t.Part.prototype,\"loop\",{get:function(){return this._loop},set:function(t){this._loop=t,this._forEach(function(e){e._loopStart=this._loopStart,e._loopEnd=this._loopEnd,e.loop=t,this._testLoopBoundries(e)})}}),Object.defineProperty(t.Part.prototype,\"loopEnd\",{get:function(){return t.TransportTime(this._loopEnd,\"i\").toNotation()},set:function(t){this._loopEnd=this.toTicks(t),this._loop&&this._forEach(function(e){e.loopEnd=t,this._testLoopBoundries(e)})}}),Object.defineProperty(t.Part.prototype,\"loopStart\",{get:function(){return t.TransportTime(this._loopStart,\"i\").toNotation()},set:function(t){this._loopStart=this.toTicks(t),this._loop&&this._forEach(function(t){t.loopStart=this.loopStart,this._testLoopBoundries(t)})}}),Object.defineProperty(t.Part.prototype,\"playbackRate\",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._setAll(\"playbackRate\",t)}}),Object.defineProperty(t.Part.prototype,\"length\",{get:function(){return this._events.length}}),t.Part.prototype.dispose=function(){return this.removeAll(),this._state.dispose(),this._state=null,this.callback=null,this._events=null,this},t.Part}),t(function(t){return t.Pattern=function(){var e=this.optionsObject(arguments,[\"callback\",\"values\",\"pattern\"],t.Pattern.defaults);t.Loop.call(this,e),this._pattern=new t.CtrlPattern({values:e.values,type:e.pattern,index:e.index})},t.extend(t.Pattern,t.Loop),t.Pattern.defaults={pattern:t.CtrlPattern.Type.Up,values:[]},t.Pattern.prototype._tick=function(t){this.callback(t,this._pattern.value),this._pattern.next()},Object.defineProperty(t.Pattern.prototype,\"index\",{get:function(){return this._pattern.index},set:function(t){this._pattern.index=t}}),Object.defineProperty(t.Pattern.prototype,\"values\",{get:function(){return this._pattern.values},set:function(t){this._pattern.values=t}}),Object.defineProperty(t.Pattern.prototype,\"value\",{get:function(){return this._pattern.value}}),Object.defineProperty(t.Pattern.prototype,\"pattern\",{get:function(){return this._pattern.type},set:function(t){this._pattern.type=t}}),t.Pattern.prototype.dispose=function(){t.Loop.prototype.dispose.call(this),this._pattern.dispose(),this._pattern=null},t.Pattern}),t(function(t){return t.Sequence=function(){var e=this.optionsObject(arguments,[\"callback\",\"events\",\"subdivision\"],t.Sequence.defaults),i=e.events;if(delete e.events,t.Part.call(this,e),this._subdivision=this.toTicks(e.subdivision),this.isUndef(e.loopEnd)&&!this.isUndef(i)&&(this._loopEnd=i.length*this._subdivision),this._loop=!0,!this.isUndef(i))for(var s=0;s<i.length;s++)this.add(s,i[s])},t.extend(t.Sequence,t.Part),t.Sequence.defaults={subdivision:\"4n\"},Object.defineProperty(t.Sequence.prototype,\"subdivision\",{get:function(){return t.Time(this._subdivision,\"i\").toNotation()}}),t.Sequence.prototype.at=function(e,i){return this.isArray(i)&&this.remove(e),t.Part.prototype.at.call(this,this._indexTime(e),i)},t.Sequence.prototype.add=function(e,i){if(null===i)return this;if(this.isArray(i)){var s=Math.round(this._subdivision/i.length);i=new t.Sequence(this._tick.bind(this),i,t.Time(s,\"i\"))}return t.Part.prototype.add.call(this,this._indexTime(e),i),this},t.Sequence.prototype.remove=function(e,i){return t.Part.prototype.remove.call(this,this._indexTime(e),i),this},t.Sequence.prototype._indexTime=function(e){return e instanceof t.TransportTime?e:t.TransportTime(e*this._subdivision+this.startOffset,\"i\")},t.Sequence.prototype.dispose=function(){return t.Part.prototype.dispose.call(this),this},t.Sequence}),t(function(t){return t.PulseOscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"width\"],t.Oscillator.defaults);t.Source.call(this,e),this.width=new t.Signal(e.width,t.Type.NormalRange),this._widthGate=new t.Gain,this._sawtooth=new t.Oscillator({frequency:e.frequency,detune:e.detune,type:\"sawtooth\",phase:e.phase}),this.frequency=this._sawtooth.frequency,this.detune=this._sawtooth.detune,this._thresh=new t.WaveShaper(function(t){return t<0?-1:1}),this._sawtooth.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),this._readOnly([\"width\",\"frequency\",\"detune\"])},t.extend(t.PulseOscillator,t.Oscillator),t.PulseOscillator.defaults={frequency:440,detune:0,phase:0,width:.2},t.PulseOscillator.prototype._start=function(t){t=this.toSeconds(t),this._sawtooth.start(t),this._widthGate.gain.setValueAtTime(1,t)},t.PulseOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._sawtooth.stop(t),this._widthGate.gain.setValueAtTime(0,t)},Object.defineProperty(t.PulseOscillator.prototype,\"phase\",{get:function(){return this._sawtooth.phase},set:function(t){this._sawtooth.phase=t}}),Object.defineProperty(t.PulseOscillator.prototype,\"type\",{get:function(){return\"pulse\"}}),Object.defineProperty(t.PulseOscillator.prototype,\"partials\",{get:function(){return[]}}),t.PulseOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._sawtooth.dispose(),this._sawtooth=null,this._writable([\"width\",\"frequency\",\"detune\"]),this.width.dispose(),this.width=null,this._widthGate.dispose(),this._widthGate=null,this._thresh.dispose(),this._thresh=null,this.frequency=null,this.detune=null,this},t.PulseOscillator}),t(function(t){return t.PWMOscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"modulationFrequency\"],t.PWMOscillator.defaults);t.Source.call(this,e),this._pulse=new t.PulseOscillator(e.modulationFrequency),this._pulse._sawtooth.type=\"sine\",this._modulator=new t.Oscillator({frequency:e.frequency,detune:e.detune,phase:e.phase}),this._scale=new t.Multiply(2),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this.modulationFrequency=this._pulse.frequency,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),this._readOnly([\"modulationFrequency\",\"frequency\",\"detune\"])},t.extend(t.PWMOscillator,t.Oscillator),t.PWMOscillator.defaults={frequency:440,detune:0,phase:0,modulationFrequency:.4},t.PWMOscillator.prototype._start=function(t){t=this.toSeconds(t),this._modulator.start(t),this._pulse.start(t)},t.PWMOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._modulator.stop(t),this._pulse.stop(t)},Object.defineProperty(t.PWMOscillator.prototype,\"type\",{get:function(){return\"pwm\"}}),Object.defineProperty(t.PWMOscillator.prototype,\"partials\",{get:function(){return[]}}),Object.defineProperty(t.PWMOscillator.prototype,\"phase\",{get:function(){return this._modulator.phase},set:function(t){this._modulator.phase=t}}),t.PWMOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._pulse.dispose(),this._pulse=null,this._scale.dispose(),this._scale=null,this._modulator.dispose(),this._modulator=null,this._writable([\"modulationFrequency\",\"frequency\",\"detune\"]),this.frequency=null,this.detune=null,this.modulationFrequency=null,this},t.PWMOscillator}),t(function(t){return t.FMOscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"type\",\"modulationType\"],t.FMOscillator.defaults);t.Source.call(this,e),this._carrier=new t.Oscillator(e.frequency,e.type),this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=this._carrier.detune,this.detune.value=e.detune,this.modulationIndex=new t.Multiply(e.modulationIndex),this.modulationIndex.units=t.Type.Positive,this._modulator=new t.Oscillator(e.frequency,e.modulationType),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this._modulationNode=new t.Gain(0),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),this.phase=e.phase,this._readOnly([\"modulationIndex\",\"frequency\",\"detune\",\"harmonicity\"])},t.extend(t.FMOscillator,t.Oscillator),t.FMOscillator.defaults={frequency:440,detune:0,phase:0,modulationIndex:2,modulationType:\"square\",harmonicity:1},t.FMOscillator.prototype._start=function(t){t=this.toSeconds(t),this._modulator.start(t),this._carrier.start(t)},t.FMOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._modulator.stop(t),this._carrier.stop(t)},Object.defineProperty(t.FMOscillator.prototype,\"type\",{get:function(){return this._carrier.type},set:function(t){this._carrier.type=t}}),Object.defineProperty(t.FMOscillator.prototype,\"modulationType\",{get:function(){return this._modulator.type},set:function(t){this._modulator.type=t}}),Object.defineProperty(t.FMOscillator.prototype,\"phase\",{get:function(){return this._carrier.phase},set:function(t){this._carrier.phase=t,this._modulator.phase=t}}),Object.defineProperty(t.FMOscillator.prototype,\"partials\",{get:function(){return this._carrier.partials},set:function(t){this._carrier.partials=t}}),t.FMOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable([\"modulationIndex\",\"frequency\",\"detune\",\"harmonicity\"]),this.frequency.dispose(),this.frequency=null,this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this._modulationNode.dispose(),this._modulationNode=null,this.modulationIndex.dispose(),this.modulationIndex=null,this},t.FMOscillator}),t(function(t){return t.AMOscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"type\",\"modulationType\"],t.AMOscillator.defaults);t.Source.call(this,e),this._carrier=new t.Oscillator(e.frequency,e.type),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this.detune.value=e.detune,this._modulator=new t.Oscillator(e.frequency,e.modulationType),this._modulationScale=new t.AudioToGain,this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this._modulationNode=new t.Gain(0),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.connect(this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),this.phase=e.phase,this._readOnly([\"frequency\",\"detune\",\"harmonicity\"])},t.extend(t.AMOscillator,t.Oscillator),t.AMOscillator.defaults={frequency:440,detune:0,phase:0,modulationType:\"square\",harmonicity:1},t.AMOscillator.prototype._start=function(t){t=this.toSeconds(t),this._modulator.start(t),this._carrier.start(t)},t.AMOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._modulator.stop(t),this._carrier.stop(t)},Object.defineProperty(t.AMOscillator.prototype,\"type\",{get:function(){return this._carrier.type},set:function(t){this._carrier.type=t}}),Object.defineProperty(t.AMOscillator.prototype,\"modulationType\",{get:function(){return this._modulator.type},set:function(t){this._modulator.type=t}}),Object.defineProperty(t.AMOscillator.prototype,\"phase\",{get:function(){return this._carrier.phase},set:function(t){this._carrier.phase=t,this._modulator.phase=t}}),Object.defineProperty(t.AMOscillator.prototype,\"partials\",{get:function(){return this._carrier.partials},set:function(t){this._carrier.partials=t}}),t.AMOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable([\"frequency\",\"detune\",\"harmonicity\"]),this.frequency=null,this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this._modulationNode.dispose(),this._modulationNode=null,this._modulationScale.dispose(),this._modulationScale=null,this},t.AMOscillator}),t(function(t){return t.FatOscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"type\",\"spread\"],t.FatOscillator.defaults);t.Source.call(this,e),this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this._oscillators=[],this._spread=e.spread,this._type=e.type,this._phase=e.phase,this._partials=this.defaultArg(e.partials,[]),this.count=e.count,this._readOnly([\"frequency\",\"detune\"])},t.extend(t.FatOscillator,t.Oscillator),t.FatOscillator.defaults={frequency:440,detune:0,phase:0,spread:20,count:3,type:\"sawtooth\"},t.FatOscillator.prototype._start=function(t){t=this.toSeconds(t),this._forEach(function(e){e.start(t)})},t.FatOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._forEach(function(e){e.stop(t)})},t.FatOscillator.prototype._forEach=function(t){for(var e=0;e<this._oscillators.length;e++)t.call(this,this._oscillators[e],e)},Object.defineProperty(t.FatOscillator.prototype,\"type\",{get:function(){return this._type},set:function(t){this._type=t,this._forEach(function(e){e.type=t})}}),Object.defineProperty(t.FatOscillator.prototype,\"spread\",{get:function(){return this._spread},set:function(t){if(this._spread=t,this._oscillators.length>1){var e=-t/2,i=t/(this._oscillators.length-1);this._forEach(function(t,s){t.detune.value=e+i*s})}}}),Object.defineProperty(t.FatOscillator.prototype,\"count\",{get:function(){return this._oscillators.length},set:function(e){if(e=Math.max(e,1),this._oscillators.length!==e){this._forEach(function(t){t.dispose()}),this._oscillators=[];for(var i=0;i<e;i++){var s=new t.Oscillator;this.type===t.Oscillator.Type.Custom?s.partials=this._partials:s.type=this._type,s.phase=this._phase,s.volume.value=-6-e,this.frequency.connect(s.frequency),this.detune.connect(s.detune),s.connect(this.output),this._oscillators[i]=s}this.spread=this._spread,this.state===t.State.Started&&this._forEach(function(t){t.start()})}}}),Object.defineProperty(t.FatOscillator.prototype,\"phase\",{get:function(){return this._phase},set:function(t){this._phase=t,this._forEach(function(e){e.phase=t})}}),Object.defineProperty(t.FatOscillator.prototype,\"partials\",{get:function(){return this._partials},set:function(e){this._partials=e,this._type=t.Oscillator.Type.Custom,this._forEach(function(t){t.partials=e})}}),t.FatOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable([\"frequency\",\"detune\"]),this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this._forEach(function(t){t.dispose()}),this._oscillators=null,this._partials=null,this},t.FatOscillator}),t(function(t){t.OmniOscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"type\"],t.OmniOscillator.defaults);t.Source.call(this,e),this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this._sourceType=void 0,this._oscillator=null,this.type=e.type,this._readOnly([\"frequency\",\"detune\"]),this.set(e)},t.extend(t.OmniOscillator,t.Oscillator),t.OmniOscillator.defaults={frequency:440,detune:0,type:\"sine\",phase:0};var e={Pulse:\"PulseOscillator\",PWM:\"PWMOscillator\",Osc:\"Oscillator\",FM:\"FMOscillator\",AM:\"AMOscillator\",Fat:\"FatOscillator\"};return t.OmniOscillator.prototype._start=function(t){this._oscillator.start(t)},t.OmniOscillator.prototype._stop=function(t){this._oscillator.stop(t)},Object.defineProperty(t.OmniOscillator.prototype,\"type\",{get:function(){var t=\"\";return this._sourceType===e.FM?t=\"fm\":this._sourceType===e.AM?t=\"am\":this._sourceType===e.Fat&&(t=\"fat\"),t+this._oscillator.type},set:function(t){\"fm\"===t.substr(0,2)?(this._createNewOscillator(e.FM),this._oscillator.type=t.substr(2)):\"am\"===t.substr(0,2)?(this._createNewOscillator(e.AM),this._oscillator.type=t.substr(2)):\"fat\"===t.substr(0,3)?(this._createNewOscillator(e.Fat),this._oscillator.type=t.substr(3)):\"pwm\"===t?this._createNewOscillator(e.PWM):\"pulse\"===t?this._createNewOscillator(e.Pulse):(this._createNewOscillator(e.Osc),this._oscillator.type=t)}}),Object.defineProperty(t.OmniOscillator.prototype,\"partials\",{get:function(){return this._oscillator.partials},set:function(t){this._oscillator.partials=t}}),t.OmniOscillator.prototype.set=function(e,i){return\"type\"===e?this.type=i:this.isObject(e)&&e.hasOwnProperty(\"type\")&&(this.type=e.type),t.prototype.set.apply(this,arguments),this},t.OmniOscillator.prototype._createNewOscillator=function(e){if(e!==this._sourceType){this._sourceType=e;var i=t[e],s=this.now()+this.blockTime;if(null!==this._oscillator){var n=this._oscillator;n.stop(s),setTimeout(function(){n.dispose(),n=null},1e3*this.blockTime)}this._oscillator=new i,this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this.state===t.State.Started&&this._oscillator.start(s)}},Object.defineProperty(t.OmniOscillator.prototype,\"phase\",{get:function(){return this._oscillator.phase},set:function(t){this._oscillator.phase=t}}),Object.defineProperty(t.OmniOscillator.prototype,\"width\",{get:function(){if(this._sourceType===e.Pulse)return this._oscillator.width}}),Object.defineProperty(t.OmniOscillator.prototype,\"count\",{get:function(){if(this._sourceType===e.Fat)return this._oscillator.count},set:function(t){this._sourceType===e.Fat&&(this._oscillator.count=t)}}),Object.defineProperty(t.OmniOscillator.prototype,\"spread\",{get:function(){if(this._sourceType===e.Fat)return this._oscillator.spread},set:function(t){this._sourceType===e.Fat&&(this._oscillator.spread=t)}}),Object.defineProperty(t.OmniOscillator.prototype,\"modulationType\",{get:function(){if(this._sourceType===e.FM||this._sourceType===e.AM)return this._oscillator.modulationType},set:function(t){this._sourceType!==e.FM&&this._sourceType!==e.AM||(this._oscillator.modulationType=t)}}),Object.defineProperty(t.OmniOscillator.prototype,\"modulationIndex\",{get:function(){if(this._sourceType===e.FM)return this._oscillator.modulationIndex}}),Object.defineProperty(t.OmniOscillator.prototype,\"harmonicity\",{get:function(){if(this._sourceType===e.FM||this._sourceType===e.AM)return this._oscillator.harmonicity}}),Object.defineProperty(t.OmniOscillator.prototype,\"modulationFrequency\",{get:function(){if(this._sourceType===e.PWM)return this._oscillator.modulationFrequency}}),t.OmniOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable([\"frequency\",\"detune\"]),this.detune.dispose(),this.detune=null,this.frequency.dispose(),this.frequency=null,this._oscillator.dispose(),this._oscillator=null,this._sourceType=null,this},t.OmniOscillator}),t(function(t){return t.Instrument=function(e){e=this.defaultArg(e,t.Instrument.defaults),this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly(\"volume\")},t.extend(t.Instrument),t.Instrument.defaults={volume:0},t.Instrument.prototype.triggerAttack=t.noOp,t.Instrument.prototype.triggerRelease=t.noOp,t.Instrument.prototype.triggerAttackRelease=function(t,e,i,s){return i=this.isUndef(i)?this.now()+this.blockTime:this.toSeconds(i),e=this.toSeconds(e),this.triggerAttack(t,i,s),this.triggerRelease(i+e),this},t.Instrument.prototype.dispose=function(){return t.prototype.dispose.call(this),this._volume.dispose(),this._volume=null,this._writable([\"volume\"]),this.volume=null,this},t.Instrument}),t(function(t){return t.Monophonic=function(e){e=this.defaultArg(e,t.Monophonic.defaults),t.Instrument.call(this,e),this.portamento=e.portamento},t.extend(t.Monophonic,t.Instrument),t.Monophonic.defaults={portamento:0},t.Monophonic.prototype.triggerAttack=function(t,e,i){return e=this.isUndef(e)?this.now()+this.blockTime:this.toSeconds(e),this._triggerEnvelopeAttack(e,i),this.setNote(t,e),this},t.Monophonic.prototype.triggerRelease=function(t){return t=this.isUndef(t)?this.now()+this.blockTime:this.toSeconds(t),this._triggerEnvelopeRelease(t),this},t.Monophonic.prototype._triggerEnvelopeAttack=function(){},t.Monophonic.prototype._triggerEnvelopeRelease=function(){},t.Monophonic.prototype.setNote=function(t,e){if(e=this.toSeconds(e),this.portamento>0){var i=this.frequency.value;this.frequency.setValueAtTime(i,e);var s=this.toSeconds(this.portamento);this.frequency.exponentialRampToValueAtTime(t,e+s)}else this.frequency.setValueAtTime(t,e);return this},t.Monophonic}),t(function(t){return t.Synth=function(e){e=this.defaultArg(e,t.Synth.defaults),t.Monophonic.call(this,e),this.oscillator=new t.OmniOscillator(e.oscillator),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new t.AmplitudeEnvelope(e.envelope),this.oscillator.chain(this.envelope,this.output),this.oscillator.start(),this._readOnly([\"oscillator\",\"frequency\",\"detune\",\"envelope\"])},t.extend(t.Synth,t.Monophonic),t.Synth.defaults={oscillator:{type:\"triangle\"},envelope:{attack:.005,decay:.1,sustain:.3,release:1}},t.Synth.prototype._triggerEnvelopeAttack=function(t,e){return this.envelope.triggerAttack(t,e),this},t.Synth.prototype._triggerEnvelopeRelease=function(t){return this.envelope.triggerRelease(t),this},t.Synth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable([\"oscillator\",\"frequency\",\"detune\",\"envelope\"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this.frequency=null,this.detune=null,this},t.Synth}),t(function(t){return t.AMSynth=function(e){e=this.defaultArg(e,t.AMSynth.defaults),t.Monophonic.call(this,e),this._carrier=new t.Synth,this._carrier.volume.value=-10,this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope.set(e.envelope),this._modulator=new t.Synth,this._modulator.volume.value=-10,this.modulation=this._modulator.oscillator.set(e.modulation),this.modulationEnvelope=this._modulator.envelope.set(e.modulationEnvelope),this.frequency=new t.Signal(440,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this._modulationScale=new t.AudioToGain,this._modulationNode=new t.Gain,this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),this._readOnly([\"frequency\",\"harmonicity\",\"oscillator\",\"envelope\",\"modulation\",\"modulationEnvelope\",\"detune\"])},t.extend(t.AMSynth,t.Monophonic),t.AMSynth.defaults={harmonicity:3,detune:0,oscillator:{type:\"sine\"},envelope:{attack:.01,decay:.01,sustain:1,release:.5},modulation:{type:\"square\"},modulationEnvelope:{attack:.5,decay:0,sustain:1,release:.5}},t.AMSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.envelope.triggerAttack(t,e),this.modulationEnvelope.triggerAttack(t,e),this},t.AMSynth.prototype._triggerEnvelopeRelease=function(t){return this.envelope.triggerRelease(t),this.modulationEnvelope.triggerRelease(t),this},t.AMSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable([\"frequency\",\"harmonicity\",\"oscillator\",\"envelope\",\"modulation\",\"modulationEnvelope\",\"detune\"]),this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._modulationScale.dispose(),this._modulationScale=null,this._modulationNode.dispose(),this._modulationNode=null,this.oscillator=null,this.envelope=null,this.modulationEnvelope=null,this.modulation=null,this},t.AMSynth}),t(function(t){return t.MonoSynth=function(e){e=this.defaultArg(e,t.MonoSynth.defaults),t.Monophonic.call(this,e),this.oscillator=new t.OmniOscillator(e.oscillator),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.filter=new t.Filter(e.filter),this.filterEnvelope=new t.FrequencyEnvelope(e.filterEnvelope),this.envelope=new t.AmplitudeEnvelope(e.envelope),this.oscillator.chain(this.filter,this.envelope,this.output),this.oscillator.start(),this.filterEnvelope.connect(this.filter.frequency),this._readOnly([\"oscillator\",\"frequency\",\"detune\",\"filter\",\"filterEnvelope\",\"envelope\"])},t.extend(t.MonoSynth,t.Monophonic),t.MonoSynth.defaults={frequency:\"C4\",detune:0,oscillator:{type:\"square\"},filter:{Q:6,type:\"lowpass\",rolloff:-24},envelope:{attack:.005,decay:.1,sustain:.9,release:1},filterEnvelope:{attack:.06,decay:.2,sustain:.5,release:2,baseFrequency:200,octaves:7,exponent:2}},t.MonoSynth.prototype._triggerEnvelopeAttack=function(t,e){return this.envelope.triggerAttack(t,e),this.filterEnvelope.triggerAttack(t),this},t.MonoSynth.prototype._triggerEnvelopeRelease=function(t){return this.envelope.triggerRelease(t),this.filterEnvelope.triggerRelease(t),this},t.MonoSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable([\"oscillator\",\"frequency\",\"detune\",\"filter\",\"filterEnvelope\",\"envelope\"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this.filterEnvelope.dispose(),this.filterEnvelope=null,this.filter.dispose(),this.filter=null,this.frequency=null,this.detune=null,this},t.MonoSynth}),t(function(t){return t.DuoSynth=function(e){e=this.defaultArg(e,t.DuoSynth.defaults),t.Monophonic.call(this,e),this.voice0=new t.MonoSynth(e.voice0),this.voice0.volume.value=-10,this.voice1=new t.MonoSynth(e.voice1),this.voice1.volume.value=-10,this._vibrato=new t.LFO(e.vibratoRate,-50,50),this._vibrato.start(),this.vibratoRate=this._vibrato.frequency,this._vibratoGain=new t.Gain(e.vibratoAmount,t.Type.Positive),this.vibratoAmount=this._vibratoGain.gain,this.frequency=new t.Signal(440,t.Type.Frequency),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this.frequency.connect(this.voice0.frequency),this.frequency.chain(this.harmonicity,this.voice1.frequency),this._vibrato.connect(this._vibratoGain),this._vibratoGain.fan(this.voice0.detune,this.voice1.detune),this.voice0.connect(this.output),this.voice1.connect(this.output),this._readOnly([\"voice0\",\"voice1\",\"frequency\",\"vibratoAmount\",\"vibratoRate\"])},t.extend(t.DuoSynth,t.Monophonic),t.DuoSynth.defaults={vibratoAmount:.5,vibratoRate:5,harmonicity:1.5,voice0:{volume:-10,portamento:0,oscillator:{type:\"sine\"},filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}},voice1:{volume:-10,portamento:0,oscillator:{type:\"sine\"},filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}}},t.DuoSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.voice0.envelope.triggerAttack(t,e),this.voice1.envelope.triggerAttack(t,e),this.voice0.filterEnvelope.triggerAttack(t),this.voice1.filterEnvelope.triggerAttack(t),this},t.DuoSynth.prototype._triggerEnvelopeRelease=function(t){return this.voice0.triggerRelease(t),this.voice1.triggerRelease(t),this},t.DuoSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable([\"voice0\",\"voice1\",\"frequency\",\"vibratoAmount\",\"vibratoRate\"]),this.voice0.dispose(),this.voice0=null,this.voice1.dispose(),this.voice1=null,this.frequency.dispose(),this.frequency=null,this._vibratoGain.dispose(),this._vibratoGain=null,this._vibrato=null,this.harmonicity.dispose(),this.harmonicity=null,this.vibratoAmount.dispose(),this.vibratoAmount=null,this.vibratoRate=null,this},t.DuoSynth}),t(function(t){return t.FMSynth=function(e){e=this.defaultArg(e,t.FMSynth.defaults),t.Monophonic.call(this,e),this._carrier=new t.Synth(e.carrier),this._carrier.volume.value=-10,this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope.set(e.envelope),this._modulator=new t.Synth(e.modulator),this._modulator.volume.value=-10,this.modulation=this._modulator.oscillator.set(e.modulation),this.modulationEnvelope=this._modulator.envelope.set(e.modulationEnvelope),this.frequency=new t.Signal(440,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this.modulationIndex=new t.Multiply(e.modulationIndex),this.modulationIndex.units=t.Type.Positive,this._modulationNode=new t.Gain(0),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this._readOnly([\"frequency\",\"harmonicity\",\"modulationIndex\",\"oscillator\",\"envelope\",\"modulation\",\"modulationEnvelope\",\"detune\"])},t.extend(t.FMSynth,t.Monophonic),t.FMSynth.defaults={harmonicity:3,modulationIndex:10,detune:0,oscillator:{type:\"sine\"},envelope:{attack:.01,decay:.01,sustain:1,release:.5},modulation:{type:\"square\"},modulationEnvelope:{attack:.5,decay:0,sustain:1,release:.5}},t.FMSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.envelope.triggerAttack(t,e),this.modulationEnvelope.triggerAttack(t),this},t.FMSynth.prototype._triggerEnvelopeRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this.modulationEnvelope.triggerRelease(t),this},t.FMSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable([\"frequency\",\"harmonicity\",\"modulationIndex\",\"oscillator\",\"envelope\",\"modulation\",\"modulationEnvelope\",\"detune\"]),this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this.modulationIndex.dispose(),this.modulationIndex=null,this.harmonicity.dispose(),this.harmonicity=null,this._modulationNode.dispose(),this._modulationNode=null,this.oscillator=null,this.envelope=null,this.modulationEnvelope=null,this.modulation=null,this},t.FMSynth}),t(function(t){return t.MembraneSynth=function(e){e=this.defaultArg(e,t.MembraneSynth.defaults),t.Instrument.call(this,e),this.oscillator=new t.OmniOscillator(e.oscillator).start(),this.envelope=new t.AmplitudeEnvelope(e.envelope),this.octaves=e.octaves,this.pitchDecay=e.pitchDecay,this.oscillator.chain(this.envelope,this.output),this._readOnly([\"oscillator\",\"envelope\"])},t.extend(t.MembraneSynth,t.Instrument),t.MembraneSynth.defaults={pitchDecay:.05,octaves:10,oscillator:{type:\"sine\"},envelope:{attack:.001,decay:.4,sustain:.01,release:1.4,attackCurve:\"exponential\"}},t.MembraneSynth.prototype.triggerAttack=function(t,e,i){e=this.toSeconds(e),t=this.toFrequency(t);var s=t*this.octaves;return this.oscillator.frequency.setValueAtTime(s,e),this.oscillator.frequency.exponentialRampToValueAtTime(t,e+this.toSeconds(this.pitchDecay)),this.envelope.triggerAttack(e,i),this},t.MembraneSynth.prototype.triggerRelease=function(t){return this.envelope.triggerRelease(t),this},t.MembraneSynth.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._writable([\"oscillator\",\"envelope\"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this},t.MembraneSynth}),t(function(t){var e=[1,1.483,1.932,2.546,2.63,3.897];return t.MetalSynth=function(i){i=this.defaultArg(i,t.MetalSynth.defaults),t.Instrument.call(this,i),this.frequency=new t.Signal(i.frequency,t.Type.Frequency),this._oscillators=[],this._freqMultipliers=[],this._amplitue=new t.Gain(0).connect(this.output),this._highpass=new t.Filter({type:\"highpass\",Q:-3.0102999566398125}).connect(this._amplitue),this._octaves=i.octaves,this._filterFreqScaler=new t.Scale(i.resonance,7e3),this.envelope=new t.Envelope({attack:i.envelope.attack,attackCurve:\"linear\",decay:i.envelope.decay,sustain:0,release:i.envelope.release}).chain(this._filterFreqScaler,this._highpass.frequency),this.envelope.connect(this._amplitue.gain);for(var s=0;s<e.length;s++){var n=new t.FMOscillator({type:\"square\",modulationType:\"square\",harmonicity:i.harmonicity,modulationIndex:i.modulationIndex});n.connect(this._highpass).start(0),this._oscillators[s]=n;var o=new t.Multiply(e[s]);this._freqMultipliers[s]=o,this.frequency.chain(o,n.frequency)}this.octaves=i.octaves},t.extend(t.MetalSynth,t.Instrument),t.MetalSynth.defaults={frequency:200,envelope:{attack:.001,decay:1.4,release:.2},harmonicity:5.1,modulationIndex:32,resonance:4e3,octaves:1.5},t.MetalSynth.prototype.triggerAttack=function(t,e){return t=this.toSeconds(t),e=this.defaultArg(e,1),this.envelope.triggerAttack(t,e),this},t.MetalSynth.prototype.triggerRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this},t.MetalSynth.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),t=this.toSeconds(t),this.triggerAttack(e,i),this.triggerRelease(e+t),this},Object.defineProperty(t.MetalSynth.prototype,\"modulationIndex\",{get:function(){return this._oscillators[0].modulationIndex.value},set:function(t){for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].modulationIndex.value=t}}),Object.defineProperty(t.MetalSynth.prototype,\"harmonicity\",{get:function(){return this._oscillators[0].harmonicity.value},set:function(t){for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].harmonicity.value=t}}),Object.defineProperty(t.MetalSynth.prototype,\"resonance\",{get:function(){return this._filterFreqScaler.min},set:function(t){this._filterFreqScaler.min=t,this.octaves=this._octaves}}),Object.defineProperty(t.MetalSynth.prototype,\"octaves\",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._filterFreqScaler.max=this._filterFreqScaler.min*Math.pow(2,t)}}),t.MetalSynth.prototype.dispose=function(){t.Instrument.prototype.dispose.call(this);for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].dispose(),this._freqMultipliers[e].dispose();this._oscillators=null,this._freqMultipliers=null,this.frequency.dispose(),this.frequency=null,this._filterFreqScaler.dispose(),this._filterFreqScaler=null,this._amplitue.dispose(),this._amplitue=null,this.envelope.dispose(),this.envelope=null,this._highpass.dispose(),this._highpass=null},t.MetalSynth}),t(function(t){return window.AudioBufferSourceNode&&!AudioBufferSourceNode.prototype.start&&(AudioBufferSourceNode.prototype.start=AudioBufferSourceNode.prototype.noteGrainOn,AudioBufferSourceNode.prototype.stop=AudioBufferSourceNode.prototype.noteOff),t.BufferSource=function(){var e=this.optionsObject(arguments,[\"buffer\",\"onended\"],t.BufferSource.defaults);this.onended=e.onended,this._startTime=-1,this._stopTime=-1,this._gainNode=this.output=new t.Gain,this._source=this.context.createBufferSource(),this._source.connect(this._gainNode),this.playbackRate=new t.Param(this._source.playbackRate,t.Type.Positive),this.fadeIn=e.fadeIn,this.fadeOut=e.fadeOut,this._gain=1,this._onendedTimeout=-1,this.isUndef(e.buffer)||(this.buffer=e.buffer),this.loop=e.loop},t.extend(t.BufferSource),t.BufferSource.defaults={onended:t.noOp,fadeIn:0,fadeOut:0},Object.defineProperty(t.BufferSource.prototype,\"state\",{get:function(){var e=this.now();return-1!==this._startTime&&e>=this._startTime&&e<this._stopTime?t.State.Started:t.State.Stopped}}),t.BufferSource.prototype.start=function(t,e,i,s,n){if(-1!==this._startTime)throw new Error(\"Tone.BufferSource: can only be started once.\");return this.buffer&&(t=this.toSeconds(t),e=this.loop?this.defaultArg(e,this.loopStart):this.defaultArg(e,0),e=this.toSeconds(e),t=this.toSeconds(t),this._source.start(t,e),s=this.defaultArg(s,1),this._gain=s,n=this.isUndef(n)?this.toSeconds(this.fadeIn):this.toSeconds(n),n>0?(this._gainNode.gain.setValueAtTime(0,t),this._gainNode.gain.linearRampToValueAtTime(this._gain,t+n)):this._gainNode.gain.setValueAtTime(s,t),this._startTime=t+n,this.isUndef(i)||(i=this.defaultArg(i,this.buffer.duration-e),i=this.toSeconds(i),this.stop(t+i+n,n))),this},t.BufferSource.prototype.stop=function(t,e){return this.buffer&&(t=this.toSeconds(t),e=this.isUndef(e)?this.toSeconds(this.fadeOut):this.toSeconds(e),this._stopTime=t+e,this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),e>0?(this._gainNode.gain.setValueAtTime(this._gain,t),this._gainNode.gain.linearRampToValueAtTime(0,t+e),t+=e):this._gainNode.gain.setValueAtTime(0,t),this.isNumber(this._source.playbackState)&&2!==this._source.playbackState||this._source.stop(t),clearTimeout(this._onendedTimeout),this._onendedTimeout=setTimeout(this._onended.bind(this),1e3*(this._stopTime-this.now()))),this},t.BufferSource.prototype._onended=function(){this.onended(this),this.dispose()},Object.defineProperty(t.BufferSource.prototype,\"loopStart\",{get:function(){return this._source.loopStart},set:function(t){this._source.loopStart=this.toSeconds(t)}}),Object.defineProperty(t.BufferSource.prototype,\"loopEnd\",{get:function(){return this._source.loopEnd},set:function(t){this._source.loopEnd=this.toSeconds(t)}}),Object.defineProperty(t.BufferSource.prototype,\"buffer\",{get:function(){return this._source?this._source.buffer:null},set:function(e){e instanceof t.Buffer?this._source.buffer=e.get():this._source.buffer=e}}),Object.defineProperty(t.BufferSource.prototype,\"loop\",{get:function(){return this._source.loop},set:function(t){this._source.loop=t}}),t.BufferSource.prototype.dispose=function(){return this.onended=null,this._source&&(this._source.disconnect(),this._source=null),this._gainNode&&(this._gainNode.dispose(),this._gainNode=null),this._startTime=-1,this.playbackRate=null,this.output=null,clearTimeout(this._onendedTimeout),this},t.BufferSource}),t(function(t){function e(){for(var e in i)s[e]=(new t.Buffer).fromArray(i[e])}t.Noise=function(){var e=this.optionsObject(arguments,[\"type\"],t.Noise.defaults);t.Source.call(this,e),this._source=null,this._type=e.type,this._playbackRate=e.playbackRate},t.extend(t.Noise,t.Source),t.Noise.defaults={type:\"white\",playbackRate:1},Object.defineProperty(t.Noise.prototype,\"type\",{get:function(){return this._type},set:function(e){if(this._type!==e){if(!(e in s))throw new TypeError(\"Tone.Noise: invalid type: \"+e);if(this._type=e,this.state===t.State.Started){var i=this.now()+this.blockTime;this._stop(i),this._start(i)}}}}),Object.defineProperty(t.Noise.prototype,\"playbackRate\",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}}),t.Noise.prototype._start=function(e){var i=s[this._type];this._source=new t.BufferSource(i).connect(this.output),this._source.loop=!0,this._source.playbackRate.value=this._playbackRate,this._source.start(this.toSeconds(e),Math.random()*(i.duration-.001))},t.Noise.prototype._stop=function(t){this._source&&(this._source.stop(this.toSeconds(t)),this._source=null)},t.Noise.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),null!==this._source&&(this._source.disconnect(),this._source=null),this._buffer=null,this};var i={pink:function(){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;var s,n,o,r,a,h,l;s=n=o=r=a=h=l=0;for(var c=0;c<220500;c++){var u=2*Math.random()-1;s=.99886*s+.0555179*u,n=.99332*n+.0750759*u,o=.969*o+.153852*u,r=.8665*r+.3104856*u,a=.55*a+.5329522*u,h=-.7616*h-.016898*u,i[c]=s+n+o+r+a+h+l+.5362*u,i[c]*=.11,l=.115926*u}}return t}(),brown:function(){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;for(var s=0,n=0;n<220500;n++){var o=2*Math.random()-1;i[n]=(s+.02*o)/1.02,s=i[n],i[n]*=3.5}}return t}(),white:function(){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;for(var s=0;s<220500;s++)i[s]=2*Math.random()-1}return t}()},s={};return e(),t.Context.on(\"init\",e),t.Noise}),t(function(t){return t.NoiseSynth=function(e){e=this.defaultArg(e,t.NoiseSynth.defaults),t.Instrument.call(this,e),this.noise=new t.Noise,this.envelope=new t.AmplitudeEnvelope(e.envelope),this.noise.chain(this.envelope,this.output),this.noise.start(),this._readOnly([\"noise\",\"envelope\"])},t.extend(t.NoiseSynth,t.Instrument),t.NoiseSynth.defaults={noise:{type:\"white\"},envelope:{attack:.005,decay:.1,sustain:0}},t.NoiseSynth.prototype.triggerAttack=function(t,e){return this.envelope.triggerAttack(t,e),this},t.NoiseSynth.prototype.triggerRelease=function(t){return this.envelope.triggerRelease(t),this},t.NoiseSynth.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),t=this.toSeconds(t),this.triggerAttack(e,i),this.triggerRelease(e+t),this},t.NoiseSynth.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._writable([\"noise\",\"envelope\"]),this.noise.dispose(),this.noise=null,this.envelope.dispose(),this.envelope=null,this},t.NoiseSynth}),t(function(t){return t.PluckSynth=function(e){e=this.defaultArg(e,t.PluckSynth.defaults),t.Instrument.call(this,e),this._noise=new t.Noise(\"pink\"),this.attackNoise=e.attackNoise,this._lfcf=new t.LowpassCombFilter({resonance:e.resonance,dampening:e.dampening}),this.resonance=this._lfcf.resonance,this.dampening=this._lfcf.dampening,this._noise.connect(this._lfcf),this._lfcf.connect(this.output),this._readOnly([\"resonance\",\"dampening\"])},t.extend(t.PluckSynth,t.Instrument),t.PluckSynth.defaults={attackNoise:1,dampening:4e3,resonance:.9},t.PluckSynth.prototype.triggerAttack=function(t,e){t=this.toFrequency(t),e=this.toSeconds(e);var i=1/t;return this._lfcf.delayTime.setValueAtTime(i,e),this._noise.start(e),this._noise.stop(e+i*this.attackNoise),this},t.PluckSynth.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._noise.dispose(),this._lfcf.dispose(),this._noise=null,this._lfcf=null,this._writable([\"resonance\",\"dampening\"]),this.dampening=null,this.resonance=null,this},t.PluckSynth}),t(function(t){return t.PolySynth=function(){t.Instrument.call(this);var e=this.optionsObject(arguments,[\"polyphony\",\"voice\"],t.PolySynth.defaults);e=this.defaultArg(e,t.Instrument.defaults),e.polyphony=Math.min(t.PolySynth.MAX_POLYPHONY,e.polyphony),this.voices=new Array(e.polyphony),this._triggers=new Array(e.polyphony),this.detune=new t.Signal(e.detune,t.Type.Cents),this._readOnly(\"detune\");for(var i=0;i<e.polyphony;i++){var s=new e.voice(arguments[2],arguments[3]);this.voices[i]=s,s.connect(this.output),s.hasOwnProperty(\"detune\")&&this.detune.connect(s.detune),this._triggers[i]={release:-1,note:null,voice:s}}this.volume.value=e.volume},t.extend(t.PolySynth,t.Instrument),t.PolySynth.defaults={polyphony:4,volume:0,detune:0,voice:t.Synth},t.PolySynth.prototype.triggerAttack=function(t,e,i){Array.isArray(t)||(t=[t]),e=this.toSeconds(e);for(var s=0;s<t.length;s++){for(var n=t[s],o=this._triggers[0],r=1;r<this._triggers.length;r++)this._triggers[r].release<o.release&&(o=this._triggers[r],r);o.release=1/0,o.note=JSON.stringify(n),o.voice.triggerAttack(n,e,i)}return this},t.PolySynth.prototype.triggerAttackRelease=function(t,e,i,s){if(i=this.toSeconds(i),this.triggerAttack(t,i,s),this.isArray(e)&&this.isArray(t))for(var n=0;n<t.length;n++){var o=e[Math.min(n,e.length-1)];this.triggerRelease(t[n],i+this.toSeconds(o))}else this.triggerRelease(t,i+this.toSeconds(e));return this},t.PolySynth.prototype.triggerRelease=function(t,e){Array.isArray(t)||(t=[t]),e=this.toSeconds(e);for(var i=0;i<t.length;i++)for(var s=JSON.stringify(t[i]),n=0;n<this._triggers.length;n++){var o=this._triggers[n];o.note===s&&o.release>e&&(o.voice.triggerRelease(e),o.release=e)}return this},t.PolySynth.prototype.set=function(t,e,i){for(var s=0;s<this.voices.length;s++)this.voices[s].set(t,e,i);return this},t.PolySynth.prototype.get=function(t){return this.voices[0].get(t)},t.PolySynth.prototype.releaseAll=function(t){t=this.toSeconds(t);for(var e=0;e<this._triggers.length;e++){var i=this._triggers[e];i.release>t&&(i.release=t,i.voice.triggerRelease(t))}return this},t.PolySynth.prototype.dispose=function(){t.Instrument.prototype.dispose.call(this);for(var e=0;e<this.voices.length;e++)this.voices[e].dispose(),this.voices[e]=null;return this._writable(\"detune\"),this.detune.dispose(),this.detune=null,this.voices=null,this._triggers=null,this},t.PolySynth.MAX_POLYPHONY=20,t.PolySynth}),t(function(t){return t.Player=function(e){var i;e instanceof t.Buffer?(e=e.get(),i=t.Player.defaults):i=this.optionsObject(arguments,[\"url\",\"onload\"],t.Player.defaults),t.Source.call(this,i),this._source=null,this.autostart=i.autostart,this._buffer=new t.Buffer({url:i.url,onload:this._onload.bind(this,i.onload),reverse:i.reverse}),e instanceof AudioBuffer&&this._buffer.set(e),this._loop=i.loop,this._loopStart=i.loopStart,this._loopEnd=i.loopEnd,this._playbackRate=i.playbackRate,this.retrigger=i.retrigger},t.extend(t.Player,t.Source),t.Player.defaults={onload:t.noOp,playbackRate:1,loop:!1,autostart:!1,loopStart:0,loopEnd:0,retrigger:!1,reverse:!1},t.Player.prototype.load=function(t,e){return this._buffer.load(t,this._onload.bind(this,e))},t.Player.prototype._onload=function(e){e=this.defaultArg(e,t.noOp),e(this),this.autostart&&this.start()},t.Player.prototype._start=function(e,i,s){if(!this._buffer.loaded)throw Error(\"Tone.Player: tried to start Player before the buffer was loaded\");if(i=this._loop?this.defaultArg(i,this._loopStart):this.defaultArg(i,0),i=this.toSeconds(i),s=this.defaultArg(s,Math.max(this._buffer.duration-i,0)),s=this.toSeconds(s),e=this.toSeconds(e),this._source=this.context.createBufferSource(),this._source.buffer=this._buffer.get(),this._loop?(this._source.loop=this._loop,this._source.loopStart=this.toSeconds(this._loopStart),this._source.loopEnd=this.toSeconds(this._loopEnd)):this._synced||this._state.setStateAtTime(t.State.Stopped,e+s),this._source.playbackRate.value=this._playbackRate,this._source.connect(this.output),this._loop){var n=this._source.loopEnd||this._buffer.duration,o=this._source.loopStart,r=n-o;if(i>n)for(;i>n;)i-=r;this._source.start(e,i)}else this._source.start(e,i,s);return this},t.Player.prototype._stop=function(t){return this._source&&(this._source.stop(this.toSeconds(t)),this._source=null),this},t.Player.prototype.seek=function(e,i){return i=this.toSeconds(i),this._state.getValueAtTime(i)===t.State.Started&&(e=this.toSeconds(e),this._stop(i),this._start(i,e)),this},t.Player.prototype.setLoopPoints=function(t,e){return this.loopStart=t,this.loopEnd=e,this},Object.defineProperty(t.Player.prototype,\"loopStart\",{get:function(){return this._loopStart},set:function(t){this._loopStart=t,this._source&&(this._source.loopStart=this.toSeconds(t))}}),Object.defineProperty(t.Player.prototype,\"loopEnd\",{get:function(){return this._loopEnd},set:function(t){this._loopEnd=t,this._source&&(this._source.loopEnd=this.toSeconds(t))}}),Object.defineProperty(t.Player.prototype,\"buffer\",{get:function(){return this._buffer},set:function(t){this._buffer.set(t)}}),Object.defineProperty(t.Player.prototype,\"loop\",{get:function(){return this._loop},set:function(t){this._loop=t,this._source&&(this._source.loop=t)}}),Object.defineProperty(t.Player.prototype,\"playbackRate\",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}}),Object.defineProperty(t.Player.prototype,\"reverse\",{get:function(){return this._buffer.reverse},set:function(t){this._buffer.reverse=t}}),t.Player.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),null!==this._source&&(this._source.disconnect(),this._source=null),this._buffer.dispose(),this._buffer=null,this},t.Player}),t(function(t){return t.Sampler=function(){var e=this.optionsObject(arguments,[\"url\",\"onload\"],t.Sampler.defaults);t.Instrument.call(this,e),this.player=new t.Player(e.url,e.onload),this.player.retrigger=!0,this.envelope=new t.AmplitudeEnvelope(e.envelope),this.player.chain(this.envelope,this.output),this._readOnly([\"player\",\"envelope\"]),this.loop=e.loop,this.reverse=e.reverse},t.extend(t.Sampler,t.Instrument),t.Sampler.defaults={onload:t.noOp,loop:!1,reverse:!1,envelope:{attack:.001,decay:0,sustain:1,release:.1}},t.Sampler.prototype.triggerAttack=function(t,e,i){return e=this.toSeconds(e),t=this.defaultArg(t,0),this.player.playbackRate=this.intervalToFrequencyRatio(t),this.player.start(e),this.envelope.triggerAttack(e,i),this},t.Sampler.prototype.triggerRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this.player.stop(this.toSeconds(this.envelope.release)+t),this},Object.defineProperty(t.Sampler.prototype,\"loop\",{get:function(){return this.player.loop},set:function(t){this.player.loop=t}}),Object.defineProperty(t.Sampler.prototype,\"reverse\",{get:function(){return this.player.reverse},set:function(t){this.player.reverse=t}}),Object.defineProperty(t.Sampler.prototype,\"buffer\",{get:function(){return this.player.buffer},set:function(t){this.player.buffer=t}}),t.Sampler.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._writable([\"player\",\"envelope\"]),this.player.dispose(),this.player=null,this.envelope.dispose(),this.envelope=null,this},t.Sampler}),t(function(t){return t.GainToAudio=function(){this._norm=this.input=this.output=new t.WaveShaper(function(t){return 2*Math.abs(t)-1})},t.extend(t.GainToAudio,t.SignalBase),t.GainToAudio.prototype.dispose=function(){return t.prototype.dispose.call(this),this._norm.dispose(),this._norm=null,this},t.GainToAudio}),t(function(t){return t.Normalize=function(e,i){this._inputMin=this.defaultArg(e,0),this._inputMax=this.defaultArg(i,1),this._sub=this.input=new t.Add(0),this._div=this.output=new t.Multiply(1),this._sub.connect(this._div),this._setRange()},t.extend(t.Normalize,t.SignalBase),Object.defineProperty(t.Normalize.prototype,\"min\",{get:function(){return this._inputMin},set:function(t){this._inputMin=t,this._setRange()}}),Object.defineProperty(t.Normalize.prototype,\"max\",{get:function(){return this._inputMax},set:function(t){this._inputMax=t,this._setRange()}}),t.Normalize.prototype._setRange=function(){this._sub.value=-this._inputMin,this._div.value=1/(this._inputMax-this._inputMin)},t.Normalize.prototype.dispose=function(){return t.prototype.dispose.call(this),this._sub.dispose(),this._sub=null,this._div.dispose(),this._div=null,this},t.Normalize}),t(function(t){return t.MultiPlayer=function(){var e=this.optionsObject(arguments,[\"urls\",\"onload\"],t.MultiPlayer.defaults);e.urls instanceof t.Buffers?this.buffers=e.urls:this.buffers=new t.Buffers(e.urls,e.onload),this._activeSources={},this.fadeIn=e.fadeIn,this.fadeOut=e.fadeOut,this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly(\"volume\"),this._volume.output.output.channelCount=2,this._volume.output.output.channelCountMode=\"explicit\",this.mute=e.mute},t.extend(t.MultiPlayer,t.Source),t.MultiPlayer.defaults={onload:t.noOp,fadeIn:0,fadeOut:0},t.MultiPlayer.prototype._makeSource=function(e){var i;this.isString(e)||this.isNumber(e)?i=this.buffers.get(e).get():e instanceof t.Buffer?i=e.get():e instanceof AudioBuffer&&(i=e);var s=new t.BufferSource(i).connect(this.output);return this._activeSources.hasOwnProperty(e)||(this._activeSources[e]=[]),this._activeSources[e].push(s),s},t.MultiPlayer.prototype.start=function(t,e,i,s,n,o){e=this.toSeconds(e);var r=this._makeSource(t);return r.start(e,i,s,this.defaultArg(o,1),this.fadeIn),s&&r.stop(e+this.toSeconds(s),this.fadeOut),n=this.defaultArg(n,0),r.playbackRate.value=this.intervalToFrequencyRatio(n),this},t.MultiPlayer.prototype.startLoop=function(t,e,i,s,n,o,r){e=this.toSeconds(e);var a=this._makeSource(t);return a.loop=!0,a.loopStart=this.toSeconds(this.defaultArg(s,0)),a.loopEnd=this.toSeconds(this.defaultArg(n,0)),a.start(e,i,void 0,this.defaultArg(r,1),this.fadeIn),o=this.defaultArg(o,0),a.playbackRate.value=this.intervalToFrequencyRatio(o),this},t.MultiPlayer.prototype.stop=function(t,e){if(!this._activeSources[t]||!this._activeSources[t].length)throw new Error(\"Tone.MultiPlayer: cannot stop a buffer that hasn't been started or is already stopped\");return e=this.toSeconds(e),this._activeSources[t].shift().stop(e,this.fadeOut),this},t.MultiPlayer.prototype.stopAll=function(t){t=this.toSeconds(t);for(var e in this._activeSources)for(var i=this._activeSources[e],s=0;s<i.length;s++)i[s].stop(t);return this},t.MultiPlayer.prototype.add=function(t,e,i){return this.buffers.add(t,e,i),this},Object.defineProperty(t.MultiPlayer.prototype,\"state\",{get:function(){return this._activeSources.length>0?t.State.Started:t.State.Stopped}}),Object.defineProperty(t.MultiPlayer.prototype,\"mute\",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.MultiPlayer.prototype.dispose=function(){t.prototype.dispose.call(this),this._volume.dispose(),this._volume=null,this._writable(\"volume\"),this.volume=null;for(var e in this._activeSources)this._activeSources[e].forEach(function(t){t.dispose()});return this.buffers.dispose(),this.buffers=null,this._activeSources=null,this},t.MultiPlayer}),t(function(t){return t.GrainPlayer=function(){var e=this.optionsObject(arguments,[\"url\",\"onload\"],t.GrainPlayer.defaults);t.Source.call(this),this.buffer=new t.Buffer(e.url,e.onload),this._player=(new t.MultiPlayer).connect(this.output),this._clock=new t.Clock(this._tick.bind(this),1),this._loopStart=0,this._loopEnd=0,this._playbackRate=e.playbackRate,this._grainSize=e.grainSize,this._overlap=e.overlap,this.detune=e.detune,this.drift=e.drift,this.overlap=e.overlap,this.loop=e.loop,this.playbackRate=e.playbackRate,this.grainSize=e.grainSize,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this.reverse=e.reverse},t.extend(t.GrainPlayer,t.Source),t.GrainPlayer.defaults={onload:t.noOp,overlap:.1,grainSize:.2,drift:0,playbackRate:1,detune:0,loop:!1,loopStart:0,loopEnd:0,reverse:!1},t.GrainPlayer.prototype._start=function(t,e,i){e=this.defaultArg(e,0),e=this.toSeconds(e),t=this.toSeconds(t),this._offset=e,this._clock.start(t),this._player.volume.setValueAtTime(0,t),i&&this._stop(t+this.toSeconds(i))},t.GrainPlayer.prototype._stop=function(t){this._clock.stop(t),this._player.volume.cancelScheduledValues(t),this._player.volume.setValueAtTime(-1/0,t)},t.GrainPlayer.prototype._tick=function(t){var e=this.buffer.duration;this.loop&&this._loopEnd>0&&(e=this._loopEnd);var i=(2*Math.random()-1)*this.drift,s=this._offset-this._overlap+i,n=this.detune/100;s=Math.max(s,0),s=Math.min(s,e);var o=this._player.fadeIn;if(this.loop&&this._offset>e){var r=this._offset-e;this._player.start(this.buffer,t,s,r+this._overlap,n),s=this._offset%e,this._offset=this._loopStart,this._player.fadeIn=0,this._player.start(this.buffer,t+r,this._offset,s+this._overlap,n)}else this._offset>e?this.stop(t):(0===s&&(this._player.fadeIn=0),this._player.start(this.buffer,t,s,this.grainSize+this._overlap,n));this._player.fadeIn=o;var a=this._clock._nextTick-t;this._offset+=a*this._playbackRate},t.GrainPlayer.prototype.scrub=function(t,e){return this._offset=this.toSeconds(t),this._tick(this.toSeconds(e)),this},Object.defineProperty(t.GrainPlayer.prototype,\"playbackRate\",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this.grainSize=this._grainSize}}),Object.defineProperty(t.GrainPlayer.prototype,\"loopStart\",{get:function(){return this._loopStart},set:function(t){this._loopStart=this.toSeconds(t)}}),Object.defineProperty(t.GrainPlayer.prototype,\"loopEnd\",{get:function(){return this._loopEnd},set:function(t){this._loopEnd=this.toSeconds(t)}}),Object.defineProperty(t.GrainPlayer.prototype,\"reverse\",{get:function(){return this.buffer.reverse},set:function(t){this.buffer.reverse=t}}),Object.defineProperty(t.GrainPlayer.prototype,\"grainSize\",{get:function(){return this._grainSize},set:function(t){this._grainSize=this.toSeconds(t),this._clock.frequency.value=this._playbackRate/this._grainSize}}),Object.defineProperty(t.GrainPlayer.prototype,\"overlap\",{get:function(){return this._overlap},set:function(t){t=this.toSeconds(t),this._overlap=t,this._overlap<0?(this._player.fadeIn=.01,this._player.fadeOut=.01):(this._player.fadeIn=t,this._player.fadeOut=t)}}),t.GrainPlayer.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this.buffer.dispose(),this.buffer=null,this._player.dispose(),this._player=null,this._clock.dispose(),this._clock=null,this},t.GrainPlayer}),t(function(t){return t.UserMedia=function(){var e=this.optionsObject(arguments,[\"volume\"],t.UserMedia.defaults);this._mediaStream=null,this._stream=null,this._device=null,this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly(\"volume\"),this.mute=e.mute},t.extend(t.UserMedia),t.UserMedia.defaults={volume:0,mute:!1},t.UserMedia.prototype.open=function(t){return t=this.defaultArg(t,\"default\"),this.enumerateDevices().then(function(e){var i;if(this.isNumber(t)?i=e[t]:(i=e.find(function(e){return e.label===t||e.deviceId===t}))||(i=e[0]),!i)throw new Error(\"Tone.UserMedia: no matching audio inputs.\");this._device=i;var s={audio:{deviceId:i.deviceId,echoCancellation:!1,sampleRate:this.context.sampleRate}};return navigator.mediaDevices.getUserMedia(s).then(function(t){return this._stream||(this._stream=t,this._mediaStream=this.context.createMediaStreamSource(t),this._mediaStream.connect(this.output)),this}.bind(this))}.bind(this))},t.UserMedia.prototype.close=function(){return this._stream&&(this._stream.getAudioTracks().forEach(function(t){t.stop()}),this._stream=null,this._mediaStream.disconnect(),this._mediaStream=null),this._device=null,this},t.UserMedia.prototype.enumerateDevices=function(){return navigator.mediaDevices.enumerateDevices().then(function(t){return t.filter(function(t){return\"audioinput\"===t.kind})})},Object.defineProperty(t.UserMedia.prototype,\"state\",{get:function(){return this._stream&&this._stream.active?t.State.Started:t.State.Stopped}}),Object.defineProperty(t.UserMedia.prototype,\"deviceId\",{get:function(){if(this._device)return this._device.deviceId}}),Object.defineProperty(t.UserMedia.prototype,\"groupId\",{get:function(){if(this._device)return this._device.groupId}}),Object.defineProperty(t.UserMedia.prototype,\"label\",{get:function(){if(this._device)return this._device.label}}),Object.defineProperty(t.UserMedia.prototype,\"mute\",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.UserMedia.prototype.dispose=function(){return t.prototype.dispose.call(this),this.close(),this._writable(\"volume\"),this._volume.dispose(),this._volume=null,this.volume=null,this},Object.defineProperty(t.UserMedia,\"supported\",{get:function(){return!t.prototype.isUndef(navigator.mediaDevices)&&t.prototype.isFunction(navigator.mediaDevices.getUserMedia)}}),t.UserMedia}),e})},function(t,e,i){\"use strict\";function s(t){return t&&t.__esModule?t:{default:t}}function n(t){return t[Math.floor(Math.random()*t.length)]}function o(t,e){return t-e*Math.floor(t/e)}function r(t){if(f){var e=document.createElement(\"div\"),i=document.createElement(\"div\");i.innerHTML=\"Tap to start - please unmute your phone\",Object.assign(e.style,{position:\"absolute\",width:\"100%\",height:\"100%\",zIndex:\"10000\",top:\"0px\",left:\"0px\",backgroundColor:\"rgba(0, 0, 0, 0.8)\"}),Object.assign(i.style,{position:\"absolute\",left:\"50%\",top:\"50%\",padding:\"20px\",backgroundColor:\"#7F33ED\",color:\"white\",fontFamily:\"monospace\",borderRadius:\"3px\",transform:\"translate3D(-50%,-50%,0)\",textAlign:\"center\",lineHeight:\"1.5\"}),e.appendChild(i),document.body.appendChild(e),c.default.setContext(h.default.context),c.default.on(i),c.default.onStarted(function(i){e.remove(),t()})}else t()}Object.defineProperty(e,\"__esModule\",{value:!0}),e.requestAudioContext=e.browser=e.mod=e.choice=void 0;var a=i(4),h=s(a),l=i(17),c=s(l),u=navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPod/i),p=navigator.userAgent.match(/iPad/i),d=navigator.userAgent.match(/Android/i),f=u||p||d,y=!f;document.body.classList.add(f?\"mobile\":\"desktop\");var _={isIphone:u,isIpad:p,isMobile:f,isDesktop:y};e.choice=n,e.mod=o,e.browser=_,e.requestAudioContext=r},function(t,e){function i(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function s(t){return\"function\"==typeof t}function n(t){return\"number\"==typeof t}function o(t){return\"object\"==typeof t&&null!==t}function r(t){return void 0===t}t.exports=i,i.EventEmitter=i,i.prototype._events=void 0,i.prototype._maxListeners=void 0,i.defaultMaxListeners=10,i.prototype.setMaxListeners=function(t){if(!n(t)||t<0||isNaN(t))throw TypeError(\"n must be a positive number\");return this._maxListeners=t,this},i.prototype.emit=function(t){var e,i,n,a,h,l;if(this._events||(this._events={}),\"error\"===t&&(!this._events.error||o(this._events.error)&&!this._events.error.length)){if((e=arguments[1])instanceof Error)throw e;var c=new Error('Uncaught, unspecified \"error\" event. ('+e+\")\");throw c.context=e,c}if(i=this._events[t],r(i))return!1;if(s(i))switch(arguments.length){case 1:i.call(this);break;case 2:i.call(this,arguments[1]);break;case 3:i.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),i.apply(this,a)}else if(o(i))for(a=Array.prototype.slice.call(arguments,1),l=i.slice(),n=l.length,h=0;h<n;h++)l[h].apply(this,a);return!0},i.prototype.addListener=function(t,e){var n;if(!s(e))throw TypeError(\"listener must be a function\");return this._events||(this._events={}),this._events.newListener&&this.emit(\"newListener\",t,s(e.listener)?e.listener:e),this._events[t]?o(this._events[t])?this._events[t].push(e):this._events[t]=[this._events[t],e]:this._events[t]=e,o(this._events[t])&&!this._events[t].warned&&(n=r(this._maxListeners)?i.defaultMaxListeners:this._maxListeners)&&n>0&&this._events[t].length>n&&(this._events[t].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[t].length),\"function\"==typeof console.trace&&console.trace()),this},i.prototype.on=i.prototype.addListener,i.prototype.once=function(t,e){function i(){this.removeListener(t,i),n||(n=!0,e.apply(this,arguments))}if(!s(e))throw TypeError(\"listener must be a function\");var n=!1;return i.listener=e,this.on(t,i),this},i.prototype.removeListener=function(t,e){var i,n,r,a;if(!s(e))throw TypeError(\"listener must be a function\");if(!this._events||!this._events[t])return this;if(i=this._events[t],r=i.length,n=-1,i===e||s(i.listener)&&i.listener===e)delete this._events[t],this._events.removeListener&&this.emit(\"removeListener\",t,e);else if(o(i)){for(a=r;a-- >0;)if(i[a]===e||i[a].listener&&i[a].listener===e){n=a;break}if(n<0)return this;1===i.length?(i.length=0,delete this._events[t]):i.splice(n,1),this._events.removeListener&&this.emit(\"removeListener\",t,e)}return this},i.prototype.removeAllListeners=function(t){var e,i;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)\"removeListener\"!==e&&this.removeAllListeners(e);return this.removeAllListeners(\"removeListener\"),this._events={},this}if(i=this._events[t],s(i))this.removeListener(t,i);else if(i)for(;i.length;)this.removeListener(t,i[i.length-1]);return delete this._events[t],this},i.prototype.listeners=function(t){return this._events&&this._events[t]?s(this._events[t])?[this._events[t]]:this._events[t].slice():[]},i.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(s(e))return 1;if(e)return e.length}return 0},i.listenerCount=function(t,e){return t.listenerCount(e)}},function(t,e){e.findPosition=function(t){var e=document.body,i=document.defaultView,s=document.documentElement,n=document.createElement(\"div\");n.style.paddingLeft=n.style.width=\"1px\",e.appendChild(n);var o=2==n.offsetWidth;e.removeChild(n),n=t.getBoundingClientRect();var r=s.clientTop||e.clientTop||0,a=s.clientLeft||e.clientLeft||0,h=i.pageYOffset||o&&s.scrollTop||e.scrollTop,l=i.pageXOffset||o&&s.scrollLeft||e.scrollLeft;return{top:n.top+h-r,left:n.left+l-a}},e.getCursorPosition=function(t,e){var i,s;void 0!=t.pageX&&void 0!=t.pageY?(i=t.pageX,s=t.pageY):(i=t.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,s=t.clientY+document.body.scrollTop+document.documentElement.scrollTop),i-=e.left,s-=e.top;var n={x:i,y:s};return n.touches=[{x:i,y:s}],n},e.getTouchPosition=function(t,e){var i,s;i=t.targetTouches[0].pageX,s=t.targetTouches[0].pageY,i-=e.left,s-=e.top;var n={x:i,y:s};n.touches=new Array;for(var o=0;o<t.targetTouches.length;o++)n.touches.push({x:t.targetTouches[o].pageX-e.left,y:t.targetTouches[o].pageY-e.top});n.changed=new Array;for(var o=0;o<t.changedTouches.length;o++)n.changed.push({x:t.changedTouches[o].pageX-e.left,y:t.changedTouches[o].pageY-e.top});return n}},function(t,e){e.throttle=function(t,e){var i;return function(){var s=this,n=arguments;i||(i=setTimeout(function(){i=null;try{t.apply(s,n)}catch(t){console.log(t)}},e))}}},function(t,e){e.defineTransmit=function(t){if(\"function\"==typeof t)return t;switch(t){case\"js\":return function(t,e){this.makeOSC(this.emit,t,e),this.emit(\"*\",t,e)};case\"ajax\":return function(t){this.makeOSC(e.ajaxTransmit,t)};case\"node\":return function(t){this.makeOSC(e.nodeTransmit,t)};case\"ios\":return function(t){};case\"max\":return function(t){this.makeOSC(e.maxTransmit,t)};case\"wc\":return function(t,e){this.emit(\"internal\",t,e)}}},e.setGlobalTransmit=function(t){var i=e.defineTransmit(t);this.transmit=i,this.destination=t;for(var s in nx.widgets)this.widgets[s].transmit=i,this.widgets[s].destination=t},e.setWidgetTransmit=function(t){var i=e.defineTransmit(t);this.transmit=i,this.destination=t},e.ajaxTransmit=function(t,e){var i=\"value\"==t?this.oscPath:this.oscPath+\"/\"+t;xmlhttp=new XMLHttpRequest,xmlhttp.open(\"POST\",nx.ajaxPath,!0),xmlhttp.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"),xmlhttp.send(\"oscName=\"+i+\"&data=\"+e)},e.setAjaxPath=function(t){this.ajaxPath=t},e.nodeTransmit=function(t,e){var i={oscName:\"value\"==t?this.oscPath:this.oscPath+\"/\"+t,value:e};socket.emit(\"nx\",i)},e.maxTransmit=function(t,e){var i=\"value\"==t?this.oscPath:this.oscPath+\"/\"+t;window.max.outlet(i+\" \"+e)}},function(t,e,i){\"use strict\";function s(t,e,i,s,n,o,r){return e+i*Math.cos(2*Math.PI*(s*t+n))*r+o}function n(t,e,i){for(var n=void 0,o=void 0,a=void 0,h=void 0,l=[],c=0;c<3;c++)n=r[0][c],o=r[1][c],a=r[2][c],h=r[3][c],l[c]=Math.round(255*s(t,n,o,a,h,e,i));return\"rgb(\"+l+\")\"}Object.defineProperty(e,\"__esModule\",{value:!0});var o=[[[.5,.5,.5],[.5,.5,.5],[1,1,1],[0,.33,.67]],[[.5,.5,.5],[.5,.5,.5],[1,1,1],[0,.1,.2]],[[.5,.5,.5],[.5,.5,.5],[1,1,1],[.3,.2,.2]],[[.5,.5,.5],[.5,.5,.5],[1,1,.5],[.8,.9,.3]],[[.5,.5,.5],[.5,.5,.5],[1,.7,.4],[0,.15,.2]],[[.5,.5,.5],[.5,.5,.5],[2,1,0],[.5,.2,.25]],[[.8,.5,.4],[.2,.4,.2],[2,1,1],[0,.25,.25]]],r=o[0];e.default=n},function(t,e,i){\"use strict\";function s(t){var e={sample:(0,r.choice)(l)};e.sample.index=(e.sample.index+1)%a;var i=e.sample.players[e.sample.index];i.playbackRate=t/e.sample.root,i.start()}Object.defineProperty(e,\"__esModule\",{value:!0});var n=i(4),o=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(5),a=4,h=new o.default.Compressor(-30,3).toMaster(),l=[{root:226,fn:\"samples/380737__cabled-mess__sansula-01-a-raw.wav\"},{root:267,fn:\"samples/380736__cabled-mess__sansula-02-c-raw.wav\"},{root:340,fn:\"samples/380735__cabled-mess__sansula-03-e-raw.wav\"},{root:452,fn:\"samples/380733__cabled-mess__sansula-06-a-02-raw.wav\"}];l.forEach(function(t){t.players=[],t.index=-1;for(var e=0;e<a;e++){var i=t.fn;window.location.href.match(/asdf.us/)&&(i=\"http://asdf.us/kalimba/\"+i);var s=new o.default.Player({url:i,retrigger:!0,playbackRate:1});s.connect(h),t.players.push(s)}}),e.default={play:s}},function(t,e,i){\"use strict\";function s(t){if(t.altKey||t.ctrlKey||t.metaKey)return void t.stopPropagation();if(document.activeElement instanceof HTMLInputElement&&t.keyCode in r)return void t.stopPropagation();if(t.keyCode in o){var e=o[t.keyCode];t.shiftKey&&(e+=a.length),e-=7,h(e)}}function n(t){h=t}Object.defineProperty(e,\"__esModule\",{value:!0});var o={},r={},a=\"zxcvbnmasdfghjklqwertyuiop\",h=function(){};a.toUpperCase().split(\"\").map(function(t,e){o[t.charCodeAt(0)]=e}),\"1234567890\".split(\"\").map(function(t,e){o[t.charCodeAt(0)]=e+a.length,r[t.charCodeAt(0)]=!0}),window.addEventListener(\"keydown\",s,!0),e.default={listen:n}},function(t,e,i){\"use strict\";function s(){c.forEach(function(t,e){t.heading=document.createElement(\"div\"),t.heading.innerHTML=t.name,t.heading.classList.add(\"heading\"),t.heading.addEventListener(\"click\",function(){n(e)}),scale_list.appendChild(t.heading)}),n(0)}function n(t){u&&u.heading&&u.heading.classList.remove(\"selected\"),u=c[t],u.heading&&u.heading.classList.add(\"selected\"),p(u)}function o(){return u}function r(t){p=t}function a(){return c.map(function(t){return t.name})}Object.defineProperty(e,\"__esModule\",{value:!0});var h=i(16),l=function(t){return t&&t.__esModule?t:{default:t}}(h),c=[{intervals:\"1/1 9/8 5/4 4/3 3/2 5/3 15/8 2/1\",name:\"harmonic scale\"},{root:450,intervals:\"1/1 9/8 5/4 4/3 3/2 5/3 15/8 2/1\",name:\"harmonic scale @ 450\"},{tet:5},{tet:12},{tet:17},{intervals:\"1/1 81/80 33/32 21/20 16/15 12/11 11/10 10/9 9/8 8/7 7/6 32/27 6/5 11/9 5/4 14/11 9/7 21/16 4/3 27/20 11/8 7/5 10/7 16/11 40/27 3/2 32/21 14/9 11/7 8/5 18/11 5/3 27/16 12/7 7/4 16/9 9/5 20/11 11/6 15/8 40/21 64/33 160/81 2/1\",name:\"harry partch scale\"},{scl:\"! young-lm_piano.scl\\n!\\nLaMonte Young's Well-Tempered Piano\\n12\\n!\\n567/512\\n9/8\\n147/128\\n21/16\\n1323/1024\\n189/128\\n3/2\\n49/32\\n7/4\\n441/256\\n63/32\\n2/1\\n\"},{scl:\"! meanquar.scl\\n!\\n1/4-comma meantone scale. Pietro Aaron's temperament (1523)\\n 12\\n!\\n 76.04900\\n 193.15686\\n 310.26471\\n 5/4\\n 503.42157\\n 579.47057\\n 696.57843\\n 25/16\\n 889.73529\\n 1006.84314\\n 1082.89214\\n 2/1\\n\"},{scl:\"! mavila12.scl\\n!\\nA 12-note mavila scale (for warping meantone-based music), 5-limit TOP\\n 12\\n!\\n-30.99719\\n 163.50770\\n 358.01258\\n 327.01540\\n 521.52028\\n 490.52310\\n 685.02798\\n 654.03080\\n 848.53568\\n 1043.04057\\n 1012.04338\\n 1206.54826\\n\"},{scl:\"! carlos_alpha.scl\\n!\\nWendy Carlos' Alpha scale with perfect fifth divided in nine\\n 18\\n!\\n 78.00000\\n 156.00000\\n 234.00000\\n 312.00000\\n 390.00000\\n 468.00000\\n 546.00000\\n 624.00000\\n 702.00000\\n 780.00000\\n 858.00000\\n 936.00000\\n 1014.00000\\n 1092.00000\\n 1170.00000\\n 1248.00000\\n 1326.00000\\n 1404.00000\\n\"}].map(function(t){return new l.default(t)}),u=c[0],p=function(){};e.default={scales:c,current:o,build:s,pick:n,names:a,onChange:r}},function(t,e,s){var n=s(19),o=s(7),r=s(3),a=s(2),h=s(18),l=s(54);window.nx=new n,window.nx.onload=function(){},window.nx=h(window.nx,o),window.nx=h(window.nx,r),window.nx=h(window.nx,a),window.onload=function(){try{l.load({google:{families:[\"Open Sans\"]}})}catch(t){console.log(\"font not loaded\")}nx.addStylesheet();var t=document.getElementsByTagName(\"canvas\");for(i=0;i<t.length;i++)nx.transform(t[i]);nx.isTouchDevice&&(document.addEventListener(\"touchmove\",nx.blockMove,!0),document.addEventListener(\"touchstart\",nx.blockMove,!0)),nx.onload(),nx.startPulse()}},function(t,e,i){\"use strict\";function s(t){return t&&t.__esModule?t:{default:t}}function n(){N=L.widgets.grid,N.sequenceMode=!0,N.bpm=1,N.col=B,N.row=z,N.init(),N.resize(D*B,D*z),N.draw(),L.widgets.scale.choices=C.default.names(),L.widgets.scale.init(),L.widgets.scale.on(\"*\",function(t){return C.default.pick(t.value)}),C.default.onChange(function(t){r()}),r(),N.on(\"*\",function(t){return\"level\"in t&&r()}),L.widgets.shiftUp.on(\"*\",function(t){return t.press&&h()}),L.widgets.shiftDown.on(\"*\",function(t){return t.press&&l()}),L.widgets.slideUp.on(\"*\",function(t){return t.press&&c()}),L.widgets.slideDown.on(\"*\",function(t){return t.press&&u()}),L.widgets.slideLeft.on(\"*\",function(t){return t.press&&p()}),L.widgets.slideRight.on(\"*\",function(t){return t.press&&d()}),L.widgets.rotateUp.on(\"*\",function(t){return t.press&&m(-1)}),L.widgets.rotateDown.on(\"*\",function(t){return t.press&&m(1)}),L.widgets.rotateLeft.on(\"*\",function(t){return t.press&&_(-1)}),L.widgets.rotateRight.on(\"*\",function(t){return t.press&&_(1)}),L.widgets.flip.on(\"*\",function(t){return t.press&&f()}),L.widgets.flop.on(\"*\",function(t){return t.press&&y()}),L.colorize(\"#f4d142\"),W.start(),I.default.Transport.bpm.value=108,L.widgets.tempo.min=10,L.widgets.tempo.max=1e3,L.widgets.tempo.set({value:108}),L.widgets.tempo.on(\"*\",function(t){return I.default.Transport.bpm.value=L.widgets.tempo.val.value}),I.default.Transport.start()}function o(){N.draw(),r()}function r(){for(var t=document.querySelector(\"#labels\"),e=C.default.current().scale.length,i=a(),s=\"\",n=0;n<z;n++){var o=z-n-12,r=(0,j.mod)(o,e),h=r+1;i.includes(r)?s+=\"<b>\"+h+\"</b><br>\":s+=h+\"<br>\"}t.innerHTML=s}function a(t){t=t||S();var e=C.default.current().scale.length;return t.reduce(function(t,i){var s=(0,j.mod)(z-i-12,e);return t.includes(s)||t.push(s),t},[]).sort()}function h(){var t=S(),e=a(t),i=C.default.current().scale.length;g(O(t,function(t){for(var s=z-t-12,n=(0,j.mod)(s,i),o=e.indexOf(n)+1,r=Math.floor(s/i);o>=e.length;)o-=e.length,r+=1;return 12-(e[o]+r*i)}))}function l(){var t=S(),e=a(t),i=C.default.current().scale.length;g(O(t,function(t){for(var s=z-t-12,n=(0,j.mod)(s,i),o=e.indexOf(n)-1,r=Math.floor(s/i);o<0;)o+=e.length,r-=1;return 12-(e[o]+r*i)}))}function c(){g(O(S(),function(t){return(t-1+z)%z}))}function u(){g(O(S(),function(t){return(t+1+z)%z}))}function p(){v(O(T(),function(t){return(t-1+B)%B}))}function d(){v(O(T(),function(t){return(t+1+B)%B}))}function f(){g(A(S()))}function y(){v(A(T()))}function _(t){v(k(T(),t))}function m(t){g(k(S(),t))}function v(t){if(t){var e=N.matrix,i=x();w(e,function(e,s,n){e in t&&(i[t[e]][s]=n)}),b(N.matrix,i),o()}}function g(t){if(t){var e=N.matrix,i=x();w(e,function(e,s,n){s in t&&(i[e][t[s]]=n)}),b(N.matrix,i),o()}}function w(t,e){for(var i=B,s=z,n=0;n<i;n++)for(var o=0;o<s;o++)e(n,o,t[n][o]);return t}function b(t,e){return w(e,function(i,s,n){return t[i][s]=e[i][s]})}function x(){for(var t=N.matrix.length,e=N.matrix[0].length,i=new Array(t),s=0;s<t;s++){i[s]=new Array(e);for(var n=0;n<e;n++)i[s][n]=0}return i}function S(){var t=new Array(z);return w(N.matrix,function(e,i,s){s&&(t[i]=1)}),t.reduce(function(t,e,i){return 1===e&&t.push(i),t},[])}function T(){return N.matrix.reduce(function(t,e,i){return e.some(function(t){return 1===t})&&t.push(i),t},[])}function k(t,e){if(t.length){for(var i={},s=P(t,e),n=0;n<s.length;n++)i[s[n]]=t[n];return i}}function P(t,e){var i=t.slice(0);return i.unshift.apply(i,i.splice(-e,i.length)),i}function O(t,e){if(t.length){for(var i={},s=0;s<t.length;s++)i[t[s]]=e(t[s]);return i}}function A(t){if(t.length){for(var e={},i=t.slice(0).reverse(),s=0;s<i.length;s++)e[i[s]]=t[s];return e}}var M=i(4),I=s(M);i(14);var q=i(12),E=s(q),F=i(10),U=(s(F),i(11)),G=s(U),R=i(13),C=s(R),j=i(5),L=window.nx,z=j.browser.isMobile?18:24,B=16,D=j.browser.isMobile?22:27,N=void 0,W=new I.default.Sequence(function(t,e){var i=N.matrix[e];N.jumpToCol(e);for(var s=0;s<z;s++)if(1===i[s]){var n=C.default.current().index(z-s-12);G.default.play(n)}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],\"16n\");L.onload=function(){return(0,j.requestAudioContext)(n)},E.default.listen(function(t){var e=C.default.current().index(t);G.default.play(e)})},function(t,e,i){\"use strict\";t.exports=function(){function t(t,e,i){return(t-e)/(i-e)}function e(t,e){return t-e*Math.floor(t/e)}var i=function(t){t=this.opt=Object.assign({name:\"\",root:440,octave:0,interval:2,tet:0,intervals:null},t||{}),this.generate()};i.prototype.generate=function(t){t=Object.assign(this.opt,t||{}),t.scl?this.generate_scl():t.tet?this.generate_tet():t.intervals&&this.generate_intervals()},i.prototype.generate_intervals=function(){var t=(this.opt.root,this.opt.intervals);\"string\"==typeof t&&(t=t.split(\" \")),this.name=this.opt.name||\"interval list\",this.intervals=t,this.interval=this.opt.interval=s.call(this,t.pop()),this.scale=t.map(n.bind(this)).filter(function(t){return!!t})},i.prototype.generate_tet=function(){var t=this.scale=[],e=this.opt.root,i=this.opt.tet,s=this.interval=this.opt.interval,n=Math.pow(s,1/i),o=e;t.push(o);for(var r=0;r<i-1;r++)o*=n,t.push(o);this.name=this.opt.name||i+\"-tone equal temperament\",this.intervals=null},i.prototype.generate_scl=function(){var t=this.opt.root,e=this.parse_scl(this.opt.scl);this.intervals=e.notes,this.interval=e.notes.pop(),this.name=this.opt.name||e.description,this.scale=e.notes.map(function(e){return e*t})},i.prototype.parse_scl=function(t){var e={};return e.comments=[],e.notes=[],t.trim().split(\"\\n\").forEach(function(t){if(-1!==t.indexOf(\"!\"))e.comments.push(t);else if(\"description\"in e)if(e.notes.length){var i=t.replace(/^[^-\\.0-9]+/,\"\").replace(/[^-\\/\\.0-9]+$/,\"\");i=-1!==i.indexOf(\".\")?Math.pow(2,parseFloat(i)/1200):s(i),i&&e.notes.push(i)}else e.notes.push(1);else e.description=t}),e},i.prototype.index=function(i,s){s=s||this.opt.octave;var n=this.scale[0|e(i,this.scale.length)],o=Math.floor(t(i,0,this.scale.length))+s;return n*=Math.pow(this.interval,o)},i.prototype.range=function(t,e){for(var i=[],s=t;s<e;s++)i.push(this.index(s));return i},i.prototype.set_root=function(t){this.opt.root=t,this.generate()},i.prototype.quantize_frequency=function(t){if(0==t)return 0;for(var e=t,i=0,s=this.interval,n=this.scale;e<root;)e*=s,i-=1;for(;e>root*s;)e/=s,i+=1;for(var o=0;o<n.length;o++)if(!(e>n[o])){e=n[o];break}return e*=Math.pow(2,i)},i.prototype.quantize_index=function(t){return 0|e(index-1,this.scale.length)};var s=i.prototype.parse_interval=function(t){if(\"number\"==typeof t)return t;if(-1==!t.indexOf(\"/\"))return parseInt(t);var e=t.split(\"/\"),i=parseInt(e[0]),s=parseInt(e[1]);return isNaN(i)?1:isNaN(s)||0==s?i:i==s?1:i/s},n=i.prototype.parse_interval_string=function(t){return-1!==t.indexOf(\"/\")?s(t)*this.opt.root:(t.indexOf(\"f\"),parseFloat(t))};return i}()},function(t,e,i){\"use strict\";var s,n,o;\"function\"==typeof Symbol&&Symbol.iterator;/**\n * StartAudioContext.js\n * @author Yotam Mann\n * @license http://opensource.org/licenses/MIT MIT License\n * @copyright 2016 Yotam Mann\n */\n!function(i,r){n=[],s=r,void 0!==(o=\"function\"==typeof s?s.apply(e,n):s)&&(t.exports=o)}(0,function(){function t(){if(e.context&&!e.isStarted()){var t=e.context.createOscillator(),i=e.context.createGain();i.gain.value=0,t.connect(i),i.connect(e.context.destination);var s=e.context.currentTime;t.start(s),t.stop(s+.5)}if(e._tapListeners){for(var n=0;n<e._tapListeners.length;n++)e._tapListeners[n].dispose();e._tapListeners=null}if(e._onStarted){for(var o=0;o<e._onStarted.length;o++)e._onStarted[o]();e._onStarted=null}}var e={context:null,_tapListeners:[],_onStarted:[]};e.setContext=function(t){return e.context=t,e},e.on=function(s){if(Array.isArray(s)||NodeList&&s instanceof NodeList)for(var n=0;n<s.length;n++)e.on(s[n]);else if(\"string\"==typeof s)e.on(document.querySelectorAll(s));else if(s.jquery&&\"function\"==typeof s.toArray)e.on(s.toArray());else if(Element&&s instanceof Element){var o=new i(s,t);e._tapListeners.push(o)}return e},e.onStarted=function(t){return e.isStarted()?t():e._onStarted.push(t),e},e.isStarted=function(){return null!==e.context&&\"running\"===e.context.state};var i=function(t){this._dragged=!1,this._element=t,this._bindedMove=this._moved.bind(this),this._bindedEnd=this._ended.bind(this),t.addEventListener(\"touchmove\",this._bindedMove),t.addEventListener(\"touchend\",this._bindedEnd),t.addEventListener(\"mouseup\",this._bindedEnd)};return i.prototype._moved=function(t){this._dragged=!0},i.prototype._ended=function(e){this._dragged||t(),this._dragged=!1},i.prototype.dispose=function(){this._element.removeEventListener(\"touchmove\",this._bindedMove),this._element.removeEventListener(\"touchend\",this._bindedEnd),this._element.removeEventListener(\"mouseup\",this._bindedEnd),this._bindedMove=null,this._bindedEnd=null,this._element=null},e})},function(t,e){var i=Object.prototype.hasOwnProperty,s=Object.prototype.toString,n=function(t){return\"function\"==typeof Array.isArray?Array.isArray(t):\"[object Array]\"===s.call(t)},o=function(t){\"use strict\";if(!t||\"[object Object]\"!==s.call(t))return!1;var e=i.call(t,\"constructor\"),n=t.constructor&&t.constructor.prototype&&i.call(t.constructor.prototype,\"isPrototypeOf\");if(t.constructor&&!e&&!n)return!1;var o;for(o in t);return void 0===o||i.call(t,o)};t.exports=function t(){\"use strict\";var e,i,s,r,a,h,l=arguments[0],c=1,u=arguments.length,p=!1;for(\"boolean\"==typeof l?(p=l,l=arguments[1]||{},c=2):(\"object\"!=typeof l&&\"function\"!=typeof l||null==l)&&(l={});c<u;++c)if(null!=(e=arguments[c]))for(i in e)s=l[i],r=e[i],l!==r&&(p&&r&&(o(r)||(a=n(r)))?(a?(a=!1,h=s&&n(s)?s:[]):h=s&&o(s)?s:{},l[i]=t(p,h,r)):void 0!==r&&(l[i]=r));return l}},function(t,e,s){/**\n @title NexusUI API\n @overview NexusUI is a JavaScript toolkit for easily creating musical interfaces in web browsers. Interfaces are rendered on HTML5 canvases and are ideal for web audio projects, mobile apps, or for sending OSC to external audio applications like Max.\n @author Ben Taylor, Jesse Allison, Yemin Oh, Sébastien Piquemal\n @copyright © 2011-2014\n @license MIT\n */\nvar n=(s(8),s(3)),o=s(6).EventEmitter,r=s(0),a=s(9),h=t.exports=function(){o.apply(this),this.widgets=new Object,this.elemTypeArr=new Array,this.aniItems=new Array,this.showLabels=!1,this.starttime=(new Date).getTime(),a&&(this.sendsTo=a.setGlobalTransmit,this.setAjaxPath=a.setAjaxPath,this.destination=\"js\",this.ajaxPath=\"lib/nexusOSCRelay.php\"),this.isTouchDevice=\"ontouchstart\"in document.documentElement,this.metas=document.getElementsByTagName(\"meta\"),this.globalWidgets=!0,this.font=\"'open sans'\",this.fontSize=14,this.fontWeight=\"normal\";var t=window.AudioContext||window.webkitAudioContext;this.context=new t,this.sys=navigator.userAgent.toLowerCase(),this.isAndroid=this.sys.indexOf(\"android\")>-1,this.isMobile=this.sys.indexOf(\"mobile\")>-1,this.throttlePeriod=20,this.colors.borderhl=n.shadeBlendConvert(-.5,this.colors.border),this.colors.accenthl=n.shadeBlendConvert(.15,this.colors.accent)};r.inherits(h,o),h.prototype.add=function(t,e){if(t){var i=document.createElement(\"canvas\");if(i.setAttribute(\"nx\",t),e){if((e.x||e.y)&&(i.style.position=\"absolute\"),e.x&&(i.style.left=e.x+\"px\"),e.y&&(i.style.top=e.y+\"px\"),e.w&&(i.style.width=e.w,\"string\"!=typeof e.w&&(i.width=e.w)),e.h&&(i.style.height=e.h,\"string\"!=typeof e.h&&(i.height=e.h)),e.parent){var s;\"string\"==typeof e.parent?s=document.getElementById(e.parent):e.parent instanceof HTMLElement?s=e.parent:e.parent instanceof jQuery&&(s=e.parent[0])}e.name&&(i.id=e.name)}if(!s)var s=document.body;return s.appendChild(i),this.transform(i)}},h.prototype.transform=function(t,e){for(var i in nx.widgets)if(nx.widgets[i].canvasID==t.id)return;if(e)var n=e;else var n=t.getAttribute(\"nx\");if(n){var o,r=0;for(j=0;j<this.elemTypeArr.length;j++)this.elemTypeArr[j]===n&&r++;if(this.elemTypeArr.push(n),!t.id){var a=r+1;t.id=n+a}if(n)try{var o=new(s(27)[n])(t.id)}catch(t){return void console.log(\"creation of \"+n+\" failed\")}return o.type=n,this.widgets[o.canvasID]=o,this.globalWidgets&&(window[o.canvasID]=this.widgets[o.canvasID]),o.init(),o}},h.prototype.transmit=function(t,e){this.makeOSC(this.emit,t,e),this.emit(\"*\",t,e)},h.prototype.colorize=function(t,e){e||(e=t,t=\"accent\"),this.colors[t]=e,this.colors.borderhl=n.shadeBlendConvert(.1,this.colors.border,this.colors.black),this.colors.accenthl=n.shadeBlendConvert(.3,this.colors.accent);for(var i in this.widgets)this.widgets[i].colors[t]=e,this.widgets[i].colors.borderhl=this.colors.borderhl,this.widgets[i].colors.accenthl=this.colors.accenthl,this.widgets[i].draw()},h.prototype.setThrottlePeriod=function(t){this.throttlePeriod=t;for(var e in this.widgets)this.widgets[e].throttlePeriod=this.throttlePeriod},h.prototype.colors={accent:\"#ff5500\",fill:\"#eeeeee\",border:\"#e3e3e3\",mid:\"#1af\",black:\"#000000\",white:\"#FFFFFF\"},h.prototype.startPulse=function(){this.pulseInt=setInterval(\"nx.pulse()\",30)},h.prototype.stopPulse=function(){clearInterval(this.pulseInt)},h.prototype.pulse=function(){for(var t=0;t<this.aniItems.length;t++)this.aniItems[t]()},h.prototype.addAni=function(t){},h.prototype.removeAni=function(t){this.aniItems.splice(this.aniItems.indexOf(t))},h.prototype.addStylesheet=function(){var t='select {width: 150px;padding: 5px 5px;font-size: 16px;color:#666666;border: solid 2px #e4e4e4;border-radius: 0;-webkit-appearance: none;outline: none;cursor:pointer;background-color:#EEE;font-family:\"open sans\";}input[type=text]::-moz-selection { background: transparent; }input[type=text]::selection { background: transparent; }input[type=text]::-webkit-selection { background: transparent; }canvas { cursor:pointer;border-radius:0px;moz-border-radius:0px;webkit-border-radius:0px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;}input[type=text] { border-radius:5px;moz-border-radius:5px;webkit-border-radius:5px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;}',e=document.head,i=document.createElement(\"style\");i.type=\"text/css\",i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t)),e.appendChild(i)},h.prototype.setViewport=function(t){for(i=0;i<this.metas.length;i++)\"viewport\"==this.metas[i].name&&(this.metas[i].content=\"minimum-scale=\"+t+\", maximum-scale=\"+t)},h.prototype.setLabels=function(t){this.showLabels=\"on\"==t;for(var e in this.widgets)this.widgets[e].draw()},h.prototype.setProp=function(t,e){if(t&&e){nx[t]=e;for(var i in this.widgets)this.widgets[i][t]=e,this.widgets[i].draw()}},h.prototype.blockMove=function(t){t.target.attributes.nx&&(t.preventDefault(),this.isAndroid&&!!t.stopPropagation&&t.stopPropagation())},h.prototype.calculateDigits=function(t){var e=this.max?Math.floor(this.max).toString().length:1;if(e<this.maxdigits)var i=3-e;else var i=0;return{wholes:e,decimals:i,total:e+i}},h.prototype.themes={light:{fill:\"#DDDDDD\",border:\"#DADADA\",black:\"#000000\",white:\"#FFFFFF\",body:\"#F3F3F3\"},dark:{fill:\"#222\",border:\"#292929\",black:\"#FFFFFF\",white:\"#000000\",body:\"#111\"},red:\"#f24\",orange:\"#f50\",yellow:\"#ec1\",green:\"#1c9\",blue:\"#09d\",purple:\"#40a\"},h.prototype.skin=function(t){var e=t.split(\"-\");nx.colorize(\"fill\",nx.themes[e[0]].fill),nx.colorize(\"border\",nx.themes[e[0]].border),nx.colorize(\"black\",nx.themes[e[0]].black),nx.colorize(\"white\",nx.themes[e[0]].white),nx.colorize(\"accent\",nx.themes[e[1]]),document.body.style.backgroundColor=nx.themes[e[0]].body},h.prototype.labelSize=function(t){for(var e in this.widgets){var i=this.widgets[e];if(i.label){var s=i.GUI.h+t;i.labelSize=t,[\"select\",\"number\",\"text\"].indexOf(i.type)<0&&i.resize(!1,s)}}var n=document.querySelectorAll(\".nxlabel\");console.log(n);for(var o=0;o<n.length;o++)console.log(n[o]),n[o].style.fontSize=t/2.8+\"px\",console.log(n[o].style.fontSize)}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),banner=module.exports=function(t){this.defaultSize={width:100,height:40},widget.call(this,t),this.message1=\"Powered By\",this.message2=\"NexusUI\",this.link=\"http://www.nexusosc.com\",this.isLink=!0};util.inherits(banner,widget),banner.prototype.init=function(){this.draw()},banner.prototype.draw=function(){with(this.context)globalAlpha=.1,fillStyle=this.colors.accent,beginPath(),moveTo(0,10),lineTo(10,this.GUI.h/2+5),lineTo(0,this.GUI.h),lineTo(30,this.GUI.h),lineTo(30,10),fill(),moveTo(this.GUI.w-30,10),lineTo(this.GUI.w-30,this.GUI.h),lineTo(this.GUI.w,this.GUI.h),lineTo(this.GUI.w-10,this.GUI.h/2+5),lineTo(this.GUI.w,10),fill(),closePath(),globalAlpha=1,fillStyle=this.colors.accent,fillRect(15,0,this.GUI.w-30,this.GUI.h-10),fillStyle=this.colors.white,font=this.fontWeight+\" \"+this.GUI.h/5+\"px \"+this.font,textAlign=\"center\",fillText(this.message1,this.GUI.w/2,this.GUI.h/3.3),fillText(this.message2,this.GUI.w/2,this.GUI.h/3.3*2),fillStyle=this.colors.black,beginPath(),moveTo(15,this.GUI.h-10),lineTo(30,this.GUI.h),lineTo(30,this.GUI.h-10),lineTo(15,this.GUI.h-10),fill(),moveTo(this.GUI.w-15,this.GUI.h-10),lineTo(this.GUI.w-30,this.GUI.h),lineTo(this.GUI.w-30,this.GUI.h-10),lineTo(this.GUI.w-15,this.GUI.h-10),fill(),closePath()},banner.prototype.click=function(){this.isLink&&(window.location=this.link)}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),drawing=__webpack_require__(3),button=module.exports=function(t){this.defaultSize={width:50,height:50},widget.call(this,t),this.val={press:0},this.mode=\"aftertouch\",this.lockResize=!0,this.image=null,this.imageHover=null,this.imageTouch=null,this.subval=new Object,this.init()};util.inherits(button,widget),button.prototype.init=function(){this.center={x:this.GUI.w/2,y:this.GUI.h/2},this.strokeWidth=this.GUI.w/20,this.radius=Math.min(this.center.x,this.center.y),this.draw()},button.prototype.draw=function(){with(this.erase(),this.context){if(null!==this.image)this.val.press?this.imageTouch?drawImage(this.imageTouch,0,0):(drawImage(this.image,0,0),globalAlpha=.5,fillStyle=this.colors.accent,fillRect(0,0,this.GUI.w,this.GUI.h),globalAlpha=1):drawImage(this.image,0,0);else if(this.val.press?this.val.press&&(fillStyle=this.colors.accent,strokeStyle=this.colors.accenthl):(fillStyle=this.colors.fill,strokeStyle=this.colors.border),lineWidth=this.strokeWidth,beginPath(),arc(this.center.x,this.center.y,this.radius,0,2*Math.PI,!0),fill(),closePath(),beginPath(),arc(this.center.x,this.center.y,this.radius-lineWidth/2,0,2*Math.PI,!0),stroke(),globalAlpha=1,closePath(),this.val.press&&\"aftertouch\"==this.mode){var x=nx.clip(this.clickPos.x,.2*this.GUI.w,this.GUI.w/1.3),y=nx.clip(this.clickPos.y,.2*this.GUI.h,this.GUI.h/1.3),gradient=this.context.createRadialGradient(x,y,this.GUI.w/6,this.center.x,this.center.y,1.3*this.radius);gradient.addColorStop(0,this.colors.accent),gradient.addColorStop(1,\"white\"),strokeStyle=gradient,lineWidth=this.GUI.w/20,beginPath(),arc(this.center.x,this.center.y,this.radius-this.GUI.w/40,0,2*Math.PI,!0),stroke(),closePath()}this.drawLabel()}},button.prototype.click=function(t){drawing.isInside(this.clickPos,{x:this.center.x-this.radius,y:this.center.y-this.radius,w:2*this.radius,h:2*this.radius})&&(this.val.press=1,\"aftertouch\"==this.mode&&(this.val.x=this.clickPos.x,this.val.y=this.clickPos.y),this.transmit(this.val),this.draw())},button.prototype.move=function(){\"aftertouch\"==this.mode&&(this.val.x=this.clickPos.x,this.val.y=this.clickPos.y,this.subval.x=this.clickPos.x,this.subval.y=this.clickPos.y,this.transmit(this.subval),this.draw())},button.prototype.release=function(){this.val.press=0,\"toggle\"!=this.mode&&\"aftertouch\"!=this.mode||this.transmit(this.val),this.draw()},button.prototype.setImage=function(t){this.image=new Image,this.image.onload=this.draw.bind(this),this.image.src=t},button.prototype.setHoverImage=function(t){this.imageHover=new Image,this.imageHover.onload=this.draw.bind(this),this.imageHover.src=t},button.prototype.setTouchImage=function(t){this.imageTouch=new Image,this.imageTouch.onload=this.draw.bind(this),this.imageTouch.src=t}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),colors=module.exports=function(t){this.defaultSize={width:100,height:100},widget.call(this,t),this.init()};util.inherits(colors,widget),colors.prototype.init=function(){this.gradient1=this.context.createLinearGradient(0,0,this.GUI.w,0),this.gradient1.addColorStop(0,\"#F00\"),this.gradient1.addColorStop(.17,\"#FF0\"),this.gradient1.addColorStop(.34,\"#0F0\"),this.gradient1.addColorStop(.51,\"#0FF\"),this.gradient1.addColorStop(.68,\"#00F\"),this.gradient1.addColorStop(.85,\"#F0F\"),this.gradient1.addColorStop(1,\"#F00\"),this.gradient2=this.context.createLinearGradient(0,0,0,this.GUI.h),this.gradient2.addColorStop(0,\"rgba(0,0,0,255)\"),this.gradient2.addColorStop(.49,\"rgba(0,0,0,0)\"),this.gradient2.addColorStop(.51,\"rgba(255,255,255,0)\"),this.gradient2.addColorStop(.95,\"rgba(255,255,255,255)\"),this.draw()},colors.prototype.draw=function(){with(this.erase(),this.context)fillStyle=this.gradient1,fillRect(0,0,this.GUI.w,this.GUI.h),fillStyle=this.gradient2,fillRect(0,0,this.GUI.w,this.GUI.h);this.drawLabel()},colors.prototype.drawColor=function(){with(this.context)fillStyle=\"rgb(\"+this.val.r+\",\"+this.val.g+\",\"+this.val.b+\")\",fillRect(0,.95*this.GUI.h,this.GUI.w,.05*this.GUI.h)},colors.prototype.click=function(t){if(this.clickPos.x>0&&this.clickPos.y>0&&this.clickPos.x<this.GUI.w&&this.clickPos.y<this.GUI.h){var e=this.context.getImageData(2*this.clickPos.x,2*this.clickPos.y,1,1);this.val={r:e.data[0],g:e.data[1],b:e.data[2]},this.transmit(this.val),this.drawColor()}},colors.prototype.move=function(t){this.click(t)}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),comment=module.exports=function(t){this.defaultSize={width:100,height:20},widget.call(this,t),this.val={text:\"comment\"},this.sizeSet=!1,this.init()};util.inherits(comment,widget),comment.prototype.setSize=function(t){this.size=t,this.sizeSet=!0,this.draw()},comment.prototype.init=function(){this.draw()},comment.prototype.draw=function(){with(this.sizeSet||(this.size=Math.sqrt(this.GUI.w*this.GUI.h/(2*this.val.text.length))),this.erase(),this.context)fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),fillStyle=this.colors.black,textAlign=\"left\",font=this.size+\"px 'Open Sans'\";this.wrapText(this.val.text,6,3+this.size,this.GUI.w-6,this.size)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),crossfade=module.exports=function(t){this.defaultSize={width:100,height:30},widget.call(this,t),this.val={R:.75,L:.75},this.location=.5,this.init()};util.inherits(crossfade,widget),crossfade.prototype.init=function(){this.draw()},crossfade.prototype.draw=function(){with(this.erase(),this.location=Math.pow(this.val.R,2),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h);var y1=0,y2=this.GUI.h,x1=this.location*this.GUI.w;fillStyle=this.colors.accent,fillRect(x1,0,this.GUI.w-x1,y2),textBaseline=\"middle\",font=this.GUI.h/3+\"px 'Open Sans'\",fillStyle=this.colors.accent,textAlign=\"right\",fillText(this.val.R.toFixed(2),x1-2,this.GUI.h/4),fillStyle=this.colors.fill,textAlign=\"left\",fillText(this.val.L.toFixed(2),x1+2,.75*this.GUI.h)}this.drawLabel()},crossfade.prototype.click=function(){this.move()},crossfade.prototype.move=function(){var t=math.clip(this.clickPos.x/this.GUI.w,0,1),e=1-t;this.location=t,this.val.R=math.prune(Math.sqrt(t),3),this.val.L=math.prune(Math.sqrt(e),3),this.draw(),this.transmit(this.val)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),dial=module.exports=function(t){this.defaultSize={width:100,height:100},widget.call(this,t),this.circleSize,this.handleLength,this.val={value:0},this.responsivity=.004,this.aniStart=0,this.aniStop=1,this.aniMove=.01,this.lockResize=!0,null!=this.canvas.getAttribute(\"min\")?this.min=parseFloat(this.canvas.getAttribute(\"min\")):this.min=0,null!=this.canvas.getAttribute(\"max\")?this.max=parseFloat(this.canvas.getAttribute(\"max\")):this.max=1,null!=this.canvas.getAttribute(\"step\")?this.step=parseFloat(this.canvas.getAttribute(\"step\")):this.step=.001,this.maxdigits=3,this.calculateDigits=nx.calculateDigits,this.init()};util.inherits(dial,widget),dial.prototype.init=function(){this.circleSize=Math.min(this.center.x,this.center.y),this.handleLength=this.circleSize,this.mindim=Math.min(this.GUI.w,this.GUI.h),this.mindim<101||this.mindim<101?this.accentWidth=1*this.lineWidth:this.accentWidth=2*this.lineWidth,this.draw()},dial.prototype.draw=function(){var normalval=this.normalize(this.val.value),dial_position=2*(normalval+.25)*Math.PI;with(this.erase(),this.context)if(lineCap=\"butt\",beginPath(),lineWidth=this.circleSize/2,arc(this.center.x,this.center.y,this.circleSize-lineWidth/2,0*Math.PI,2*Math.PI,!1),strokeStyle=this.colors.fill,stroke(),closePath(),lineCap=\"butt\",beginPath(),lineWidth=this.circleSize/2,arc(this.center.x,this.center.y,this.circleSize-lineWidth/2,.5*Math.PI,dial_position,!1),strokeStyle=this.colors.accent,stroke(),closePath(),clearRect(this.center.x-this.GUI.w/40,this.center.y,this.GUI.w/20,this.GUI.h/2),normalval>0&&(beginPath(),lineWidth=1.5,moveTo(this.center.x-this.GUI.w/40,this.center.y+this.circleSize/2),lineTo(this.center.x-this.GUI.w/40,this.center.y+this.circleSize),strokeStyle=this.colors.accent,stroke(),closePath()),this.val.value=math.prune(this.rangify(normalval),3),this.digits=this.calculateDigits(),valtextsize=this.mindim/this.digits.total*.55,valtextsize>7){var valtext=this.val.value.toFixed(this.digits.decimals);fillStyle=this.colors.borderhl,textAlign=\"center\",textBaseline=\"middle\",font=valtextsize+\"px 'Open Sans'\",fillText(valtext,this.GUI.w/2,this.GUI.h/2)}this.drawLabel()},dial.prototype.click=function(t){this.val.value=math.prune(this.val.value,4),this.transmit(this.val),this.draw(),this.aniStart=this.val.value},dial.prototype.move=function(){var t=this.normalize(this.val.value);t=math.clip(t-this.deltaMove.y*this.responsivity,0,1),this.val.value=math.prune(this.rangify(t),4),this.transmit(this.val),this.draw()},dial.prototype.release=function(){this.aniStop=this.val.value},dial.prototype.animate=function(t){switch(t){case\"bounce\":nx.aniItems.push(this.aniBounce.bind(this));break;case\"none\":nx.aniItems.splice(nx.aniItems.indexOf(this.aniBounce))}},dial.prototype.aniBounce=function(){this.clicked||(this.val.value+=this.aniMove,this.aniStop<this.aniStart&&(this.stopPlaceholder=this.aniStop,this.aniStop=this.aniStart,this.aniStart=this.stopPlaceholder),this.aniMove=math.bounce(this.val.value,this.aniStart,this.aniStop,this.aniMove),this.draw(),this.val.value=math.prune(this.val.value,4),this.transmit(this.val))}},function(module,exports,__webpack_require__){var startTime=0,math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),envelope=module.exports=function(t){this.defaultSize={width:200,height:100},widget.call(this,t),this.nodeSize=1,this.active=!1,this.duration=1e3,this.looping=!1,this.scanIndex=0,this.val={index:0,amp:0,points:[{x:.1,y:.4},{x:.35,y:.6},{x:.65,y:.2},{x:.9,y:.4}]},this.selectedNode=null,nx.aniItems.push(this.pulse.bind(this)),this.init()};util.inherits(envelope,widget),envelope.prototype.init=function(){this.mindim=this.GUI.w<this.GUI.h?this.GUI.w:this.GUI.h,this.draw()},envelope.prototype.draw=function(){with(this.erase(),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),fillStyle=this.colors.accent;var centerx=this.mindim/10,centery=this.GUI.h-this.mindim/10;beginPath(),moveTo(centerx,centery),arc(centerx,centery,this.mindim/10,1.5*Math.PI,2*Math.PI*this.val.index+1.5*Math.PI,!1),fill(),closePath();for(var drawingX=[],drawingY=[],i=0;i<this.val.points.length;i++)drawingX[i]=this.val.points[i].x*this.GUI.w,drawingY[i]=(1-this.val.points[i].y)*this.GUI.h,drawingX[i]<this.bgLeft+this.nodeSize?drawingX[i]=this.bgLeft+this.nodeSize:drawingX[i]>this.bgRight-this.nodeSize&&(drawingX[i]=this.bgRight-this.nodeSize),drawingY[i]<this.bgTop+this.nodeSize?drawingY[i]=this.bgTop+this.nodeSize:drawingY[i]>this.bgBottom-this.nodeSize&&(drawingY[i]=this.bgBottom-this.nodeSize);for(var j=0;j<drawingX.length;j++){var size=this.mindim/35+2;beginPath(),arc(drawingX[j],drawingY[j],size,0,2*Math.PI,!1),fillStyle=this.colors.accent,fill(),closePath()}beginPath(),strokeStyle=this.colors.accent,moveTo(-5,this.GUI.h),lineTo(-5,(1-this.val.points[0].y)*this.GUI.h);for(var j=0;j<drawingX.length;j++)lineTo(drawingX[j],drawingY[j]);lineTo(this.GUI.w+5,(1-this.val.points[this.val.points.length-1].y)*this.GUI.h),lineTo(this.GUI.w+5,this.GUI.h),stroke(),globalAlpha=.2,fillStyle=this.colors.accent,fill(),globalAlpha=1,closePath()}this.drawLabel()},envelope.prototype.scaleNode=function(t){var e=t,i=0,s=this.GUI.w,n=this.val.points[e].x,o=this.GUI.h-this.val.points[e].y,r=math.clip(n/this.GUI.w,0,1),a=math.clip(o/this.GUI.h,0,1);this.val.points[e].x=math.prune(r,3),this.val.points[e].y=math.prune(a,3),e>0&&(i=this.val.points[e-1].x),this.val.points.length>e+1&&(s=this.val.points[e+1].x),this.val.points[e].x<i&&(this.val.points.splice(e-1,0,this.val.points.splice(e,1)[0]),e-=1,this.selectedNode=e),this.val.points[e].x>s&&(this.val.points.splice(e+1,0,this.val.points.splice(e,1)[0]),e+=1,this.selectedNode=e)},envelope.prototype.click=function(){this.selectedNode=this.findNearestNode(this.clickPos.x/this.GUI.w,this.clickPos.y/this.GUI.h,this.val.points),this.transmit(this.val),this.draw()},envelope.prototype.move=function(){this.clicked&&(this.val.points[this.selectedNode].x=this.clickPos.x,this.val.points[this.selectedNode].y=this.clickPos.y,this.scaleNode(this.selectedNode),this.transmit(this.val),this.draw())},envelope.prototype.release=function(){this.hasMoved||this.val.points.splice(this.selectedNode,1),this.draw(),this.selectedNode=null},envelope.prototype.pulse=function(){if(this.active){var t=(nx.context.currentTime-startTime)/(this.duration/1e3);if(t>=1&&(this.looping?(t-=1,startTime+=this.duration/1e3,this.val.index=0,this.scanIndex=0):this.stop()),this.val.index=t,this.val.index>this.val.points[this.val.points.length-1].x)this.val.amp=this.val.points[this.val.points.length-1].y;else if(this.val.index<this.val.points[0].x)this.val.amp=this.val.points[0].y;else{for(this.scanIndex=0;this.val.index>this.val.points[this.scanIndex].x;)this.scanIndex++;var e=this.val.points[this.scanIndex].x,i=this.val.points[this.scanIndex-1].x,s=this.val.points[this.scanIndex].y,n=this.val.points[this.scanIndex-1].y;this.val.amp=math.interp((this.val.index-i)/(e-i),n,s)}this.transmit(this.val),this.draw()}},envelope.prototype.start=function(){this.active=!0,this.val.index=0,startTime=nx.context.currentTime},envelope.prototype.stop=function(){this.active=!1,this.val.index=0,this.draw()},envelope.prototype.findNearestNode=function(t,e,i){var s=null,n=1e3,o=!1;e=1-e;for(var r=0;r<i.length;r++){var a=Math.sqrt(Math.pow(i[r].x-t,2),Math.pow(i[r].y- -e,2));a<n&&(n=a,s=r,o=t>i[r].x)}return n>.1&&(o&&s++,this.val.points.splice(s,0,{x:this.clickPos.x/this.GUI.w,y:(this.GUI.h-this.clickPos.y)/this.GUI.h})),s}},function(t,e,i){t.exports={banner:i(20),button:i(21),colors:i(22),comment:i(23),crossfade:i(24),dial:i(25),envelope:i(26),joints:i(28),keyboard:i(29),matrix:i(30),message:i(31),meter:i(32),metro:i(33),motion:i(34),mouse:i(35),multislider:i(36),multitouch:i(37),number:i(38),position:i(39),range:i(40),select:i(41),slider:i(42),string:i(43),tabs:i(44),text:i(45),tilt:i(46),toggle:i(47),typewriter:i(48),vinyl:i(49),waveform:i(50)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),joints=module.exports=function(t){this.defaultSize={width:150,height:150},widget.call(this,t),this.nodeSize=this.GUI.w/14,this.values=[0,0],this.val={x:.35,y:.35,node1:0},this.joints=[{x:.1,y:.2},{x:.2,y:.1},{x:.3,y:.7},{x:.4,y:.4},{x:.5,y:.9},{x:.6,y:.15},{x:.7,y:.3},{x:.8,y:.8}],this.threshold=this.GUI.w/3};util.inherits(joints,widget),joints.prototype.init=function(){this.nodeSize=this.GUI.w/14,this.threshold=this.GUI.w/3,this.draw()},joints.prototype.draw=function(){with(this.erase(),this.drawingX=this.val.x*this.GUI.w,this.drawingY=this.val.y*this.GUI.h,this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),null!=this.val.x?this.drawNode():(fillStyle=this.colors.border,font=\"14px courier\",fillText(this.default_text,10,20)),fillStyle=this.colors.accent,strokeStyle=this.colors.border;for(var i in this.joints){beginPath(),arc(this.joints[i].x*this.GUI.w,this.joints[i].y*this.GUI.h,this.nodeSize/2,0,2*Math.PI,!0),fill(),closePath();var cnctX=Math.abs(this.joints[i].x*this.GUI.w-this.drawingX),cnctY=Math.abs(this.joints[i].y*this.GUI.h-this.drawingY),strength=cnctX+cnctY;if(strength<this.threshold){beginPath(),moveTo(this.joints[i].x*this.GUI.w,this.joints[i].y*this.GUI.h),lineTo(this.drawingX,this.drawingY),strokeStyle=this.colors.accent,lineWidth=math.scale(strength,0,this.threshold,this.nodeSize/2,5),stroke(),closePath();var scaledstrength=math.scale(strength,0,this.threshold,1,0);this.val[\"node\"+i]=scaledstrength}}}this.drawLabel()},joints.prototype.drawNode=function(){with(this.drawingX<this.nodeSize?this.drawingX=this.nodeSize:this.drawingX>this.GUI.w-this.nodeSize&&(this.drawingX=this.GUI.w-this.nodeSize),this.drawingY<this.nodeSize?this.drawingY=this.nodeSize:this.drawingY>this.GUI.h-this.nodeSize&&(this.drawingY=this.GUI.h-this.nodeSize),this.context)globalAlpha=1,beginPath(),fillStyle=this.colors.accent,strokeStyle=this.colors.border,lineWidth=this.lineWidth,arc(this.drawingX,this.drawingY,this.nodeSize,0,2*Math.PI,!0),fill(),closePath()},joints.prototype.click=function(){this.val=new Object,this.val.x=this.clickPos.x/this.GUI.w,this.val.y=this.clickPos.y/this.GUI.h,this.draw(),this.transmit(this.val),this.connections=new Array},joints.prototype.move=function(){this.val=new Object,this.clicked&&(this.val.x=this.clickPos.x/this.GUI.w,this.val.y=this.clickPos.y/this.GUI.h,this.draw(),this.transmit(this.val),this.connections=new Array)},joints.prototype.release=function(){this.anix=this.deltaMove.x/this.GUI.w,this.aniy=this.deltaMove.y/this.GUI.h},joints.prototype.animate=function(t){switch(t){case\"bounce\":nx.aniItems.push(this.aniBounce.bind(this));break;case\"none\":nx.aniItems.splice(nx.aniItems.indexOf(this.aniBounce))}},joints.prototype.anix=0,joints.prototype.aniy=0,joints.prototype.aniBounce=function(){!this.clicked&&this.val.x&&(this.val.x+=this.anix,this.val.y+=this.aniy,this.anix=math.bounce(this.val.x,.1,.9,this.anix),this.aniy=math.bounce(this.val.y,.1,.9,this.aniy),this.draw(),this.transmit(this.val))}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),drawing=__webpack_require__(3),math=__webpack_require__(2),keyboard=module.exports=function(t){this.defaultSize={width:300,height:75},widget.call(this,t),this.octaves=3,this.white={width:0,height:0},this.black={width:0,height:0},this.wkeys=new Array,this.bkeys=new Array,this.keypattern=[\"w\",\"b\",\"w\",\"b\",\"w\",\"w\",\"b\",\"w\",\"b\",\"w\",\"b\",\"w\"],this.keys=new Array,this.midibase=48,this.lineWidth=1,this.fingers=[{key:-1,pkey:-1}],this.multitouch=!1,this.oneleft=!1,this.mode=\"button\",this.val={on:0,note:0,midi:\"0 0\"},this.init()};util.inherits(keyboard,widget),keyboard.prototype.init=function(){this.white={width:0,height:0},this.black={width:0,height:0},this.wkeys=new Array,this.bkeys=new Array,this.keys=new Array,this.white.num=0;for(var t=0;t<this.keypattern.length;t++)\"w\"==this.keypattern[t]&&this.white.num++;this.white.num*=this.octaves,this.white.width=this.GUI.w/this.white.num,this.white.height=this.GUI.h,this.black.width=.6*this.white.width,this.black.height=.6*this.GUI.h;for(var t=0;t<this.keypattern.length*this.octaves;t++)switch(this.keys[t]={note:t+this.midibase,on:!1},this.keypattern[t%this.keypattern.length]){case\"w\":this.keys[t].x=this.wkeys.length*this.white.width,this.keys[t].y=0,this.keys[t].w=this.white.width,this.keys[t].h=this.white.height,this.keys[t].type=\"w\",this.keys[t].index=t,this.wkeys.push(this.keys[t]);break;case\"b\":this.keys[t].x=this.wkeys.length*this.white.width-this.black.width/2,this.keys[t].y=0,this.keys[t].w=this.black.width,this.keys[t].h=this.black.height,this.keys[t].type=\"b\",this.keys[t].index=t,this.bkeys.push(this.keys[t])}this.draw()},keyboard.prototype.draw=function(){with(this.context){strokeStyle=this.colors.borderhl,lineWidth=1;for(var i in this.wkeys)fillStyle=this.wkeys[i].on?this.colors.borderhl:this.colors.fill,strokeRect(this.wkeys[i].x,0,this.white.width,this.white.height),fillRect(this.wkeys[i].x,0,this.white.width,this.white.height);for(var i in this.bkeys)fillStyle=this.bkeys[i].on?this.colors.borderhl:this.colors.black,fillRect(this.bkeys[i].x,0,this.black.width,this.black.height)}this.drawLabel()},keyboard.prototype.toggle=function(t,e){if(\"button\"==this.mode){if(t){t.on=e||!1===e?e:!t.on;var i=t.on?1:0,s=128*math.invert(this.clickPos.y/this.GUI.h);s=math.prune(math.clip(s,5,128),0),this.val={on:i*s,note:t.note,midi:t.note+\" \"+i},this.transmit(this.val),this.draw()}}else if(\"sustain\"==this.mode&&t){t.on=e||!t.on;var i=t.on?1:0,s=128*math.invert(this.clickPos.y/this.GUI.h);s=math.prune(math.clip(s,5,128),0),this.val={on:i*s,note:t.note,midi:t.note+\" \"+i},this.transmit(this.val),this.draw()}},keyboard.prototype.whichKey=function(t,e){for(var i in this.bkeys)if(drawing.isInside({x:t,y:e},this.bkeys[i]))return this.bkeys[i];var s=~~(t/this.white.width);return s>=this.wkeys.length&&(s=this.wkeys.length-1),s<0&&(s=0),this.wkeys[s]},keyboard.prototype.click=function(t){if(this.clickPos.touches.length>1||this.multitouch){this.multitouch=!0,this.clickPos.touches.length>=2&&this.oneleft&&(this.oneleft=!1),this.keysinuse=new Array;for(var e=0;e<this.clickPos.touches.length;e++)this.fingers[e]={key:this.whichKey(this.clickPos.touches[e].x,this.clickPos.touches[e].y)},this.fingers[e].key.on||this.toggle(this.fingers[e].key,!0),this.keysinuse.push(this.fingers[e].key.index);for(var e=0;e<this.keys.length;e++)this.keys[e].on&&this.keysinuse.indexOf(this.keys[e].index)<0&&this.toggle(this.keys[e],!1)}else this.fingers[0].pkey=this.fingers[0].key,this.fingers[0].key=this.whichKey(this.clickPos.x,this.clickPos.y),this.toggle(this.fingers[0].key)},keyboard.prototype.move=function(t){if(this.clickPos.touches.length>1||this.multitouch){this.keysinuse=new Array;for(var e=0;e<this.clickPos.touches.length;e++)this.fingers[e]={key:this.whichKey(this.clickPos.touches[e].x,this.clickPos.touches[e].y)},this.fingers[e].key.on||this.toggle(this.fingers[e].key,!0),this.keysinuse.push(this.fingers[e].key.index);for(var e=0;e<this.keys.length;e++)this.keys[e].on&&this.keysinuse.indexOf(this.keys[e].index)<0&&this.toggle(this.keys[e],!1)}else this.fingers[0].pkey=this.fingers[0].key,this.fingers[0].key=this.whichKey(this.clickPos.x,this.clickPos.y),this.fingers[0].key&&this.fingers[0].key.index!=this.fingers[0].pkey.index&&(this.toggle(this.fingers[0].pkey,!1),this.toggle(this.fingers[0].key,!0))},keyboard.prototype.release=function(t){if(this.clickPos.touches.length>1||this.multitouch){this.keysinuse=new Array;for(var e=0;e<this.clickPos.touches.length&&(!this.oneleft||1!=this.clickPos.touches.length);e++)this.fingers[e]={key:this.whichKey(this.clickPos.touches[e].x,this.clickPos.touches[e].y)},this.keysinuse.push(this.fingers[e].key.index);for(var e=0;e<this.keys.length;e++)this.keys[e].on&&this.keysinuse.indexOf(this.keys[e].index)<0&&this.toggle(this.keys[e],!1);1==this.clickPos.touches.length&&(this.oneleft=!0)}else\"button\"==this.mode&&this.toggle(this.fingers[0].key,!1)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),drawing=__webpack_require__(3),util=__webpack_require__(0),widget=__webpack_require__(1),matrix=module.exports=function(t){this.defaultSize={width:100,height:100},widget.call(this,t),this.row=4,this.col=4,this.cellHgt,this.cellWid,this.matrix,this.val={row:0,col:0,level:0,list:new Array},this.cur,this.prev,this.erasing=!1,this.place=null,this.starttime,this.lastbeat,this.thisframe=0,this.lastframe=0,this.context.lineWidth=1,this.sequencing=!1,this.cellBuffer=4,this.sequenceMode=\"linear\",this.bpm=120,this.pbpm=this.bpm,this.starttime=nx.starttime,this.init()};util.inherits(matrix,widget),matrix.prototype.init=function(){this.pmatrix=!!this.matrix&&this.matrix,this.matrix=null,this.matrix=new Array(this.col);for(var t=0;t<this.col;t++){this.matrix[t]=new Array(this.row);for(var e=0;e<this.row;e++)this.matrix[t][e]=this.pmatrix&&this.pmatrix[t]?this.pmatrix[t][e]:0}this.draw(),this.life=this.unboundlife.bind(this)},matrix.prototype.draw=function(){with(this.erase(),this.cellWid=this.GUI.w/this.col,this.cellHgt=this.GUI.h/this.row,this.context)strokeStyle=this.colors.fill;for(var i=0;i<this.row;i++)for(var j=0;j<this.col;j++){var st_x=j*this.cellWid;0==j&&(st_x+=0);var st_y=i*this.cellHgt;0==i&&(st_y+=0);var boxwid=this.cellWid,boxhgt=this.cellHgt;with(this.context)strokeStyle=this.colors.border,lineWidth=this.cellBuffer,this.matrix[j][i]>0?fillStyle=this.colors.accent:fillStyle=this.colors.fill,fillRect(st_x+this.cellBuffer/2,st_y+this.cellBuffer/2,boxwid-this.cellBuffer,boxhgt-this.cellBuffer),this.place==j&&(globalAlpha=.4,fillStyle=this.colors.border,fillRect(st_x,st_y,boxwid,boxhgt),globalAlpha=1)}this.drawLabel()},matrix.prototype.click=function(t){this.cur={col:~~(this.clickPos.x/this.cellWid),row:~~(this.clickPos.y/this.cellHgt)},this.matrix[this.cur.col][this.cur.row]?(this.matrix[this.cur.col][this.cur.row]=0,this.erasing=!0):(this.matrix[this.cur.col][this.cur.row]=1,this.erasing=!1),this.cur.value=this.matrix[this.cur.col][this.cur.row],this.prev=this.cur,this.val={row:this.cur.row,col:this.cur.col,level:this.cur.value},this.transmit(this.val),this.draw()},matrix.prototype.move=function(t){this.clicked&&(this.cur={col:~~(this.clickPos.x/this.cellWid),row:~~(this.clickPos.y/this.cellHgt)},this.cur.row<this.row&&this.cur.col<this.col&&this.cur.row>=0&&this.cur.col>=0&&(this.cur.col==this.prev.col&&this.cur.row==this.prev.row||(this.erasing?this.matrix[this.cur.col][this.cur.row]=0:this.matrix[this.cur.col][this.cur.row]=1,this.cur.value=this.matrix[this.cur.col][this.cur.row],this.prev=this.cur,this.val={row:this.cur.row,col:this.cur.col,level:this.cur.value},this.transmit(this.val),this.draw())))},matrix.prototype.setCell=function(t,e,i){var s=i?1:0;this.matrix[t][e]=s,this.val={row:e,col:t,level:s},this.transmit(this.val),this.draw()},matrix.prototype.sequence=function(t){t&&(this.bpm=t),this.sequencing=!0,requestAnimationFrame(this.seqStep.bind(this))},matrix.prototype.setBPM=function(t){this.bpm=t},matrix.prototype.stop=function(){this.sequencing=!1},matrix.prototype.seqStep=function(){0==this.bpm&&(this.bpm=1);var t=(new Date).getTime(),e=t-this.starttime;if(this.bpm!=this.pbpm){e=e/(6e4/this.pbpm)*(6e4/this.bpm),this.starttime=t-e,this.thisframe=~~(e/(6e4/this.bpm))}else this.thisframe=~~(e/(6e4/this.bpm));this.pbpm=this.bpm,this.thisframe!=this.lastframe&&(this.lastbeat=t,\"linear\"==this.sequenceMode?this.place++:\"random\"==this.sequenceMode&&(this.place=math.random(this.col)),this.place>=this.col&&(this.place=0),null==this.place&&(this.place=0),this.jumpToCol(this.place)),this.lastframe=this.thisframe,this.sequencing&&requestAnimationFrame(this.seqStep.bind(this))},matrix.prototype.jumpToCol=function(t){this.place=t,this.val={list:this.matrix[this.place]},this.transmit(this.val),this.draw()},matrix.prototype.customDestroy=function(){this.stop()},matrix.prototype.unboundlife=function(){if(!this.clicked){this.newmatrix=[];for(var t=0;t<this.col;t++){this.newmatrix[t]=[];for(var e=0;e<this.row;e++){var i=0;t-1>=0&&(i+=this.matrix[t-1][e-1]?this.matrix[t-1][e-1]:0,i+=this.matrix[t-1][e]?this.matrix[t-1][e]:0,i+=this.matrix[t-1][e+1]?this.matrix[t-1][e+1]:0),i+=this.matrix[t][e-1]?this.matrix[t][e-1]:0,i+=this.matrix[t][e+1]?this.matrix[t][e+1]:0,t+1<this.col&&(i+=this.matrix[t+1][e-1]?this.matrix[t+1][e-1]:0,i+=this.matrix[t+1][e]?this.matrix[t+1][e]:0,i+=this.matrix[t+1][e+1]?this.matrix[t+1][e+1]:0),this.matrix[t][e]?i<2?this.newmatrix[t][e]=0:2==i||3==i?this.newmatrix[t][e]=1:i>3&&(this.newmatrix[t][e]=0):this.matrix[t][e]||3!=i?this.newmatrix[t][e]=this.matrix[t][e]:this.newmatrix[t][e]=1}}this.matrix=this.newmatrix}this.transmit({grid:this.matrix}),this.draw()},matrix.prototype.life=function(){return!1}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),message=module.exports=function(t){this.defaultSize={width:100,height:30},widget.call(this,t),this.val={value:\"send a message\"},this.size=14};util.inherits(message,widget),message.prototype.init=function(){this.canvas.getAttribute(\"label\")&&(this.val.value=this.canvas.getAttribute(\"label\")),this.draw()},message.prototype.draw=function(){with(this.erase(),this.context)this.clicked?fillStyle=this.colors.border:fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),this.clicked,fillStyle=this.colors.black,textAlign=\"left\",font=this.size+\"px \"+nx.font;this.wrapText(this.val.value,5,1+this.size,this.GUI.w-6,this.size)},message.prototype.click=function(t){this.draw(),this.transmit(this.val)},message.prototype.release=function(t){this.draw()}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),drawing=__webpack_require__(3),widget=__webpack_require__(1),meter=module.exports=function(t){this.defaultSize={width:20,height:50},widget.call(this,t),this.val={level:0},this.dataArray,this.bars=8,this.init()};util.inherits(meter,widget),meter.prototype.init=function(){with(this.bar={x:0,y:0,w:this.GUI.w,h:this.GUI.h/this.bars},this.context)fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h)},meter.prototype.setup=function(t,e){this.actx=t,this.source=e,this.analyser=this.actx.createAnalyser(),this.analyser.smoothingTimeConstant=.85,this.analyser.fftsize=1024,this.bufferLength=this.analyser.frequencyBinCount,this.dataArray=new Uint8Array(this.bufferLength),this.source.connect(this.analyser),this.draw()},meter.prototype.draw=function(){if(this.dataArray){this.analyser.getByteTimeDomainData(this.dataArray);var max=Math.max.apply(null,this.dataArray),min=Math.min.apply(null,this.dataArray),amp=max-min;amp/=240;var db=Math.log(amp)/Math.log(10)*20;with(this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h);for(var dboffset=Math.floor((db+40)/(50/this.bars)),i=0;i<this.bars;i++)i>=.8*this.bars?fillStyle=\"rgb(255,0,0)\":i<.8*this.bars&&i>=.69*this.bars?fillStyle=\"rgb(255,255,0)\":i<.69*this.bars&&(fillStyle=\"rgb(0,255,0)\"),i<dboffset&&fillRect(1,this.GUI.h-this.bar.h*i,this.GUI.w-2,this.bar.h-2)}}setTimeout(function(){window.requestAnimationFrame(this.draw.bind(this))}.bind(this),80)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),metro=module.exports=function(t){this.defaultSize={width:100,height:20},widget.call(this,t),this.val={beat:0},this.x=10,this.y=10,this.loc=10,this.nodeSize=10,this.speed=1,this.direction=1,this.orientation=\"horizontal\",this.boundary=this.GUI.w,nx.aniItems.push(this.advance.bind(this)),this.active=!0,this.init()};util.inherits(metro,widget),metro.prototype.init=function(){this.nodeSize=Math.min(this.GUI.w,this.GUI.h)/2,this.GUI.w<this.GUI.h?(this.orientation=\"vertical\",this.boundary=this.GUI.h):(this.orientation=\"horizontal\",this.boundary=this.GUI.w),this.x=this.nodeSize,this.y=this.nodeSize,this.loc=this.nodeSize,this.draw()},metro.prototype.draw=function(){with(this.erase(),this.context)fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),beginPath(),fillStyle=this.colors.accent,arc(this.x,this.y,this.nodeSize,0,2*Math.PI,!0),fill(),closePath();this.drawLabel()},metro.prototype.click=function(){},metro.prototype.move=function(){this.clicked&&(this.speed-=this.deltaMove.y/50)},metro.prototype.release=function(){},metro.prototype.advance=function(){this.speed,this.loc+=this.speed*this.direction,(this.loc-this.nodeSize<0||this.loc+this.nodeSize>this.boundary)&&(this.val.beat=math.scale(this.direction,-1,1,0,1),this.transmit(this.val),this.direction*=-1),\"vertical\"==this.orientation?this.y=this.loc:this.x=this.loc,this.draw()},metro.prototype.customDestroy=function(){nx.removeAni(this.advance.bind(this))}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),motion=module.exports=function(target){if(this.defaultSize={width:75,height:75},widget.call(this,target),this.motionLR,this.motionFB,this.z,this.active=!0,this.px=0,this.py=0,this.pz=0,this.val={x:0,y:0,z:0},this.text=\"Motion\",this.init(),this.boundMotion=this.motionlistener.bind(this),window.DeviceMotionEvent)window.addEventListener(\"devicemotion\",this.boundMotion,!1);else with(this.context)fillText(\"incompatible\",0,0),this.active=!1};util.inherits(motion,widget),motion.prototype.deviceMotionHandler=function(){this.val={x:math.prune(this.motionLR/10,4),y:math.prune(this.motionFB/10,4),z:math.prune(this.z/10,4)},this.transmit(this.val)},motion.prototype.motionlistener=function(e){var data=e.acceleration;if(this.active&&(this.motionLR=nx.lp(this.canvasID+\"motionx\",data.x,20),this.motionFB=nx.lp(this.canvasID+\"motiony\",data.y,20),this.z=nx.lp(this.canvasID+\"motionz\",data.z,20),this.deviceMotionHandler(),this.draw(),null===data.x||void 0===data.x)){with(this.erase(),this.context)fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),fillStyle=this.colors.black,font=\"12px courier\",textAlign=\"center\",fillText(\"no data\",this.GUI.w/2,this.GUI.h/2);this.active=!1}},motion.prototype.init=function(){this.draw()},motion.prototype.draw=function(){with(this.erase(),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),fillStyle=this.colors.accent;var eighth=Math.PI/4;this.motionFB<0?(beginPath(),moveTo(this.GUI.w/2,this.GUI.h/2),arc(this.GUI.w/2,this.GUI.h/2,this.GUI.w/2,5*eighth,7*eighth,!1),globalAlpha=Math.pow(this.motionFB,2),fill(),closePath()):(beginPath(),moveTo(this.GUI.w/2,this.GUI.h/2),arc(this.GUI.w/2,this.GUI.h/2,this.GUI.w/2,1*eighth,3*eighth,!1),globalAlpha=Math.pow(this.motionFB,2),fill(),closePath()),this.motionLR<0?(beginPath(),moveTo(this.GUI.w/2,this.GUI.h/2),arc(this.GUI.w/2,this.GUI.h/2,this.GUI.w/2,7*eighth,1*eighth,!1),globalAlpha=Math.pow(this.motionLR,2),fill(),closePath()):(beginPath(),moveTo(this.GUI.w/2,this.GUI.h/2),arc(this.GUI.w/2,this.GUI.h/2,this.GUI.w/2,3*eighth,5*eighth,!1),globalAlpha=Math.pow(this.motionLR,2),fill(),closePath()),beginPath(),moveTo(this.GUI.w/2,this.GUI.h/2),arc(this.GUI.w/2,this.GUI.h/2,this.GUI.w/6,0,2*Math.PI,!1),globalAlpha=Math.pow(this.z,2),fill(),closePath(),globalAlpha=1}this.drawLabel()},motion.prototype.click=function(){this.active=!this.active,this.draw()},motion.prototype.customDestroy=function(){this.active=!1,window.removeEventListener(\"devicemotion\",this.motionlistener,!1)}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),math=__webpack_require__(2),mouse=module.exports=function(t){this.defaultSize={width:98,height:100},widget.call(this,t),this.val={x:0,y:0,deltax:0,deltay:0},this.inside=new Object,this.boundmove=this.preMove.bind(this),this.mousing=window.addEventListener(\"mousemove\",this.boundmove,!1),this.init()};util.inherits(mouse,widget),mouse.prototype.init=function(){this.inside.height=this.GUI.h,this.inside.width=this.GUI.w,this.inside.left=0,this.inside.top=0,this.inside.quarterwid=this.inside.width/4,this.draw()},mouse.prototype.draw=function(){with(this.erase(),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h);var scaledx=-this.val.x*this.GUI.h,scaledy=-this.val.y*this.GUI.h,scaleddx=-this.val.deltax*this.GUI.h-this.GUI.h/2,scaleddy=-this.val.deltay*this.GUI.h-this.GUI.h/2;fillStyle=this.colors.accent,fillRect(this.inside.left,this.inside.height,this.inside.quarterwid,scaledx),fillRect(this.inside.quarterwid,this.inside.height,this.inside.quarterwid,scaledy),fillRect(2*this.inside.quarterwid,this.inside.height,this.inside.quarterwid,scaleddx),fillRect(3*this.inside.quarterwid,this.inside.height,this.inside.quarterwid,scaleddy),globalAlpha=1,fillStyle=this.colors.fill,textAlign=\"center\",font=this.GUI.w/7+\"px \"+this.font,globalAlpha=1}this.drawLabel()},mouse.prototype.move=function(t){this.val={deltax:t.clientX/window.innerWidth-this.val.x,deltay:math.invert(t.clientY/window.innerHeight)-this.val.y,x:t.clientX/window.innerWidth,y:math.invert(t.clientY/window.innerHeight)},this.draw(),this.transmit(this.val)},mouse.prototype.customDestroy=function(){window.removeEventListener(\"mousemove\",this.boundmove,!1)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),multislider=module.exports=function(t){this.defaultSize={width:100,height:75},widget.call(this,t),this.sliders=15,this.sliderClicked=0,this.oldSliderToMove,this.init()};util.inherits(multislider,widget),multislider.prototype.init=function(){this.val=new Array;for(var t=0;t<this.sliders;t++)this.val[t]=.7;this.realSpace={x:this.GUI.w,y:this.GUI.h},this.sliderWidth=this.realSpace.x/this.sliders,this.draw()},multislider.prototype.draw=function(){with(this.erase(),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),strokeStyle=this.colors.accent,fillStyle=this.colors.accent,lineWidth=5;for(var i=0;i<this.sliders;i++)beginPath(),moveTo(i*this.sliderWidth,this.GUI.h-this.val[i]*this.GUI.h),lineTo(i*this.sliderWidth+this.sliderWidth,this.GUI.h-this.val[i]*this.GUI.h),stroke(),lineTo(i*this.sliderWidth+this.sliderWidth,this.GUI.h),lineTo(i*this.sliderWidth,this.GUI.h),globalAlpha=.3-i%3*.1,fill(),closePath(),globalAlpha=1}this.drawLabel()},multislider.prototype.click=function(){this.oldSliderToMove=!1,this.move(!0)},multislider.prototype.move=function(t){if(this.clicked){if(this.clickPos.touches.length>1)for(var e=0;e<this.clickPos.touches.length;e++){var i=Math.floor(this.clickPos.touches[e].x/this.sliderWidth);i=math.clip(i,0,this.sliders-1),this.val[i]=math.clip(math.invert(this.clickPos.touches[e].y/this.GUI.h),0,1)}else{var i=Math.floor(this.clickPos.x/this.sliderWidth);if(i=math.clip(i,0,this.sliders-1),this.val[i]=math.clip(math.invert(this.clickPos.y/this.GUI.h),0,1),this.oldSliderToMove&&this.oldSliderToMove>i+1)for(var s=this.oldSliderToMove-i-1,e=1;e<=s;e++)this.val[i+e]=this.val[i]+(this.val[this.oldSliderToMove]-this.val[i])*(e/(s+1));else if(this.oldSliderToMove&&i>this.oldSliderToMove+1)for(var s=i-this.oldSliderToMove-1,e=1;e<=s;e++)this.val[this.oldSliderToMove+e]=this.val[this.oldSliderToMove]+(this.val[i]-this.val[this.oldSliderToMove])*(e/(s+1))}this.draw()}var n=new Object;if(n[i]=this.val[i],\"js\"==this.destination||\"node\"==this.destination)n.list=this.val;else{n.list=new String;for(var o in this.val)n.list+=this.val[o]+\" \"}this.transmit(n),this.oldSliderToMove=i},multislider.prototype.setNumberOfSliders=function(t){this.sliders=t,this.val=new Array;for(var e=0;e<this.sliders;e++)this.val.push(.7);this.sliderWidth=this.realSpace.x/this.sliders,this.init()},multislider.prototype.setSliderValue=function(t,e){this.val[t]=e,this.draw();var i=new Object;if(i[t]=this.val[t],\"js\"==this.destination||\"node\"==this.destination)i.list=this.val;else{i.list=new String;for(var s in this.val)i.list+=this.val[s]+\" \"}this.transmit(i)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),drawing=__webpack_require__(3),util=__webpack_require__(0),widget=__webpack_require__(1),multitouch=module.exports=function(t){this.defaultSize={width:200,height:200},widget.call(this,t),this.nodeSize=this.GUI.w/10,this.val={touch1:{x:0,y:0}},this.nodes=new Array,this.text=\"multitouch\",this.rainbow=[\"#00f\",\"#04f\",\"#08F\",\"0AF\",\"0FF\"],this.mode=\"normal\",this.rows=10,this.cols=10,this.matrixLabels=!1,this.init()};util.inherits(multitouch,widget),multitouch.prototype.init=function(){this.nodeSize=this.GUI.w/10,this.draw()},multitouch.prototype.draw=function(){with(this.erase(),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h);var count=0;if(\"matrix\"==this.mode)for(var j=0;j<this.rows;j++)for(var i=0;i<this.cols;i++)with(this.context){beginPath(),fillStyle=this.colors.accent,strokeStyle=this.colors.border,lineWidth=1;var circx=i*this.GUI.w/this.cols+this.GUI.w/this.cols/2,circy=j*this.GUI.h/this.rows+this.GUI.h/this.rows/2;arc(circx,circy,this.GUI.h/this.rows/2,0,2*Math.PI,!0),stroke(),fillStyle=this.colors.border,textAlign=\"center\",textBaseline=\"middle\",this.matrixLabels&&(fillText(this.matrixLabels[count%this.matrixLabels.length],circx,circy),count++);var thisarea={x:i*this.GUI.w/this.cols,y:j*this.GUI.h/this.rows,w:this.GUI.w/this.cols,h:this.GUI.h/this.rows};if(this.clickPos.touches.length>=1)for(var k=0;k<this.clickPos.touches.length;k++)drawing.isInside(this.clickPos.touches[k],thisarea)&&(globalAlpha=.5,fillStyle=this.colors.accent,fill(),globalAlpha=.3,fillStyle=this.rainbow[k],fill(),globalAlpha=1);closePath()}else if(this.clickPos.touches.length>=1){for(var i=0;i<this.clickPos.touches.length;i++)with(this.context)globalAlpha=.5,beginPath(),fillStyle=this.colors.accent,strokeStyle=this.colors.border,lineWidth=this.lineWidth,arc(this.clickPos.touches[i].x,this.clickPos.touches[i].y,this.nodeSize,0,2*Math.PI,!0),fill(),closePath(),globalAlpha=.3,beginPath(),fillStyle=this.rainbow[i],strokeStyle=this.colors.border,lineWidth=this.lineWidth,arc(this.clickPos.touches[i].x,this.clickPos.touches[i].y,this.nodeSize,0,2*Math.PI,!0),fill(),closePath(),globalAlpha=1;clearRect(0,this.GUI.h,this.GUI.w,this.height-this.GUI.h)}else this.setFont(),fillStyle=this.colors.border,fillText(this.text,this.GUI.w/2,this.GUI.h/2),globalAlpha=1}this.drawLabel()},multitouch.prototype.click=function(){this.draw(),this.sendit()},multitouch.prototype.move=function(){this.clicked&&(this.draw(),this.sendit())},multitouch.prototype.release=function(){if(!this.clicked){this.clickPos.touches=new Array;for(var t=0;t<5;t++)this.val[\"touch\"+t]={x:0,y:0};this.transmit(this.val)}this.draw(),this.sendit()},multitouch.prototype.sendit=function(){this.val=new Object;for(var t=0;t<this.clickPos.touches.length;t++)this.val[\"touch\"+t]={x:this.clickPos.touches[t].x/this.canvas.width,y:math.invert(this.clickPos.touches[t].y/this.canvas.height)};this.transmit(this.val)}},function(t,e,i){var s=i(2),n=i(0),o=i(1),r=t.exports=function(t){this.defaultSize={width:50,height:20},o.call(this,t),this.val={value:0},this.min=-2e4,this.max=2e4,this.step=1,this.rate=.25,this.decimalPlaces=3,this.lostdata=0,this.actual=0,this.canvas.ontouchstart=null,this.canvas.ontouchmove=null,this.canvas.ontouchend=null;var e='<input type=\"text\" nx=\"number\" id=\"'+this.canvasID+'\" style=\"height:'+this.GUI.h+\"px;width:\"+this.GUI.w+\"px;font-size:\"+this.GUI.h/2+'px;\"></input><canvas height=\"1px\" width=\"1px\" style=\"display:none\"></canvas>',i=this.canvas,n=this.canvas.style,r=i.parentNode,a=document.createElement(\"span\");a.innerHTML=e,a.className=\"nx\",r.replaceChild(a,i),this.el=document.getElementById(this.canvasID);for(var h in n)\"height\"!=h&&\"width\"!=h&&(this.el.style[h]=n[h]);if(this.label){var l=document.createElement(\"div\");l.innerHTML=this.label,l.style.fontSize=this.labelSize/2.8+\"px\",l.style.fontFamily=this.labelFont,l.style.textAlign=this.labelAlign,l.style.lineHeight=this.labelSize+\"px\",l.style.width=this.GUI.w+\"px\",l.style.color=nx.colors.black,l.className=\"nxlabel\",a.appendChild(l)}this.canvas=document.getElementById(this.canvasID),this.canvas.style.height=this.GUI.h+\"px\",this.canvas.style.fontSize=.6*this.GUI.h+\"px\",this.canvas.style.textAlign=\"left\",this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.highlight=this.colors.fill,this.canvas.style.border=\"none\",this.canvas.style.outline=\"none\",this.canvas.style.padding=\"4px 10px\",this.canvas.style.cursor=\"pointer\",this.canvas.style.display=\"block\",this.canvas.className=\"\",this.canvas.addEventListener(\"blur\",function(){this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.color=this.colors.black,this.canvas.value!=this.val.value&&(this.actual=parseFloat(this.canvas.value),this.actual=s.clip(this.actual,this.min,this.max),this.actual=s.prune(this.actual,this.decimalPlaces),this.set({value:this.actual},!0))}.bind(this)),this.canvas.addEventListener(\"keydown\",function(t){(t.which<48||t.which>57)&&189!=t.which&&190!=t.which&&8!=t.which&&t.preventDefault(),13==t.which&&this.canvas.blur()}.bind(this)),nx.isTouchDevice?(this.canvas.ontouchstart=this.preTouch,this.canvas.ontouchmove=this.preTouchMove,this.canvas.ontouchend=this.preTouchRelease):this.canvas.addEventListener(\"mousedown\",this.preClick,!1),this.canvas.style.userSelect=\"none !important\",this.canvas.style.mozUserSelect=\"none !important\",this.canvas.style.webkitUserSelect=\"none !important\",this.init()};n.inherits(r,o),r.prototype.init=function(){this.draw()},r.prototype.draw=function(){this.canvas.value=this.val.value},r.prototype.click=function(t){this.canvas.readOnly=!0,this.actual=this.val.value},r.prototype.move=function(t){this.clicked&&(this.canvas.style.border=\"none\",this.actual-=this.deltaMove.y*(this.rate*this.step),this.actual=s.clip(this.actual,this.min,this.max),this.val.value=Math.floor(this.actual/this.step)*this.step,this.val.value=s.prune(this.val.value,this.decimalPlaces),this.draw(),this.transmit(this.val))},r.prototype.release=function(t){!this.hasMoved&&this.canvas.readOnly&&(this.canvas.readOnly=!1,this.canvas.focus(),this.canvas.setSelectionRange(0,this.canvas.value.length),this.canvas.style.backgroundColor=this.colors.accent,this.canvas.style.color=this.colors.fill)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),position=module.exports=function(t){this.defaultSize={width:150,height:100},widget.call(this,t),this.nodeSize=15,this.val={x:.5,y:.5},this.init()};util.inherits(position,widget),position.prototype.init=function(){this.nodeSize=Math.min(this.GUI.h,this.GUI.w)/10,this.nodeSize=Math.max(this.nodeSize,10),this.actualWid=this.GUI.w-2*this.nodeSize,this.actualHgt=this.GUI.h-2*this.nodeSize,this.draw()},position.prototype.draw=function(){with(this.erase(),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h);var drawingX=this.val.x*this.actualWid+this.nodeSize,drawingY=math.invert(this.val.y)*this.actualHgt+this.nodeSize;with(drawingX<this.nodeSize?drawingX=this.nodeSize:drawingX>this.GUI.w-this.nodeSize&&(drawingX=this.GUI.w-this.nodeSize),drawingY<this.nodeSize?drawingY=this.nodeSize:drawingY>this.GUI.h-this.nodeSize&&(drawingY=this.GUI.h-this.nodeSize),this.context)beginPath(),fillStyle=this.colors.accent,arc(drawingX,drawingY,this.nodeSize,0,2*Math.PI,!0),fill(),closePath(),this.clicked&&(beginPath(),fillStyle=this.colors.accent,arc(drawingX,drawingY,2*this.nodeSize,0,2*Math.PI,!0),fill(),closePath(),clearRect(0,this.GUI.h,this.GUI.w,this.height-this.GUI.h))}this.drawLabel()},position.prototype.click=function(){this.val.x=this.clickPos.x,this.val.y=this.clickPos.y,this.scaleNode(),this.val.state=\"click\",this.transmit(this.val),this.draw()},position.prototype.move=function(){this.val.x=this.clickPos.x,this.val.y=this.clickPos.y,this.scaleNode(),this.val.state=\"move\",this.transmit(this.val),this.draw()},position.prototype.release=function(){this.val.x=this.clickPos.x,this.val.y=this.clickPos.y,this.scaleNode(),this.val.state=\"release\",this.transmit(this.val),this.draw()},position.prototype.scaleNode=function(){var t=this.val.x-this.nodeSize,e=this.val.y-this.nodeSize,i=math.clip(t/this.actualWid,0,1),s=math.clip(e/this.actualHgt,0,1);this.val.x=math.prune(i,3),this.val.y=math.prune(s,3),this.val.y=math.invert(this.val.y)},position.prototype.animate=function(t){switch(t){case\"bounce\":nx.aniItems.push(this.aniBounce.bind(this));break;case\"none\":nx.aniItems.splice(nx.aniItems.indexOf(this.aniBounce))}},position.prototype.aniBounce=function(){!this.clicked&&this.val.x&&(this.val.x+=this.deltaMove.x/2/this.GUI.w,this.val.y-=this.deltaMove.y/2/this.GUI.h,this.val.state=\"animated\",math.bounce(this.val.x,0,1,this.deltaMove.x)!=this.deltaMove.x&&(this.deltaMove.x=math.bounce(this.val.x,0,1,this.deltaMove.x),this.val.state=\"bounce\"),(this.val.y>=1||this.val.y<=0)&&(this.deltaMove.y=-1*math.bounce(this.val.y,0,1,this.deltaMove.y),this.val.state=\"bounce\"),this.transmit(this.val),this.draw())},position.prototype.customDestroy=function(){nx.removeAni(this.aniBounce)}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),math=__webpack_require__(2),range=module.exports=function(t){this.defaultSize={width:110,height:35},widget.call(this,t),this.val={start:.3,stop:.7,size:.4},this.hslider=!1,this.handle,this.relhandle,this.cap,this.firsttouch=\"start\",this.mode=\"area\",this.touchdown=new Object,this.init()};util.inherits(range,widget),range.prototype.init=function(){this.GUI.h>=this.GUI.w?this.hslider=!1:this.hslider=!0,null!=this.canvas.getAttribute(\"label\")&&(this.label=this.canvas.getAttribute(\"label\")),this.draw()},range.prototype.draw=function(){with(this.erase(),this.context)if(fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),this.hslider){var x1=this.val.start*this.GUI.w,y1=0,x2=this.val.stop*this.GUI.w,y2=this.GUI.h;fillStyle=this.colors.accent,fillRect(x1,y1,x2-x1,y2-y1)}else{var x1=0,y1=this.GUI.h-this.val.stop*this.GUI.h,x2=this.GUI.w,y2=this.GUI.h-this.val.start*this.GUI.h;fillStyle=this.colors.accent,fillRect(x1,y1,x2-x1,y2-y1)}this.drawLabel()},range.prototype.click=function(){\"edge\"==this.mode?this.hslider?Math.abs(this.clickPos.x-this.val.start*this.GUI.w)<Math.abs(this.clickPos.x-this.val.stop*this.GUI.w)?this.firsttouch=\"start\":this.firsttouch=\"stop\":Math.abs(Math.abs(this.clickPos.y-this.GUI.h)-this.val.start*this.GUI.h)<Math.abs(Math.abs(this.clickPos.y-this.GUI.h)-this.val.stop*this.GUI.h)?this.firsttouch=\"start\":this.firsttouch=\"stop\":\"area\"==this.mode&&(this.touchdown={x:this.clickPos.x,y:this.clickPos.y},this.startval=new Object,this.startval.size=this.val.stop-this.val.start,this.startval.loc=this.val.start+this.startval.size/2),this.move()},range.prototype.move=function(){if(\"edge\"==this.mode)this.hslider?\"start\"==this.firsttouch?(this.val.start=this.clickPos.x/this.GUI.w,this.clickPos.touches.length>1&&(this.val.stop=this.clickPos.touches[1].x/this.GUI.w)):(this.val.stop=this.clickPos.x/this.GUI.w,this.clickPos.touches.length>1&&(this.val.start=this.clickPos.touches[1].x/this.GUI.w)):\"start\"==this.firsttouch?(this.val.start=math.invert(this.clickPos.y/this.GUI.h),this.clickPos.touches.length>1&&(this.val.stop=math.invert(this.clickPos.touches[1].y/this.GUI.h))):(this.val.stop=math.invert(this.clickPos.y/this.GUI.h),this.clickPos.touches.length>1&&(this.val.start=math.invert(this.clickPos.touches[1].y/this.GUI.h))),this.val.stop<this.val.start&&(this.tempstart=this.val.start,this.val.start=this.val.stop,this.val.stop=this.tempstart,\"start\"==this.firsttouch?this.firsttouch=\"stop\":this.firsttouch=\"start\"),this.val={start:math.clip(this.val.start,0,1),stop:math.clip(this.val.stop,0,1)},this.val.size=math.prune(math.clip(Math.abs(this.val.stop-this.val.start),0,1),3),this.draw(),this.transmit(this.val);else if(\"area\"==this.mode){if(this.hslider)var t=this.clickPos.x/this.GUI.w,e=(this.touchdown.y-this.clickPos.y)/this.GUI.h;else{var t=nx.invert(this.clickPos.y/this.GUI.h),e=(this.touchdown.x-this.clickPos.x)/this.GUI.w;e*=-1}e/=3;var i=this.startval.size+e;i=math.clip(i,.001,1),this.val={start:t-i/2,stop:t+i/2},this.val.start=math.clip(this.val.start,0,1),this.val.stop=math.clip(this.val.stop,0,1),this.draw(),this.transmit(this.val)}}},function(t,e,i){var s=i(0),n=i(1),o=t.exports=function(t){this.defaultSize={width:200,height:30},n.call(this,t),this.choices=[],this.val=new Object,this.canvas.ontouchstart=null,this.canvas.ontouchmove=null,this.canvas.ontouchend=null,this.canvas.getAttribute(\"choices\")&&(this.choices=this.canvas.getAttribute(\"choices\"),this.choices=this.choices.split(\",\"));var e='<select id=\"'+this.canvasID+'\" class=\"nx\" nx=\"select\" style=\"height:'+this.GUI.h+\"px;width:\"+this.GUI.w+'px;\" onchange=\"'+this.canvasID+'.change(this)\"></select><canvas height=\"1px\" width=\"1px\" style=\"display:none\"></canvas>',i=this.canvas,s=this.canvas.style,o=i.parentNode,r=document.createElement(\"span\");r.innerHTML=e,r.className=\"nx\",o.replaceChild(r,i),this.sel=document.getElementById(this.canvasID);for(var a in s)this.sel.style[a]=s[a];this.canvas=document.getElementById(this.canvasID),this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.border=\"solid 2px \"+this.colors.border,this.canvas.style.color=this.colors.black,this.canvas.style.fontSize=Math.round(this.GUI.h/2.3)+\"px\",this.canvas.className=\"\"};s.inherits(o,n),o.prototype.init=function(){this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.border=\"solid 2px \"+this.colors.border,this.canvas.style.color=this.colors.black;var t=this.canvas.options.length;for(e=0;e<t;e++)this.canvas.options[e]=null;for(var e=0;e<this.choices.length;e++){var i=document.createElement(\"option\");i.text=this.choices[e],i.value=this.choices[e],this.canvas.add(i,null)}this.val.text=this.choices[0]},o.prototype.change=function(t){this.val.text=t.value,this.val.value=t.selectedIndex,this.transmit(this.val)},o.prototype.draw=function(){this.canvas.value=this.val.text,this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.color=this.colors.black,this.canvas.style.border=\"solid 2px \"+this.colors.border}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),slider=module.exports=function(t){this.defaultSize={width:35,height:110},widget.call(this,t),null!=this.canvas.getAttribute(\"min\")?this.min=parseFloat(this.canvas.getAttribute(\"min\")):this.min=0,null!=this.canvas.getAttribute(\"max\")?this.max=parseFloat(this.canvas.getAttribute(\"max\")):this.max=1,null!=this.canvas.getAttribute(\"step\")?this.step=parseFloat(this.canvas.getAttribute(\"step\")):this.step=.001,this.val.value=nx.scale(.7,0,1,this.min,this.max),this.mode=\"absolute\",this.hslider=!1,this.handle,this.relhandle,this.cap,this.maxdigits=3,this.calculateDigits=nx.calculateDigits,this.init()};util.inherits(slider,widget),slider.prototype.init=function(){this.GUI.h>=this.GUI.w?this.hslider=!1:this.hslider=!0,this.draw()},slider.prototype.draw=function(){var normalval=this.normalize(this.val.value);with(this.digits=this.calculateDigits(),this.erase(),this.context){if(fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),this.hslider){var x1=0,y1=0,x2=normalval*this.GUI.w,y2=this.GUI.h;fillStyle=this.colors.accent,fillRect(x1,y1,x2-x1,y2-y1);var valtextsize=this.GUI.h/2;if(valtextsize>6){if(x2>this.digits.total*valtextsize/2){fillStyle=this.colors.white;var textx=5}else{fillStyle=this.colors.accent;var textx=x2+5}var texty=this.GUI.h/2,valtextAlign=\"left\",valtextBaseline=\"middle\"}}else{var x1=0,y1=this.GUI.h-normalval*this.GUI.h,x2=this.GUI.w,y2=this.GUI.h;fillStyle=this.colors.accent,fillRect(x1,y1,x2-x1,y2-y1);var valtextsize=this.GUI.w/this.digits.total*1.2;if(valtextsize>6){if(y1<this.GUI.h-valtextsize/2-5){fillStyle=this.colors.white;var texty=this.GUI.h-valtextsize/2-5}else{fillStyle=this.colors.accent;var texty=y1-valtextsize/2-5}var textx=this.GUI.w/2,valtextAlign=\"center\",valtextBaseline=\"middle\"}}var valtext=this.val.value.toFixed(this.digits.decimals);textBaseline=valtextBaseline,textAlign=valtextAlign,font=valtextsize+\"px 'Open Sans'\",fillText(valtext,textx,texty),this.label&&this.drawLabel()}},slider.prototype.click=function(){this.move()},slider.prototype.move=function(){var t=this.normalize(this.val.value);this.hslider?(this.handle=this.clickPos.x,this.relhandle=this.deltaMove.x,this.cap=this.GUI.w):(this.handle=this.clickPos.y,this.relhandle=-1*this.deltaMove.y,this.cap=this.GUI.h),\"absolute\"==this.mode?this.clicked&&(t=this.hslider?math.clip(this.clickPos.x/this.GUI.w,0,1):Math.abs(math.clip(this.clickPos.y/this.GUI.h,0,1)-1),this.draw()):\"relative\"==this.mode&&this.clicked&&(t=this.hslider?math.clip(t+this.deltaMove.x/this.GUI.w,0,1):math.clip(t+-1*this.deltaMove.y/this.GUI.h,0,1),this.draw()),this.val.value=math.prune(this.rangify(t),3),this.transmit(this.val)}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),string=module.exports=function(t){this.defaultSize={width:150,height:75},widget.call(this,t),this.val={string:0,x:0},this.numberOfStrings=10,this.strings=new Array,this.abovestring=new Array,this.friction=1;this.init(),nx.aniItems.push(this.draw.bind(this))};util.inherits(string,widget),string.prototype.init=function(){stringdiv=this.GUI.h/(this.numberOfStrings+1);for(var t=0;t<this.numberOfStrings;t++)this.strings[t]={x1:this.lineWidth,y1:stringdiv*(1+t),x2:this.GUI.w-this.lineWidth,y2:stringdiv*(t+1),held:!1,vibrating:!1,force:0,maxstretch:0,stretch:0,direction:0,above:!1};this.draw()},string.prototype.pulse=function(){this.draw()},string.prototype.setStrings=function(t){this.numberOfStrings=t,this.strings=new Array,this.init()},string.prototype.draw=function(){with(this.erase(),this.context){strokeStyle=this.colors.border,fillStyle=this.colors.fill,lineWidth=this.lineWidth,fillRect(0,0,this.GUI.w,this.GUI.h),strokeStyle=this.colors.accent;for(var i=0;i<this.strings.length;i++){var st=this.strings[i];st.vibrating?(st.maxstretch<0&&(st.vibrating=!1,st.held=!1),st.stretch=st.stretch+st.direction,Math.abs(st.stretch)>st.maxstretch&&(st.direction*=-1,st.stretch=st.stretch+st.direction,st.maxstretch=st.maxstretch-this.friction,st.direction=st.direction/Math.abs(st.direction)*(st.maxstretch/1)),beginPath(),moveTo(st.x1,st.y1),quadraticCurveTo(this.GUI.w/2,st.y1+st.stretch,st.x2,st.y2),stroke(),closePath(),st.on=!0):st.held?(beginPath(),moveTo(st.x1,st.y1),quadraticCurveTo(this.clickPos.x,this.clickPos.y,st.x2,st.y2),stroke(),closePath(),st.on=!0):(beginPath(),moveTo(st.x1,st.y1),lineTo(st.x2,st.y2),stroke(),closePath(),st.on&&(st.on=!1))}}this.drawLabel()},string.prototype.click=function(){for(var t=0;t<this.numberOfStrings;t++)this.strings[t].above=this.clickPos.y<this.strings[t].y1;this.draw()},string.prototype.move=function(){if(this.clicked)for(var t=0;t<this.strings.length;t++)this.strings[t].above!=this.clickPos.y<this.strings[t].y1&&(this.strings[t].held=!0,this.strings[t].above^=!0),this.strings[t].held&&Math.abs(this.clickPos.y-this.strings[t].y1)>this.GUI.h/(3*this.strings.length)&&this.pluck(t)},string.prototype.release=function(){for(var t=0;t<this.strings.length;t++)this.strings[t].held&&this.pluck(t)},string.prototype.pluck=function(t){var e=t;this.val={string:e,x:this.clickPos.x/this.GUI.w},this.transmit(this.val),this.strings[e].held=!1,this.strings[e].force=this.clickPos.y-this.strings[e].y1,this.strings[e].maxstretch=Math.abs(this.clickPos.y-this.strings[e].y1),this.strings[e].stretch=this.clickPos.y-this.strings[e].y1,this.strings[e].vibrating=!0,this.strings[e].direction=(this.clickPos.y-this.strings[e].y1)/Math.abs(this.clickPos.y-this.strings[e].y1)*((this.clickPos.y-this.strings[e].y1)/-1.2)},string.prototype.customDestroy=function(){nx.removeAni(this.draw.bind(this))}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),tabs=module.exports=function(t){this.defaultSize={width:150,height:50},widget.call(this,t),this.choice=0,this.val={index:0,text:\"\"},this.tabwid=0,this.options=[\"one\",\"two\",\"three\"],this.init()};util.inherits(tabs,widget),tabs.prototype.init=function(){this.draw()},tabs.prototype.draw=function(){with(this.context)fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),textAlign=\"center\",textBaseline=\"middle\",font=\"normal \"+this.GUI.h/5+\"px courier\";this.tabwid=this.GUI.w/this.options.length;for(var i=0;i<this.options.length;i++){if(i==this.choice)var tabcol=this.colors.accent,textcol=this.colors.white;else{var tabcol=this.colors.fill,textcol=this.colors.black;globalAlpha=.7}with(this.context)fillStyle=tabcol,fillRect(this.tabwid*i,0,this.tabwid,this.GUI.h),i!=this.options.length-1&&(beginPath(),moveTo(this.tabwid*(i+1),0),lineTo(this.tabwid*(i+1),this.GUI.h),lineWidth=1,strokeStyle=this.colors.border,stroke(),closePath()),fillStyle=textcol,font=this.fontSize+\"px \"+this.font,fillText(this.options[i],this.tabwid*i+this.tabwid/2,this.GUI.h/2)}},tabs.prototype.click=function(){this.choice=~~(this.clickPos.x/this.tabwid),this.val={index:this.choice,text:this.options[this.choice]},this.transmit(this.val),this.draw()}},function(t,e,i){var s=i(0),n=i(1),o=t.exports=function(t){this.defaultSize={width:200,height:100},n.call(this,t),this.val={text:\"\"};var e='<textarea id=\"'+this.canvasID+'\" style=\"height:'+this.GUI.h+\"px;width:\"+this.GUI.w+'px;\" onkeydown=\"'+this.canvasID+'.change(event,this)\"></textarea><canvas height=\"1px\" width=\"1px\" style=\"display:none\"></canvas>',i=this.canvas,s=this.canvas.style,o=i.parentNode,r=document.createElement(\"span\");r.innerHTML=e,r.className=\"nx\",o.replaceChild(r,i),this.el=document.getElementById(this.canvasID);for(var a in s)this.el.style[a]=s[a];this.el.style.display=\"block\",this.el.style.backgroundColor=this.colors.fill,this.el.style.border=\"none\",this.el.style.color=this.colors.black,this.el.style.outline=\"none\",this.el.style.resize=\"none\",this.el.style.boxSizing=\"border-box\",this.el.style.padding=\"5px\",this.el.style.fontFamily=nx.font,this.el.style.fontSize=\"16px\",this.el.className=\"\",this.canvas=document.getElementById(this.canvasID)};s.inherits(o,n),o.prototype.init=function(){this.canvas.ontouchstart=null,this.canvas.ontouchmove=null,this.canvas.ontouchend=null,this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.color=this.colors.black},o.prototype.change=function(t,e){this.val.text=e.value,\"13\"==t.which&&(this.transmit(this.val),this.val.text=\"\",this.draw(),t.preventDefault())},o.prototype.draw=function(){this.el.value=this.val.text,this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.color=this.colors.black}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),tilt=module.exports=function(t){this.defaultSize={width:50,height:50},widget.call(this,t),this.tiltLR,this.tiltFB,this.z,this.active=!0,this.val={x:0,y:0,z:0},this.text=\"TILT\",this.init(),this.boundChromeTilt=this.chromeTilt.bind(this),this.boundMozTilt=this.mozTilt.bind(this),window.DeviceOrientationEvent?window.addEventListener(\"deviceorientation\",this.boundChromeTilt,!1):window.OrientationEvent?window.addEventListener(\"MozOrientation\",this.boundMozTilt,!1):console.log(\"Not supported on your device or browser.\")};util.inherits(tilt,widget),tilt.prototype.deviceOrientationHandler=function(){this.val={x:math.prune(this.tiltLR/90,3),y:math.prune(this.tiltFB/90,3),z:math.prune(this.z,3)},this.active&&this.transmit(this.val)},tilt.prototype.chromeTilt=function(t){this.tiltLR=t.gamma,this.tiltFB=t.beta,this.z=t.alpha,this.deviceOrientationHandler(),this.draw()},tilt.prototype.mozTilt=function(t){this.tiltLR=90*t.x,this.tiltFB=-90*t.y,this.z=t.z,this.deviceOrientationHandler(),this.draw()},tilt.prototype.init=function(){this.draw()},tilt.prototype.draw=function(){with(this.erase(),this.context)fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),save(),translate(this.GUI.w/2,this.GUI.h/2),rotate(-this.val.x*Math.PI/2),translate(-this.GUI.w/2,-this.GUI.h/2),globalAlpha=.4,this.active?fillStyle=this.colors.accent:fillStyle=this.colors.border,fillRect(-this.GUI.w,this.GUI.h*(this.val.y/2)+this.GUI.h/2,3*this.GUI.w,2*this.GUI.h),font=\"bold \"+this.GUI.h/5+\"px \"+this.font,textAlign=\"center\",textBaseline=\"middle\",fillText(this.text,this.GUI.w/2,this.GUI.h*(this.val.y/2)+this.GUI.h/2-this.GUI.h/15),globalAlpha=1,restore(),clearRect(0,this.GUI.h,this.GUI.w,this.height-this.GUI.h);this.drawLabel()},tilt.prototype.click=function(){this.active=!this.active},tilt.prototype.customDestroy=function(){this.active=!1,window.removeEventListener(\"deviceorientation\",this.boundChromeTilt,!1),window.removeEventListener(\"mozOrientation\",this.boundMozTilt,!1)}},function(module,exports,__webpack_require__){var drawing=__webpack_require__(3),util=__webpack_require__(0),widget=__webpack_require__(1),toggle=module.exports=function(t){this.defaultSize={width:50,height:50},widget.call(this,t),this.val={value:0},this.init()};util.inherits(toggle,widget),toggle.prototype.init=function(){this.draw()},toggle.prototype.draw=function(){with(this.erase(),this.context)this.val.value?(fillStyle=this.colors.accent,strokeStyle=this.colors.accenthl,strokeAlpha=1):(fillStyle=this.colors.fill,strokeStyle=this.colors.border,strokeAlpha=1),lineWidth=Math.sqrt(this.GUI.w)/2,fillRect(0,0,this.GUI.w,this.GUI.h),globalAlpha=strokeAlpha,strokeRect(lineWidth/2,lineWidth/2,this.GUI.w-lineWidth,this.GUI.h-lineWidth),globalAlpha=1;this.drawLabel()},toggle.prototype.click=function(){this.val.value?this.val.value=0:this.val.value=1,this.draw(),this.transmit(this.val)}},function(module,exports,__webpack_require__){var drawing=__webpack_require__(3),util=__webpack_require__(0),widget=__webpack_require__(1),typewriter=module.exports=function(t){this.defaultSize={width:300,height:100},widget.call(this,t),this.letter=\"\",this.keywid=this.GUI.w/14.5,this.keyhgt=this.GUI.h/5,this.active=!0,this.val={key:\"\",ascii:0,on:0},this.rows=[[{symbol:\"`\",value:192,width:1,on:!1},{symbol:\"1\",value:49,width:1,on:!1},{symbol:\"2\",value:50,width:1,on:!1},{symbol:\"3\",value:51,width:1,on:!1},{symbol:\"4\",value:52,width:1,on:!1},{symbol:\"5\",value:53,width:1,on:!1},{symbol:\"6\",value:54,width:1,on:!1},{symbol:\"7\",value:55,width:1,on:!1},{symbol:\"8\",value:56,width:1,on:!1},{symbol:\"9\",value:57,width:1,on:!1},{symbol:\"0\",value:48,width:1,on:!1},{symbol:\"-\",value:189,width:1,on:!1},{symbol:\"=\",value:187,width:1,on:!1},{symbol:\"delete\",value:46,width:1.5,on:!1}],[{symbol:\"tab\",value:9,width:1.5,on:!1},{symbol:\"q\",value:81,width:1,on:!1},{symbol:\"w\",value:87,width:1,on:!1},{symbol:\"e\",value:69,width:1,on:!1},{symbol:\"r\",value:82,width:1,on:!1},{symbol:\"t\",value:84,width:1,on:!1},{symbol:\"y\",value:89,width:1,on:!1},{symbol:\"u\",value:85,width:1,on:!1},{symbol:\"i\",value:73,width:1,on:!1},{symbol:\"o\",value:79,width:1,on:!1},{symbol:\"p\",value:80,width:1,on:!1},{symbol:\"[\",value:219,width:1,on:!1},{symbol:\"]\",value:221,width:1,on:!1},{symbol:\"\\\\\",value:220,width:1,on:!1}],[{symbol:\"caps\",value:20,width:1.75,on:!1},{symbol:\"a\",value:65,width:1,on:!1},{symbol:\"s\",value:83,width:1,on:!1},{symbol:\"d\",value:68,width:1,on:!1},{symbol:\"f\",value:70,width:1,on:!1},{symbol:\"g\",value:71,width:1,on:!1},{symbol:\"h\",value:72,width:1,on:!1},{symbol:\"j\",value:74,width:1,on:!1},{symbol:\"k\",value:75,width:1,on:!1},{symbol:\"l\",value:76,width:1,on:!1},{symbol:\";\",value:186,width:1,on:!1},{symbol:\"'\",value:222,width:1,on:!1},{symbol:\"enter\",value:13,width:1.75,on:!1}],[{symbol:\"shift\",value:16,width:2.25,on:!1},{symbol:\"z\",value:90,width:1,on:!1},{symbol:\"x\",value:88,width:1,on:!1},{symbol:\"c\",value:67,width:1,on:!1},{symbol:\"v\",value:86,width:1,on:!1},{symbol:\"b\",value:66,width:1,on:!1},{symbol:\"n\",value:78,width:1,on:!1},{symbol:\"m\",value:77,width:1,on:!1},{symbol:\",\",value:188,width:1,on:!1},{symbol:\".\",value:190,width:1,on:!1},{symbol:\"/\",value:191,width:1,on:!1},{symbol:\"shift\",value:16,width:2.25,on:!1}],[{symbol:\"fn\",value:10,width:1,on:!1},{symbol:\"ctrl\",value:17,width:1,on:!1},{symbol:\"opt\",value:10,width:1,on:!1},{symbol:\"cmd\",value:10,width:1.25,on:!1},{symbol:\"space\",value:32,width:5,on:!1},{symbol:\"cmd\",value:10,width:1,on:!1},{symbol:\"opt\",value:10,width:1,on:!1},{symbol:\"left\",value:37,width:.81,on:!1},{symbol:\"up\",value:38,width:.81,on:!1},{symbol:\"down\",value:40,width:.81,on:!1},{symbol:\"right\",value:39,width:.81,on:!1}]],this.boundType=this.typekey.bind(this),this.boundUntype=this.untype.bind(this),window.addEventListener(\"keydown\",this.boundType),window.addEventListener(\"keyup\",this.boundUntype),this.init()};util.inherits(typewriter,widget),typewriter.prototype.init=function(){this.keywid=this.GUI.w/14.5,this.keyhgt=this.GUI.h/5,this.draw()},typewriter.prototype.draw=function(){with(this.erase(),this.active?this.context.globalAlpha=1:this.context.globalAlpha=.4,this.context){strokeStyle=this.colors.borderhl,fillStyle=this.colors.accent,lineWidth=1;for(var i=0;i<this.rows.length;i++)for(var currkeyL=0,j=0;j<this.rows[i].length;j++)this.val.key==this.rows[i][j].symbol&&(this.val.on?this.rows[i][j].on=!0:this.rows[i][j].on=!1),drawing.makeRoundRect(this.context,currkeyL,i*this.keyhgt,this.keywid*this.rows[i][j].width,this.keyhgt,4),this.rows[i][j].on?(fillStyle=this.colors.accent,strokeStyle=this.colors.accent,fill(),stroke()):(fillStyle=this.colors.fill,strokeStyle=this.colors.borderhl,fill(),stroke()),currkeyL+=this.keywid*this.rows[i][j].width;this.val.on&&(this.setFont(),fillStyle=this.colors.borderhl,font=this.GUI.h+\"px \"+this.font,fillText(this.val.key,this.GUI.w/2,this.GUI.h/2),globalAlpha=1),this.active||(globalAlpha=.7,fillStyle=this.colors.borderhl,font=this.GUI.h/2+\"px courier\",textAlign=\"center\",textBaseline=\"middle\",fillText(\"inactive\",this.GUI.w/2,this.GUI.h/2))}this.drawLabel()},typewriter.prototype.click=function(t){this.active=!this.active,this.draw()},typewriter.prototype.typekey=function(t){if(this.active){for(var e=t.which,i=0;i<this.rows.length;i++)for(var s=0;s<this.rows[i].length;s++)if(e==this.rows[i][s].value){this.val.key=this.rows[i][s].symbol,this.val.on=1,this.val.ascii=t.which,this.transmit(this.val);break}this.draw()}},typewriter.prototype.untype=function(t){if(this.active){for(var e=t.which,i=0;i<this.rows.length;i++)for(var s=0;s<this.rows[i].length;s++)if(e==this.rows[i][s].value){this.val.key=this.rows[i][s].symbol,this.val.on=0,this.val.ascii=t.which,this.transmit(this.val);break}this.draw()}},typewriter.prototype.customDestroy=function(){window.removeEventListener(\"keydown\",this.boundType),window.removeEventListener(\"keyup\",this.boundUntype)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),vinyl=module.exports=function(t){this.defaultSize={width:100,height:100},widget.call(this,t),this.circleSize,this.speed=.05,this.defaultspeed=.05,this.rotation=0,this.hasMovedOnce=!1,this.lockResize=!0,this.val={speed:0},this.init(),nx.aniItems.push(this.spin.bind(this))};util.inherits(vinyl,widget),vinyl.prototype.init=function(){this.circleSize=Math.min(this.center.x,this.center.y)-this.lineWidth,this.draw()},vinyl.prototype.draw=function(){with(this.erase(),this.context)strokeStyle=this.colors.border,fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),beginPath(),fillStyle=this.colors.black,arc(this.center.x,this.center.y,this.circleSize-5,0,2*Math.PI,!0),fill(),closePath(),beginPath(),fillStyle=this.colors.accent,arc(this.center.x,1*this.center.y,this.circleSize/4,0,2*Math.PI,!1),fill(),closePath(),beginPath(),globalAlpha=.5,fillStyle=this.colors.fill,arc(this.center.x,this.center.y,this.circleSize,this.rotation,this.rotation+.4,!1),lineTo(this.center.x,this.center.y),arc(this.center.x,this.center.y,this.circleSize,this.rotation+Math.PI,this.rotation+Math.PI+.4,!1),lineTo(this.center.x,this.center.y),fill(),globalAlpha=1,closePath(),beginPath(),fillStyle=this.colors.white,arc(this.center.x,1*this.center.y,this.circleSize/16,0,2*Math.PI,!1),fill(),closePath();this.drawLabel()},vinyl.prototype.click=function(t){this.hasMovedOnce=!1,this.lastRotation=this.rotation,this.grabAngle=this.rotation%(2*Math.PI),this.grabPos=math.toPolar(this.clickPos.x-this.center.x,this.clickPos.y-this.center.y).angle},vinyl.prototype.move=function(){this.hasMovedOnce||(this.hasMovedOnce=!0,this.grabAngle=this.rotation%(2*Math.PI),this.grabPos=math.toPolar(this.clickPos.x-this.center.x,this.clickPos.y-this.center.y).angle),this.rotation=math.toPolar(this.clickPos.x-this.center.x,this.clickPos.y-this.center.y).angle+this.grabAngle-this.grabPos},vinyl.prototype.release=function(){this.speed=(this.rotation-this.lastRotation+(this.lastRotation-this.lastRotation2))/2},vinyl.prototype.spin=function(){this.clicked?this.speed/=1.1:this.speed=.9*this.speed+.1*this.defaultspeed,this.val.speed=20*(this.rotation-this.lastRotation),this.lastRotation2=this.lastRotation,this.lastRotation=this.rotation,this.rotation+=this.speed,this.draw(),this.transmit(this.val)},vinyl.prototype.customDestroy=function(){nx.removeAni(this.spin.bind(this))}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),math=__webpack_require__(2),waveform=module.exports=function(t){this.defaultSize={width:400,height:125},widget.call(this,t),this.val={start:0,stop:0,size:0,starttime:0,stoptime:0,looptime:0},this.handle,this.relhandle,this.cap,this.firsttouch=\"start\",this.buffer=[],nx.isMobile?this.definition=3:this.definition=1,this.pieces=!1,this.channels=1,this.rawbuffer=[],this.times=[{dur:10,format:1},{dur:50,format:1},{dur:100,format:1},{dur:200,format:1},{dur:500,format:1},{dur:1e3,format:1},{dur:2e3,format:1},{dur:5e3,format:1},{dur:1e4,format:3},{dur:15e3,format:3},{dur:6e4,format:3},{dur:12e4,format:3},{dur:3e5,format:3},{dur:6e5,format:3}],this.timescale=!1,this.mode=\"area\",this.touchdown=new Object,this.init()};util.inherits(waveform,widget),waveform.prototype.init=function(){this.pieces=~~(this.GUI.w/this.definition),this.draw()},waveform.prototype.setBuffer=function(t){for(this.channels=t.numberOfChannels,this.duration=t.duration,this.sampleRate=t.sampleRate,this.waveHeight=this.GUI.h/this.channels,this.durationMS=1e3*this.duration,this.timescale=0;~~(this.durationMS/this.times[this.timescale].dur)>7&&this.timescale<this.times.length;)this.timescale++;this.timescale=this.times[this.timescale],this.rawbuffer=[],this.buffer=[];for(var e=0;e<this.channels;e++){this.rawbuffer.push(t.getChannelData(0)),this.buffer.push([]);for(var i=1+~~(this.rawbuffer[0].length/(5*this.sampleRate)),s=~~(this.rawbuffer[e].length/this.pieces),n=0,o=0,r=0,a=0;a<this.rawbuffer[e].length;a+=i)this.rawbuffer[e][a]>0?n=Math.max(n,this.rawbuffer[e][a]):o=Math.min(o,this.rawbuffer[e][a]),a>r*s&&(this.buffer[e].push([n,o]),r++,o=0,n=0)}this.val.start&&this.val.stop,this.val.starttime=Math.round(this.val.start*this.durationMS),this.val.stoptime=Math.round(this.val.stop*this.durationMS),this.val.looptime=Math.round(this.val.size*this.durationMS),this.draw()},waveform.prototype.select=function(t,e){this.val.start=math.clip(t/this.durationMS,0,1),this.val.stop=math.clip(e/this.durationMS,0,1),this.val.size=this.val.stop-this.val.start,this.val.starttime=t,this.val.stoptime=e,this.val.looptime=t-e,this.transmit(this.val),this.draw()},waveform.prototype.draw=function(){with(this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h);for(var i=0;i<this.buffer.length;i++){fillStyle=this.colors.black,this.waveTop=i*this.waveHeight,this.waveCenter=this.waveTop+this.waveHeight/2;for(var j=0;j<this.buffer[i].length;j++){var ht1=this.waveCenter-this.buffer[i][j][0]*this.waveHeight,ht2=this.waveCenter+Math.abs(this.buffer[i][j][1]*this.waveHeight);ht2-=ht1,fillRect(j*this.definition,ht1,this.definition,ht2)}this.buffer[i]}if(globalAlpha=.3,fillStyle=this.colors.border,fillRect(0,0,this.GUI.w,16),globalAlpha=1,textBaseline=\"middle\",textAlign=\"left\",fontSize=\"8px\",this.timescale)for(var i=1;i<this.durationMS/this.timescale.dur;i++){var x=i*this.timescale.dur/this.durationMS;x*=this.GUI.w,fillStyle=this.colors.border,fillRect(x,0,1,this.GUI.h),fillStyle=this.colors.black,globalAlpha=.6,fillText(this.msToTime(i*this.timescale.dur,this.timescale.format),x+5,8),globalAlpha=1}var x1=this.val.start*this.GUI.w,y1=0,x2=this.val.stop*this.GUI.w,y2=this.GUI.h;if(fillStyle=this.colors.accent,strokeStyle=this.colors.accent,lineWidth=2,globalAlpha=.3,fillRect(x1,0,x2-x1,y2-0),globalAlpha=.7,strokeRect(x1,-2,x2-x1,y2-0+4),this.durationMS&&this.val.looptime){this.val.size=this.val.stop-this.val.start,textAlign=\"center\";var dur=this.val.looptime;dur>1e3?(dur/=1e3,math.prune(dur,2),dur+=\" s\"):(math.prune(dur,0),dur+=\" ms\"),fillText(dur,x1+(x2-x1)/2,this.GUI.h/2)}globalAlpha=1}},waveform.prototype.msToTime=function(t,e){var e=e||2,i=~~(t/1e3),s=i%60;i=(i-s)/60;var n=i%60,o=t%1e3;return s=s<10&&n?s+\"0\":s,1==e?s+\".\"+o:2==e?n+\":\"+s+\".\"+o:3==e?n+\":\"+s:void 0},waveform.prototype.click=function(){\"edge\"==this.mode?Math.abs(this.clickPos.x-this.val.start*this.GUI.w)<Math.abs(this.clickPos.x-this.val.stop*this.GUI.w)?this.firsttouch=\"start\":this.firsttouch=\"stop\":\"area\"==this.mode&&(this.touchdown={x:this.clickPos.x,y:this.clickPos.y},this.startval=new Object,this.startval.size=this.val.stop-this.val.start,this.startval.loc=this.val.start+this.startval.size/2),this.move()},waveform.prototype.move=function(){if(\"edge\"==this.mode)\"start\"==this.firsttouch?(this.val.start=this.clickPos.x/this.GUI.w,this.clickPos.touches.length>1&&(this.val.stop=this.clickPos.touches[1].x/this.GUI.w)):(this.val.stop=this.clickPos.x/this.GUI.w,this.clickPos.touches.length>1&&(this.val.start=this.clickPos.touches[1].x/this.GUI.w)),this.val.stop<this.val.start&&(this.tempstart=this.val.start,this.val.start=this.val.stop,this.val.stop=this.tempstart,\"start\"==this.firsttouch?this.firsttouch=\"stop\":this.firsttouch=\"start\");else if(\"area\"==this.mode){var t=this.clickPos.x/this.GUI.w,e=(this.touchdown.y-this.clickPos.y)/this.GUI.h;e/=4;var i=this.startval.size+e;i=math.clip(i,.001,1),this.val={start:t-i/2,stop:t+i/2}}this.val.start=math.clip(this.val.start,0,1),this.val.stop=math.clip(this.val.stop,0,1),this.val.size=math.clip(Math.abs(this.val.stop-this.val.start),0,1),this.durationMS&&(this.val.starttime=Math.round(this.val.start*this.durationMS),this.val.stoptime=Math.round(this.val.stop*this.durationMS),this.val.looptime=Math.round(this.val.size*this.durationMS)),this.transmit(this.val),this.draw()}},function(t,e){function i(){throw new Error(\"setTimeout has not been defined\")}function s(){throw new Error(\"clearTimeout has not been defined\")}function n(t){if(c===setTimeout)return setTimeout(t,0);if((c===i||!c)&&setTimeout)return c=setTimeout,setTimeout(t,0);try{return c(t,0)}catch(e){try{return c.call(null,t,0)}catch(e){return c.call(this,t,0)}}}function o(t){if(u===clearTimeout)return clearTimeout(t);if((u===s||!u)&&clearTimeout)return u=clearTimeout,clearTimeout(t);try{return u(t)}catch(e){try{return u.call(null,t)}catch(e){return u.call(this,t)}}}function r(){y&&d&&(y=!1,d.length?f=d.concat(f):_=-1,f.length&&a())}function a(){if(!y){var t=n(r);y=!0;for(var e=f.length;e;){for(d=f,f=[];++_<e;)d&&d[_].run();_=-1,e=f.length}d=null,y=!1,o(t)}}function h(t,e){this.fun=t,this.array=e}function l(){}var c,u,p=t.exports={};!function(){try{c=\"function\"==typeof setTimeout?setTimeout:i}catch(t){c=i}try{u=\"function\"==typeof clearTimeout?clearTimeout:s}catch(t){u=s}}();var d,f=[],y=!1,_=-1;p.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)e[i-1]=arguments[i];f.push(new h(t,e)),1!==f.length||y||n(a)},h.prototype.run=function(){this.fun.apply(null,this.array)},p.title=\"browser\",p.browser=!0,p.env={},p.argv=[],p.version=\"\",p.versions={},p.on=l,p.addListener=l,p.once=l,p.off=l,p.removeListener=l,p.removeAllListeners=l,p.emit=l,p.binding=function(t){throw new Error(\"process.binding is not supported\")},p.cwd=function(){return\"/\"},p.chdir=function(t){throw new Error(\"process.chdir is not supported\")},p.umask=function(){return 0}},function(t,e){\"function\"==typeof Object.create?t.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}},function(t,e){t.exports=function(t){return t&&\"object\"==typeof t&&\"function\"==typeof t.copy&&\"function\"==typeof t.fill&&\"function\"==typeof t.readUInt8}},function(t,e,i){var s;!function(){function n(t,e,i){return t.call.apply(t.bind,arguments)}function o(t,e,i){if(!t)throw Error();if(2<arguments.length){var s=Array.prototype.slice.call(arguments,2);return function(){var i=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(i,s),t.apply(e,i)}}return function(){return t.apply(e,arguments)}}function r(t,e,i){return r=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf(\"native code\")?n:o,r.apply(null,arguments)}function a(t,e){this.a=t,this.m=e||t,this.c=this.m.document}function h(t,e,i,s){if(e=t.c.createElement(e),i)for(var n in i)i.hasOwnProperty(n)&&(\"style\"==n?e.style.cssText=i[n]:e.setAttribute(n,i[n]));return s&&e.appendChild(t.c.createTextNode(s)),e}function l(t,e,i){t=t.c.getElementsByTagName(e)[0],t||(t=document.documentElement),t.insertBefore(i,t.lastChild)}function c(t){t.parentNode&&t.parentNode.removeChild(t)}function u(t,e,i){e=e||[],i=i||[];for(var s=t.className.split(/\\s+/),n=0;n<e.length;n+=1){for(var o=!1,r=0;r<s.length;r+=1)if(e[n]===s[r]){o=!0;break}o||s.push(e[n])}for(e=[],n=0;n<s.length;n+=1){for(o=!1,r=0;r<i.length;r+=1)if(s[n]===i[r]){o=!0;break}o||e.push(s[n])}t.className=e.join(\" \").replace(/\\s+/g,\" \").replace(/^\\s+|\\s+$/,\"\")}function p(t,e){for(var i=t.className.split(/\\s+/),s=0,n=i.length;s<n;s++)if(i[s]==e)return!0;return!1}function d(t){if(\"string\"==typeof t.f)return t.f;var e=t.m.location.protocol;return\"about:\"==e&&(e=t.a.location.protocol),\"https:\"==e?\"https:\":\"http:\"}function f(t){return t.m.location.hostname||t.a.location.hostname}function y(t,e,i){function s(){a&&n&&o&&(a(r),a=null)}e=h(t,\"link\",{rel:\"stylesheet\",href:e,media:\"all\"});var n=!1,o=!0,r=null,a=i||null;at?(e.onload=function(){n=!0,s()},e.onerror=function(){n=!0,r=Error(\"Stylesheet failed to load\"),s()}):setTimeout(function(){n=!0,s()},0),l(t,\"head\",e)}function _(t,e,i,s){var n=t.c.getElementsByTagName(\"head\")[0];if(n){var o=h(t,\"script\",{src:e}),r=!1;return o.onload=o.onreadystatechange=function(){r||this.readyState&&\"loaded\"!=this.readyState&&\"complete\"!=this.readyState||(r=!0,i&&i(null),o.onload=o.onreadystatechange=null,\"HEAD\"==o.parentNode.tagName&&n.removeChild(o))},n.appendChild(o),setTimeout(function(){r||(r=!0,i&&i(Error(\"Script load timeout\")))},s||5e3),o}return null}function m(){this.a=0,this.c=null}function v(t){return t.a++,function(){t.a--,w(t)}}function g(t,e){t.c=e,w(t)}function w(t){0==t.a&&t.c&&(t.c(),t.c=null)}function b(t){this.a=t||\"-\"}function x(t,e){this.c=t,this.f=4,this.a=\"n\";var i=(e||\"n4\").match(/^([nio])([1-9])$/i);i&&(this.a=i[1],this.f=parseInt(i[2],10))}function S(t){return P(t)+\" \"+t.f+\"00 300px \"+T(t.c)}function T(t){var e=[];t=t.split(/,\\s*/);for(var i=0;i<t.length;i++){var s=t[i].replace(/['\"]/g,\"\");-1!=s.indexOf(\" \")||/^\\d/.test(s)?e.push(\"'\"+s+\"'\"):e.push(s)}return e.join(\",\")}function k(t){return t.a+t.f}function P(t){var e=\"normal\";return\"o\"===t.a?e=\"oblique\":\"i\"===t.a&&(e=\"italic\"),e}function O(t){var e=4,i=\"n\",s=null;return t&&((s=t.match(/(normal|oblique|italic)/i))&&s[1]&&(i=s[1].substr(0,1).toLowerCase()),(s=t.match(/([1-9]00|normal|bold)/i))&&s[1]&&(/bold/i.test(s[1])?e=7:/[1-9]00/.test(s[1])&&(e=parseInt(s[1].substr(0,1),10)))),i+e}function A(t,e){this.c=t,this.f=t.m.document.documentElement,this.h=e,this.a=new b(\"-\"),this.j=!1!==e.events,this.g=!1!==e.classes}function M(t){t.g&&u(t.f,[t.a.c(\"wf\",\"loading\")]),q(t,\"loading\")}function I(t){if(t.g){var e=p(t.f,t.a.c(\"wf\",\"active\")),i=[],s=[t.a.c(\"wf\",\"loading\")];e||i.push(t.a.c(\"wf\",\"inactive\")),u(t.f,i,s)}q(t,\"inactive\")}function q(t,e,i){t.j&&t.h[e]&&(i?t.h[e](i.c,k(i)):t.h[e]())}function E(){this.c={}}function F(t,e,i){var s,n=[];for(s in e)if(e.hasOwnProperty(s)){var o=t.c[s];o&&n.push(o(e[s],i))}return n}function U(t,e){this.c=t,this.f=e,this.a=h(this.c,\"span\",{\"aria-hidden\":\"true\"},this.f)}function G(t){l(t.c,\"body\",t.a)}function R(t){return\"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:\"+T(t.c)+\";font-style:\"+P(t)+\";font-weight:\"+t.f+\"00;\"}function C(t,e,i,s,n,o){this.g=t,this.j=e,this.a=s,this.c=i,this.f=n||3e3,this.h=o||void 0}function j(t,e,i,s,n,o,r){this.v=t,this.B=e,this.c=i,this.a=s,this.s=r||\"BESbswy\",this.f={},this.w=n||3e3,this.u=o||null,this.o=this.j=this.h=this.g=null,this.g=new U(this.c,this.s),this.h=new U(this.c,this.s),this.j=new U(this.c,this.s),this.o=new U(this.c,this.s),t=new x(this.a.c+\",serif\",k(this.a)),t=R(t),this.g.a.style.cssText=t,t=new x(this.a.c+\",sans-serif\",k(this.a)),t=R(t),this.h.a.style.cssText=t,t=new x(\"serif\",k(this.a)),t=R(t),this.j.a.style.cssText=t,t=new x(\"sans-serif\",k(this.a)),t=R(t),this.o.a.style.cssText=t,G(this.g),G(this.h),G(this.j),G(this.o)}function L(){if(null===lt){var t=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent);lt=!!t&&(536>parseInt(t[1],10)||536===parseInt(t[1],10)&&11>=parseInt(t[2],10))}return lt}function z(t,e,i){for(var s in ht)if(ht.hasOwnProperty(s)&&e===t.f[ht[s]]&&i===t.f[ht[s]])return!0;return!1}function B(t){var e,i=t.g.a.offsetWidth,s=t.h.a.offsetWidth;(e=i===t.f.serif&&s===t.f[\"sans-serif\"])||(e=L()&&z(t,i,s)),e?rt()-t.A>=t.w?L()&&z(t,i,s)&&(null===t.u||t.u.hasOwnProperty(t.a.c))?N(t,t.v):N(t,t.B):D(t):N(t,t.v)}function D(t){setTimeout(r(function(){B(this)},t),50)}function N(t,e){setTimeout(r(function(){c(this.g.a),c(this.h.a),c(this.j.a),c(this.o.a),e(this.a)},t),0)}function W(t,e,i){this.c=t,this.a=e,this.f=0,this.o=this.j=!1,this.s=i}function V(t){0==--t.f&&t.j&&(t.o?(t=t.a,t.g&&u(t.f,[t.a.c(\"wf\",\"active\")],[t.a.c(\"wf\",\"loading\"),t.a.c(\"wf\",\"inactive\")]),q(t,\"active\")):I(t.a))}function X(t){this.j=t,this.a=new E,this.h=0,this.f=this.g=!0}function Q(t,e,i,s,n){var o=0==--t.h;(t.f||t.g)&&setTimeout(function(){var t=n||null,a=s||null||{};if(0===i.length&&o)I(e.a);else{e.f+=i.length,o&&(e.j=o);var h,l=[];for(h=0;h<i.length;h++){var c=i[h],p=a[c.c],d=e.a,f=c;if(d.g&&u(d.f,[d.a.c(\"wf\",f.c,k(f).toString(),\"loading\")]),q(d,\"fontloading\",f),d=null,null===ct)if(window.FontFace){var f=/Gecko.*Firefox\\/(\\d+)/.exec(window.navigator.userAgent),y=/OS X.*Version\\/10\\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);ct=f?42<parseInt(f[1],10):!y}else ct=!1;d=ct?new C(r(e.g,e),r(e.h,e),e.c,c,e.s,p):new j(r(e.g,e),r(e.h,e),e.c,c,e.s,t,p),l.push(d)}for(h=0;h<l.length;h++)l[h].start()}},0)}function Y(t,e,i){var s=[],n=i.timeout;M(e);var s=F(t.a,i,t.c),o=new W(t.c,e,n);for(t.h=s.length,e=0,i=s.length;e<i;e++)s[e].load(function(e,i,s){Q(t,o,e,i,s)})}function H(t,e){this.c=t,this.a=e}function Z(t,e,i){var s=d(t.c);return t=(t.a.api||\"fast.fonts.net/jsapi\").replace(/^.*http(s?):(\\/\\/)?/,\"\"),s+\"//\"+t+\"/\"+e+\".js\"+(i?\"?v=\"+i:\"\")}function $(t,e){this.c=t,this.a=e}function J(t,e,i){this.c=t||e+ut,this.a=[],this.f=[],this.g=i||\"\"}function K(t,e){for(var i=e.length,s=0;s<i;s++){var n=e[s].split(\":\");3==n.length&&t.f.push(n.pop());var o=\"\";2==n.length&&\"\"!=n[1]&&(o=\":\"),t.a.push(n.join(o))}}function tt(t){if(0==t.a.length)throw Error(\"No fonts to load!\");if(-1!=t.c.indexOf(\"kit=\"))return t.c;for(var e=t.a.length,i=[],s=0;s<e;s++)i.push(t.a[s].replace(/ /g,\"+\"));return e=t.c+\"?family=\"+i.join(\"%7C\"),0<t.f.length&&(e+=\"&subset=\"+t.f.join(\",\")),0<t.g.length&&(e+=\"&text=\"+encodeURIComponent(t.g)),e}function et(t){this.f=t,this.a=[],this.c={}}function it(t){for(var e=t.f.length,i=0;i<e;i++){var s=t.f[i].split(\":\"),n=s[0].replace(/\\+/g,\" \"),o=[\"n4\"];if(2<=s.length){var r,a=s[1];if(r=[],a)for(var a=a.split(\",\"),h=a.length,l=0;l<h;l++){var c;if(c=a[l],c.match(/^[\\w-]+$/)){var u=yt.exec(c.toLowerCase());if(null==u)c=\"\";else{if(c=u[2],c=null==c||\"\"==c?\"n\":ft[c],null==(u=u[1])||\"\"==u)u=\"4\";else var p=dt[u],u=p||(isNaN(u)?\"4\":u.substr(0,1));c=[c,u].join(\"\")}}else c=\"\";c&&r.push(c)}0<r.length&&(o=r),3==s.length&&(s=s[2],r=[],s=s?s.split(\",\"):r,0<s.length&&(s=pt[s[0]])&&(t.c[n]=s))}for(t.c[n]||(s=pt[n])&&(t.c[n]=s),s=0;s<o.length;s+=1)t.a.push(new x(n,o[s]))}}function st(t,e){this.c=t,this.a=e}function nt(t,e){this.c=t,this.a=e}function ot(t,e){this.c=t,this.f=e,this.a=[]}var rt=Date.now||function(){return+new Date},at=!!window.FontFace;b.prototype.c=function(t){for(var e=[],i=0;i<arguments.length;i++)e.push(arguments[i].replace(/[\\W_]+/g,\"\").toLowerCase());return e.join(this.a)},C.prototype.start=function(){var t=this.c.m.document,e=this,i=rt(),s=new Promise(function(s,n){function o(){rt()-i>=e.f?n():t.fonts.load(S(e.a),e.h).then(function(t){1<=t.length?s():setTimeout(o,25)},function(){n()})}o()}),n=new Promise(function(t,i){setTimeout(i,e.f)});Promise.race([n,s]).then(function(){e.g(e.a)},function(){e.j(e.a)})};var ht={D:\"serif\",C:\"sans-serif\"},lt=null;j.prototype.start=function(){this.f.serif=this.j.a.offsetWidth,this.f[\"sans-serif\"]=this.o.a.offsetWidth,this.A=rt(),B(this)};var ct=null;W.prototype.g=function(t){var e=this.a;e.g&&u(e.f,[e.a.c(\"wf\",t.c,k(t).toString(),\"active\")],[e.a.c(\"wf\",t.c,k(t).toString(),\"loading\"),e.a.c(\"wf\",t.c,k(t).toString(),\"inactive\")]),q(e,\"fontactive\",t),this.o=!0,V(this)},W.prototype.h=function(t){var e=this.a;if(e.g){var i=p(e.f,e.a.c(\"wf\",t.c,k(t).toString(),\"active\")),s=[],n=[e.a.c(\"wf\",t.c,k(t).toString(),\"loading\")];i||s.push(e.a.c(\"wf\",t.c,k(t).toString(),\"inactive\")),u(e.f,s,n)}q(e,\"fontinactive\",t),V(this)},X.prototype.load=function(t){this.c=new a(this.j,t.context||this.j),this.g=!1!==t.events,this.f=!1!==t.classes,Y(this,new A(this.c,t),t)},H.prototype.load=function(t){function e(){if(o[\"__mti_fntLst\"+s]){var i,n=o[\"__mti_fntLst\"+s](),r=[];if(n)for(var a=0;a<n.length;a++){var h=n[a].fontfamily;void 0!=n[a].fontStyle&&void 0!=n[a].fontWeight?(i=n[a].fontStyle+n[a].fontWeight,r.push(new x(h,i))):r.push(new x(h))}t(r)}else setTimeout(function(){e()},50)}var i=this,s=i.a.projectId,n=i.a.version;if(s){var o=i.c.m;_(this.c,Z(i,s,n),function(n){n?t([]):(o[\"__MonotypeConfiguration__\"+s]=function(){return i.a},e())}).id=\"__MonotypeAPIScript__\"+s}else t([])},$.prototype.load=function(t){var e,i,s=this.a.urls||[],n=this.a.families||[],o=this.a.testStrings||{},r=new m;for(e=0,i=s.length;e<i;e++)y(this.c,s[e],v(r));var a=[];for(e=0,i=n.length;e<i;e++)if(s=n[e].split(\":\"),s[1])for(var h=s[1].split(\",\"),l=0;l<h.length;l+=1)a.push(new x(s[0],h[l]));else a.push(new x(s[0]));g(r,function(){t(a,o)})};var ut=\"//fonts.googleapis.com/css\",pt={latin:\"BESbswy\",\"latin-ext\":\"çöüğş\",cyrillic:\"йяЖ\",greek:\"αβΣ\",khmer:\"កខគ\",Hanuman:\"កខគ\"},dt={thin:\"1\",extralight:\"2\",\"extra-light\":\"2\",ultralight:\"2\",\"ultra-light\":\"2\",light:\"3\",regular:\"4\",book:\"4\",medium:\"5\",\"semi-bold\":\"6\",semibold:\"6\",\"demi-bold\":\"6\",demibold:\"6\",bold:\"7\",\"extra-bold\":\"8\",extrabold:\"8\",\"ultra-bold\":\"8\",ultrabold:\"8\",black:\"9\",heavy:\"9\",l:\"3\",r:\"4\",b:\"7\"},ft={i:\"i\",italic:\"i\",n:\"n\",normal:\"n\"},yt=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/,_t={Arimo:!0,Cousine:!0,Tinos:!0};st.prototype.load=function(t){var e=new m,i=this.c,s=new J(this.a.api,d(i),this.a.text),n=this.a.families;K(s,n);var o=new et(n);it(o),y(i,tt(s),v(e)),g(e,function(){t(o.a,o.c,_t)})},nt.prototype.load=function(t){var e=this.a.id,i=this.c.m;e?_(this.c,(this.a.api||\"https://use.typekit.net\")+\"/\"+e+\".js\",function(e){if(e)t([]);else if(i.Typekit&&i.Typekit.config&&i.Typekit.config.fn){e=i.Typekit.config.fn;for(var s=[],n=0;n<e.length;n+=2)for(var o=e[n],r=e[n+1],a=0;a<r.length;a++)s.push(new x(o,r[a]));try{i.Typekit.load({events:!1,classes:!1,async:!0})}catch(t){}t(s)}},2e3):t([])},ot.prototype.load=function(t){var e=this.f.id,i=this.c.m,s=this;e?(i.__webfontfontdeckmodule__||(i.__webfontfontdeckmodule__={}),i.__webfontfontdeckmodule__[e]=function(e,i){for(var n=0,o=i.fonts.length;n<o;++n){var r=i.fonts[n];s.a.push(new x(r.name,O(\"font-weight:\"+r.weight+\";font-style:\"+r.style)))}t(s.a)},_(this.c,d(this.c)+(this.f.api||\"//f.fontdeck.com/s/css/js/\")+f(this.c)+\"/\"+e+\".js\",function(e){e&&t([])})):t([])};var mt=new X(window);mt.a.c.custom=function(t,e){return new $(e,t)},mt.a.c.fontdeck=function(t,e){return new ot(e,t)},mt.a.c.monotype=function(t,e){return new H(e,t)},mt.a.c.typekit=function(t,e){return new nt(e,t)},mt.a.c.google=function(t,e){return new st(e,t)};var vt={load:r(mt.load,mt)};void 0!==(s=function(){return vt}.call(e,i,e,t))&&(t.exports=s)}()},function(t,e){var i;i=function(){return this}();try{i=i||Function(\"return this\")()||(0,eval)(\"this\")}catch(t){\"object\"==typeof window&&(i=window)}t.exports=i}]);\n\n\n// WEBPACK FOOTER //\n// ./bundle.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"./bundle.js","sources":["webpack:///./bundle.js"],"sourcesContent":["!function(t){function e(s){if(i[s])return i[s].exports;var n=i[s]={i:s,l:!1,exports:{}};return t[s].call(n.exports,n,n.exports,e),n.l=!0,n.exports}var i={};e.m=t,e.c=i,e.i=function(t){return t},e.d=function(t,i,s){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:s})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,\"a\",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=15)}([function(t,e,i){(function(t,s){function n(t,i){var s={seen:[],stylize:r};return arguments.length>=3&&(s.depth=arguments[2]),arguments.length>=4&&(s.colors=arguments[3]),y(i)?s.showHidden=i:i&&e._extend(s,i),b(s.showHidden)&&(s.showHidden=!1),b(s.depth)&&(s.depth=2),b(s.colors)&&(s.colors=!1),b(s.customInspect)&&(s.customInspect=!0),s.colors&&(s.stylize=o),h(s,t,s.depth)}function o(t,e){var i=n.styles[e];return i?\"\u001b[\"+n.colors[i][0]+\"m\"+t+\"\u001b[\"+n.colors[i][1]+\"m\":t}function r(t,e){return t}function a(t){var e={};return t.forEach(function(t,i){e[t]=!0}),e}function h(t,i,s){if(t.customInspect&&i&&P(i.inspect)&&i.inspect!==e.inspect&&(!i.constructor||i.constructor.prototype!==i)){var n=i.inspect(s,t);return g(n)||(n=h(t,n,s)),n}var o=l(t,i);if(o)return o;var r=Object.keys(i),y=a(r);if(t.showHidden&&(r=Object.getOwnPropertyNames(i)),k(i)&&(r.indexOf(\"message\")>=0||r.indexOf(\"description\")>=0))return c(i);if(0===r.length){if(P(i)){var _=i.name?\": \"+i.name:\"\";return t.stylize(\"[Function\"+_+\"]\",\"special\")}if(x(i))return t.stylize(RegExp.prototype.toString.call(i),\"regexp\");if(T(i))return t.stylize(Date.prototype.toString.call(i),\"date\");if(k(i))return c(i)}var m=\"\",v=!1,w=[\"{\",\"}\"];if(f(i)&&(v=!0,w=[\"[\",\"]\"]),P(i)){m=\" [Function\"+(i.name?\": \"+i.name:\"\")+\"]\"}if(x(i)&&(m=\" \"+RegExp.prototype.toString.call(i)),T(i)&&(m=\" \"+Date.prototype.toUTCString.call(i)),k(i)&&(m=\" \"+c(i)),0===r.length&&(!v||0==i.length))return w[0]+m+w[1];if(s<0)return x(i)?t.stylize(RegExp.prototype.toString.call(i),\"regexp\"):t.stylize(\"[Object]\",\"special\");t.seen.push(i);var b;return b=v?u(t,i,s,y,r):r.map(function(e){return p(t,i,s,y,e,v)}),t.seen.pop(),d(b,m,w)}function l(t,e){if(b(e))return t.stylize(\"undefined\",\"undefined\");if(g(e)){var i=\"'\"+JSON.stringify(e).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return t.stylize(i,\"string\")}return v(e)?t.stylize(\"\"+e,\"number\"):y(e)?t.stylize(\"\"+e,\"boolean\"):_(e)?t.stylize(\"null\",\"null\"):void 0}function c(t){return\"[\"+Error.prototype.toString.call(t)+\"]\"}function u(t,e,i,s,n){for(var o=[],r=0,a=e.length;r<a;++r)q(e,String(r))?o.push(p(t,e,i,s,String(r),!0)):o.push(\"\");return n.forEach(function(n){n.match(/^\\d+$/)||o.push(p(t,e,i,s,n,!0))}),o}function p(t,e,i,s,n,o){var r,a,l;if(l=Object.getOwnPropertyDescriptor(e,n)||{value:e[n]},l.get?a=l.set?t.stylize(\"[Getter/Setter]\",\"special\"):t.stylize(\"[Getter]\",\"special\"):l.set&&(a=t.stylize(\"[Setter]\",\"special\")),q(s,n)||(r=\"[\"+n+\"]\"),a||(t.seen.indexOf(l.value)<0?(a=_(i)?h(t,l.value,null):h(t,l.value,i-1),a.indexOf(\"\\n\")>-1&&(a=o?a.split(\"\\n\").map(function(t){return\" \"+t}).join(\"\\n\").substr(2):\"\\n\"+a.split(\"\\n\").map(function(t){return\" \"+t}).join(\"\\n\"))):a=t.stylize(\"[Circular]\",\"special\")),b(r)){if(o&&n.match(/^\\d+$/))return a;r=JSON.stringify(\"\"+n),r.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)?(r=r.substr(1,r.length-2),r=t.stylize(r,\"name\")):(r=r.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),r=t.stylize(r,\"string\"))}return r+\": \"+a}function d(t,e,i){var s=0;return t.reduce(function(t,e){return s++,e.indexOf(\"\\n\")>=0&&s++,t+e.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1},0)>60?i[0]+(\"\"===e?\"\":e+\"\\n \")+\" \"+t.join(\",\\n \")+\" \"+i[1]:i[0]+e+\" \"+t.join(\", \")+\" \"+i[1]}function f(t){return Array.isArray(t)}function y(t){return\"boolean\"==typeof t}function _(t){return null===t}function m(t){return null==t}function v(t){return\"number\"==typeof t}function g(t){return\"string\"==typeof t}function w(t){return\"symbol\"==typeof t}function b(t){return void 0===t}function x(t){return S(t)&&\"[object RegExp]\"===A(t)}function S(t){return\"object\"==typeof t&&null!==t}function T(t){return S(t)&&\"[object Date]\"===A(t)}function k(t){return S(t)&&(\"[object Error]\"===A(t)||t instanceof Error)}function P(t){return\"function\"==typeof t}function O(t){return null===t||\"boolean\"==typeof t||\"number\"==typeof t||\"string\"==typeof t||\"symbol\"==typeof t||void 0===t}function A(t){return Object.prototype.toString.call(t)}function M(t){return t<10?\"0\"+t.toString(10):t.toString(10)}function I(){var t=new Date,e=[M(t.getHours()),M(t.getMinutes()),M(t.getSeconds())].join(\":\");return[t.getDate(),U[t.getMonth()],e].join(\" \")}function q(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.format=function(t){if(!g(t)){for(var e=[],i=0;i<arguments.length;i++)e.push(n(arguments[i]));return e.join(\" \")}for(var i=1,s=arguments,o=s.length,r=String(t).replace(/%[sdj%]/g,function(t){if(\"%%\"===t)return\"%\";if(i>=o)return t;switch(t){case\"%s\":return String(s[i++]);case\"%d\":return Number(s[i++]);case\"%j\":try{return JSON.stringify(s[i++])}catch(t){return\"[Circular]\"}default:return t}}),a=s[i];i<o;a=s[++i])_(a)||!S(a)?r+=\" \"+a:r+=\" \"+n(a);return r},e.deprecate=function(i,n){function o(){if(!r){if(s.throwDeprecation)throw new Error(n);s.traceDeprecation?console.trace(n):console.error(n),r=!0}return i.apply(this,arguments)}if(b(t.process))return function(){return e.deprecate(i,n).apply(this,arguments)};if(!0===s.noDeprecation)return i;var r=!1;return o};var E,F={};e.debuglog=function(t){if(b(E)&&(E=s.env.NODE_DEBUG||\"\"),t=t.toUpperCase(),!F[t])if(new RegExp(\"\\\\b\"+t+\"\\\\b\",\"i\").test(E)){var i=s.pid;F[t]=function(){var s=e.format.apply(e,arguments);console.error(\"%s %d: %s\",t,i,s)}}else F[t]=function(){};return F[t]},e.inspect=n,n.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},n.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},e.isArray=f,e.isBoolean=y,e.isNull=_,e.isNullOrUndefined=m,e.isNumber=v,e.isString=g,e.isSymbol=w,e.isUndefined=b,e.isRegExp=x,e.isObject=S,e.isDate=T,e.isError=k,e.isFunction=P,e.isPrimitive=O,e.isBuffer=i(53);var U=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];e.log=function(){console.log(\"%s - %s\",I(),e.format.apply(e,arguments))},e.inherits=i(52),e._extend=function(t,e){if(!e||!S(e))return t;for(var i=Object.keys(e),s=i.length;s--;)t[i[s]]=e[i[s]];return t}}).call(e,i(55),i(51))},function(module,exports,__webpack_require__){var EventEmitter=__webpack_require__(6).EventEmitter,util=__webpack_require__(0),domUtils=__webpack_require__(7),drawingUtils=__webpack_require__(3),timingUtils=__webpack_require__(8),transmit=__webpack_require__(9),widget=module.exports=function(t){if(EventEmitter.apply(this),this.preClick=this.preClick.bind(this),this.preMove=this.preMove.bind(this),this.preRelease=this.preRelease.bind(this),this.preTouch=this.preTouch.bind(this),this.preTouchMove=this.preTouchMove.bind(this),this.preTouchRelease=this.preTouchRelease.bind(this),this.canvasID=t,this.oscPath=\"/\"+t,!document.getElementById(t)){var e=document.createElement(\"canvas\");e.id=t,document.body.appendChild(e)}if(this.type=void 0,this.canvas=document.getElementById(t),this.context=this.canvas.getContext(\"2d\"),this.checkPercentage(),this.canvas.className=this.canvas.className?this.canvas.className+=\" nx\":\"nx\",this.canvas.height=window.getComputedStyle(document.getElementById(t),null).getPropertyValue(\"height\").replace(\"px\",\"\"),this.canvas.width=window.getComputedStyle(document.getElementById(t),null).getPropertyValue(\"width\").replace(\"px\",\"\"),this.height=parseInt(window.getComputedStyle(document.getElementById(t),null).getPropertyValue(\"height\").replace(\"px\",\"\")),this.width=parseInt(window.getComputedStyle(document.getElementById(t),null).getPropertyValue(\"width\").replace(\"px\",\"\")),this.defaultSize||(this.defaultSize={width:100,height:100}),this.label=!1,this.labelSize=30,this.labelAlign=\"center\",this.labelFont=\"'Open Sans'\",null!=this.canvas.getAttribute(\"label\")&&(this.label=this.canvas.getAttribute(\"label\"),this.origDefaultHeight=this.defaultSize.height),this.label&&(this.defaultSize.height+=this.labelSize),300==this.width&&150==this.height)this.canvas.width=2*this.defaultSize.width,this.canvas.height=2*this.defaultSize.height,this.width=this.defaultSize.width,this.height=this.defaultSize.height;else{var i=this.width,s=this.height;this.canvas.width=2*i,this.canvas.height=2*s,this.width=i,this.height=s}this.canvas.style.width=this.canvas.width/2+\"px\",this.canvas.style.height=this.canvas.height/2+\"px\",this.context.scale(2,2),this.makeRoomForLabel(),this.offset=domUtils.findPosition(this.canvas),this.center={x:this.GUI.w/2,y:this.GUI.h/2},this.lineWidth=2,this.context.lineWidth=this.lineWidth,this.colors=new Object;for(var n in nx.colors)this.colors[n]=nx.colors[n];this.clickPos={x:0,y:0},this.clickPos.touches=new Array,this.clicked=!1,this.value=0,this.val=new Object,this.pval=new Object,this.nodePos=new Array,this.deltaMove=new Object,this.throttlePeriod=nx.throttlePeriod,this.throttle=timingUtils.throttle,this.hasMoved=!1,this.isRecording=!1,this.tapeNum=0,this.recorder=null,transmit&&(this.sendsTo=transmit.setWidgetTransmit,this.destination=\"js\"),this.events=new Object,nx.isTouchDevice?(this.canvas.ontouchstart=this.preTouch,this.canvas.ontouchmove=this.preTouchMove,this.canvas.ontouchend=this.preTouchRelease):this.canvas.addEventListener(\"mousedown\",this.preClick,!1),this.fontSize=nx.fontSize,this.fontWeight=nx.fontWeight,this.font=nx.font,this.clickCB=!1,this.releaseCB=!1,this.actuated=!0};util.inherits(widget,EventEmitter),widget.prototype.transmit=nx.transmit,widget.prototype.makeOSC=function(t,e){if(this.action=t,\"object\"==typeof e&&null!==e)for(var i in e)if(\"object\"==typeof e[i]&&null!==e[i])for(var s in e[i])this.action(i+\"/\"+s,e[i][s]);else this.action(i,e[i]);else\"number\"!=typeof e&&\"string\"!=typeof e||this.action(\"value\",e)},widget.prototype.getOffset=function(){this.offset=domUtils.findPosition(this.canvas)},widget.prototype.preClick=function(t){this.actuated=!0,this.offset=domUtils.findPosition(this.canvas),this.clickPos=domUtils.getCursorPosition(t,this.offset),document.addEventListener(\"mousemove\",this.preMove,!1),document.addEventListener(\"mouseup\",this.preRelease,!1),this.clicked=!0,this.deltaMove.x=0,this.deltaMove.y=0,this.hasMoved=!1,this.clickCB&&this.clickCB(),this.click(t),document.body.style.userSelect=\"none\",document.body.style.mozUserSelect=\"none\",document.body.style.webkitUserSelect=\"none\",document.body.style.cursor=\"pointer\"},widget.prototype.preMove=function(t){this.actuated=!0;var e=domUtils.getCursorPosition(t,this.offset);this.deltaMove.y=e.y-this.clickPos.y,this.deltaMove.x=e.x-this.clickPos.x,this.clickPos=e,this.hasMoved=!0,this.move(t)},widget.prototype.preRelease=function(t){this.actuated=!0,document.removeEventListener(\"mousemove\",this.preMove,!1),document.removeEventListener(\"mouseup\",this.preRelease,!1),this.clicked=!1,this.releaseCB&&this.releaseCB(),this.release(),document.body.style.userSelect=\"text\",document.body.style.mozUserSelect=\"text\",document.body.style.webkitUserSelect=\"text\",document.body.style.cursor=\"default\"},widget.prototype.preTouch=function(t){this.actuated=!0,this.clickPos=domUtils.getTouchPosition(t,this.offset),this.clicked=!0,this.deltaMove.x=0,this.deltaMove.y=0,this.hasMoved=!1,this.touch(t)},widget.prototype.preTouchMove=function(t){if(this.clicked){this.actuated=!0;var e=domUtils.getTouchPosition(t,this.offset);this.deltaMove.y=e.y-this.clickPos.y,this.deltaMove.x=e.x-this.clickPos.x,this.clickPos=e,this.hasMoved=!0,this.touchMove(t)}},widget.prototype.preTouchRelease=function(t){if(this.actuated=!0,t.targetTouches.length>=1){var e=domUtils.getTouchPosition(t,this.offset);this.clickPos=e}else this.clicked=!1;this.touchRelease()},widget.prototype.draw=function(){},widget.prototype.click=function(){},widget.prototype.move=function(){},widget.prototype.release=function(){},widget.prototype.touch=function(){this.click()},widget.prototype.touchMove=function(){this.move()},widget.prototype.touchRelease=function(){this.release()},widget.prototype.adjustSizeIfDefault=function(){300==this.width&&150==this.height&&(this.canvas.width=this.defaultSize.width,this.canvas.height=this.defaultSize.height,this.width=this.defaultSize.width,this.height=this.defaultSize.height)},widget.prototype.makeRoundedBG=function(){this.bgLeft=this.lineWidth,this.bgRight=this.width-this.lineWidth,this.bgTop=this.lineWidth,this.bgBottom=this.height-this.lineWidth,this.bgHeight=this.bgBottom-this.lineWidth,this.bgWidth=this.bgRight-this.lineWidth,drawingUtils.makeRoundRect(this.context,this.bgLeft,this.bgTop,this.bgWidth,this.bgHeight)},widget.prototype.erase=function(){this.context.clearRect(0,0,this.width,this.height)},widget.prototype.hideCursor=function(){this.canvas.style.cursor=\"none\"},widget.prototype.showCursor=function(){this.canvas.style.cursor=\"auto\"},widget.prototype.getName=function(){return\"deprecated -- use widget.type instead\"},widget.prototype.set=function(t,e){if(this.actuated=!1,\"object\"==typeof this.val&&\"null\"!==this.val){if(\"object\"==typeof t&&\"null\"!==t)for(var i in t)this.val[i]=t[i]}else\"string\"!=typeof this.val&&\"number\"!=typeof this.val||(\"object\"==typeof t&&\"null\"!==t?(this.val=t.value,this.draw()):\"string\"!=typeof t&&\"number\"!=typeof t||(this.val=t));this.draw(),e&&this.transmit(this.val,!0)},widget.prototype.destroy=function(){var t=nx.elemTypeArr.indexOf(this.getName());nx.elemTypeArr.splice(t,1),this.canvas.ontouchmove=null,this.canvas.ontouchend=null,this.canvas.onclick=null,this.canvas.onmousemove=null,this.canvas.onmouseoff=null,document.removeEventListener(\"mousemove\",this.preMove,!1),document.removeEventListener(\"mouseup\",this.preRelease,!1);var e=document.getElementById(this.canvasID);e&&e.parentNode.removeChild(e),this.customDestroy();var i=this.canvasID;delete nx.widgets[i],delete window[i]},widget.prototype.customDestroy=function(){},widget.prototype.wrapText=function(t,e,i,s,n){if(t){for(var o=t.split(\" \"),r=\"\",a=0;a<o.length;a++){var h=r+o[a]+\" \";this.context.measureText(h).width>s&&a>0?(this.context.fillText(r,e,i),r=o[a]+\" \",i+=n):r=h}this.context.fillText(r,e,i)}},widget.prototype.drawLabel=function(){if(this.label)with(this.context)fillStyle=this.colors.black,textAlign=\"center\",textBaseline=\"middle\",font=this.labelSize/2.8+\"px \"+this.labelFont+\" normal\",fillText(this.label,this.width/2,this.labelY)},widget.prototype.saveCanv=function(){var t=this.canvas.toDataURL(\"image/png\").replace(\"image/png\",\"image/octet-stream\");window.location.href=t},widget.prototype.setFont=function(){with(this.context)textAlign=\"center\",font=this.fontWeight+\" \"+this.fontSize+\"px \"+this.font,fillStyle=this.colors.black,globalAlpha=1},widget.prototype.checkPercentage=function(){var t=this.canvas.style.width,e=this.canvas.style.height;(t.indexOf(\"%\")>=0||e.indexOf(\"%\")>=0)&&(this.percent={w:t.indexOf(\"%\")>=0&&t.replace(\"%\",\"\"),h:e.indexOf(\"%\")>=0&&e.replace(\"%\",\"\")},this.stretch())},widget.prototype.stretch=function(){window.addEventListener(\"resize\",function(t){if(this.percent.w){var e=window.getComputedStyle(this.canvas.parentNode,null).getPropertyValue(\"width\").replace(\"px\",\"\");e*=this.percent.w/100}else var e=!1;if(this.percent.h){var i=window.getComputedStyle(this.canvas.parentNode,null).getPropertyValue(\"height\").replace(\"px\",\"\");i*=this.percent.h/100}else var i=!1;this.resize(e,i)}.bind(this))},widget.prototype.resize=function(t,e){this.canvas.width=t?2*t:this.canvas.width,this.canvas.height=e?2*e:this.canvas.height,this.width=t||this.width,this.height=e||this.height,this.canvas.style.width=this.width+\"px\",this.canvas.style.height=this.height+\"px\",this.context.scale(2,2),this.center={x:this.GUI.w/2,y:this.GUI.h/2},this.makeRoomForLabel(),this.init(),this.draw()},widget.prototype.normalize=function(t){return nx.scale(t,this.min,this.max,0,1)},widget.prototype.rangify=function(t){return nx.scale(t,0,1,this.min,this.max)},widget.prototype.makeRoomForLabel=function(){this.GUI={w:this.width,h:this.label?this.height-this.labelSize:this.height},this.labelY=this.height-this.labelSize/2}},function(t,e){e.toPolar=function(t,e){var i=Math.sqrt(t*t+e*e),s=Math.atan2(e,t);return s<0&&(s+=2*Math.PI),{radius:i,angle:s}},e.toCartesian=function(t,e){return{x:t*Math.cos(e),y:t*Math.sin(e)*-1}},e.clip=function(t,e,i){return Math.min(i,Math.max(e,t))},e.prune=function(t,e){if(\"number\"==typeof t)t=parseFloat(t.toFixed(e));else if(t instanceof Array)for(var i=0;i<t.length;i++)\"number\"==typeof t[i]&&(t[i]=parseFloat(t[i].toFixed(e)));return t},e.scale=function(t,e,i,s,n){return(t-e)*(n-s)/(i-e)+s},e.invert=function(t){return e.scale(t,1,0,0,1)},e.bounce=function(t,e,i,s){return t>e&&t<i?s:t<=e?Math.abs(s):t>=i?-1*Math.abs(s):void 0},e.mtof=function(t){return 440*Math.pow(2,(t-69)/12)},e.random=function(t){return Math.floor(Math.random()*t)},e.interp=function(t,e,i){return t*(i-e)+e},e.lphistory={},e.lp=function(t,e,i){this.lphistory[t]||(this.lphistory[t]=[]);var s=0;this.lphistory[t].push(e),this.lphistory[t].length>i&&this.lphistory[t].splice(0,1);for(var n=0;n<this.lphistory[t].length;n++)s+=this.lphistory[t][n];return s/this.lphistory[t].length},e.lp2=function(t,e){for(var i=0,s=0;s<this.lphistory.length;s++)i+=this.lphistory[s];i+=t;var n=i/(this.lphistory.length+1);return this.lphistory.push(n),this.lphistory.length>e&&this.lphistory.splice(0,1),n},e.lp3=function(t,e,i){var s=t+e*i;return newvalue=s/(i+1),newvalue}},function(module,exports,__webpack_require__){var math=__webpack_require__(2);exports.randomColor=function(){return\"rgb(\"+math.random(250)+\",\"+math.random(250)+\",\"+math.random(250)+\")\"},exports.hexToRgb=function(t,e){t=t.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i,function(t,e,i,s){return e+e+i+i+s+s});var i=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(t);return e||(e=.5),\"rgba(\"+parseInt(i[1],16)+\",\"+parseInt(i[2],16)+\",\"+parseInt(i[3],16)+\",\"+e+\")\"},exports.isInside=function(t,e){return t.x>e.x&&t.x<e.x+e.w&&t.y>e.y&&t.y<e.y+e.h},exports.makeRoundRect=function(t,e,i,s,n,o){var r=e,a=i,h=s+r,l=n+a;o||(o=2),t.beginPath(),t.moveTo(r+o,a),t.lineTo(h-o,a),t.quadraticCurveTo(h,a,h,a+o),t.lineTo(h,l-o),t.quadraticCurveTo(h,l,h-o,l),t.lineTo(r+o,l),t.quadraticCurveTo(r,l,r,l-o),t.lineTo(r,a+o),t.quadraticCurveTo(r,a,r+o,a),t.closePath()},exports.text=function(context,text,position){with(position||(position=[10,10]),context)beginPath(),font=\"bold 12px sans-serif\",fillText(text,position[0],position[1]),closePath()},exports.shadeBlendConvert=function(t,e,i){if(\"number\"!=typeof t||t<-1||t>1||\"string\"!=typeof e||\"r\"!=e[0]&&\"#\"!=e[0]||\"string\"!=typeof i&&void 0!==i)return null;this.sbcRip=function(t){var e=t.length,i=new Object;if(e>9){if(t=t.split(\",\"),t.length<3||t.length>4)return null;i[0]=s(t[0].slice(4)),i[1]=s(t[1]),i[2]=s(t[2]),i[3]=t[3]?parseFloat(t[3]):-1}else{switch(e){case 8:case 6:case 3:case 2:case 1:return null}e<6&&(t=\"#\"+t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+(e>4?t[4]+\"\"+t[4]:\"\")),t=s(t.slice(1),16),i[0]=t>>16&255,i[1]=t>>8&255,i[2]=255&t,i[3]=9==e||5==e?n((t>>24&255)/255*1e4)/1e4:-1}return i};var s=parseInt,n=Math.round,o=e.length>9,o=\"string\"==typeof i?i.length>9||\"c\"==i&&!o:o,r=t<0,t=r?-1*t:t,i=i&&\"c\"!=i?i:r?\"#000000\":\"#FFFFFF\",a=this.sbcRip(e),h=this.sbcRip(i);return a&&h?o?\"rgb(\"+n((h[0]-a[0])*t+a[0])+\",\"+n((h[1]-a[1])*t+a[1])+\",\"+n((h[2]-a[2])*t+a[2])+(a[3]<0&&h[3]<0?\")\":\",\"+(a[3]>-1&&h[3]>-1?n(1e4*((h[3]-a[3])*t+a[3]))/1e4:h[3]<0?a[3]:h[3])+\")\"):\"#\"+(4294967296+16777216*(a[3]>-1&&h[3]>-1?n(255*((h[3]-a[3])*t+a[3])):h[3]>-1?n(255*h[3]):a[3]>-1?n(255*a[3]):255)+65536*n((h[0]-a[0])*t+a[0])+256*n((h[1]-a[1])*t+a[1])+n((h[2]-a[2])*t+a[2])).toString(16).slice(a[3]>-1||h[3]>-1?1:3):null}},function(t,e,i){var s;!function(n,o){void 0!==(s=function(){return o()}.call(e,i,e,t))&&(t.exports=s)}(0,function(){\"use strict\";function t(t){t(e)}var e;/**\n\t * Tone.js\n\t * @author Yotam Mann\n\t * @license http://opensource.org/licenses/MIT MIT License\n\t * @copyright 2014-2017 Yotam Mann\n\t */\nreturn function(t){e=t()}(function(){var t=function(t,e){this.isUndef(t)||1===t?this.input=this.context.createGain():t>1&&(this.input=new Array(t)),this.isUndef(e)||1===e?this.output=this.context.createGain():e>1&&(this.output=new Array(t))};t.prototype.set=function(e,i,s){if(this.isObject(e))s=i;else if(this.isString(e)){var n={};n[e]=i,e=n}t:for(var o in e){i=e[o];var r=this;if(-1!==o.indexOf(\".\")){for(var a=o.split(\".\"),h=0;h<a.length-1;h++)if((r=r[a[h]])instanceof t){a.splice(0,h+1);var l=a.join(\".\");r.set(l,i);continue t}o=a[a.length-1]}var c=r[o];this.isUndef(c)||(t.Signal&&c instanceof t.Signal||t.Param&&c instanceof t.Param?c.value!==i&&(this.isUndef(s)?c.value=i:c.rampTo(i,s)):c instanceof AudioParam?c.value!==i&&(c.value=i):c instanceof t?c.set(i):c!==i&&(r[o]=i))}return this},t.prototype.get=function(e){this.isUndef(e)?e=this._collectDefaults(this.constructor):this.isString(e)&&(e=[e]);for(var i={},s=0;s<e.length;s++){var n=e[s],o=this,r=i;if(-1!==n.indexOf(\".\")){for(var a=n.split(\".\"),h=0;h<a.length-1;h++){var l=a[h];r[l]=r[l]||{},r=r[l],o=o[l]}n=a[a.length-1]}var c=o[n];this.isObject(e[n])?r[n]=c.get():t.Signal&&c instanceof t.Signal?r[n]=c.value:t.Param&&c instanceof t.Param?r[n]=c.value:c instanceof AudioParam?r[n]=c.value:c instanceof t?r[n]=c.get():this.isFunction(c)||this.isUndef(c)||(r[n]=c)}return i},t.prototype._collectDefaults=function(t){var e=[];if(this.isUndef(t.defaults)||(e=Object.keys(t.defaults)),!this.isUndef(t._super))for(var i=this._collectDefaults(t._super),s=0;s<i.length;s++)-1===e.indexOf(i[s])&&e.push(i[s]);return e},t.prototype.toString=function(){for(var e in t){var i=e[0].match(/^[A-Z]$/),s=t[e]===this.constructor;if(this.isFunction(t[e])&&i&&s)return e}return\"Tone\"},Object.defineProperty(t.prototype,\"numberOfInputs\",{get:function(){return this.input?this.isArray(this.input)?this.input.length:1:0}}),Object.defineProperty(t.prototype,\"numberOfOutputs\",{get:function(){return this.output?this.isArray(this.output)?this.output.length:1:0}}),t.prototype.dispose=function(){return this.isUndef(this.input)||(this.input instanceof AudioNode&&this.input.disconnect(),this.input=null),this.isUndef(this.output)||(this.output instanceof AudioNode&&this.output.disconnect(),this.output=null),this},t.prototype.connect=function(t,e,i){return Array.isArray(this.output)?(e=this.defaultArg(e,0),this.output[e].connect(t,0,i)):this.output.connect(t,e,i),this},t.prototype.disconnect=function(t,e,i){this.isArray(this.output)?this.isNumber(t)?this.output[t].disconnect():(e=this.defaultArg(e,0),this.output[e].disconnect(t,0,i)):this.output.disconnect.apply(this.output,arguments)},t.prototype.connectSeries=function(){if(arguments.length>1)for(var t=arguments[0],e=1;e<arguments.length;e++){var i=arguments[e];t.connect(i),t=i}return this},t.prototype.chain=function(){if(arguments.length>0)for(var t=this,e=0;e<arguments.length;e++){var i=arguments[e];t.connect(i),t=i}return this},t.prototype.fan=function(){if(arguments.length>0)for(var t=0;t<arguments.length;t++)this.connect(arguments[t]);return this},AudioNode.prototype.chain=t.prototype.chain,AudioNode.prototype.fan=t.prototype.fan,t.prototype.defaultArg=function(t,e){if(this.isObject(t)&&this.isObject(e)){var i={};for(var s in t)i[s]=this.defaultArg(e[s],t[s]);for(var n in e)i[n]=this.defaultArg(t[n],e[n]);return i}return this.isUndef(t)?e:t},t.prototype.optionsObject=function(t,e,i){var s={};if(1===t.length&&this.isObject(t[0]))s=t[0];else for(var n=0;n<e.length;n++)s[e[n]]=t[n];return this.isUndef(i)?s:this.defaultArg(s,i)},t.prototype.isUndef=function(t){return void 0===t},t.prototype.isFunction=function(t){return\"function\"==typeof t},t.prototype.isNumber=function(t){return\"number\"==typeof t},t.prototype.isObject=function(t){return\"[object Object]\"===Object.prototype.toString.call(t)&&t.constructor===Object},t.prototype.isBoolean=function(t){return\"boolean\"==typeof t},t.prototype.isArray=function(t){return Array.isArray(t)},t.prototype.isString=function(t){return\"string\"==typeof t},t.noOp=function(){},t.prototype._readOnly=function(t){if(Array.isArray(t))for(var e=0;e<t.length;e++)this._readOnly(t[e]);else Object.defineProperty(this,t,{writable:!1,enumerable:!0})},t.prototype._writable=function(t){if(Array.isArray(t))for(var e=0;e<t.length;e++)this._writable(t[e]);else Object.defineProperty(this,t,{writable:!0})},t.State={Started:\"started\",Stopped:\"stopped\",Paused:\"paused\"},t.prototype.equalPowerScale=function(t){var e=.5*Math.PI;return Math.sin(t*e)},t.prototype.dbToGain=function(t){return Math.pow(2,t/6)},t.prototype.gainToDb=function(t){return Math.log(t)/Math.LN10*20},t.prototype.intervalToFrequencyRatio=function(t){return Math.pow(2,t/12)},t.prototype.now=function(){return t.context.now()},t.now=function(){return t.context.now()},t.extend=function(e,i){function s(){}t.prototype.isUndef(i)&&(i=t),s.prototype=i.prototype,e.prototype=new s,e.prototype.constructor=e,e._super=i};var e;return Object.defineProperty(t,\"context\",{get:function(){return e},set:function(i){e=t.Context&&i instanceof t.Context?i:new t.Context(i),t.Context&&t.Context.emit(\"init\",e)}}),Object.defineProperty(t.prototype,\"context\",{get:function(){return t.context}}),t.setContext=function(e){t.context=e},Object.defineProperty(t.prototype,\"blockTime\",{get:function(){return 128/this.context.sampleRate}}),Object.defineProperty(t.prototype,\"sampleTime\",{get:function(){return 1/this.context.sampleRate}}),Object.defineProperty(t,\"supported\",{get:function(){var t=window.hasOwnProperty(\"AudioContext\")||window.hasOwnProperty(\"webkitAudioContext\"),e=window.hasOwnProperty(\"Promise\"),i=window.hasOwnProperty(\"Worker\");return t&&e&&i}}),t.version=\"r10\",window.TONE_SILENCE_VERSION_LOGGING||console.log(\"%c * Tone.js \"+t.version+\" * \",\"background: #000; color: #fff\"),t}),t(function(t){return t.SignalBase=function(){},t.extend(t.SignalBase),t.SignalBase.prototype.connect=function(e,i,s){return t.Signal&&t.Signal===e.constructor||t.Param&&t.Param===e.constructor||t.TimelineSignal&&t.TimelineSignal===e.constructor?(e._param.cancelScheduledValues(0),e._param.value=0,e.overridden=!0):e instanceof AudioParam&&(e.cancelScheduledValues(0),e.value=0),t.prototype.connect.call(this,e,i,s),this},t.SignalBase}),t(function(t){return t.WaveShaper=function(t,e){this._shaper=this.input=this.output=this.context.createWaveShaper(),this._curve=null,Array.isArray(t)?this.curve=t:isFinite(t)||this.isUndef(t)?this._curve=new Float32Array(this.defaultArg(t,1024)):this.isFunction(t)&&(this._curve=new Float32Array(this.defaultArg(e,1024)),this.setMap(t))},t.extend(t.WaveShaper,t.SignalBase),t.WaveShaper.prototype.setMap=function(t){for(var e=0,i=this._curve.length;e<i;e++){var s=e/(i-1)*2-1;this._curve[e]=t(s,e)}return this._shaper.curve=this._curve,this},Object.defineProperty(t.WaveShaper.prototype,\"curve\",{get:function(){return this._shaper.curve},set:function(t){this._curve=new Float32Array(t),this._shaper.curve=this._curve}}),Object.defineProperty(t.WaveShaper.prototype,\"oversample\",{get:function(){return this._shaper.oversample},set:function(t){if(-1===[\"none\",\"2x\",\"4x\"].indexOf(t))throw new RangeError(\"Tone.WaveShaper: oversampling must be either 'none', '2x', or '4x'\");this._shaper.oversample=t}}),t.WaveShaper.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null,this},t.WaveShaper}),t(function(t){return t.TimeBase=function(e,i){if(!(this instanceof t.TimeBase))return new t.TimeBase(e,i);if(this._expr=this._noOp,e instanceof t.TimeBase)this.copy(e);else if(!this.isUndef(i)||this.isNumber(e)){i=this.defaultArg(i,this._defaultUnits);var s=this._primaryExpressions[i].method;this._expr=s.bind(this,e)}else this.isString(e)?this.set(e):this.isUndef(e)&&(this._expr=this._defaultExpr())},t.extend(t.TimeBase),t.TimeBase.prototype.set=function(t){return this._expr=this._parseExprString(t),this},t.TimeBase.prototype.clone=function(){var t=new this.constructor;return t.copy(this),t},t.TimeBase.prototype.copy=function(t){var e=t._expr();return this.set(e)},t.TimeBase.prototype._primaryExpressions={n:{regexp:/^(\\d+)n/i,method:function(t){return t=parseInt(t),1===t?this._beatsToUnits(this._timeSignature()):this._beatsToUnits(4/t)}},t:{regexp:/^(\\d+)t/i,method:function(t){return t=parseInt(t),this._beatsToUnits(8/(3*parseInt(t)))}},m:{regexp:/^(\\d+)m/i,method:function(t){return this._beatsToUnits(parseInt(t)*this._timeSignature())}},i:{regexp:/^(\\d+)i/i,method:function(t){return this._ticksToUnits(parseInt(t))}},hz:{regexp:/^(\\d+(?:\\.\\d+)?)hz/i,method:function(t){return this._frequencyToUnits(parseFloat(t))}},tr:{regexp:/^(\\d+(?:\\.\\d+)?):(\\d+(?:\\.\\d+)?):?(\\d+(?:\\.\\d+)?)?/,method:function(t,e,i){var s=0;return t&&\"0\"!==t&&(s+=this._beatsToUnits(this._timeSignature()*parseFloat(t))),e&&\"0\"!==e&&(s+=this._beatsToUnits(parseFloat(e))),i&&\"0\"!==i&&(s+=this._beatsToUnits(parseFloat(i)/4)),s}},s:{regexp:/^(\\d+(?:\\.\\d+)?s)/,method:function(t){return this._secondsToUnits(parseFloat(t))}},samples:{regexp:/^(\\d+)samples/,method:function(t){return parseInt(t)/this.context.sampleRate}},default:{regexp:/^(\\d+(?:\\.\\d+)?)/,method:function(t){return this._primaryExpressions[this._defaultUnits].method.call(this,t)}}},t.TimeBase.prototype._binaryExpressions={\"+\":{regexp:/^\\+/,precedence:2,method:function(t,e){return t()+e()}},\"-\":{regexp:/^\\-/,precedence:2,method:function(t,e){return t()-e()}},\"*\":{regexp:/^\\*/,precedence:1,method:function(t,e){return t()*e()}},\"/\":{regexp:/^\\//,precedence:1,method:function(t,e){return t()/e()}}},t.TimeBase.prototype._unaryExpressions={neg:{regexp:/^\\-/,method:function(t){return-t()}}},t.TimeBase.prototype._syntaxGlue={\"(\":{regexp:/^\\(/},\")\":{regexp:/^\\)/}},t.TimeBase.prototype._tokenize=function(t){for(var e=-1,i=[];t.length>0;){t=t.trim();var s=function(t,e){for(var i=[\"_binaryExpressions\",\"_unaryExpressions\",\"_primaryExpressions\",\"_syntaxGlue\"],s=0;s<i.length;s++){var n=e[i[s]];for(var o in n){var r=n[o],a=r.regexp,h=t.match(a);if(null!==h)return{method:r.method,precedence:r.precedence,regexp:r.regexp,value:h[0]}}}throw new SyntaxError(\"Tone.TimeBase: Unexpected token \"+t)}(t,this);i.push(s),t=t.substr(s.value.length)}return{next:function(){return i[++e]},peek:function(){return i[e+1]}}},t.TimeBase.prototype._matchGroup=function(t,e,i){if(!this.isUndef(t))for(var s in e){var n=e[s];if(n.regexp.test(t.value)){if(this.isUndef(i))return n;if(n.precedence===i)return n}}return!1},t.TimeBase.prototype._parseBinary=function(t,e){this.isUndef(e)&&(e=2);var i;i=e<0?this._parseUnary(t):this._parseBinary(t,e-1);for(var s=t.peek();s&&this._matchGroup(s,this._binaryExpressions,e);)s=t.next(),i=s.method.bind(this,i,this._parseBinary(t,e-1)),s=t.peek();return i},t.TimeBase.prototype._parseUnary=function(t){var e,i;e=t.peek();var s=this._matchGroup(e,this._unaryExpressions);return s?(e=t.next(),i=this._parseUnary(t),s.method.bind(this,i)):this._parsePrimary(t)},t.TimeBase.prototype._parsePrimary=function(t){var e,i;if(e=t.peek(),this.isUndef(e))throw new SyntaxError(\"Tone.TimeBase: Unexpected end of expression\");if(this._matchGroup(e,this._primaryExpressions)){e=t.next();var s=e.value.match(e.regexp);return e.method.bind(this,s[1],s[2],s[3])}if(e&&\"(\"===e.value){if(t.next(),i=this._parseBinary(t),!(e=t.next())||\")\"!==e.value)throw new SyntaxError(\"Expected )\");return i}throw new SyntaxError(\"Tone.TimeBase: Cannot process token \"+e.value)},t.TimeBase.prototype._parseExprString=function(t){this.isString(t)||(t=t.toString());var e=this._tokenize(t);return this._parseBinary(e)},t.TimeBase.prototype._noOp=function(){return 0},t.TimeBase.prototype._defaultExpr=function(){return this._noOp},t.TimeBase.prototype._defaultUnits=\"s\",t.TimeBase.prototype._frequencyToUnits=function(t){return 1/t},t.TimeBase.prototype._beatsToUnits=function(e){return 60/t.Transport.bpm.value*e},t.TimeBase.prototype._secondsToUnits=function(t){return t},t.TimeBase.prototype._ticksToUnits=function(e){return e*(this._beatsToUnits(1)/t.Transport.PPQ)},t.TimeBase.prototype._timeSignature=function(){return t.Transport.timeSignature},t.TimeBase.prototype._pushExpr=function(e,i,s){return e instanceof t.TimeBase||(e=new this.constructor(e,s)),this._expr=this._binaryExpressions[i].method.bind(this,this._expr,e._expr),this},t.TimeBase.prototype.add=function(t,e){return this._pushExpr(t,\"+\",e)},t.TimeBase.prototype.sub=function(t,e){return this._pushExpr(t,\"-\",e)},t.TimeBase.prototype.mult=function(t,e){return this._pushExpr(t,\"*\",e)},t.TimeBase.prototype.div=function(t,e){return this._pushExpr(t,\"/\",e)},t.TimeBase.prototype.valueOf=function(){return this._expr()},t.TimeBase.prototype.dispose=function(){this._expr=null},t.TimeBase}),t(function(t){return t.Time=function(e,i){if(!(this instanceof t.Time))return new t.Time(e,i);this._plusNow=!1,t.TimeBase.call(this,e,i)},t.extend(t.Time,t.TimeBase),t.Time.prototype._unaryExpressions=Object.create(t.TimeBase.prototype._unaryExpressions),t.Time.prototype._unaryExpressions.quantize={regexp:/^@/,method:function(e){return t.Transport.nextSubdivision(e())}},t.Time.prototype._unaryExpressions.now={regexp:/^\\+/,method:function(t){return this._plusNow=!0,t()}},t.Time.prototype.quantize=function(t,e){return e=this.defaultArg(e,1),this._expr=function(t,e,i){return t=t(),e=e.toSeconds(),t+(Math.round(t/e)*e-t)*i}.bind(this,this._expr,new this.constructor(t),e),this},t.Time.prototype.addNow=function(){return this._plusNow=!0,this},t.Time.prototype._defaultExpr=function(){return this._plusNow=!0,this._noOp},t.Time.prototype.copy=function(e){return t.TimeBase.prototype.copy.call(this,e),this._plusNow=e._plusNow,this},t.Time.prototype.toNotation=function(){var t=this.toSeconds(),e=[\"1m\",\"2n\",\"4n\",\"8n\",\"16n\",\"32n\",\"64n\",\"128n\"],i=this._toNotationHelper(t,e),s=[\"1m\",\"2n\",\"2t\",\"4n\",\"4t\",\"8n\",\"8t\",\"16n\",\"16t\",\"32n\",\"32t\",\"64n\",\"64t\",\"128n\"],n=this._toNotationHelper(t,s);return n.split(\"+\").length<i.split(\"+\").length?n:i},t.Time.prototype._toNotationHelper=function(t,e){for(var i=this._notationToUnits(e[e.length-1]),s=\"\",n=0;n<e.length;n++){var o=this._notationToUnits(e[n]),r=t/o;if(1-r%1<1e-6&&(r+=1e-6),(r=Math.floor(r))>0){if(s+=1===r?e[n]:r.toString()+\"*\"+e[n],(t-=r*o)<i)break;s+=\" + \"}}return\"\"===s&&(s=\"0\"),s},t.Time.prototype._notationToUnits=function(t){for(var e=this._primaryExpressions,i=[e.n,e.t,e.m],s=0;s<i.length;s++){var n=i[s],o=t.match(n.regexp);if(o)return n.method.call(this,o[1])}},t.Time.prototype.toBarsBeatsSixteenths=function(){var t=this._beatsToUnits(1),e=this.toSeconds()/t,i=Math.floor(e/this._timeSignature()),s=e%1*4;return e=Math.floor(e)%this._timeSignature(),s=s.toString(),s.length>3&&(s=parseFloat(s).toFixed(3)),[i,e,s].join(\":\")},t.Time.prototype.toTicks=function(){var e=this._beatsToUnits(1),i=this.valueOf()/e;return Math.floor(i*t.Transport.PPQ)},t.Time.prototype.toSamples=function(){return this.toSeconds()*this.context.sampleRate},t.Time.prototype.toFrequency=function(){return 1/this.toSeconds()},t.Time.prototype.toSeconds=function(){return this.valueOf()},t.Time.prototype.toMilliseconds=function(){return 1e3*this.toSeconds()},t.Time.prototype.valueOf=function(){return this._expr()+(this._plusNow?this.now():0)},t.Time}),t(function(t){t.Frequency=function(e,i){if(!(this instanceof t.Frequency))return new t.Frequency(e,i);t.TimeBase.call(this,e,i)},t.extend(t.Frequency,t.TimeBase),t.Frequency.prototype._primaryExpressions=Object.create(t.TimeBase.prototype._primaryExpressions),t.Frequency.prototype._primaryExpressions.midi={regexp:/^(\\d+(?:\\.\\d+)?midi)/,method:function(t){return this.midiToFrequency(t)}},t.Frequency.prototype._primaryExpressions.note={regexp:/^([a-g]{1}(?:b|#|x|bb)?)(-?[0-9]+)/i,method:function(t,i){var s=e[t.toLowerCase()],n=s+12*(parseInt(i)+1);return this.midiToFrequency(n)}},t.Frequency.prototype._primaryExpressions.tr={regexp:/^(\\d+(?:\\.\\d+)?):(\\d+(?:\\.\\d+)?):?(\\d+(?:\\.\\d+)?)?/,method:function(t,e,i){var s=1;return t&&\"0\"!==t&&(s*=this._beatsToUnits(this._timeSignature()*parseFloat(t))),e&&\"0\"!==e&&(s*=this._beatsToUnits(parseFloat(e))),i&&\"0\"!==i&&(s*=this._beatsToUnits(parseFloat(i)/4)),s}},t.Frequency.prototype.transpose=function(t){return this._expr=function(t,e){return t()*this.intervalToFrequencyRatio(e)}.bind(this,this._expr,t),this},t.Frequency.prototype.harmonize=function(t){return this._expr=function(t,e){for(var i=t(),s=[],n=0;n<e.length;n++)s[n]=i*this.intervalToFrequencyRatio(e[n]);return s}.bind(this,this._expr,t),this},t.Frequency.prototype.toMidi=function(){return this.frequencyToMidi(this.valueOf())},t.Frequency.prototype.toNote=function(){var e=this.valueOf(),s=Math.log(e/t.Frequency.A4)/Math.LN2,n=Math.round(12*s)+57,o=Math.floor(n/12);return o<0&&(n+=-12*o),i[n%12]+o.toString()},t.Frequency.prototype.toSeconds=function(){return 1/this.valueOf()},t.Frequency.prototype.toFrequency=function(){return this.valueOf()},t.Frequency.prototype.toTicks=function(){var e=this._beatsToUnits(1),i=this.valueOf()/e;return Math.floor(i*t.Transport.PPQ)},t.Frequency.prototype._frequencyToUnits=function(t){return t},t.Frequency.prototype._ticksToUnits=function(e){return 1/(60*e/(t.Transport.bpm.value*t.Transport.PPQ))},t.Frequency.prototype._beatsToUnits=function(e){return 1/t.TimeBase.prototype._beatsToUnits.call(this,e)},t.Frequency.prototype._secondsToUnits=function(t){return 1/t},t.Frequency.prototype._defaultUnits=\"hz\";var e={cbb:-2,cb:-1,c:0,\"c#\":1,cx:2,dbb:0,db:1,d:2,\"d#\":3,dx:4,ebb:2,eb:3,e:4,\"e#\":5,ex:6,fbb:3,fb:4,f:5,\"f#\":6,fx:7,gbb:5,gb:6,g:7,\"g#\":8,gx:9,abb:7,ab:8,a:9,\"a#\":10,ax:11,bbb:9,bb:10,b:11,\"b#\":12,bx:13},i=[\"C\",\"C#\",\"D\",\"D#\",\"E\",\"F\",\"F#\",\"G\",\"G#\",\"A\",\"A#\",\"B\"];return t.Frequency.A4=440,t.Frequency.prototype.midiToFrequency=function(e){return t.Frequency.A4*Math.pow(2,(e-69)/12)},t.Frequency.prototype.frequencyToMidi=function(e){return 69+12*Math.log(e/t.Frequency.A4)/Math.LN2},t.Frequency}),t(function(t){return t.TransportTime=function(e,i){if(!(this instanceof t.TransportTime))return new t.TransportTime(e,i);t.Time.call(this,e,i)},t.extend(t.TransportTime,t.Time),t.TransportTime.prototype._unaryExpressions=Object.create(t.Time.prototype._unaryExpressions),t.TransportTime.prototype._unaryExpressions.quantize={regexp:/^@/,method:function(e){var i=this._secondsToTicks(e()),s=Math.ceil(t.Transport.ticks/i);return this._ticksToUnits(s*i)}},t.TransportTime.prototype._secondsToTicks=function(e){var i=this._beatsToUnits(1),s=e/i;return Math.round(s*t.Transport.PPQ)},t.TransportTime.prototype.valueOf=function(){return this._secondsToTicks(this._expr())+(this._plusNow?t.Transport.ticks:0)},t.TransportTime.prototype.toTicks=function(){return this.valueOf()},t.TransportTime.prototype.toSeconds=function(){return this._expr()+(this._plusNow?t.Transport.seconds:0)},t.TransportTime.prototype.toFrequency=function(){return 1/this.toSeconds()},t.TransportTime}),t(function(t){return t.Emitter=function(){this._events={}},t.extend(t.Emitter),t.Emitter.prototype.on=function(t,e){for(var i=t.split(/\\W+/),s=0;s<i.length;s++){var n=i[s];this._events.hasOwnProperty(n)||(this._events[n]=[]),this._events[n].push(e)}return this},t.Emitter.prototype.off=function(e,i){for(var s=e.split(/\\W+/),n=0;n<s.length;n++)if(e=s[n],this._events.hasOwnProperty(e))if(t.prototype.isUndef(i))this._events[e]=[];else for(var o=this._events[e],r=0;r<o.length;r++)o[r]===i&&o.splice(r,1);return this},t.Emitter.prototype.emit=function(t){if(this._events){var e=Array.apply(null,arguments).slice(1);if(this._events.hasOwnProperty(t))for(var i=this._events[t],s=0,n=i.length;s<n;s++)i[s].apply(this,e)}return this},t.Emitter.mixin=function(e){var i=[\"on\",\"off\",\"emit\"];e._events={};for(var s=0;s<i.length;s++){var n=i[s],o=t.Emitter.prototype[n];e[n]=o}},t.Emitter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._events=null,this},t.Emitter}),t(function(t){return!window.hasOwnProperty(\"AudioContext\")&&window.hasOwnProperty(\"webkitAudioContext\")&&(window.AudioContext=window.webkitAudioContext),t.Context=function(e){t.Emitter.call(this),e||(e=new window.AudioContext),this._context=e;for(var i in this._context)this._defineProperty(this._context,i);this._latencyHint=\"interactive\",this._lookAhead=.1,this._updateInterval=this._lookAhead/3,this._computedUpdateInterval=0,this._worker=this._createWorker(),this._constants={}},t.extend(t.Context,t.Emitter),t.Emitter.mixin(t.Context),t.Context.prototype._defineProperty=function(t,e){this.isUndef(this[e])&&Object.defineProperty(this,e,{get:function(){return\"function\"==typeof t[e]?t[e].bind(t):t[e]},set:function(i){t[e]=i}})},t.Context.prototype.now=function(){return this._context.currentTime},t.Context.prototype._createWorker=function(){window.URL=window.URL||window.webkitURL;var t=new Blob([\"var timeoutTime = \"+(1e3*this._updateInterval).toFixed(1)+\";self.onmessage = function(msg){\\ttimeoutTime = parseInt(msg.data);};function tick(){\\tsetTimeout(tick, timeoutTime);\\tself.postMessage('tick');}tick();\"]),e=URL.createObjectURL(t),i=new Worker(e);return i.addEventListener(\"message\",function(){this.emit(\"tick\")}.bind(this)),i.addEventListener(\"message\",function(){var t=this.now();if(this.isNumber(this._lastUpdate)){var e=t-this._lastUpdate;this._computedUpdateInterval=Math.max(e,.97*this._computedUpdateInterval)}this._lastUpdate=t}.bind(this)),i},t.Context.prototype.getConstant=function(t){if(this._constants[t])return this._constants[t];for(var e=this._context.createBuffer(1,128,this._context.sampleRate),i=e.getChannelData(0),s=0;s<i.length;s++)i[s]=t;var n=this._context.createBufferSource();return n.channelCount=1,n.channelCountMode=\"explicit\",n.buffer=e,n.loop=!0,n.start(0),this._constants[t]=n,n},Object.defineProperty(t.Context.prototype,\"lag\",{get:function(){var t=this._computedUpdateInterval-this._updateInterval;return t=Math.max(t,0)}}),Object.defineProperty(t.Context.prototype,\"lookAhead\",{get:function(){return this._lookAhead},set:function(t){this._lookAhead=t}}),Object.defineProperty(t.Context.prototype,\"updateInterval\",{get:function(){return this._updateInterval},set:function(e){this._updateInterval=Math.max(e,t.prototype.blockTime),this._worker.postMessage(Math.max(1e3*e,1))}}),Object.defineProperty(t.Context.prototype,\"latencyHint\",{get:function(){return this._latencyHint},set:function(t){var e=t;if(this._latencyHint=t,this.isString(t))switch(t){case\"interactive\":e=.1,this._context.latencyHint=t;break;case\"playback\":e=.8,this._context.latencyHint=t;break;case\"balanced\":e=.25,this._context.latencyHint=t;break;case\"fastest\":e=.01}this.lookAhead=e,this.updateInterval=e/3}}),t.supported?(!function(){function e(e,i,n){if(e.input)Array.isArray(e.input)?(t.prototype.isUndef(n)&&(n=0),this.connect(e.input[n])):this.connect(e.input,i,n);else try{e instanceof AudioNode?s.call(this,e,i,n):s.call(this,e,i)}catch(t){throw new Error(\"error connecting to node: \"+e+\"\\n\"+t)}}function i(e,i,s){if(e&&e.input&&Array.isArray(e.input))t.prototype.isUndef(s)&&(s=0),this.disconnect(e.input[s],i,s);else if(e&&e.input)this.disconnect(e.input,i,s);else try{n.apply(this,arguments)}catch(t){throw new Error(\"error disconnecting node: \"+e+\"\\n\"+t)}}var s=AudioNode.prototype.connect,n=AudioNode.prototype.disconnect;AudioNode.prototype.connect!==e&&(AudioNode.prototype.connect=e,AudioNode.prototype.disconnect=i)}(),t.context=new t.Context):console.warn(\"This browser does not support Tone.js\"),t.Context}),t(function(t){return t.Type={Default:\"number\",Time:\"time\",Frequency:\"frequency\",TransportTime:\"transportTime\",Ticks:\"ticks\",NormalRange:\"normalRange\",AudioRange:\"audioRange\",Decibels:\"db\",Interval:\"interval\",BPM:\"bpm\",Positive:\"positive\",Cents:\"cents\",Degrees:\"degrees\",MIDI:\"midi\",BarsBeatsSixteenths:\"barsBeatsSixteenths\",Samples:\"samples\",Hertz:\"hertz\",Note:\"note\",Milliseconds:\"milliseconds\",Seconds:\"seconds\",Notation:\"notation\"},t.prototype.toSeconds=function(e){return this.isNumber(e)?e:this.isUndef(e)?this.now():this.isString(e)?new t.Time(e).toSeconds():e instanceof t.TimeBase?e.toSeconds():void 0},t.prototype.toFrequency=function(e){return this.isNumber(e)?e:this.isString(e)||this.isUndef(e)?new t.Frequency(e).valueOf():e instanceof t.TimeBase?e.toFrequency():void 0},t.prototype.toTicks=function(e){return this.isNumber(e)||this.isString(e)?new t.TransportTime(e).toTicks():this.isUndef(e)?t.Transport.ticks:e instanceof t.TimeBase?e.toTicks():void 0},t}),t(function(t){return t.Param=function(){var e=this.optionsObject(arguments,[\"param\",\"units\",\"convert\"],t.Param.defaults);this._param=this.input=e.param,this.units=e.units,this.convert=e.convert,this.overridden=!1,this._lfo=null,this.isObject(e.lfo)?this.value=e.lfo:this.isUndef(e.value)||(this.value=e.value)},t.extend(t.Param),t.Param.defaults={units:t.Type.Default,convert:!0,param:void 0},Object.defineProperty(t.Param.prototype,\"value\",{get:function(){return this._toUnits(this._param.value)},set:function(e){if(this.isObject(e)){if(this.isUndef(t.LFO))throw new Error(\"Include 'Tone.LFO' to use an LFO as a Param value.\");this._lfo&&this._lfo.dispose(),this._lfo=new t.LFO(e).start(),this._lfo.connect(this.input)}else{var i=this._fromUnits(e);this._param.cancelScheduledValues(0),this._param.value=i}}}),t.Param.prototype._fromUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Time:return this.toSeconds(e);case t.Type.Frequency:return this.toFrequency(e);case t.Type.Decibels:return this.dbToGain(e);case t.Type.NormalRange:return Math.min(Math.max(e,0),1);case t.Type.AudioRange:return Math.min(Math.max(e,-1),1);case t.Type.Positive:return Math.max(e,0);default:return e}},t.Param.prototype._toUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Decibels:return this.gainToDb(e);default:return e}},t.Param.prototype._minOutput=1e-5,t.Param.prototype.setValueAtTime=function(t,e){return t=this._fromUnits(t),e=this.toSeconds(e),e<=this.now()+this.blockTime?this._param.value=t:this._param.setValueAtTime(t,e),this},t.Param.prototype.setRampPoint=function(t){t=this.defaultArg(t,this.now());var e=this._param.value;return 0===e&&(e=this._minOutput),this._param.setValueAtTime(e,t),this},t.Param.prototype.linearRampToValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.linearRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValueAtTime=function(t,e){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),this._param.exponentialRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValue=function(t,e,i){return i=this.toSeconds(i),this.setRampPoint(i),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.linearRampToValue=function(t,e,i){return i=this.toSeconds(i),this.setRampPoint(i),this.linearRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.setTargetAtTime=function(t,e,i){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),i=Math.max(this._minOutput,i),this._param.setTargetAtTime(t,this.toSeconds(e),i),this},t.Param.prototype.setValueCurveAtTime=function(t,e,i){for(var s=0;s<t.length;s++)t[s]=this._fromUnits(t[s]);return this._param.setValueCurveAtTime(t,this.toSeconds(e),this.toSeconds(i)),this},t.Param.prototype.cancelScheduledValues=function(t){return this._param.cancelScheduledValues(this.toSeconds(t)),this},t.Param.prototype.rampTo=function(e,i,s){return i=this.defaultArg(i,0),this.units===t.Type.Frequency||this.units===t.Type.BPM||this.units===t.Type.Decibels?this.exponentialRampToValue(e,i,s):this.linearRampToValue(e,i,s),this},Object.defineProperty(t.Param.prototype,\"lfo\",{get:function(){return this._lfo}}),t.Param.prototype.dispose=function(){return t.prototype.dispose.call(this),this._param=null,this._lfo&&(this._lfo.dispose(),this._lfo=null),this},t.Param}),t(function(t){return window.GainNode&&!AudioContext.prototype.createGain&&(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),t.Gain=function(){var e=this.optionsObject(arguments,[\"gain\",\"units\"],t.Gain.defaults);this.input=this.output=this._gainNode=this.context.createGain(),this.gain=new t.Param({param:this._gainNode.gain,units:e.units,value:e.gain,convert:e.convert}),this._readOnly(\"gain\")},t.extend(t.Gain),t.Gain.defaults={gain:1,convert:!0},t.Gain.prototype.dispose=function(){t.Param.prototype.dispose.call(this),this._gainNode.disconnect(),this._gainNode=null,this._writable(\"gain\"),this.gain.dispose(),this.gain=null},t.prototype.createInsOuts=function(e,i){1===e?this.input=new t.Gain:e>1&&(this.input=new Array(e)),1===i?this.output=new t.Gain:i>1&&(this.output=new Array(e))},t.Gain}),t(function(t){return t.Signal=function(){var e=this.optionsObject(arguments,[\"value\",\"units\"],t.Signal.defaults);this.output=this._gain=this.context.createGain(),e.param=this._gain.gain,t.Param.call(this,e),this.input=this._param=this._gain.gain,this.context.getConstant(1).chain(this._gain)},t.extend(t.Signal,t.Param),t.Signal.defaults={value:0,units:t.Type.Default,convert:!0},t.Signal.prototype.connect=t.SignalBase.prototype.connect,t.Signal.prototype.dispose=function(){return t.Param.prototype.dispose.call(this),this._param=null,this._gain.disconnect(),this._gain=null,this},t.Signal}),t(function(t){return t.Timeline=function(){var e=this.optionsObject(arguments,[\"memory\"],t.Timeline.defaults);this._timeline=[],this._toRemove=[],this._iterating=!1,this.memory=e.memory},t.extend(t.Timeline),t.Timeline.defaults={memory:1/0},Object.defineProperty(t.Timeline.prototype,\"length\",{get:function(){return this._timeline.length}}),t.Timeline.prototype.add=function(t){if(this.isUndef(t.time))throw new Error(\"Tone.Timeline: events must have a time attribute\");if(this._timeline.length){var e=this._search(t.time);this._timeline.splice(e+1,0,t)}else this._timeline.push(t);if(this.length>this.memory){var i=this.length-this.memory;this._timeline.splice(0,i)}return this},t.Timeline.prototype.remove=function(t){if(this._iterating)this._toRemove.push(t);else{var e=this._timeline.indexOf(t);-1!==e&&this._timeline.splice(e,1)}return this},t.Timeline.prototype.get=function(t){var e=this._search(t);return-1!==e?this._timeline[e]:null},t.Timeline.prototype.peek=function(){return this._timeline[0]},t.Timeline.prototype.shift=function(){return this._timeline.shift()},t.Timeline.prototype.getAfter=function(t){var e=this._search(t);return e+1<this._timeline.length?this._timeline[e+1]:null},t.Timeline.prototype.getBefore=function(t){var e=this._timeline.length;if(e>0&&this._timeline[e-1].time<t)return this._timeline[e-1];var i=this._search(t);return i-1>=0?this._timeline[i-1]:null},t.Timeline.prototype.cancel=function(t){if(this._timeline.length>1){var e=this._search(t);if(e>=0)if(this._timeline[e].time===t){for(var i=e;i>=0&&this._timeline[i].time===t;i--)e=i;this._timeline=this._timeline.slice(0,e)}else this._timeline=this._timeline.slice(0,e+1);else this._timeline=[]}else 1===this._timeline.length&&this._timeline[0].time>=t&&(this._timeline=[]);return this},t.Timeline.prototype.cancelBefore=function(t){if(this._timeline.length){var e=this._search(t);e>=0&&(this._timeline=this._timeline.slice(e+1))}return this},t.Timeline.prototype._search=function(t){var e=0,i=this._timeline.length,s=i;if(i>0&&this._timeline[i-1].time<=t)return i-1;for(;e<s;){var n=Math.floor(e+(s-e)/2),o=this._timeline[n],r=this._timeline[n+1];if(o.time===t){for(var a=n;a<this._timeline.length;a++){this._timeline[a].time===t&&(n=a)}return n}if(o.time<t&&r.time>t)return n;o.time>t?s=n:o.time<t&&(e=n+1)}return-1},t.Timeline.prototype._iterate=function(t,e,i){this._iterating=!0,e=this.defaultArg(e,0),i=this.defaultArg(i,this._timeline.length-1);for(var s=e;s<=i;s++)t(this._timeline[s]);if(this._iterating=!1,this._toRemove.length>0){for(var n=0;n<this._toRemove.length;n++){var o=this._timeline.indexOf(this._toRemove[n]);-1!==o&&this._timeline.splice(o,1)}this._toRemove=[]}},t.Timeline.prototype.forEach=function(t){return this._iterate(t),this},t.Timeline.prototype.forEachBefore=function(t,e){var i=this._search(t);return-1!==i&&this._iterate(e,0,i),this},t.Timeline.prototype.forEachAfter=function(t,e){var i=this._search(t);return this._iterate(e,i+1),this},t.Timeline.prototype.forEachFrom=function(t,e){for(var i=this._search(t);i>=0&&this._timeline[i].time>=t;)i--;return this._iterate(e,i+1),this},t.Timeline.prototype.forEachAtTime=function(t,e){var i=this._search(t);return-1!==i&&this._iterate(function(i){i.time===t&&e(i)},0,i),this},t.Timeline.prototype.dispose=function(){t.prototype.dispose.call(this),this._timeline=null,this._toRemove=null},t.Timeline}),t(function(t){return t.TimelineSignal=function(){var e=this.optionsObject(arguments,[\"value\",\"units\"],t.Signal.defaults);this._events=new t.Timeline(10),t.Signal.apply(this,e),e.param=this._param,t.Param.call(this,e),this._initial=this._fromUnits(this._param.value)},t.extend(t.TimelineSignal,t.Param),t.TimelineSignal.Type={Linear:\"linear\",Exponential:\"exponential\",Target:\"target\",Curve:\"curve\",Set:\"set\"},Object.defineProperty(t.TimelineSignal.prototype,\"value\",{get:function(){var t=this.now(),e=this.getValueAtTime(t);return this._toUnits(e)},set:function(t){var e=this._fromUnits(t);this._initial=e,this.cancelScheduledValues(),this._param.value=e}}),t.TimelineSignal.prototype.setValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.add({type:t.TimelineSignal.Type.Set,value:e,time:i}),this._param.setValueAtTime(e,i),this},t.TimelineSignal.prototype.linearRampToValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.add({type:t.TimelineSignal.Type.Linear,value:e,time:i}),this._param.linearRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.exponentialRampToValueAtTime=function(e,i){i=this.toSeconds(i);var s=this._searchBefore(i);s&&0===s.value&&this.setValueAtTime(this._minOutput,s.time),e=this._fromUnits(e);var n=Math.max(e,this._minOutput);return this._events.add({type:t.TimelineSignal.Type.Exponential,value:n,time:i}),e<this._minOutput?(this._param.exponentialRampToValueAtTime(this._minOutput,i-this.sampleTime),this.setValueAtTime(0,i)):this._param.exponentialRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.setTargetAtTime=function(e,i,s){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),s=Math.max(this._minOutput,s),i=this.toSeconds(i),this._events.add({type:t.TimelineSignal.Type.Target,value:e,time:i,constant:s}),this._param.setTargetAtTime(e,i,s),this},t.TimelineSignal.prototype.setValueCurveAtTime=function(e,i,s,n){n=this.defaultArg(n,1);for(var o=new Array(e.length),r=0;r<o.length;r++)o[r]=this._fromUnits(e[r])*n;i=this.toSeconds(i),s=this.toSeconds(s),this._events.add({type:t.TimelineSignal.Type.Curve,value:o,time:i,duration:s}),this._param.setValueAtTime(o[0],i);for(var a=1;a<o.length;a++){var h=i+a/(o.length-1)*s;this._param.linearRampToValueAtTime(o[a],h)}return this},t.TimelineSignal.prototype.cancelScheduledValues=function(t){return t=this.toSeconds(t),this._events.cancel(t),this._param.cancelScheduledValues(t),this},t.TimelineSignal.prototype.setRampPoint=function(e){e=this.toSeconds(e);var i=this._toUnits(this.getValueAtTime(e)),s=this._searchBefore(e);if(s&&s.time===e)this.cancelScheduledValues(e+this.sampleTime);else if(s&&s.type===t.TimelineSignal.Type.Curve&&s.time+s.duration>e)this.cancelScheduledValues(e),this.linearRampToValueAtTime(i,e);else{var n=this._searchAfter(e);n&&(this.cancelScheduledValues(e),n.type===t.TimelineSignal.Type.Linear?this.linearRampToValueAtTime(i,e):n.type===t.TimelineSignal.Type.Exponential&&this.exponentialRampToValueAtTime(i,e)),this.setValueAtTime(i,e)}return this},t.TimelineSignal.prototype.linearRampToValueBetween=function(t,e,i){return this.setRampPoint(e),this.linearRampToValueAtTime(t,i),this},t.TimelineSignal.prototype.exponentialRampToValueBetween=function(t,e,i){return this.setRampPoint(e),this.exponentialRampToValueAtTime(t,i),this},t.TimelineSignal.prototype._searchBefore=function(t){return this._events.get(t)},t.TimelineSignal.prototype._searchAfter=function(t){return this._events.getAfter(t)},t.TimelineSignal.prototype.getValueAtTime=function(e){e=this.toSeconds(e);var i=this._searchAfter(e),s=this._searchBefore(e),n=this._initial;if(null===s)n=this._initial;else if(s.type===t.TimelineSignal.Type.Target){var o,r=this._events.getBefore(s.time);o=null===r?this._initial:r.value,n=this._exponentialApproach(s.time,o,s.value,s.constant,e)}else n=s.type===t.TimelineSignal.Type.Curve?this._curveInterpolate(s.time,s.value,s.duration,e):null===i?s.value:i.type===t.TimelineSignal.Type.Linear?this._linearInterpolate(s.time,s.value,i.time,i.value,e):i.type===t.TimelineSignal.Type.Exponential?this._exponentialInterpolate(s.time,s.value,i.time,i.value,e):s.value;return n},t.TimelineSignal.prototype.connect=t.SignalBase.prototype.connect,t.TimelineSignal.prototype._exponentialApproach=function(t,e,i,s,n){return i+(e-i)*Math.exp(-(n-t)/s)},t.TimelineSignal.prototype._linearInterpolate=function(t,e,i,s,n){return e+(n-t)/(i-t)*(s-e)},t.TimelineSignal.prototype._exponentialInterpolate=function(t,e,i,s,n){return(e=Math.max(this._minOutput,e))*Math.pow(s/e,(n-t)/(i-t))},t.TimelineSignal.prototype._curveInterpolate=function(t,e,i,s){var n=e.length;if(s>=t+i)return e[n-1];if(s<=t)return e[0];var o=(s-t)/i,r=Math.floor((n-1)*o),a=Math.ceil((n-1)*o),h=e[r],l=e[a];return a===r?h:this._linearInterpolate(r,h,a,l,o*(n-1))},t.TimelineSignal.prototype.dispose=function(){t.Signal.prototype.dispose.call(this),t.Param.prototype.dispose.call(this),this._events.dispose(),this._events=null},t.TimelineSignal}),t(function(t){return t.Pow=function(e){this._exp=this.defaultArg(e,1),this._expScaler=this.input=this.output=new t.WaveShaper(this._expFunc(this._exp),8192)},t.extend(t.Pow,t.SignalBase),Object.defineProperty(t.Pow.prototype,\"value\",{get:function(){return this._exp},set:function(t){this._exp=t,this._expScaler.setMap(this._expFunc(this._exp))}}),t.Pow.prototype._expFunc=function(t){return function(e){return Math.pow(Math.abs(e),t)}},t.Pow.prototype.dispose=function(){return t.prototype.dispose.call(this),this._expScaler.dispose(),this._expScaler=null,this},t.Pow}),t(function(t){return t.Envelope=function(){var e=this.optionsObject(arguments,[\"attack\",\"decay\",\"sustain\",\"release\"],t.Envelope.defaults);this.attack=e.attack,this.decay=e.decay,this.sustain=e.sustain,this.release=e.release,this._attackCurve=\"linear\",this._releaseCurve=\"exponential\",this._sig=this.output=new t.TimelineSignal,this._sig.setValueAtTime(0,0),this.attackCurve=e.attackCurve,this.releaseCurve=e.releaseCurve},t.extend(t.Envelope),t.Envelope.defaults={attack:.01,decay:.1,sustain:.5,release:1,attackCurve:\"linear\",releaseCurve:\"exponential\"},Object.defineProperty(t.Envelope.prototype,\"value\",{get:function(){return this.getValueAtTime(this.now())}}),Object.defineProperty(t.Envelope.prototype,\"attackCurve\",{get:function(){if(this.isString(this._attackCurve))return this._attackCurve;if(this.isArray(this._attackCurve)){for(var e in t.Envelope.Type)if(t.Envelope.Type[e].In===this._attackCurve)return e;return this._attackCurve}},set:function(e){if(t.Envelope.Type.hasOwnProperty(e)){var i=t.Envelope.Type[e];this.isObject(i)?this._attackCurve=i.In:this._attackCurve=i}else{if(!this.isArray(e))throw new Error(\"Tone.Envelope: invalid curve: \"+e);this._attackCurve=e}}}),Object.defineProperty(t.Envelope.prototype,\"releaseCurve\",{get:function(){if(this.isString(this._releaseCurve))return this._releaseCurve;if(this.isArray(this._releaseCurve)){for(var e in t.Envelope.Type)if(t.Envelope.Type[e].Out===this._releaseCurve)return e;return this._releaseCurve}},set:function(e){if(t.Envelope.Type.hasOwnProperty(e)){var i=t.Envelope.Type[e];this.isObject(i)?this._releaseCurve=i.Out:this._releaseCurve=i}else{if(!this.isArray(e))throw new Error(\"Tone.Envelope: invalid curve: \"+e);this._releaseCurve=e}}}),t.Envelope.prototype.triggerAttack=function(t,e){t=this.toSeconds(t);var i=this.toSeconds(this.attack),s=i,n=this.toSeconds(this.decay);e=this.defaultArg(e,1);var o=this.getValueAtTime(t);if(o>0){s=(1-o)/(1/s)}if(\"linear\"===this._attackCurve)this._sig.linearRampToValue(e,s,t);else if(\"exponential\"===this._attackCurve)this._sig.exponentialRampToValue(e,s,t);else if(s>0){this._sig.setRampPoint(t);var r=this._attackCurve;if(s<i){var a=1-s/i,h=Math.floor(a*this._attackCurve.length);r=this._attackCurve.slice(h),r[0]=o}this._sig.setValueCurveAtTime(r,t,s,e)}return this._sig.exponentialRampToValue(e*this.sustain,n,s+t),this},t.Envelope.prototype.triggerRelease=function(t){t=this.toSeconds(t);var e=this.getValueAtTime(t);if(e>0){var i=this.toSeconds(this.release);if(\"linear\"===this._releaseCurve)this._sig.linearRampToValue(0,i,t);else if(\"exponential\"===this._releaseCurve)this._sig.exponentialRampToValue(0,i,t);else{var s=this._releaseCurve;this.isArray(s)&&(this._sig.setRampPoint(t),this._sig.setValueCurveAtTime(s,t,i,e))}}return this},t.Envelope.prototype.getValueAtTime=function(t){return this._sig.getValueAtTime(t)},t.Envelope.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),this.triggerAttack(e,i),this.triggerRelease(e+this.toSeconds(t)),this},t.Envelope.prototype.cancel=function(t){return this._sig.cancelScheduledValues(t),this},t.Envelope.prototype.connect=t.Signal.prototype.connect,function(){function e(t){for(var e=new Array(t.length),i=0;i<t.length;i++)e[i]=1-t[i];return e}var i,s,n=[];for(i=0;i<128;i++)n[i]=Math.sin(i/127*(Math.PI/2));var o=[];for(i=0;i<127;i++){s=i/127;var r=Math.sin(s*(2*Math.PI)*6.4-Math.PI/2)+1;o[i]=r/10+.83*s}o[127]=1;var a=[];for(i=0;i<128;i++)a[i]=Math.ceil(i/127*5)/5;var h=[];for(i=0;i<128;i++)s=i/127,h[i]=.5*(1-Math.cos(Math.PI*s));var l=[];for(i=0;i<128;i++){s=i/127;var c=4*Math.pow(s,3)+.2,u=Math.cos(c*Math.PI*2*s);l[i]=Math.abs(u*(1-s))}t.Envelope.Type={linear:\"linear\",exponential:\"exponential\",bounce:{In:e(l),Out:l},cosine:{In:n,Out:function(t){return t.slice(0).reverse()}(n)},step:{In:a,Out:e(a)},ripple:{In:o,Out:e(o)},sine:{In:h,Out:e(h)}}}(),t.Envelope.prototype.dispose=function(){return t.prototype.dispose.call(this),this._sig.dispose(),this._sig=null,this._attackCurve=null,this._releaseCurve=null,this},t.Envelope}),t(function(t){return t.AmplitudeEnvelope=function(){t.Envelope.apply(this,arguments),this.input=this.output=new t.Gain,this._sig.connect(this.output.gain)},t.extend(t.AmplitudeEnvelope,t.Envelope),t.AmplitudeEnvelope.prototype.dispose=function(){return this.input.dispose(),this.input=null,t.Envelope.prototype.dispose.call(this),this},t.AmplitudeEnvelope}),t(function(t){return window.AnalyserNode&&!AnalyserNode.prototype.getFloatTimeDomainData&&(AnalyserNode.prototype.getFloatTimeDomainData=function(t){var e=new Uint8Array(t.length);this.getByteTimeDomainData(e);for(var i=0;i<e.length;i++)t[i]=(e[i]-128)/128}),t.Analyser=function(){var e=this.optionsObject(arguments,[\"type\",\"size\"],t.Analyser.defaults);this._analyser=this.input=this.output=this.context.createAnalyser(),this._type=e.type,this._returnType=e.returnType,this._buffer=null,this.size=e.size,this.type=e.type,this.returnType=e.returnType,this.minDecibels=e.minDecibels,this.maxDecibels=e.maxDecibels},t.extend(t.Analyser),t.Analyser.defaults={size:1024,returnType:\"byte\",type:\"fft\",smoothing:.8,maxDecibels:-30,minDecibels:-100},t.Analyser.Type={Waveform:\"waveform\",FFT:\"fft\"},t.Analyser.ReturnType={Byte:\"byte\",Float:\"float\"},t.Analyser.prototype.analyse=function(){return this._type===t.Analyser.Type.FFT?this._returnType===t.Analyser.ReturnType.Byte?this._analyser.getByteFrequencyData(this._buffer):this._analyser.getFloatFrequencyData(this._buffer):this._type===t.Analyser.Type.Waveform&&(this._returnType===t.Analyser.ReturnType.Byte?this._analyser.getByteTimeDomainData(this._buffer):this._analyser.getFloatTimeDomainData(this._buffer)),this._buffer},Object.defineProperty(t.Analyser.prototype,\"size\",{get:function(){return this._analyser.frequencyBinCount},set:function(t){this._analyser.fftSize=2*t,this.type=this._type}}),Object.defineProperty(t.Analyser.prototype,\"returnType\",{get:function(){return this._returnType},set:function(e){if(e===t.Analyser.ReturnType.Byte)this._buffer=new Uint8Array(this._analyser.frequencyBinCount);else{if(e!==t.Analyser.ReturnType.Float)throw new TypeError(\"Tone.Analayser: invalid return type: \"+e);this._buffer=new Float32Array(this._analyser.frequencyBinCount)}this._returnType=e}}),Object.defineProperty(t.Analyser.prototype,\"type\",{get:function(){return this._type},set:function(e){if(e!==t.Analyser.Type.Waveform&&e!==t.Analyser.Type.FFT)throw new TypeError(\"Tone.Analyser: invalid type: \"+e);this._type=e}}),Object.defineProperty(t.Analyser.prototype,\"smoothing\",{get:function(){return this._analyser.smoothingTimeConstant},set:function(t){this._analyser.smoothingTimeConstant=t}}),Object.defineProperty(t.Analyser.prototype,\"minDecibels\",{get:function(){return this._analyser.minDecibels},set:function(t){this._analyser.minDecibels=t}}),Object.defineProperty(t.Analyser.prototype,\"maxDecibels\",{get:function(){return this._analyser.maxDecibels},set:function(t){this._analyser.maxDecibels=t}}),t.Analyser.prototype.dispose=function(){t.prototype.dispose.call(this),this._analyser.disconnect(),this._analyser=null,this._buffer=null},t.Analyser}),t(function(t){return t.Compressor=function(){var e=this.optionsObject(arguments,[\"threshold\",\"ratio\"],t.Compressor.defaults);this._compressor=this.input=this.output=this.context.createDynamicsCompressor(),this.threshold=new t.Param({param:this._compressor.threshold,units:t.Type.Decibels,convert:!1}),this.attack=new t.Param(this._compressor.attack,t.Type.Time),this.release=new t.Param(this._compressor.release,t.Type.Time),this.knee=new t.Param({param:this._compressor.knee,units:t.Type.Decibels,convert:!1}),this.ratio=new t.Param({param:this._compressor.ratio,convert:!1}),this._readOnly([\"knee\",\"release\",\"attack\",\"ratio\",\"threshold\"]),this.set(e)},t.extend(t.Compressor),t.Compressor.defaults={ratio:12,threshold:-24,release:.25,attack:.003,knee:30},t.Compressor.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"knee\",\"release\",\"attack\",\"ratio\",\"threshold\"]),this._compressor.disconnect(),this._compressor=null,this.attack.dispose(),this.attack=null,this.release.dispose(),this.release=null,this.threshold.dispose(),this.threshold=null,this.ratio.dispose(),this.ratio=null,this.knee.dispose(),this.knee=null,this},t.Compressor}),t(function(t){return t.Add=function(e){this.createInsOuts(2,0),this._sum=this.input[0]=this.input[1]=this.output=new t.Gain,this._param=this.input[1]=new t.Signal(e),this._param.connect(this._sum)},t.extend(t.Add,t.Signal),t.Add.prototype.dispose=function(){return t.prototype.dispose.call(this),this._sum.dispose(),this._sum=null,this._param.dispose(),this._param=null,this},t.Add}),t(function(t){return t.Multiply=function(e){this.createInsOuts(2,0),this._mult=this.input[0]=this.output=new t.Gain,this._param=this.input[1]=this.output.gain,this._param.value=this.defaultArg(e,0)},t.extend(t.Multiply,t.Signal),t.Multiply.prototype.dispose=function(){return t.prototype.dispose.call(this),this._mult.dispose(),this._mult=null,this._param=null,this},t.Multiply}),t(function(t){return t.Negate=function(){this._multiply=this.input=this.output=new t.Multiply(-1)},t.extend(t.Negate,t.SignalBase),t.Negate.prototype.dispose=function(){return t.prototype.dispose.call(this),this._multiply.dispose(),this._multiply=null,this},t.Negate}),t(function(t){return t.Subtract=function(e){this.createInsOuts(2,0),this._sum=this.input[0]=this.output=new t.Gain,this._neg=new t.Negate,this._param=this.input[1]=new t.Signal(e),this._param.chain(this._neg,this._sum)},t.extend(t.Subtract,t.Signal),t.Subtract.prototype.dispose=function(){return t.prototype.dispose.call(this),this._neg.dispose(),this._neg=null,this._sum.disconnect(),this._sum=null,this._param.dispose(),this._param=null,this},t.Subtract}),t(function(t){return t.GreaterThanZero=function(){this._thresh=this.output=new t.WaveShaper(function(t){return t<=0?0:1},127),this._scale=this.input=new t.Multiply(1e4),this._scale.connect(this._thresh)},t.extend(t.GreaterThanZero,t.SignalBase),t.GreaterThanZero.prototype.dispose=function(){return t.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._thresh.dispose(),this._thresh=null,this},t.GreaterThanZero}),t(function(t){return t.GreaterThan=function(e){this.createInsOuts(2,0),this._param=this.input[0]=new t.Subtract(e),this.input[1]=this._param.input[1],this._gtz=this.output=new t.GreaterThanZero,this._param.connect(this._gtz)},t.extend(t.GreaterThan,t.Signal),t.GreaterThan.prototype.dispose=function(){return t.prototype.dispose.call(this),this._param.dispose(),this._param=null,this._gtz.dispose(),this._gtz=null,this},t.GreaterThan}),t(function(t){return t.Abs=function(){this._abs=this.input=this.output=new t.WaveShaper(function(t){return 0===t?0:Math.abs(t)},127)},t.extend(t.Abs,t.SignalBase),t.Abs.prototype.dispose=function(){return t.prototype.dispose.call(this),this._abs.dispose(),this._abs=null,this},t.Abs}),t(function(t){return t.Modulo=function(e){this.createInsOuts(1,0),this._shaper=new t.WaveShaper(Math.pow(2,16)),this._multiply=new t.Multiply,this._subtract=this.output=new t.Subtract,this._modSignal=new t.Signal(e),this.input.fan(this._shaper,this._subtract),this._modSignal.connect(this._multiply,0,0),this._shaper.connect(this._multiply,0,1),this._multiply.connect(this._subtract,0,1),this._setWaveShaper(e)},t.extend(t.Modulo,t.SignalBase),t.Modulo.prototype._setWaveShaper=function(t){this._shaper.setMap(function(e){return Math.floor((e+1e-4)/t)})},Object.defineProperty(t.Modulo.prototype,\"value\",{get:function(){return this._modSignal.value},set:function(t){this._modSignal.value=t,this._setWaveShaper(t)}}),t.Modulo.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this._multiply.dispose(),this._multiply=null,this._subtract.dispose(),this._subtract=null,this._modSignal.dispose(),this._modSignal=null,this},t.Modulo}),t(function(t){return t.AudioToGain=function(){this._norm=this.input=this.output=new t.WaveShaper(function(t){return(t+1)/2})},t.extend(t.AudioToGain,t.SignalBase),t.AudioToGain.prototype.dispose=function(){return t.prototype.dispose.call(this),this._norm.dispose(),this._norm=null,this},t.AudioToGain}),t(function(t){function e(t,e,i){var s=new t;return i._eval(e[0]).connect(s,0,0),i._eval(e[1]).connect(s,0,1),s}function i(t,e,i){var s=new t;return i._eval(e[0]).connect(s,0,0),s}function s(t){return t?parseFloat(t):void 0}function n(t){return t&&t.args?parseFloat(t.args):void 0}return t.Expr=function(){var t=this._replacements(Array.prototype.slice.call(arguments)),e=this._parseInputs(t);this._nodes=[],this.input=new Array(e);for(var i=0;i<e;i++)this.input[i]=this.context.createGain();var s,n=this._parseTree(t);try{s=this._eval(n)}catch(e){throw this._disposeNodes(),new Error(\"Tone.Expr: Could evaluate expression: \"+t)}this.output=s},t.extend(t.Expr,t.SignalBase),t.Expr._Expressions={value:{signal:{regexp:/^\\d+\\.\\d+|^\\d+/,method:function(e){return new t.Signal(s(e))}},input:{regexp:/^\\$\\d/,method:function(t,e){return e.input[s(t.substr(1))]}}},glue:{\"(\":{regexp:/^\\(/},\")\":{regexp:/^\\)/},\",\":{regexp:/^,/}},func:{abs:{regexp:/^abs/,method:i.bind(this,t.Abs)},mod:{regexp:/^mod/,method:function(e,i){var s=n(e[1]),o=new t.Modulo(s);return i._eval(e[0]).connect(o),o}},pow:{regexp:/^pow/,method:function(e,i){var s=n(e[1]),o=new t.Pow(s);return i._eval(e[0]).connect(o),o}},a2g:{regexp:/^a2g/,method:function(e,i){var s=new t.AudioToGain;return i._eval(e[0]).connect(s),s}}},binary:{\"+\":{regexp:/^\\+/,precedence:1,method:e.bind(this,t.Add)},\"-\":{regexp:/^\\-/,precedence:1,method:function(s,n){return 1===s.length?i(t.Negate,s,n):e(t.Subtract,s,n)}},\"*\":{regexp:/^\\*/,precedence:0,method:e.bind(this,t.Multiply)}},unary:{\"-\":{regexp:/^\\-/,method:i.bind(this,t.Negate)},\"!\":{regexp:/^\\!/,method:i.bind(this,t.NOT)}}},t.Expr.prototype._parseInputs=function(t){var e=t.match(/\\$\\d/g),i=0;if(null!==e)for(var s=0;s<e.length;s++){var n=parseInt(e[s].substr(1))+1;i=Math.max(i,n)}return i},t.Expr.prototype._replacements=function(t){for(var e=t.shift(),i=0;i<t.length;i++)e=e.replace(/\\%/i,t[i]);return e},t.Expr.prototype._tokenize=function(e){for(var i=-1,s=[];e.length>0;){e=e.trim();var n=function(e){for(var i in t.Expr._Expressions){var s=t.Expr._Expressions[i];for(var n in s){var o=s[n],r=o.regexp,a=e.match(r);if(null!==a)return{type:i,value:a[0],method:o.method}}}throw new SyntaxError(\"Tone.Expr: Unexpected token \"+e)}(e);s.push(n),e=e.substr(n.value.length)}return{next:function(){return s[++i]},peek:function(){return s[i+1]}}},t.Expr.prototype._parseTree=function(e){function i(t,e){return!c(t)&&\"glue\"===t.type&&t.value===e}function s(e,i,s){var n=t.Expr._Expressions[i];if(!c(e))for(var o in n){var r=n[o];if(r.regexp.test(e.value)){if(c(s))return!0;if(r.precedence===s)return!0}}return!1}function n(t){c(t)&&(t=5);var e;e=t<0?o():n(t-1);for(var i=l.peek();s(i,\"binary\",t);)i=l.next(),e={operator:i.value,method:i.method,args:[e,n(t-1)]},i=l.peek();return e}function o(){var t,e;return t=l.peek(),s(t,\"unary\")?(t=l.next(),e=o(),{operator:t.value,method:t.method,args:[e]}):r()}function r(){var t,e;if(t=l.peek(),c(t))throw new SyntaxError(\"Tone.Expr: Unexpected termination of expression\");if(\"func\"===t.type)return t=l.next(),a(t);if(\"value\"===t.type)return t=l.next(),{method:t.method,args:t.value};if(i(t,\"(\")){if(l.next(),e=n(),t=l.next(),!i(t,\")\"))throw new SyntaxError(\"Expected )\");return e}throw new SyntaxError(\"Tone.Expr: Parse error, cannot process token \"+t.value)}function a(t){var e,s=[];if(e=l.next(),!i(e,\"(\"))throw new SyntaxError('Tone.Expr: Expected ( in a function call \"'+t.value+'\"');if(e=l.peek(),i(e,\")\")||(s=h()),e=l.next(),!i(e,\")\"))throw new SyntaxError('Tone.Expr: Expected ) in a function call \"'+t.value+'\"');return{method:t.method,args:s,name:name}}function h(){for(var t,e,s=[];;){if(e=n(),c(e))break;if(s.push(e),t=l.peek(),!i(t,\",\"))break;l.next()}return s}var l=this._tokenize(e),c=this.isUndef.bind(this);return n()},t.Expr.prototype._eval=function(t){if(!this.isUndef(t)){var e=t.method(t.args,this);return this._nodes.push(e),e}},t.Expr.prototype._disposeNodes=function(){for(var t=0;t<this._nodes.length;t++){var e=this._nodes[t];this.isFunction(e.dispose)?e.dispose():this.isFunction(e.disconnect)&&e.disconnect(),e=null,this._nodes[t]=null}this._nodes=null},t.Expr.prototype.dispose=function(){t.prototype.dispose.call(this),this._disposeNodes()},t.Expr}),t(function(t){return t.EqualPowerGain=function(){this._eqPower=this.input=this.output=new t.WaveShaper(function(t){return Math.abs(t)<.001?0:this.equalPowerScale(t)}.bind(this),4096)},t.extend(t.EqualPowerGain,t.SignalBase),t.EqualPowerGain.prototype.dispose=function(){return t.prototype.dispose.call(this),this._eqPower.dispose(),this._eqPower=null,this},t.EqualPowerGain}),t(function(t){return t.CrossFade=function(e){this.createInsOuts(2,1),this.a=this.input[0]=new t.Gain,this.b=this.input[1]=new t.Gain,this.fade=new t.Signal(this.defaultArg(e,.5),t.Type.NormalRange),this._equalPowerA=new t.EqualPowerGain,this._equalPowerB=new t.EqualPowerGain,this._invert=new t.Expr(\"1 - $0\"),this.a.connect(this.output),this.b.connect(this.output),this.fade.chain(this._equalPowerB,this.b.gain),this.fade.chain(this._invert,this._equalPowerA,this.a.gain),this._readOnly(\"fade\")},t.extend(t.CrossFade),t.CrossFade.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(\"fade\"),this._equalPowerA.dispose(),this._equalPowerA=null,this._equalPowerB.dispose(),this._equalPowerB=null,this.fade.dispose(),this.fade=null,this._invert.dispose(),this._invert=null,this.a.dispose(),this.a=null,this.b.dispose(),this.b=null,this},t.CrossFade}),t(function(t){return t.Filter=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,[\"frequency\",\"type\",\"rolloff\"],t.Filter.defaults);this._filters=[],this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(0,t.Type.Cents),this.gain=new t.Signal({value:e.gain,convert:!1}),this.Q=new t.Signal(e.Q),this._type=e.type,this._rolloff=e.rolloff,this.rolloff=e.rolloff,this._readOnly([\"detune\",\"frequency\",\"gain\",\"Q\"])},t.extend(t.Filter),t.Filter.defaults={type:\"lowpass\",frequency:350,rolloff:-12,Q:1,gain:0},Object.defineProperty(t.Filter.prototype,\"type\",{get:function(){return this._type},set:function(t){if(-1===[\"lowpass\",\"highpass\",\"bandpass\",\"lowshelf\",\"highshelf\",\"notch\",\"allpass\",\"peaking\"].indexOf(t))throw new TypeError(\"Tone.Filter: invalid type \"+t);this._type=t;for(var e=0;e<this._filters.length;e++)this._filters[e].type=t}}),Object.defineProperty(t.Filter.prototype,\"rolloff\",{get:function(){return this._rolloff},set:function(t){t=parseInt(t,10);var e=[-12,-24,-48,-96],i=e.indexOf(t);if(-1===i)throw new RangeError(\"Tone.Filter: rolloff can only be -12, -24, -48 or -96\");i+=1,this._rolloff=t,this.input.disconnect();for(var s=0;s<this._filters.length;s++)this._filters[s].disconnect(),this._filters[s]=null;this._filters=new Array(i);for(var n=0;n<i;n++){var o=this.context.createBiquadFilter();o.type=this._type,this.frequency.connect(o.frequency),this.detune.connect(o.detune),this.Q.connect(o.Q),this.gain.connect(o.gain),this._filters[n]=o}var r=[this.input].concat(this._filters).concat([this.output]);this.connectSeries.apply(this,r)}}),t.Filter.prototype.dispose=function(){t.prototype.dispose.call(this);for(var e=0;e<this._filters.length;e++)this._filters[e].disconnect(),this._filters[e]=null;return this._filters=null,this._writable([\"detune\",\"frequency\",\"gain\",\"Q\"]),this.frequency.dispose(),this.Q.dispose(),this.frequency=null,this.Q=null,this.detune.dispose(),this.detune=null,this.gain.dispose(),this.gain=null,this},t.Filter}),t(function(t){return t.MultibandSplit=function(){var e=this.optionsObject(arguments,[\"lowFrequency\",\"highFrequency\"],t.MultibandSplit.defaults);this.input=new t.Gain,this.output=new Array(3),this.low=this.output[0]=new t.Filter(0,\"lowpass\"),this._lowMidFilter=new t.Filter(0,\"highpass\"),this.mid=this.output[1]=new t.Filter(0,\"lowpass\"),this.high=this.output[2]=new t.Filter(0,\"highpass\"),this.lowFrequency=new t.Signal(e.lowFrequency,t.Type.Frequency),this.highFrequency=new t.Signal(e.highFrequency,t.Type.Frequency),this.Q=new t.Signal(e.Q),this.input.fan(this.low,this.high),this.input.chain(this._lowMidFilter,this.mid),this.lowFrequency.connect(this.low.frequency),this.lowFrequency.connect(this._lowMidFilter.frequency),this.highFrequency.connect(this.mid.frequency),this.highFrequency.connect(this.high.frequency),this.Q.connect(this.low.Q),this.Q.connect(this._lowMidFilter.Q),this.Q.connect(this.mid.Q),this.Q.connect(this.high.Q),this._readOnly([\"high\",\"mid\",\"low\",\"highFrequency\",\"lowFrequency\"])},t.extend(t.MultibandSplit),t.MultibandSplit.defaults={lowFrequency:400,highFrequency:2500,Q:1},t.MultibandSplit.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"high\",\"mid\",\"low\",\"highFrequency\",\"lowFrequency\"]),this.low.dispose(),this.low=null,this._lowMidFilter.dispose(),this._lowMidFilter=null,this.mid.dispose(),this.mid=null,this.high.dispose(),this.high=null,this.lowFrequency.dispose(),this.lowFrequency=null,this.highFrequency.dispose(),this.highFrequency=null,this.Q.dispose(),this.Q=null,this},t.MultibandSplit}),t(function(t){return t.EQ3=function(){var e=this.optionsObject(arguments,[\"low\",\"mid\",\"high\"],t.EQ3.defaults);this.output=new t.Gain,this._multibandSplit=this.input=new t.MultibandSplit({lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this._lowGain=new t.Gain(e.low,t.Type.Decibels),this._midGain=new t.Gain(e.mid,t.Type.Decibels),this._highGain=new t.Gain(e.high,t.Type.Decibels),this.low=this._lowGain.gain,this.mid=this._midGain.gain,this.high=this._highGain.gain,this.Q=this._multibandSplit.Q,this.lowFrequency=this._multibandSplit.lowFrequency,this.highFrequency=this._multibandSplit.highFrequency,this._multibandSplit.low.chain(this._lowGain,this.output),this._multibandSplit.mid.chain(this._midGain,this.output),this._multibandSplit.high.chain(this._highGain,this.output),this._readOnly([\"low\",\"mid\",\"high\",\"lowFrequency\",\"highFrequency\"])},t.extend(t.EQ3),t.EQ3.defaults={low:0,mid:0,high:0,lowFrequency:400,highFrequency:2500},t.EQ3.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"low\",\"mid\",\"high\",\"lowFrequency\",\"highFrequency\"]),this._multibandSplit.dispose(),this._multibandSplit=null,this.lowFrequency=null,this.highFrequency=null,this._lowGain.dispose(),this._lowGain=null,this._midGain.dispose(),this._midGain=null,this._highGain.dispose(),this._highGain=null,this.low=null,this.mid=null,this.high=null,this.Q=null,this},t.EQ3}),t(function(t){return t.Scale=function(e,i){this._outputMin=this.defaultArg(e,0),this._outputMax=this.defaultArg(i,1),this._scale=this.input=new t.Multiply(1),this._add=this.output=new t.Add(0),this._scale.connect(this._add),this._setRange()},t.extend(t.Scale,t.SignalBase),Object.defineProperty(t.Scale.prototype,\"min\",{get:function(){return this._outputMin},set:function(t){this._outputMin=t,this._setRange()}}),Object.defineProperty(t.Scale.prototype,\"max\",{get:function(){return this._outputMax},set:function(t){this._outputMax=t,this._setRange()}}),t.Scale.prototype._setRange=function(){this._add.value=this._outputMin,this._scale.value=this._outputMax-this._outputMin},t.Scale.prototype.dispose=function(){return t.prototype.dispose.call(this),this._add.dispose(),this._add=null,this._scale.dispose(),this._scale=null,this},t.Scale}),t(function(t){return t.ScaleExp=function(e,i,s){this._scale=this.output=new t.Scale(e,i),this._exp=this.input=new t.Pow(this.defaultArg(s,2)),this._exp.connect(this._scale)},t.extend(t.ScaleExp,t.SignalBase),Object.defineProperty(t.ScaleExp.prototype,\"exponent\",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),Object.defineProperty(t.ScaleExp.prototype,\"min\",{get:function(){return this._scale.min},set:function(t){this._scale.min=t}}),Object.defineProperty(t.ScaleExp.prototype,\"max\",{get:function(){return this._scale.max},set:function(t){this._scale.max=t}}),t.ScaleExp.prototype.dispose=function(){return t.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._exp.dispose(),this._exp=null,this},t.ScaleExp}),t(function(t){return window.DelayNode&&!AudioContext.prototype.createDelay&&(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),t.Delay=function(){var e=this.optionsObject(arguments,[\"delayTime\",\"maxDelay\"],t.Delay.defaults);this._delayNode=this.input=this.output=this.context.createDelay(this.toSeconds(e.maxDelay)),this.delayTime=new t.Param({param:this._delayNode.delayTime,units:t.Type.Time,value:e.delayTime}),this._readOnly(\"delayTime\")},t.extend(t.Delay),t.Delay.defaults={maxDelay:1,delayTime:0},t.Delay.prototype.dispose=function(){return t.Param.prototype.dispose.call(this),this._delayNode.disconnect(),this._delayNode=null,this._writable(\"delayTime\"),this.delayTime=null,this},t.Delay}),t(function(t){return t.FeedbackCombFilter=function(){var e=this.optionsObject(arguments,[\"delayTime\",\"resonance\"],t.FeedbackCombFilter.defaults);this._delay=this.input=this.output=new t.Delay(e.delayTime),this.delayTime=this._delay.delayTime,this._feedback=new t.Gain(e.resonance,t.Type.NormalRange),this.resonance=this._feedback.gain,this._delay.chain(this._feedback,this._delay),this._readOnly([\"resonance\",\"delayTime\"])},t.extend(t.FeedbackCombFilter),t.FeedbackCombFilter.defaults={delayTime:.1,resonance:.5},t.FeedbackCombFilter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"resonance\",\"delayTime\"]),this._delay.dispose(),this._delay=null,this.delayTime=null,this._feedback.dispose(),this._feedback=null,this.resonance=null,this},t.FeedbackCombFilter}),t(function(t){return t.Follower=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,[\"attack\",\"release\"],t.Follower.defaults);this._abs=new t.Abs,this._filter=this.context.createBiquadFilter(),this._filter.type=\"lowpass\",this._filter.frequency.value=0,this._filter.Q.value=-100,this._frequencyValues=new t.WaveShaper,this._sub=new t.Subtract,this._delay=new t.Delay(this.blockTime),this._mult=new t.Multiply(1e4),this._attack=e.attack,this._release=e.release,this.input.chain(this._abs,this._filter,this.output),this._abs.connect(this._sub,0,1),this._filter.chain(this._delay,this._sub),this._sub.chain(this._mult,this._frequencyValues,this._filter.frequency),this._setAttackRelease(this._attack,this._release)},t.extend(t.Follower),t.Follower.defaults={attack:.05,release:.5},t.Follower.prototype._setAttackRelease=function(e,i){var s=this.blockTime;e=t.Time(e).toFrequency(),i=t.Time(i).toFrequency(),e=Math.max(e,s),i=Math.max(i,s),this._frequencyValues.setMap(function(t){return t<=0?e:i})},Object.defineProperty(t.Follower.prototype,\"attack\",{get:function(){return this._attack},set:function(t){this._attack=t,this._setAttackRelease(this._attack,this._release)}}),Object.defineProperty(t.Follower.prototype,\"release\",{get:function(){return this._release},set:function(t){this._release=t,this._setAttackRelease(this._attack,this._release)}}),t.Follower.prototype.connect=t.Signal.prototype.connect,t.Follower.prototype.dispose=function(){return t.prototype.dispose.call(this),this._filter.disconnect(),this._filter=null,this._frequencyValues.disconnect(),this._frequencyValues=null,this._delay.dispose(),this._delay=null,this._sub.disconnect(),this._sub=null,this._abs.dispose(),this._abs=null,this._mult.dispose(),this._mult=null,this._curve=null,this},t.Follower}),t(function(t){return t.ScaledEnvelope=function(){var e=this.optionsObject(arguments,[\"attack\",\"decay\",\"sustain\",\"release\"],t.Envelope.defaults);t.Envelope.call(this,e),e=this.defaultArg(e,t.ScaledEnvelope.defaults),this._exp=this.output=new t.Pow(e.exponent),this._scale=this.output=new t.Scale(e.min,e.max),this._sig.chain(this._exp,this._scale)},t.extend(t.ScaledEnvelope,t.Envelope),t.ScaledEnvelope.defaults={min:0,max:1,exponent:1},Object.defineProperty(t.ScaledEnvelope.prototype,\"min\",{get:function(){return this._scale.min},set:function(t){this._scale.min=t}}),Object.defineProperty(t.ScaledEnvelope.prototype,\"max\",{get:function(){return this._scale.max},set:function(t){this._scale.max=t}}),Object.defineProperty(t.ScaledEnvelope.prototype,\"exponent\",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),t.ScaledEnvelope.prototype.dispose=function(){return t.Envelope.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._exp.dispose(),this._exp=null,this},t.ScaledEnvelope}),t(function(t){return t.FrequencyEnvelope=function(){var e=this.optionsObject(arguments,[\"attack\",\"decay\",\"sustain\",\"release\"],t.Envelope.defaults);t.ScaledEnvelope.call(this,e),e=this.defaultArg(e,t.FrequencyEnvelope.defaults),this._octaves=e.octaves,this.baseFrequency=e.baseFrequency,this.octaves=e.octaves},t.extend(t.FrequencyEnvelope,t.Envelope),t.FrequencyEnvelope.defaults={baseFrequency:200,octaves:4,exponent:2},Object.defineProperty(t.FrequencyEnvelope.prototype,\"baseFrequency\",{get:function(){return this._scale.min},set:function(t){this._scale.min=this.toFrequency(t),this.octaves=this._octaves}}),Object.defineProperty(t.FrequencyEnvelope.prototype,\"octaves\",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._scale.max=this.baseFrequency*Math.pow(2,t)}}),Object.defineProperty(t.FrequencyEnvelope.prototype,\"exponent\",{get:function(){return this._exp.value},set:function(t){this._exp.value=t}}),t.FrequencyEnvelope.prototype.dispose=function(){return t.ScaledEnvelope.prototype.dispose.call(this),this},t.FrequencyEnvelope}),t(function(t){return t.Gate=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,[\"threshold\",\"attack\",\"release\"],t.Gate.defaults);this._follower=new t.Follower(e.attack,e.release),this._gt=new t.GreaterThan(this.dbToGain(e.threshold)),this.input.connect(this.output),this.input.chain(this._gt,this._follower,this.output.gain)},t.extend(t.Gate),t.Gate.defaults={attack:.1,release:.1,threshold:-40},Object.defineProperty(t.Gate.prototype,\"threshold\",{get:function(){return this.gainToDb(this._gt.value)},set:function(t){this._gt.value=this.dbToGain(t)}}),Object.defineProperty(t.Gate.prototype,\"attack\",{get:function(){return this._follower.attack},set:function(t){this._follower.attack=t}}),Object.defineProperty(t.Gate.prototype,\"release\",{get:function(){return this._follower.release},set:function(t){this._follower.release=t}}),t.Gate.prototype.dispose=function(){return t.prototype.dispose.call(this),this._follower.dispose(),this._gt.dispose(),this._follower=null,this._gt=null,this},t.Gate}),t(function(t){return t.TimelineState=function(e){t.Timeline.call(this),this._initial=e},t.extend(t.TimelineState,t.Timeline),t.TimelineState.prototype.getValueAtTime=function(t){var e=this.get(t);return null!==e?e.state:this._initial},t.TimelineState.prototype.setStateAtTime=function(t,e){this.add({state:t,time:e})},t.TimelineState}),t(function(t){return t.Clock=function(){t.Emitter.call(this);var e=this.optionsObject(arguments,[\"callback\",\"frequency\"],t.Clock.defaults);this.callback=e.callback,this._nextTick=0,this._lastState=t.State.Stopped,this.frequency=new t.TimelineSignal(e.frequency,t.Type.Frequency),this._readOnly(\"frequency\"),this.ticks=0,this._state=new t.TimelineState(t.State.Stopped),this._boundLoop=this._loop.bind(this),this.context.on(\"tick\",this._boundLoop)},t.extend(t.Clock,t.Emitter),t.Clock.defaults={callback:t.noOp,frequency:1,lookAhead:\"auto\"},Object.defineProperty(t.Clock.prototype,\"state\",{get:function(){return this._state.getValueAtTime(this.now())}}),t.Clock.prototype.start=function(e,i){return e=this.toSeconds(e),this._state.getValueAtTime(e)!==t.State.Started&&this._state.add({state:t.State.Started,time:e,offset:i}),this},t.Clock.prototype.stop=function(e){return e=this.toSeconds(e),this._state.cancel(e),this._state.setStateAtTime(t.State.Stopped,e),this},t.Clock.prototype.pause=function(e){return e=this.toSeconds(e),this._state.getValueAtTime(e)===t.State.Started&&this._state.setStateAtTime(t.State.Paused,e),this},t.Clock.prototype._loop=function(){for(var e=this.now(),i=this.context.lookAhead,s=this.context.updateInterval,n=2*this.context.lag,o=e+i+s+n;o>this._nextTick&&this._state;){var r=this._state.getValueAtTime(this._nextTick);if(r!==this._lastState){this._lastState=r;var a=this._state.get(this._nextTick);r===t.State.Started?(this._nextTick=a.time,this.isUndef(a.offset)||(this.ticks=a.offset),this.emit(\"start\",a.time,this.ticks)):r===t.State.Stopped?(this.ticks=0,this.emit(\"stop\",a.time)):r===t.State.Paused&&this.emit(\"pause\",a.time)}var h=this._nextTick;this.frequency&&(this._nextTick+=1/this.frequency.getValueAtTime(this._nextTick),r===t.State.Started&&(this.callback(h),this.ticks++))}},t.Clock.prototype.getStateAtTime=function(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)},t.Clock.prototype.dispose=function(){t.Emitter.prototype.dispose.call(this),this.context.off(\"tick\",this._boundLoop),this._writable(\"frequency\"),this.frequency.dispose(),this.frequency=null,this._boundLoop=null,this._nextTick=1/0,this.callback=null,this._state.dispose(),this._state=null},t.Clock}),t(function(t){t.IntervalTimeline=function(){this._root=null,this._length=0},t.extend(t.IntervalTimeline),t.IntervalTimeline.prototype.add=function(t){if(this.isUndef(t.time)||this.isUndef(t.duration))throw new Error(\"Tone.IntervalTimeline: events must have time and duration parameters\");var i=new e(t.time,t.time+t.duration,t);for(null===this._root?this._root=i:this._root.insert(i),this._length++;null!==i;)i.updateHeight(),i.updateMax(),this._rebalance(i),i=i.parent;return this},t.IntervalTimeline.prototype.remove=function(t){if(null!==this._root){var e=[];this._root.search(t.time,e);for(var i=0;i<e.length;i++){var s=e[i];if(s.event===t){this._removeNode(s),this._length--;break}}}return this},Object.defineProperty(t.IntervalTimeline.prototype,\"length\",{get:function(){return this._length}}),t.IntervalTimeline.prototype.cancel=function(t){return this.forEachAfter(t,function(t){this.remove(t)}.bind(this)),this},t.IntervalTimeline.prototype._setRoot=function(t){this._root=t,null!==this._root&&(this._root.parent=null)},t.IntervalTimeline.prototype._replaceNodeInParent=function(t,e){null!==t.parent?(t.isLeftChild()?t.parent.left=e:t.parent.right=e,this._rebalance(t.parent)):this._setRoot(e)},t.IntervalTimeline.prototype._removeNode=function(t){if(null===t.left&&null===t.right)this._replaceNodeInParent(t,null);else if(null===t.right)this._replaceNodeInParent(t,t.left);else if(null===t.left)this._replaceNodeInParent(t,t.right);else{var e,i,s=t.getBalance();if(s>0)if(null===t.left.right)e=t.left,e.right=t.right,i=e;else{for(e=t.left.right;null!==e.right;)e=e.right;e.parent.right=e.left,i=e.parent,e.left=t.left,e.right=t.right}else if(null===t.right.left)e=t.right,e.left=t.left,i=e;else{for(e=t.right.left;null!==e.left;)e=e.left;e.parent=e.parent,e.parent.left=e.right,i=e.parent,e.left=t.left,e.right=t.right}null!==t.parent?t.isLeftChild()?t.parent.left=e:t.parent.right=e:this._setRoot(e),this._rebalance(i)}t.dispose()},t.IntervalTimeline.prototype._rotateLeft=function(t){var e=t.parent,i=t.isLeftChild(),s=t.right;t.right=s.left,s.left=t,null!==e?i?e.left=s:e.right=s:this._setRoot(s)},t.IntervalTimeline.prototype._rotateRight=function(t){var e=t.parent,i=t.isLeftChild(),s=t.left;t.left=s.right,s.right=t,null!==e?i?e.left=s:e.right=s:this._setRoot(s)},t.IntervalTimeline.prototype._rebalance=function(t){var e=t.getBalance();e>1?t.left.getBalance()<0?this._rotateLeft(t.left):this._rotateRight(t):e<-1&&(t.right.getBalance()>0?this._rotateRight(t.right):this._rotateLeft(t))},t.IntervalTimeline.prototype.get=function(t){if(null!==this._root){var e=[];if(this._root.search(t,e),e.length>0){for(var i=e[0],s=1;s<e.length;s++)e[s].low>i.low&&(i=e[s]);return i.event}}return null},t.IntervalTimeline.prototype.forEach=function(t){if(null!==this._root){var e=[];null!==this._root&&this._root.traverse(function(t){e.push(t)});for(var i=0;i<e.length;i++){var s=e[i].event;s&&t(s)}}return this},t.IntervalTimeline.prototype.forEachAtTime=function(t,e){if(null!==this._root){var i=[];this._root.search(t,i);for(var s=i.length-1;s>=0;s--){var n=i[s].event;n&&e(n)}}return this},t.IntervalTimeline.prototype.forEachAfter=function(t,e){if(null!==this._root){var i=[];this._root.searchAfter(t,i);for(var s=i.length-1;s>=0;s--){var n=i[s].event;n&&e(n)}}return this},t.IntervalTimeline.prototype.dispose=function(){var t=[];null!==this._root&&this._root.traverse(function(e){t.push(e)});for(var e=0;e<t.length;e++)t[e].dispose();return t=null,this._root=null,this};var e=function(t,e,i){this.event=i,this.low=t,this.high=e,this.max=this.high,this._left=null,this._right=null,this.parent=null,this.height=0};return e.prototype.insert=function(t){t.low<=this.low?null===this.left?this.left=t:this.left.insert(t):null===this.right?this.right=t:this.right.insert(t)},e.prototype.search=function(t,e){t>this.max||(null!==this.left&&this.left.search(t,e),this.low<=t&&this.high>t&&e.push(this),this.low>t||null!==this.right&&this.right.search(t,e))},e.prototype.searchAfter=function(t,e){this.low>=t&&(e.push(this),null!==this.left&&this.left.searchAfter(t,e)),null!==this.right&&this.right.searchAfter(t,e)},e.prototype.traverse=function(t){t(this),null!==this.left&&this.left.traverse(t),null!==this.right&&this.right.traverse(t)},e.prototype.updateHeight=function(){null!==this.left&&null!==this.right?this.height=Math.max(this.left.height,this.right.height)+1:null!==this.right?this.height=this.right.height+1:null!==this.left?this.height=this.left.height+1:this.height=0},e.prototype.updateMax=function(){this.max=this.high,null!==this.left&&(this.max=Math.max(this.max,this.left.max)),null!==this.right&&(this.max=Math.max(this.max,this.right.max))},e.prototype.getBalance=function(){var t=0;return null!==this.left&&null!==this.right?t=this.left.height-this.right.height:null!==this.left?t=this.left.height+1:null!==this.right&&(t=-(this.right.height+1)),t},e.prototype.isLeftChild=function(){return null!==this.parent&&this.parent.left===this},Object.defineProperty(e.prototype,\"left\",{get:function(){return this._left},set:function(t){this._left=t,null!==t&&(t.parent=this),this.updateHeight(),this.updateMax()}}),Object.defineProperty(e.prototype,\"right\",{get:function(){return this._right},set:function(t){this._right=t,null!==t&&(t.parent=this),this.updateHeight(),this.updateMax()}}),e.prototype.dispose=function(){this.parent=null,this._left=null,this._right=null,this.event=null},t.IntervalTimeline}),t(function(t){t.Transport=function(){t.Emitter.call(this),this.loop=!1,this._loopStart=0,this._loopEnd=0,this._ppq=e.defaults.PPQ,this._clock=new t.Clock({callback:this._processTick.bind(this),frequency:0}),this._bindClockEvents(),this.bpm=this._clock.frequency,this.bpm._toUnits=this._toUnits.bind(this),this.bpm._fromUnits=this._fromUnits.bind(this),this.bpm.units=t.Type.BPM,this.bpm.value=e.defaults.bpm,this._readOnly(\"bpm\"),this._timeSignature=e.defaults.timeSignature,this._scheduledEvents={},this._eventID=0,this._timeline=new t.Timeline,this._repeatedEvents=new t.IntervalTimeline,this._onceEvents=new t.Timeline,this._syncedSignals=[],this._swingTicks=e.defaults.PPQ/2,this._swingAmount=0},t.extend(t.Transport,t.Emitter),t.Transport.defaults={bpm:120,swing:0,swingSubdivision:\"8n\",timeSignature:4,loopStart:0,loopEnd:\"4m\",PPQ:192},t.Transport.prototype._processTick=function(e){var i=this._clock.ticks;if(this._swingAmount>0&&i%this._ppq!=0&&i%(2*this._swingTicks)!=0){var s=i%(2*this._swingTicks)/(2*this._swingTicks),n=Math.sin(s*Math.PI)*this._swingAmount;e+=t.Time(2*this._swingTicks/3,\"i\")*n}this.loop&&i===this._loopEnd&&(this.emit(\"loopEnd\",e),this._clock.ticks=this._loopStart,i=this._loopStart,this.emit(\"loopStart\",e,this.seconds),this.emit(\"loop\",e)),this._onceEvents.forEachBefore(i,function(t){t.callback(e),delete this._scheduledEvents[t.id.toString()]}.bind(this)),this._onceEvents.cancelBefore(i),this._timeline.forEachAtTime(i,function(t){t.callback(e)}),this._repeatedEvents.forEachAtTime(i,function(t){(i-t.time)%t.interval==0&&t.callback(e)})},t.Transport.prototype.schedule=function(t,e){var i={time:this.toTicks(e),callback:t},s=this._eventID++;return this._scheduledEvents[s.toString()]={event:i,timeline:this._timeline},this._timeline.add(i),s},t.Transport.prototype.scheduleRepeat=function(t,e,i,s){if(e<=0)throw new Error(\"Tone.Transport: repeat events must have an interval larger than 0\");var n={time:this.toTicks(i),duration:this.toTicks(this.defaultArg(s,1/0)),interval:this.toTicks(e),callback:t},o=this._eventID++;return this._scheduledEvents[o.toString()]={event:n,timeline:this._repeatedEvents},this._repeatedEvents.add(n),o},t.Transport.prototype.scheduleOnce=function(t,e){var i=this._eventID++,s={time:this.toTicks(e),callback:t,id:i};return this._scheduledEvents[i.toString()]={event:s,timeline:this._onceEvents},this._onceEvents.add(s),i},t.Transport.prototype.clear=function(t){if(this._scheduledEvents.hasOwnProperty(t)){var e=this._scheduledEvents[t.toString()];e.timeline.remove(e.event),delete this._scheduledEvents[t.toString()]}return this},t.Transport.prototype.cancel=function(t){return t=this.defaultArg(t,0),t=this.toTicks(t),this._timeline.cancel(t),this._onceEvents.cancel(t),this._repeatedEvents.cancel(t),this},t.Transport.prototype._bindClockEvents=function(){this._clock.on(\"start\",function(e,i){i=t.Time(this._clock.ticks,\"i\").toSeconds(),this.emit(\"start\",e,i)}.bind(this)),this._clock.on(\"stop\",function(t){this.emit(\"stop\",t)}.bind(this)),this._clock.on(\"pause\",function(t){this.emit(\"pause\",t)}.bind(this))},Object.defineProperty(t.Transport.prototype,\"state\",{get:function(){return this._clock.getStateAtTime(this.now())}}),t.Transport.prototype.start=function(t,e){return this.isUndef(e)||(e=this.toTicks(e)),this._clock.start(t,e),this},t.Transport.prototype.stop=function(t){return this._clock.stop(t),this},t.Transport.prototype.pause=function(t){return this._clock.pause(t),this},Object.defineProperty(t.Transport.prototype,\"timeSignature\",{get:function(){return this._timeSignature},set:function(t){this.isArray(t)&&(t=t[0]/t[1]*4),this._timeSignature=t}}),Object.defineProperty(t.Transport.prototype,\"loopStart\",{get:function(){return t.TransportTime(this._loopStart,\"i\").toSeconds()},set:function(t){this._loopStart=this.toTicks(t)}}),Object.defineProperty(t.Transport.prototype,\"loopEnd\",{get:function(){return t.TransportTime(this._loopEnd,\"i\").toSeconds()},set:function(t){this._loopEnd=this.toTicks(t)}}),t.Transport.prototype.setLoopPoints=function(t,e){return this.loopStart=t,this.loopEnd=e,this},Object.defineProperty(t.Transport.prototype,\"swing\",{get:function(){return this._swingAmount},set:function(t){this._swingAmount=t}}),Object.defineProperty(t.Transport.prototype,\"swingSubdivision\",{get:function(){return t.Time(this._swingTicks,\"i\").toNotation()},set:function(t){this._swingTicks=this.toTicks(t)}}),Object.defineProperty(t.Transport.prototype,\"position\",{get:function(){return t.TransportTime(this.ticks,\"i\").toBarsBeatsSixteenths()},set:function(t){var e=this.toTicks(t);this.ticks=e}}),Object.defineProperty(t.Transport.prototype,\"seconds\",{get:function(){return t.TransportTime(this.ticks,\"i\").toSeconds()},set:function(t){var e=this.toTicks(t);this.ticks=e}}),Object.defineProperty(t.Transport.prototype,\"progress\",{get:function(){return this.loop?(this.ticks-this._loopStart)/(this._loopEnd-this._loopStart):0}}),Object.defineProperty(t.Transport.prototype,\"ticks\",{get:function(){return this._clock.ticks},set:function(e){if(this._clock.ticks!==e){var i=this.now();this.state===t.State.Started?(this.emit(\"stop\",i),this._clock.ticks=e,this.emit(\"start\",i,this.seconds)):this._clock.ticks=e}}}),Object.defineProperty(t.Transport.prototype,\"PPQ\",{get:function(){return this._ppq},set:function(t){var e=this.bpm.value;this._ppq=t,this.bpm.value=e}}),Object.defineProperty(t.Transport.prototype,\"latencyHint\",{get:function(){return t.Clock.latencyHint},set:function(e){t.Clock.latencyHint=e}}),t.Transport.prototype._fromUnits=function(t){return 1/(60/t/this.PPQ)},t.Transport.prototype._toUnits=function(t){return t/this.PPQ*60},t.Transport.prototype.nextSubdivision=function(e){e=this.toSeconds(e);var i;if(this.state!==t.State.Started)return 0;i=this._clock._nextTick;var s=t.Time(this.ticks,\"i\"),n=e-s%e;return 0===n&&(n=e),i+n},t.Transport.prototype.syncSignal=function(e,i){i||(i=0!==e._param.value?e._param.value/this.bpm._param.value:0);var s=new t.Gain(i);return this.bpm.chain(s,e._param),this._syncedSignals.push({ratio:s,signal:e,initial:e._param.value}),e._param.value=0,this},t.Transport.prototype.unsyncSignal=function(t){for(var e=this._syncedSignals.length-1;e>=0;e--){var i=this._syncedSignals[e];i.signal===t&&(i.ratio.dispose(),i.signal._param.value=i.initial,this._syncedSignals.splice(e,1))}return this},t.Transport.prototype.dispose=function(){return t.Emitter.prototype.dispose.call(this),this._clock.dispose(),this._clock=null,this._writable(\"bpm\"),this.bpm=null,this._timeline.dispose(),this._timeline=null,this._onceEvents.dispose(),this._onceEvents=null,this._repeatedEvents.dispose(),this._repeatedEvents=null,this};var e=t.Transport;return t.Transport=new e,t.Context.on(\"init\",function(i){i.Transport instanceof e?t.Transport=i.Transport:(t.Transport=new e,i.Transport=t.Transport)}),t.Transport}),t(function(t){return t.Volume=function(){var e=this.optionsObject(arguments,[\"volume\"],t.Volume.defaults);this.output=this.input=new t.Gain(e.volume,t.Type.Decibels),this._unmutedVolume=e.volume,this.volume=this.output.gain,this._readOnly(\"volume\"),this.mute=e.mute},t.extend(t.Volume),t.Volume.defaults={volume:0,mute:!1},Object.defineProperty(t.Volume.prototype,\"mute\",{get:function(){return this.volume.value===-1/0},set:function(t){!this.mute&&t?(this._unmutedVolume=this.volume.value,this.volume.value=-1/0):this.mute&&!t&&(this.volume.value=this._unmutedVolume)}}),t.Volume.prototype.dispose=function(){return this.input.dispose(),t.prototype.dispose.call(this),this._writable(\"volume\"),this.volume.dispose(),this.volume=null,this},t.Volume}),t(function(t){t.Master=function(){this.createInsOuts(1,1),this._volume=this.output=new t.Volume,this.volume=this._volume.volume,this._readOnly(\"volume\"),this.input.chain(this.output,this.context.destination)},t.extend(t.Master),t.Master.defaults={volume:0,mute:!1},Object.defineProperty(t.Master.prototype,\"mute\",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.Master.prototype.chain=function(){this.input.disconnect(),this.input.chain.apply(this.input,arguments),arguments[arguments.length-1].connect(this.output)},t.Master.prototype.dispose=function(){t.prototype.dispose.call(this),this._writable(\"volume\"),this._volume.dispose(),this._volume=null,this.volume=null},t.prototype.toMaster=function(){return this.connect(t.Master),this},AudioNode.prototype.toMaster=function(){return this.connect(t.Master),this};var e=t.Master;return t.Master=new e,t.Context.on(\"init\",function(i){i.Master instanceof e?t.Master=i.Master:t.Master=new e,i.Master=t.Master}),t.Master}),t(function(t){return t.Source=function(e){e=this.defaultArg(e,t.Source.defaults),this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly(\"volume\"),this._state=new t.TimelineState(t.State.Stopped),this._state.memory=10,this._synced=!1,this._scheduled=[],this._volume.output.output.channelCount=2,this._volume.output.output.channelCountMode=\"explicit\",this.mute=e.mute},t.extend(t.Source),t.Source.defaults={volume:0,mute:!1},Object.defineProperty(t.Source.prototype,\"state\",{get:function(){return this._synced?t.Transport.state===t.State.Started?this._state.getValueAtTime(t.Transport.seconds):t.State.Stopped:this._state.getValueAtTime(this.now())}}),Object.defineProperty(t.Source.prototype,\"mute\",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.Source.prototype._start=t.noOp,t.Source.prototype._stop=t.noOp,t.Source.prototype.start=function(e,i,s){if(e=this.isUndef(e)&&this._synced?t.Transport.seconds:this.toSeconds(e),this.retrigger||this._state.getValueAtTime(e)!==t.State.Started||this.stop(e),this._state.setStateAtTime(t.State.Started,e),this._synced){var n=this._state.get(e);n.offset=this.defaultArg(i,0),n.duration=s;var o=t.Transport.schedule(function(t){this._start(t,i,s)}.bind(this),e);this._scheduled.push(o)}else this._start.apply(this,arguments);return this},t.Source.prototype.stop=function(e){if(e=this.isUndef(e)&&this._synced?t.Transport.seconds:this.toSeconds(e),this._state.cancel(e),this._state.setStateAtTime(t.State.Stopped,e),this._synced){var i=t.Transport.schedule(this._stop.bind(this),e);this._scheduled.push(i)}else this._stop.apply(this,arguments);return this},t.Source.prototype.sync=function(){return this._synced=!0,t.Transport.on(\"start loopStart\",function(e,i){if(i>0){var s=this._state.get(i);if(s&&s.state===t.State.Started&&s.time!==i){var n,o=i-this.toSeconds(s.time);s.duration&&(n=this.toSeconds(s.duration)-o),this._start(e,this.toSeconds(s.offset)+o,n)}}}.bind(this)),t.Transport.on(\"stop pause loopEnd\",function(e){this._state.getValueAtTime(t.Transport.seconds)===t.State.Started&&this._stop(e)}.bind(this)),this},t.Source.prototype.unsync=function(){this._synced=!1,t.Transport.off(\"start stop pause loopEnd loopStart\");for(var e=0;e<this._scheduled.length;e++){var i=this._scheduled[e];t.Transport.clear(i)}return this._scheduled=[],this._state.cancel(0),this},t.Source.prototype.dispose=function(){t.prototype.dispose.call(this),this.unsync(),this._scheduled=null,this._writable(\"volume\"),this._volume.dispose(),this._volume=null,this.volume=null,this._state.dispose(),this._state=null},t.Source}),t(function(t){return window.OscillatorNode&&!OscillatorNode.prototype.start&&(OscillatorNode.prototype.start=OscillatorNode.prototype.noteOn,OscillatorNode.prototype.stop=OscillatorNode.prototype.noteOff,OscillatorNode.prototype.setPeriodicWave||(OscillatorNode.prototype.setPeriodicWave=OscillatorNode.prototype.setWaveTable),AudioContext.prototype.createPeriodicWave||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable)),t.Oscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"type\"],t.Oscillator.defaults);t.Source.call(this,e),this._oscillator=null,this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this._wave=null,this._partials=this.defaultArg(e.partials,[1]),this._phase=e.phase,this._type=null,this.type=e.type,this.phase=this._phase,this._readOnly([\"frequency\",\"detune\"])},t.extend(t.Oscillator,t.Source),t.Oscillator.defaults={type:\"sine\",frequency:440,detune:0,phase:0,partials:[]},t.Oscillator.Type={Sine:\"sine\",Triangle:\"triangle\",Sawtooth:\"sawtooth\",Square:\"square\",Custom:\"custom\"},t.Oscillator.prototype._start=function(t){this._oscillator=this.context.createOscillator(),this._oscillator.setPeriodicWave(this._wave),this._oscillator.connect(this.output),this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.start(this.toSeconds(t))},t.Oscillator.prototype._stop=function(t){return this._oscillator&&(this._oscillator.stop(this.toSeconds(t)),this._oscillator=null),this},t.Oscillator.prototype.syncFrequency=function(){return t.Transport.syncSignal(this.frequency),this},t.Oscillator.prototype.unsyncFrequency=function(){return t.Transport.unsyncSignal(this.frequency),this},Object.defineProperty(t.Oscillator.prototype,\"type\",{get:function(){return this._type},set:function(t){var e=this._getRealImaginary(t,this._phase),i=this.context.createPeriodicWave(e[0],e[1]);this._wave=i,null!==this._oscillator&&this._oscillator.setPeriodicWave(this._wave),this._type=t}}),t.Oscillator.prototype._getRealImaginary=function(e,i){var s=2048,n=new Float32Array(s),o=new Float32Array(s),r=1;if(e===t.Oscillator.Type.Custom)r=this._partials.length+1,s=r;else{var a=/^(sine|triangle|square|sawtooth)(\\d+)$/.exec(e);a&&(r=parseInt(a[2])+1,e=a[1],r=Math.max(r,2),s=r)}for(var h=1;h<s;++h){var l,c=2/(h*Math.PI);switch(e){case t.Oscillator.Type.Sine:l=h<=r?1:0;break;case t.Oscillator.Type.Square:l=1&h?2*c:0;break;case t.Oscillator.Type.Sawtooth:l=c*(1&h?1:-1);break;case t.Oscillator.Type.Triangle:l=1&h?c*c*2*(h-1>>1&1?-1:1):0;break;case t.Oscillator.Type.Custom:l=this._partials[h-1];break;default:throw new TypeError(\"Tone.Oscillator: invalid type: \"+e)}0!==l?(n[h]=-l*Math.sin(i*h),o[h]=l*Math.cos(i*h)):(n[h]=0,o[h]=0)}return[n,o]},t.Oscillator.prototype._inverseFFT=function(t,e,i){for(var s=0,n=t.length,o=0;o<n;o++)s+=t[o]*Math.cos(o*i)+e[o]*Math.sin(o*i);return s},t.Oscillator.prototype._getInitialValue=function(){for(var t=this._getRealImaginary(this._type,0),e=t[0],i=t[1],s=0,n=2*Math.PI,o=0;o<8;o++)s=Math.max(this._inverseFFT(e,i,o/8*n),s);return-this._inverseFFT(e,i,this._phase)/s},Object.defineProperty(t.Oscillator.prototype,\"partials\",{get:function(){return this._type!==t.Oscillator.Type.Custom?[]:this._partials},set:function(e){this._partials=e,this.type=t.Oscillator.Type.Custom}}),Object.defineProperty(t.Oscillator.prototype,\"phase\",{get:function(){return this._phase*(180/Math.PI)},set:function(t){this._phase=t*Math.PI/180,this.type=this._type}}),t.Oscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),null!==this._oscillator&&(this._oscillator.disconnect(),this._oscillator=null),this._wave=null,this._writable([\"frequency\",\"detune\"]),this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this._partials=null,this},t.Oscillator}),t(function(t){return t.Zero=function(){this._gain=this.input=this.output=new t.Gain,this.context.getConstant(0).connect(this._gain)},t.extend(t.Zero),t.Zero.prototype.dispose=function(){return t.prototype.dispose.call(this),this._gain.dispose(),this._gain=null,this},t.Zero}),t(function(t){return t.LFO=function(){var e=this.optionsObject(arguments,[\"frequency\",\"min\",\"max\"],t.LFO.defaults);this._oscillator=new t.Oscillator({frequency:e.frequency,type:e.type}),this.frequency=this._oscillator.frequency,this.amplitude=this._oscillator.volume,this.amplitude.units=t.Type.NormalRange,this.amplitude.value=e.amplitude,this._stoppedSignal=new t.Signal(0,t.Type.AudioRange),this._zeros=new t.Zero,this._stoppedValue=0,this._a2g=new t.AudioToGain,this._scaler=this.output=new t.Scale(e.min,e.max),this._units=t.Type.Default,this.units=e.units,this._oscillator.chain(this._a2g,this._scaler),this._zeros.connect(this._a2g),this._stoppedSignal.connect(this._a2g),this._readOnly([\"amplitude\",\"frequency\"]),this.phase=e.phase},t.extend(t.LFO,t.Oscillator),t.LFO.defaults={type:\"sine\",min:0,max:1,phase:0,frequency:\"4n\",amplitude:1,units:t.Type.Default},t.LFO.prototype.start=function(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(0,t),this._oscillator.start(t),this},t.LFO.prototype.stop=function(t){return t=this.toSeconds(t),this._stoppedSignal.setValueAtTime(this._stoppedValue,t),this._oscillator.stop(t),this},t.LFO.prototype.sync=function(){return this._oscillator.sync(),this._oscillator.syncFrequency(),this},t.LFO.prototype.unsync=function(){return this._oscillator.unsync(),this._oscillator.unsyncFrequency(),this},Object.defineProperty(t.LFO.prototype,\"min\",{get:function(){return this._toUnits(this._scaler.min)},set:function(t){t=this._fromUnits(t),this._scaler.min=t}}),Object.defineProperty(t.LFO.prototype,\"max\",{get:function(){return this._toUnits(this._scaler.max)},set:function(t){t=this._fromUnits(t),this._scaler.max=t}}),Object.defineProperty(t.LFO.prototype,\"type\",{get:function(){return this._oscillator.type},set:function(t){this._oscillator.type=t,this._stoppedValue=this._oscillator._getInitialValue(),this._stoppedSignal.value=this._stoppedValue}}),Object.defineProperty(t.LFO.prototype,\"phase\",{get:function(){return this._oscillator.phase},set:function(t){this._oscillator.phase=t,this._stoppedValue=this._oscillator._getInitialValue(),this._stoppedSignal.value=this._stoppedValue}}),Object.defineProperty(t.LFO.prototype,\"units\",{get:function(){return this._units},set:function(t){var e=this.min,i=this.max;this._units=t,this.min=e,this.max=i}}),Object.defineProperty(t.LFO.prototype,\"mute\",{get:function(){return this._oscillator.mute},set:function(t){this._oscillator.mute=t}}),Object.defineProperty(t.LFO.prototype,\"state\",{get:function(){return this._oscillator.state}}),t.LFO.prototype.connect=function(e){return e.constructor!==t.Signal&&e.constructor!==t.Param&&e.constructor!==t.TimelineSignal||(this.convert=e.convert,this.units=e.units),t.Signal.prototype.connect.apply(this,arguments),this},t.LFO.prototype._fromUnits=t.Param.prototype._fromUnits,t.LFO.prototype._toUnits=t.Param.prototype._toUnits,t.LFO.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"amplitude\",\"frequency\"]),this._oscillator.dispose(),this._oscillator=null,this._stoppedSignal.dispose(),this._stoppedSignal=null,this._zeros.dispose(),this._zeros=null,this._scaler.dispose(),this._scaler=null,this._a2g.dispose(),this._a2g=null,this.frequency=null,this.amplitude=null,this},t.LFO}),t(function(t){return t.Limiter=function(){var e=this.optionsObject(arguments,[\"threshold\"],t.Limiter.defaults);this._compressor=this.input=this.output=new t.Compressor({attack:.001,decay:.001,threshold:e.threshold}),this.threshold=this._compressor.threshold,this._readOnly(\"threshold\")},t.extend(t.Limiter),t.Limiter.defaults={threshold:-12},t.Limiter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._compressor.dispose(),this._compressor=null,this._writable(\"threshold\"),this.threshold=null,this},t.Limiter}),t(function(t){return t.LowpassCombFilter=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,[\"delayTime\",\"resonance\",\"dampening\"],t.LowpassCombFilter.defaults);this._delay=this.input=new t.Delay(e.delayTime),this.delayTime=this._delay.delayTime,this._lowpass=this.output=this.context.createBiquadFilter(),this._lowpass.Q.value=-3.0102999566398125,this._lowpass.type=\"lowpass\",this.dampening=new t.Param({param:this._lowpass.frequency,units:t.Type.Frequency,value:e.dampening}),this._feedback=new t.Gain(e.resonance,t.Type.NormalRange),this.resonance=this._feedback.gain,this._delay.chain(this._lowpass,this._feedback,this._delay),this._readOnly([\"dampening\",\"resonance\",\"delayTime\"])},t.extend(t.LowpassCombFilter),t.LowpassCombFilter.defaults={delayTime:.1,resonance:.5,dampening:3e3},t.LowpassCombFilter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"dampening\",\"resonance\",\"delayTime\"]),this.dampening.dispose(),this.dampening=null,this.resonance.dispose(),this.resonance=null,this._delay.dispose(),this._delay=null,this.delayTime=null,this._lowpass.disconnect(),this._lowpass=null,this._feedback.disconnect(),this._feedback=null,this},t.LowpassCombFilter}),t(function(t){return t.Merge=function(){this.createInsOuts(2,0),this.left=this.input[0]=new t.Gain,this.right=this.input[1]=new t.Gain,this._merger=this.output=this.context.createChannelMerger(2),this.left.connect(this._merger,0,0),this.right.connect(this._merger,0,1),this.left.channelCount=1,this.right.channelCount=1,this.left.channelCountMode=\"explicit\",this.right.channelCountMode=\"explicit\"},t.extend(t.Merge),t.Merge.prototype.dispose=function(){return t.prototype.dispose.call(this),this.left.dispose(),this.left=null,this.right.dispose(),this.right=null,this._merger.disconnect(),this._merger=null,this},t.Merge}),t(function(t){return t.Meter=function(){var e=this.optionsObject(arguments,[\"type\",\"smoothing\"],t.Meter.defaults);this.type=e.type,this.input=this.output=this._analyser=new t.Analyser(\"waveform\",512),this._analyser.returnType=\"float\",this.smoothing=e.smoothing,this._lastValue=0},t.extend(t.Meter),t.Meter.Type={Level:\"level\",Signal:\"signal\"},t.Meter.defaults={smoothing:.8,type:t.Meter.Type.Level},Object.defineProperty(t.Meter.prototype,\"value\",{get:function(){var e=this._analyser.analyse();if(this.type===t.Meter.Type.Level){for(var i=0,s=0;s<e.length;s++)i+=Math.pow(e[s],2);var n=Math.sqrt(i/e.length);n=Math.max(n,this._lastValue*this.smoothing),this._lastValue=n;var o=n/.35;return Math.sqrt(o)}return e[0]}}),t.Meter.prototype.dispose=function(){return t.prototype.dispose.call(this),this._analyser.dispose(),this._analyser=null,this},t.Meter}),t(function(t){return t.Split=function(){this.createInsOuts(0,2),this._splitter=this.input=this.context.createChannelSplitter(2),this.left=this.output[0]=new t.Gain,this.right=this.output[1]=new t.Gain,this._splitter.connect(this.left,0,0),this._splitter.connect(this.right,1,0)},t.extend(t.Split),t.Split.prototype.dispose=function(){return t.prototype.dispose.call(this),this._splitter.disconnect(),this.left.dispose(),this.left=null,this.right.dispose(),this.right=null,this._splitter=null,this},t.Split}),t(function(t){return t.MidSideSplit=function(){this.createInsOuts(0,2),this._split=this.input=new t.Split,this.mid=this.output[0]=new t.Expr(\"($0 + $1) * $2\"),this.side=this.output[1]=new t.Expr(\"($0 - $1) * $2\"),this._split.connect(this.mid,0,0),this._split.connect(this.mid,1,1),this._split.connect(this.side,0,0),this._split.connect(this.side,1,1),this.context.getConstant(Math.SQRT1_2).connect(this.mid,0,2),this.context.getConstant(Math.SQRT1_2).connect(this.side,0,2)},t.extend(t.MidSideSplit),t.MidSideSplit.prototype.dispose=function(){return t.prototype.dispose.call(this),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._split.dispose(),this._split=null,this},t.MidSideSplit}),t(function(t){return t.MidSideMerge=function(){this.createInsOuts(2,0),this.mid=this.input[0]=new t.Gain,this._left=new t.Expr(\"($0 + $1) * $2\"),this.side=this.input[1]=new t.Gain,this._right=new t.Expr(\"($0 - $1) * $2\"),this._merge=this.output=new t.Merge,this.mid.connect(this._left,0,0),this.side.connect(this._left,0,1),this.mid.connect(this._right,0,0),this.side.connect(this._right,0,1),this._left.connect(this._merge,0,0),this._right.connect(this._merge,0,1),this.context.getConstant(Math.SQRT1_2).connect(this._left,0,2),this.context.getConstant(Math.SQRT1_2).connect(this._right,0,2)},t.extend(t.MidSideMerge),t.MidSideMerge.prototype.dispose=function(){return t.prototype.dispose.call(this),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._left.dispose(),this._left=null,this._right.dispose(),this._right=null,this._merge.dispose(),this._merge=null,this},t.MidSideMerge}),t(function(t){return t.MidSideCompressor=function(e){e=this.defaultArg(e,t.MidSideCompressor.defaults),this._midSideSplit=this.input=new t.MidSideSplit,this._midSideMerge=this.output=new t.MidSideMerge,this.mid=new t.Compressor(e.mid),this.side=new t.Compressor(e.side),this._midSideSplit.mid.chain(this.mid,this._midSideMerge.mid),this._midSideSplit.side.chain(this.side,this._midSideMerge.side),this._readOnly([\"mid\",\"side\"])},t.extend(t.MidSideCompressor),t.MidSideCompressor.defaults={mid:{ratio:3,threshold:-24,release:.03,attack:.02,knee:16},side:{ratio:6,threshold:-30,release:.25,attack:.03,knee:10}},t.MidSideCompressor.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"mid\",\"side\"]),this.mid.dispose(),this.mid=null,this.side.dispose(),this.side=null,this._midSideSplit.dispose(),this._midSideSplit=null,this._midSideMerge.dispose(),this._midSideMerge=null,this},t.MidSideCompressor}),t(function(t){return t.Mono=function(){this.createInsOuts(1,0),this._merge=this.output=new t.Merge,this.input.connect(this._merge,0,0),this.input.connect(this._merge,0,1),this.input.gain.value=this.dbToGain(-10)},t.extend(t.Mono),t.Mono.prototype.dispose=function(){return t.prototype.dispose.call(this),this._merge.dispose(),this._merge=null,this},t.Mono}),t(function(t){return t.MultibandCompressor=function(e){e=this.defaultArg(arguments,t.MultibandCompressor.defaults),this._splitter=this.input=new t.MultibandSplit({lowFrequency:e.lowFrequency,highFrequency:e.highFrequency}),this.lowFrequency=this._splitter.lowFrequency,this.highFrequency=this._splitter.highFrequency,this.output=new t.Gain,this.low=new t.Compressor(e.low),this.mid=new t.Compressor(e.mid),this.high=new t.Compressor(e.high),this._splitter.low.chain(this.low,this.output),this._splitter.mid.chain(this.mid,this.output),this._splitter.high.chain(this.high,this.output),this._readOnly([\"high\",\"mid\",\"low\",\"highFrequency\",\"lowFrequency\"])},t.extend(t.MultibandCompressor),t.MultibandCompressor.defaults={low:t.Compressor.defaults,mid:t.Compressor.defaults,high:t.Compressor.defaults,lowFrequency:250,highFrequency:2e3},t.MultibandCompressor.prototype.dispose=function(){return t.prototype.dispose.call(this),this._splitter.dispose(),this._writable([\"high\",\"mid\",\"low\",\"highFrequency\",\"lowFrequency\"]),this.low.dispose(),this.mid.dispose(),this.high.dispose(),this._splitter=null,this.low=null,this.mid=null,this.high=null,this.lowFrequency=null,this.highFrequency=null,this},t.MultibandCompressor}),t(function(t){return t.Panner=function(e){this._hasStereoPanner?(this._panner=this.input=this.output=this.context.createStereoPanner(),this.pan=this._panner.pan):(this._crossFade=new t.CrossFade,this._merger=this.output=new t.Merge,this._splitter=this.input=new t.Split,this.pan=new t.Signal(0,t.Type.AudioRange),this._zero=new t.Zero,this._a2g=new t.AudioToGain,this._zero.connect(this._a2g),this.pan.chain(this._a2g,this._crossFade.fade),this._splitter.connect(this._crossFade,0,0),this._splitter.connect(this._crossFade,1,1),this._crossFade.a.connect(this._merger,0,0),this._crossFade.b.connect(this._merger,0,1)),this.pan.value=this.defaultArg(e,0),this._readOnly(\"pan\")},t.extend(t.Panner),t.Panner.prototype._hasStereoPanner=t.prototype.isFunction(t.context.createStereoPanner),t.Panner.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable(\"pan\"),this._hasStereoPanner?(this._panner.disconnect(),this._panner=null,this.pan=null):(this._zero.dispose(),this._zero=null,this._crossFade.dispose(),this._crossFade=null,this._splitter.dispose(),this._splitter=null,this._merger.dispose(),this._merger=null,this.pan.dispose(),this.pan=null,this._a2g.dispose(),this._a2g=null),this},t.Panner}),t(function(t){return t.Panner3D=function(){var e=this.optionsObject(arguments,[\"positionX\",\"positionY\",\"positionZ\"],t.Panner3D.defaults);this._panner=this.input=this.output=this.context.createPanner(),this._panner.panningModel=e.panningModel,this._panner.maxDistance=e.maxDistance,this._panner.distanceModel=e.distanceModel,this._panner.coneOuterGain=e.coneOuterGain,this._panner.coneOuterAngle=e.coneOuterAngle,this._panner.coneInnerAngle=e.coneInnerAngle,this._panner.refDistance=e.refDistance,this._panner.rolloffFactor=e.rolloffFactor,this._orientation=[e.orientationX,e.orientationY,e.orientationZ],this._position=[e.positionX,e.positionY,e.positionZ],this.orientationX=e.orientationX,this.orientationY=e.orientationY,this.orientationZ=e.orientationZ,this.positionX=e.positionX,this.positionY=e.positionY,this.positionZ=e.positionZ},t.extend(t.Panner3D),t.Panner3D.defaults={positionX:0,positionY:0,positionZ:0,orientationX:0,orientationY:0,orientationZ:0,panningModel:\"equalpower\",maxDistance:1e4,distanceModel:\"inverse\",coneOuterGain:0,coneOuterAngle:360,coneInnerAngle:360,refDistance:1,rolloffFactor:1},t.Panner3D.prototype._rampTimeConstant=.01,t.Panner3D.prototype.setPosition=function(t,e,i){if(this._panner.positionX){var s=this.now();this._panner.positionX.setTargetAtTime(t,s,this._rampTimeConstant),this._panner.positionY.setTargetAtTime(e,s,this._rampTimeConstant),this._panner.positionZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this._panner.setPosition(t,e,i);return this._position=Array.prototype.slice.call(arguments),this},t.Panner3D.prototype.setOrientation=function(t,e,i){if(this._panner.orientationX){var s=this.now();this._panner.orientationX.setTargetAtTime(t,s,this._rampTimeConstant),this._panner.orientationY.setTargetAtTime(e,s,this._rampTimeConstant),this._panner.orientationZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this._panner.setOrientation(t,e,i);return this._orientation=Array.prototype.slice.call(arguments),this},Object.defineProperty(t.Panner3D.prototype,\"positionX\",{set:function(t){this._position[0]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[0]}}),Object.defineProperty(t.Panner3D.prototype,\"positionY\",{set:function(t){this._position[1]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[1]}}),Object.defineProperty(t.Panner3D.prototype,\"positionZ\",{set:function(t){this._position[2]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[2]}}),Object.defineProperty(t.Panner3D.prototype,\"orientationX\",{set:function(t){this._orientation[0]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[0]}}),Object.defineProperty(t.Panner3D.prototype,\"orientationY\",{set:function(t){this._orientation[1]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[1]}}),Object.defineProperty(t.Panner3D.prototype,\"orientationZ\",{set:function(t){this._orientation[2]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[2]}}),t.Panner3D._aliasProperty=function(e){Object.defineProperty(t.Panner3D.prototype,e,{set:function(t){this._panner[e]=t},get:function(){return this._panner[e]}})},t.Panner3D._aliasProperty(\"panningModel\"),t.Panner3D._aliasProperty(\"refDistance\"),t.Panner3D._aliasProperty(\"rolloffFactor\"),t.Panner3D._aliasProperty(\"distanceModel\"),t.Panner3D._aliasProperty(\"coneInnerAngle\"),t.Panner3D._aliasProperty(\"coneOuterAngle\"),t.Panner3D._aliasProperty(\"coneOuterGain\"),t.Panner3D._aliasProperty(\"maxDistance\"),t.Panner3D.prototype.dispose=function(){return this._panner.disconnect(),this._panner=null,this._orientation=null,this._position=null,this},t.Panner3D}),t(function(t){return t.PanVol=function(){var e=this.optionsObject(arguments,[\"pan\",\"volume\"],t.PanVol.defaults);this._panner=this.input=new t.Panner(e.pan),this.pan=this._panner.pan,this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._panner.connect(this._volume),this._readOnly([\"pan\",\"volume\"])},t.extend(t.PanVol),t.PanVol.defaults={pan:.5,volume:0},t.PanVol.prototype.dispose=function(){return t.prototype.dispose.call(this),this._writable([\"pan\",\"volume\"]),this._panner.dispose(),this._panner=null,this.pan=null,this._volume.dispose(),this._volume=null,this.volume=null,this},t.PanVol}),t(function(t){return t.CtrlInterpolate=function(){var e=this.optionsObject(arguments,[\"values\",\"index\"],t.CtrlInterpolate.defaults);this.values=e.values,this.index=e.index},t.extend(t.CtrlInterpolate),t.CtrlInterpolate.defaults={index:0,values:[]},Object.defineProperty(t.CtrlInterpolate.prototype,\"value\",{get:function(){var t=this.index;t=Math.min(t,this.values.length-1);var e=Math.floor(t),i=this.values[e],s=this.values[Math.ceil(t)];return this._interpolate(t-e,i,s)}}),t.CtrlInterpolate.prototype._interpolate=function(t,e,i){if(this.isArray(e)){for(var s=[],n=0;n<e.length;n++)s[n]=this._interpolate(t,e[n],i[n]);return s}if(this.isObject(e)){var o={};for(var r in e)o[r]=this._interpolate(t,e[r],i[r]);return o}return e=this._toNumber(e),i=this._toNumber(i),(1-t)*e+t*i},t.CtrlInterpolate.prototype._toNumber=function(t){return this.isNumber(t)?t:this.toSeconds(t)},t.CtrlInterpolate.prototype.dispose=function(){this.values=null},t.CtrlInterpolate}),t(function(t){return t.CtrlMarkov=function(t,e){this.values=this.defaultArg(t,{}),this.value=this.defaultArg(e,Object.keys(this.values)[0])},t.extend(t.CtrlMarkov),t.CtrlMarkov.prototype.next=function(){if(this.values.hasOwnProperty(this.value)){var t=this.values[this.value];if(this.isArray(t))for(var e=this._getProbDistribution(t),i=Math.random(),s=0,n=0;n<e.length;n++){var o=e[n];if(i>s&&i<s+o){var r=t[n];this.isObject(r)?this.value=r.value:this.value=r}s+=o}else this.value=t}return this.value},t.CtrlMarkov.prototype._getProbDistribution=function(t){for(var e=[],i=0,s=!1,n=0;n<t.length;n++){var o=t[n];this.isObject(o)?(s=!0,e[n]=o.probability):e[n]=1/t.length,i+=e[n]}if(s)for(var r=0;r<e.length;r++)e[r]=e[r]/i;return e},t.CtrlMarkov.prototype.dispose=function(){this.values=null},t.CtrlMarkov}),t(function(t){return t.CtrlPattern=function(){var e=this.optionsObject(arguments,[\"values\",\"type\"],t.CtrlPattern.defaults);this.values=e.values,this.index=0,this._type=null,this._shuffled=null,this._direction=null,this.type=e.type},t.extend(t.CtrlPattern),t.CtrlPattern.Type={Up:\"up\",Down:\"down\",UpDown:\"upDown\",DownUp:\"downUp\",AlternateUp:\"alternateUp\",AlternateDown:\"alternateDown\",Random:\"random\",RandomWalk:\"randomWalk\",RandomOnce:\"randomOnce\"},t.CtrlPattern.defaults={type:t.CtrlPattern.Type.Up,values:[]},Object.defineProperty(t.CtrlPattern.prototype,\"value\",{get:function(){if(0!==this.values.length){if(1===this.values.length)return this.values[0];this.index=Math.min(this.index,this.values.length-1);var e=this.values[this.index];return this.type===t.CtrlPattern.Type.RandomOnce&&(this.values.length!==this._shuffled.length&&this._shuffleValues(),e=this.values[this._shuffled[this.index]]),e}}}),Object.defineProperty(t.CtrlPattern.prototype,\"type\",{get:function(){return this._type},set:function(e){this._type=e,this._shuffled=null,this._type===t.CtrlPattern.Type.Up||this._type===t.CtrlPattern.Type.UpDown||this._type===t.CtrlPattern.Type.RandomOnce||this._type===t.CtrlPattern.Type.AlternateUp?this.index=0:this._type!==t.CtrlPattern.Type.Down&&this._type!==t.CtrlPattern.Type.DownUp&&this._type!==t.CtrlPattern.Type.AlternateDown||(this.index=this.values.length-1),this._type===t.CtrlPattern.Type.UpDown||this._type===t.CtrlPattern.Type.AlternateUp?this._direction=t.CtrlPattern.Type.Up:this._type!==t.CtrlPattern.Type.DownUp&&this._type!==t.CtrlPattern.Type.AlternateDown||(this._direction=t.CtrlPattern.Type.Down),this._type===t.CtrlPattern.Type.RandomOnce?this._shuffleValues():this._type===t.CtrlPattern.Random&&(this.index=Math.floor(Math.random()*this.values.length))}}),t.CtrlPattern.prototype.next=function(){var e=this.type;return e===t.CtrlPattern.Type.Up?++this.index>=this.values.length&&(this.index=0):e===t.CtrlPattern.Type.Down?--this.index<0&&(this.index=this.values.length-1):e===t.CtrlPattern.Type.UpDown||e===t.CtrlPattern.Type.DownUp?(this._direction===t.CtrlPattern.Type.Up?this.index++:this.index--,this.index<0?(this.index=1,this._direction=t.CtrlPattern.Type.Up):this.index>=this.values.length&&(this.index=this.values.length-2,this._direction=t.CtrlPattern.Type.Down)):e===t.CtrlPattern.Type.Random?this.index=Math.floor(Math.random()*this.values.length):e===t.CtrlPattern.Type.RandomWalk?Math.random()<.5?(this.index--,this.index=Math.max(this.index,0)):(this.index++,this.index=Math.min(this.index,this.values.length-1)):e===t.CtrlPattern.Type.RandomOnce?++this.index>=this.values.length&&(this.index=0,this._shuffleValues()):e===t.CtrlPattern.Type.AlternateUp?(this._direction===t.CtrlPattern.Type.Up?(this.index+=2,this._direction=t.CtrlPattern.Type.Down):(this.index-=1,this._direction=t.CtrlPattern.Type.Up),this.index>=this.values.length&&(this.index=0,this._direction=t.CtrlPattern.Type.Up)):e===t.CtrlPattern.Type.AlternateDown&&(this._direction===t.CtrlPattern.Type.Up?(this.index+=1,this._direction=t.CtrlPattern.Type.Down):(this.index-=2,this._direction=t.CtrlPattern.Type.Up),this.index<0&&(this.index=this.values.length-1,this._direction=t.CtrlPattern.Type.Down)),this.value},t.CtrlPattern.prototype._shuffleValues=function(){var t=[];this._shuffled=[];for(var e=0;e<this.values.length;e++)t[e]=e;for(;t.length>0;){var i=t.splice(Math.floor(t.length*Math.random()),1);this._shuffled.push(i[0])}},t.CtrlPattern.prototype.dispose=function(){this._shuffled=null,this.values=null},t.CtrlPattern}),t(function(t){return t.CtrlRandom=function(){var e=this.optionsObject(arguments,[\"min\",\"max\"],t.CtrlRandom.defaults);this.min=e.min,this.max=e.max,this.integer=e.integer},t.extend(t.CtrlRandom),t.CtrlRandom.defaults={min:0,max:1,integer:!1},Object.defineProperty(t.CtrlRandom.prototype,\"value\",{get:function(){var t=this.toSeconds(this.min),e=this.toSeconds(this.max),i=Math.random(),s=i*t+(1-i)*e;return this.integer&&(s=Math.floor(s)),s}}),t.CtrlRandom}),t(function(t){return window.AudioBuffer&&!AudioBuffer.prototype.copyToChannel&&(AudioBuffer.prototype.copyToChannel=function(t,e,i){var s=this.getChannelData(e);i=i||0;for(var n=0;n<s.length;n++)s[n+i]=t[n]},AudioBuffer.prototype.copyFromChannel=function(t,e,i){var s=this.getChannelData(e);i=i||0;for(var n=0;n<s.length;n++)t[n]=s[n+i]}),t.Buffer=function(){var e=this.optionsObject(arguments,[\"url\",\"onload\",\"onerror\"],t.Buffer.defaults);this._buffer=null,this._reversed=e.reverse,this._xhr=null,e.url instanceof AudioBuffer||e.url instanceof t.Buffer?(this.set(e.url),e.onload&&e.onload(this)):this.isString(e.url)&&this.load(e.url,e.onload,e.onerror)},t.extend(t.Buffer),t.Buffer.defaults={url:void 0,reverse:!1},t.Buffer.prototype.set=function(e){return e instanceof t.Buffer?this._buffer=e.get():this._buffer=e,this},t.Buffer.prototype.get=function(){return this._buffer},t.Buffer.prototype.load=function(e,i,s){return new Promise(function(n,o){this._xhr=t.Buffer.load(e,function(t){this._xhr=null,this.set(t),n(this),i&&i(this)}.bind(this),function(t){this._xhr=null,o(t),s&&s(t)}.bind(this))}.bind(this))},t.Buffer.prototype.dispose=function(){return t.Emitter.prototype.dispose.call(this),this._buffer=null,this._xhr&&(t.Buffer._currentDownloads--,this._xhr.abort(),this._xhr=null),this},Object.defineProperty(t.Buffer.prototype,\"loaded\",{get:function(){return this.length>0}}),Object.defineProperty(t.Buffer.prototype,\"duration\",{get:function(){return this._buffer?this._buffer.duration:0}}),Object.defineProperty(t.Buffer.prototype,\"length\",{get:function(){return this._buffer?this._buffer.length:0}}),Object.defineProperty(t.Buffer.prototype,\"numberOfChannels\",{get:function(){return this._buffer?this._buffer.numberOfChannels:0}}),t.Buffer.prototype.fromArray=function(t){var e=t[0].length>0,i=e?t.length:1,s=e?t[0].length:t.length,n=this.context.createBuffer(i,s,this.context.sampleRate);e||1!==i||(t=[t]);for(var o=0;o<i;o++)n.copyToChannel(t[o],o);return this._buffer=n,this},t.Buffer.prototype.toMono=function(t){if(this.isNumber(t))this.fromArray(this.toArray(t));else{for(var e=new Float32Array(this.length),i=this.numberOfChannels,s=0;s<i;s++)for(var n=this.toArray(s),o=0;o<n.length;o++)e[o]+=n[o];e=e.map(function(t){return t/i}),this.fromArray(e)}return this},t.Buffer.prototype.toArray=function(t){if(this.isNumber(t))return this.getChannelData(t);if(1===this.numberOfChannels)return this.toArray(0);for(var e=[],i=0;i<this.numberOfChannels;i++)e[i]=this.getChannelData(i);return e},t.Buffer.prototype.getChannelData=function(t){return this._buffer.getChannelData(t)},t.Buffer.prototype.slice=function(e,i){i=this.defaultArg(i,this.duration);for(var s=Math.floor(this.context.sampleRate*this.toSeconds(e)),n=Math.floor(this.context.sampleRate*this.toSeconds(i)),o=[],r=0;r<this.numberOfChannels;r++)o[r]=this.toArray(r).slice(s,n);return(new t.Buffer).fromArray(o)},t.Buffer.prototype._reverse=function(){if(this.loaded)for(var t=0;t<this.numberOfChannels;t++)Array.prototype.reverse.call(this.getChannelData(t));return this},Object.defineProperty(t.Buffer.prototype,\"reverse\",{get:function(){return this._reversed},set:function(t){this._reversed!==t&&(this._reversed=t,this._reverse())}}),t.Emitter.mixin(t.Buffer),t.Buffer._downloadQueue=[],t.Buffer._currentDownloads=0,t.Buffer.baseUrl=\"\",t.Buffer.load=function(e,i,s){function n(e){if(!s)throw new Error(e);s(e),t.Buffer.emit(\"error\",e)}function o(){for(var e=0,i=0;i<t.Buffer._downloadQueue.length;i++)e+=t.Buffer._downloadQueue[i].progress;t.Buffer.emit(\"progress\",e/t.Buffer._downloadQueue.length)}i=i||t.noOp;var r=new XMLHttpRequest;return r.open(\"GET\",t.Buffer.baseUrl+e,!0),r.responseType=\"arraybuffer\",r.progress=0,t.Buffer._currentDownloads++,t.Buffer._downloadQueue.push(r),r.addEventListener(\"load\",function(){200===r.status?t.context.decodeAudioData(r.response,function(e){r.progress=1,o(),i(e),0===--t.Buffer._currentDownloads&&(t.Buffer._downloadQueue=[],t.Buffer.emit(\"load\"))},function(){n(\"Tone.Buffer: could not decode audio data: \"+e)}):n(\"Tone.Buffer: could not locate file: \"+e)}),r.addEventListener(\"error\",n),r.addEventListener(\"progress\",function(t){t.lengthComputable&&(r.progress=t.loaded/t.total*.95,o())}),r.send(),r},t.Buffer.cancelDownloads=function(){return t.Buffer._downloadQueue.forEach(function(t){t.abort()}),t.Buffer._currentDownloads=0,t.Buffer},t.Buffer.supportsType=function(t){var e=t.split(\".\");return e=e[e.length-1],\"\"!==document.createElement(\"audio\").canPlayType(\"audio/\"+e)},t.loaded=function(){function e(){t.Buffer.off(\"load\",i),t.Buffer.off(\"error\",s)}var i,s;return new Promise(function(e,n){i=function(){e()},s=function(){n()},t.Buffer.on(\"load\",i),t.Buffer.on(\"error\",s)}).then(e).catch(function(t){throw e(),new Error(t)})},t.Buffer}),t(function(t){return t.Buffers=function(t,e,i){this._buffers={},this.baseUrl=this.defaultArg(i,\"\"),t=this._flattenUrls(t),this._loadingCount=0;for(var s in t)this._loadingCount++,this.add(s,t[s],this._bufferLoaded.bind(this,e))},t.extend(t.Buffers),t.Buffers.prototype.has=function(t){return this._buffers.hasOwnProperty(t)},t.Buffers.prototype.get=function(t){if(this.has(t))return this._buffers[t];throw new Error(\"Tone.Buffers: no buffer named \"+t)},t.Buffers.prototype._bufferLoaded=function(t){0===--this._loadingCount&&t&&t(this)},Object.defineProperty(t.Buffers.prototype,\"loaded\",{get:function(){var t=!0;for(var e in this._buffers){var i=this.get(e);t=t&&i.loaded}return t}}),t.Buffers.prototype.add=function(e,i,s){return s=this.defaultArg(s,t.noOp),i instanceof t.Buffer?(this._buffers[e]=i,s(this)):i instanceof AudioBuffer?(this._buffers[e]=new t.Buffer(i),s(this)):this.isString(i)&&(this._buffers[e]=new t.Buffer(this.baseUrl+i,s)),this},t.Buffers.prototype._flattenUrls=function(t){var e={};for(var i in t)if(t.hasOwnProperty(i))if(this.isObject(t[i])){var s=this._flattenUrls(t[i]);for(var n in s)s.hasOwnProperty(n)&&(e[i+\".\"+n]=s[n])}else e[i]=t[i];return e},t.Buffers.prototype.dispose=function(){for(var t in this._buffers)this._buffers[t].dispose();return this._buffers=null,this},t.Buffers}),t(function(t){var e={};return t.prototype.send=function(i,s){e.hasOwnProperty(i)||(e[i]=this.context.createGain()),s=this.defaultArg(s,0);var n=new t.Gain(s,t.Type.Decibels);return this.output.chain(n,e[i]),n},t.prototype.receive=function(t,i){return e.hasOwnProperty(t)||(e[t]=this.context.createGain()),this.isUndef(i)&&(i=this.input),e[t].connect(i),this},t.Context.on(\"init\",function(t){t.Buses?e=t.Buses:(e={},t.Buses=e)}),t}),t(function(t){return t.Draw=function(){this._events=new t.Timeline,this.expiration=.25,this.anticipation=.008,this._boundDrawLoop=this._drawLoop.bind(this)},t.extend(t.Draw),t.Draw.prototype.schedule=function(t,e){return this._events.add({callback:t,time:this.toSeconds(e)}),1===this._events.length&&requestAnimationFrame(this._boundDrawLoop),this},t.Draw.prototype.cancel=function(t){return this._events.cancel(this.toSeconds(t)),this},t.Draw.prototype._drawLoop=function(){for(var e=t.now();this._events.length&&this._events.peek().time-this.anticipation<=e;){var i=this._events.shift();e-i.time<=this.expiration&&i.callback()}this._events.length>0&&requestAnimationFrame(this._boundDrawLoop)},t.Draw=new t.Draw,t.Draw}),t(function(t){t.Listener=function(){var t=this.optionsObject(arguments,[\"positionX\",\"positionY\",\"positionZ\"],e.defaults);this._orientation=[t.forwardX,t.forwardY,t.forwardZ,t.upX,t.upY,t.upZ],this._position=[t.positionX,t.positionY,t.positionZ],this.forwardX=t.forwardX,this.forwardY=t.forwardY,this.forwardZ=t.forwardZ,this.upX=t.upX,this.upY=t.upY,this.upZ=t.upZ,this.positionX=t.positionX,this.positionY=t.positionY,this.positionZ=t.positionZ},t.extend(t.Listener),t.Listener.defaults={positionX:0,positionY:0,positionZ:0,forwardX:0,forwardY:0,forwardZ:1,upX:0,upY:1,upZ:0},t.Listener.prototype._rampTimeConstant=.01,t.Listener.prototype.setPosition=function(t,e,i){if(this.context.listener.positionX){var s=this.now();this.context.listener.positionX.setTargetAtTime(t,s,this._rampTimeConstant),this.context.listener.positionY.setTargetAtTime(e,s,this._rampTimeConstant),this.context.listener.positionZ.setTargetAtTime(i,s,this._rampTimeConstant)}else this.context.listener.setPosition(t,e,i);return this._position=Array.prototype.slice.call(arguments),this},t.Listener.prototype.setOrientation=function(t,e,i,s,n,o){if(this.context.listener.forwardX){var r=this.now();this.context.listener.forwardX.setTargetAtTime(t,r,this._rampTimeConstant),this.context.listener.forwardY.setTargetAtTime(e,r,this._rampTimeConstant),this.context.listener.forwardZ.setTargetAtTime(i,r,this._rampTimeConstant),this.context.listener.upX.setTargetAtTime(s,r,this._rampTimeConstant),this.context.listener.upY.setTargetAtTime(n,r,this._rampTimeConstant),this.context.listener.upZ.setTargetAtTime(o,r,this._rampTimeConstant)}else this.context.listener.setOrientation(t,e,i,s,n,o);return this._orientation=Array.prototype.slice.call(arguments),this},Object.defineProperty(t.Listener.prototype,\"positionX\",{set:function(t){this._position[0]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[0]}}),Object.defineProperty(t.Listener.prototype,\"positionY\",{set:function(t){this._position[1]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[1]}}),Object.defineProperty(t.Listener.prototype,\"positionZ\",{set:function(t){this._position[2]=t,this.setPosition.apply(this,this._position)},get:function(){return this._position[2]}}),Object.defineProperty(t.Listener.prototype,\"forwardX\",{set:function(t){this._orientation[0]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[0]}}),Object.defineProperty(t.Listener.prototype,\"forwardY\",{set:function(t){this._orientation[1]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[1]}}),Object.defineProperty(t.Listener.prototype,\"forwardZ\",{set:function(t){this._orientation[2]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[2]}}),Object.defineProperty(t.Listener.prototype,\"upX\",{set:function(t){this._orientation[3]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[3]}}),Object.defineProperty(t.Listener.prototype,\"upY\",{set:function(t){this._orientation[4]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[4]}}),Object.defineProperty(t.Listener.prototype,\"upZ\",{set:function(t){this._orientation[5]=t,this.setOrientation.apply(this,this._orientation)},get:function(){return this._orientation[5]}}),t.Listener.prototype.dispose=function(){return this._orientation=null,this._position=null,this};var e=t.Listener;return t.Listener=new e,t.Context.on(\"init\",function(i){i.Listener instanceof e?t.Listener=i.Listener:t.Listener=new e,i.Listener=t.Listener}),t.Listener}),t(function(t){return!window.hasOwnProperty(\"OfflineAudioContext\")&&window.hasOwnProperty(\"webkitOfflineAudioContext\")&&(window.OfflineAudioContext=window.webkitOfflineAudioContext),t.OfflineContext=function(e,i,s){var n=new OfflineAudioContext(e,i*s,s);t.Context.call(this,n),this._duration=i,this._currentTime=0,this.lookAhead=this.blockTime,this.updateInterval=this.blockTime},t.extend(t.OfflineContext,t.Context),t.OfflineContext.prototype.now=function(){return this._currentTime},t.OfflineContext.prototype._createWorker=function(){return{postMessage:function(){}}},t.OfflineContext.prototype.render=function(){for(;this._duration-this._currentTime>=0;)this.emit(\"tick\"),this._currentTime+=t.prototype.blockTime;return new Promise(function(t){this._context.oncomplete=function(e){t(e.renderedBuffer)},this._context.startRendering()}.bind(this))},t.OfflineContext}),t(function(t){return t.Offline=function(e,i){var s=t.context.sampleRate,n=t.context,o=new t.OfflineContext(2,i,s);t.context=o,e(t.Transport);var r=o.render();return t.context=n,r.then(function(e){return new t.Buffer(e)})},t.Offline}),t(function(t){return t.Effect=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,[\"wet\"],t.Effect.defaults);this._dryWet=new t.CrossFade(e.wet),this.wet=this._dryWet.fade,this.effectSend=new t.Gain,this.effectReturn=new t.Gain,this.input.connect(this._dryWet.a),this.input.connect(this.effectSend),this.effectReturn.connect(this._dryWet.b),this._dryWet.connect(this.output),this._readOnly([\"wet\"])},t.extend(t.Effect),t.Effect.defaults={wet:1},t.Effect.prototype.connectEffect=function(t){return this.effectSend.chain(t,this.effectReturn),this},t.Effect.prototype.dispose=function(){return t.prototype.dispose.call(this),this._dryWet.dispose(),this._dryWet=null,this.effectSend.dispose(),this.effectSend=null,this.effectReturn.dispose(),this.effectReturn=null,this._writable([\"wet\"]),this.wet=null,this},t.Effect}),t(function(t){return t.AutoFilter=function(){var e=this.optionsObject(arguments,[\"frequency\",\"baseFrequency\",\"octaves\"],t.AutoFilter.defaults);t.Effect.call(this,e),this._lfo=new t.LFO({frequency:e.frequency,amplitude:e.depth}),this.depth=this._lfo.amplitude,this.frequency=this._lfo.frequency,this.filter=new t.Filter(e.filter),this._octaves=0,this.connectEffect(this.filter),this._lfo.connect(this.filter.frequency),this.type=e.type,this._readOnly([\"frequency\",\"depth\"]),this.octaves=e.octaves,this.baseFrequency=e.baseFrequency},t.extend(t.AutoFilter,t.Effect),t.AutoFilter.defaults={frequency:1,type:\"sine\",depth:1,baseFrequency:200,octaves:2.6,filter:{type:\"lowpass\",rolloff:-12,Q:1}},t.AutoFilter.prototype.start=function(t){return this._lfo.start(t),this},t.AutoFilter.prototype.stop=function(t){return this._lfo.stop(t),this},t.AutoFilter.prototype.sync=function(t){return this._lfo.sync(t),this},t.AutoFilter.prototype.unsync=function(){return this._lfo.unsync(),this},Object.defineProperty(t.AutoFilter.prototype,\"type\",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),Object.defineProperty(t.AutoFilter.prototype,\"baseFrequency\",{get:function(){return this._lfo.min},set:function(t){this._lfo.min=this.toFrequency(t),this.octaves=this._octaves}}),Object.defineProperty(t.AutoFilter.prototype,\"octaves\",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._lfo.max=this.baseFrequency*Math.pow(2,t)}}),t.AutoFilter.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._lfo.dispose(),this._lfo=null,this.filter.dispose(),this.filter=null,this._writable([\"frequency\",\"depth\"]),this.frequency=null,this.depth=null,this},t.AutoFilter}),t(function(t){return t.AutoPanner=function(){var e=this.optionsObject(arguments,[\"frequency\"],t.AutoPanner.defaults);t.Effect.call(this,e),this._lfo=new t.LFO({frequency:e.frequency,amplitude:e.depth,min:-1,max:1}),this.depth=this._lfo.amplitude,this._panner=new t.Panner,this.frequency=this._lfo.frequency,this.connectEffect(this._panner),this._lfo.connect(this._panner.pan),this.type=e.type,this._readOnly([\"depth\",\"frequency\"])},t.extend(t.AutoPanner,t.Effect),t.AutoPanner.defaults={frequency:1,type:\"sine\",depth:1},t.AutoPanner.prototype.start=function(t){return this._lfo.start(t),this},t.AutoPanner.prototype.stop=function(t){return this._lfo.stop(t),this},t.AutoPanner.prototype.sync=function(t){return this._lfo.sync(t),this},t.AutoPanner.prototype.unsync=function(){return this._lfo.unsync(),this},Object.defineProperty(t.AutoPanner.prototype,\"type\",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),t.AutoPanner.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._lfo.dispose(),this._lfo=null,this._panner.dispose(),this._panner=null,this._writable([\"depth\",\"frequency\"]),this.frequency=null,this.depth=null,this},t.AutoPanner}),t(function(t){return t.AutoWah=function(){var e=this.optionsObject(arguments,[\"baseFrequency\",\"octaves\",\"sensitivity\"],t.AutoWah.defaults);t.Effect.call(this,e),this.follower=new t.Follower(e.follower),this._sweepRange=new t.ScaleExp(0,1,.5),this._baseFrequency=e.baseFrequency,this._octaves=e.octaves,this._inputBoost=new t.Gain,this._bandpass=new t.Filter({rolloff:-48,frequency:0,Q:e.Q}),this._peaking=new t.Filter(0,\"peaking\"),this._peaking.gain.value=e.gain,this.gain=this._peaking.gain,this.Q=this._bandpass.Q,this.effectSend.chain(this._inputBoost,this.follower,this._sweepRange),this._sweepRange.connect(this._bandpass.frequency),this._sweepRange.connect(this._peaking.frequency),this.effectSend.chain(this._bandpass,this._peaking,this.effectReturn),this._setSweepRange(),this.sensitivity=e.sensitivity,this._readOnly([\"gain\",\"Q\"])},t.extend(t.AutoWah,t.Effect),t.AutoWah.defaults={baseFrequency:100,octaves:6,sensitivity:0,Q:2,gain:2,follower:{attack:.3,release:.5}},Object.defineProperty(t.AutoWah.prototype,\"octaves\",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._setSweepRange()}}),Object.defineProperty(t.AutoWah.prototype,\"baseFrequency\",{get:function(){return this._baseFrequency},set:function(t){this._baseFrequency=t,this._setSweepRange()}}),Object.defineProperty(t.AutoWah.prototype,\"sensitivity\",{get:function(){return this.gainToDb(1/this._inputBoost.gain.value)},set:function(t){this._inputBoost.gain.value=1/this.dbToGain(t)}}),t.AutoWah.prototype._setSweepRange=function(){this._sweepRange.min=this._baseFrequency,this._sweepRange.max=Math.min(this._baseFrequency*Math.pow(2,this._octaves),this.context.sampleRate/2)},t.AutoWah.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this.follower.dispose(),this.follower=null,this._sweepRange.dispose(),this._sweepRange=null,this._bandpass.dispose(),this._bandpass=null,this._peaking.dispose(),this._peaking=null,this._inputBoost.dispose(),this._inputBoost=null,this._writable([\"gain\",\"Q\"]),this.gain=null,this.Q=null,this},t.AutoWah}),t(function(t){return t.BitCrusher=function(){var e=this.optionsObject(arguments,[\"bits\"],t.BitCrusher.defaults);t.Effect.call(this,e);var i=1/Math.pow(2,e.bits-1);this._subtract=new t.Subtract,this._modulo=new t.Modulo(i),this._bits=e.bits,this.effectSend.fan(this._subtract,this._modulo),this._modulo.connect(this._subtract,0,1),this._subtract.connect(this.effectReturn)},t.extend(t.BitCrusher,t.Effect),t.BitCrusher.defaults={bits:4},Object.defineProperty(t.BitCrusher.prototype,\"bits\",{get:function(){return this._bits},set:function(t){this._bits=t;var e=1/Math.pow(2,t-1);this._modulo.value=e}}),t.BitCrusher.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._subtract.dispose(),this._subtract=null,this._modulo.dispose(),this._modulo=null,this},t.BitCrusher}),t(function(t){return t.Chebyshev=function(){var e=this.optionsObject(arguments,[\"order\"],t.Chebyshev.defaults);t.Effect.call(this,e),this._shaper=new t.WaveShaper(4096),this._order=e.order,this.connectEffect(this._shaper),this.order=e.order,this.oversample=e.oversample},t.extend(t.Chebyshev,t.Effect),t.Chebyshev.defaults={order:1,oversample:\"none\"},t.Chebyshev.prototype._getCoefficient=function(t,e,i){return i.hasOwnProperty(e)?i[e]:(i[e]=0===e?0:1===e?t:2*t*this._getCoefficient(t,e-1,i)-this._getCoefficient(t,e-2,i),i[e])},Object.defineProperty(t.Chebyshev.prototype,\"order\",{get:function(){return this._order},set:function(t){this._order=t;for(var e=new Array(4096),i=e.length,s=0;s<i;++s){var n=2*s/i-1;e[s]=0===n?0:this._getCoefficient(n,t,{})}this._shaper.curve=e}}),Object.defineProperty(t.Chebyshev.prototype,\"oversample\",{get:function(){return this._shaper.oversample},set:function(t){this._shaper.oversample=t}}),t.Chebyshev.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this},t.Chebyshev}),t(function(t){return t.StereoEffect=function(){this.createInsOuts(1,1);var e=this.optionsObject(arguments,[\"wet\"],t.Effect.defaults);this._dryWet=new t.CrossFade(e.wet),this.wet=this._dryWet.fade,this._split=new t.Split,this.effectSendL=this._split.left,this.effectSendR=this._split.right,this._merge=new t.Merge,this.effectReturnL=this._merge.left,this.effectReturnR=this._merge.right,this.input.connect(this._split),this.input.connect(this._dryWet,0,0),this._merge.connect(this._dryWet,0,1),this._dryWet.connect(this.output),this._readOnly([\"wet\"])},t.extend(t.StereoEffect,t.Effect),t.StereoEffect.prototype.dispose=function(){return t.prototype.dispose.call(this),this._dryWet.dispose(),this._dryWet=null,this._split.dispose(),this._split=null,this._merge.dispose(),this._merge=null,this.effectSendL=null,this.effectSendR=null,this.effectReturnL=null,this.effectReturnR=null,this._writable([\"wet\"]),this.wet=null,this},t.StereoEffect}),t(function(t){return t.FeedbackEffect=function(){var e=this.optionsObject(arguments,[\"feedback\"]);e=this.defaultArg(e,t.FeedbackEffect.defaults),t.Effect.call(this,e),this._feedbackGain=new t.Gain(e.feedback,t.Type.NormalRange),this.feedback=this._feedbackGain.gain,this.effectReturn.chain(this._feedbackGain,this.effectSend),this._readOnly([\"feedback\"])},t.extend(t.FeedbackEffect,t.Effect),t.FeedbackEffect.defaults={feedback:.125},t.FeedbackEffect.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._writable([\"feedback\"]),this._feedbackGain.dispose(),this._feedbackGain=null,this.feedback=null,this},t.FeedbackEffect}),t(function(t){return t.StereoXFeedbackEffect=function(){var e=this.optionsObject(arguments,[\"feedback\"],t.FeedbackEffect.defaults);t.StereoEffect.call(this,e),this.feedback=new t.Signal(e.feedback,t.Type.NormalRange),this._feedbackLR=new t.Gain,this._feedbackRL=new t.Gain,this.effectReturnL.chain(this._feedbackLR,this.effectSendR),this.effectReturnR.chain(this._feedbackRL,this.effectSendL),this.feedback.fan(this._feedbackLR.gain,this._feedbackRL.gain),this._readOnly([\"feedback\"])},t.extend(t.StereoXFeedbackEffect,t.FeedbackEffect),t.StereoXFeedbackEffect.prototype.dispose=function(){return t.StereoEffect.prototype.dispose.call(this),this._writable([\"feedback\"]),this.feedback.dispose(),this.feedback=null,this._feedbackLR.dispose(),this._feedbackLR=null,this._feedbackRL.dispose(),this._feedbackRL=null,this},t.StereoXFeedbackEffect}),t(function(t){return t.Chorus=function(){var e=this.optionsObject(arguments,[\"frequency\",\"delayTime\",\"depth\"],t.Chorus.defaults);t.StereoXFeedbackEffect.call(this,e),this._depth=e.depth,this._delayTime=e.delayTime/1e3,this._lfoL=new t.LFO({frequency:e.frequency,min:0,max:1}),this._lfoR=new t.LFO({frequency:e.frequency,min:0,max:1,phase:180}),this._delayNodeL=new t.Delay,this._delayNodeR=new t.Delay,this.frequency=this._lfoL.frequency,this.effectSendL.chain(this._delayNodeL,this.effectReturnL),this.effectSendR.chain(this._delayNodeR,this.effectReturnR),this.effectSendL.connect(this.effectReturnL),this.effectSendR.connect(this.effectReturnR),this._lfoL.connect(this._delayNodeL.delayTime),this._lfoR.connect(this._delayNodeR.delayTime),this._lfoL.start(),this._lfoR.start(),this._lfoL.frequency.connect(this._lfoR.frequency),this.depth=this._depth,this.frequency.value=e.frequency,this.type=e.type,this._readOnly([\"frequency\"]),this.spread=e.spread},t.extend(t.Chorus,t.StereoXFeedbackEffect),t.Chorus.defaults={frequency:1.5,delayTime:3.5,depth:.7,feedback:.1,type:\"sine\",spread:180},Object.defineProperty(t.Chorus.prototype,\"depth\",{get:function(){return this._depth},set:function(t){this._depth=t;var e=this._delayTime*t;this._lfoL.min=Math.max(this._delayTime-e,0),this._lfoL.max=this._delayTime+e,this._lfoR.min=Math.max(this._delayTime-e,0),this._lfoR.max=this._delayTime+e}}),Object.defineProperty(t.Chorus.prototype,\"delayTime\",{get:function(){return 1e3*this._delayTime},set:function(t){this._delayTime=t/1e3,this.depth=this._depth}}),Object.defineProperty(t.Chorus.prototype,\"type\",{get:function(){return this._lfoL.type},set:function(t){this._lfoL.type=t,this._lfoR.type=t}}),Object.defineProperty(t.Chorus.prototype,\"spread\",{get:function(){return this._lfoR.phase-this._lfoL.phase},set:function(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}}),t.Chorus.prototype.dispose=function(){return t.StereoXFeedbackEffect.prototype.dispose.call(this),this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null,this._delayNodeL.dispose(),this._delayNodeL=null,this._delayNodeR.dispose(),this._delayNodeR=null,this._writable(\"frequency\"),this.frequency=null,this},t.Chorus}),t(function(t){return t.Convolver=function(){var e=this.optionsObject(arguments,[\"url\",\"onload\"],t.Convolver.defaults);t.Effect.call(this,e),this._convolver=this.context.createConvolver(),this._buffer=new t.Buffer,this.isString(e.url)?this._buffer.load(e.url,function(t){this.buffer=t,e.onload()}.bind(this)):e.url&&(this.buffer=e.url,e.onload()),this.connectEffect(this._convolver)},t.extend(t.Convolver,t.Effect),t.Convolver.defaults={onload:t.noOp},Object.defineProperty(t.Convolver.prototype,\"buffer\",{get:function(){return this._buffer.get()},set:function(t){this._buffer.set(t),this._convolver.buffer=this._buffer.get()}}),t.Convolver.prototype.load=function(t,e){return this._buffer.load(t,function(t){this.buffer=t,e&&e()}.bind(this))},t.Convolver.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._convolver.disconnect(),this._convolver=null,this._buffer.dispose(),this._buffer=null,this},t.Convolver}),t(function(t){return t.Distortion=function(){var e=this.optionsObject(arguments,[\"distortion\"],t.Distortion.defaults);t.Effect.call(this,e),this._shaper=new t.WaveShaper(4096),this._distortion=e.distortion,this.connectEffect(this._shaper),this.distortion=e.distortion,this.oversample=e.oversample},t.extend(t.Distortion,t.Effect),t.Distortion.defaults={distortion:.4,oversample:\"none\"},Object.defineProperty(t.Distortion.prototype,\"distortion\",{get:function(){return this._distortion},set:function(t){this._distortion=t;var e=100*t,i=Math.PI/180;this._shaper.setMap(function(t){return Math.abs(t)<.001?0:(3+e)*t*20*i/(Math.PI+e*Math.abs(t))})}}),Object.defineProperty(t.Distortion.prototype,\"oversample\",{get:function(){return this._shaper.oversample},set:function(t){this._shaper.oversample=t}}),t.Distortion.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._shaper.dispose(),this._shaper=null,this},t.Distortion}),t(function(t){return t.FeedbackDelay=function(){var e=this.optionsObject(arguments,[\"delayTime\",\"feedback\"],t.FeedbackDelay.defaults);t.FeedbackEffect.call(this,e),this._delayNode=new t.Delay(e.delayTime),this.delayTime=this._delayNode.delayTime,this.connectEffect(this._delayNode),this._readOnly([\"delayTime\"])},t.extend(t.FeedbackDelay,t.FeedbackEffect),t.FeedbackDelay.defaults={delayTime:.25},t.FeedbackDelay.prototype.dispose=function(){return t.FeedbackEffect.prototype.dispose.call(this),this._delayNode.dispose(),this._delayNode=null,this._writable([\"delayTime\"]),this.delayTime=null,this},t.FeedbackDelay}),t(function(t){var e=[1557/44100,1617/44100,1491/44100,1422/44100,1277/44100,1356/44100,1188/44100,1116/44100],i=[225,556,441,341];return t.Freeverb=function(){var s=this.optionsObject(arguments,[\"roomSize\",\"dampening\"],t.Freeverb.defaults);t.StereoEffect.call(this,s),this.roomSize=new t.Signal(s.roomSize,t.Type.NormalRange),this.dampening=new t.Signal(s.dampening,t.Type.Frequency),this._combFilters=[],this._allpassFiltersL=[],this._allpassFiltersR=[];for(var n=0;n<i.length;n++){var o=this.context.createBiquadFilter();o.type=\"allpass\",o.frequency.value=i[n],this._allpassFiltersL.push(o)}for(var r=0;r<i.length;r++){var a=this.context.createBiquadFilter();a.type=\"allpass\",a.frequency.value=i[r],this._allpassFiltersR.push(a)}for(var h=0;h<e.length;h++){var l=new t.LowpassCombFilter(e[h]);h<e.length/2?this.effectSendL.chain(l,this._allpassFiltersL[0]):this.effectSendR.chain(l,this._allpassFiltersR[0]),this.roomSize.connect(l.resonance),this.dampening.connect(l.dampening),this._combFilters.push(l)}this.connectSeries.apply(this,this._allpassFiltersL),this.connectSeries.apply(this,this._allpassFiltersR),this._allpassFiltersL[this._allpassFiltersL.length-1].connect(this.effectReturnL),this._allpassFiltersR[this._allpassFiltersR.length-1].connect(this.effectReturnR),this._readOnly([\"roomSize\",\"dampening\"])},t.extend(t.Freeverb,t.StereoEffect),t.Freeverb.defaults={roomSize:.7,dampening:3e3},t.Freeverb.prototype.dispose=function(){t.StereoEffect.prototype.dispose.call(this);for(var e=0;e<this._allpassFiltersL.length;e++)this._allpassFiltersL[e].disconnect(),this._allpassFiltersL[e]=null;this._allpassFiltersL=null;for(var i=0;i<this._allpassFiltersR.length;i++)this._allpassFiltersR[i].disconnect(),this._allpassFiltersR[i]=null;this._allpassFiltersR=null;for(var s=0;s<this._combFilters.length;s++)this._combFilters[s].dispose(),this._combFilters[s]=null;return this._combFilters=null,this._writable([\"roomSize\",\"dampening\"]),this.roomSize.dispose(),this.roomSize=null,this.dampening.dispose(),this.dampening=null,this},t.Freeverb}),t(function(t){var e=[.06748,.06404,.08212,.09004],i=[.773,.802,.753,.733],s=[347,113,37];return t.JCReverb=function(){var n=this.optionsObject(arguments,[\"roomSize\"],t.JCReverb.defaults);t.StereoEffect.call(this,n),this.roomSize=new t.Signal(n.roomSize,t.Type.NormalRange),this._scaleRoomSize=new t.Scale(-.733,.197),this._allpassFilters=[],this._feedbackCombFilters=[];for(var o=0;o<s.length;o++){var r=this.context.createBiquadFilter();r.type=\"allpass\",r.frequency.value=s[o],this._allpassFilters.push(r)}for(var a=0;a<e.length;a++){var h=new t.FeedbackCombFilter(e[a],.1);this._scaleRoomSize.connect(h.resonance),h.resonance.value=i[a],this._allpassFilters[this._allpassFilters.length-1].connect(h),a<e.length/2?h.connect(this.effectReturnL):h.connect(this.effectReturnR),this._feedbackCombFilters.push(h)}this.roomSize.connect(this._scaleRoomSize),this.connectSeries.apply(this,this._allpassFilters),this.effectSendL.connect(this._allpassFilters[0]),this.effectSendR.connect(this._allpassFilters[0]),this._readOnly([\"roomSize\"])},t.extend(t.JCReverb,t.StereoEffect),t.JCReverb.defaults={roomSize:.5},t.JCReverb.prototype.dispose=function(){t.StereoEffect.prototype.dispose.call(this);for(var e=0;e<this._allpassFilters.length;e++)this._allpassFilters[e].disconnect(),this._allpassFilters[e]=null;this._allpassFilters=null;for(var i=0;i<this._feedbackCombFilters.length;i++)this._feedbackCombFilters[i].dispose(),this._feedbackCombFilters[i]=null;return this._feedbackCombFilters=null,this._writable([\"roomSize\"]),this.roomSize.dispose(),this.roomSize=null,this._scaleRoomSize.dispose(),this._scaleRoomSize=null,this},t.JCReverb}),t(function(t){return t.MidSideEffect=function(){t.Effect.apply(this,arguments),this._midSideSplit=new t.MidSideSplit,this._midSideMerge=new t.MidSideMerge,this.midSend=this._midSideSplit.mid,this.sideSend=this._midSideSplit.side,this.midReturn=this._midSideMerge.mid,this.sideReturn=this._midSideMerge.side,this.effectSend.connect(this._midSideSplit),this._midSideMerge.connect(this.effectReturn)},t.extend(t.MidSideEffect,t.Effect),t.MidSideEffect.prototype.dispose=function(){return t.Effect.prototype.dispose.call(this),this._midSideSplit.dispose(),this._midSideSplit=null,this._midSideMerge.dispose(),this._midSideMerge=null,this.midSend=null,this.sideSend=null,this.midReturn=null,this.sideReturn=null,this},t.MidSideEffect}),t(function(t){return t.Phaser=function(){var e=this.optionsObject(arguments,[\"frequency\",\"octaves\",\"baseFrequency\"],t.Phaser.defaults);t.StereoEffect.call(this,e),this._lfoL=new t.LFO(e.frequency,0,1),this._lfoR=new t.LFO(e.frequency,0,1),this._lfoR.phase=180,this._baseFrequency=e.baseFrequency,this._octaves=e.octaves,this.Q=new t.Signal(e.Q,t.Type.Positive),this._filtersL=this._makeFilters(e.stages,this._lfoL,this.Q),this._filtersR=this._makeFilters(e.stages,this._lfoR,this.Q),this.frequency=this._lfoL.frequency,this.frequency.value=e.frequency,this.effectSendL.connect(this._filtersL[0]),this.effectSendR.connect(this._filtersR[0]),this._filtersL[e.stages-1].connect(this.effectReturnL),this._filtersR[e.stages-1].connect(this.effectReturnR),this._lfoL.frequency.connect(this._lfoR.frequency),this.baseFrequency=e.baseFrequency,this.octaves=e.octaves,this._lfoL.start(),this._lfoR.start(),this._readOnly([\"frequency\",\"Q\"])},t.extend(t.Phaser,t.StereoEffect),t.Phaser.defaults={frequency:.5,octaves:3,stages:10,Q:10,baseFrequency:350},t.Phaser.prototype._makeFilters=function(t,e,i){for(var s=new Array(t),n=0;n<t;n++){var o=this.context.createBiquadFilter();o.type=\"allpass\",i.connect(o.Q),e.connect(o.frequency),s[n]=o}return this.connectSeries.apply(this,s),s},Object.defineProperty(t.Phaser.prototype,\"octaves\",{get:function(){return this._octaves},set:function(t){this._octaves=t;var e=this._baseFrequency*Math.pow(2,t);this._lfoL.max=e,this._lfoR.max=e}}),Object.defineProperty(t.Phaser.prototype,\"baseFrequency\",{get:function(){return this._baseFrequency},set:function(t){this._baseFrequency=t,this._lfoL.min=t,this._lfoR.min=t,this.octaves=this._octaves}}),t.Phaser.prototype.dispose=function(){t.StereoEffect.prototype.dispose.call(this),this._writable([\"frequency\",\"Q\"]),this.Q.dispose(),this.Q=null,this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null;for(var e=0;e<this._filtersL.length;e++)this._filtersL[e].disconnect(),this._filtersL[e]=null;this._filtersL=null;for(var i=0;i<this._filtersR.length;i++)this._filtersR[i].disconnect(),this._filtersR[i]=null;return this._filtersR=null,this.frequency=null,this},t.Phaser}),t(function(t){return t.PingPongDelay=function(){var e=this.optionsObject(arguments,[\"delayTime\",\"feedback\"],t.PingPongDelay.defaults);t.StereoXFeedbackEffect.call(this,e),this._leftDelay=new t.Delay(0,e.maxDelayTime),this._rightDelay=new t.Delay(0,e.maxDelayTime),this._rightPreDelay=new t.Delay(0,e.maxDelayTime),this.delayTime=new t.Signal(e.delayTime,t.Type.Time),this.effectSendL.chain(this._leftDelay,this.effectReturnL),this.effectSendR.chain(this._rightPreDelay,this._rightDelay,this.effectReturnR),this.delayTime.fan(this._leftDelay.delayTime,this._rightDelay.delayTime,this._rightPreDelay.delayTime),this._feedbackLR.disconnect(),this._feedbackLR.connect(this._rightDelay),this._readOnly([\"delayTime\"])},t.extend(t.PingPongDelay,t.StereoXFeedbackEffect),t.PingPongDelay.defaults={delayTime:.25,maxDelayTime:1},t.PingPongDelay.prototype.dispose=function(){return t.StereoXFeedbackEffect.prototype.dispose.call(this),this._leftDelay.dispose(),this._leftDelay=null,this._rightDelay.dispose(),this._rightDelay=null,this._rightPreDelay.dispose(),this._rightPreDelay=null,this._writable([\"delayTime\"]),this.delayTime.dispose(),this.delayTime=null,this},t.PingPongDelay}),t(function(t){return t.PitchShift=function(){var e=this.optionsObject(arguments,[\"pitch\"],t.PitchShift.defaults);t.FeedbackEffect.call(this,e),this._frequency=new t.Signal(0),this._delayA=new t.Delay(0,1),this._lfoA=new t.LFO({min:0,max:.1,type:\"sawtooth\"}).connect(this._delayA.delayTime),this._delayB=new t.Delay(0,1),this._lfoB=new t.LFO({min:0,max:.1,type:\"sawtooth\",phase:180}).connect(this._delayB.delayTime),this._crossFade=new t.CrossFade,this._crossFadeLFO=new t.LFO({min:0,max:1,type:\"triangle\",phase:90}).connect(this._crossFade.fade),this._feedbackDelay=new t.Delay(e.delayTime),this.delayTime=this._feedbackDelay.delayTime,this._readOnly(\"delayTime\"),this._pitch=e.pitch,this._windowSize=e.windowSize,this._delayA.connect(this._crossFade.a),this._delayB.connect(this._crossFade.b),this._frequency.fan(this._lfoA.frequency,this._lfoB.frequency,this._crossFadeLFO.frequency),this.effectSend.fan(this._delayA,this._delayB),this._crossFade.chain(this._feedbackDelay,this.effectReturn);var i=this.now();this._lfoA.start(i),this._lfoB.start(i),this._crossFadeLFO.start(i),this.windowSize=this._windowSize},t.extend(t.PitchShift,t.FeedbackEffect),t.PitchShift.defaults={pitch:0,windowSize:.1,delayTime:0,feedback:0},Object.defineProperty(t.PitchShift.prototype,\"pitch\",{get:function(){return this._pitch},set:function(t){this._pitch=t;var e=0;t<0?(this._lfoA.min=0,this._lfoA.max=this._windowSize,this._lfoB.min=0,this._lfoB.max=this._windowSize,e=this.intervalToFrequencyRatio(t-1)+1):(this._lfoA.min=this._windowSize,this._lfoA.max=0,this._lfoB.min=this._windowSize,this._lfoB.max=0,e=this.intervalToFrequencyRatio(t)-1),this._frequency.value=e*(1.2/this._windowSize)}}),Object.defineProperty(t.PitchShift.prototype,\"windowSize\",{get:function(){return this._windowSize},set:function(t){this._windowSize=this.toSeconds(t),this.pitch=this._pitch}}),t.PitchShift.prototype.dispose=function(){return t.FeedbackEffect.prototype.dispose.call(this),this._frequency.dispose(),this._frequency=null,this._delayA.disconnect(),this._delayA=null,this._delayB.disconnect(),this._delayB=null,this._lfoA.dispose(),this._lfoA=null,this._lfoB.dispose(),this._lfoB=null,this._crossFade.dispose(),this._crossFade=null,this._crossFadeLFO.dispose(),this._crossFadeLFO=null,this._writable(\"delayTime\"),this._feedbackDelay.dispose(),this._feedbackDelay=null,this.delayTime=null,this},t.PitchShift}),t(function(t){return t.StereoFeedbackEffect=function(){var e=this.optionsObject(arguments,[\"feedback\"],t.FeedbackEffect.defaults);t.StereoEffect.call(this,e),this.feedback=new t.Signal(e.feedback,t.Type.NormalRange),this._feedbackL=new t.Gain,this._feedbackR=new t.Gain,this.effectReturnL.chain(this._feedbackL,this.effectSendL),this.effectReturnR.chain(this._feedbackR,this.effectSendR),this.feedback.fan(this._feedbackL.gain,this._feedbackR.gain),this._readOnly([\"feedback\"])},t.extend(t.StereoFeedbackEffect,t.FeedbackEffect),t.StereoFeedbackEffect.prototype.dispose=function(){return t.StereoEffect.prototype.dispose.call(this),this._writable([\"feedback\"]),this.feedback.dispose(),this.feedback=null,this._feedbackL.dispose(),this._feedbackL=null,this._feedbackR.dispose(),this._feedbackR=null,this},t.StereoFeedbackEffect}),t(function(t){return t.StereoWidener=function(){var e=this.optionsObject(arguments,[\"width\"],t.StereoWidener.defaults);t.MidSideEffect.call(this,e),this.width=new t.Signal(e.width,t.Type.NormalRange),this._midMult=new t.Expr(\"$0 * ($1 * (1 - $2))\"),this._sideMult=new t.Expr(\"$0 * ($1 * $2)\"),this._two=new t.Signal(2),this._two.connect(this._midMult,0,1),this.width.connect(this._midMult,0,2),this._two.connect(this._sideMult,0,1),this.width.connect(this._sideMult,0,2),this.midSend.chain(this._midMult,this.midReturn),this.sideSend.chain(this._sideMult,this.sideReturn),this._readOnly([\"width\"])},t.extend(t.StereoWidener,t.MidSideEffect),t.StereoWidener.defaults={width:.5},t.StereoWidener.prototype.dispose=function(){return t.MidSideEffect.prototype.dispose.call(this),this._writable([\"width\"]),this.width.dispose(),this.width=null,this._midMult.dispose(),this._midMult=null,this._sideMult.dispose(),this._sideMult=null,this._two.dispose(),this._two=null,this},t.StereoWidener}),t(function(t){return t.Tremolo=function(){var e=this.optionsObject(arguments,[\"frequency\",\"depth\"],t.Tremolo.defaults);t.StereoEffect.call(this,e),this._lfoL=new t.LFO({phase:e.spread,min:1,max:0}),this._lfoR=new t.LFO({phase:e.spread,min:1,max:0}),this._amplitudeL=new t.Gain,this._amplitudeR=new t.Gain,this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.depth=new t.Signal(e.depth,t.Type.NormalRange),this._readOnly([\"frequency\",\"depth\"]),this.effectSendL.chain(this._amplitudeL,this.effectReturnL),this.effectSendR.chain(this._amplitudeR,this.effectReturnR),this._lfoL.connect(this._amplitudeL.gain),this._lfoR.connect(this._amplitudeR.gain),this.frequency.fan(this._lfoL.frequency,this._lfoR.frequency),this.depth.fan(this._lfoR.amplitude,this._lfoL.amplitude),this.type=e.type,this.spread=e.spread},t.extend(t.Tremolo,t.StereoEffect),t.Tremolo.defaults={frequency:10,type:\"sine\",depth:.5,spread:180},t.Tremolo.prototype.start=function(t){return this._lfoL.start(t),this._lfoR.start(t),this},t.Tremolo.prototype.stop=function(t){return this._lfoL.stop(t),this._lfoR.stop(t),this},t.Tremolo.prototype.sync=function(t){return this._lfoL.sync(t),this._lfoR.sync(t),this},t.Tremolo.prototype.unsync=function(){return this._lfoL.unsync(),this._lfoR.unsync(),this},Object.defineProperty(t.Tremolo.prototype,\"type\",{get:function(){return this._lfoL.type},set:function(t){this._lfoL.type=t,this._lfoR.type=t}}),Object.defineProperty(t.Tremolo.prototype,\"spread\",{get:function(){return this._lfoR.phase-this._lfoL.phase},set:function(t){this._lfoL.phase=90-t/2,this._lfoR.phase=t/2+90}}),t.Tremolo.prototype.dispose=function(){return t.StereoEffect.prototype.dispose.call(this),this._writable([\"frequency\",\"depth\"]),this._lfoL.dispose(),this._lfoL=null,this._lfoR.dispose(),this._lfoR=null,this._amplitudeL.dispose(),this._amplitudeL=null,this._amplitudeR.dispose(),this._amplitudeR=null,this.frequency=null,this.depth=null,this},t.Tremolo}),t(function(t){return t.Vibrato=function(){var e=this.optionsObject(arguments,[\"frequency\",\"depth\"],t.Vibrato.defaults);t.Effect.call(this,e),this._delayNode=new t.Delay(0,e.maxDelay),this._lfo=new t.LFO({type:e.type,min:0,max:e.maxDelay,frequency:e.frequency,phase:-90}).start().connect(this._delayNode.delayTime),this.frequency=this._lfo.frequency,this.depth=this._lfo.amplitude,this.depth.value=e.depth,this._readOnly([\"frequency\",\"depth\"]),this.effectSend.chain(this._delayNode,this.effectReturn)},t.extend(t.Vibrato,t.Effect),t.Vibrato.defaults={maxDelay:.005,frequency:5,depth:.1,type:\"sine\"},Object.defineProperty(t.Vibrato.prototype,\"type\",{get:function(){return this._lfo.type},set:function(t){this._lfo.type=t}}),t.Vibrato.prototype.dispose=function(){t.Effect.prototype.dispose.call(this),this._delayNode.dispose(),this._delayNode=null,this._lfo.dispose(),this._lfo=null,this._writable([\"frequency\",\"depth\"]),this.frequency=null,this.depth=null},t.Vibrato}),t(function(t){return t.Event=function(){var e=this.optionsObject(arguments,[\"callback\",\"value\"],t.Event.defaults);this._loop=e.loop,this.callback=e.callback,this.value=e.value,this._loopStart=this.toTicks(e.loopStart),this._loopEnd=this.toTicks(e.loopEnd),this._state=new t.TimelineState(t.State.Stopped),this._playbackRate=1,this._startOffset=0,this.probability=e.probability,this.humanize=e.humanize,this.mute=e.mute,this.playbackRate=e.playbackRate},t.extend(t.Event),t.Event.defaults={callback:t.noOp,loop:!1,loopEnd:\"1m\",loopStart:0,playbackRate:1,value:null,probability:1,mute:!1,humanize:!1},t.Event.prototype._rescheduleEvents=function(e){return e=this.defaultArg(e,-1),this._state.forEachFrom(e,function(e){var i;if(e.state===t.State.Started){this.isUndef(e.id)||t.Transport.clear(e.id);var s=e.time+Math.round(this.startOffset/this._playbackRate);if(this._loop){i=1/0,this.isNumber(this._loop)&&(i=this._loop*this._getLoopDuration());var n=this._state.getAfter(s);null!==n&&(i=Math.min(i,n.time-s)),i!==1/0&&(this._state.setStateAtTime(t.State.Stopped,s+i+1),i=t.Time(i,\"i\"));var o=t.Time(this._getLoopDuration(),\"i\");e.id=t.Transport.scheduleRepeat(this._tick.bind(this),o,t.TransportTime(s,\"i\"),i)}else e.id=t.Transport.schedule(this._tick.bind(this),s+\"i\")}}.bind(this)),this},Object.defineProperty(t.Event.prototype,\"state\",{get:function(){return this._state.getValueAtTime(t.Transport.ticks)}}),Object.defineProperty(t.Event.prototype,\"startOffset\",{get:function(){return this._startOffset},set:function(t){this._startOffset=t}}),t.Event.prototype.start=function(e){return e=this.toTicks(e),this._state.getValueAtTime(e)===t.State.Stopped&&(this._state.add({state:t.State.Started,time:e,id:void 0}),this._rescheduleEvents(e)),this},t.Event.prototype.stop=function(e){if(this.cancel(e),e=this.toTicks(e),this._state.getValueAtTime(e)===t.State.Started){this._state.setStateAtTime(t.State.Stopped,e);var i=this._state.getBefore(e),s=e;null!==i&&(s=i.time),this._rescheduleEvents(s)}return this},t.Event.prototype.cancel=function(e){return e=this.defaultArg(e,-1/0),e=this.toTicks(e),this._state.forEachFrom(e,function(e){t.Transport.clear(e.id)}),this._state.cancel(e),this},t.Event.prototype._tick=function(e){if(!this.mute&&this._state.getValueAtTime(t.Transport.ticks)===t.State.Started){if(this.probability<1&&Math.random()>this.probability)return;if(this.humanize){var i=.02;this.isBoolean(this.humanize)||(i=this.toSeconds(this.humanize)),e+=(2*Math.random()-1)*i}this.callback(e,this.value)}},t.Event.prototype._getLoopDuration=function(){return Math.round((this._loopEnd-this._loopStart)/this._playbackRate)},Object.defineProperty(t.Event.prototype,\"loop\",{get:function(){return this._loop},set:function(t){this._loop=t,this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,\"playbackRate\",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,\"loopEnd\",{get:function(){return t.TransportTime(this._loopEnd,\"i\").toNotation()},set:function(t){this._loopEnd=this.toTicks(t),this._loop&&this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,\"loopStart\",{get:function(){return t.TransportTime(this._loopStart,\"i\").toNotation()},set:function(t){this._loopStart=this.toTicks(t),this._loop&&this._rescheduleEvents()}}),Object.defineProperty(t.Event.prototype,\"progress\",{get:function(){if(this._loop){var e=t.Transport.ticks,i=this._state.get(e);if(null!==i&&i.state===t.State.Started){var s=this._getLoopDuration();return(e-i.time)%s/s}return 0}return 0}}),t.Event.prototype.dispose=function(){this.cancel(),this._state.dispose(),this._state=null,this.callback=null,this.value=null},t.Event}),t(function(t){return t.Loop=function(){var e=this.optionsObject(arguments,[\"callback\",\"interval\"],t.Loop.defaults);this._event=new t.Event({callback:this._tick.bind(this),loop:!0,loopEnd:e.interval,playbackRate:e.playbackRate,probability:e.probability}),this.callback=e.callback,this.iterations=e.iterations},t.extend(t.Loop),t.Loop.defaults={interval:\"4n\",callback:t.noOp,playbackRate:1,iterations:1/0,probability:!0,mute:!1},t.Loop.prototype.start=function(t){return this._event.start(t),this},t.Loop.prototype.stop=function(t){return this._event.stop(t),this},t.Loop.prototype.cancel=function(t){return this._event.cancel(t),this},t.Loop.prototype._tick=function(t){this.callback(t)},Object.defineProperty(t.Loop.prototype,\"state\",{get:function(){return this._event.state}}),Object.defineProperty(t.Loop.prototype,\"progress\",{get:function(){return this._event.progress}}),Object.defineProperty(t.Loop.prototype,\"interval\",{get:function(){return this._event.loopEnd},set:function(t){this._event.loopEnd=t}}),Object.defineProperty(t.Loop.prototype,\"playbackRate\",{get:function(){return this._event.playbackRate},set:function(t){this._event.playbackRate=t}}),Object.defineProperty(t.Loop.prototype,\"humanize\",{get:function(){return this._event.humanize},set:function(t){this._event.humanize=t}}),Object.defineProperty(t.Loop.prototype,\"probability\",{get:function(){return this._event.probability},set:function(t){this._event.probability=t}}),Object.defineProperty(t.Loop.prototype,\"mute\",{get:function(){return this._event.mute},set:function(t){this._event.mute=t}}),Object.defineProperty(t.Loop.prototype,\"iterations\",{get:function(){return!0===this._event.loop?1/0:this._event.loop},set:function(t){this._event.loop=t===1/0||t}}),t.Loop.prototype.dispose=function(){this._event.dispose(),this._event=null,this.callback=null},t.Loop}),t(function(t){return t.Part=function(){var e=this.optionsObject(arguments,[\"callback\",\"events\"],t.Part.defaults);this._loop=e.loop,this._loopStart=this.toTicks(e.loopStart),this._loopEnd=this.toTicks(e.loopEnd),this._playbackRate=e.playbackRate,this._probability=e.probability,this._humanize=e.humanize,this._startOffset=0,this._state=new t.TimelineState(t.State.Stopped),this._events=[],this.callback=e.callback,this.mute=e.mute;var i=this.defaultArg(e.events,[]);if(!this.isUndef(e.events))for(var s=0;s<i.length;s++)Array.isArray(i[s])?this.add(i[s][0],i[s][1]):this.add(i[s])},t.extend(t.Part,t.Event),t.Part.defaults={callback:t.noOp,loop:!1,loopEnd:\"1m\",loopStart:0,playbackRate:1,probability:1,humanize:!1,mute:!1},t.Part.prototype.start=function(e,i){var s=this.toTicks(e);return this._state.getValueAtTime(s)!==t.State.Started&&(i=this._loop?this.defaultArg(i,this._loopStart):this.defaultArg(i,0),i=this.toTicks(i),this._state.add({state:t.State.Started,time:s,offset:i}),this._forEach(function(t){this._startNote(t,s,i)})),this},t.Part.prototype._startNote=function(e,i,s){i-=s,this._loop?e.startOffset>=this._loopStart&&e.startOffset<this._loopEnd?(e.startOffset<s&&(i+=this._getLoopDuration()),e.start(t.TransportTime(i,\"i\"))):e.startOffset<this._loopStart&&e.startOffset>=s&&(e.loop=!1,e.start(t.TransportTime(i,\"i\"))):e.startOffset>=s&&e.start(t.TransportTime(i,\"i\"))},Object.defineProperty(t.Part.prototype,\"startOffset\",{get:function(){return this._startOffset},set:function(t){this._startOffset=t,this._forEach(function(t){t.startOffset+=this._startOffset})}}),t.Part.prototype.stop=function(e){var i=this.toTicks(e);return this._state.cancel(i),this._state.setStateAtTime(t.State.Stopped,i),this._forEach(function(t){t.stop(e)}),this},t.Part.prototype.at=function(e,i){e=t.TransportTime(e);for(var s=t.Time(1,\"i\").toSeconds(),n=0;n<this._events.length;n++){var o=this._events[n];if(Math.abs(e.toTicks()-o.startOffset)<s)return this.isUndef(i)||(o.value=i),o}return this.isUndef(i)?null:(this.add(e,i),this._events[this._events.length-1])},t.Part.prototype.add=function(e,i){e.hasOwnProperty(\"time\")&&(i=e,e=i.time),e=this.toTicks(e);var s;return i instanceof t.Event?(s=i,s.callback=this._tick.bind(this)):s=new t.Event({callback:this._tick.bind(this),value:i}),s.startOffset=e,s.set({loopEnd:this.loopEnd,loopStart:this.loopStart,loop:this.loop,humanize:this.humanize,playbackRate:this.playbackRate,probability:this.probability}),this._events.push(s),this._restartEvent(s),this},t.Part.prototype._restartEvent=function(e){this._state.forEach(function(i){i.state===t.State.Started?this._startNote(e,i.time,i.offset):e.stop(t.TransportTime(i.time,\"i\"))}.bind(this))},t.Part.prototype.remove=function(e,i){e.hasOwnProperty(\"time\")&&(i=e,e=i.time),e=this.toTicks(e);for(var s=this._events.length-1;s>=0;s--){var n=this._events[s];n instanceof t.Part?n.remove(e,i):n.startOffset===e&&(this.isUndef(i)||!this.isUndef(i)&&n.value===i)&&(this._events.splice(s,1),n.dispose())}return this},t.Part.prototype.removeAll=function(){return this._forEach(function(t){t.dispose()}),this._events=[],this},t.Part.prototype.cancel=function(t){return t=this.toTicks(t),this._forEach(function(e){e.cancel(t)}),this._state.cancel(t),this},t.Part.prototype._forEach=function(e,i){i=this.defaultArg(i,this);for(var s=this._events.length-1;s>=0;s--){var n=this._events[s];n instanceof t.Part?n._forEach(e,i):e.call(i,n)}return this},t.Part.prototype._setAll=function(t,e){this._forEach(function(i){i[t]=e})},t.Part.prototype._tick=function(t,e){this.mute||this.callback(t,e)},t.Part.prototype._testLoopBoundries=function(e){e.startOffset<this._loopStart||e.startOffset>=this._loopEnd?e.cancel(0):e.state===t.State.Stopped&&this._restartEvent(e)},Object.defineProperty(t.Part.prototype,\"probability\",{get:function(){return this._probability},set:function(t){this._probability=t,this._setAll(\"probability\",t)}}),Object.defineProperty(t.Part.prototype,\"humanize\",{get:function(){return this._humanize},set:function(t){this._humanize=t,this._setAll(\"humanize\",t)}}),Object.defineProperty(t.Part.prototype,\"loop\",{get:function(){return this._loop},set:function(t){this._loop=t,this._forEach(function(e){e._loopStart=this._loopStart,e._loopEnd=this._loopEnd,e.loop=t,this._testLoopBoundries(e)})}}),Object.defineProperty(t.Part.prototype,\"loopEnd\",{get:function(){return t.TransportTime(this._loopEnd,\"i\").toNotation()},set:function(t){this._loopEnd=this.toTicks(t),this._loop&&this._forEach(function(e){e.loopEnd=t,this._testLoopBoundries(e)})}}),Object.defineProperty(t.Part.prototype,\"loopStart\",{get:function(){return t.TransportTime(this._loopStart,\"i\").toNotation()},set:function(t){this._loopStart=this.toTicks(t),this._loop&&this._forEach(function(t){t.loopStart=this.loopStart,this._testLoopBoundries(t)})}}),Object.defineProperty(t.Part.prototype,\"playbackRate\",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._setAll(\"playbackRate\",t)}}),Object.defineProperty(t.Part.prototype,\"length\",{get:function(){return this._events.length}}),t.Part.prototype.dispose=function(){return this.removeAll(),this._state.dispose(),this._state=null,this.callback=null,this._events=null,this},t.Part}),t(function(t){return t.Pattern=function(){var e=this.optionsObject(arguments,[\"callback\",\"values\",\"pattern\"],t.Pattern.defaults);t.Loop.call(this,e),this._pattern=new t.CtrlPattern({values:e.values,type:e.pattern,index:e.index})},t.extend(t.Pattern,t.Loop),t.Pattern.defaults={pattern:t.CtrlPattern.Type.Up,values:[]},t.Pattern.prototype._tick=function(t){this.callback(t,this._pattern.value),this._pattern.next()},Object.defineProperty(t.Pattern.prototype,\"index\",{get:function(){return this._pattern.index},set:function(t){this._pattern.index=t}}),Object.defineProperty(t.Pattern.prototype,\"values\",{get:function(){return this._pattern.values},set:function(t){this._pattern.values=t}}),Object.defineProperty(t.Pattern.prototype,\"value\",{get:function(){return this._pattern.value}}),Object.defineProperty(t.Pattern.prototype,\"pattern\",{get:function(){return this._pattern.type},set:function(t){this._pattern.type=t}}),t.Pattern.prototype.dispose=function(){t.Loop.prototype.dispose.call(this),this._pattern.dispose(),this._pattern=null},t.Pattern}),t(function(t){return t.Sequence=function(){var e=this.optionsObject(arguments,[\"callback\",\"events\",\"subdivision\"],t.Sequence.defaults),i=e.events;if(delete e.events,t.Part.call(this,e),this._subdivision=this.toTicks(e.subdivision),this.isUndef(e.loopEnd)&&!this.isUndef(i)&&(this._loopEnd=i.length*this._subdivision),this._loop=!0,!this.isUndef(i))for(var s=0;s<i.length;s++)this.add(s,i[s])},t.extend(t.Sequence,t.Part),t.Sequence.defaults={subdivision:\"4n\"},Object.defineProperty(t.Sequence.prototype,\"subdivision\",{get:function(){return t.Time(this._subdivision,\"i\").toNotation()}}),t.Sequence.prototype.at=function(e,i){return this.isArray(i)&&this.remove(e),t.Part.prototype.at.call(this,this._indexTime(e),i)},t.Sequence.prototype.add=function(e,i){if(null===i)return this;if(this.isArray(i)){var s=Math.round(this._subdivision/i.length);i=new t.Sequence(this._tick.bind(this),i,t.Time(s,\"i\"))}return t.Part.prototype.add.call(this,this._indexTime(e),i),this},t.Sequence.prototype.remove=function(e,i){return t.Part.prototype.remove.call(this,this._indexTime(e),i),this},t.Sequence.prototype._indexTime=function(e){return e instanceof t.TransportTime?e:t.TransportTime(e*this._subdivision+this.startOffset,\"i\")},t.Sequence.prototype.dispose=function(){return t.Part.prototype.dispose.call(this),this},t.Sequence}),t(function(t){return t.PulseOscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"width\"],t.Oscillator.defaults);t.Source.call(this,e),this.width=new t.Signal(e.width,t.Type.NormalRange),this._widthGate=new t.Gain,this._sawtooth=new t.Oscillator({frequency:e.frequency,detune:e.detune,type:\"sawtooth\",phase:e.phase}),this.frequency=this._sawtooth.frequency,this.detune=this._sawtooth.detune,this._thresh=new t.WaveShaper(function(t){return t<0?-1:1}),this._sawtooth.chain(this._thresh,this.output),this.width.chain(this._widthGate,this._thresh),this._readOnly([\"width\",\"frequency\",\"detune\"])},t.extend(t.PulseOscillator,t.Oscillator),t.PulseOscillator.defaults={frequency:440,detune:0,phase:0,width:.2},t.PulseOscillator.prototype._start=function(t){t=this.toSeconds(t),this._sawtooth.start(t),this._widthGate.gain.setValueAtTime(1,t)},t.PulseOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._sawtooth.stop(t),this._widthGate.gain.setValueAtTime(0,t)},Object.defineProperty(t.PulseOscillator.prototype,\"phase\",{get:function(){return this._sawtooth.phase},set:function(t){this._sawtooth.phase=t}}),Object.defineProperty(t.PulseOscillator.prototype,\"type\",{get:function(){return\"pulse\"}}),Object.defineProperty(t.PulseOscillator.prototype,\"partials\",{get:function(){return[]}}),t.PulseOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._sawtooth.dispose(),this._sawtooth=null,this._writable([\"width\",\"frequency\",\"detune\"]),this.width.dispose(),this.width=null,this._widthGate.dispose(),this._widthGate=null,this._thresh.dispose(),this._thresh=null,this.frequency=null,this.detune=null,this},t.PulseOscillator}),t(function(t){return t.PWMOscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"modulationFrequency\"],t.PWMOscillator.defaults);t.Source.call(this,e),this._pulse=new t.PulseOscillator(e.modulationFrequency),this._pulse._sawtooth.type=\"sine\",this._modulator=new t.Oscillator({frequency:e.frequency,detune:e.detune,phase:e.phase}),this._scale=new t.Multiply(2),this.frequency=this._modulator.frequency,this.detune=this._modulator.detune,this.modulationFrequency=this._pulse.frequency,this._modulator.chain(this._scale,this._pulse.width),this._pulse.connect(this.output),this._readOnly([\"modulationFrequency\",\"frequency\",\"detune\"])},t.extend(t.PWMOscillator,t.Oscillator),t.PWMOscillator.defaults={frequency:440,detune:0,phase:0,modulationFrequency:.4},t.PWMOscillator.prototype._start=function(t){t=this.toSeconds(t),this._modulator.start(t),this._pulse.start(t)},t.PWMOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._modulator.stop(t),this._pulse.stop(t)},Object.defineProperty(t.PWMOscillator.prototype,\"type\",{get:function(){return\"pwm\"}}),Object.defineProperty(t.PWMOscillator.prototype,\"partials\",{get:function(){return[]}}),Object.defineProperty(t.PWMOscillator.prototype,\"phase\",{get:function(){return this._modulator.phase},set:function(t){this._modulator.phase=t}}),t.PWMOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._pulse.dispose(),this._pulse=null,this._scale.dispose(),this._scale=null,this._modulator.dispose(),this._modulator=null,this._writable([\"modulationFrequency\",\"frequency\",\"detune\"]),this.frequency=null,this.detune=null,this.modulationFrequency=null,this},t.PWMOscillator}),t(function(t){return t.FMOscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"type\",\"modulationType\"],t.FMOscillator.defaults);t.Source.call(this,e),this._carrier=new t.Oscillator(e.frequency,e.type),this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=this._carrier.detune,this.detune.value=e.detune,this.modulationIndex=new t.Multiply(e.modulationIndex),this.modulationIndex.units=t.Type.Positive,this._modulator=new t.Oscillator(e.frequency,e.modulationType),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this._modulationNode=new t.Gain(0),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this.detune.connect(this._modulator.detune),this.phase=e.phase,this._readOnly([\"modulationIndex\",\"frequency\",\"detune\",\"harmonicity\"])},t.extend(t.FMOscillator,t.Oscillator),t.FMOscillator.defaults={frequency:440,detune:0,phase:0,modulationIndex:2,modulationType:\"square\",harmonicity:1},t.FMOscillator.prototype._start=function(t){t=this.toSeconds(t),this._modulator.start(t),this._carrier.start(t)},t.FMOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._modulator.stop(t),this._carrier.stop(t)},Object.defineProperty(t.FMOscillator.prototype,\"type\",{get:function(){return this._carrier.type},set:function(t){this._carrier.type=t}}),Object.defineProperty(t.FMOscillator.prototype,\"modulationType\",{get:function(){return this._modulator.type},set:function(t){this._modulator.type=t}}),Object.defineProperty(t.FMOscillator.prototype,\"phase\",{get:function(){return this._carrier.phase},set:function(t){this._carrier.phase=t,this._modulator.phase=t}}),Object.defineProperty(t.FMOscillator.prototype,\"partials\",{get:function(){return this._carrier.partials},set:function(t){this._carrier.partials=t}}),t.FMOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable([\"modulationIndex\",\"frequency\",\"detune\",\"harmonicity\"]),this.frequency.dispose(),this.frequency=null,this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this._modulationNode.dispose(),this._modulationNode=null,this.modulationIndex.dispose(),this.modulationIndex=null,this},t.FMOscillator}),t(function(t){return t.AMOscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"type\",\"modulationType\"],t.AMOscillator.defaults);t.Source.call(this,e),this._carrier=new t.Oscillator(e.frequency,e.type),this.frequency=this._carrier.frequency,this.detune=this._carrier.detune,this.detune.value=e.detune,this._modulator=new t.Oscillator(e.frequency,e.modulationType),this._modulationScale=new t.AudioToGain,this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this._modulationNode=new t.Gain(0),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.connect(this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),this.phase=e.phase,this._readOnly([\"frequency\",\"detune\",\"harmonicity\"])},t.extend(t.AMOscillator,t.Oscillator),t.AMOscillator.defaults={frequency:440,detune:0,phase:0,modulationType:\"square\",harmonicity:1},t.AMOscillator.prototype._start=function(t){t=this.toSeconds(t),this._modulator.start(t),this._carrier.start(t)},t.AMOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._modulator.stop(t),this._carrier.stop(t)},Object.defineProperty(t.AMOscillator.prototype,\"type\",{get:function(){return this._carrier.type},set:function(t){this._carrier.type=t}}),Object.defineProperty(t.AMOscillator.prototype,\"modulationType\",{get:function(){return this._modulator.type},set:function(t){this._modulator.type=t}}),Object.defineProperty(t.AMOscillator.prototype,\"phase\",{get:function(){return this._carrier.phase},set:function(t){this._carrier.phase=t,this._modulator.phase=t}}),Object.defineProperty(t.AMOscillator.prototype,\"partials\",{get:function(){return this._carrier.partials},set:function(t){this._carrier.partials=t}}),t.AMOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable([\"frequency\",\"detune\",\"harmonicity\"]),this.frequency=null,this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this._modulationNode.dispose(),this._modulationNode=null,this._modulationScale.dispose(),this._modulationScale=null,this},t.AMOscillator}),t(function(t){return t.FatOscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"type\",\"spread\"],t.FatOscillator.defaults);t.Source.call(this,e),this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this._oscillators=[],this._spread=e.spread,this._type=e.type,this._phase=e.phase,this._partials=this.defaultArg(e.partials,[]),this.count=e.count,this._readOnly([\"frequency\",\"detune\"])},t.extend(t.FatOscillator,t.Oscillator),t.FatOscillator.defaults={frequency:440,detune:0,phase:0,spread:20,count:3,type:\"sawtooth\"},t.FatOscillator.prototype._start=function(t){t=this.toSeconds(t),this._forEach(function(e){e.start(t)})},t.FatOscillator.prototype._stop=function(t){t=this.toSeconds(t),this._forEach(function(e){e.stop(t)})},t.FatOscillator.prototype._forEach=function(t){for(var e=0;e<this._oscillators.length;e++)t.call(this,this._oscillators[e],e)},Object.defineProperty(t.FatOscillator.prototype,\"type\",{get:function(){return this._type},set:function(t){this._type=t,this._forEach(function(e){e.type=t})}}),Object.defineProperty(t.FatOscillator.prototype,\"spread\",{get:function(){return this._spread},set:function(t){if(this._spread=t,this._oscillators.length>1){var e=-t/2,i=t/(this._oscillators.length-1);this._forEach(function(t,s){t.detune.value=e+i*s})}}}),Object.defineProperty(t.FatOscillator.prototype,\"count\",{get:function(){return this._oscillators.length},set:function(e){if(e=Math.max(e,1),this._oscillators.length!==e){this._forEach(function(t){t.dispose()}),this._oscillators=[];for(var i=0;i<e;i++){var s=new t.Oscillator;this.type===t.Oscillator.Type.Custom?s.partials=this._partials:s.type=this._type,s.phase=this._phase,s.volume.value=-6-e,this.frequency.connect(s.frequency),this.detune.connect(s.detune),s.connect(this.output),this._oscillators[i]=s}this.spread=this._spread,this.state===t.State.Started&&this._forEach(function(t){t.start()})}}}),Object.defineProperty(t.FatOscillator.prototype,\"phase\",{get:function(){return this._phase},set:function(t){this._phase=t,this._forEach(function(e){e.phase=t})}}),Object.defineProperty(t.FatOscillator.prototype,\"partials\",{get:function(){return this._partials},set:function(e){this._partials=e,this._type=t.Oscillator.Type.Custom,this._forEach(function(t){t.partials=e})}}),t.FatOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable([\"frequency\",\"detune\"]),this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this._forEach(function(t){t.dispose()}),this._oscillators=null,this._partials=null,this},t.FatOscillator}),t(function(t){t.OmniOscillator=function(){var e=this.optionsObject(arguments,[\"frequency\",\"type\"],t.OmniOscillator.defaults);t.Source.call(this,e),this.frequency=new t.Signal(e.frequency,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this._sourceType=void 0,this._oscillator=null,this.type=e.type,this._readOnly([\"frequency\",\"detune\"]),this.set(e)},t.extend(t.OmniOscillator,t.Oscillator),t.OmniOscillator.defaults={frequency:440,detune:0,type:\"sine\",phase:0};var e={Pulse:\"PulseOscillator\",PWM:\"PWMOscillator\",Osc:\"Oscillator\",FM:\"FMOscillator\",AM:\"AMOscillator\",Fat:\"FatOscillator\"};return t.OmniOscillator.prototype._start=function(t){this._oscillator.start(t)},t.OmniOscillator.prototype._stop=function(t){this._oscillator.stop(t)},Object.defineProperty(t.OmniOscillator.prototype,\"type\",{get:function(){var t=\"\";return this._sourceType===e.FM?t=\"fm\":this._sourceType===e.AM?t=\"am\":this._sourceType===e.Fat&&(t=\"fat\"),t+this._oscillator.type},set:function(t){\"fm\"===t.substr(0,2)?(this._createNewOscillator(e.FM),this._oscillator.type=t.substr(2)):\"am\"===t.substr(0,2)?(this._createNewOscillator(e.AM),this._oscillator.type=t.substr(2)):\"fat\"===t.substr(0,3)?(this._createNewOscillator(e.Fat),this._oscillator.type=t.substr(3)):\"pwm\"===t?this._createNewOscillator(e.PWM):\"pulse\"===t?this._createNewOscillator(e.Pulse):(this._createNewOscillator(e.Osc),this._oscillator.type=t)}}),Object.defineProperty(t.OmniOscillator.prototype,\"partials\",{get:function(){return this._oscillator.partials},set:function(t){this._oscillator.partials=t}}),t.OmniOscillator.prototype.set=function(e,i){return\"type\"===e?this.type=i:this.isObject(e)&&e.hasOwnProperty(\"type\")&&(this.type=e.type),t.prototype.set.apply(this,arguments),this},t.OmniOscillator.prototype._createNewOscillator=function(e){if(e!==this._sourceType){this._sourceType=e;var i=t[e],s=this.now()+this.blockTime;if(null!==this._oscillator){var n=this._oscillator;n.stop(s),setTimeout(function(){n.dispose(),n=null},1e3*this.blockTime)}this._oscillator=new i,this.frequency.connect(this._oscillator.frequency),this.detune.connect(this._oscillator.detune),this._oscillator.connect(this.output),this.state===t.State.Started&&this._oscillator.start(s)}},Object.defineProperty(t.OmniOscillator.prototype,\"phase\",{get:function(){return this._oscillator.phase},set:function(t){this._oscillator.phase=t}}),Object.defineProperty(t.OmniOscillator.prototype,\"width\",{get:function(){if(this._sourceType===e.Pulse)return this._oscillator.width}}),Object.defineProperty(t.OmniOscillator.prototype,\"count\",{get:function(){if(this._sourceType===e.Fat)return this._oscillator.count},set:function(t){this._sourceType===e.Fat&&(this._oscillator.count=t)}}),Object.defineProperty(t.OmniOscillator.prototype,\"spread\",{get:function(){if(this._sourceType===e.Fat)return this._oscillator.spread},set:function(t){this._sourceType===e.Fat&&(this._oscillator.spread=t)}}),Object.defineProperty(t.OmniOscillator.prototype,\"modulationType\",{get:function(){if(this._sourceType===e.FM||this._sourceType===e.AM)return this._oscillator.modulationType},set:function(t){this._sourceType!==e.FM&&this._sourceType!==e.AM||(this._oscillator.modulationType=t)}}),Object.defineProperty(t.OmniOscillator.prototype,\"modulationIndex\",{get:function(){if(this._sourceType===e.FM)return this._oscillator.modulationIndex}}),Object.defineProperty(t.OmniOscillator.prototype,\"harmonicity\",{get:function(){if(this._sourceType===e.FM||this._sourceType===e.AM)return this._oscillator.harmonicity}}),Object.defineProperty(t.OmniOscillator.prototype,\"modulationFrequency\",{get:function(){if(this._sourceType===e.PWM)return this._oscillator.modulationFrequency}}),t.OmniOscillator.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this._writable([\"frequency\",\"detune\"]),this.detune.dispose(),this.detune=null,this.frequency.dispose(),this.frequency=null,this._oscillator.dispose(),this._oscillator=null,this._sourceType=null,this},t.OmniOscillator}),t(function(t){return t.Instrument=function(e){e=this.defaultArg(e,t.Instrument.defaults),this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly(\"volume\")},t.extend(t.Instrument),t.Instrument.defaults={volume:0},t.Instrument.prototype.triggerAttack=t.noOp,t.Instrument.prototype.triggerRelease=t.noOp,t.Instrument.prototype.triggerAttackRelease=function(t,e,i,s){return i=this.isUndef(i)?this.now()+this.blockTime:this.toSeconds(i),e=this.toSeconds(e),this.triggerAttack(t,i,s),this.triggerRelease(i+e),this},t.Instrument.prototype.dispose=function(){return t.prototype.dispose.call(this),this._volume.dispose(),this._volume=null,this._writable([\"volume\"]),this.volume=null,this},t.Instrument}),t(function(t){return t.Monophonic=function(e){e=this.defaultArg(e,t.Monophonic.defaults),t.Instrument.call(this,e),this.portamento=e.portamento},t.extend(t.Monophonic,t.Instrument),t.Monophonic.defaults={portamento:0},t.Monophonic.prototype.triggerAttack=function(t,e,i){return e=this.isUndef(e)?this.now()+this.blockTime:this.toSeconds(e),this._triggerEnvelopeAttack(e,i),this.setNote(t,e),this},t.Monophonic.prototype.triggerRelease=function(t){return t=this.isUndef(t)?this.now()+this.blockTime:this.toSeconds(t),this._triggerEnvelopeRelease(t),this},t.Monophonic.prototype._triggerEnvelopeAttack=function(){},t.Monophonic.prototype._triggerEnvelopeRelease=function(){},t.Monophonic.prototype.setNote=function(t,e){if(e=this.toSeconds(e),this.portamento>0){var i=this.frequency.value;this.frequency.setValueAtTime(i,e);var s=this.toSeconds(this.portamento);this.frequency.exponentialRampToValueAtTime(t,e+s)}else this.frequency.setValueAtTime(t,e);return this},t.Monophonic}),t(function(t){return t.Synth=function(e){e=this.defaultArg(e,t.Synth.defaults),t.Monophonic.call(this,e),this.oscillator=new t.OmniOscillator(e.oscillator),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.envelope=new t.AmplitudeEnvelope(e.envelope),this.oscillator.chain(this.envelope,this.output),this.oscillator.start(),this._readOnly([\"oscillator\",\"frequency\",\"detune\",\"envelope\"])},t.extend(t.Synth,t.Monophonic),t.Synth.defaults={oscillator:{type:\"triangle\"},envelope:{attack:.005,decay:.1,sustain:.3,release:1}},t.Synth.prototype._triggerEnvelopeAttack=function(t,e){return this.envelope.triggerAttack(t,e),this},t.Synth.prototype._triggerEnvelopeRelease=function(t){return this.envelope.triggerRelease(t),this},t.Synth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable([\"oscillator\",\"frequency\",\"detune\",\"envelope\"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this.frequency=null,this.detune=null,this},t.Synth}),t(function(t){return t.AMSynth=function(e){e=this.defaultArg(e,t.AMSynth.defaults),t.Monophonic.call(this,e),this._carrier=new t.Synth,this._carrier.volume.value=-10,this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope.set(e.envelope),this._modulator=new t.Synth,this._modulator.volume.value=-10,this.modulation=this._modulator.oscillator.set(e.modulation),this.modulationEnvelope=this._modulator.envelope.set(e.modulationEnvelope),this.frequency=new t.Signal(440,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this._modulationScale=new t.AudioToGain,this._modulationNode=new t.Gain,this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.chain(this._modulationScale,this._modulationNode.gain),this._carrier.chain(this._modulationNode,this.output),this._readOnly([\"frequency\",\"harmonicity\",\"oscillator\",\"envelope\",\"modulation\",\"modulationEnvelope\",\"detune\"])},t.extend(t.AMSynth,t.Monophonic),t.AMSynth.defaults={harmonicity:3,detune:0,oscillator:{type:\"sine\"},envelope:{attack:.01,decay:.01,sustain:1,release:.5},modulation:{type:\"square\"},modulationEnvelope:{attack:.5,decay:0,sustain:1,release:.5}},t.AMSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.envelope.triggerAttack(t,e),this.modulationEnvelope.triggerAttack(t,e),this},t.AMSynth.prototype._triggerEnvelopeRelease=function(t){return this.envelope.triggerRelease(t),this.modulationEnvelope.triggerRelease(t),this},t.AMSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable([\"frequency\",\"harmonicity\",\"oscillator\",\"envelope\",\"modulation\",\"modulationEnvelope\",\"detune\"]),this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this.harmonicity.dispose(),this.harmonicity=null,this._modulationScale.dispose(),this._modulationScale=null,this._modulationNode.dispose(),this._modulationNode=null,this.oscillator=null,this.envelope=null,this.modulationEnvelope=null,this.modulation=null,this},t.AMSynth}),t(function(t){return t.MonoSynth=function(e){e=this.defaultArg(e,t.MonoSynth.defaults),t.Monophonic.call(this,e),this.oscillator=new t.OmniOscillator(e.oscillator),this.frequency=this.oscillator.frequency,this.detune=this.oscillator.detune,this.filter=new t.Filter(e.filter),this.filterEnvelope=new t.FrequencyEnvelope(e.filterEnvelope),this.envelope=new t.AmplitudeEnvelope(e.envelope),this.oscillator.chain(this.filter,this.envelope,this.output),this.oscillator.start(),this.filterEnvelope.connect(this.filter.frequency),this._readOnly([\"oscillator\",\"frequency\",\"detune\",\"filter\",\"filterEnvelope\",\"envelope\"])},t.extend(t.MonoSynth,t.Monophonic),t.MonoSynth.defaults={frequency:\"C4\",detune:0,oscillator:{type:\"square\"},filter:{Q:6,type:\"lowpass\",rolloff:-24},envelope:{attack:.005,decay:.1,sustain:.9,release:1},filterEnvelope:{attack:.06,decay:.2,sustain:.5,release:2,baseFrequency:200,octaves:7,exponent:2}},t.MonoSynth.prototype._triggerEnvelopeAttack=function(t,e){return this.envelope.triggerAttack(t,e),this.filterEnvelope.triggerAttack(t),this},t.MonoSynth.prototype._triggerEnvelopeRelease=function(t){return this.envelope.triggerRelease(t),this.filterEnvelope.triggerRelease(t),this},t.MonoSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable([\"oscillator\",\"frequency\",\"detune\",\"filter\",\"filterEnvelope\",\"envelope\"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this.filterEnvelope.dispose(),this.filterEnvelope=null,this.filter.dispose(),this.filter=null,this.frequency=null,this.detune=null,this},t.MonoSynth}),t(function(t){return t.DuoSynth=function(e){e=this.defaultArg(e,t.DuoSynth.defaults),t.Monophonic.call(this,e),this.voice0=new t.MonoSynth(e.voice0),this.voice0.volume.value=-10,this.voice1=new t.MonoSynth(e.voice1),this.voice1.volume.value=-10,this._vibrato=new t.LFO(e.vibratoRate,-50,50),this._vibrato.start(),this.vibratoRate=this._vibrato.frequency,this._vibratoGain=new t.Gain(e.vibratoAmount,t.Type.Positive),this.vibratoAmount=this._vibratoGain.gain,this.frequency=new t.Signal(440,t.Type.Frequency),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this.frequency.connect(this.voice0.frequency),this.frequency.chain(this.harmonicity,this.voice1.frequency),this._vibrato.connect(this._vibratoGain),this._vibratoGain.fan(this.voice0.detune,this.voice1.detune),this.voice0.connect(this.output),this.voice1.connect(this.output),this._readOnly([\"voice0\",\"voice1\",\"frequency\",\"vibratoAmount\",\"vibratoRate\"])},t.extend(t.DuoSynth,t.Monophonic),t.DuoSynth.defaults={vibratoAmount:.5,vibratoRate:5,harmonicity:1.5,voice0:{volume:-10,portamento:0,oscillator:{type:\"sine\"},filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}},voice1:{volume:-10,portamento:0,oscillator:{type:\"sine\"},filterEnvelope:{attack:.01,decay:0,sustain:1,release:.5},envelope:{attack:.01,decay:0,sustain:1,release:.5}}},t.DuoSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.voice0.envelope.triggerAttack(t,e),this.voice1.envelope.triggerAttack(t,e),this.voice0.filterEnvelope.triggerAttack(t),this.voice1.filterEnvelope.triggerAttack(t),this},t.DuoSynth.prototype._triggerEnvelopeRelease=function(t){return this.voice0.triggerRelease(t),this.voice1.triggerRelease(t),this},t.DuoSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable([\"voice0\",\"voice1\",\"frequency\",\"vibratoAmount\",\"vibratoRate\"]),this.voice0.dispose(),this.voice0=null,this.voice1.dispose(),this.voice1=null,this.frequency.dispose(),this.frequency=null,this._vibratoGain.dispose(),this._vibratoGain=null,this._vibrato=null,this.harmonicity.dispose(),this.harmonicity=null,this.vibratoAmount.dispose(),this.vibratoAmount=null,this.vibratoRate=null,this},t.DuoSynth}),t(function(t){return t.FMSynth=function(e){e=this.defaultArg(e,t.FMSynth.defaults),t.Monophonic.call(this,e),this._carrier=new t.Synth(e.carrier),this._carrier.volume.value=-10,this.oscillator=this._carrier.oscillator,this.envelope=this._carrier.envelope.set(e.envelope),this._modulator=new t.Synth(e.modulator),this._modulator.volume.value=-10,this.modulation=this._modulator.oscillator.set(e.modulation),this.modulationEnvelope=this._modulator.envelope.set(e.modulationEnvelope),this.frequency=new t.Signal(440,t.Type.Frequency),this.detune=new t.Signal(e.detune,t.Type.Cents),this.harmonicity=new t.Multiply(e.harmonicity),this.harmonicity.units=t.Type.Positive,this.modulationIndex=new t.Multiply(e.modulationIndex),this.modulationIndex.units=t.Type.Positive,this._modulationNode=new t.Gain(0),this.frequency.connect(this._carrier.frequency),this.frequency.chain(this.harmonicity,this._modulator.frequency),this.frequency.chain(this.modulationIndex,this._modulationNode),this.detune.fan(this._carrier.detune,this._modulator.detune),this._modulator.connect(this._modulationNode.gain),this._modulationNode.connect(this._carrier.frequency),this._carrier.connect(this.output),this._readOnly([\"frequency\",\"harmonicity\",\"modulationIndex\",\"oscillator\",\"envelope\",\"modulation\",\"modulationEnvelope\",\"detune\"])},t.extend(t.FMSynth,t.Monophonic),t.FMSynth.defaults={harmonicity:3,modulationIndex:10,detune:0,oscillator:{type:\"sine\"},envelope:{attack:.01,decay:.01,sustain:1,release:.5},modulation:{type:\"square\"},modulationEnvelope:{attack:.5,decay:0,sustain:1,release:.5}},t.FMSynth.prototype._triggerEnvelopeAttack=function(t,e){return t=this.toSeconds(t),this.envelope.triggerAttack(t,e),this.modulationEnvelope.triggerAttack(t),this},t.FMSynth.prototype._triggerEnvelopeRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this.modulationEnvelope.triggerRelease(t),this},t.FMSynth.prototype.dispose=function(){return t.Monophonic.prototype.dispose.call(this),this._writable([\"frequency\",\"harmonicity\",\"modulationIndex\",\"oscillator\",\"envelope\",\"modulation\",\"modulationEnvelope\",\"detune\"]),this._carrier.dispose(),this._carrier=null,this._modulator.dispose(),this._modulator=null,this.frequency.dispose(),this.frequency=null,this.detune.dispose(),this.detune=null,this.modulationIndex.dispose(),this.modulationIndex=null,this.harmonicity.dispose(),this.harmonicity=null,this._modulationNode.dispose(),this._modulationNode=null,this.oscillator=null,this.envelope=null,this.modulationEnvelope=null,this.modulation=null,this},t.FMSynth}),t(function(t){return t.MembraneSynth=function(e){e=this.defaultArg(e,t.MembraneSynth.defaults),t.Instrument.call(this,e),this.oscillator=new t.OmniOscillator(e.oscillator).start(),this.envelope=new t.AmplitudeEnvelope(e.envelope),this.octaves=e.octaves,this.pitchDecay=e.pitchDecay,this.oscillator.chain(this.envelope,this.output),this._readOnly([\"oscillator\",\"envelope\"])},t.extend(t.MembraneSynth,t.Instrument),t.MembraneSynth.defaults={pitchDecay:.05,octaves:10,oscillator:{type:\"sine\"},envelope:{attack:.001,decay:.4,sustain:.01,release:1.4,attackCurve:\"exponential\"}},t.MembraneSynth.prototype.triggerAttack=function(t,e,i){e=this.toSeconds(e),t=this.toFrequency(t);var s=t*this.octaves;return this.oscillator.frequency.setValueAtTime(s,e),this.oscillator.frequency.exponentialRampToValueAtTime(t,e+this.toSeconds(this.pitchDecay)),this.envelope.triggerAttack(e,i),this},t.MembraneSynth.prototype.triggerRelease=function(t){return this.envelope.triggerRelease(t),this},t.MembraneSynth.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._writable([\"oscillator\",\"envelope\"]),this.oscillator.dispose(),this.oscillator=null,this.envelope.dispose(),this.envelope=null,this},t.MembraneSynth}),t(function(t){var e=[1,1.483,1.932,2.546,2.63,3.897];return t.MetalSynth=function(i){i=this.defaultArg(i,t.MetalSynth.defaults),t.Instrument.call(this,i),this.frequency=new t.Signal(i.frequency,t.Type.Frequency),this._oscillators=[],this._freqMultipliers=[],this._amplitue=new t.Gain(0).connect(this.output),this._highpass=new t.Filter({type:\"highpass\",Q:-3.0102999566398125}).connect(this._amplitue),this._octaves=i.octaves,this._filterFreqScaler=new t.Scale(i.resonance,7e3),this.envelope=new t.Envelope({attack:i.envelope.attack,attackCurve:\"linear\",decay:i.envelope.decay,sustain:0,release:i.envelope.release}).chain(this._filterFreqScaler,this._highpass.frequency),this.envelope.connect(this._amplitue.gain);for(var s=0;s<e.length;s++){var n=new t.FMOscillator({type:\"square\",modulationType:\"square\",harmonicity:i.harmonicity,modulationIndex:i.modulationIndex});n.connect(this._highpass).start(0),this._oscillators[s]=n;var o=new t.Multiply(e[s]);this._freqMultipliers[s]=o,this.frequency.chain(o,n.frequency)}this.octaves=i.octaves},t.extend(t.MetalSynth,t.Instrument),t.MetalSynth.defaults={frequency:200,envelope:{attack:.001,decay:1.4,release:.2},harmonicity:5.1,modulationIndex:32,resonance:4e3,octaves:1.5},t.MetalSynth.prototype.triggerAttack=function(t,e){return t=this.toSeconds(t),e=this.defaultArg(e,1),this.envelope.triggerAttack(t,e),this},t.MetalSynth.prototype.triggerRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this},t.MetalSynth.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),t=this.toSeconds(t),this.triggerAttack(e,i),this.triggerRelease(e+t),this},Object.defineProperty(t.MetalSynth.prototype,\"modulationIndex\",{get:function(){return this._oscillators[0].modulationIndex.value},set:function(t){for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].modulationIndex.value=t}}),Object.defineProperty(t.MetalSynth.prototype,\"harmonicity\",{get:function(){return this._oscillators[0].harmonicity.value},set:function(t){for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].harmonicity.value=t}}),Object.defineProperty(t.MetalSynth.prototype,\"resonance\",{get:function(){return this._filterFreqScaler.min},set:function(t){this._filterFreqScaler.min=t,this.octaves=this._octaves}}),Object.defineProperty(t.MetalSynth.prototype,\"octaves\",{get:function(){return this._octaves},set:function(t){this._octaves=t,this._filterFreqScaler.max=this._filterFreqScaler.min*Math.pow(2,t)}}),t.MetalSynth.prototype.dispose=function(){t.Instrument.prototype.dispose.call(this);for(var e=0;e<this._oscillators.length;e++)this._oscillators[e].dispose(),this._freqMultipliers[e].dispose();this._oscillators=null,this._freqMultipliers=null,this.frequency.dispose(),this.frequency=null,this._filterFreqScaler.dispose(),this._filterFreqScaler=null,this._amplitue.dispose(),this._amplitue=null,this.envelope.dispose(),this.envelope=null,this._highpass.dispose(),this._highpass=null},t.MetalSynth}),t(function(t){return window.AudioBufferSourceNode&&!AudioBufferSourceNode.prototype.start&&(AudioBufferSourceNode.prototype.start=AudioBufferSourceNode.prototype.noteGrainOn,AudioBufferSourceNode.prototype.stop=AudioBufferSourceNode.prototype.noteOff),t.BufferSource=function(){var e=this.optionsObject(arguments,[\"buffer\",\"onended\"],t.BufferSource.defaults);this.onended=e.onended,this._startTime=-1,this._stopTime=-1,this._gainNode=this.output=new t.Gain,this._source=this.context.createBufferSource(),this._source.connect(this._gainNode),this.playbackRate=new t.Param(this._source.playbackRate,t.Type.Positive),this.fadeIn=e.fadeIn,this.fadeOut=e.fadeOut,this._gain=1,this._onendedTimeout=-1,this.isUndef(e.buffer)||(this.buffer=e.buffer),this.loop=e.loop},t.extend(t.BufferSource),t.BufferSource.defaults={onended:t.noOp,fadeIn:0,fadeOut:0},Object.defineProperty(t.BufferSource.prototype,\"state\",{get:function(){var e=this.now();return-1!==this._startTime&&e>=this._startTime&&e<this._stopTime?t.State.Started:t.State.Stopped}}),t.BufferSource.prototype.start=function(t,e,i,s,n){if(-1!==this._startTime)throw new Error(\"Tone.BufferSource: can only be started once.\");return this.buffer&&(t=this.toSeconds(t),e=this.loop?this.defaultArg(e,this.loopStart):this.defaultArg(e,0),e=this.toSeconds(e),t=this.toSeconds(t),this._source.start(t,e),s=this.defaultArg(s,1),this._gain=s,n=this.isUndef(n)?this.toSeconds(this.fadeIn):this.toSeconds(n),n>0?(this._gainNode.gain.setValueAtTime(0,t),this._gainNode.gain.linearRampToValueAtTime(this._gain,t+n)):this._gainNode.gain.setValueAtTime(s,t),this._startTime=t+n,this.isUndef(i)||(i=this.defaultArg(i,this.buffer.duration-e),i=this.toSeconds(i),this.stop(t+i+n,n))),this},t.BufferSource.prototype.stop=function(t,e){return this.buffer&&(t=this.toSeconds(t),e=this.isUndef(e)?this.toSeconds(this.fadeOut):this.toSeconds(e),this._stopTime=t+e,this._gainNode.gain.cancelScheduledValues(this._startTime+this.sampleTime),e>0?(this._gainNode.gain.setValueAtTime(this._gain,t),this._gainNode.gain.linearRampToValueAtTime(0,t+e),t+=e):this._gainNode.gain.setValueAtTime(0,t),this.isNumber(this._source.playbackState)&&2!==this._source.playbackState||this._source.stop(t),clearTimeout(this._onendedTimeout),this._onendedTimeout=setTimeout(this._onended.bind(this),1e3*(this._stopTime-this.now()))),this},t.BufferSource.prototype._onended=function(){this.onended(this),this.dispose()},Object.defineProperty(t.BufferSource.prototype,\"loopStart\",{get:function(){return this._source.loopStart},set:function(t){this._source.loopStart=this.toSeconds(t)}}),Object.defineProperty(t.BufferSource.prototype,\"loopEnd\",{get:function(){return this._source.loopEnd},set:function(t){this._source.loopEnd=this.toSeconds(t)}}),Object.defineProperty(t.BufferSource.prototype,\"buffer\",{get:function(){return this._source?this._source.buffer:null},set:function(e){e instanceof t.Buffer?this._source.buffer=e.get():this._source.buffer=e}}),Object.defineProperty(t.BufferSource.prototype,\"loop\",{get:function(){return this._source.loop},set:function(t){this._source.loop=t}}),t.BufferSource.prototype.dispose=function(){return this.onended=null,this._source&&(this._source.disconnect(),this._source=null),this._gainNode&&(this._gainNode.dispose(),this._gainNode=null),this._startTime=-1,this.playbackRate=null,this.output=null,clearTimeout(this._onendedTimeout),this},t.BufferSource}),t(function(t){function e(){for(var e in i)s[e]=(new t.Buffer).fromArray(i[e])}t.Noise=function(){var e=this.optionsObject(arguments,[\"type\"],t.Noise.defaults);t.Source.call(this,e),this._source=null,this._type=e.type,this._playbackRate=e.playbackRate},t.extend(t.Noise,t.Source),t.Noise.defaults={type:\"white\",playbackRate:1},Object.defineProperty(t.Noise.prototype,\"type\",{get:function(){return this._type},set:function(e){if(this._type!==e){if(!(e in s))throw new TypeError(\"Tone.Noise: invalid type: \"+e);if(this._type=e,this.state===t.State.Started){var i=this.now()+this.blockTime;this._stop(i),this._start(i)}}}}),Object.defineProperty(t.Noise.prototype,\"playbackRate\",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}}),t.Noise.prototype._start=function(e){var i=s[this._type];this._source=new t.BufferSource(i).connect(this.output),this._source.loop=!0,this._source.playbackRate.value=this._playbackRate,this._source.start(this.toSeconds(e),Math.random()*(i.duration-.001))},t.Noise.prototype._stop=function(t){this._source&&(this._source.stop(this.toSeconds(t)),this._source=null)},t.Noise.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),null!==this._source&&(this._source.disconnect(),this._source=null),this._buffer=null,this};var i={pink:function(){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;var s,n,o,r,a,h,l;s=n=o=r=a=h=l=0;for(var c=0;c<220500;c++){var u=2*Math.random()-1;s=.99886*s+.0555179*u,n=.99332*n+.0750759*u,o=.969*o+.153852*u,r=.8665*r+.3104856*u,a=.55*a+.5329522*u,h=-.7616*h-.016898*u,i[c]=s+n+o+r+a+h+l+.5362*u,i[c]*=.11,l=.115926*u}}return t}(),brown:function(){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;for(var s=0,n=0;n<220500;n++){var o=2*Math.random()-1;i[n]=(s+.02*o)/1.02,s=i[n],i[n]*=3.5}}return t}(),white:function(){for(var t=[],e=0;e<2;e++){var i=new Float32Array(220500);t[e]=i;for(var s=0;s<220500;s++)i[s]=2*Math.random()-1}return t}()},s={};return e(),t.Context.on(\"init\",e),t.Noise}),t(function(t){return t.NoiseSynth=function(e){e=this.defaultArg(e,t.NoiseSynth.defaults),t.Instrument.call(this,e),this.noise=new t.Noise,this.envelope=new t.AmplitudeEnvelope(e.envelope),this.noise.chain(this.envelope,this.output),this.noise.start(),this._readOnly([\"noise\",\"envelope\"])},t.extend(t.NoiseSynth,t.Instrument),t.NoiseSynth.defaults={noise:{type:\"white\"},envelope:{attack:.005,decay:.1,sustain:0}},t.NoiseSynth.prototype.triggerAttack=function(t,e){return this.envelope.triggerAttack(t,e),this},t.NoiseSynth.prototype.triggerRelease=function(t){return this.envelope.triggerRelease(t),this},t.NoiseSynth.prototype.triggerAttackRelease=function(t,e,i){return e=this.toSeconds(e),t=this.toSeconds(t),this.triggerAttack(e,i),this.triggerRelease(e+t),this},t.NoiseSynth.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._writable([\"noise\",\"envelope\"]),this.noise.dispose(),this.noise=null,this.envelope.dispose(),this.envelope=null,this},t.NoiseSynth}),t(function(t){return t.PluckSynth=function(e){e=this.defaultArg(e,t.PluckSynth.defaults),t.Instrument.call(this,e),this._noise=new t.Noise(\"pink\"),this.attackNoise=e.attackNoise,this._lfcf=new t.LowpassCombFilter({resonance:e.resonance,dampening:e.dampening}),this.resonance=this._lfcf.resonance,this.dampening=this._lfcf.dampening,this._noise.connect(this._lfcf),this._lfcf.connect(this.output),this._readOnly([\"resonance\",\"dampening\"])},t.extend(t.PluckSynth,t.Instrument),t.PluckSynth.defaults={attackNoise:1,dampening:4e3,resonance:.9},t.PluckSynth.prototype.triggerAttack=function(t,e){t=this.toFrequency(t),e=this.toSeconds(e);var i=1/t;return this._lfcf.delayTime.setValueAtTime(i,e),this._noise.start(e),this._noise.stop(e+i*this.attackNoise),this},t.PluckSynth.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._noise.dispose(),this._lfcf.dispose(),this._noise=null,this._lfcf=null,this._writable([\"resonance\",\"dampening\"]),this.dampening=null,this.resonance=null,this},t.PluckSynth}),t(function(t){return t.PolySynth=function(){t.Instrument.call(this);var e=this.optionsObject(arguments,[\"polyphony\",\"voice\"],t.PolySynth.defaults);e=this.defaultArg(e,t.Instrument.defaults),e.polyphony=Math.min(t.PolySynth.MAX_POLYPHONY,e.polyphony),this.voices=new Array(e.polyphony),this._triggers=new Array(e.polyphony),this.detune=new t.Signal(e.detune,t.Type.Cents),this._readOnly(\"detune\");for(var i=0;i<e.polyphony;i++){var s=new e.voice(arguments[2],arguments[3]);this.voices[i]=s,s.connect(this.output),s.hasOwnProperty(\"detune\")&&this.detune.connect(s.detune),this._triggers[i]={release:-1,note:null,voice:s}}this.volume.value=e.volume},t.extend(t.PolySynth,t.Instrument),t.PolySynth.defaults={polyphony:4,volume:0,detune:0,voice:t.Synth},t.PolySynth.prototype.triggerAttack=function(t,e,i){Array.isArray(t)||(t=[t]),e=this.toSeconds(e);for(var s=0;s<t.length;s++){for(var n=t[s],o=this._triggers[0],r=1;r<this._triggers.length;r++)this._triggers[r].release<o.release&&(o=this._triggers[r],r);o.release=1/0,o.note=JSON.stringify(n),o.voice.triggerAttack(n,e,i)}return this},t.PolySynth.prototype.triggerAttackRelease=function(t,e,i,s){if(i=this.toSeconds(i),this.triggerAttack(t,i,s),this.isArray(e)&&this.isArray(t))for(var n=0;n<t.length;n++){var o=e[Math.min(n,e.length-1)];this.triggerRelease(t[n],i+this.toSeconds(o))}else this.triggerRelease(t,i+this.toSeconds(e));return this},t.PolySynth.prototype.triggerRelease=function(t,e){Array.isArray(t)||(t=[t]),e=this.toSeconds(e);for(var i=0;i<t.length;i++)for(var s=JSON.stringify(t[i]),n=0;n<this._triggers.length;n++){var o=this._triggers[n];o.note===s&&o.release>e&&(o.voice.triggerRelease(e),o.release=e)}return this},t.PolySynth.prototype.set=function(t,e,i){for(var s=0;s<this.voices.length;s++)this.voices[s].set(t,e,i);return this},t.PolySynth.prototype.get=function(t){return this.voices[0].get(t)},t.PolySynth.prototype.releaseAll=function(t){t=this.toSeconds(t);for(var e=0;e<this._triggers.length;e++){var i=this._triggers[e];i.release>t&&(i.release=t,i.voice.triggerRelease(t))}return this},t.PolySynth.prototype.dispose=function(){t.Instrument.prototype.dispose.call(this);for(var e=0;e<this.voices.length;e++)this.voices[e].dispose(),this.voices[e]=null;return this._writable(\"detune\"),this.detune.dispose(),this.detune=null,this.voices=null,this._triggers=null,this},t.PolySynth.MAX_POLYPHONY=20,t.PolySynth}),t(function(t){return t.Player=function(e){var i;e instanceof t.Buffer?(e=e.get(),i=t.Player.defaults):i=this.optionsObject(arguments,[\"url\",\"onload\"],t.Player.defaults),t.Source.call(this,i),this._source=null,this.autostart=i.autostart,this._buffer=new t.Buffer({url:i.url,onload:this._onload.bind(this,i.onload),reverse:i.reverse}),e instanceof AudioBuffer&&this._buffer.set(e),this._loop=i.loop,this._loopStart=i.loopStart,this._loopEnd=i.loopEnd,this._playbackRate=i.playbackRate,this.retrigger=i.retrigger},t.extend(t.Player,t.Source),t.Player.defaults={onload:t.noOp,playbackRate:1,loop:!1,autostart:!1,loopStart:0,loopEnd:0,retrigger:!1,reverse:!1},t.Player.prototype.load=function(t,e){return this._buffer.load(t,this._onload.bind(this,e))},t.Player.prototype._onload=function(e){e=this.defaultArg(e,t.noOp),e(this),this.autostart&&this.start()},t.Player.prototype._start=function(e,i,s){if(!this._buffer.loaded)throw Error(\"Tone.Player: tried to start Player before the buffer was loaded\");if(i=this._loop?this.defaultArg(i,this._loopStart):this.defaultArg(i,0),i=this.toSeconds(i),s=this.defaultArg(s,Math.max(this._buffer.duration-i,0)),s=this.toSeconds(s),e=this.toSeconds(e),this._source=this.context.createBufferSource(),this._source.buffer=this._buffer.get(),this._loop?(this._source.loop=this._loop,this._source.loopStart=this.toSeconds(this._loopStart),this._source.loopEnd=this.toSeconds(this._loopEnd)):this._synced||this._state.setStateAtTime(t.State.Stopped,e+s),this._source.playbackRate.value=this._playbackRate,this._source.connect(this.output),this._loop){var n=this._source.loopEnd||this._buffer.duration,o=this._source.loopStart,r=n-o;if(i>n)for(;i>n;)i-=r;this._source.start(e,i)}else this._source.start(e,i,s);return this},t.Player.prototype._stop=function(t){return this._source&&(this._source.stop(this.toSeconds(t)),this._source=null),this},t.Player.prototype.seek=function(e,i){return i=this.toSeconds(i),this._state.getValueAtTime(i)===t.State.Started&&(e=this.toSeconds(e),this._stop(i),this._start(i,e)),this},t.Player.prototype.setLoopPoints=function(t,e){return this.loopStart=t,this.loopEnd=e,this},Object.defineProperty(t.Player.prototype,\"loopStart\",{get:function(){return this._loopStart},set:function(t){this._loopStart=t,this._source&&(this._source.loopStart=this.toSeconds(t))}}),Object.defineProperty(t.Player.prototype,\"loopEnd\",{get:function(){return this._loopEnd},set:function(t){this._loopEnd=t,this._source&&(this._source.loopEnd=this.toSeconds(t))}}),Object.defineProperty(t.Player.prototype,\"buffer\",{get:function(){return this._buffer},set:function(t){this._buffer.set(t)}}),Object.defineProperty(t.Player.prototype,\"loop\",{get:function(){return this._loop},set:function(t){this._loop=t,this._source&&(this._source.loop=t)}}),Object.defineProperty(t.Player.prototype,\"playbackRate\",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this._source&&(this._source.playbackRate.value=t)}}),Object.defineProperty(t.Player.prototype,\"reverse\",{get:function(){return this._buffer.reverse},set:function(t){this._buffer.reverse=t}}),t.Player.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),null!==this._source&&(this._source.disconnect(),this._source=null),this._buffer.dispose(),this._buffer=null,this},t.Player}),t(function(t){return t.Sampler=function(){var e=this.optionsObject(arguments,[\"url\",\"onload\"],t.Sampler.defaults);t.Instrument.call(this,e),this.player=new t.Player(e.url,e.onload),this.player.retrigger=!0,this.envelope=new t.AmplitudeEnvelope(e.envelope),this.player.chain(this.envelope,this.output),this._readOnly([\"player\",\"envelope\"]),this.loop=e.loop,this.reverse=e.reverse},t.extend(t.Sampler,t.Instrument),t.Sampler.defaults={onload:t.noOp,loop:!1,reverse:!1,envelope:{attack:.001,decay:0,sustain:1,release:.1}},t.Sampler.prototype.triggerAttack=function(t,e,i){return e=this.toSeconds(e),t=this.defaultArg(t,0),this.player.playbackRate=this.intervalToFrequencyRatio(t),this.player.start(e),this.envelope.triggerAttack(e,i),this},t.Sampler.prototype.triggerRelease=function(t){return t=this.toSeconds(t),this.envelope.triggerRelease(t),this.player.stop(this.toSeconds(this.envelope.release)+t),this},Object.defineProperty(t.Sampler.prototype,\"loop\",{get:function(){return this.player.loop},set:function(t){this.player.loop=t}}),Object.defineProperty(t.Sampler.prototype,\"reverse\",{get:function(){return this.player.reverse},set:function(t){this.player.reverse=t}}),Object.defineProperty(t.Sampler.prototype,\"buffer\",{get:function(){return this.player.buffer},set:function(t){this.player.buffer=t}}),t.Sampler.prototype.dispose=function(){return t.Instrument.prototype.dispose.call(this),this._writable([\"player\",\"envelope\"]),this.player.dispose(),this.player=null,this.envelope.dispose(),this.envelope=null,this},t.Sampler}),t(function(t){return t.GainToAudio=function(){this._norm=this.input=this.output=new t.WaveShaper(function(t){return 2*Math.abs(t)-1})},t.extend(t.GainToAudio,t.SignalBase),t.GainToAudio.prototype.dispose=function(){return t.prototype.dispose.call(this),this._norm.dispose(),this._norm=null,this},t.GainToAudio}),t(function(t){return t.Normalize=function(e,i){this._inputMin=this.defaultArg(e,0),this._inputMax=this.defaultArg(i,1),this._sub=this.input=new t.Add(0),this._div=this.output=new t.Multiply(1),this._sub.connect(this._div),this._setRange()},t.extend(t.Normalize,t.SignalBase),Object.defineProperty(t.Normalize.prototype,\"min\",{get:function(){return this._inputMin},set:function(t){this._inputMin=t,this._setRange()}}),Object.defineProperty(t.Normalize.prototype,\"max\",{get:function(){return this._inputMax},set:function(t){this._inputMax=t,this._setRange()}}),t.Normalize.prototype._setRange=function(){this._sub.value=-this._inputMin,this._div.value=1/(this._inputMax-this._inputMin)},t.Normalize.prototype.dispose=function(){return t.prototype.dispose.call(this),this._sub.dispose(),this._sub=null,this._div.dispose(),this._div=null,this},t.Normalize}),t(function(t){return t.MultiPlayer=function(){var e=this.optionsObject(arguments,[\"urls\",\"onload\"],t.MultiPlayer.defaults);e.urls instanceof t.Buffers?this.buffers=e.urls:this.buffers=new t.Buffers(e.urls,e.onload),this._activeSources={},this.fadeIn=e.fadeIn,this.fadeOut=e.fadeOut,this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly(\"volume\"),this._volume.output.output.channelCount=2,this._volume.output.output.channelCountMode=\"explicit\",this.mute=e.mute},t.extend(t.MultiPlayer,t.Source),t.MultiPlayer.defaults={onload:t.noOp,fadeIn:0,fadeOut:0},t.MultiPlayer.prototype._makeSource=function(e){var i;this.isString(e)||this.isNumber(e)?i=this.buffers.get(e).get():e instanceof t.Buffer?i=e.get():e instanceof AudioBuffer&&(i=e);var s=new t.BufferSource(i).connect(this.output);return this._activeSources.hasOwnProperty(e)||(this._activeSources[e]=[]),this._activeSources[e].push(s),s},t.MultiPlayer.prototype.start=function(t,e,i,s,n,o){e=this.toSeconds(e);var r=this._makeSource(t);return r.start(e,i,s,this.defaultArg(o,1),this.fadeIn),s&&r.stop(e+this.toSeconds(s),this.fadeOut),n=this.defaultArg(n,0),r.playbackRate.value=this.intervalToFrequencyRatio(n),this},t.MultiPlayer.prototype.startLoop=function(t,e,i,s,n,o,r){e=this.toSeconds(e);var a=this._makeSource(t);return a.loop=!0,a.loopStart=this.toSeconds(this.defaultArg(s,0)),a.loopEnd=this.toSeconds(this.defaultArg(n,0)),a.start(e,i,void 0,this.defaultArg(r,1),this.fadeIn),o=this.defaultArg(o,0),a.playbackRate.value=this.intervalToFrequencyRatio(o),this},t.MultiPlayer.prototype.stop=function(t,e){if(!this._activeSources[t]||!this._activeSources[t].length)throw new Error(\"Tone.MultiPlayer: cannot stop a buffer that hasn't been started or is already stopped\");return e=this.toSeconds(e),this._activeSources[t].shift().stop(e,this.fadeOut),this},t.MultiPlayer.prototype.stopAll=function(t){t=this.toSeconds(t);for(var e in this._activeSources)for(var i=this._activeSources[e],s=0;s<i.length;s++)i[s].stop(t);return this},t.MultiPlayer.prototype.add=function(t,e,i){return this.buffers.add(t,e,i),this},Object.defineProperty(t.MultiPlayer.prototype,\"state\",{get:function(){return this._activeSources.length>0?t.State.Started:t.State.Stopped}}),Object.defineProperty(t.MultiPlayer.prototype,\"mute\",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.MultiPlayer.prototype.dispose=function(){t.prototype.dispose.call(this),this._volume.dispose(),this._volume=null,this._writable(\"volume\"),this.volume=null;for(var e in this._activeSources)this._activeSources[e].forEach(function(t){t.dispose()});return this.buffers.dispose(),this.buffers=null,this._activeSources=null,this},t.MultiPlayer}),t(function(t){return t.GrainPlayer=function(){var e=this.optionsObject(arguments,[\"url\",\"onload\"],t.GrainPlayer.defaults);t.Source.call(this),this.buffer=new t.Buffer(e.url,e.onload),this._player=(new t.MultiPlayer).connect(this.output),this._clock=new t.Clock(this._tick.bind(this),1),this._loopStart=0,this._loopEnd=0,this._playbackRate=e.playbackRate,this._grainSize=e.grainSize,this._overlap=e.overlap,this.detune=e.detune,this.drift=e.drift,this.overlap=e.overlap,this.loop=e.loop,this.playbackRate=e.playbackRate,this.grainSize=e.grainSize,this.loopStart=e.loopStart,this.loopEnd=e.loopEnd,this.reverse=e.reverse},t.extend(t.GrainPlayer,t.Source),t.GrainPlayer.defaults={onload:t.noOp,overlap:.1,grainSize:.2,drift:0,playbackRate:1,detune:0,loop:!1,loopStart:0,loopEnd:0,reverse:!1},t.GrainPlayer.prototype._start=function(t,e,i){e=this.defaultArg(e,0),e=this.toSeconds(e),t=this.toSeconds(t),this._offset=e,this._clock.start(t),this._player.volume.setValueAtTime(0,t),i&&this._stop(t+this.toSeconds(i))},t.GrainPlayer.prototype._stop=function(t){this._clock.stop(t),this._player.volume.cancelScheduledValues(t),this._player.volume.setValueAtTime(-1/0,t)},t.GrainPlayer.prototype._tick=function(t){var e=this.buffer.duration;this.loop&&this._loopEnd>0&&(e=this._loopEnd);var i=(2*Math.random()-1)*this.drift,s=this._offset-this._overlap+i,n=this.detune/100;s=Math.max(s,0),s=Math.min(s,e);var o=this._player.fadeIn;if(this.loop&&this._offset>e){var r=this._offset-e;this._player.start(this.buffer,t,s,r+this._overlap,n),s=this._offset%e,this._offset=this._loopStart,this._player.fadeIn=0,this._player.start(this.buffer,t+r,this._offset,s+this._overlap,n)}else this._offset>e?this.stop(t):(0===s&&(this._player.fadeIn=0),this._player.start(this.buffer,t,s,this.grainSize+this._overlap,n));this._player.fadeIn=o;var a=this._clock._nextTick-t;this._offset+=a*this._playbackRate},t.GrainPlayer.prototype.scrub=function(t,e){return this._offset=this.toSeconds(t),this._tick(this.toSeconds(e)),this},Object.defineProperty(t.GrainPlayer.prototype,\"playbackRate\",{get:function(){return this._playbackRate},set:function(t){this._playbackRate=t,this.grainSize=this._grainSize}}),Object.defineProperty(t.GrainPlayer.prototype,\"loopStart\",{get:function(){return this._loopStart},set:function(t){this._loopStart=this.toSeconds(t)}}),Object.defineProperty(t.GrainPlayer.prototype,\"loopEnd\",{get:function(){return this._loopEnd},set:function(t){this._loopEnd=this.toSeconds(t)}}),Object.defineProperty(t.GrainPlayer.prototype,\"reverse\",{get:function(){return this.buffer.reverse},set:function(t){this.buffer.reverse=t}}),Object.defineProperty(t.GrainPlayer.prototype,\"grainSize\",{get:function(){return this._grainSize},set:function(t){this._grainSize=this.toSeconds(t),this._clock.frequency.value=this._playbackRate/this._grainSize}}),Object.defineProperty(t.GrainPlayer.prototype,\"overlap\",{get:function(){return this._overlap},set:function(t){t=this.toSeconds(t),this._overlap=t,this._overlap<0?(this._player.fadeIn=.01,this._player.fadeOut=.01):(this._player.fadeIn=t,this._player.fadeOut=t)}}),t.GrainPlayer.prototype.dispose=function(){return t.Source.prototype.dispose.call(this),this.buffer.dispose(),this.buffer=null,this._player.dispose(),this._player=null,this._clock.dispose(),this._clock=null,this},t.GrainPlayer}),t(function(t){return t.UserMedia=function(){var e=this.optionsObject(arguments,[\"volume\"],t.UserMedia.defaults);this._mediaStream=null,this._stream=null,this._device=null,this._volume=this.output=new t.Volume(e.volume),this.volume=this._volume.volume,this._readOnly(\"volume\"),this.mute=e.mute},t.extend(t.UserMedia),t.UserMedia.defaults={volume:0,mute:!1},t.UserMedia.prototype.open=function(t){return t=this.defaultArg(t,\"default\"),this.enumerateDevices().then(function(e){var i;if(this.isNumber(t)?i=e[t]:(i=e.find(function(e){return e.label===t||e.deviceId===t}))||(i=e[0]),!i)throw new Error(\"Tone.UserMedia: no matching audio inputs.\");this._device=i;var s={audio:{deviceId:i.deviceId,echoCancellation:!1,sampleRate:this.context.sampleRate}};return navigator.mediaDevices.getUserMedia(s).then(function(t){return this._stream||(this._stream=t,this._mediaStream=this.context.createMediaStreamSource(t),this._mediaStream.connect(this.output)),this}.bind(this))}.bind(this))},t.UserMedia.prototype.close=function(){return this._stream&&(this._stream.getAudioTracks().forEach(function(t){t.stop()}),this._stream=null,this._mediaStream.disconnect(),this._mediaStream=null),this._device=null,this},t.UserMedia.prototype.enumerateDevices=function(){return navigator.mediaDevices.enumerateDevices().then(function(t){return t.filter(function(t){return\"audioinput\"===t.kind})})},Object.defineProperty(t.UserMedia.prototype,\"state\",{get:function(){return this._stream&&this._stream.active?t.State.Started:t.State.Stopped}}),Object.defineProperty(t.UserMedia.prototype,\"deviceId\",{get:function(){if(this._device)return this._device.deviceId}}),Object.defineProperty(t.UserMedia.prototype,\"groupId\",{get:function(){if(this._device)return this._device.groupId}}),Object.defineProperty(t.UserMedia.prototype,\"label\",{get:function(){if(this._device)return this._device.label}}),Object.defineProperty(t.UserMedia.prototype,\"mute\",{get:function(){return this._volume.mute},set:function(t){this._volume.mute=t}}),t.UserMedia.prototype.dispose=function(){return t.prototype.dispose.call(this),this.close(),this._writable(\"volume\"),this._volume.dispose(),this._volume=null,this.volume=null,this},Object.defineProperty(t.UserMedia,\"supported\",{get:function(){return!t.prototype.isUndef(navigator.mediaDevices)&&t.prototype.isFunction(navigator.mediaDevices.getUserMedia)}}),t.UserMedia}),e})},function(t,e,i){\"use strict\";function s(t){return t&&t.__esModule?t:{default:t}}function n(t){return t[Math.floor(Math.random()*t.length)]}function o(t,e){return t-e*Math.floor(t/e)}function r(t){if(f){var e=document.createElement(\"div\"),i=document.createElement(\"div\");i.innerHTML=\"Tap to start - please unmute your phone\",Object.assign(e.style,{position:\"absolute\",width:\"100%\",height:\"100%\",zIndex:\"10000\",top:\"0px\",left:\"0px\",backgroundColor:\"rgba(0, 0, 0, 0.8)\"}),Object.assign(i.style,{position:\"absolute\",left:\"50%\",top:\"50%\",padding:\"20px\",backgroundColor:\"#7F33ED\",color:\"white\",fontFamily:\"monospace\",borderRadius:\"3px\",transform:\"translate3D(-50%,-50%,0)\",textAlign:\"center\",lineHeight:\"1.5\"}),e.appendChild(i),document.body.appendChild(e),c.default.setContext(h.default.context),c.default.on(i),c.default.onStarted(function(i){e.remove(),t()})}else t()}Object.defineProperty(e,\"__esModule\",{value:!0}),e.requestAudioContext=e.browser=e.mod=e.choice=void 0;var a=i(4),h=s(a),l=i(17),c=s(l),u=navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPod/i),p=navigator.userAgent.match(/iPad/i),d=navigator.userAgent.match(/Android/i),f=u||p||d,y=!f;document.body.classList.add(f?\"mobile\":\"desktop\");var _={isIphone:u,isIpad:p,isMobile:f,isDesktop:y};e.choice=n,e.mod=o,e.browser=_,e.requestAudioContext=r},function(t,e){function i(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function s(t){return\"function\"==typeof t}function n(t){return\"number\"==typeof t}function o(t){return\"object\"==typeof t&&null!==t}function r(t){return void 0===t}t.exports=i,i.EventEmitter=i,i.prototype._events=void 0,i.prototype._maxListeners=void 0,i.defaultMaxListeners=10,i.prototype.setMaxListeners=function(t){if(!n(t)||t<0||isNaN(t))throw TypeError(\"n must be a positive number\");return this._maxListeners=t,this},i.prototype.emit=function(t){var e,i,n,a,h,l;if(this._events||(this._events={}),\"error\"===t&&(!this._events.error||o(this._events.error)&&!this._events.error.length)){if((e=arguments[1])instanceof Error)throw e;var c=new Error('Uncaught, unspecified \"error\" event. ('+e+\")\");throw c.context=e,c}if(i=this._events[t],r(i))return!1;if(s(i))switch(arguments.length){case 1:i.call(this);break;case 2:i.call(this,arguments[1]);break;case 3:i.call(this,arguments[1],arguments[2]);break;default:a=Array.prototype.slice.call(arguments,1),i.apply(this,a)}else if(o(i))for(a=Array.prototype.slice.call(arguments,1),l=i.slice(),n=l.length,h=0;h<n;h++)l[h].apply(this,a);return!0},i.prototype.addListener=function(t,e){var n;if(!s(e))throw TypeError(\"listener must be a function\");return this._events||(this._events={}),this._events.newListener&&this.emit(\"newListener\",t,s(e.listener)?e.listener:e),this._events[t]?o(this._events[t])?this._events[t].push(e):this._events[t]=[this._events[t],e]:this._events[t]=e,o(this._events[t])&&!this._events[t].warned&&(n=r(this._maxListeners)?i.defaultMaxListeners:this._maxListeners)&&n>0&&this._events[t].length>n&&(this._events[t].warned=!0,console.error(\"(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.\",this._events[t].length),\"function\"==typeof console.trace&&console.trace()),this},i.prototype.on=i.prototype.addListener,i.prototype.once=function(t,e){function i(){this.removeListener(t,i),n||(n=!0,e.apply(this,arguments))}if(!s(e))throw TypeError(\"listener must be a function\");var n=!1;return i.listener=e,this.on(t,i),this},i.prototype.removeListener=function(t,e){var i,n,r,a;if(!s(e))throw TypeError(\"listener must be a function\");if(!this._events||!this._events[t])return this;if(i=this._events[t],r=i.length,n=-1,i===e||s(i.listener)&&i.listener===e)delete this._events[t],this._events.removeListener&&this.emit(\"removeListener\",t,e);else if(o(i)){for(a=r;a-- >0;)if(i[a]===e||i[a].listener&&i[a].listener===e){n=a;break}if(n<0)return this;1===i.length?(i.length=0,delete this._events[t]):i.splice(n,1),this._events.removeListener&&this.emit(\"removeListener\",t,e)}return this},i.prototype.removeAllListeners=function(t){var e,i;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)\"removeListener\"!==e&&this.removeAllListeners(e);return this.removeAllListeners(\"removeListener\"),this._events={},this}if(i=this._events[t],s(i))this.removeListener(t,i);else if(i)for(;i.length;)this.removeListener(t,i[i.length-1]);return delete this._events[t],this},i.prototype.listeners=function(t){return this._events&&this._events[t]?s(this._events[t])?[this._events[t]]:this._events[t].slice():[]},i.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(s(e))return 1;if(e)return e.length}return 0},i.listenerCount=function(t,e){return t.listenerCount(e)}},function(t,e){e.findPosition=function(t){var e=document.body,i=document.defaultView,s=document.documentElement,n=document.createElement(\"div\");n.style.paddingLeft=n.style.width=\"1px\",e.appendChild(n);var o=2==n.offsetWidth;e.removeChild(n),n=t.getBoundingClientRect();var r=s.clientTop||e.clientTop||0,a=s.clientLeft||e.clientLeft||0,h=i.pageYOffset||o&&s.scrollTop||e.scrollTop,l=i.pageXOffset||o&&s.scrollLeft||e.scrollLeft;return{top:n.top+h-r,left:n.left+l-a}},e.getCursorPosition=function(t,e){var i,s;void 0!=t.pageX&&void 0!=t.pageY?(i=t.pageX,s=t.pageY):(i=t.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,s=t.clientY+document.body.scrollTop+document.documentElement.scrollTop),i-=e.left,s-=e.top;var n={x:i,y:s};return n.touches=[{x:i,y:s}],n},e.getTouchPosition=function(t,e){var i,s;i=t.targetTouches[0].pageX,s=t.targetTouches[0].pageY,i-=e.left,s-=e.top;var n={x:i,y:s};n.touches=new Array;for(var o=0;o<t.targetTouches.length;o++)n.touches.push({x:t.targetTouches[o].pageX-e.left,y:t.targetTouches[o].pageY-e.top});n.changed=new Array;for(var o=0;o<t.changedTouches.length;o++)n.changed.push({x:t.changedTouches[o].pageX-e.left,y:t.changedTouches[o].pageY-e.top});return n}},function(t,e){e.throttle=function(t,e){var i;return function(){var s=this,n=arguments;i||(i=setTimeout(function(){i=null;try{t.apply(s,n)}catch(t){console.log(t)}},e))}}},function(t,e){e.defineTransmit=function(t){if(\"function\"==typeof t)return t;switch(t){case\"js\":return function(t,e){this.makeOSC(this.emit,t,e),this.emit(\"*\",t,e)};case\"ajax\":return function(t){this.makeOSC(e.ajaxTransmit,t)};case\"node\":return function(t){this.makeOSC(e.nodeTransmit,t)};case\"ios\":return function(t){};case\"max\":return function(t){this.makeOSC(e.maxTransmit,t)};case\"wc\":return function(t,e){this.emit(\"internal\",t,e)}}},e.setGlobalTransmit=function(t){var i=e.defineTransmit(t);this.transmit=i,this.destination=t;for(var s in nx.widgets)this.widgets[s].transmit=i,this.widgets[s].destination=t},e.setWidgetTransmit=function(t){var i=e.defineTransmit(t);this.transmit=i,this.destination=t},e.ajaxTransmit=function(t,e){var i=\"value\"==t?this.oscPath:this.oscPath+\"/\"+t;xmlhttp=new XMLHttpRequest,xmlhttp.open(\"POST\",nx.ajaxPath,!0),xmlhttp.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded\"),xmlhttp.send(\"oscName=\"+i+\"&data=\"+e)},e.setAjaxPath=function(t){this.ajaxPath=t},e.nodeTransmit=function(t,e){var i={oscName:\"value\"==t?this.oscPath:this.oscPath+\"/\"+t,value:e};socket.emit(\"nx\",i)},e.maxTransmit=function(t,e){var i=\"value\"==t?this.oscPath:this.oscPath+\"/\"+t;window.max.outlet(i+\" \"+e)}},function(t,e,i){\"use strict\";function s(t,e,i,s,n,o,r){return e+i*Math.cos(2*Math.PI*(s*t+n))*r+o}function n(t,e,i){for(var n=void 0,o=void 0,a=void 0,h=void 0,l=[],c=0;c<3;c++)n=r[0][c],o=r[1][c],a=r[2][c],h=r[3][c],l[c]=Math.round(255*s(t,n,o,a,h,e,i));return\"rgb(\"+l+\")\"}Object.defineProperty(e,\"__esModule\",{value:!0});var o=[[[.5,.5,.5],[.5,.5,.5],[1,1,1],[0,.33,.67]],[[.5,.5,.5],[.5,.5,.5],[1,1,1],[0,.1,.2]],[[.5,.5,.5],[.5,.5,.5],[1,1,1],[.3,.2,.2]],[[.5,.5,.5],[.5,.5,.5],[1,1,.5],[.8,.9,.3]],[[.5,.5,.5],[.5,.5,.5],[1,.7,.4],[0,.15,.2]],[[.5,.5,.5],[.5,.5,.5],[2,1,0],[.5,.2,.25]],[[.8,.5,.4],[.2,.4,.2],[2,1,1],[0,.25,.25]]],r=o[0];e.default=n},function(t,e,i){\"use strict\";function s(t){var e={sample:(0,r.choice)(l)};e.sample.index=(e.sample.index+1)%a;var i=e.sample.players[e.sample.index];i.playbackRate=t/e.sample.root,i.start()}Object.defineProperty(e,\"__esModule\",{value:!0});var n=i(4),o=function(t){return t&&t.__esModule?t:{default:t}}(n),r=i(5),a=4,h=new o.default.Compressor(-30,3).toMaster(),l=[{root:226,fn:\"samples/380737__cabled-mess__sansula-01-a-raw.wav\"},{root:267,fn:\"samples/380736__cabled-mess__sansula-02-c-raw.wav\"},{root:340,fn:\"samples/380735__cabled-mess__sansula-03-e-raw.wav\"},{root:452,fn:\"samples/380733__cabled-mess__sansula-06-a-02-raw.wav\"}];l.forEach(function(t){t.players=[],t.index=-1;for(var e=0;e<a;e++){var i=t.fn;window.location.href.match(/asdf.us/)&&(i=\"http://asdf.us/kalimba/\"+i);var s=new o.default.Player({url:i,retrigger:!0,playbackRate:1});s.connect(h),t.players.push(s)}}),e.default={play:s}},function(t,e,i){\"use strict\";function s(t){if(t.altKey||t.ctrlKey||t.metaKey)return void t.stopPropagation();if(document.activeElement instanceof HTMLInputElement&&t.keyCode in r)return void t.stopPropagation();if(t.keyCode in o){var e=o[t.keyCode];t.shiftKey&&(e+=a.length),e-=7,h(e)}}function n(t){h=t}Object.defineProperty(e,\"__esModule\",{value:!0});var o={},r={},a=\"zxcvbnmasdfghjklqwertyuiop\",h=function(){};a.toUpperCase().split(\"\").map(function(t,e){o[t.charCodeAt(0)]=e}),\"1234567890\".split(\"\").map(function(t,e){o[t.charCodeAt(0)]=e+a.length,r[t.charCodeAt(0)]=!0}),window.addEventListener(\"keydown\",s,!0),e.default={listen:n}},function(t,e,i){\"use strict\";function s(){c.forEach(function(t,e){t.heading=document.createElement(\"div\"),t.heading.innerHTML=t.name,t.heading.classList.add(\"heading\"),t.heading.addEventListener(\"click\",function(){n(e)}),scale_list.appendChild(t.heading)}),n(0)}function n(t){u&&u.heading&&u.heading.classList.remove(\"selected\"),u=c[t],u.heading&&u.heading.classList.add(\"selected\"),p(u)}function o(){return u}function r(t){p=t}function a(){return c.map(function(t){return t.name})}Object.defineProperty(e,\"__esModule\",{value:!0});var h=i(16),l=function(t){return t&&t.__esModule?t:{default:t}}(h),c=[{intervals:\"1/1 9/8 5/4 4/3 3/2 5/3 15/8 2/1\",name:\"harmonic scale\"},{root:450,intervals:\"1/1 9/8 5/4 4/3 3/2 5/3 15/8 2/1\",name:\"harmonic scale @ 450\"},{tet:5},{tet:12},{tet:17},{intervals:\"1/1 81/80 33/32 21/20 16/15 12/11 11/10 10/9 9/8 8/7 7/6 32/27 6/5 11/9 5/4 14/11 9/7 21/16 4/3 27/20 11/8 7/5 10/7 16/11 40/27 3/2 32/21 14/9 11/7 8/5 18/11 5/3 27/16 12/7 7/4 16/9 9/5 20/11 11/6 15/8 40/21 64/33 160/81 2/1\",name:\"harry partch scale\"},{scl:\"! young-lm_piano.scl\\n!\\nLaMonte Young's Well-Tempered Piano\\n12\\n!\\n567/512\\n9/8\\n147/128\\n21/16\\n1323/1024\\n189/128\\n3/2\\n49/32\\n7/4\\n441/256\\n63/32\\n2/1\\n\"},{scl:\"! meanquar.scl\\n!\\n1/4-comma meantone scale. Pietro Aaron's temperament (1523)\\n 12\\n!\\n 76.04900\\n 193.15686\\n 310.26471\\n 5/4\\n 503.42157\\n 579.47057\\n 696.57843\\n 25/16\\n 889.73529\\n 1006.84314\\n 1082.89214\\n 2/1\\n\"},{scl:\"! mavila12.scl\\n!\\nA 12-note mavila scale (for warping meantone-based music), 5-limit TOP\\n 12\\n!\\n-30.99719\\n 163.50770\\n 358.01258\\n 327.01540\\n 521.52028\\n 490.52310\\n 685.02798\\n 654.03080\\n 848.53568\\n 1043.04057\\n 1012.04338\\n 1206.54826\\n\"},{scl:\"! carlos_alpha.scl\\n!\\nWendy Carlos' Alpha scale with perfect fifth divided in nine\\n 18\\n!\\n 78.00000\\n 156.00000\\n 234.00000\\n 312.00000\\n 390.00000\\n 468.00000\\n 546.00000\\n 624.00000\\n 702.00000\\n 780.00000\\n 858.00000\\n 936.00000\\n 1014.00000\\n 1092.00000\\n 1170.00000\\n 1248.00000\\n 1326.00000\\n 1404.00000\\n\"}].map(function(t){return new l.default(t)}),u=c[0],p=function(){};e.default={scales:c,current:o,build:s,pick:n,names:a,onChange:r}},function(t,e,s){var n=s(19),o=s(7),r=s(3),a=s(2),h=s(18),l=s(54);window.nx=new n,window.nx.onload=function(){},window.nx=h(window.nx,o),window.nx=h(window.nx,r),window.nx=h(window.nx,a),window.onload=function(){try{l.load({google:{families:[\"Open Sans\"]}})}catch(t){console.log(\"font not loaded\")}nx.addStylesheet();var t=document.getElementsByTagName(\"canvas\");for(i=0;i<t.length;i++)nx.transform(t[i]);nx.isTouchDevice&&(document.addEventListener(\"touchmove\",nx.blockMove,!0),document.addEventListener(\"touchstart\",nx.blockMove,!0)),nx.onload(),nx.startPulse()}},function(t,e,i){\"use strict\";function s(t){return t&&t.__esModule?t:{default:t}}function n(){V=z.widgets.grid,V.sequenceMode=!0,V.bpm=1,V.col=D,V.row=B,V.init(),V.resize(N*D,N*B),V.draw(),z.widgets.scale.choices=j.default.names(),z.widgets.scale.init(),z.widgets.scale.on(\"*\",function(t){return j.default.pick(t.value)}),j.default.onChange(function(t){a()}),a(),V.on(\"*\",function(t){return\"level\"in t&&a()}),z.widgets.shiftUp.on(\"*\",o(l)),z.widgets.shiftDown.on(\"*\",o(c)),z.widgets.slideUp.on(\"*\",o(u)),z.widgets.slideDown.on(\"*\",o(p)),z.widgets.slideLeft.on(\"*\",o(d)),z.widgets.slideRight.on(\"*\",o(f)),z.widgets.rotateUp.on(\"*\",o(function(){return v(-1)})),z.widgets.rotateDown.on(\"*\",o(function(){return v(1)})),z.widgets.rotateLeft.on(\"*\",o(function(){return m(-1)})),z.widgets.rotateRight.on(\"*\",o(function(){return m(1)})),z.widgets.flip.on(\"*\",o(y)),z.widgets.flop.on(\"*\",o(_)),z.colorize(\"#f4d142\"),X.start(),q.default.Transport.bpm.value=108,z.widgets.tempo.min=10,z.widgets.tempo.max=1e3,z.widgets.tempo.set({value:108}),z.widgets.tempo.on(\"*\",function(t){return q.default.Transport.bpm.value=z.widgets.tempo.val.value}),q.default.Transport.start()}function o(t){return function(e){L.browser.isMobile?t():e.press&&t()}}function r(){V.draw(),a()}function a(){for(var t=document.querySelector(\"#labels\"),e=j.default.current().scale.length,i=h(),s=\"\",n=0;n<B;n++){var o=B-n-W,r=(0,L.mod)(o,e),a=r+1;i.includes(r)?s+=\"<b>\"+a+\"</b><br>\":s+=a+\"<br>\"}t.innerHTML=s}function h(t){t=t||T();var e=j.default.current().scale.length;return t.reduce(function(t,i){var s=(0,L.mod)(B-i-W,e);return t.includes(s)||t.push(s),t},[]).sort()}function l(){var t=T(),e=h(t),i=j.default.current().scale.length;w(A(t,function(t){for(var s=B-t-W,n=(0,L.mod)(s,i),o=e.indexOf(n)+1,r=Math.floor(s/i);o>=e.length;)o-=e.length,r+=1;return B-W-(e[o]+r*i)}))}function c(){var t=T(),e=h(t),i=j.default.current().scale.length;w(A(t,function(t){for(var s=B-t-W,n=(0,L.mod)(s,i),o=e.indexOf(n)-1,r=Math.floor(s/i);o<0;)o+=e.length,r-=1;return B-W-(e[o]+r*i)}))}function u(){w(A(T(),function(t){return(t-1+B)%B}))}function p(){w(A(T(),function(t){return(t+1+B)%B}))}function d(){g(A(k(),function(t){return(t-1+D)%D}))}function f(){g(A(k(),function(t){return(t+1+D)%D}))}function y(){w(M(T()))}function _(){g(M(k()))}function m(t){g(P(k(),t))}function v(t){w(P(T(),t))}function g(t){if(t){var e=V.matrix,i=S();b(e,function(e,s,n){e in t&&(i[t[e]][s]=n)}),x(V.matrix,i),r()}}function w(t){if(t){var e=V.matrix,i=S();b(e,function(e,s,n){s in t&&(i[e][t[s]]=n)}),x(V.matrix,i),r()}}function b(t,e){for(var i=D,s=B,n=0;n<i;n++)for(var o=0;o<s;o++)e(n,o,t[n][o]);return t}function x(t,e){return b(e,function(i,s,n){return t[i][s]=e[i][s]})}function S(){for(var t=V.matrix.length,e=V.matrix[0].length,i=new Array(t),s=0;s<t;s++){i[s]=new Array(e);for(var n=0;n<e;n++)i[s][n]=0}return i}function T(){var t=new Array(B);return b(V.matrix,function(e,i,s){s&&(t[i]=1)}),t.reduce(function(t,e,i){return 1===e&&t.push(i),t},[])}function k(){return V.matrix.reduce(function(t,e,i){return e.some(function(t){return 1===t})&&t.push(i),t},[])}function P(t,e){if(t.length){for(var i={},s=O(t,e),n=0;n<s.length;n++)i[s[n]]=t[n];return i}}function O(t,e){var i=t.slice(0);return i.unshift.apply(i,i.splice(-e,i.length)),i}function A(t,e){if(t.length){for(var i={},s=0;s<t.length;s++)i[t[s]]=e(t[s]);return i}}function M(t){if(t.length){for(var e={},i=t.slice(0).reverse(),s=0;s<i.length;s++)e[i[s]]=t[s];return e}}var I=i(4),q=s(I);i(14);var E=i(12),F=s(E),U=i(10),G=(s(U),i(11)),R=s(G),C=i(13),j=s(C),L=i(5),z=window.nx,B=L.browser.isMobile?18:24,D=16,N=L.browser.isMobile?20:27,W=L.browser.isMobile?0:12,V=void 0,X=new q.default.Sequence(function(t,e){var i=V.matrix[e];V.jumpToCol(e);for(var s=0;s<B;s++)if(1===i[s]){var n=j.default.current().index(B-s-W);R.default.play(n)}},[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],\"16n\");z.onload=function(){return(0,L.requestAudioContext)(n)},F.default.listen(function(t){var e=j.default.current().index(t);R.default.play(e)})},function(t,e,i){\"use strict\";t.exports=function(){function t(t,e,i){return(t-e)/(i-e)}function e(t,e){return t-e*Math.floor(t/e)}var i=function(t){t=this.opt=Object.assign({name:\"\",root:440,octave:0,interval:2,tet:0,intervals:null},t||{}),this.generate()};i.prototype.generate=function(t){t=Object.assign(this.opt,t||{}),t.scl?this.generate_scl():t.tet?this.generate_tet():t.intervals&&this.generate_intervals()},i.prototype.generate_intervals=function(){var t=(this.opt.root,this.opt.intervals);\"string\"==typeof t&&(t=t.split(\" \")),this.name=this.opt.name||\"interval list\",this.intervals=t,this.interval=this.opt.interval=s.call(this,t.pop()),this.scale=t.map(n.bind(this)).filter(function(t){return!!t})},i.prototype.generate_tet=function(){var t=this.scale=[],e=this.opt.root,i=this.opt.tet,s=this.interval=this.opt.interval,n=Math.pow(s,1/i),o=e;t.push(o);for(var r=0;r<i-1;r++)o*=n,t.push(o);this.name=this.opt.name||i+\"-tone equal temperament\",this.intervals=null},i.prototype.generate_scl=function(){var t=this.opt.root,e=this.parse_scl(this.opt.scl);this.intervals=e.notes,this.interval=e.notes.pop(),this.name=this.opt.name||e.description,this.scale=e.notes.map(function(e){return e*t})},i.prototype.parse_scl=function(t){var e={};return e.comments=[],e.notes=[],t.trim().split(\"\\n\").forEach(function(t){if(-1!==t.indexOf(\"!\"))e.comments.push(t);else if(\"description\"in e)if(e.notes.length){var i=t.replace(/^[^-\\.0-9]+/,\"\").replace(/[^-\\/\\.0-9]+$/,\"\");i=-1!==i.indexOf(\".\")?Math.pow(2,parseFloat(i)/1200):s(i),i&&e.notes.push(i)}else e.notes.push(1);else e.description=t}),e},i.prototype.index=function(i,s){s=s||this.opt.octave;var n=this.scale[0|e(i,this.scale.length)],o=Math.floor(t(i,0,this.scale.length))+s;return n*=Math.pow(this.interval,o)},i.prototype.range=function(t,e){for(var i=[],s=t;s<e;s++)i.push(this.index(s));return i},i.prototype.set_root=function(t){this.opt.root=t,this.generate()},i.prototype.quantize_frequency=function(t){if(0==t)return 0;for(var e=t,i=0,s=this.interval,n=this.scale;e<root;)e*=s,i-=1;for(;e>root*s;)e/=s,i+=1;for(var o=0;o<n.length;o++)if(!(e>n[o])){e=n[o];break}return e*=Math.pow(2,i)},i.prototype.quantize_index=function(t){return 0|e(index-1,this.scale.length)};var s=i.prototype.parse_interval=function(t){if(\"number\"==typeof t)return t;if(-1==!t.indexOf(\"/\"))return parseInt(t);var e=t.split(\"/\"),i=parseInt(e[0]),s=parseInt(e[1]);return isNaN(i)?1:isNaN(s)||0==s?i:i==s?1:i/s},n=i.prototype.parse_interval_string=function(t){return-1!==t.indexOf(\"/\")?s(t)*this.opt.root:(t.indexOf(\"f\"),parseFloat(t))};return i}()},function(t,e,i){\"use strict\";var s,n,o;\"function\"==typeof Symbol&&Symbol.iterator;/**\n * StartAudioContext.js\n * @author Yotam Mann\n * @license http://opensource.org/licenses/MIT MIT License\n * @copyright 2016 Yotam Mann\n */\n!function(i,r){n=[],s=r,void 0!==(o=\"function\"==typeof s?s.apply(e,n):s)&&(t.exports=o)}(0,function(){function t(){if(e.context&&!e.isStarted()){var t=e.context.createOscillator(),i=e.context.createGain();i.gain.value=0,t.connect(i),i.connect(e.context.destination);var s=e.context.currentTime;t.start(s),t.stop(s+.5)}if(e._tapListeners){for(var n=0;n<e._tapListeners.length;n++)e._tapListeners[n].dispose();e._tapListeners=null}if(e._onStarted){for(var o=0;o<e._onStarted.length;o++)e._onStarted[o]();e._onStarted=null}}var e={context:null,_tapListeners:[],_onStarted:[]};e.setContext=function(t){return e.context=t,e},e.on=function(s){if(Array.isArray(s)||NodeList&&s instanceof NodeList)for(var n=0;n<s.length;n++)e.on(s[n]);else if(\"string\"==typeof s)e.on(document.querySelectorAll(s));else if(s.jquery&&\"function\"==typeof s.toArray)e.on(s.toArray());else if(Element&&s instanceof Element){var o=new i(s,t);e._tapListeners.push(o)}return e},e.onStarted=function(t){return e.isStarted()?t():e._onStarted.push(t),e},e.isStarted=function(){return null!==e.context&&\"running\"===e.context.state};var i=function(t){this._dragged=!1,this._element=t,this._bindedMove=this._moved.bind(this),this._bindedEnd=this._ended.bind(this),t.addEventListener(\"touchmove\",this._bindedMove),t.addEventListener(\"touchend\",this._bindedEnd),t.addEventListener(\"mouseup\",this._bindedEnd)};return i.prototype._moved=function(t){this._dragged=!0},i.prototype._ended=function(e){this._dragged||t(),this._dragged=!1},i.prototype.dispose=function(){this._element.removeEventListener(\"touchmove\",this._bindedMove),this._element.removeEventListener(\"touchend\",this._bindedEnd),this._element.removeEventListener(\"mouseup\",this._bindedEnd),this._bindedMove=null,this._bindedEnd=null,this._element=null},e})},function(t,e){var i=Object.prototype.hasOwnProperty,s=Object.prototype.toString,n=function(t){return\"function\"==typeof Array.isArray?Array.isArray(t):\"[object Array]\"===s.call(t)},o=function(t){\"use strict\";if(!t||\"[object Object]\"!==s.call(t))return!1;var e=i.call(t,\"constructor\"),n=t.constructor&&t.constructor.prototype&&i.call(t.constructor.prototype,\"isPrototypeOf\");if(t.constructor&&!e&&!n)return!1;var o;for(o in t);return void 0===o||i.call(t,o)};t.exports=function t(){\"use strict\";var e,i,s,r,a,h,l=arguments[0],c=1,u=arguments.length,p=!1;for(\"boolean\"==typeof l?(p=l,l=arguments[1]||{},c=2):(\"object\"!=typeof l&&\"function\"!=typeof l||null==l)&&(l={});c<u;++c)if(null!=(e=arguments[c]))for(i in e)s=l[i],r=e[i],l!==r&&(p&&r&&(o(r)||(a=n(r)))?(a?(a=!1,h=s&&n(s)?s:[]):h=s&&o(s)?s:{},l[i]=t(p,h,r)):void 0!==r&&(l[i]=r));return l}},function(t,e,s){/**\n @title NexusUI API\n @overview NexusUI is a JavaScript toolkit for easily creating musical interfaces in web browsers. Interfaces are rendered on HTML5 canvases and are ideal for web audio projects, mobile apps, or for sending OSC to external audio applications like Max.\n @author Ben Taylor, Jesse Allison, Yemin Oh, Sébastien Piquemal\n @copyright © 2011-2014\n @license MIT\n */\nvar n=(s(8),s(3)),o=s(6).EventEmitter,r=s(0),a=s(9),h=t.exports=function(){o.apply(this),this.widgets=new Object,this.elemTypeArr=new Array,this.aniItems=new Array,this.showLabels=!1,this.starttime=(new Date).getTime(),a&&(this.sendsTo=a.setGlobalTransmit,this.setAjaxPath=a.setAjaxPath,this.destination=\"js\",this.ajaxPath=\"lib/nexusOSCRelay.php\"),this.isTouchDevice=\"ontouchstart\"in document.documentElement,this.metas=document.getElementsByTagName(\"meta\"),this.globalWidgets=!0,this.font=\"'open sans'\",this.fontSize=14,this.fontWeight=\"normal\";var t=window.AudioContext||window.webkitAudioContext;this.context=new t,this.sys=navigator.userAgent.toLowerCase(),this.isAndroid=this.sys.indexOf(\"android\")>-1,this.isMobile=this.sys.indexOf(\"mobile\")>-1,this.throttlePeriod=20,this.colors.borderhl=n.shadeBlendConvert(-.5,this.colors.border),this.colors.accenthl=n.shadeBlendConvert(.15,this.colors.accent)};r.inherits(h,o),h.prototype.add=function(t,e){if(t){var i=document.createElement(\"canvas\");if(i.setAttribute(\"nx\",t),e){if((e.x||e.y)&&(i.style.position=\"absolute\"),e.x&&(i.style.left=e.x+\"px\"),e.y&&(i.style.top=e.y+\"px\"),e.w&&(i.style.width=e.w,\"string\"!=typeof e.w&&(i.width=e.w)),e.h&&(i.style.height=e.h,\"string\"!=typeof e.h&&(i.height=e.h)),e.parent){var s;\"string\"==typeof e.parent?s=document.getElementById(e.parent):e.parent instanceof HTMLElement?s=e.parent:e.parent instanceof jQuery&&(s=e.parent[0])}e.name&&(i.id=e.name)}if(!s)var s=document.body;return s.appendChild(i),this.transform(i)}},h.prototype.transform=function(t,e){for(var i in nx.widgets)if(nx.widgets[i].canvasID==t.id)return;if(e)var n=e;else var n=t.getAttribute(\"nx\");if(n){var o,r=0;for(j=0;j<this.elemTypeArr.length;j++)this.elemTypeArr[j]===n&&r++;if(this.elemTypeArr.push(n),!t.id){var a=r+1;t.id=n+a}if(n)try{var o=new(s(27)[n])(t.id)}catch(t){return void console.log(\"creation of \"+n+\" failed\")}return o.type=n,this.widgets[o.canvasID]=o,this.globalWidgets&&(window[o.canvasID]=this.widgets[o.canvasID]),o.init(),o}},h.prototype.transmit=function(t,e){this.makeOSC(this.emit,t,e),this.emit(\"*\",t,e)},h.prototype.colorize=function(t,e){e||(e=t,t=\"accent\"),this.colors[t]=e,this.colors.borderhl=n.shadeBlendConvert(.1,this.colors.border,this.colors.black),this.colors.accenthl=n.shadeBlendConvert(.3,this.colors.accent);for(var i in this.widgets)this.widgets[i].colors[t]=e,this.widgets[i].colors.borderhl=this.colors.borderhl,this.widgets[i].colors.accenthl=this.colors.accenthl,this.widgets[i].draw()},h.prototype.setThrottlePeriod=function(t){this.throttlePeriod=t;for(var e in this.widgets)this.widgets[e].throttlePeriod=this.throttlePeriod},h.prototype.colors={accent:\"#ff5500\",fill:\"#eeeeee\",border:\"#e3e3e3\",mid:\"#1af\",black:\"#000000\",white:\"#FFFFFF\"},h.prototype.startPulse=function(){this.pulseInt=setInterval(\"nx.pulse()\",30)},h.prototype.stopPulse=function(){clearInterval(this.pulseInt)},h.prototype.pulse=function(){for(var t=0;t<this.aniItems.length;t++)this.aniItems[t]()},h.prototype.addAni=function(t){},h.prototype.removeAni=function(t){this.aniItems.splice(this.aniItems.indexOf(t))},h.prototype.addStylesheet=function(){var t='select {width: 150px;padding: 5px 5px;font-size: 16px;color:#666666;border: solid 2px #e4e4e4;border-radius: 0;-webkit-appearance: none;outline: none;cursor:pointer;background-color:#EEE;font-family:\"open sans\";}input[type=text]::-moz-selection { background: transparent; }input[type=text]::selection { background: transparent; }input[type=text]::-webkit-selection { background: transparent; }canvas { cursor:pointer;border-radius:0px;moz-border-radius:0px;webkit-border-radius:0px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;}input[type=text] { border-radius:5px;moz-border-radius:5px;webkit-border-radius:5px;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;}',e=document.head,i=document.createElement(\"style\");i.type=\"text/css\",i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t)),e.appendChild(i)},h.prototype.setViewport=function(t){for(i=0;i<this.metas.length;i++)\"viewport\"==this.metas[i].name&&(this.metas[i].content=\"minimum-scale=\"+t+\", maximum-scale=\"+t)},h.prototype.setLabels=function(t){this.showLabels=\"on\"==t;for(var e in this.widgets)this.widgets[e].draw()},h.prototype.setProp=function(t,e){if(t&&e){nx[t]=e;for(var i in this.widgets)this.widgets[i][t]=e,this.widgets[i].draw()}},h.prototype.blockMove=function(t){t.target.attributes.nx&&(t.preventDefault(),this.isAndroid&&!!t.stopPropagation&&t.stopPropagation())},h.prototype.calculateDigits=function(t){var e=this.max?Math.floor(this.max).toString().length:1;if(e<this.maxdigits)var i=3-e;else var i=0;return{wholes:e,decimals:i,total:e+i}},h.prototype.themes={light:{fill:\"#DDDDDD\",border:\"#DADADA\",black:\"#000000\",white:\"#FFFFFF\",body:\"#F3F3F3\"},dark:{fill:\"#222\",border:\"#292929\",black:\"#FFFFFF\",white:\"#000000\",body:\"#111\"},red:\"#f24\",orange:\"#f50\",yellow:\"#ec1\",green:\"#1c9\",blue:\"#09d\",purple:\"#40a\"},h.prototype.skin=function(t){var e=t.split(\"-\");nx.colorize(\"fill\",nx.themes[e[0]].fill),nx.colorize(\"border\",nx.themes[e[0]].border),nx.colorize(\"black\",nx.themes[e[0]].black),nx.colorize(\"white\",nx.themes[e[0]].white),nx.colorize(\"accent\",nx.themes[e[1]]),document.body.style.backgroundColor=nx.themes[e[0]].body},h.prototype.labelSize=function(t){for(var e in this.widgets){var i=this.widgets[e];if(i.label){var s=i.GUI.h+t;i.labelSize=t,[\"select\",\"number\",\"text\"].indexOf(i.type)<0&&i.resize(!1,s)}}var n=document.querySelectorAll(\".nxlabel\");console.log(n);for(var o=0;o<n.length;o++)console.log(n[o]),n[o].style.fontSize=t/2.8+\"px\",console.log(n[o].style.fontSize)}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),banner=module.exports=function(t){this.defaultSize={width:100,height:40},widget.call(this,t),this.message1=\"Powered By\",this.message2=\"NexusUI\",this.link=\"http://www.nexusosc.com\",this.isLink=!0};util.inherits(banner,widget),banner.prototype.init=function(){this.draw()},banner.prototype.draw=function(){with(this.context)globalAlpha=.1,fillStyle=this.colors.accent,beginPath(),moveTo(0,10),lineTo(10,this.GUI.h/2+5),lineTo(0,this.GUI.h),lineTo(30,this.GUI.h),lineTo(30,10),fill(),moveTo(this.GUI.w-30,10),lineTo(this.GUI.w-30,this.GUI.h),lineTo(this.GUI.w,this.GUI.h),lineTo(this.GUI.w-10,this.GUI.h/2+5),lineTo(this.GUI.w,10),fill(),closePath(),globalAlpha=1,fillStyle=this.colors.accent,fillRect(15,0,this.GUI.w-30,this.GUI.h-10),fillStyle=this.colors.white,font=this.fontWeight+\" \"+this.GUI.h/5+\"px \"+this.font,textAlign=\"center\",fillText(this.message1,this.GUI.w/2,this.GUI.h/3.3),fillText(this.message2,this.GUI.w/2,this.GUI.h/3.3*2),fillStyle=this.colors.black,beginPath(),moveTo(15,this.GUI.h-10),lineTo(30,this.GUI.h),lineTo(30,this.GUI.h-10),lineTo(15,this.GUI.h-10),fill(),moveTo(this.GUI.w-15,this.GUI.h-10),lineTo(this.GUI.w-30,this.GUI.h),lineTo(this.GUI.w-30,this.GUI.h-10),lineTo(this.GUI.w-15,this.GUI.h-10),fill(),closePath()},banner.prototype.click=function(){this.isLink&&(window.location=this.link)}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),drawing=__webpack_require__(3),button=module.exports=function(t){this.defaultSize={width:50,height:50},widget.call(this,t),this.val={press:0},this.mode=\"aftertouch\",this.lockResize=!0,this.image=null,this.imageHover=null,this.imageTouch=null,this.subval=new Object,this.init()};util.inherits(button,widget),button.prototype.init=function(){this.center={x:this.GUI.w/2,y:this.GUI.h/2},this.strokeWidth=this.GUI.w/20,this.radius=Math.min(this.center.x,this.center.y),this.draw()},button.prototype.draw=function(){with(this.erase(),this.context){if(null!==this.image)this.val.press?this.imageTouch?drawImage(this.imageTouch,0,0):(drawImage(this.image,0,0),globalAlpha=.5,fillStyle=this.colors.accent,fillRect(0,0,this.GUI.w,this.GUI.h),globalAlpha=1):drawImage(this.image,0,0);else if(this.val.press?this.val.press&&(fillStyle=this.colors.accent,strokeStyle=this.colors.accenthl):(fillStyle=this.colors.fill,strokeStyle=this.colors.border),lineWidth=this.strokeWidth,beginPath(),arc(this.center.x,this.center.y,this.radius,0,2*Math.PI,!0),fill(),closePath(),beginPath(),arc(this.center.x,this.center.y,this.radius-lineWidth/2,0,2*Math.PI,!0),stroke(),globalAlpha=1,closePath(),this.val.press&&\"aftertouch\"==this.mode){var x=nx.clip(this.clickPos.x,.2*this.GUI.w,this.GUI.w/1.3),y=nx.clip(this.clickPos.y,.2*this.GUI.h,this.GUI.h/1.3),gradient=this.context.createRadialGradient(x,y,this.GUI.w/6,this.center.x,this.center.y,1.3*this.radius);gradient.addColorStop(0,this.colors.accent),gradient.addColorStop(1,\"white\"),strokeStyle=gradient,lineWidth=this.GUI.w/20,beginPath(),arc(this.center.x,this.center.y,this.radius-this.GUI.w/40,0,2*Math.PI,!0),stroke(),closePath()}this.drawLabel()}},button.prototype.click=function(t){drawing.isInside(this.clickPos,{x:this.center.x-this.radius,y:this.center.y-this.radius,w:2*this.radius,h:2*this.radius})&&(this.val.press=1,\"aftertouch\"==this.mode&&(this.val.x=this.clickPos.x,this.val.y=this.clickPos.y),this.transmit(this.val),this.draw())},button.prototype.move=function(){\"aftertouch\"==this.mode&&(this.val.x=this.clickPos.x,this.val.y=this.clickPos.y,this.subval.x=this.clickPos.x,this.subval.y=this.clickPos.y,this.transmit(this.subval),this.draw())},button.prototype.release=function(){this.val.press=0,\"toggle\"!=this.mode&&\"aftertouch\"!=this.mode||this.transmit(this.val),this.draw()},button.prototype.setImage=function(t){this.image=new Image,this.image.onload=this.draw.bind(this),this.image.src=t},button.prototype.setHoverImage=function(t){this.imageHover=new Image,this.imageHover.onload=this.draw.bind(this),this.imageHover.src=t},button.prototype.setTouchImage=function(t){this.imageTouch=new Image,this.imageTouch.onload=this.draw.bind(this),this.imageTouch.src=t}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),colors=module.exports=function(t){this.defaultSize={width:100,height:100},widget.call(this,t),this.init()};util.inherits(colors,widget),colors.prototype.init=function(){this.gradient1=this.context.createLinearGradient(0,0,this.GUI.w,0),this.gradient1.addColorStop(0,\"#F00\"),this.gradient1.addColorStop(.17,\"#FF0\"),this.gradient1.addColorStop(.34,\"#0F0\"),this.gradient1.addColorStop(.51,\"#0FF\"),this.gradient1.addColorStop(.68,\"#00F\"),this.gradient1.addColorStop(.85,\"#F0F\"),this.gradient1.addColorStop(1,\"#F00\"),this.gradient2=this.context.createLinearGradient(0,0,0,this.GUI.h),this.gradient2.addColorStop(0,\"rgba(0,0,0,255)\"),this.gradient2.addColorStop(.49,\"rgba(0,0,0,0)\"),this.gradient2.addColorStop(.51,\"rgba(255,255,255,0)\"),this.gradient2.addColorStop(.95,\"rgba(255,255,255,255)\"),this.draw()},colors.prototype.draw=function(){with(this.erase(),this.context)fillStyle=this.gradient1,fillRect(0,0,this.GUI.w,this.GUI.h),fillStyle=this.gradient2,fillRect(0,0,this.GUI.w,this.GUI.h);this.drawLabel()},colors.prototype.drawColor=function(){with(this.context)fillStyle=\"rgb(\"+this.val.r+\",\"+this.val.g+\",\"+this.val.b+\")\",fillRect(0,.95*this.GUI.h,this.GUI.w,.05*this.GUI.h)},colors.prototype.click=function(t){if(this.clickPos.x>0&&this.clickPos.y>0&&this.clickPos.x<this.GUI.w&&this.clickPos.y<this.GUI.h){var e=this.context.getImageData(2*this.clickPos.x,2*this.clickPos.y,1,1);this.val={r:e.data[0],g:e.data[1],b:e.data[2]},this.transmit(this.val),this.drawColor()}},colors.prototype.move=function(t){this.click(t)}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),comment=module.exports=function(t){this.defaultSize={width:100,height:20},widget.call(this,t),this.val={text:\"comment\"},this.sizeSet=!1,this.init()};util.inherits(comment,widget),comment.prototype.setSize=function(t){this.size=t,this.sizeSet=!0,this.draw()},comment.prototype.init=function(){this.draw()},comment.prototype.draw=function(){with(this.sizeSet||(this.size=Math.sqrt(this.GUI.w*this.GUI.h/(2*this.val.text.length))),this.erase(),this.context)fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),fillStyle=this.colors.black,textAlign=\"left\",font=this.size+\"px 'Open Sans'\";this.wrapText(this.val.text,6,3+this.size,this.GUI.w-6,this.size)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),crossfade=module.exports=function(t){this.defaultSize={width:100,height:30},widget.call(this,t),this.val={R:.75,L:.75},this.location=.5,this.init()};util.inherits(crossfade,widget),crossfade.prototype.init=function(){this.draw()},crossfade.prototype.draw=function(){with(this.erase(),this.location=Math.pow(this.val.R,2),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h);var y1=0,y2=this.GUI.h,x1=this.location*this.GUI.w;fillStyle=this.colors.accent,fillRect(x1,0,this.GUI.w-x1,y2),textBaseline=\"middle\",font=this.GUI.h/3+\"px 'Open Sans'\",fillStyle=this.colors.accent,textAlign=\"right\",fillText(this.val.R.toFixed(2),x1-2,this.GUI.h/4),fillStyle=this.colors.fill,textAlign=\"left\",fillText(this.val.L.toFixed(2),x1+2,.75*this.GUI.h)}this.drawLabel()},crossfade.prototype.click=function(){this.move()},crossfade.prototype.move=function(){var t=math.clip(this.clickPos.x/this.GUI.w,0,1),e=1-t;this.location=t,this.val.R=math.prune(Math.sqrt(t),3),this.val.L=math.prune(Math.sqrt(e),3),this.draw(),this.transmit(this.val)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),dial=module.exports=function(t){this.defaultSize={width:100,height:100},widget.call(this,t),this.circleSize,this.handleLength,this.val={value:0},this.responsivity=.004,this.aniStart=0,this.aniStop=1,this.aniMove=.01,this.lockResize=!0,null!=this.canvas.getAttribute(\"min\")?this.min=parseFloat(this.canvas.getAttribute(\"min\")):this.min=0,null!=this.canvas.getAttribute(\"max\")?this.max=parseFloat(this.canvas.getAttribute(\"max\")):this.max=1,null!=this.canvas.getAttribute(\"step\")?this.step=parseFloat(this.canvas.getAttribute(\"step\")):this.step=.001,this.maxdigits=3,this.calculateDigits=nx.calculateDigits,this.init()};util.inherits(dial,widget),dial.prototype.init=function(){this.circleSize=Math.min(this.center.x,this.center.y),this.handleLength=this.circleSize,this.mindim=Math.min(this.GUI.w,this.GUI.h),this.mindim<101||this.mindim<101?this.accentWidth=1*this.lineWidth:this.accentWidth=2*this.lineWidth,this.draw()},dial.prototype.draw=function(){var normalval=this.normalize(this.val.value),dial_position=2*(normalval+.25)*Math.PI;with(this.erase(),this.context)if(lineCap=\"butt\",beginPath(),lineWidth=this.circleSize/2,arc(this.center.x,this.center.y,this.circleSize-lineWidth/2,0*Math.PI,2*Math.PI,!1),strokeStyle=this.colors.fill,stroke(),closePath(),lineCap=\"butt\",beginPath(),lineWidth=this.circleSize/2,arc(this.center.x,this.center.y,this.circleSize-lineWidth/2,.5*Math.PI,dial_position,!1),strokeStyle=this.colors.accent,stroke(),closePath(),clearRect(this.center.x-this.GUI.w/40,this.center.y,this.GUI.w/20,this.GUI.h/2),normalval>0&&(beginPath(),lineWidth=1.5,moveTo(this.center.x-this.GUI.w/40,this.center.y+this.circleSize/2),lineTo(this.center.x-this.GUI.w/40,this.center.y+this.circleSize),strokeStyle=this.colors.accent,stroke(),closePath()),this.val.value=math.prune(this.rangify(normalval),3),this.digits=this.calculateDigits(),valtextsize=this.mindim/this.digits.total*.55,valtextsize>7){var valtext=this.val.value.toFixed(this.digits.decimals);fillStyle=this.colors.borderhl,textAlign=\"center\",textBaseline=\"middle\",font=valtextsize+\"px 'Open Sans'\",fillText(valtext,this.GUI.w/2,this.GUI.h/2)}this.drawLabel()},dial.prototype.click=function(t){this.val.value=math.prune(this.val.value,4),this.transmit(this.val),this.draw(),this.aniStart=this.val.value},dial.prototype.move=function(){var t=this.normalize(this.val.value);t=math.clip(t-this.deltaMove.y*this.responsivity,0,1),this.val.value=math.prune(this.rangify(t),4),this.transmit(this.val),this.draw()},dial.prototype.release=function(){this.aniStop=this.val.value},dial.prototype.animate=function(t){switch(t){case\"bounce\":nx.aniItems.push(this.aniBounce.bind(this));break;case\"none\":nx.aniItems.splice(nx.aniItems.indexOf(this.aniBounce))}},dial.prototype.aniBounce=function(){this.clicked||(this.val.value+=this.aniMove,this.aniStop<this.aniStart&&(this.stopPlaceholder=this.aniStop,this.aniStop=this.aniStart,this.aniStart=this.stopPlaceholder),this.aniMove=math.bounce(this.val.value,this.aniStart,this.aniStop,this.aniMove),this.draw(),this.val.value=math.prune(this.val.value,4),this.transmit(this.val))}},function(module,exports,__webpack_require__){var startTime=0,math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),envelope=module.exports=function(t){this.defaultSize={width:200,height:100},widget.call(this,t),this.nodeSize=1,this.active=!1,this.duration=1e3,this.looping=!1,this.scanIndex=0,this.val={index:0,amp:0,points:[{x:.1,y:.4},{x:.35,y:.6},{x:.65,y:.2},{x:.9,y:.4}]},this.selectedNode=null,nx.aniItems.push(this.pulse.bind(this)),this.init()};util.inherits(envelope,widget),envelope.prototype.init=function(){this.mindim=this.GUI.w<this.GUI.h?this.GUI.w:this.GUI.h,this.draw()},envelope.prototype.draw=function(){with(this.erase(),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),fillStyle=this.colors.accent;var centerx=this.mindim/10,centery=this.GUI.h-this.mindim/10;beginPath(),moveTo(centerx,centery),arc(centerx,centery,this.mindim/10,1.5*Math.PI,2*Math.PI*this.val.index+1.5*Math.PI,!1),fill(),closePath();for(var drawingX=[],drawingY=[],i=0;i<this.val.points.length;i++)drawingX[i]=this.val.points[i].x*this.GUI.w,drawingY[i]=(1-this.val.points[i].y)*this.GUI.h,drawingX[i]<this.bgLeft+this.nodeSize?drawingX[i]=this.bgLeft+this.nodeSize:drawingX[i]>this.bgRight-this.nodeSize&&(drawingX[i]=this.bgRight-this.nodeSize),drawingY[i]<this.bgTop+this.nodeSize?drawingY[i]=this.bgTop+this.nodeSize:drawingY[i]>this.bgBottom-this.nodeSize&&(drawingY[i]=this.bgBottom-this.nodeSize);for(var j=0;j<drawingX.length;j++){var size=this.mindim/35+2;beginPath(),arc(drawingX[j],drawingY[j],size,0,2*Math.PI,!1),fillStyle=this.colors.accent,fill(),closePath()}beginPath(),strokeStyle=this.colors.accent,moveTo(-5,this.GUI.h),lineTo(-5,(1-this.val.points[0].y)*this.GUI.h);for(var j=0;j<drawingX.length;j++)lineTo(drawingX[j],drawingY[j]);lineTo(this.GUI.w+5,(1-this.val.points[this.val.points.length-1].y)*this.GUI.h),lineTo(this.GUI.w+5,this.GUI.h),stroke(),globalAlpha=.2,fillStyle=this.colors.accent,fill(),globalAlpha=1,closePath()}this.drawLabel()},envelope.prototype.scaleNode=function(t){var e=t,i=0,s=this.GUI.w,n=this.val.points[e].x,o=this.GUI.h-this.val.points[e].y,r=math.clip(n/this.GUI.w,0,1),a=math.clip(o/this.GUI.h,0,1);this.val.points[e].x=math.prune(r,3),this.val.points[e].y=math.prune(a,3),e>0&&(i=this.val.points[e-1].x),this.val.points.length>e+1&&(s=this.val.points[e+1].x),this.val.points[e].x<i&&(this.val.points.splice(e-1,0,this.val.points.splice(e,1)[0]),e-=1,this.selectedNode=e),this.val.points[e].x>s&&(this.val.points.splice(e+1,0,this.val.points.splice(e,1)[0]),e+=1,this.selectedNode=e)},envelope.prototype.click=function(){this.selectedNode=this.findNearestNode(this.clickPos.x/this.GUI.w,this.clickPos.y/this.GUI.h,this.val.points),this.transmit(this.val),this.draw()},envelope.prototype.move=function(){this.clicked&&(this.val.points[this.selectedNode].x=this.clickPos.x,this.val.points[this.selectedNode].y=this.clickPos.y,this.scaleNode(this.selectedNode),this.transmit(this.val),this.draw())},envelope.prototype.release=function(){this.hasMoved||this.val.points.splice(this.selectedNode,1),this.draw(),this.selectedNode=null},envelope.prototype.pulse=function(){if(this.active){var t=(nx.context.currentTime-startTime)/(this.duration/1e3);if(t>=1&&(this.looping?(t-=1,startTime+=this.duration/1e3,this.val.index=0,this.scanIndex=0):this.stop()),this.val.index=t,this.val.index>this.val.points[this.val.points.length-1].x)this.val.amp=this.val.points[this.val.points.length-1].y;else if(this.val.index<this.val.points[0].x)this.val.amp=this.val.points[0].y;else{for(this.scanIndex=0;this.val.index>this.val.points[this.scanIndex].x;)this.scanIndex++;var e=this.val.points[this.scanIndex].x,i=this.val.points[this.scanIndex-1].x,s=this.val.points[this.scanIndex].y,n=this.val.points[this.scanIndex-1].y;this.val.amp=math.interp((this.val.index-i)/(e-i),n,s)}this.transmit(this.val),this.draw()}},envelope.prototype.start=function(){this.active=!0,this.val.index=0,startTime=nx.context.currentTime},envelope.prototype.stop=function(){this.active=!1,this.val.index=0,this.draw()},envelope.prototype.findNearestNode=function(t,e,i){var s=null,n=1e3,o=!1;e=1-e;for(var r=0;r<i.length;r++){var a=Math.sqrt(Math.pow(i[r].x-t,2),Math.pow(i[r].y- -e,2));a<n&&(n=a,s=r,o=t>i[r].x)}return n>.1&&(o&&s++,this.val.points.splice(s,0,{x:this.clickPos.x/this.GUI.w,y:(this.GUI.h-this.clickPos.y)/this.GUI.h})),s}},function(t,e,i){t.exports={banner:i(20),button:i(21),colors:i(22),comment:i(23),crossfade:i(24),dial:i(25),envelope:i(26),joints:i(28),keyboard:i(29),matrix:i(30),message:i(31),meter:i(32),metro:i(33),motion:i(34),mouse:i(35),multislider:i(36),multitouch:i(37),number:i(38),position:i(39),range:i(40),select:i(41),slider:i(42),string:i(43),tabs:i(44),text:i(45),tilt:i(46),toggle:i(47),typewriter:i(48),vinyl:i(49),waveform:i(50)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),joints=module.exports=function(t){this.defaultSize={width:150,height:150},widget.call(this,t),this.nodeSize=this.GUI.w/14,this.values=[0,0],this.val={x:.35,y:.35,node1:0},this.joints=[{x:.1,y:.2},{x:.2,y:.1},{x:.3,y:.7},{x:.4,y:.4},{x:.5,y:.9},{x:.6,y:.15},{x:.7,y:.3},{x:.8,y:.8}],this.threshold=this.GUI.w/3};util.inherits(joints,widget),joints.prototype.init=function(){this.nodeSize=this.GUI.w/14,this.threshold=this.GUI.w/3,this.draw()},joints.prototype.draw=function(){with(this.erase(),this.drawingX=this.val.x*this.GUI.w,this.drawingY=this.val.y*this.GUI.h,this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),null!=this.val.x?this.drawNode():(fillStyle=this.colors.border,font=\"14px courier\",fillText(this.default_text,10,20)),fillStyle=this.colors.accent,strokeStyle=this.colors.border;for(var i in this.joints){beginPath(),arc(this.joints[i].x*this.GUI.w,this.joints[i].y*this.GUI.h,this.nodeSize/2,0,2*Math.PI,!0),fill(),closePath();var cnctX=Math.abs(this.joints[i].x*this.GUI.w-this.drawingX),cnctY=Math.abs(this.joints[i].y*this.GUI.h-this.drawingY),strength=cnctX+cnctY;if(strength<this.threshold){beginPath(),moveTo(this.joints[i].x*this.GUI.w,this.joints[i].y*this.GUI.h),lineTo(this.drawingX,this.drawingY),strokeStyle=this.colors.accent,lineWidth=math.scale(strength,0,this.threshold,this.nodeSize/2,5),stroke(),closePath();var scaledstrength=math.scale(strength,0,this.threshold,1,0);this.val[\"node\"+i]=scaledstrength}}}this.drawLabel()},joints.prototype.drawNode=function(){with(this.drawingX<this.nodeSize?this.drawingX=this.nodeSize:this.drawingX>this.GUI.w-this.nodeSize&&(this.drawingX=this.GUI.w-this.nodeSize),this.drawingY<this.nodeSize?this.drawingY=this.nodeSize:this.drawingY>this.GUI.h-this.nodeSize&&(this.drawingY=this.GUI.h-this.nodeSize),this.context)globalAlpha=1,beginPath(),fillStyle=this.colors.accent,strokeStyle=this.colors.border,lineWidth=this.lineWidth,arc(this.drawingX,this.drawingY,this.nodeSize,0,2*Math.PI,!0),fill(),closePath()},joints.prototype.click=function(){this.val=new Object,this.val.x=this.clickPos.x/this.GUI.w,this.val.y=this.clickPos.y/this.GUI.h,this.draw(),this.transmit(this.val),this.connections=new Array},joints.prototype.move=function(){this.val=new Object,this.clicked&&(this.val.x=this.clickPos.x/this.GUI.w,this.val.y=this.clickPos.y/this.GUI.h,this.draw(),this.transmit(this.val),this.connections=new Array)},joints.prototype.release=function(){this.anix=this.deltaMove.x/this.GUI.w,this.aniy=this.deltaMove.y/this.GUI.h},joints.prototype.animate=function(t){switch(t){case\"bounce\":nx.aniItems.push(this.aniBounce.bind(this));break;case\"none\":nx.aniItems.splice(nx.aniItems.indexOf(this.aniBounce))}},joints.prototype.anix=0,joints.prototype.aniy=0,joints.prototype.aniBounce=function(){!this.clicked&&this.val.x&&(this.val.x+=this.anix,this.val.y+=this.aniy,this.anix=math.bounce(this.val.x,.1,.9,this.anix),this.aniy=math.bounce(this.val.y,.1,.9,this.aniy),this.draw(),this.transmit(this.val))}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),drawing=__webpack_require__(3),math=__webpack_require__(2),keyboard=module.exports=function(t){this.defaultSize={width:300,height:75},widget.call(this,t),this.octaves=3,this.white={width:0,height:0},this.black={width:0,height:0},this.wkeys=new Array,this.bkeys=new Array,this.keypattern=[\"w\",\"b\",\"w\",\"b\",\"w\",\"w\",\"b\",\"w\",\"b\",\"w\",\"b\",\"w\"],this.keys=new Array,this.midibase=48,this.lineWidth=1,this.fingers=[{key:-1,pkey:-1}],this.multitouch=!1,this.oneleft=!1,this.mode=\"button\",this.val={on:0,note:0,midi:\"0 0\"},this.init()};util.inherits(keyboard,widget),keyboard.prototype.init=function(){this.white={width:0,height:0},this.black={width:0,height:0},this.wkeys=new Array,this.bkeys=new Array,this.keys=new Array,this.white.num=0;for(var t=0;t<this.keypattern.length;t++)\"w\"==this.keypattern[t]&&this.white.num++;this.white.num*=this.octaves,this.white.width=this.GUI.w/this.white.num,this.white.height=this.GUI.h,this.black.width=.6*this.white.width,this.black.height=.6*this.GUI.h;for(var t=0;t<this.keypattern.length*this.octaves;t++)switch(this.keys[t]={note:t+this.midibase,on:!1},this.keypattern[t%this.keypattern.length]){case\"w\":this.keys[t].x=this.wkeys.length*this.white.width,this.keys[t].y=0,this.keys[t].w=this.white.width,this.keys[t].h=this.white.height,this.keys[t].type=\"w\",this.keys[t].index=t,this.wkeys.push(this.keys[t]);break;case\"b\":this.keys[t].x=this.wkeys.length*this.white.width-this.black.width/2,this.keys[t].y=0,this.keys[t].w=this.black.width,this.keys[t].h=this.black.height,this.keys[t].type=\"b\",this.keys[t].index=t,this.bkeys.push(this.keys[t])}this.draw()},keyboard.prototype.draw=function(){with(this.context){strokeStyle=this.colors.borderhl,lineWidth=1;for(var i in this.wkeys)fillStyle=this.wkeys[i].on?this.colors.borderhl:this.colors.fill,strokeRect(this.wkeys[i].x,0,this.white.width,this.white.height),fillRect(this.wkeys[i].x,0,this.white.width,this.white.height);for(var i in this.bkeys)fillStyle=this.bkeys[i].on?this.colors.borderhl:this.colors.black,fillRect(this.bkeys[i].x,0,this.black.width,this.black.height)}this.drawLabel()},keyboard.prototype.toggle=function(t,e){if(\"button\"==this.mode){if(t){t.on=e||!1===e?e:!t.on;var i=t.on?1:0,s=128*math.invert(this.clickPos.y/this.GUI.h);s=math.prune(math.clip(s,5,128),0),this.val={on:i*s,note:t.note,midi:t.note+\" \"+i},this.transmit(this.val),this.draw()}}else if(\"sustain\"==this.mode&&t){t.on=e||!t.on;var i=t.on?1:0,s=128*math.invert(this.clickPos.y/this.GUI.h);s=math.prune(math.clip(s,5,128),0),this.val={on:i*s,note:t.note,midi:t.note+\" \"+i},this.transmit(this.val),this.draw()}},keyboard.prototype.whichKey=function(t,e){for(var i in this.bkeys)if(drawing.isInside({x:t,y:e},this.bkeys[i]))return this.bkeys[i];var s=~~(t/this.white.width);return s>=this.wkeys.length&&(s=this.wkeys.length-1),s<0&&(s=0),this.wkeys[s]},keyboard.prototype.click=function(t){if(this.clickPos.touches.length>1||this.multitouch){this.multitouch=!0,this.clickPos.touches.length>=2&&this.oneleft&&(this.oneleft=!1),this.keysinuse=new Array;for(var e=0;e<this.clickPos.touches.length;e++)this.fingers[e]={key:this.whichKey(this.clickPos.touches[e].x,this.clickPos.touches[e].y)},this.fingers[e].key.on||this.toggle(this.fingers[e].key,!0),this.keysinuse.push(this.fingers[e].key.index);for(var e=0;e<this.keys.length;e++)this.keys[e].on&&this.keysinuse.indexOf(this.keys[e].index)<0&&this.toggle(this.keys[e],!1)}else this.fingers[0].pkey=this.fingers[0].key,this.fingers[0].key=this.whichKey(this.clickPos.x,this.clickPos.y),this.toggle(this.fingers[0].key)},keyboard.prototype.move=function(t){if(this.clickPos.touches.length>1||this.multitouch){this.keysinuse=new Array;for(var e=0;e<this.clickPos.touches.length;e++)this.fingers[e]={key:this.whichKey(this.clickPos.touches[e].x,this.clickPos.touches[e].y)},this.fingers[e].key.on||this.toggle(this.fingers[e].key,!0),this.keysinuse.push(this.fingers[e].key.index);for(var e=0;e<this.keys.length;e++)this.keys[e].on&&this.keysinuse.indexOf(this.keys[e].index)<0&&this.toggle(this.keys[e],!1)}else this.fingers[0].pkey=this.fingers[0].key,this.fingers[0].key=this.whichKey(this.clickPos.x,this.clickPos.y),this.fingers[0].key&&this.fingers[0].key.index!=this.fingers[0].pkey.index&&(this.toggle(this.fingers[0].pkey,!1),this.toggle(this.fingers[0].key,!0))},keyboard.prototype.release=function(t){if(this.clickPos.touches.length>1||this.multitouch){this.keysinuse=new Array;for(var e=0;e<this.clickPos.touches.length&&(!this.oneleft||1!=this.clickPos.touches.length);e++)this.fingers[e]={key:this.whichKey(this.clickPos.touches[e].x,this.clickPos.touches[e].y)},this.keysinuse.push(this.fingers[e].key.index);for(var e=0;e<this.keys.length;e++)this.keys[e].on&&this.keysinuse.indexOf(this.keys[e].index)<0&&this.toggle(this.keys[e],!1);1==this.clickPos.touches.length&&(this.oneleft=!0)}else\"button\"==this.mode&&this.toggle(this.fingers[0].key,!1)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),drawing=__webpack_require__(3),util=__webpack_require__(0),widget=__webpack_require__(1),matrix=module.exports=function(t){this.defaultSize={width:100,height:100},widget.call(this,t),this.row=4,this.col=4,this.cellHgt,this.cellWid,this.matrix,this.val={row:0,col:0,level:0,list:new Array},this.cur,this.prev,this.erasing=!1,this.place=null,this.starttime,this.lastbeat,this.thisframe=0,this.lastframe=0,this.context.lineWidth=1,this.sequencing=!1,this.cellBuffer=4,this.sequenceMode=\"linear\",this.bpm=120,this.pbpm=this.bpm,this.starttime=nx.starttime,this.init()};util.inherits(matrix,widget),matrix.prototype.init=function(){this.pmatrix=!!this.matrix&&this.matrix,this.matrix=null,this.matrix=new Array(this.col);for(var t=0;t<this.col;t++){this.matrix[t]=new Array(this.row);for(var e=0;e<this.row;e++)this.matrix[t][e]=this.pmatrix&&this.pmatrix[t]?this.pmatrix[t][e]:0}this.draw(),this.life=this.unboundlife.bind(this)},matrix.prototype.draw=function(){with(this.erase(),this.cellWid=this.GUI.w/this.col,this.cellHgt=this.GUI.h/this.row,this.context)strokeStyle=this.colors.fill;for(var i=0;i<this.row;i++)for(var j=0;j<this.col;j++){var st_x=j*this.cellWid;0==j&&(st_x+=0);var st_y=i*this.cellHgt;0==i&&(st_y+=0);var boxwid=this.cellWid,boxhgt=this.cellHgt;with(this.context)strokeStyle=this.colors.border,lineWidth=this.cellBuffer,this.matrix[j][i]>0?fillStyle=this.colors.accent:fillStyle=this.colors.fill,fillRect(st_x+this.cellBuffer/2,st_y+this.cellBuffer/2,boxwid-this.cellBuffer,boxhgt-this.cellBuffer),this.place==j&&(globalAlpha=.4,fillStyle=this.colors.border,fillRect(st_x,st_y,boxwid,boxhgt),globalAlpha=1)}this.drawLabel()},matrix.prototype.click=function(t){this.cur={col:~~(this.clickPos.x/this.cellWid),row:~~(this.clickPos.y/this.cellHgt)},this.matrix[this.cur.col][this.cur.row]?(this.matrix[this.cur.col][this.cur.row]=0,this.erasing=!0):(this.matrix[this.cur.col][this.cur.row]=1,this.erasing=!1),this.cur.value=this.matrix[this.cur.col][this.cur.row],this.prev=this.cur,this.val={row:this.cur.row,col:this.cur.col,level:this.cur.value},this.transmit(this.val),this.draw()},matrix.prototype.move=function(t){this.clicked&&(this.cur={col:~~(this.clickPos.x/this.cellWid),row:~~(this.clickPos.y/this.cellHgt)},this.cur.row<this.row&&this.cur.col<this.col&&this.cur.row>=0&&this.cur.col>=0&&(this.cur.col==this.prev.col&&this.cur.row==this.prev.row||(this.erasing?this.matrix[this.cur.col][this.cur.row]=0:this.matrix[this.cur.col][this.cur.row]=1,this.cur.value=this.matrix[this.cur.col][this.cur.row],this.prev=this.cur,this.val={row:this.cur.row,col:this.cur.col,level:this.cur.value},this.transmit(this.val),this.draw())))},matrix.prototype.setCell=function(t,e,i){var s=i?1:0;this.matrix[t][e]=s,this.val={row:e,col:t,level:s},this.transmit(this.val),this.draw()},matrix.prototype.sequence=function(t){t&&(this.bpm=t),this.sequencing=!0,requestAnimationFrame(this.seqStep.bind(this))},matrix.prototype.setBPM=function(t){this.bpm=t},matrix.prototype.stop=function(){this.sequencing=!1},matrix.prototype.seqStep=function(){0==this.bpm&&(this.bpm=1);var t=(new Date).getTime(),e=t-this.starttime;if(this.bpm!=this.pbpm){e=e/(6e4/this.pbpm)*(6e4/this.bpm),this.starttime=t-e,this.thisframe=~~(e/(6e4/this.bpm))}else this.thisframe=~~(e/(6e4/this.bpm));this.pbpm=this.bpm,this.thisframe!=this.lastframe&&(this.lastbeat=t,\"linear\"==this.sequenceMode?this.place++:\"random\"==this.sequenceMode&&(this.place=math.random(this.col)),this.place>=this.col&&(this.place=0),null==this.place&&(this.place=0),this.jumpToCol(this.place)),this.lastframe=this.thisframe,this.sequencing&&requestAnimationFrame(this.seqStep.bind(this))},matrix.prototype.jumpToCol=function(t){this.place=t,this.val={list:this.matrix[this.place]},this.transmit(this.val),this.draw()},matrix.prototype.customDestroy=function(){this.stop()},matrix.prototype.unboundlife=function(){if(!this.clicked){this.newmatrix=[];for(var t=0;t<this.col;t++){this.newmatrix[t]=[];for(var e=0;e<this.row;e++){var i=0;t-1>=0&&(i+=this.matrix[t-1][e-1]?this.matrix[t-1][e-1]:0,i+=this.matrix[t-1][e]?this.matrix[t-1][e]:0,i+=this.matrix[t-1][e+1]?this.matrix[t-1][e+1]:0),i+=this.matrix[t][e-1]?this.matrix[t][e-1]:0,i+=this.matrix[t][e+1]?this.matrix[t][e+1]:0,t+1<this.col&&(i+=this.matrix[t+1][e-1]?this.matrix[t+1][e-1]:0,i+=this.matrix[t+1][e]?this.matrix[t+1][e]:0,i+=this.matrix[t+1][e+1]?this.matrix[t+1][e+1]:0),this.matrix[t][e]?i<2?this.newmatrix[t][e]=0:2==i||3==i?this.newmatrix[t][e]=1:i>3&&(this.newmatrix[t][e]=0):this.matrix[t][e]||3!=i?this.newmatrix[t][e]=this.matrix[t][e]:this.newmatrix[t][e]=1}}this.matrix=this.newmatrix}this.transmit({grid:this.matrix}),this.draw()},matrix.prototype.life=function(){return!1}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),message=module.exports=function(t){this.defaultSize={width:100,height:30},widget.call(this,t),this.val={value:\"send a message\"},this.size=14};util.inherits(message,widget),message.prototype.init=function(){this.canvas.getAttribute(\"label\")&&(this.val.value=this.canvas.getAttribute(\"label\")),this.draw()},message.prototype.draw=function(){with(this.erase(),this.context)this.clicked?fillStyle=this.colors.border:fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),this.clicked,fillStyle=this.colors.black,textAlign=\"left\",font=this.size+\"px \"+nx.font;this.wrapText(this.val.value,5,1+this.size,this.GUI.w-6,this.size)},message.prototype.click=function(t){this.draw(),this.transmit(this.val)},message.prototype.release=function(t){this.draw()}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),drawing=__webpack_require__(3),widget=__webpack_require__(1),meter=module.exports=function(t){this.defaultSize={width:20,height:50},widget.call(this,t),this.val={level:0},this.dataArray,this.bars=8,this.init()};util.inherits(meter,widget),meter.prototype.init=function(){with(this.bar={x:0,y:0,w:this.GUI.w,h:this.GUI.h/this.bars},this.context)fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h)},meter.prototype.setup=function(t,e){this.actx=t,this.source=e,this.analyser=this.actx.createAnalyser(),this.analyser.smoothingTimeConstant=.85,this.analyser.fftsize=1024,this.bufferLength=this.analyser.frequencyBinCount,this.dataArray=new Uint8Array(this.bufferLength),this.source.connect(this.analyser),this.draw()},meter.prototype.draw=function(){if(this.dataArray){this.analyser.getByteTimeDomainData(this.dataArray);var max=Math.max.apply(null,this.dataArray),min=Math.min.apply(null,this.dataArray),amp=max-min;amp/=240;var db=Math.log(amp)/Math.log(10)*20;with(this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h);for(var dboffset=Math.floor((db+40)/(50/this.bars)),i=0;i<this.bars;i++)i>=.8*this.bars?fillStyle=\"rgb(255,0,0)\":i<.8*this.bars&&i>=.69*this.bars?fillStyle=\"rgb(255,255,0)\":i<.69*this.bars&&(fillStyle=\"rgb(0,255,0)\"),i<dboffset&&fillRect(1,this.GUI.h-this.bar.h*i,this.GUI.w-2,this.bar.h-2)}}setTimeout(function(){window.requestAnimationFrame(this.draw.bind(this))}.bind(this),80)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),metro=module.exports=function(t){this.defaultSize={width:100,height:20},widget.call(this,t),this.val={beat:0},this.x=10,this.y=10,this.loc=10,this.nodeSize=10,this.speed=1,this.direction=1,this.orientation=\"horizontal\",this.boundary=this.GUI.w,nx.aniItems.push(this.advance.bind(this)),this.active=!0,this.init()};util.inherits(metro,widget),metro.prototype.init=function(){this.nodeSize=Math.min(this.GUI.w,this.GUI.h)/2,this.GUI.w<this.GUI.h?(this.orientation=\"vertical\",this.boundary=this.GUI.h):(this.orientation=\"horizontal\",this.boundary=this.GUI.w),this.x=this.nodeSize,this.y=this.nodeSize,this.loc=this.nodeSize,this.draw()},metro.prototype.draw=function(){with(this.erase(),this.context)fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),beginPath(),fillStyle=this.colors.accent,arc(this.x,this.y,this.nodeSize,0,2*Math.PI,!0),fill(),closePath();this.drawLabel()},metro.prototype.click=function(){},metro.prototype.move=function(){this.clicked&&(this.speed-=this.deltaMove.y/50)},metro.prototype.release=function(){},metro.prototype.advance=function(){this.speed,this.loc+=this.speed*this.direction,(this.loc-this.nodeSize<0||this.loc+this.nodeSize>this.boundary)&&(this.val.beat=math.scale(this.direction,-1,1,0,1),this.transmit(this.val),this.direction*=-1),\"vertical\"==this.orientation?this.y=this.loc:this.x=this.loc,this.draw()},metro.prototype.customDestroy=function(){nx.removeAni(this.advance.bind(this))}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),motion=module.exports=function(target){if(this.defaultSize={width:75,height:75},widget.call(this,target),this.motionLR,this.motionFB,this.z,this.active=!0,this.px=0,this.py=0,this.pz=0,this.val={x:0,y:0,z:0},this.text=\"Motion\",this.init(),this.boundMotion=this.motionlistener.bind(this),window.DeviceMotionEvent)window.addEventListener(\"devicemotion\",this.boundMotion,!1);else with(this.context)fillText(\"incompatible\",0,0),this.active=!1};util.inherits(motion,widget),motion.prototype.deviceMotionHandler=function(){this.val={x:math.prune(this.motionLR/10,4),y:math.prune(this.motionFB/10,4),z:math.prune(this.z/10,4)},this.transmit(this.val)},motion.prototype.motionlistener=function(e){var data=e.acceleration;if(this.active&&(this.motionLR=nx.lp(this.canvasID+\"motionx\",data.x,20),this.motionFB=nx.lp(this.canvasID+\"motiony\",data.y,20),this.z=nx.lp(this.canvasID+\"motionz\",data.z,20),this.deviceMotionHandler(),this.draw(),null===data.x||void 0===data.x)){with(this.erase(),this.context)fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),fillStyle=this.colors.black,font=\"12px courier\",textAlign=\"center\",fillText(\"no data\",this.GUI.w/2,this.GUI.h/2);this.active=!1}},motion.prototype.init=function(){this.draw()},motion.prototype.draw=function(){with(this.erase(),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),fillStyle=this.colors.accent;var eighth=Math.PI/4;this.motionFB<0?(beginPath(),moveTo(this.GUI.w/2,this.GUI.h/2),arc(this.GUI.w/2,this.GUI.h/2,this.GUI.w/2,5*eighth,7*eighth,!1),globalAlpha=Math.pow(this.motionFB,2),fill(),closePath()):(beginPath(),moveTo(this.GUI.w/2,this.GUI.h/2),arc(this.GUI.w/2,this.GUI.h/2,this.GUI.w/2,1*eighth,3*eighth,!1),globalAlpha=Math.pow(this.motionFB,2),fill(),closePath()),this.motionLR<0?(beginPath(),moveTo(this.GUI.w/2,this.GUI.h/2),arc(this.GUI.w/2,this.GUI.h/2,this.GUI.w/2,7*eighth,1*eighth,!1),globalAlpha=Math.pow(this.motionLR,2),fill(),closePath()):(beginPath(),moveTo(this.GUI.w/2,this.GUI.h/2),arc(this.GUI.w/2,this.GUI.h/2,this.GUI.w/2,3*eighth,5*eighth,!1),globalAlpha=Math.pow(this.motionLR,2),fill(),closePath()),beginPath(),moveTo(this.GUI.w/2,this.GUI.h/2),arc(this.GUI.w/2,this.GUI.h/2,this.GUI.w/6,0,2*Math.PI,!1),globalAlpha=Math.pow(this.z,2),fill(),closePath(),globalAlpha=1}this.drawLabel()},motion.prototype.click=function(){this.active=!this.active,this.draw()},motion.prototype.customDestroy=function(){this.active=!1,window.removeEventListener(\"devicemotion\",this.motionlistener,!1)}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),math=__webpack_require__(2),mouse=module.exports=function(t){this.defaultSize={width:98,height:100},widget.call(this,t),this.val={x:0,y:0,deltax:0,deltay:0},this.inside=new Object,this.boundmove=this.preMove.bind(this),this.mousing=window.addEventListener(\"mousemove\",this.boundmove,!1),this.init()};util.inherits(mouse,widget),mouse.prototype.init=function(){this.inside.height=this.GUI.h,this.inside.width=this.GUI.w,this.inside.left=0,this.inside.top=0,this.inside.quarterwid=this.inside.width/4,this.draw()},mouse.prototype.draw=function(){with(this.erase(),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h);var scaledx=-this.val.x*this.GUI.h,scaledy=-this.val.y*this.GUI.h,scaleddx=-this.val.deltax*this.GUI.h-this.GUI.h/2,scaleddy=-this.val.deltay*this.GUI.h-this.GUI.h/2;fillStyle=this.colors.accent,fillRect(this.inside.left,this.inside.height,this.inside.quarterwid,scaledx),fillRect(this.inside.quarterwid,this.inside.height,this.inside.quarterwid,scaledy),fillRect(2*this.inside.quarterwid,this.inside.height,this.inside.quarterwid,scaleddx),fillRect(3*this.inside.quarterwid,this.inside.height,this.inside.quarterwid,scaleddy),globalAlpha=1,fillStyle=this.colors.fill,textAlign=\"center\",font=this.GUI.w/7+\"px \"+this.font,globalAlpha=1}this.drawLabel()},mouse.prototype.move=function(t){this.val={deltax:t.clientX/window.innerWidth-this.val.x,deltay:math.invert(t.clientY/window.innerHeight)-this.val.y,x:t.clientX/window.innerWidth,y:math.invert(t.clientY/window.innerHeight)},this.draw(),this.transmit(this.val)},mouse.prototype.customDestroy=function(){window.removeEventListener(\"mousemove\",this.boundmove,!1)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),multislider=module.exports=function(t){this.defaultSize={width:100,height:75},widget.call(this,t),this.sliders=15,this.sliderClicked=0,this.oldSliderToMove,this.init()};util.inherits(multislider,widget),multislider.prototype.init=function(){this.val=new Array;for(var t=0;t<this.sliders;t++)this.val[t]=.7;this.realSpace={x:this.GUI.w,y:this.GUI.h},this.sliderWidth=this.realSpace.x/this.sliders,this.draw()},multislider.prototype.draw=function(){with(this.erase(),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),strokeStyle=this.colors.accent,fillStyle=this.colors.accent,lineWidth=5;for(var i=0;i<this.sliders;i++)beginPath(),moveTo(i*this.sliderWidth,this.GUI.h-this.val[i]*this.GUI.h),lineTo(i*this.sliderWidth+this.sliderWidth,this.GUI.h-this.val[i]*this.GUI.h),stroke(),lineTo(i*this.sliderWidth+this.sliderWidth,this.GUI.h),lineTo(i*this.sliderWidth,this.GUI.h),globalAlpha=.3-i%3*.1,fill(),closePath(),globalAlpha=1}this.drawLabel()},multislider.prototype.click=function(){this.oldSliderToMove=!1,this.move(!0)},multislider.prototype.move=function(t){if(this.clicked){if(this.clickPos.touches.length>1)for(var e=0;e<this.clickPos.touches.length;e++){var i=Math.floor(this.clickPos.touches[e].x/this.sliderWidth);i=math.clip(i,0,this.sliders-1),this.val[i]=math.clip(math.invert(this.clickPos.touches[e].y/this.GUI.h),0,1)}else{var i=Math.floor(this.clickPos.x/this.sliderWidth);if(i=math.clip(i,0,this.sliders-1),this.val[i]=math.clip(math.invert(this.clickPos.y/this.GUI.h),0,1),this.oldSliderToMove&&this.oldSliderToMove>i+1)for(var s=this.oldSliderToMove-i-1,e=1;e<=s;e++)this.val[i+e]=this.val[i]+(this.val[this.oldSliderToMove]-this.val[i])*(e/(s+1));else if(this.oldSliderToMove&&i>this.oldSliderToMove+1)for(var s=i-this.oldSliderToMove-1,e=1;e<=s;e++)this.val[this.oldSliderToMove+e]=this.val[this.oldSliderToMove]+(this.val[i]-this.val[this.oldSliderToMove])*(e/(s+1))}this.draw()}var n=new Object;if(n[i]=this.val[i],\"js\"==this.destination||\"node\"==this.destination)n.list=this.val;else{n.list=new String;for(var o in this.val)n.list+=this.val[o]+\" \"}this.transmit(n),this.oldSliderToMove=i},multislider.prototype.setNumberOfSliders=function(t){this.sliders=t,this.val=new Array;for(var e=0;e<this.sliders;e++)this.val.push(.7);this.sliderWidth=this.realSpace.x/this.sliders,this.init()},multislider.prototype.setSliderValue=function(t,e){this.val[t]=e,this.draw();var i=new Object;if(i[t]=this.val[t],\"js\"==this.destination||\"node\"==this.destination)i.list=this.val;else{i.list=new String;for(var s in this.val)i.list+=this.val[s]+\" \"}this.transmit(i)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),drawing=__webpack_require__(3),util=__webpack_require__(0),widget=__webpack_require__(1),multitouch=module.exports=function(t){this.defaultSize={width:200,height:200},widget.call(this,t),this.nodeSize=this.GUI.w/10,this.val={touch1:{x:0,y:0}},this.nodes=new Array,this.text=\"multitouch\",this.rainbow=[\"#00f\",\"#04f\",\"#08F\",\"0AF\",\"0FF\"],this.mode=\"normal\",this.rows=10,this.cols=10,this.matrixLabels=!1,this.init()};util.inherits(multitouch,widget),multitouch.prototype.init=function(){this.nodeSize=this.GUI.w/10,this.draw()},multitouch.prototype.draw=function(){with(this.erase(),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h);var count=0;if(\"matrix\"==this.mode)for(var j=0;j<this.rows;j++)for(var i=0;i<this.cols;i++)with(this.context){beginPath(),fillStyle=this.colors.accent,strokeStyle=this.colors.border,lineWidth=1;var circx=i*this.GUI.w/this.cols+this.GUI.w/this.cols/2,circy=j*this.GUI.h/this.rows+this.GUI.h/this.rows/2;arc(circx,circy,this.GUI.h/this.rows/2,0,2*Math.PI,!0),stroke(),fillStyle=this.colors.border,textAlign=\"center\",textBaseline=\"middle\",this.matrixLabels&&(fillText(this.matrixLabels[count%this.matrixLabels.length],circx,circy),count++);var thisarea={x:i*this.GUI.w/this.cols,y:j*this.GUI.h/this.rows,w:this.GUI.w/this.cols,h:this.GUI.h/this.rows};if(this.clickPos.touches.length>=1)for(var k=0;k<this.clickPos.touches.length;k++)drawing.isInside(this.clickPos.touches[k],thisarea)&&(globalAlpha=.5,fillStyle=this.colors.accent,fill(),globalAlpha=.3,fillStyle=this.rainbow[k],fill(),globalAlpha=1);closePath()}else if(this.clickPos.touches.length>=1){for(var i=0;i<this.clickPos.touches.length;i++)with(this.context)globalAlpha=.5,beginPath(),fillStyle=this.colors.accent,strokeStyle=this.colors.border,lineWidth=this.lineWidth,arc(this.clickPos.touches[i].x,this.clickPos.touches[i].y,this.nodeSize,0,2*Math.PI,!0),fill(),closePath(),globalAlpha=.3,beginPath(),fillStyle=this.rainbow[i],strokeStyle=this.colors.border,lineWidth=this.lineWidth,arc(this.clickPos.touches[i].x,this.clickPos.touches[i].y,this.nodeSize,0,2*Math.PI,!0),fill(),closePath(),globalAlpha=1;clearRect(0,this.GUI.h,this.GUI.w,this.height-this.GUI.h)}else this.setFont(),fillStyle=this.colors.border,fillText(this.text,this.GUI.w/2,this.GUI.h/2),globalAlpha=1}this.drawLabel()},multitouch.prototype.click=function(){this.draw(),this.sendit()},multitouch.prototype.move=function(){this.clicked&&(this.draw(),this.sendit())},multitouch.prototype.release=function(){if(!this.clicked){this.clickPos.touches=new Array;for(var t=0;t<5;t++)this.val[\"touch\"+t]={x:0,y:0};this.transmit(this.val)}this.draw(),this.sendit()},multitouch.prototype.sendit=function(){this.val=new Object;for(var t=0;t<this.clickPos.touches.length;t++)this.val[\"touch\"+t]={x:this.clickPos.touches[t].x/this.canvas.width,y:math.invert(this.clickPos.touches[t].y/this.canvas.height)};this.transmit(this.val)}},function(t,e,i){var s=i(2),n=i(0),o=i(1),r=t.exports=function(t){this.defaultSize={width:50,height:20},o.call(this,t),this.val={value:0},this.min=-2e4,this.max=2e4,this.step=1,this.rate=.25,this.decimalPlaces=3,this.lostdata=0,this.actual=0,this.canvas.ontouchstart=null,this.canvas.ontouchmove=null,this.canvas.ontouchend=null;var e='<input type=\"text\" nx=\"number\" id=\"'+this.canvasID+'\" style=\"height:'+this.GUI.h+\"px;width:\"+this.GUI.w+\"px;font-size:\"+this.GUI.h/2+'px;\"></input><canvas height=\"1px\" width=\"1px\" style=\"display:none\"></canvas>',i=this.canvas,n=this.canvas.style,r=i.parentNode,a=document.createElement(\"span\");a.innerHTML=e,a.className=\"nx\",r.replaceChild(a,i),this.el=document.getElementById(this.canvasID);for(var h in n)\"height\"!=h&&\"width\"!=h&&(this.el.style[h]=n[h]);if(this.label){var l=document.createElement(\"div\");l.innerHTML=this.label,l.style.fontSize=this.labelSize/2.8+\"px\",l.style.fontFamily=this.labelFont,l.style.textAlign=this.labelAlign,l.style.lineHeight=this.labelSize+\"px\",l.style.width=this.GUI.w+\"px\",l.style.color=nx.colors.black,l.className=\"nxlabel\",a.appendChild(l)}this.canvas=document.getElementById(this.canvasID),this.canvas.style.height=this.GUI.h+\"px\",this.canvas.style.fontSize=.6*this.GUI.h+\"px\",this.canvas.style.textAlign=\"left\",this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.highlight=this.colors.fill,this.canvas.style.border=\"none\",this.canvas.style.outline=\"none\",this.canvas.style.padding=\"4px 10px\",this.canvas.style.cursor=\"pointer\",this.canvas.style.display=\"block\",this.canvas.className=\"\",this.canvas.addEventListener(\"blur\",function(){this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.color=this.colors.black,this.canvas.value!=this.val.value&&(this.actual=parseFloat(this.canvas.value),this.actual=s.clip(this.actual,this.min,this.max),this.actual=s.prune(this.actual,this.decimalPlaces),this.set({value:this.actual},!0))}.bind(this)),this.canvas.addEventListener(\"keydown\",function(t){(t.which<48||t.which>57)&&189!=t.which&&190!=t.which&&8!=t.which&&t.preventDefault(),13==t.which&&this.canvas.blur()}.bind(this)),nx.isTouchDevice?(this.canvas.ontouchstart=this.preTouch,this.canvas.ontouchmove=this.preTouchMove,this.canvas.ontouchend=this.preTouchRelease):this.canvas.addEventListener(\"mousedown\",this.preClick,!1),this.canvas.style.userSelect=\"none !important\",this.canvas.style.mozUserSelect=\"none !important\",this.canvas.style.webkitUserSelect=\"none !important\",this.init()};n.inherits(r,o),r.prototype.init=function(){this.draw()},r.prototype.draw=function(){this.canvas.value=this.val.value},r.prototype.click=function(t){this.canvas.readOnly=!0,this.actual=this.val.value},r.prototype.move=function(t){this.clicked&&(this.canvas.style.border=\"none\",this.actual-=this.deltaMove.y*(this.rate*this.step),this.actual=s.clip(this.actual,this.min,this.max),this.val.value=Math.floor(this.actual/this.step)*this.step,this.val.value=s.prune(this.val.value,this.decimalPlaces),this.draw(),this.transmit(this.val))},r.prototype.release=function(t){!this.hasMoved&&this.canvas.readOnly&&(this.canvas.readOnly=!1,this.canvas.focus(),this.canvas.setSelectionRange(0,this.canvas.value.length),this.canvas.style.backgroundColor=this.colors.accent,this.canvas.style.color=this.colors.fill)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),position=module.exports=function(t){this.defaultSize={width:150,height:100},widget.call(this,t),this.nodeSize=15,this.val={x:.5,y:.5},this.init()};util.inherits(position,widget),position.prototype.init=function(){this.nodeSize=Math.min(this.GUI.h,this.GUI.w)/10,this.nodeSize=Math.max(this.nodeSize,10),this.actualWid=this.GUI.w-2*this.nodeSize,this.actualHgt=this.GUI.h-2*this.nodeSize,this.draw()},position.prototype.draw=function(){with(this.erase(),this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h);var drawingX=this.val.x*this.actualWid+this.nodeSize,drawingY=math.invert(this.val.y)*this.actualHgt+this.nodeSize;with(drawingX<this.nodeSize?drawingX=this.nodeSize:drawingX>this.GUI.w-this.nodeSize&&(drawingX=this.GUI.w-this.nodeSize),drawingY<this.nodeSize?drawingY=this.nodeSize:drawingY>this.GUI.h-this.nodeSize&&(drawingY=this.GUI.h-this.nodeSize),this.context)beginPath(),fillStyle=this.colors.accent,arc(drawingX,drawingY,this.nodeSize,0,2*Math.PI,!0),fill(),closePath(),this.clicked&&(beginPath(),fillStyle=this.colors.accent,arc(drawingX,drawingY,2*this.nodeSize,0,2*Math.PI,!0),fill(),closePath(),clearRect(0,this.GUI.h,this.GUI.w,this.height-this.GUI.h))}this.drawLabel()},position.prototype.click=function(){this.val.x=this.clickPos.x,this.val.y=this.clickPos.y,this.scaleNode(),this.val.state=\"click\",this.transmit(this.val),this.draw()},position.prototype.move=function(){this.val.x=this.clickPos.x,this.val.y=this.clickPos.y,this.scaleNode(),this.val.state=\"move\",this.transmit(this.val),this.draw()},position.prototype.release=function(){this.val.x=this.clickPos.x,this.val.y=this.clickPos.y,this.scaleNode(),this.val.state=\"release\",this.transmit(this.val),this.draw()},position.prototype.scaleNode=function(){var t=this.val.x-this.nodeSize,e=this.val.y-this.nodeSize,i=math.clip(t/this.actualWid,0,1),s=math.clip(e/this.actualHgt,0,1);this.val.x=math.prune(i,3),this.val.y=math.prune(s,3),this.val.y=math.invert(this.val.y)},position.prototype.animate=function(t){switch(t){case\"bounce\":nx.aniItems.push(this.aniBounce.bind(this));break;case\"none\":nx.aniItems.splice(nx.aniItems.indexOf(this.aniBounce))}},position.prototype.aniBounce=function(){!this.clicked&&this.val.x&&(this.val.x+=this.deltaMove.x/2/this.GUI.w,this.val.y-=this.deltaMove.y/2/this.GUI.h,this.val.state=\"animated\",math.bounce(this.val.x,0,1,this.deltaMove.x)!=this.deltaMove.x&&(this.deltaMove.x=math.bounce(this.val.x,0,1,this.deltaMove.x),this.val.state=\"bounce\"),(this.val.y>=1||this.val.y<=0)&&(this.deltaMove.y=-1*math.bounce(this.val.y,0,1,this.deltaMove.y),this.val.state=\"bounce\"),this.transmit(this.val),this.draw())},position.prototype.customDestroy=function(){nx.removeAni(this.aniBounce)}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),math=__webpack_require__(2),range=module.exports=function(t){this.defaultSize={width:110,height:35},widget.call(this,t),this.val={start:.3,stop:.7,size:.4},this.hslider=!1,this.handle,this.relhandle,this.cap,this.firsttouch=\"start\",this.mode=\"area\",this.touchdown=new Object,this.init()};util.inherits(range,widget),range.prototype.init=function(){this.GUI.h>=this.GUI.w?this.hslider=!1:this.hslider=!0,null!=this.canvas.getAttribute(\"label\")&&(this.label=this.canvas.getAttribute(\"label\")),this.draw()},range.prototype.draw=function(){with(this.erase(),this.context)if(fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),this.hslider){var x1=this.val.start*this.GUI.w,y1=0,x2=this.val.stop*this.GUI.w,y2=this.GUI.h;fillStyle=this.colors.accent,fillRect(x1,y1,x2-x1,y2-y1)}else{var x1=0,y1=this.GUI.h-this.val.stop*this.GUI.h,x2=this.GUI.w,y2=this.GUI.h-this.val.start*this.GUI.h;fillStyle=this.colors.accent,fillRect(x1,y1,x2-x1,y2-y1)}this.drawLabel()},range.prototype.click=function(){\"edge\"==this.mode?this.hslider?Math.abs(this.clickPos.x-this.val.start*this.GUI.w)<Math.abs(this.clickPos.x-this.val.stop*this.GUI.w)?this.firsttouch=\"start\":this.firsttouch=\"stop\":Math.abs(Math.abs(this.clickPos.y-this.GUI.h)-this.val.start*this.GUI.h)<Math.abs(Math.abs(this.clickPos.y-this.GUI.h)-this.val.stop*this.GUI.h)?this.firsttouch=\"start\":this.firsttouch=\"stop\":\"area\"==this.mode&&(this.touchdown={x:this.clickPos.x,y:this.clickPos.y},this.startval=new Object,this.startval.size=this.val.stop-this.val.start,this.startval.loc=this.val.start+this.startval.size/2),this.move()},range.prototype.move=function(){if(\"edge\"==this.mode)this.hslider?\"start\"==this.firsttouch?(this.val.start=this.clickPos.x/this.GUI.w,this.clickPos.touches.length>1&&(this.val.stop=this.clickPos.touches[1].x/this.GUI.w)):(this.val.stop=this.clickPos.x/this.GUI.w,this.clickPos.touches.length>1&&(this.val.start=this.clickPos.touches[1].x/this.GUI.w)):\"start\"==this.firsttouch?(this.val.start=math.invert(this.clickPos.y/this.GUI.h),this.clickPos.touches.length>1&&(this.val.stop=math.invert(this.clickPos.touches[1].y/this.GUI.h))):(this.val.stop=math.invert(this.clickPos.y/this.GUI.h),this.clickPos.touches.length>1&&(this.val.start=math.invert(this.clickPos.touches[1].y/this.GUI.h))),this.val.stop<this.val.start&&(this.tempstart=this.val.start,this.val.start=this.val.stop,this.val.stop=this.tempstart,\"start\"==this.firsttouch?this.firsttouch=\"stop\":this.firsttouch=\"start\"),this.val={start:math.clip(this.val.start,0,1),stop:math.clip(this.val.stop,0,1)},this.val.size=math.prune(math.clip(Math.abs(this.val.stop-this.val.start),0,1),3),this.draw(),this.transmit(this.val);else if(\"area\"==this.mode){if(this.hslider)var t=this.clickPos.x/this.GUI.w,e=(this.touchdown.y-this.clickPos.y)/this.GUI.h;else{var t=nx.invert(this.clickPos.y/this.GUI.h),e=(this.touchdown.x-this.clickPos.x)/this.GUI.w;e*=-1}e/=3;var i=this.startval.size+e;i=math.clip(i,.001,1),this.val={start:t-i/2,stop:t+i/2},this.val.start=math.clip(this.val.start,0,1),this.val.stop=math.clip(this.val.stop,0,1),this.draw(),this.transmit(this.val)}}},function(t,e,i){var s=i(0),n=i(1),o=t.exports=function(t){this.defaultSize={width:200,height:30},n.call(this,t),this.choices=[],this.val=new Object,this.canvas.ontouchstart=null,this.canvas.ontouchmove=null,this.canvas.ontouchend=null,this.canvas.getAttribute(\"choices\")&&(this.choices=this.canvas.getAttribute(\"choices\"),this.choices=this.choices.split(\",\"));var e='<select id=\"'+this.canvasID+'\" class=\"nx\" nx=\"select\" style=\"height:'+this.GUI.h+\"px;width:\"+this.GUI.w+'px;\" onchange=\"'+this.canvasID+'.change(this)\"></select><canvas height=\"1px\" width=\"1px\" style=\"display:none\"></canvas>',i=this.canvas,s=this.canvas.style,o=i.parentNode,r=document.createElement(\"span\");r.innerHTML=e,r.className=\"nx\",o.replaceChild(r,i),this.sel=document.getElementById(this.canvasID);for(var a in s)this.sel.style[a]=s[a];this.canvas=document.getElementById(this.canvasID),this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.border=\"solid 2px \"+this.colors.border,this.canvas.style.color=this.colors.black,this.canvas.style.fontSize=Math.round(this.GUI.h/2.3)+\"px\",this.canvas.className=\"\"};s.inherits(o,n),o.prototype.init=function(){this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.border=\"solid 2px \"+this.colors.border,this.canvas.style.color=this.colors.black;var t=this.canvas.options.length;for(e=0;e<t;e++)this.canvas.options[e]=null;for(var e=0;e<this.choices.length;e++){var i=document.createElement(\"option\");i.text=this.choices[e],i.value=this.choices[e],this.canvas.add(i,null)}this.val.text=this.choices[0]},o.prototype.change=function(t){this.val.text=t.value,this.val.value=t.selectedIndex,this.transmit(this.val)},o.prototype.draw=function(){this.canvas.value=this.val.text,this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.color=this.colors.black,this.canvas.style.border=\"solid 2px \"+this.colors.border}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),slider=module.exports=function(t){this.defaultSize={width:35,height:110},widget.call(this,t),null!=this.canvas.getAttribute(\"min\")?this.min=parseFloat(this.canvas.getAttribute(\"min\")):this.min=0,null!=this.canvas.getAttribute(\"max\")?this.max=parseFloat(this.canvas.getAttribute(\"max\")):this.max=1,null!=this.canvas.getAttribute(\"step\")?this.step=parseFloat(this.canvas.getAttribute(\"step\")):this.step=.001,this.val.value=nx.scale(.7,0,1,this.min,this.max),this.mode=\"absolute\",this.hslider=!1,this.handle,this.relhandle,this.cap,this.maxdigits=3,this.calculateDigits=nx.calculateDigits,this.init()};util.inherits(slider,widget),slider.prototype.init=function(){this.GUI.h>=this.GUI.w?this.hslider=!1:this.hslider=!0,this.draw()},slider.prototype.draw=function(){var normalval=this.normalize(this.val.value);with(this.digits=this.calculateDigits(),this.erase(),this.context){if(fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),this.hslider){var x1=0,y1=0,x2=normalval*this.GUI.w,y2=this.GUI.h;fillStyle=this.colors.accent,fillRect(x1,y1,x2-x1,y2-y1);var valtextsize=this.GUI.h/2;if(valtextsize>6){if(x2>this.digits.total*valtextsize/2){fillStyle=this.colors.white;var textx=5}else{fillStyle=this.colors.accent;var textx=x2+5}var texty=this.GUI.h/2,valtextAlign=\"left\",valtextBaseline=\"middle\"}}else{var x1=0,y1=this.GUI.h-normalval*this.GUI.h,x2=this.GUI.w,y2=this.GUI.h;fillStyle=this.colors.accent,fillRect(x1,y1,x2-x1,y2-y1);var valtextsize=this.GUI.w/this.digits.total*1.2;if(valtextsize>6){if(y1<this.GUI.h-valtextsize/2-5){fillStyle=this.colors.white;var texty=this.GUI.h-valtextsize/2-5}else{fillStyle=this.colors.accent;var texty=y1-valtextsize/2-5}var textx=this.GUI.w/2,valtextAlign=\"center\",valtextBaseline=\"middle\"}}var valtext=this.val.value.toFixed(this.digits.decimals);textBaseline=valtextBaseline,textAlign=valtextAlign,font=valtextsize+\"px 'Open Sans'\",fillText(valtext,textx,texty),this.label&&this.drawLabel()}},slider.prototype.click=function(){this.move()},slider.prototype.move=function(){var t=this.normalize(this.val.value);this.hslider?(this.handle=this.clickPos.x,this.relhandle=this.deltaMove.x,this.cap=this.GUI.w):(this.handle=this.clickPos.y,this.relhandle=-1*this.deltaMove.y,this.cap=this.GUI.h),\"absolute\"==this.mode?this.clicked&&(t=this.hslider?math.clip(this.clickPos.x/this.GUI.w,0,1):Math.abs(math.clip(this.clickPos.y/this.GUI.h,0,1)-1),this.draw()):\"relative\"==this.mode&&this.clicked&&(t=this.hslider?math.clip(t+this.deltaMove.x/this.GUI.w,0,1):math.clip(t+-1*this.deltaMove.y/this.GUI.h,0,1),this.draw()),this.val.value=math.prune(this.rangify(t),3),this.transmit(this.val)}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),string=module.exports=function(t){this.defaultSize={width:150,height:75},widget.call(this,t),this.val={string:0,x:0},this.numberOfStrings=10,this.strings=new Array,this.abovestring=new Array,this.friction=1;this.init(),nx.aniItems.push(this.draw.bind(this))};util.inherits(string,widget),string.prototype.init=function(){stringdiv=this.GUI.h/(this.numberOfStrings+1);for(var t=0;t<this.numberOfStrings;t++)this.strings[t]={x1:this.lineWidth,y1:stringdiv*(1+t),x2:this.GUI.w-this.lineWidth,y2:stringdiv*(t+1),held:!1,vibrating:!1,force:0,maxstretch:0,stretch:0,direction:0,above:!1};this.draw()},string.prototype.pulse=function(){this.draw()},string.prototype.setStrings=function(t){this.numberOfStrings=t,this.strings=new Array,this.init()},string.prototype.draw=function(){with(this.erase(),this.context){strokeStyle=this.colors.border,fillStyle=this.colors.fill,lineWidth=this.lineWidth,fillRect(0,0,this.GUI.w,this.GUI.h),strokeStyle=this.colors.accent;for(var i=0;i<this.strings.length;i++){var st=this.strings[i];st.vibrating?(st.maxstretch<0&&(st.vibrating=!1,st.held=!1),st.stretch=st.stretch+st.direction,Math.abs(st.stretch)>st.maxstretch&&(st.direction*=-1,st.stretch=st.stretch+st.direction,st.maxstretch=st.maxstretch-this.friction,st.direction=st.direction/Math.abs(st.direction)*(st.maxstretch/1)),beginPath(),moveTo(st.x1,st.y1),quadraticCurveTo(this.GUI.w/2,st.y1+st.stretch,st.x2,st.y2),stroke(),closePath(),st.on=!0):st.held?(beginPath(),moveTo(st.x1,st.y1),quadraticCurveTo(this.clickPos.x,this.clickPos.y,st.x2,st.y2),stroke(),closePath(),st.on=!0):(beginPath(),moveTo(st.x1,st.y1),lineTo(st.x2,st.y2),stroke(),closePath(),st.on&&(st.on=!1))}}this.drawLabel()},string.prototype.click=function(){for(var t=0;t<this.numberOfStrings;t++)this.strings[t].above=this.clickPos.y<this.strings[t].y1;this.draw()},string.prototype.move=function(){if(this.clicked)for(var t=0;t<this.strings.length;t++)this.strings[t].above!=this.clickPos.y<this.strings[t].y1&&(this.strings[t].held=!0,this.strings[t].above^=!0),this.strings[t].held&&Math.abs(this.clickPos.y-this.strings[t].y1)>this.GUI.h/(3*this.strings.length)&&this.pluck(t)},string.prototype.release=function(){for(var t=0;t<this.strings.length;t++)this.strings[t].held&&this.pluck(t)},string.prototype.pluck=function(t){var e=t;this.val={string:e,x:this.clickPos.x/this.GUI.w},this.transmit(this.val),this.strings[e].held=!1,this.strings[e].force=this.clickPos.y-this.strings[e].y1,this.strings[e].maxstretch=Math.abs(this.clickPos.y-this.strings[e].y1),this.strings[e].stretch=this.clickPos.y-this.strings[e].y1,this.strings[e].vibrating=!0,this.strings[e].direction=(this.clickPos.y-this.strings[e].y1)/Math.abs(this.clickPos.y-this.strings[e].y1)*((this.clickPos.y-this.strings[e].y1)/-1.2)},string.prototype.customDestroy=function(){nx.removeAni(this.draw.bind(this))}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),tabs=module.exports=function(t){this.defaultSize={width:150,height:50},widget.call(this,t),this.choice=0,this.val={index:0,text:\"\"},this.tabwid=0,this.options=[\"one\",\"two\",\"three\"],this.init()};util.inherits(tabs,widget),tabs.prototype.init=function(){this.draw()},tabs.prototype.draw=function(){with(this.context)fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),textAlign=\"center\",textBaseline=\"middle\",font=\"normal \"+this.GUI.h/5+\"px courier\";this.tabwid=this.GUI.w/this.options.length;for(var i=0;i<this.options.length;i++){if(i==this.choice)var tabcol=this.colors.accent,textcol=this.colors.white;else{var tabcol=this.colors.fill,textcol=this.colors.black;globalAlpha=.7}with(this.context)fillStyle=tabcol,fillRect(this.tabwid*i,0,this.tabwid,this.GUI.h),i!=this.options.length-1&&(beginPath(),moveTo(this.tabwid*(i+1),0),lineTo(this.tabwid*(i+1),this.GUI.h),lineWidth=1,strokeStyle=this.colors.border,stroke(),closePath()),fillStyle=textcol,font=this.fontSize+\"px \"+this.font,fillText(this.options[i],this.tabwid*i+this.tabwid/2,this.GUI.h/2)}},tabs.prototype.click=function(){this.choice=~~(this.clickPos.x/this.tabwid),this.val={index:this.choice,text:this.options[this.choice]},this.transmit(this.val),this.draw()}},function(t,e,i){var s=i(0),n=i(1),o=t.exports=function(t){this.defaultSize={width:200,height:100},n.call(this,t),this.val={text:\"\"};var e='<textarea id=\"'+this.canvasID+'\" style=\"height:'+this.GUI.h+\"px;width:\"+this.GUI.w+'px;\" onkeydown=\"'+this.canvasID+'.change(event,this)\"></textarea><canvas height=\"1px\" width=\"1px\" style=\"display:none\"></canvas>',i=this.canvas,s=this.canvas.style,o=i.parentNode,r=document.createElement(\"span\");r.innerHTML=e,r.className=\"nx\",o.replaceChild(r,i),this.el=document.getElementById(this.canvasID);for(var a in s)this.el.style[a]=s[a];this.el.style.display=\"block\",this.el.style.backgroundColor=this.colors.fill,this.el.style.border=\"none\",this.el.style.color=this.colors.black,this.el.style.outline=\"none\",this.el.style.resize=\"none\",this.el.style.boxSizing=\"border-box\",this.el.style.padding=\"5px\",this.el.style.fontFamily=nx.font,this.el.style.fontSize=\"16px\",this.el.className=\"\",this.canvas=document.getElementById(this.canvasID)};s.inherits(o,n),o.prototype.init=function(){this.canvas.ontouchstart=null,this.canvas.ontouchmove=null,this.canvas.ontouchend=null,this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.color=this.colors.black},o.prototype.change=function(t,e){this.val.text=e.value,\"13\"==t.which&&(this.transmit(this.val),this.val.text=\"\",this.draw(),t.preventDefault())},o.prototype.draw=function(){this.el.value=this.val.text,this.canvas.style.backgroundColor=this.colors.fill,this.canvas.style.color=this.colors.black}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),tilt=module.exports=function(t){this.defaultSize={width:50,height:50},widget.call(this,t),this.tiltLR,this.tiltFB,this.z,this.active=!0,this.val={x:0,y:0,z:0},this.text=\"TILT\",this.init(),this.boundChromeTilt=this.chromeTilt.bind(this),this.boundMozTilt=this.mozTilt.bind(this),window.DeviceOrientationEvent?window.addEventListener(\"deviceorientation\",this.boundChromeTilt,!1):window.OrientationEvent?window.addEventListener(\"MozOrientation\",this.boundMozTilt,!1):console.log(\"Not supported on your device or browser.\")};util.inherits(tilt,widget),tilt.prototype.deviceOrientationHandler=function(){this.val={x:math.prune(this.tiltLR/90,3),y:math.prune(this.tiltFB/90,3),z:math.prune(this.z,3)},this.active&&this.transmit(this.val)},tilt.prototype.chromeTilt=function(t){this.tiltLR=t.gamma,this.tiltFB=t.beta,this.z=t.alpha,this.deviceOrientationHandler(),this.draw()},tilt.prototype.mozTilt=function(t){this.tiltLR=90*t.x,this.tiltFB=-90*t.y,this.z=t.z,this.deviceOrientationHandler(),this.draw()},tilt.prototype.init=function(){this.draw()},tilt.prototype.draw=function(){with(this.erase(),this.context)fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),save(),translate(this.GUI.w/2,this.GUI.h/2),rotate(-this.val.x*Math.PI/2),translate(-this.GUI.w/2,-this.GUI.h/2),globalAlpha=.4,this.active?fillStyle=this.colors.accent:fillStyle=this.colors.border,fillRect(-this.GUI.w,this.GUI.h*(this.val.y/2)+this.GUI.h/2,3*this.GUI.w,2*this.GUI.h),font=\"bold \"+this.GUI.h/5+\"px \"+this.font,textAlign=\"center\",textBaseline=\"middle\",fillText(this.text,this.GUI.w/2,this.GUI.h*(this.val.y/2)+this.GUI.h/2-this.GUI.h/15),globalAlpha=1,restore(),clearRect(0,this.GUI.h,this.GUI.w,this.height-this.GUI.h);this.drawLabel()},tilt.prototype.click=function(){this.active=!this.active},tilt.prototype.customDestroy=function(){this.active=!1,window.removeEventListener(\"deviceorientation\",this.boundChromeTilt,!1),window.removeEventListener(\"mozOrientation\",this.boundMozTilt,!1)}},function(module,exports,__webpack_require__){var drawing=__webpack_require__(3),util=__webpack_require__(0),widget=__webpack_require__(1),toggle=module.exports=function(t){this.defaultSize={width:50,height:50},widget.call(this,t),this.val={value:0},this.init()};util.inherits(toggle,widget),toggle.prototype.init=function(){this.draw()},toggle.prototype.draw=function(){with(this.erase(),this.context)this.val.value?(fillStyle=this.colors.accent,strokeStyle=this.colors.accenthl,strokeAlpha=1):(fillStyle=this.colors.fill,strokeStyle=this.colors.border,strokeAlpha=1),lineWidth=Math.sqrt(this.GUI.w)/2,fillRect(0,0,this.GUI.w,this.GUI.h),globalAlpha=strokeAlpha,strokeRect(lineWidth/2,lineWidth/2,this.GUI.w-lineWidth,this.GUI.h-lineWidth),globalAlpha=1;this.drawLabel()},toggle.prototype.click=function(){this.val.value?this.val.value=0:this.val.value=1,this.draw(),this.transmit(this.val)}},function(module,exports,__webpack_require__){var drawing=__webpack_require__(3),util=__webpack_require__(0),widget=__webpack_require__(1),typewriter=module.exports=function(t){this.defaultSize={width:300,height:100},widget.call(this,t),this.letter=\"\",this.keywid=this.GUI.w/14.5,this.keyhgt=this.GUI.h/5,this.active=!0,this.val={key:\"\",ascii:0,on:0},this.rows=[[{symbol:\"`\",value:192,width:1,on:!1},{symbol:\"1\",value:49,width:1,on:!1},{symbol:\"2\",value:50,width:1,on:!1},{symbol:\"3\",value:51,width:1,on:!1},{symbol:\"4\",value:52,width:1,on:!1},{symbol:\"5\",value:53,width:1,on:!1},{symbol:\"6\",value:54,width:1,on:!1},{symbol:\"7\",value:55,width:1,on:!1},{symbol:\"8\",value:56,width:1,on:!1},{symbol:\"9\",value:57,width:1,on:!1},{symbol:\"0\",value:48,width:1,on:!1},{symbol:\"-\",value:189,width:1,on:!1},{symbol:\"=\",value:187,width:1,on:!1},{symbol:\"delete\",value:46,width:1.5,on:!1}],[{symbol:\"tab\",value:9,width:1.5,on:!1},{symbol:\"q\",value:81,width:1,on:!1},{symbol:\"w\",value:87,width:1,on:!1},{symbol:\"e\",value:69,width:1,on:!1},{symbol:\"r\",value:82,width:1,on:!1},{symbol:\"t\",value:84,width:1,on:!1},{symbol:\"y\",value:89,width:1,on:!1},{symbol:\"u\",value:85,width:1,on:!1},{symbol:\"i\",value:73,width:1,on:!1},{symbol:\"o\",value:79,width:1,on:!1},{symbol:\"p\",value:80,width:1,on:!1},{symbol:\"[\",value:219,width:1,on:!1},{symbol:\"]\",value:221,width:1,on:!1},{symbol:\"\\\\\",value:220,width:1,on:!1}],[{symbol:\"caps\",value:20,width:1.75,on:!1},{symbol:\"a\",value:65,width:1,on:!1},{symbol:\"s\",value:83,width:1,on:!1},{symbol:\"d\",value:68,width:1,on:!1},{symbol:\"f\",value:70,width:1,on:!1},{symbol:\"g\",value:71,width:1,on:!1},{symbol:\"h\",value:72,width:1,on:!1},{symbol:\"j\",value:74,width:1,on:!1},{symbol:\"k\",value:75,width:1,on:!1},{symbol:\"l\",value:76,width:1,on:!1},{symbol:\";\",value:186,width:1,on:!1},{symbol:\"'\",value:222,width:1,on:!1},{symbol:\"enter\",value:13,width:1.75,on:!1}],[{symbol:\"shift\",value:16,width:2.25,on:!1},{symbol:\"z\",value:90,width:1,on:!1},{symbol:\"x\",value:88,width:1,on:!1},{symbol:\"c\",value:67,width:1,on:!1},{symbol:\"v\",value:86,width:1,on:!1},{symbol:\"b\",value:66,width:1,on:!1},{symbol:\"n\",value:78,width:1,on:!1},{symbol:\"m\",value:77,width:1,on:!1},{symbol:\",\",value:188,width:1,on:!1},{symbol:\".\",value:190,width:1,on:!1},{symbol:\"/\",value:191,width:1,on:!1},{symbol:\"shift\",value:16,width:2.25,on:!1}],[{symbol:\"fn\",value:10,width:1,on:!1},{symbol:\"ctrl\",value:17,width:1,on:!1},{symbol:\"opt\",value:10,width:1,on:!1},{symbol:\"cmd\",value:10,width:1.25,on:!1},{symbol:\"space\",value:32,width:5,on:!1},{symbol:\"cmd\",value:10,width:1,on:!1},{symbol:\"opt\",value:10,width:1,on:!1},{symbol:\"left\",value:37,width:.81,on:!1},{symbol:\"up\",value:38,width:.81,on:!1},{symbol:\"down\",value:40,width:.81,on:!1},{symbol:\"right\",value:39,width:.81,on:!1}]],this.boundType=this.typekey.bind(this),this.boundUntype=this.untype.bind(this),window.addEventListener(\"keydown\",this.boundType),window.addEventListener(\"keyup\",this.boundUntype),this.init()};util.inherits(typewriter,widget),typewriter.prototype.init=function(){this.keywid=this.GUI.w/14.5,this.keyhgt=this.GUI.h/5,this.draw()},typewriter.prototype.draw=function(){with(this.erase(),this.active?this.context.globalAlpha=1:this.context.globalAlpha=.4,this.context){strokeStyle=this.colors.borderhl,fillStyle=this.colors.accent,lineWidth=1;for(var i=0;i<this.rows.length;i++)for(var currkeyL=0,j=0;j<this.rows[i].length;j++)this.val.key==this.rows[i][j].symbol&&(this.val.on?this.rows[i][j].on=!0:this.rows[i][j].on=!1),drawing.makeRoundRect(this.context,currkeyL,i*this.keyhgt,this.keywid*this.rows[i][j].width,this.keyhgt,4),this.rows[i][j].on?(fillStyle=this.colors.accent,strokeStyle=this.colors.accent,fill(),stroke()):(fillStyle=this.colors.fill,strokeStyle=this.colors.borderhl,fill(),stroke()),currkeyL+=this.keywid*this.rows[i][j].width;this.val.on&&(this.setFont(),fillStyle=this.colors.borderhl,font=this.GUI.h+\"px \"+this.font,fillText(this.val.key,this.GUI.w/2,this.GUI.h/2),globalAlpha=1),this.active||(globalAlpha=.7,fillStyle=this.colors.borderhl,font=this.GUI.h/2+\"px courier\",textAlign=\"center\",textBaseline=\"middle\",fillText(\"inactive\",this.GUI.w/2,this.GUI.h/2))}this.drawLabel()},typewriter.prototype.click=function(t){this.active=!this.active,this.draw()},typewriter.prototype.typekey=function(t){if(this.active){for(var e=t.which,i=0;i<this.rows.length;i++)for(var s=0;s<this.rows[i].length;s++)if(e==this.rows[i][s].value){this.val.key=this.rows[i][s].symbol,this.val.on=1,this.val.ascii=t.which,this.transmit(this.val);break}this.draw()}},typewriter.prototype.untype=function(t){if(this.active){for(var e=t.which,i=0;i<this.rows.length;i++)for(var s=0;s<this.rows[i].length;s++)if(e==this.rows[i][s].value){this.val.key=this.rows[i][s].symbol,this.val.on=0,this.val.ascii=t.which,this.transmit(this.val);break}this.draw()}},typewriter.prototype.customDestroy=function(){window.removeEventListener(\"keydown\",this.boundType),window.removeEventListener(\"keyup\",this.boundUntype)}},function(module,exports,__webpack_require__){var math=__webpack_require__(2),util=__webpack_require__(0),widget=__webpack_require__(1),vinyl=module.exports=function(t){this.defaultSize={width:100,height:100},widget.call(this,t),this.circleSize,this.speed=.05,this.defaultspeed=.05,this.rotation=0,this.hasMovedOnce=!1,this.lockResize=!0,this.val={speed:0},this.init(),nx.aniItems.push(this.spin.bind(this))};util.inherits(vinyl,widget),vinyl.prototype.init=function(){this.circleSize=Math.min(this.center.x,this.center.y)-this.lineWidth,this.draw()},vinyl.prototype.draw=function(){with(this.erase(),this.context)strokeStyle=this.colors.border,fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h),beginPath(),fillStyle=this.colors.black,arc(this.center.x,this.center.y,this.circleSize-5,0,2*Math.PI,!0),fill(),closePath(),beginPath(),fillStyle=this.colors.accent,arc(this.center.x,1*this.center.y,this.circleSize/4,0,2*Math.PI,!1),fill(),closePath(),beginPath(),globalAlpha=.5,fillStyle=this.colors.fill,arc(this.center.x,this.center.y,this.circleSize,this.rotation,this.rotation+.4,!1),lineTo(this.center.x,this.center.y),arc(this.center.x,this.center.y,this.circleSize,this.rotation+Math.PI,this.rotation+Math.PI+.4,!1),lineTo(this.center.x,this.center.y),fill(),globalAlpha=1,closePath(),beginPath(),fillStyle=this.colors.white,arc(this.center.x,1*this.center.y,this.circleSize/16,0,2*Math.PI,!1),fill(),closePath();this.drawLabel()},vinyl.prototype.click=function(t){this.hasMovedOnce=!1,this.lastRotation=this.rotation,this.grabAngle=this.rotation%(2*Math.PI),this.grabPos=math.toPolar(this.clickPos.x-this.center.x,this.clickPos.y-this.center.y).angle},vinyl.prototype.move=function(){this.hasMovedOnce||(this.hasMovedOnce=!0,this.grabAngle=this.rotation%(2*Math.PI),this.grabPos=math.toPolar(this.clickPos.x-this.center.x,this.clickPos.y-this.center.y).angle),this.rotation=math.toPolar(this.clickPos.x-this.center.x,this.clickPos.y-this.center.y).angle+this.grabAngle-this.grabPos},vinyl.prototype.release=function(){this.speed=(this.rotation-this.lastRotation+(this.lastRotation-this.lastRotation2))/2},vinyl.prototype.spin=function(){this.clicked?this.speed/=1.1:this.speed=.9*this.speed+.1*this.defaultspeed,this.val.speed=20*(this.rotation-this.lastRotation),this.lastRotation2=this.lastRotation,this.lastRotation=this.rotation,this.rotation+=this.speed,this.draw(),this.transmit(this.val)},vinyl.prototype.customDestroy=function(){nx.removeAni(this.spin.bind(this))}},function(module,exports,__webpack_require__){var util=__webpack_require__(0),widget=__webpack_require__(1),math=__webpack_require__(2),waveform=module.exports=function(t){this.defaultSize={width:400,height:125},widget.call(this,t),this.val={start:0,stop:0,size:0,starttime:0,stoptime:0,looptime:0},this.handle,this.relhandle,this.cap,this.firsttouch=\"start\",this.buffer=[],nx.isMobile?this.definition=3:this.definition=1,this.pieces=!1,this.channels=1,this.rawbuffer=[],this.times=[{dur:10,format:1},{dur:50,format:1},{dur:100,format:1},{dur:200,format:1},{dur:500,format:1},{dur:1e3,format:1},{dur:2e3,format:1},{dur:5e3,format:1},{dur:1e4,format:3},{dur:15e3,format:3},{dur:6e4,format:3},{dur:12e4,format:3},{dur:3e5,format:3},{dur:6e5,format:3}],this.timescale=!1,this.mode=\"area\",this.touchdown=new Object,this.init()};util.inherits(waveform,widget),waveform.prototype.init=function(){this.pieces=~~(this.GUI.w/this.definition),this.draw()},waveform.prototype.setBuffer=function(t){for(this.channels=t.numberOfChannels,this.duration=t.duration,this.sampleRate=t.sampleRate,this.waveHeight=this.GUI.h/this.channels,this.durationMS=1e3*this.duration,this.timescale=0;~~(this.durationMS/this.times[this.timescale].dur)>7&&this.timescale<this.times.length;)this.timescale++;this.timescale=this.times[this.timescale],this.rawbuffer=[],this.buffer=[];for(var e=0;e<this.channels;e++){this.rawbuffer.push(t.getChannelData(0)),this.buffer.push([]);for(var i=1+~~(this.rawbuffer[0].length/(5*this.sampleRate)),s=~~(this.rawbuffer[e].length/this.pieces),n=0,o=0,r=0,a=0;a<this.rawbuffer[e].length;a+=i)this.rawbuffer[e][a]>0?n=Math.max(n,this.rawbuffer[e][a]):o=Math.min(o,this.rawbuffer[e][a]),a>r*s&&(this.buffer[e].push([n,o]),r++,o=0,n=0)}this.val.start&&this.val.stop,this.val.starttime=Math.round(this.val.start*this.durationMS),this.val.stoptime=Math.round(this.val.stop*this.durationMS),this.val.looptime=Math.round(this.val.size*this.durationMS),this.draw()},waveform.prototype.select=function(t,e){this.val.start=math.clip(t/this.durationMS,0,1),this.val.stop=math.clip(e/this.durationMS,0,1),this.val.size=this.val.stop-this.val.start,this.val.starttime=t,this.val.stoptime=e,this.val.looptime=t-e,this.transmit(this.val),this.draw()},waveform.prototype.draw=function(){with(this.context){fillStyle=this.colors.fill,fillRect(0,0,this.GUI.w,this.GUI.h);for(var i=0;i<this.buffer.length;i++){fillStyle=this.colors.black,this.waveTop=i*this.waveHeight,this.waveCenter=this.waveTop+this.waveHeight/2;for(var j=0;j<this.buffer[i].length;j++){var ht1=this.waveCenter-this.buffer[i][j][0]*this.waveHeight,ht2=this.waveCenter+Math.abs(this.buffer[i][j][1]*this.waveHeight);ht2-=ht1,fillRect(j*this.definition,ht1,this.definition,ht2)}this.buffer[i]}if(globalAlpha=.3,fillStyle=this.colors.border,fillRect(0,0,this.GUI.w,16),globalAlpha=1,textBaseline=\"middle\",textAlign=\"left\",fontSize=\"8px\",this.timescale)for(var i=1;i<this.durationMS/this.timescale.dur;i++){var x=i*this.timescale.dur/this.durationMS;x*=this.GUI.w,fillStyle=this.colors.border,fillRect(x,0,1,this.GUI.h),fillStyle=this.colors.black,globalAlpha=.6,fillText(this.msToTime(i*this.timescale.dur,this.timescale.format),x+5,8),globalAlpha=1}var x1=this.val.start*this.GUI.w,y1=0,x2=this.val.stop*this.GUI.w,y2=this.GUI.h;if(fillStyle=this.colors.accent,strokeStyle=this.colors.accent,lineWidth=2,globalAlpha=.3,fillRect(x1,0,x2-x1,y2-0),globalAlpha=.7,strokeRect(x1,-2,x2-x1,y2-0+4),this.durationMS&&this.val.looptime){this.val.size=this.val.stop-this.val.start,textAlign=\"center\";var dur=this.val.looptime;dur>1e3?(dur/=1e3,math.prune(dur,2),dur+=\" s\"):(math.prune(dur,0),dur+=\" ms\"),fillText(dur,x1+(x2-x1)/2,this.GUI.h/2)}globalAlpha=1}},waveform.prototype.msToTime=function(t,e){var e=e||2,i=~~(t/1e3),s=i%60;i=(i-s)/60;var n=i%60,o=t%1e3;return s=s<10&&n?s+\"0\":s,1==e?s+\".\"+o:2==e?n+\":\"+s+\".\"+o:3==e?n+\":\"+s:void 0},waveform.prototype.click=function(){\"edge\"==this.mode?Math.abs(this.clickPos.x-this.val.start*this.GUI.w)<Math.abs(this.clickPos.x-this.val.stop*this.GUI.w)?this.firsttouch=\"start\":this.firsttouch=\"stop\":\"area\"==this.mode&&(this.touchdown={x:this.clickPos.x,y:this.clickPos.y},this.startval=new Object,this.startval.size=this.val.stop-this.val.start,this.startval.loc=this.val.start+this.startval.size/2),this.move()},waveform.prototype.move=function(){if(\"edge\"==this.mode)\"start\"==this.firsttouch?(this.val.start=this.clickPos.x/this.GUI.w,this.clickPos.touches.length>1&&(this.val.stop=this.clickPos.touches[1].x/this.GUI.w)):(this.val.stop=this.clickPos.x/this.GUI.w,this.clickPos.touches.length>1&&(this.val.start=this.clickPos.touches[1].x/this.GUI.w)),this.val.stop<this.val.start&&(this.tempstart=this.val.start,this.val.start=this.val.stop,this.val.stop=this.tempstart,\"start\"==this.firsttouch?this.firsttouch=\"stop\":this.firsttouch=\"start\");else if(\"area\"==this.mode){var t=this.clickPos.x/this.GUI.w,e=(this.touchdown.y-this.clickPos.y)/this.GUI.h;e/=4;var i=this.startval.size+e;i=math.clip(i,.001,1),this.val={start:t-i/2,stop:t+i/2}}this.val.start=math.clip(this.val.start,0,1),this.val.stop=math.clip(this.val.stop,0,1),this.val.size=math.clip(Math.abs(this.val.stop-this.val.start),0,1),this.durationMS&&(this.val.starttime=Math.round(this.val.start*this.durationMS),this.val.stoptime=Math.round(this.val.stop*this.durationMS),this.val.looptime=Math.round(this.val.size*this.durationMS)),this.transmit(this.val),this.draw()}},function(t,e){function i(){throw new Error(\"setTimeout has not been defined\")}function s(){throw new Error(\"clearTimeout has not been defined\")}function n(t){if(c===setTimeout)return setTimeout(t,0);if((c===i||!c)&&setTimeout)return c=setTimeout,setTimeout(t,0);try{return c(t,0)}catch(e){try{return c.call(null,t,0)}catch(e){return c.call(this,t,0)}}}function o(t){if(u===clearTimeout)return clearTimeout(t);if((u===s||!u)&&clearTimeout)return u=clearTimeout,clearTimeout(t);try{return u(t)}catch(e){try{return u.call(null,t)}catch(e){return u.call(this,t)}}}function r(){y&&d&&(y=!1,d.length?f=d.concat(f):_=-1,f.length&&a())}function a(){if(!y){var t=n(r);y=!0;for(var e=f.length;e;){for(d=f,f=[];++_<e;)d&&d[_].run();_=-1,e=f.length}d=null,y=!1,o(t)}}function h(t,e){this.fun=t,this.array=e}function l(){}var c,u,p=t.exports={};!function(){try{c=\"function\"==typeof setTimeout?setTimeout:i}catch(t){c=i}try{u=\"function\"==typeof clearTimeout?clearTimeout:s}catch(t){u=s}}();var d,f=[],y=!1,_=-1;p.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)e[i-1]=arguments[i];f.push(new h(t,e)),1!==f.length||y||n(a)},h.prototype.run=function(){this.fun.apply(null,this.array)},p.title=\"browser\",p.browser=!0,p.env={},p.argv=[],p.version=\"\",p.versions={},p.on=l,p.addListener=l,p.once=l,p.off=l,p.removeListener=l,p.removeAllListeners=l,p.emit=l,p.binding=function(t){throw new Error(\"process.binding is not supported\")},p.cwd=function(){return\"/\"},p.chdir=function(t){throw new Error(\"process.chdir is not supported\")},p.umask=function(){return 0}},function(t,e){\"function\"==typeof Object.create?t.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,e){t.super_=e;var i=function(){};i.prototype=e.prototype,t.prototype=new i,t.prototype.constructor=t}},function(t,e){t.exports=function(t){return t&&\"object\"==typeof t&&\"function\"==typeof t.copy&&\"function\"==typeof t.fill&&\"function\"==typeof t.readUInt8}},function(t,e,i){var s;!function(){function n(t,e,i){return t.call.apply(t.bind,arguments)}function o(t,e,i){if(!t)throw Error();if(2<arguments.length){var s=Array.prototype.slice.call(arguments,2);return function(){var i=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(i,s),t.apply(e,i)}}return function(){return t.apply(e,arguments)}}function r(t,e,i){return r=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf(\"native code\")?n:o,r.apply(null,arguments)}function a(t,e){this.a=t,this.m=e||t,this.c=this.m.document}function h(t,e,i,s){if(e=t.c.createElement(e),i)for(var n in i)i.hasOwnProperty(n)&&(\"style\"==n?e.style.cssText=i[n]:e.setAttribute(n,i[n]));return s&&e.appendChild(t.c.createTextNode(s)),e}function l(t,e,i){t=t.c.getElementsByTagName(e)[0],t||(t=document.documentElement),t.insertBefore(i,t.lastChild)}function c(t){t.parentNode&&t.parentNode.removeChild(t)}function u(t,e,i){e=e||[],i=i||[];for(var s=t.className.split(/\\s+/),n=0;n<e.length;n+=1){for(var o=!1,r=0;r<s.length;r+=1)if(e[n]===s[r]){o=!0;break}o||s.push(e[n])}for(e=[],n=0;n<s.length;n+=1){for(o=!1,r=0;r<i.length;r+=1)if(s[n]===i[r]){o=!0;break}o||e.push(s[n])}t.className=e.join(\" \").replace(/\\s+/g,\" \").replace(/^\\s+|\\s+$/,\"\")}function p(t,e){for(var i=t.className.split(/\\s+/),s=0,n=i.length;s<n;s++)if(i[s]==e)return!0;return!1}function d(t){if(\"string\"==typeof t.f)return t.f;var e=t.m.location.protocol;return\"about:\"==e&&(e=t.a.location.protocol),\"https:\"==e?\"https:\":\"http:\"}function f(t){return t.m.location.hostname||t.a.location.hostname}function y(t,e,i){function s(){a&&n&&o&&(a(r),a=null)}e=h(t,\"link\",{rel:\"stylesheet\",href:e,media:\"all\"});var n=!1,o=!0,r=null,a=i||null;at?(e.onload=function(){n=!0,s()},e.onerror=function(){n=!0,r=Error(\"Stylesheet failed to load\"),s()}):setTimeout(function(){n=!0,s()},0),l(t,\"head\",e)}function _(t,e,i,s){var n=t.c.getElementsByTagName(\"head\")[0];if(n){var o=h(t,\"script\",{src:e}),r=!1;return o.onload=o.onreadystatechange=function(){r||this.readyState&&\"loaded\"!=this.readyState&&\"complete\"!=this.readyState||(r=!0,i&&i(null),o.onload=o.onreadystatechange=null,\"HEAD\"==o.parentNode.tagName&&n.removeChild(o))},n.appendChild(o),setTimeout(function(){r||(r=!0,i&&i(Error(\"Script load timeout\")))},s||5e3),o}return null}function m(){this.a=0,this.c=null}function v(t){return t.a++,function(){t.a--,w(t)}}function g(t,e){t.c=e,w(t)}function w(t){0==t.a&&t.c&&(t.c(),t.c=null)}function b(t){this.a=t||\"-\"}function x(t,e){this.c=t,this.f=4,this.a=\"n\";var i=(e||\"n4\").match(/^([nio])([1-9])$/i);i&&(this.a=i[1],this.f=parseInt(i[2],10))}function S(t){return P(t)+\" \"+t.f+\"00 300px \"+T(t.c)}function T(t){var e=[];t=t.split(/,\\s*/);for(var i=0;i<t.length;i++){var s=t[i].replace(/['\"]/g,\"\");-1!=s.indexOf(\" \")||/^\\d/.test(s)?e.push(\"'\"+s+\"'\"):e.push(s)}return e.join(\",\")}function k(t){return t.a+t.f}function P(t){var e=\"normal\";return\"o\"===t.a?e=\"oblique\":\"i\"===t.a&&(e=\"italic\"),e}function O(t){var e=4,i=\"n\",s=null;return t&&((s=t.match(/(normal|oblique|italic)/i))&&s[1]&&(i=s[1].substr(0,1).toLowerCase()),(s=t.match(/([1-9]00|normal|bold)/i))&&s[1]&&(/bold/i.test(s[1])?e=7:/[1-9]00/.test(s[1])&&(e=parseInt(s[1].substr(0,1),10)))),i+e}function A(t,e){this.c=t,this.f=t.m.document.documentElement,this.h=e,this.a=new b(\"-\"),this.j=!1!==e.events,this.g=!1!==e.classes}function M(t){t.g&&u(t.f,[t.a.c(\"wf\",\"loading\")]),q(t,\"loading\")}function I(t){if(t.g){var e=p(t.f,t.a.c(\"wf\",\"active\")),i=[],s=[t.a.c(\"wf\",\"loading\")];e||i.push(t.a.c(\"wf\",\"inactive\")),u(t.f,i,s)}q(t,\"inactive\")}function q(t,e,i){t.j&&t.h[e]&&(i?t.h[e](i.c,k(i)):t.h[e]())}function E(){this.c={}}function F(t,e,i){var s,n=[];for(s in e)if(e.hasOwnProperty(s)){var o=t.c[s];o&&n.push(o(e[s],i))}return n}function U(t,e){this.c=t,this.f=e,this.a=h(this.c,\"span\",{\"aria-hidden\":\"true\"},this.f)}function G(t){l(t.c,\"body\",t.a)}function R(t){return\"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:\"+T(t.c)+\";font-style:\"+P(t)+\";font-weight:\"+t.f+\"00;\"}function C(t,e,i,s,n,o){this.g=t,this.j=e,this.a=s,this.c=i,this.f=n||3e3,this.h=o||void 0}function j(t,e,i,s,n,o,r){this.v=t,this.B=e,this.c=i,this.a=s,this.s=r||\"BESbswy\",this.f={},this.w=n||3e3,this.u=o||null,this.o=this.j=this.h=this.g=null,this.g=new U(this.c,this.s),this.h=new U(this.c,this.s),this.j=new U(this.c,this.s),this.o=new U(this.c,this.s),t=new x(this.a.c+\",serif\",k(this.a)),t=R(t),this.g.a.style.cssText=t,t=new x(this.a.c+\",sans-serif\",k(this.a)),t=R(t),this.h.a.style.cssText=t,t=new x(\"serif\",k(this.a)),t=R(t),this.j.a.style.cssText=t,t=new x(\"sans-serif\",k(this.a)),t=R(t),this.o.a.style.cssText=t,G(this.g),G(this.h),G(this.j),G(this.o)}function L(){if(null===lt){var t=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent);lt=!!t&&(536>parseInt(t[1],10)||536===parseInt(t[1],10)&&11>=parseInt(t[2],10))}return lt}function z(t,e,i){for(var s in ht)if(ht.hasOwnProperty(s)&&e===t.f[ht[s]]&&i===t.f[ht[s]])return!0;return!1}function B(t){var e,i=t.g.a.offsetWidth,s=t.h.a.offsetWidth;(e=i===t.f.serif&&s===t.f[\"sans-serif\"])||(e=L()&&z(t,i,s)),e?rt()-t.A>=t.w?L()&&z(t,i,s)&&(null===t.u||t.u.hasOwnProperty(t.a.c))?N(t,t.v):N(t,t.B):D(t):N(t,t.v)}function D(t){setTimeout(r(function(){B(this)},t),50)}function N(t,e){setTimeout(r(function(){c(this.g.a),c(this.h.a),c(this.j.a),c(this.o.a),e(this.a)},t),0)}function W(t,e,i){this.c=t,this.a=e,this.f=0,this.o=this.j=!1,this.s=i}function V(t){0==--t.f&&t.j&&(t.o?(t=t.a,t.g&&u(t.f,[t.a.c(\"wf\",\"active\")],[t.a.c(\"wf\",\"loading\"),t.a.c(\"wf\",\"inactive\")]),q(t,\"active\")):I(t.a))}function X(t){this.j=t,this.a=new E,this.h=0,this.f=this.g=!0}function Q(t,e,i,s,n){var o=0==--t.h;(t.f||t.g)&&setTimeout(function(){var t=n||null,a=s||null||{};if(0===i.length&&o)I(e.a);else{e.f+=i.length,o&&(e.j=o);var h,l=[];for(h=0;h<i.length;h++){var c=i[h],p=a[c.c],d=e.a,f=c;if(d.g&&u(d.f,[d.a.c(\"wf\",f.c,k(f).toString(),\"loading\")]),q(d,\"fontloading\",f),d=null,null===ct)if(window.FontFace){var f=/Gecko.*Firefox\\/(\\d+)/.exec(window.navigator.userAgent),y=/OS X.*Version\\/10\\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);ct=f?42<parseInt(f[1],10):!y}else ct=!1;d=ct?new C(r(e.g,e),r(e.h,e),e.c,c,e.s,p):new j(r(e.g,e),r(e.h,e),e.c,c,e.s,t,p),l.push(d)}for(h=0;h<l.length;h++)l[h].start()}},0)}function Y(t,e,i){var s=[],n=i.timeout;M(e);var s=F(t.a,i,t.c),o=new W(t.c,e,n);for(t.h=s.length,e=0,i=s.length;e<i;e++)s[e].load(function(e,i,s){Q(t,o,e,i,s)})}function H(t,e){this.c=t,this.a=e}function Z(t,e,i){var s=d(t.c);return t=(t.a.api||\"fast.fonts.net/jsapi\").replace(/^.*http(s?):(\\/\\/)?/,\"\"),s+\"//\"+t+\"/\"+e+\".js\"+(i?\"?v=\"+i:\"\")}function $(t,e){this.c=t,this.a=e}function J(t,e,i){this.c=t||e+ut,this.a=[],this.f=[],this.g=i||\"\"}function K(t,e){for(var i=e.length,s=0;s<i;s++){var n=e[s].split(\":\");3==n.length&&t.f.push(n.pop());var o=\"\";2==n.length&&\"\"!=n[1]&&(o=\":\"),t.a.push(n.join(o))}}function tt(t){if(0==t.a.length)throw Error(\"No fonts to load!\");if(-1!=t.c.indexOf(\"kit=\"))return t.c;for(var e=t.a.length,i=[],s=0;s<e;s++)i.push(t.a[s].replace(/ /g,\"+\"));return e=t.c+\"?family=\"+i.join(\"%7C\"),0<t.f.length&&(e+=\"&subset=\"+t.f.join(\",\")),0<t.g.length&&(e+=\"&text=\"+encodeURIComponent(t.g)),e}function et(t){this.f=t,this.a=[],this.c={}}function it(t){for(var e=t.f.length,i=0;i<e;i++){var s=t.f[i].split(\":\"),n=s[0].replace(/\\+/g,\" \"),o=[\"n4\"];if(2<=s.length){var r,a=s[1];if(r=[],a)for(var a=a.split(\",\"),h=a.length,l=0;l<h;l++){var c;if(c=a[l],c.match(/^[\\w-]+$/)){var u=yt.exec(c.toLowerCase());if(null==u)c=\"\";else{if(c=u[2],c=null==c||\"\"==c?\"n\":ft[c],null==(u=u[1])||\"\"==u)u=\"4\";else var p=dt[u],u=p||(isNaN(u)?\"4\":u.substr(0,1));c=[c,u].join(\"\")}}else c=\"\";c&&r.push(c)}0<r.length&&(o=r),3==s.length&&(s=s[2],r=[],s=s?s.split(\",\"):r,0<s.length&&(s=pt[s[0]])&&(t.c[n]=s))}for(t.c[n]||(s=pt[n])&&(t.c[n]=s),s=0;s<o.length;s+=1)t.a.push(new x(n,o[s]))}}function st(t,e){this.c=t,this.a=e}function nt(t,e){this.c=t,this.a=e}function ot(t,e){this.c=t,this.f=e,this.a=[]}var rt=Date.now||function(){return+new Date},at=!!window.FontFace;b.prototype.c=function(t){for(var e=[],i=0;i<arguments.length;i++)e.push(arguments[i].replace(/[\\W_]+/g,\"\").toLowerCase());return e.join(this.a)},C.prototype.start=function(){var t=this.c.m.document,e=this,i=rt(),s=new Promise(function(s,n){function o(){rt()-i>=e.f?n():t.fonts.load(S(e.a),e.h).then(function(t){1<=t.length?s():setTimeout(o,25)},function(){n()})}o()}),n=new Promise(function(t,i){setTimeout(i,e.f)});Promise.race([n,s]).then(function(){e.g(e.a)},function(){e.j(e.a)})};var ht={D:\"serif\",C:\"sans-serif\"},lt=null;j.prototype.start=function(){this.f.serif=this.j.a.offsetWidth,this.f[\"sans-serif\"]=this.o.a.offsetWidth,this.A=rt(),B(this)};var ct=null;W.prototype.g=function(t){var e=this.a;e.g&&u(e.f,[e.a.c(\"wf\",t.c,k(t).toString(),\"active\")],[e.a.c(\"wf\",t.c,k(t).toString(),\"loading\"),e.a.c(\"wf\",t.c,k(t).toString(),\"inactive\")]),q(e,\"fontactive\",t),this.o=!0,V(this)},W.prototype.h=function(t){var e=this.a;if(e.g){var i=p(e.f,e.a.c(\"wf\",t.c,k(t).toString(),\"active\")),s=[],n=[e.a.c(\"wf\",t.c,k(t).toString(),\"loading\")];i||s.push(e.a.c(\"wf\",t.c,k(t).toString(),\"inactive\")),u(e.f,s,n)}q(e,\"fontinactive\",t),V(this)},X.prototype.load=function(t){this.c=new a(this.j,t.context||this.j),this.g=!1!==t.events,this.f=!1!==t.classes,Y(this,new A(this.c,t),t)},H.prototype.load=function(t){function e(){if(o[\"__mti_fntLst\"+s]){var i,n=o[\"__mti_fntLst\"+s](),r=[];if(n)for(var a=0;a<n.length;a++){var h=n[a].fontfamily;void 0!=n[a].fontStyle&&void 0!=n[a].fontWeight?(i=n[a].fontStyle+n[a].fontWeight,r.push(new x(h,i))):r.push(new x(h))}t(r)}else setTimeout(function(){e()},50)}var i=this,s=i.a.projectId,n=i.a.version;if(s){var o=i.c.m;_(this.c,Z(i,s,n),function(n){n?t([]):(o[\"__MonotypeConfiguration__\"+s]=function(){return i.a},e())}).id=\"__MonotypeAPIScript__\"+s}else t([])},$.prototype.load=function(t){var e,i,s=this.a.urls||[],n=this.a.families||[],o=this.a.testStrings||{},r=new m;for(e=0,i=s.length;e<i;e++)y(this.c,s[e],v(r));var a=[];for(e=0,i=n.length;e<i;e++)if(s=n[e].split(\":\"),s[1])for(var h=s[1].split(\",\"),l=0;l<h.length;l+=1)a.push(new x(s[0],h[l]));else a.push(new x(s[0]));g(r,function(){t(a,o)})};var ut=\"//fonts.googleapis.com/css\",pt={latin:\"BESbswy\",\"latin-ext\":\"çöüğş\",cyrillic:\"йяЖ\",greek:\"αβΣ\",khmer:\"កខគ\",Hanuman:\"កខគ\"},dt={thin:\"1\",extralight:\"2\",\"extra-light\":\"2\",ultralight:\"2\",\"ultra-light\":\"2\",light:\"3\",regular:\"4\",book:\"4\",medium:\"5\",\"semi-bold\":\"6\",semibold:\"6\",\"demi-bold\":\"6\",demibold:\"6\",bold:\"7\",\"extra-bold\":\"8\",extrabold:\"8\",\"ultra-bold\":\"8\",ultrabold:\"8\",black:\"9\",heavy:\"9\",l:\"3\",r:\"4\",b:\"7\"},ft={i:\"i\",italic:\"i\",n:\"n\",normal:\"n\"},yt=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/,_t={Arimo:!0,Cousine:!0,Tinos:!0};st.prototype.load=function(t){var e=new m,i=this.c,s=new J(this.a.api,d(i),this.a.text),n=this.a.families;K(s,n);var o=new et(n);it(o),y(i,tt(s),v(e)),g(e,function(){t(o.a,o.c,_t)})},nt.prototype.load=function(t){var e=this.a.id,i=this.c.m;e?_(this.c,(this.a.api||\"https://use.typekit.net\")+\"/\"+e+\".js\",function(e){if(e)t([]);else if(i.Typekit&&i.Typekit.config&&i.Typekit.config.fn){e=i.Typekit.config.fn;for(var s=[],n=0;n<e.length;n+=2)for(var o=e[n],r=e[n+1],a=0;a<r.length;a++)s.push(new x(o,r[a]));try{i.Typekit.load({events:!1,classes:!1,async:!0})}catch(t){}t(s)}},2e3):t([])},ot.prototype.load=function(t){var e=this.f.id,i=this.c.m,s=this;e?(i.__webfontfontdeckmodule__||(i.__webfontfontdeckmodule__={}),i.__webfontfontdeckmodule__[e]=function(e,i){for(var n=0,o=i.fonts.length;n<o;++n){var r=i.fonts[n];s.a.push(new x(r.name,O(\"font-weight:\"+r.weight+\";font-style:\"+r.style)))}t(s.a)},_(this.c,d(this.c)+(this.f.api||\"//f.fontdeck.com/s/css/js/\")+f(this.c)+\"/\"+e+\".js\",function(e){e&&t([])})):t([])};var mt=new X(window);mt.a.c.custom=function(t,e){return new $(e,t)},mt.a.c.fontdeck=function(t,e){return new ot(e,t)},mt.a.c.monotype=function(t,e){return new H(e,t)},mt.a.c.typekit=function(t,e){return new nt(e,t)},mt.a.c.google=function(t,e){return new st(e,t)};var vt={load:r(mt.load,mt)};void 0!==(s=function(){return vt}.call(e,i,e,t))&&(t.exports=s)}()},function(t,e){var i;i=function(){return this}();try{i=i||Function(\"return this\")()||(0,eval)(\"this\")}catch(t){\"object\"==typeof window&&(i=window)}t.exports=i}]);\n\n\n// WEBPACK FOOTER //\n// ./bundle.js"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourceRoot":""}
\ No newline at end of file diff --git a/client/index.js b/client/index.js index 85ca15f..35f8290 100644 --- a/client/index.js +++ b/client/index.js @@ -10,7 +10,8 @@ const nx = window.nx const noteCount = browser.isMobile ? 18 : 24 const stepCount = 16 -const cellSize = browser.isMobile ? 22 : 27 +const cellSize = browser.isMobile ? 20 : 27 +const baseTone = browser.isMobile ? 0 : 12 let grid @@ -19,7 +20,7 @@ var loop = new Tone.Sequence(function(time, col){ grid.jumpToCol(col) for (var i = 0; i < noteCount; i++){ if (column[i] === 1){ - const freq = scales.current().index(noteCount - i - 12) + const freq = scales.current().index(noteCount - i - baseTone) kalimba.play(freq) } } @@ -45,18 +46,18 @@ function ready () { buildLabels() grid.on('*', e => ('level' in e) && buildLabels()) - nx.widgets.shiftUp.on('*', e => e.press && shiftUp()) - nx.widgets.shiftDown.on('*', e => e.press && shiftDown()) - nx.widgets.slideUp.on('*', e => e.press && slideUp()) - nx.widgets.slideDown.on('*', e => e.press && slideDown()) - nx.widgets.slideLeft.on('*', e => e.press && slideLeft()) - nx.widgets.slideRight.on('*', e => e.press && slideRight()) - nx.widgets.rotateUp.on('*', e => e.press && rotateVertical(-1)) - nx.widgets.rotateDown.on('*', e => e.press && rotateVertical(1)) - nx.widgets.rotateLeft.on('*', e => e.press && rotateHorizontal(-1)) - nx.widgets.rotateRight.on('*', e => e.press && rotateHorizontal(1)) - nx.widgets.flip.on('*', e => e.press && flip()) - nx.widgets.flop.on('*', e => e.press && flop()) + nx.widgets.shiftUp.on('*', tap(shiftUp)) + nx.widgets.shiftDown.on('*', tap(shiftDown)) + nx.widgets.slideUp.on('*', tap(slideUp)) + nx.widgets.slideDown.on('*', tap(slideDown)) + nx.widgets.slideLeft.on('*', tap(slideLeft)) + nx.widgets.slideRight.on('*', tap(slideRight)) + nx.widgets.rotateUp.on('*', tap(() => rotateVertical(-1))) + nx.widgets.rotateDown.on('*', tap(() => rotateVertical(1))) + nx.widgets.rotateLeft.on('*', tap(() => rotateHorizontal(-1))) + nx.widgets.rotateRight.on('*', tap(() => rotateHorizontal(1))) + nx.widgets.flip.on('*', tap(flip)) + nx.widgets.flop.on('*', tap(flop)) nx.colorize('#f4d142') @@ -68,6 +69,12 @@ function ready () { nx.widgets.tempo.on('*', e => Tone.Transport.bpm.value = nx.widgets.tempo.val.value ) Tone.Transport.start() } +function tap (fn) { + return (e) => { + if (browser.isMobile) fn() + else if (e.press) fn() + } +} function draw () { grid.draw() buildLabels() @@ -78,7 +85,7 @@ function buildLabels () { const subScale = findSubScale() let str = '' for (let i = 0; i < noteCount; i++) { - let index = noteCount - i - 12 + let index = noteCount - i - baseTone let n = mod(index, scaleCount) let ns = (n+1) /* @@ -100,18 +107,18 @@ function findSubScale (notes) { notes = notes || findNotes() const scaleCount = scales.current().scale.length return notes.reduce((acc, n) => { - const scaleNote = mod(noteCount - n - 12, scaleCount) + const scaleNote = mod(noteCount - n - baseTone, scaleCount) if (! acc.includes(scaleNote)) acc.push(scaleNote) return acc }, []).sort() } function shiftUp () { - const originalNotes = findNotes() - const subScale = findSubScale( originalNotes ) + const notes = findNotes() + const subScale = findSubScale( notes ) const scaleCount = scales.current().scale.length - assignNotes( mapFunction(originalNotes, (n) => { - let index = noteCount - n - 12 + assignNotes( mapFunction(notes, (n) => { + let index = noteCount - n - baseTone let note = mod(index, scaleCount) let scaleIndex = subScale.indexOf(note) + 1 let octave = Math.floor(index / scaleCount) @@ -119,15 +126,15 @@ function shiftUp () { scaleIndex -= subScale.length octave += 1 } - return 12 - (subScale[scaleIndex] + (octave * scaleCount)) + return noteCount - baseTone - (subScale[scaleIndex] + (octave * scaleCount)) })) } function shiftDown () { - const originalNotes = findNotes() - const subScale = findSubScale( originalNotes ) + const notes = findNotes() + const subScale = findSubScale( notes ) const scaleCount = scales.current().scale.length - assignNotes( mapFunction(originalNotes, (n) => { - let index = noteCount - n - 12 + assignNotes( mapFunction(notes, (n) => { + let index = noteCount - n - baseTone let note = mod(index, scaleCount) let scaleIndex = subScale.indexOf(note) - 1 let octave = Math.floor(index / scaleCount) @@ -135,7 +142,7 @@ function shiftDown () { scaleIndex += subScale.length octave -= 1 } - return 12 - (subScale[scaleIndex] + (octave * scaleCount)) + return noteCount - baseTone - (subScale[scaleIndex] + (octave * scaleCount)) })) } function slideUp () { @@ -7,8 +7,6 @@ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 13px; transition: background-color 100ms; - user-select: none; - overflow: hidden; background-image: url(http://i.asdf.us/im/84/imBreak_1340193016_tumblr_m5vynpMYYg1qiluqao1_500_.png); background-position: top right; background-repeat: no-repeat; @@ -17,22 +15,22 @@ div { display: inline-block; } #labels { - width: 21px; + width: 20px; line-height: 27px; position: relative; top: -3px; } -#scale_list { - margin-left: 20px; -} -#scale_list div { - display: block; - cursor: pointer; -} -#scale_list .selected { - font-weight: bold; +.desktop body { + user-select: none; } @media only screen and (max-device-width: 800px) { + html,body { + margin: 0; + padding: 0; + } + div { + display: block; + } #labels { display: none; } @@ -86,8 +84,6 @@ div { <canvas nx="button" label="flip ↕" id="flip"></canvas> <canvas nx="button" label="flop ↔" id="flop"></canvas> </div> -<br> -<div id='scale_list'></div> </body> <script> var s = document.createElement('script'); |
