From d2b7517c5007205a4cf4df1e42d05ae09509a8dd Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 27 Apr 2017 14:38:28 -0400 Subject: making it work on the phone --- bundle.js | 2 +- bundle.js.map | 2 +- client/index.js | 59 ++++++++++++++++++++++++++++++++------------------------- index.html | 24 ++++++++++------------- 4 files changed, 45 insertions(+), 42 deletions(-) diff --git a/bundle.js b/bundle.js index 8b97153..5efadd5 100644 --- a/bundle.js +++ b/bundle.js @@ -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;h1)for(var t=arguments[0],e=1;e0)for(var t=this,e=0;e0)for(var t=0;t0;){t=t.trim();var s=function(t,e){for(var i=["_binaryExpressions","_unaryExpressions","_primaryExpressions","_syntaxGlue"],s=0;s0){if(s+=1===r?e[n]:r.toString()+"*"+e[n],(t-=r*o)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;n1&&(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+10&&this._timeline[e-1].time=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(;et)return n;o.time>t?s=n:o.time0){for(var n=0;n=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}),ee)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(s0){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;i0;){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;tthis._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;i0)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;si.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=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;ethis.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>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;os&&i=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;e0;){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;n0}}),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;o0&&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;sthis.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=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=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._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;s1){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;i0){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=this._startTime&&e0?(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;ie&&(o.voice.triggerRelease(e),o.release=e)}return this},t.PolySynth.prototype.set=function(t,e,i){for(var s=0;st&&(i.release=t,i.voice.triggerRelease(t))}return this},t.PolySynth.prototype.dispose=function(){t.Instrument.prototype.dispose.call(this);for(var e=0;en)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;s0?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;h0&&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"+h+"
":s+=h+"
"}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;nroot*s;)e/=s,i+=1;for(var o=0;on[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;h1)for(var t=arguments[0],e=1;e0)for(var t=this,e=0;e0)for(var t=0;t0;){t=t.trim();var s=function(t,e){for(var i=["_binaryExpressions","_unaryExpressions","_primaryExpressions","_syntaxGlue"],s=0;s0){if(s+=1===r?e[n]:r.toString()+"*"+e[n],(t-=r*o)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;n1&&(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+10&&this._timeline[e-1].time=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(;et)return n;o.time>t?s=n:o.time0){for(var n=0;n=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}),ee)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(s0){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;i0;){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;tthis._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;i0)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;si.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=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;ethis.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>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;os&&i=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;e0;){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;n0}}),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;o0&&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;sthis.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=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=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._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;s1){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;i0){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=this._startTime&&e0?(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;ie&&(o.voice.triggerRelease(e),o.release=e)}return this},t.PolySynth.prototype.set=function(t,e,i){for(var s=0;st&&(i.release=t,i.voice.triggerRelease(t))}return this},t.PolySynth.prototype.dispose=function(){t.Instrument.prototype.dispose.call(this);for(var e=0;en)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;s0?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;h0&&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"+a+"
":s+=a+"
"}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;nroot*s;)e/=s,i+=1;for(var o=0;on[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-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=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=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;as&&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;ie&&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;ne&&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.xe.y&&t.y1||\"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;h1)for(var t=arguments[0],e=1;e0)for(var t=this,e=0;e0)for(var t=0;t0;){t=t.trim();var s=function(t,e){for(var i=[\"_binaryExpressions\",\"_unaryExpressions\",\"_primaryExpressions\",\"_syntaxGlue\"],s=0;s0){if(s+=1===r?e[n]:r.toString()+\"*\"+e[n],(t-=r*o)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;n1&&(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+10&&this._timeline[e-1].time=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(;et)return n;o.time>t?s=n:o.time0){for(var n=0;n=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}),ee)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(s0){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;i0;){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;tthis._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;i0)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;si.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=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;ethis.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>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;os&&i=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;e0;){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;n0}}),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;o0&&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;sthis.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=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=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._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;s1){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;i0){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=this._startTime&&e0?(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;ie&&(o.voice.triggerRelease(e),o.release=e)}return this},t.PolySynth.prototype.set=function(t,e,i){for(var s=0;st&&(i.release=t,i.voice.triggerRelease(t))}return this},t.PolySynth.prototype.dispose=function(){t.Instrument.prototype.dispose.call(this);for(var e=0;en)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;s0?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;h0&&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\"+h+\"
\":s+=h+\"
\"}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;nroot*s;)e/=s,i+=1;for(var o=0;on[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-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;j0&&this.clickPos.y>0&&this.clickPos.x0&&(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.aniStopthis.bgRight-this.nodeSize&&(drawingX[i]=this.bgRight-this.nodeSize),drawingY[i]this.bgBottom-this.nodeSize&&(drawingY[i]=this.bgBottom-this.nodeSize);for(var j=0;j0&&(i=this.val.points[e-1].x),this.val.points.length>e+1&&(s=this.val.points[e+1].x),this.val.points[e].xs&&(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.indexthis.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;ri[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(strengththis.GUI.w-this.nodeSize&&(this.drawingX=this.GUI.w-this.nodeSize),this.drawingYthis.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.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;e1||this.multitouch){this.keysinuse=new Array;for(var e=0;e1||this.multitouch){this.keysinuse=new Array;for(var e=0;e0?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=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=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+13&&(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=.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)\"),ithis.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;t1)for(var e=0;ei+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=1)for(var k=0;k=1){for(var i=0;i',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(drawingXthis.GUI.w-this.nodeSize&&(drawingX=this.GUI.w-this.nodeSize),drawingYthis.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)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',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=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(y1st.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;tthis.GUI.h/(3*this.strings.length)&&this.pluck(t)},string.prototype.release=function(){for(var t=0;t',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;i7&&this.timescale0?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;i1e3?(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)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.stop1)for(var i=1;iparseInt(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=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=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-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=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=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;as&&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;ie&&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;ne&&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.xe.y&&t.y1||\"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;h1)for(var t=arguments[0],e=1;e0)for(var t=this,e=0;e0)for(var t=0;t0;){t=t.trim();var s=function(t,e){for(var i=[\"_binaryExpressions\",\"_unaryExpressions\",\"_primaryExpressions\",\"_syntaxGlue\"],s=0;s0){if(s+=1===r?e[n]:r.toString()+\"*\"+e[n],(t-=r*o)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;n1&&(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+10&&this._timeline[e-1].time=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(;et)return n;o.time>t?s=n:o.time0){for(var n=0;n=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}),ee)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(s0){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;i0;){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;tthis._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;i0)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;si.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=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;ethis.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>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;os&&i=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;e0;){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;n0}}),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;o0&&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;sthis.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=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=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._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;s1){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;i0){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=this._startTime&&e0?(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;ie&&(o.voice.triggerRelease(e),o.release=e)}return this},t.PolySynth.prototype.set=function(t,e,i){for(var s=0;st&&(i.release=t,i.voice.triggerRelease(t))}return this},t.PolySynth.prototype.dispose=function(){t.Instrument.prototype.dispose.call(this);for(var e=0;en)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;s0?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;h0&&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\"+a+\"
\":s+=a+\"
\"}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;nroot*s;)e/=s,i+=1;for(var o=0;on[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-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;j0&&this.clickPos.y>0&&this.clickPos.x0&&(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.aniStopthis.bgRight-this.nodeSize&&(drawingX[i]=this.bgRight-this.nodeSize),drawingY[i]this.bgBottom-this.nodeSize&&(drawingY[i]=this.bgBottom-this.nodeSize);for(var j=0;j0&&(i=this.val.points[e-1].x),this.val.points.length>e+1&&(s=this.val.points[e+1].x),this.val.points[e].xs&&(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.indexthis.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;ri[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(strengththis.GUI.w-this.nodeSize&&(this.drawingX=this.GUI.w-this.nodeSize),this.drawingYthis.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.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;e1||this.multitouch){this.keysinuse=new Array;for(var e=0;e1||this.multitouch){this.keysinuse=new Array;for(var e=0;e0?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=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=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+13&&(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=.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)\"),ithis.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;t1)for(var e=0;ei+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=1)for(var k=0;k=1){for(var i=0;i',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(drawingXthis.GUI.w-this.nodeSize&&(drawingX=this.GUI.w-this.nodeSize),drawingYthis.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)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',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=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(y1st.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;tthis.GUI.h/(3*this.strings.length)&&this.pluck(t)},string.prototype.release=function(){for(var t=0;t',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;i7&&this.timescale0?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;i1e3?(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)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.stop1)for(var i=1;iparseInt(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=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 ('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 () { diff --git a/index.html b/index.html index ff8a807..63a61ef 100644 --- a/index.html +++ b/index.html @@ -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 { -
-