From 8009590c18b72ae64b3d6086c6d47daee97ad9ff Mon Sep 17 00:00:00 2001 From: Tom Hodson Date: Mon, 16 Nov 2020 12:07:28 +0100 Subject: [PATCH] update --- HappyBirthdaySophie/birthday.png | Bin 0 -> 45446 bytes HappyBirthdaySophie/index.html | 7 ++- HappyBirthdaySophie/p5.sound.min.js | 3 - HappyBirthdaySophie/sketch.js | 83 ++++++++++++++-------------- HappyBirthdaySophie/style.css | 10 +++- 5 files changed, 53 insertions(+), 50 deletions(-) create mode 100644 HappyBirthdaySophie/birthday.png delete mode 100644 HappyBirthdaySophie/p5.sound.min.js diff --git a/HappyBirthdaySophie/birthday.png b/HappyBirthdaySophie/birthday.png new file mode 100644 index 0000000000000000000000000000000000000000..f13c46ee36f70004f2b31c4ad46cfde1ebce40d5 GIT binary patch literal 45446 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%0DQK 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 z�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 Z+=3b9IqVi=A&3WlG*ony%aklb{s)rWg;M|k literal 0 HcmV?d00001 diff --git a/HappyBirthdaySophie/index.html b/HappyBirthdaySophie/index.html index f815674..3971268 100644 --- a/HappyBirthdaySophie/index.html +++ b/HappyBirthdaySophie/index.html @@ -1,14 +1,15 @@ - + - - +

+ +
diff --git a/HappyBirthdaySophie/p5.sound.min.js b/HappyBirthdaySophie/p5.sound.min.js deleted file mode 100644 index fe65a81..0000000 --- a/HappyBirthdaySophie/p5.sound.min.js +++ /dev/null @@ -1,3 +0,0 @@ -/** [p5.sound] Version: 0.3.12 - 2020-01-06 */ - !function(n){var i={};function o(t){if(i[t])return i[t].exports;var e=i[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,o),e.l=!0,e.exports}o.m=n,o.c=i,o.d=function(t,e,n){o.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},o.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)o.d(n,i,function(t){return e[t]}.bind(null,i));return n},o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,"a",e),e},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},o.p="",o(o.s=31)}([function(t,e,n){var i;void 0===(i=function(){"use strict";function c(t,e){this.isUndef(t)||1===t?this.input=this.context.createGain():1t)this.cancelScheduledValues(t),this.linearRampToValueAtTime(e,t);else{var i=this._searchAfter(t);i&&(this.cancelScheduledValues(t),i.type===u.TimelineSignal.Type.Linear?this.linearRampToValueAtTime(e,t):i.type===u.TimelineSignal.Type.Exponential&&this.exponentialRampToValueAtTime(e,t)),this.setValueAtTime(e,t)}return this},u.TimelineSignal.prototype.linearRampToValueBetween=function(t,e,n){return this.setRampPoint(e),this.linearRampToValueAtTime(t,n),this},u.TimelineSignal.prototype.exponentialRampToValueBetween=function(t,e,n){return this.setRampPoint(e),this.exponentialRampToValueAtTime(t,n),this},u.TimelineSignal.prototype._searchBefore=function(t){return this._events.get(t)},u.TimelineSignal.prototype._searchAfter=function(t){return this._events.getAfter(t)},u.TimelineSignal.prototype.getValueAtTime=function(t){t=this.toSeconds(t);var e=this._searchAfter(t),n=this._searchBefore(t),i=this._initial;if(null===n)i=this._initial;else if(n.type===u.TimelineSignal.Type.Target){var o,r=this._events.getBefore(n.time);o=null===r?this._initial:r.value,i=this._exponentialApproach(n.time,o,n.value,n.constant,t)}else i=n.type===u.TimelineSignal.Type.Curve?this._curveInterpolate(n.time,n.value,n.duration,t):null===e?n.value:e.type===u.TimelineSignal.Type.Linear?this._linearInterpolate(n.time,n.value,e.time,e.value,t):e.type===u.TimelineSignal.Type.Exponential?this._exponentialInterpolate(n.time,n.value,e.time,e.value,t):n.value;return i},u.TimelineSignal.prototype.connect=u.SignalBase.prototype.connect,u.TimelineSignal.prototype._exponentialApproach=function(t,e,n,i,o){return n+(e-n)*Math.exp(-(o-t)/i)},u.TimelineSignal.prototype._linearInterpolate=function(t,e,n,i,o){return e+(o-t)/(n-t)*(i-e)},u.TimelineSignal.prototype._exponentialInterpolate=function(t,e,n,i,o){return(e=Math.max(this._minOutput,e))*Math.pow(i/e,(o-t)/(n-t))},u.TimelineSignal.prototype._curveInterpolate=function(t,e,n,i){var o=e.length;if(t+n<=i)return e[o-1];if(i<=t)return e[0];var r=(i-t)/n,s=Math.floor((o-1)*r),a=Math.ceil((o-1)*r),u=e[s],p=e[a];return a===s?u:this._linearInterpolate(s,u,a,p,r*(o-1))},u.TimelineSignal.prototype.dispose=function(){u.Signal.prototype.dispose.call(this),u.Param.prototype.dispose.call(this),this._events.dispose(),this._events=null},u.TimelineSignal}.apply(e,i))||(t.exports=o)},function(t,e,n){"use strict";var i;void 0===(i=function(t){var e=n(4);return p5.Filter=function(t){e.call(this),this.biquad=this.ac.createBiquadFilter(),this.input.connect(this.biquad),this.biquad.connect(this.wet),t&&this.setType(t),this._on=!0,this._untoggledType=this.biquad.type},p5.Filter.prototype=Object.create(e.prototype),p5.Filter.prototype.process=function(t,e,n,i){t.connect(this.input),this.set(e,n,i)},p5.Filter.prototype.set=function(t,e,n){t&&this.freq(t,n),e&&this.res(e,n)},p5.Filter.prototype.freq=function(t,e){var n=e||0;return t<=0&&(t=1),"number"==typeof t?(this.biquad.frequency.cancelScheduledValues(this.ac.currentTime+.01+n),this.biquad.frequency.exponentialRampToValueAtTime(t,this.ac.currentTime+.02+n)):t&&t.connect(this.biquad.frequency),this.biquad.frequency.value},p5.Filter.prototype.res=function(t,e){var n=e||0;return"number"==typeof t?(this.biquad.Q.value=t,this.biquad.Q.cancelScheduledValues(this.ac.currentTime+.01+n),this.biquad.Q.linearRampToValueAtTime(t,this.ac.currentTime+.02+n)):t&&t.connect(this.biquad.Q),this.biquad.Q.value},p5.Filter.prototype.gain=function(t,e){var n=e||0;return"number"==typeof t?(this.biquad.gain.value=t,this.biquad.gain.cancelScheduledValues(this.ac.currentTime+.01+n),this.biquad.gain.linearRampToValueAtTime(t,this.ac.currentTime+.02+n)):t&&t.connect(this.biquad.gain),this.biquad.gain.value},p5.Filter.prototype.toggle=function(){return this._on=!this._on,!0===this._on?this.biquad.type=this._untoggledType:!1===this._on&&(this.biquad.type="allpass"),this._on},p5.Filter.prototype.setType=function(t){this.biquad.type=t,this._untoggledType=this.biquad.type},p5.Filter.prototype.dispose=function(){e.prototype.dispose.apply(this),this.biquad&&(this.biquad.disconnect(),delete this.biquad)},p5.LowPass=function(){p5.Filter.call(this,"lowpass")},p5.LowPass.prototype=Object.create(p5.Filter.prototype),p5.HighPass=function(){p5.Filter.call(this,"highpass")},p5.HighPass.prototype=Object.create(p5.Filter.prototype),p5.BandPass=function(){p5.Filter.call(this,"bandpass")},p5.BandPass.prototype=Object.create(p5.Filter.prototype),p5.Filter}.call(e,n,e,t))||(t.exports=i)},function(t,e,n){var i,o;i=[n(0),n(7),n(25),n(2),n(9)],void 0===(o=function(e){"use strict";return e.Subtract=function(t){this.createInsOuts(2,0),this._sum=this.input[0]=this.output=new e.Gain,this._neg=new e.Negate,this._param=this.input[1]=new e.Signal(t),this._param.chain(this._neg,this._sum)},e.extend(e.Subtract,e.Signal),e.Subtract.prototype.dispose=function(){return e.prototype.dispose.call(this),this._neg.dispose(),this._neg=null,this._sum.disconnect(),this._sum=null,this._param.dispose(),this._param=null,this},e.Subtract}.apply(e,i))||(t.exports=o)},function(i,o,r){"use strict";(function(t){var e,n;t.TONE_SILENCE_VERSION_LOGGING=!0,e=[r(35),r(12),r(0)],void 0===(n=function(i,t,e){var o=new window.AudioContext;return e.context.dispose(),e.setContext(o),p5.prototype.getAudioContext=function(){return o},p5.prototype.userStartAudio=function(t,e){var n=t;return t instanceof p5.Element?n=t.elt:t instanceof Array&&t[0]instanceof p5.Element&&(n=t.map(function(t){return t.elt})),i(o,n,e)},o}.apply(o,e))||(i.exports=n)}).call(this,r(34))},function(t,e,n){var i,o;i=[n(0)],void 0===(o=function(s){"use strict";return s.Emitter=function(){this._events={}},s.extend(s.Emitter),s.Emitter.prototype.on=function(t,e){for(var n=t.split(/\W+/),i=0;ithis.memory){var n=this.length-this.memory;this._timeline.splice(0,n)}return this},e.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},e.Timeline.prototype.get=function(t){var e=this._search(t);return-1!==e?this._timeline[e]:null},e.Timeline.prototype.peek=function(){return this._timeline[0]},e.Timeline.prototype.shift=function(){return this._timeline.shift()},e.Timeline.prototype.getAfter=function(t){var e=this._search(t);return e+1=t&&(this._timeline=[]);return this},e.Timeline.prototype.cancelBefore=function(t){if(this._timeline.length){var e=this._search(t);0<=e&&(this._timeline=this._timeline.slice(e+1))}return this},e.Timeline.prototype._search=function(t){var e=0,n=this._timeline.length,i=n;if(0t)return o;r.time>t?i=o:r.time=t;)n--;return this._iterate(e,n+1),this},e.Timeline.prototype.forEachAtTime=function(e,n){var t=this._search(e);return-1!==t&&this._iterate(function(t){t.time===e&&n(t)},0,t),this},e.Timeline.prototype.dispose=function(){e.prototype.dispose.call(this),this._timeline=null,this._toRemove=null},e.Timeline}.apply(e,i))||(t.exports=o)},function(t,e,n){var i,o;i=[n(0),n(3),n(2)],void 0===(o=function(t){"use strict";return t.Negate=function(){this._multiply=this.input=this.output=new t.Multiply(-1)},t.extend(t.Negate,t.SignalBase),t.Negate.prototype.dispose=function(){return t.prototype.dispose.call(this),this._multiply.dispose(),this._multiply=null,this},t.Negate}.apply(e,i))||(t.exports=o)},function(t,e,n){var i,o;i=[n(0),n(2),n(3),n(5)],void 0===(o=function(t){"use strict";return t.GreaterThanZero=function(){this._thresh=this.output=new t.WaveShaper(function(t){return t<=0?0:1},127),this._scale=this.input=new t.Multiply(1e4),this._scale.connect(this._thresh)},t.extend(t.GreaterThanZero,t.SignalBase),t.GreaterThanZero.prototype.dispose=function(){return t.prototype.dispose.call(this),this._scale.dispose(),this._scale=null,this._thresh.dispose(),this._thresh=null,this},t.GreaterThanZero}.apply(e,i))||(t.exports=o)},function(t,e,n){var i,o;i=[n(0),n(14),n(66),n(18),n(12)],void 0===(o=function(o){"use strict";return o.Clock=function(){o.Emitter.call(this);var t=this.optionsObject(arguments,["callback","frequency"],o.Clock.defaults);this.callback=t.callback,this._nextTick=0,this._lastState=o.State.Stopped,this.frequency=new o.TimelineSignal(t.frequency,o.Type.Frequency),this._readOnly("frequency"),this.ticks=0,this._state=new o.TimelineState(o.State.Stopped),this._boundLoop=this._loop.bind(this),this.context.on("tick",this._boundLoop)},o.extend(o.Clock,o.Emitter),o.Clock.defaults={callback:o.noOp,frequency:1,lookAhead:"auto"},Object.defineProperty(o.Clock.prototype,"state",{get:function(){return this._state.getValueAtTime(this.now())}}),o.Clock.prototype.start=function(t,e){return t=this.toSeconds(t),this._state.getValueAtTime(t)!==o.State.Started&&this._state.add({state:o.State.Started,time:t,offset:e}),this},o.Clock.prototype.stop=function(t){return t=this.toSeconds(t),this._state.cancel(t),this._state.setStateAtTime(o.State.Stopped,t),this},o.Clock.prototype.pause=function(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)===o.State.Started&&this._state.setStateAtTime(o.State.Paused,t),this},o.Clock.prototype._loop=function(){for(var t=this.now()+this.context.lookAhead+this.context.updateInterval+2*this.context.lag;t>this._nextTick&&this._state;){var e=this._state.getValueAtTime(this._nextTick);if(e!==this._lastState){this._lastState=e;var n=this._state.get(this._nextTick);e===o.State.Started?(this._nextTick=n.time,this.isUndef(n.offset)||(this.ticks=n.offset),this.emit("start",n.time,this.ticks)):e===o.State.Stopped?(this.ticks=0,this.emit("stop",n.time)):e===o.State.Paused&&this.emit("pause",n.time)}var i=this._nextTick;this.frequency&&(this._nextTick+=1/this.frequency.getValueAtTime(this._nextTick),e===o.State.Started&&(this.callback(i),this.ticks++))}},o.Clock.prototype.getStateAtTime=function(t){return t=this.toSeconds(t),this._state.getValueAtTime(t)},o.Clock.prototype.dispose=function(){o.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},o.Clock}.apply(e,i))||(t.exports=o)},function(t,e,i){"use strict";var n;void 0===(n=function(t){var n=i(1),e=i(29),r=i(6).noteToFreq;p5.MonoSynth=function(){e.call(this),this.oscillator=new p5.Oscillator,this.env=new p5.Envelope,this.env.setRange(1,0),this.env.setExp(!0),this.setADSR(.02,.25,.05,.35),this.oscillator.disconnect(),this.oscillator.connect(this.output),this.env.disconnect(),this.env.setInput(this.output.gain),this.oscillator.output.gain.value=1,this.oscillator.start(),this.connect(),n.soundArray.push(this)},p5.MonoSynth.prototype=Object.create(p5.AudioVoice.prototype),p5.MonoSynth.prototype.play=function(t,e,n,i){this.triggerAttack(t,e,~~n),this.triggerRelease(~~n+(i||.15))},p5.MonoSynth.prototype.triggerAttack=function(t,e,n){n=~~n;var i=r(t),o=e||.1;this.oscillator.freq(i,0,n),this.env.ramp(this.output.gain,n,o)},p5.MonoSynth.prototype.triggerRelease=function(t){t=t||0;this.env.ramp(this.output.gain,t,0)},p5.MonoSynth.prototype.setADSR=function(t,e,n,i){this.env.setADSR(t,e,n,i)},Object.defineProperties(p5.MonoSynth.prototype,{attack:{get:function(){return this.env.aTime},set:function(t){this.env.setADSR(t,this.env.dTime,this.env.sPercent,this.env.rTime)}},decay:{get:function(){return this.env.dTime},set:function(t){this.env.setADSR(this.env.aTime,t,this.env.sPercent,this.env.rTime)}},sustain:{get:function(){return this.env.sPercent},set:function(t){this.env.setADSR(this.env.aTime,this.env.dTime,t,this.env.rTime)}},release:{get:function(){return this.env.rTime},set:function(t){this.env.setADSR(this.env.aTime,this.env.dTime,this.env.sPercent,t)}}}),p5.MonoSynth.prototype.amp=function(t,e){var n=e||0;return void 0!==t&&this.oscillator.amp(t,n),this.oscillator.amp().value},p5.MonoSynth.prototype.connect=function(t){var e=t||n.input;this.output.connect(e.input?e.input:e)},p5.MonoSynth.prototype.disconnect=function(){this.output&&this.output.disconnect()},p5.MonoSynth.prototype.dispose=function(){e.prototype.dispose.apply(this),this.env&&this.env.dispose(),this.oscillator&&this.oscillator.dispose()}}.call(e,i,e,t))||(t.exports=n)},function(t,e,i){"use strict";var n;void 0===(n=function(){var n=i(1);return p5.AudioVoice=function(){this.ac=n.audiocontext,this.output=this.ac.createGain(),this.connect(),n.soundArray.push(this)},p5.AudioVoice.prototype.play=function(t,e,n,i){},p5.AudioVoice.prototype.triggerAttack=function(t,e,n){},p5.AudioVoice.prototype.triggerRelease=function(t){},p5.AudioVoice.prototype.amp=function(t,e){},p5.AudioVoice.prototype.connect=function(t){var e=t||n.input;this.output.connect(e.input?e.input:e)},p5.AudioVoice.prototype.disconnect=function(){this.output.disconnect()},p5.AudioVoice.prototype.dispose=function(){this.output&&(this.output.disconnect(),delete this.output)},p5.AudioVoice}.call(e,i,e,t))||(t.exports=n)},function(t,e,n){"use strict";var i;void 0===(i=function(t){var c=n(1),h=n(14),l=n(6).noteToFreq;p5.PolySynth=function(t,e){this.audiovoices=[],this.notes={},this._newest=0,this._oldest=0,this.maxVoices=e||8,this.AudioVoice=void 0===t?p5.MonoSynth:t,this._voicesInUse=new h(0),this.output=c.audiocontext.createGain(),this.connect(),this._allocateVoices(),c.soundArray.push(this)},p5.PolySynth.prototype._allocateVoices=function(){for(var t=0;t= this._length) {\n this._writeIndex = 0;\n } // For excessive frames, the buffer will be overwritten.\n\n\n this._framesAvailable += sourceLength;\n\n if (this._framesAvailable > this._length) {\n this._framesAvailable = this._length;\n }\n }\n /**\n * Pull data out of buffer and fill a given sequence of Float32Arrays.\n *\n * @param {array} arraySequence An array of Float32Arrays.\n */\n\n }, {\n key: "pull",\n value: function pull(arraySequence) {\n // The channel count of arraySequence and the length of each channel must\n // match with this buffer obejct.\n // If the FIFO is completely empty, do nothing.\n if (this._framesAvailable === 0) {\n return;\n }\n\n var destinationLength = arraySequence[0].length; // Transfer data from the internal buffer to the |arraySequence| storage.\n\n for (var i = 0; i < destinationLength; ++i) {\n var readIndex = (this._readIndex + i) % this._length;\n\n for (var channel = 0; channel < this._channelCount; ++channel) {\n arraySequence[channel][i] = this._channelData[channel][readIndex];\n }\n }\n\n this._readIndex += destinationLength;\n\n if (this._readIndex >= this._length) {\n this._readIndex = 0;\n }\n\n this._framesAvailable -= destinationLength;\n\n if (this._framesAvailable < 0) {\n this._framesAvailable = 0;\n }\n }\n }, {\n key: "framesAvailable",\n get: function get() {\n return this._framesAvailable;\n }\n }]);\n\n return RingBuffer;\n }()\n}["default"];\n\nvar RecorderProcessor =\n/*#__PURE__*/\nfunction (_AudioWorkletProcesso) {\n _inherits(RecorderProcessor, _AudioWorkletProcesso);\n\n function RecorderProcessor(options) {\n var _this;\n\n _classCallCheck(this, RecorderProcessor);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(RecorderProcessor).call(this));\n var processorOptions = options.processorOptions || {};\n _this.numOutputChannels = options.outputChannelCount || 2;\n _this.numInputChannels = processorOptions.numInputChannels || 2;\n _this.bufferSize = processorOptions.bufferSize || 1024;\n _this.recording = false;\n\n _this.clear();\n\n _this.port.onmessage = function (event) {\n var data = event.data;\n\n if (data.name === \'start\') {\n _this.record(data.duration);\n } else if (data.name === \'stop\') {\n _this.stop();\n }\n };\n\n return _this;\n }\n\n _createClass(RecorderProcessor, [{\n key: "process",\n value: function process(inputs) {\n if (!this.recording) {\n return true;\n } else if (this.sampleLimit && this.recordedSamples >= this.sampleLimit) {\n this.stop();\n return true;\n }\n\n var input = inputs[0];\n this.inputRingBuffer.push(input);\n\n if (this.inputRingBuffer.framesAvailable >= this.bufferSize) {\n this.inputRingBuffer.pull(this.inputRingBufferArraySequence);\n\n for (var channel = 0; channel < this.numOutputChannels; ++channel) {\n var inputChannelCopy = this.inputRingBufferArraySequence[channel].slice();\n\n if (channel === 0) {\n this.leftBuffers.push(inputChannelCopy);\n\n if (this.numInputChannels === 1) {\n this.rightBuffers.push(inputChannelCopy);\n }\n } else if (channel === 1 && this.numInputChannels > 1) {\n this.rightBuffers.push(inputChannelCopy);\n }\n }\n\n this.recordedSamples += this.bufferSize;\n }\n\n return true;\n }\n }, {\n key: "record",\n value: function record(duration) {\n if (duration) {\n this.sampleLimit = Math.round(duration * sampleRate);\n }\n\n this.recording = true;\n }\n }, {\n key: "stop",\n value: function stop() {\n this.recording = false;\n var buffers = this.getBuffers();\n var leftBuffer = buffers[0].buffer;\n var rightBuffer = buffers[1].buffer;\n this.port.postMessage({\n name: \'buffers\',\n leftBuffer: leftBuffer,\n rightBuffer: rightBuffer\n }, [leftBuffer, rightBuffer]);\n this.clear();\n }\n }, {\n key: "getBuffers",\n value: function getBuffers() {\n var buffers = [];\n buffers.push(this.mergeBuffers(this.leftBuffers));\n buffers.push(this.mergeBuffers(this.rightBuffers));\n return buffers;\n }\n }, {\n key: "mergeBuffers",\n value: function mergeBuffers(channelBuffer) {\n var result = new Float32Array(this.recordedSamples);\n var offset = 0;\n var lng = channelBuffer.length;\n\n for (var i = 0; i < lng; i++) {\n var buffer = channelBuffer[i];\n result.set(buffer, offset);\n offset += buffer.length;\n }\n\n return result;\n }\n }, {\n key: "clear",\n value: function clear() {\n var _this2 = this;\n\n this.leftBuffers = [];\n this.rightBuffers = [];\n this.inputRingBuffer = new RingBuffer(this.bufferSize, this.numInputChannels);\n this.inputRingBufferArraySequence = new Array(this.numInputChannels).fill(null).map(function () {\n return new Float32Array(_this2.bufferSize);\n });\n this.recordedSamples = 0;\n this.sampleLimit = null;\n }\n }]);\n\n return RecorderProcessor;\n}(_wrapNativeSuper(AudioWorkletProcessor));\n\nregisterProcessor(processorNames.recorderProcessor, RecorderProcessor);'},function(t,e,n){"use strict";n.r(e),e.default='function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// import dependencies via preval.require so that they\'re available as values at compile time\nvar processorNames = {\n "recorderProcessor": "recorder-processor",\n "soundFileProcessor": "sound-file-processor",\n "amplitudeProcessor": "amplitude-processor"\n};\nvar RingBuffer = {\n "default":\n /*#__PURE__*/\n function () {\n /**\n * @constructor\n * @param {number} length Buffer length in frames.\n * @param {number} channelCount Buffer channel count.\n */\n function RingBuffer(length, channelCount) {\n _classCallCheck(this, RingBuffer);\n\n this._readIndex = 0;\n this._writeIndex = 0;\n this._framesAvailable = 0;\n this._channelCount = channelCount;\n this._length = length;\n this._channelData = [];\n\n for (var i = 0; i < this._channelCount; ++i) {\n this._channelData[i] = new Float32Array(length);\n }\n }\n /**\n * Getter for Available frames in buffer.\n *\n * @return {number} Available frames in buffer.\n */\n\n\n _createClass(RingBuffer, [{\n key: "push",\n\n /**\n * Push a sequence of Float32Arrays to buffer.\n *\n * @param {array} arraySequence A sequence of Float32Arrays.\n */\n value: function push(arraySequence) {\n // The channel count of arraySequence and the length of each channel must\n // match with this buffer obejct.\n // Transfer data from the |arraySequence| storage to the internal buffer.\n var sourceLength = arraySequence[0].length;\n\n for (var i = 0; i < sourceLength; ++i) {\n var writeIndex = (this._writeIndex + i) % this._length;\n\n for (var channel = 0; channel < this._channelCount; ++channel) {\n this._channelData[channel][writeIndex] = arraySequence[channel][i];\n }\n }\n\n this._writeIndex += sourceLength;\n\n if (this._writeIndex >= this._length) {\n this._writeIndex = 0;\n } // For excessive frames, the buffer will be overwritten.\n\n\n this._framesAvailable += sourceLength;\n\n if (this._framesAvailable > this._length) {\n this._framesAvailable = this._length;\n }\n }\n /**\n * Pull data out of buffer and fill a given sequence of Float32Arrays.\n *\n * @param {array} arraySequence An array of Float32Arrays.\n */\n\n }, {\n key: "pull",\n value: function pull(arraySequence) {\n // The channel count of arraySequence and the length of each channel must\n // match with this buffer obejct.\n // If the FIFO is completely empty, do nothing.\n if (this._framesAvailable === 0) {\n return;\n }\n\n var destinationLength = arraySequence[0].length; // Transfer data from the internal buffer to the |arraySequence| storage.\n\n for (var i = 0; i < destinationLength; ++i) {\n var readIndex = (this._readIndex + i) % this._length;\n\n for (var channel = 0; channel < this._channelCount; ++channel) {\n arraySequence[channel][i] = this._channelData[channel][readIndex];\n }\n }\n\n this._readIndex += destinationLength;\n\n if (this._readIndex >= this._length) {\n this._readIndex = 0;\n }\n\n this._framesAvailable -= destinationLength;\n\n if (this._framesAvailable < 0) {\n this._framesAvailable = 0;\n }\n }\n }, {\n key: "framesAvailable",\n get: function get() {\n return this._framesAvailable;\n }\n }]);\n\n return RingBuffer;\n }()\n}["default"];\n\nvar SoundFileProcessor =\n/*#__PURE__*/\nfunction (_AudioWorkletProcesso) {\n _inherits(SoundFileProcessor, _AudioWorkletProcesso);\n\n function SoundFileProcessor(options) {\n var _this;\n\n _classCallCheck(this, SoundFileProcessor);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(SoundFileProcessor).call(this));\n var processorOptions = options.processorOptions || {};\n _this.bufferSize = processorOptions.bufferSize || 256;\n _this.inputRingBuffer = new RingBuffer(_this.bufferSize, 1);\n _this.inputRingBufferArraySequence = [new Float32Array(_this.bufferSize)];\n return _this;\n }\n\n _createClass(SoundFileProcessor, [{\n key: "process",\n value: function process(inputs) {\n var input = inputs[0]; // we only care about the first input channel, because that contains the position data\n\n this.inputRingBuffer.push([input[0]]);\n\n if (this.inputRingBuffer.framesAvailable >= this.bufferSize) {\n this.inputRingBuffer.pull(this.inputRingBufferArraySequence);\n var inputChannel = this.inputRingBufferArraySequence[0];\n var position = inputChannel[inputChannel.length - 1] || 0;\n this.port.postMessage({\n name: \'position\',\n position: position\n });\n }\n\n return true;\n }\n }]);\n\n return SoundFileProcessor;\n}(_wrapNativeSuper(AudioWorkletProcessor));\n\nregisterProcessor(processorNames.soundFileProcessor, SoundFileProcessor);'},function(t,e,n){"use strict";n.r(e),e.default='function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// import dependencies via preval.require so that they\'re available as values at compile time\nvar processorNames = {\n "recorderProcessor": "recorder-processor",\n "soundFileProcessor": "sound-file-processor",\n "amplitudeProcessor": "amplitude-processor"\n};\nvar RingBuffer = {\n "default":\n /*#__PURE__*/\n function () {\n /**\n * @constructor\n * @param {number} length Buffer length in frames.\n * @param {number} channelCount Buffer channel count.\n */\n function RingBuffer(length, channelCount) {\n _classCallCheck(this, RingBuffer);\n\n this._readIndex = 0;\n this._writeIndex = 0;\n this._framesAvailable = 0;\n this._channelCount = channelCount;\n this._length = length;\n this._channelData = [];\n\n for (var i = 0; i < this._channelCount; ++i) {\n this._channelData[i] = new Float32Array(length);\n }\n }\n /**\n * Getter for Available frames in buffer.\n *\n * @return {number} Available frames in buffer.\n */\n\n\n _createClass(RingBuffer, [{\n key: "push",\n\n /**\n * Push a sequence of Float32Arrays to buffer.\n *\n * @param {array} arraySequence A sequence of Float32Arrays.\n */\n value: function push(arraySequence) {\n // The channel count of arraySequence and the length of each channel must\n // match with this buffer obejct.\n // Transfer data from the |arraySequence| storage to the internal buffer.\n var sourceLength = arraySequence[0].length;\n\n for (var i = 0; i < sourceLength; ++i) {\n var writeIndex = (this._writeIndex + i) % this._length;\n\n for (var channel = 0; channel < this._channelCount; ++channel) {\n this._channelData[channel][writeIndex] = arraySequence[channel][i];\n }\n }\n\n this._writeIndex += sourceLength;\n\n if (this._writeIndex >= this._length) {\n this._writeIndex = 0;\n } // For excessive frames, the buffer will be overwritten.\n\n\n this._framesAvailable += sourceLength;\n\n if (this._framesAvailable > this._length) {\n this._framesAvailable = this._length;\n }\n }\n /**\n * Pull data out of buffer and fill a given sequence of Float32Arrays.\n *\n * @param {array} arraySequence An array of Float32Arrays.\n */\n\n }, {\n key: "pull",\n value: function pull(arraySequence) {\n // The channel count of arraySequence and the length of each channel must\n // match with this buffer obejct.\n // If the FIFO is completely empty, do nothing.\n if (this._framesAvailable === 0) {\n return;\n }\n\n var destinationLength = arraySequence[0].length; // Transfer data from the internal buffer to the |arraySequence| storage.\n\n for (var i = 0; i < destinationLength; ++i) {\n var readIndex = (this._readIndex + i) % this._length;\n\n for (var channel = 0; channel < this._channelCount; ++channel) {\n arraySequence[channel][i] = this._channelData[channel][readIndex];\n }\n }\n\n this._readIndex += destinationLength;\n\n if (this._readIndex >= this._length) {\n this._readIndex = 0;\n }\n\n this._framesAvailable -= destinationLength;\n\n if (this._framesAvailable < 0) {\n this._framesAvailable = 0;\n }\n }\n }, {\n key: "framesAvailable",\n get: function get() {\n return this._framesAvailable;\n }\n }]);\n\n return RingBuffer;\n }()\n}["default"];\n\nvar AmplitudeProcessor =\n/*#__PURE__*/\nfunction (_AudioWorkletProcesso) {\n _inherits(AmplitudeProcessor, _AudioWorkletProcesso);\n\n function AmplitudeProcessor(options) {\n var _this;\n\n _classCallCheck(this, AmplitudeProcessor);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AmplitudeProcessor).call(this));\n var processorOptions = options.processorOptions || {};\n _this.numOutputChannels = options.outputChannelCount || 1;\n _this.numInputChannels = processorOptions.numInputChannels || 2;\n _this.normalize = processorOptions.normalize || false;\n _this.smoothing = processorOptions.smoothing || 0;\n _this.bufferSize = processorOptions.bufferSize || 2048;\n _this.inputRingBuffer = new RingBuffer(_this.bufferSize, _this.numInputChannels);\n _this.outputRingBuffer = new RingBuffer(_this.bufferSize, _this.numOutputChannels);\n _this.inputRingBufferArraySequence = new Array(_this.numInputChannels).fill(null).map(function () {\n return new Float32Array(_this.bufferSize);\n });\n _this.stereoVol = [0, 0];\n _this.stereoVolNorm = [0, 0];\n _this.volMax = 0.001;\n\n _this.port.onmessage = function (event) {\n var data = event.data;\n\n if (data.name === \'toggleNormalize\') {\n _this.normalize = data.normalize;\n } else if (data.name === \'smoothing\') {\n _this.smoothing = Math.max(0, Math.min(1, data.smoothing));\n }\n };\n\n return _this;\n } // TO DO make this stereo / dependent on # of audio channels\n\n\n _createClass(AmplitudeProcessor, [{\n key: "process",\n value: function process(inputs, outputs) {\n var input = inputs[0];\n var output = outputs[0];\n var smoothing = this.smoothing;\n this.inputRingBuffer.push(input);\n\n if (this.inputRingBuffer.framesAvailable >= this.bufferSize) {\n this.inputRingBuffer.pull(this.inputRingBufferArraySequence);\n\n for (var channel = 0; channel < this.numInputChannels; ++channel) {\n var inputBuffer = this.inputRingBufferArraySequence[channel];\n var bufLength = inputBuffer.length;\n var sum = 0;\n\n for (var i = 0; i < bufLength; i++) {\n var x = inputBuffer[i];\n\n if (this.normalize) {\n sum += Math.max(Math.min(x / this.volMax, 1), -1) * Math.max(Math.min(x / this.volMax, 1), -1);\n } else {\n sum += x * x;\n }\n } // ... then take the square root of the sum.\n\n\n var rms = Math.sqrt(sum / bufLength);\n this.stereoVol[channel] = Math.max(rms, this.stereoVol[channel] * smoothing);\n this.volMax = Math.max(this.stereoVol[channel], this.volMax);\n } // calculate stero normalized volume and add volume from all channels together\n\n\n var volSum = 0;\n\n for (var index = 0; index < this.stereoVol.length; index++) {\n this.stereoVolNorm[index] = Math.max(Math.min(this.stereoVol[index] / this.volMax, 1), 0);\n volSum += this.stereoVol[index];\n } // volume is average of channels\n\n\n var volume = volSum / this.stereoVol.length; // normalized value\n\n var volNorm = Math.max(Math.min(volume / this.volMax, 1), 0);\n this.port.postMessage({\n name: \'amplitude\',\n volume: volume,\n volNorm: volNorm,\n stereoVol: this.stereoVol,\n stereoVolNorm: this.stereoVolNorm\n }); // pass input through to output\n\n this.outputRingBuffer.push(this.inputRingBufferArraySequence);\n } // pull 128 frames out of the ring buffer\n // if the ring buffer does not have enough frames, the output will be silent\n\n\n this.outputRingBuffer.pull(output);\n return true;\n }\n }]);\n\n return AmplitudeProcessor;\n}(_wrapNativeSuper(AudioWorkletProcessor));\n\nregisterProcessor(processorNames.amplitudeProcessor, AmplitudeProcessor);'},function(t,e,n){"use strict";var i;function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}void 0===(i=function(t){var a=n(1).audiocontext;void 0!==a.createStereoPanner?(p5.Panner=function(t,e){this.stereoPanner=this.input=a.createStereoPanner(),t.connect(this.stereoPanner),this.stereoPanner.connect(e)},p5.Panner.prototype.pan=function(t,e){var n=e||0,i=a.currentTime+n;this.stereoPanner.pan.linearRampToValueAtTime(t,i)},p5.Panner.prototype.inputChannels=function(){},p5.Panner.prototype.connect=function(t){this.stereoPanner.connect(t)},p5.Panner.prototype.disconnect=function(){this.stereoPanner&&this.stereoPanner.disconnect()}):(p5.Panner=function(t,e,n){this.input=a.createGain(),t.connect(this.input),this.left=a.createGain(),this.right=a.createGain(),this.left.channelInterpretation="discrete",this.right.channelInterpretation="discrete",1this.buffer.duration)throw"jump time out of range";if(e>this.buffer.duration-t)throw"end time out of range";var n=t||0,i=e||void 0;this.isPlaying()&&(this.stop(0),this.play(0,this.playbackRate,this.output.gain.value,n,i))},p5.SoundFile.prototype.channels=function(){return this.buffer.numberOfChannels},p5.SoundFile.prototype.sampleRate=function(){return this.buffer.sampleRate},p5.SoundFile.prototype.frames=function(){return this.buffer.length},p5.SoundFile.prototype.getPeaks=function(t){if(!this.buffer)throw"Cannot load peaks yet, buffer is not loaded";if(t=t||5*window.width,this.buffer){for(var e=this.buffer,n=e.length/t,i=~~(n/10)||1,o=e.numberOfChannels,r=new Float32Array(Math.round(t)),s=0;sr[u])&&(r[u]=h)}return r}},p5.SoundFile.prototype.reverseBuffer=function(){if(!this.buffer)throw"SoundFile is not done loading";var t=this._lastPos/p.sampleRate,e=this.getVolume();this.setVolume(0,.001);for(var n=this.buffer.numberOfChannels,i=0;ie){var r=t[o],s=new c(r,o);n[o]=s,o+=6e3}o++}return n}function m(t){if(isFinite(t)&&0!==t){for(;t<90;)t*=2;for(;180t[r].hi&&r++,o[r]=void 0!==o[r]?(o[r]+n[s])/2:n[s]}return o},p5.FFT.prototype.getOctaveBands=function(t,e){t=t||3;var n=[],i={lo:(e=e||15.625)/Math.pow(2,1/(2*t)),ctr:e,hi:e*Math.pow(2,1/(2*t))};n.push(i);for(var o=c.audiocontext.sampleRate/2;i.hi=this._maxDelay)throw new Error("Delay Time exceeds maximum delay time of "+this._maxDelay+" second.");t.connect(this.input),this.leftDelay.delayTime.setValueAtTime(r,this.ac.currentTime),this.rightDelay.delayTime.setValueAtTime(r,this.ac.currentTime),this._leftGain.gain.value=o,this._rightGain.gain.value=o,i&&(this._leftFilter.freq(i),this._rightFilter.freq(i))},p5.Delay.prototype.delayTime=function(t){"number"!=typeof t?(t.connect(this.leftDelay.delayTime),t.connect(this.rightDelay.delayTime)):(this.leftDelay.delayTime.cancelScheduledValues(this.ac.currentTime),this.rightDelay.delayTime.cancelScheduledValues(this.ac.currentTime),this.leftDelay.delayTime.linearRampToValueAtTime(t,this.ac.currentTime),this.rightDelay.delayTime.linearRampToValueAtTime(t,this.ac.currentTime))},p5.Delay.prototype.feedback=function(t){if(t&&"number"!=typeof t)t.connect(this._leftGain.gain),t.connect(this._rightGain.gain);else{if(1<=t)throw new Error("Feedback value will force a positive feedback loop.");"number"==typeof t&&(this._leftGain.gain.value=t,this._rightGain.gain.value=t)}return this._leftGain.gain.value},p5.Delay.prototype.filter=function(t,e){this._leftFilter.set(t,e),this._rightFilter.set(t,e)},p5.Delay.prototype.setType=function(t){switch(1===t&&(t="pingPong"),this._split.disconnect(),this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._split.connect(this.leftDelay,0),this._split.connect(this.rightDelay,1),t){case"pingPong":this._rightFilter.setType(this._leftFilter.biquad.type),this._leftFilter.output.connect(this._merge,0,0),this._rightFilter.output.connect(this._merge,0,1),this._leftFilter.output.connect(this.rightDelay),this._rightFilter.output.connect(this.leftDelay);break;default:this._leftFilter.output.connect(this._merge,0,0),this._rightFilter.output.connect(this._merge,0,1),this._leftFilter.output.connect(this.leftDelay),this._rightFilter.output.connect(this.rightDelay)}},p5.Delay.prototype.dispose=function(){n.prototype.dispose.apply(this),this._split.disconnect(),this._leftFilter.dispose(),this._rightFilter.dispose(),this._merge.disconnect(),this._leftGain.disconnect(),this._rightGain.disconnect(),this.leftDelay.disconnect(),this.rightDelay.disconnect(),this._split=void 0,this._leftFilter=void 0,this._rightFilter=void 0,this._merge=void 0,this._leftGain=void 0,this._rightGain=void 0,this.leftDelay=void 0,this.rightDelay=void 0}}.call(e,i,e,t))||(t.exports=n)},function(t,e,n){"use strict";var i;void 0===(i=function(t){var p=n(11),e=n(4);p5.Reverb=function(){e.call(this),this._initConvolverNode(),this.input.gain.value=.5,this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse()},p5.Reverb.prototype=Object.create(e.prototype),p5.Reverb.prototype._initConvolverNode=function(){this.convolverNode=this.ac.createConvolver(),this.input.connect(this.convolverNode),this.convolverNode.connect(this.wet)},p5.Reverb.prototype._teardownConvolverNode=function(){this.convolverNode&&(this.convolverNode.disconnect(),delete this.convolverNode)},p5.Reverb.prototype._setBuffer=function(t){this._teardownConvolverNode(),this._initConvolverNode(),this.convolverNode.buffer=t},p5.Reverb.prototype.process=function(t,e,n,i){t.connect(this.input);var o=!1;e&&(this._seconds=e,o=!0),n&&(this._decay=n),i&&(this._reverse=i),o&&this._buildImpulse()},p5.Reverb.prototype.set=function(t,e,n){var i=!1;t&&(this._seconds=t,i=!0),e&&(this._decay=e),n&&(this._reverse=n),i&&this._buildImpulse()},p5.Reverb.prototype._buildImpulse=function(){var t,e,n=this.ac.sampleRate,i=n*this._seconds,o=this._decay,r=this.ac.createBuffer(2,i,n),s=r.getChannelData(0),a=r.getChannelData(1);for(e=0;e=t.parts.length?(t.scoreStep=0,t.onended()):(t.scoreStep=0,t.parts[t.currentPart-1].stop(),t.parts[t.currentPart].start())}p5.prototype.setBPM=function(t,e){for(var n in o=t,i.parts)i.parts[n]&&i.parts[n].setBPM(t,e)},p5.Phrase=function(t,e,n){this.phraseStep=0,this.name=t,this.callback=e,this.sequence=n},p5.Part=function(t,e){this.length=t||0,this.partStep=0,this.phrases=[],this.isPlaying=!1,this.noLoop(),this.tatums=e||.0625,this.metro=new p5.Metro,this.metro._init(),this.metro.beatLength(this.tatums),this.metro.setBPM(o),i.parts.push(this),this.callback=function(){}},p5.Part.prototype.setBPM=function(t,e){this.metro.setBPM(t,e)},p5.Part.prototype.getBPM=function(){return this.metro.getBPM()},p5.Part.prototype.start=function(t){if(!this.isPlaying){this.isPlaying=!0,this.metro.resetSync(this);var e=t||0;this.metro.start(e)}},p5.Part.prototype.loop=function(t){this.looping=!0,this.onended=function(){this.partStep=0};var e=t||0;this.start(e)},p5.Part.prototype.noLoop=function(){this.looping=!1,this.onended=function(){this.stop()}},p5.Part.prototype.stop=function(t){this.partStep=0,this.pause(t)},p5.Part.prototype.pause=function(t){this.isPlaying=!1;var e=t||0;this.metro.stop(e)},p5.Part.prototype.addPhrase=function(t,e,n){var i;if(3===arguments.length)i=new p5.Phrase(t,e,n);else{if(!(t instanceof p5.Phrase))throw"invalid input. addPhrase accepts name, callback, array or a p5.Phrase";i=t}this.phrases.push(i),i.sequence.length>this.length&&(this.length=i.sequence.length)},p5.Part.prototype.removePhrase=function(t){for(var e in this.phrases)this.phrases[e].name===t&&this.phrases.splice(e,1)},p5.Part.prototype.getPhrase=function(t){for(var e in this.phrases)if(this.phrases[e].name===t)return this.phrases[e]},p5.Part.prototype.replaceSequence=function(t,e){for(var n in this.phrases)this.phrases[n].name===t&&(this.phrases[n].sequence=e)},p5.Part.prototype.incrementStep=function(t){this.partStepthis.cutoff&&e>this.threshold&&0