From 392da14eb97b4ca9511e548a1956ed98546ae89a Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Sun, 17 Jan 2016 17:58:38 -0500 Subject: [PATCH 01/25] add env example from Jeff Snyder --- examples/envExp/index.html | 10 ++++ examples/envExp/sketch.js | 118 +++++++++++++++++++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 examples/envExp/index.html create mode 100755 examples/envExp/sketch.js diff --git a/examples/envExp/index.html b/examples/envExp/index.html new file mode 100644 index 00000000..6ec1957c --- /dev/null +++ b/examples/envExp/index.html @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/examples/envExp/sketch.js b/examples/envExp/sketch.js new file mode 100755 index 00000000..34aefe7d --- /dev/null +++ b/examples/envExp/sketch.js @@ -0,0 +1,118 @@ +/** + * @name Note Envelope + * @description

An Envelope is a series of fades, defined + * as time / value pairs. In this example, the envelope + * will be used to "play" a note by controlling the output + * amplitude of an oscillator.

+ * The p5.Oscillator sends its output through + * an internal Web Audio GainNode (p5.Oscillator.output). + * By default, that node has a constant value of 0.5. It can + * be reset with the osc.amp() method. Or, in this example, an + * Envelope takes control of that node, turning the amplitude + * up and down like a volume knob.

+ *

To run this example locally, you will need the + * p5.sound library and a + * sound file.

+ */ +var osc, envelope, fft; +var myPhraseAttack, myPhraseRelease, myPart; +var atPattern = [1, 0]; +var relPattern = [0, 1]; +var scaleArray = [60, 62, 64, 65, 67, 69, 71, 72]; +var note = 0; +var expOrNot = 1; +var startPoint = 0; +var endPoint = 0; +var numWaveforms = 50; + +var audioContext; + +function setup() { + createCanvas(710, 200); + osc = new p5.SinOsc(); + + audioContext = getAudioContext(); + + // Instantiate the envelope with time / value pairs + envelope = new p5.Env(0.1, 0.5, 0.01, 0.0, 0.0, 0.0, 0.0, 0.0); + osc.amp(0.); + osc.start(); + myPhraseAttack = new p5.Phrase('testerAttack', makeSoundAttack, atPattern); + myPhraseRelease = new p5.Phrase('testerRelease', makeSoundRelease, relPattern); + myPart = new p5.Part(); + myPart.addPhrase(myPhraseAttack); + //myPart.addPhrase(myPhraseRelease); + myPart.setBPM(120); + myPart.loop(); + myPart.start(); + fft = new p5.FFT(); + fft.setInput(osc); + masterVolume(0); + endPoint = width / numWaveforms; + noStroke(); + background(20); +} + +function draw() { + + var waveform = fft.waveform(); // analyze the waveform + beginShape(); + strokeWeight(5); + for (var i = 0; i < waveform.length; i++){ + var x = map(i, 0, waveform.length, startPoint, endPoint); + var y = map(waveform[i], -1, 1, height, 0); + vertex(x, y); + } + endShape(); + startPoint = endPoint + 1; + endPoint += (width / numWaveforms); + if (endPoint > width) + { + background(20); + startPoint = 0; + endPoint = (width / numWaveforms); + } + + +} + + +function makeSoundAttack(time, playbackRate) +{ + var midiValue = scaleArray[note]; + var freqValue = midiToFreq(midiValue); + + if (note == 0) + { + // if (expOrNot == 0) + // { + // envelope.setExp(true); + // expOrNot = 1; + // } + // else + // { + // envelope.setExp(false); + // expOrNot = 0; + // } + } + + osc.freq(freqValue * 2, 0, time); + // envelope.play(osc, time); + envelope.triggerAttack(osc, time); + //envelope.triggerRelease(osc); + note = (note + 1) % scaleArray.length; + setTimeout(redrawWaveform, time * 1000.0); + +} + +function makeSoundRelease(time, playbackRate) +{ + envelope.triggerRelease(osc, time); +} + +function redrawWaveform() +{ + background(20); + startPoint = 0; + endPoint = (width / numWaveforms); +} From 6f884c6f645796b5bed3ad2385b86e729309f5df Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Sun, 17 Jan 2016 17:59:09 -0500 Subject: [PATCH 02/25] remove cancelScheduledValues and setCurrentValue from p5.Env --- src/env.js | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/env.js b/src/env.js index 4f0edb13..58cb1705 100644 --- a/src/env.js +++ b/src/env.js @@ -197,10 +197,6 @@ define(function (require) { } } - var currentVal = this.control.getValue(); - this.control.cancelScheduledValues(t); - this.control.linearRampToValueAtTime(currentVal, t); - // attack this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); // decay to decay level @@ -209,9 +205,6 @@ define(function (require) { this.control.linearRampToValueAtTime(this.sLevel, t + this.aTime + this.dTime + this.sTime); // release this.control.linearRampToValueAtTime(this.rLevel, t + this.aTime + this.dTime + this.sTime + this.rTime); - - var clearTime = (t + this.aTime + this.dTime + this.sTime + this.rTime); //* 1000; - }; /** @@ -233,12 +226,6 @@ define(function (require) { this.lastAttack = t; this.wasTriggered = true; - // we should set current value, but this is not working on Firefox - var currentVal = this.control.getValue(); - console.log(currentVal); - this.control.cancelScheduledValues(t); - this.control.linearRampToValueAtTime(currentVal, t); - if (unit) { if (this.connection !== unit) { this.connect(unit); @@ -283,8 +270,6 @@ define(function (require) { } } - this.control.cancelScheduledValues(t); - // ideally would get & set currentValue here, // but this.control._scalar.gain.value not working in firefox From 0b8b2604415e9d2f72a92f420691fbe2ead0eefb Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Sun, 17 Jan 2016 17:59:34 -0500 Subject: [PATCH 03/25] update osc freq to factor in time --- src/oscillator.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/oscillator.js b/src/oscillator.js index 15150137..98f2efdd 100644 --- a/src/oscillator.js +++ b/src/oscillator.js @@ -237,15 +237,22 @@ define(function (require) { var now = p5sound.audiocontext.currentTime; var rampTime = rampTime || 0; var tFromNow = tFromNow || 0; - var currentFreq = this.oscillator.frequency.value; - this.oscillator.frequency.cancelScheduledValues(now); - this.oscillator.frequency.setValueAtTime(currentFreq, now + tFromNow); - if (val > 0 ){ - this.oscillator.frequency.exponentialRampToValueAtTime(val, tFromNow + rampTime + now); + // var currentFreq = this.oscillator.frequency.value; + // this.oscillator.frequency.cancelScheduledValues(now); + + if (rampTime == 0) { + this.oscillator.frequency.cancelScheduledValues(now); + this.oscillator.frequency.setValueAtTime(val, tFromNow + now); } else { - this.oscillator.frequency.linearRampToValueAtTime(val, tFromNow + rampTime + now); + if (val > 0 ){ + this.oscillator.frequency.exponentialRampToValueAtTime(val, tFromNow + rampTime + now); + } else { + this.oscillator.frequency.linearRampToValueAtTime(val, tFromNow + rampTime + now); + } } + + // reset phase if oscillator has a phase if (this.phaseAmount) { this.phase(this.phaseAmount); From 1267cdf231ab433ca7c7cbc31d34cd797b956099 Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Sun, 17 Jan 2016 17:59:38 -0500 Subject: [PATCH 04/25] update libs --- lib/p5.sound.js | 28 +++++++++++----------------- lib/p5.sound.min.js | 6 +++--- 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/lib/p5.sound.js b/lib/p5.sound.js index f063e352..37cc9a4e 100644 --- a/lib/p5.sound.js +++ b/lib/p5.sound.js @@ -1,4 +1,4 @@ -/*! p5.sound.js v0.2.16 2015-12-19 */ +/*! p5.sound.js v0.2.16 2016-01-17 */ (function (root, factory) { if (typeof define === 'function' && define.amd) define('p5.sound', ['p5'], function (p5) { (factory(p5));}); @@ -3755,13 +3755,17 @@ oscillator = function () { var now = p5sound.audiocontext.currentTime; var rampTime = rampTime || 0; var tFromNow = tFromNow || 0; - var currentFreq = this.oscillator.frequency.value; - this.oscillator.frequency.cancelScheduledValues(now); - this.oscillator.frequency.setValueAtTime(currentFreq, now + tFromNow); - if (val > 0) { - this.oscillator.frequency.exponentialRampToValueAtTime(val, tFromNow + rampTime + now); + // var currentFreq = this.oscillator.frequency.value; + // this.oscillator.frequency.cancelScheduledValues(now); + if (rampTime == 0) { + this.oscillator.frequency.cancelScheduledValues(now); + this.oscillator.frequency.setValueAtTime(val, tFromNow + now); } else { - this.oscillator.frequency.linearRampToValueAtTime(val, tFromNow + rampTime + now); + if (val > 0) { + this.oscillator.frequency.exponentialRampToValueAtTime(val, tFromNow + rampTime + now); + } else { + this.oscillator.frequency.linearRampToValueAtTime(val, tFromNow + rampTime + now); + } } // reset phase if oscillator has a phase if (this.phaseAmount) { @@ -4213,9 +4217,6 @@ env = function () { this.connect(unit); } } - var currentVal = this.control.getValue(); - this.control.cancelScheduledValues(t); - this.control.linearRampToValueAtTime(currentVal, t); // attack this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); // decay to decay level @@ -4224,7 +4225,6 @@ env = function () { this.control.linearRampToValueAtTime(this.sLevel, t + this.aTime + this.dTime + this.sTime); // release this.control.linearRampToValueAtTime(this.rLevel, t + this.aTime + this.dTime + this.sTime + this.rTime); - var clearTime = t + this.aTime + this.dTime + this.sTime + this.rTime; }; /** * Trigger the Attack, Decay, and Sustain of the Envelope. @@ -4244,11 +4244,6 @@ env = function () { var t = now + tFromNow; this.lastAttack = t; this.wasTriggered = true; - // we should set current value, but this is not working on Firefox - var currentVal = this.control.getValue(); - console.log(currentVal); - this.control.cancelScheduledValues(t); - this.control.linearRampToValueAtTime(currentVal, t); if (unit) { if (this.connection !== unit) { this.connect(unit); @@ -4284,7 +4279,6 @@ env = function () { this.connect(unit); } } - this.control.cancelScheduledValues(t); // ideally would get & set currentValue here, // but this.control._scalar.gain.value not working in firefox // release based on how much time has passed since this.lastAttack diff --git a/lib/p5.sound.min.js b/lib/p5.sound.min.js index 0dfec241..35e7eea2 100644 --- a/lib/p5.sound.min.js +++ b/lib/p5.sound.min.js @@ -1,5 +1,5 @@ -/*! p5.sound.min.js v0.2.16 2015-12-19 */ +/*! p5.sound.min.js v0.2.16 2016-01-17 */ !function(t,e){"function"==typeof define&&define.amd?define("p5.sound",["p5"],function(t){e(t)}):e("object"==typeof exports?require("../p5"):t.p5)}(this,function(t){var e;e=function(){"use strict";!function(t,e){function i(t){t&&(t.setTargetAtTime||(t.setTargetAtTime=t.setTargetValueAtTime))}return e=e||{},window.hasOwnProperty("webkitAudioContext")&&!window.hasOwnProperty("AudioContext")&&(window.AudioContext=webkitAudioContext,AudioContext.prototype.hasOwnProperty("createGain")||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),AudioContext.prototype.hasOwnProperty("createDelay")||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),AudioContext.prototype.hasOwnProperty("createScriptProcessor")||(AudioContext.prototype.createScriptProcessor=AudioContext.prototype.createJavaScriptNode),AudioContext.prototype.hasOwnProperty("createPeriodicWave")||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),AudioContext.prototype.internal_createGain=AudioContext.prototype.createGain,AudioContext.prototype.createGain=function(){var t=this.internal_createGain();return i(t.gain),t},AudioContext.prototype.internal_createDelay=AudioContext.prototype.createDelay,AudioContext.prototype.createDelay=function(t){var e=t?this.internal_createDelay(t):this.internal_createDelay();return i(e.delayTime),e},AudioContext.prototype.internal_createBufferSource=AudioContext.prototype.createBufferSource,AudioContext.prototype.createBufferSource=function(){var t=this.internal_createBufferSource();return t.start?(t.internal_start=t.start,t.start=function(e,i,o){"undefined"!=typeof o?t.internal_start(e||0,i,o):t.internal_start(e||0,i||0)}):t.start=function(t,e,i){e||i?this.noteGrainOn(t||0,e,i):this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},i(t.playbackRate),t},AudioContext.prototype.internal_createDynamicsCompressor=AudioContext.prototype.createDynamicsCompressor,AudioContext.prototype.createDynamicsCompressor=function(){var t=this.internal_createDynamicsCompressor();return i(t.threshold),i(t.knee),i(t.ratio),i(t.reduction),i(t.attack),i(t.release),t},AudioContext.prototype.internal_createBiquadFilter=AudioContext.prototype.createBiquadFilter,AudioContext.prototype.createBiquadFilter=function(){var t=this.internal_createBiquadFilter();return i(t.frequency),i(t.detune),i(t.Q),i(t.gain),t},AudioContext.prototype.hasOwnProperty("createOscillator")&&(AudioContext.prototype.internal_createOscillator=AudioContext.prototype.createOscillator,AudioContext.prototype.createOscillator=function(){var t=this.internal_createOscillator();return t.start?(t.internal_start=t.start,t.start=function(e){t.internal_start(e||0)}):t.start=function(t){this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},t.setPeriodicWave||(t.setPeriodicWave=t.setWaveTable),i(t.frequency),i(t.detune),t})),window.hasOwnProperty("webkitOfflineAudioContext")&&!window.hasOwnProperty("OfflineAudioContext")&&(window.OfflineAudioContext=webkitOfflineAudioContext),e}(window);var e=new window.AudioContext;t.prototype.getAudioContext=function(){return e},navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;var i=document.createElement("audio");t.prototype.isSupported=function(){return!!i.canPlayType};var o=function(){return!!i.canPlayType&&i.canPlayType('audio/ogg; codecs="vorbis"')},n=function(){return!!i.canPlayType&&i.canPlayType("audio/mpeg;")},r=function(){return!!i.canPlayType&&i.canPlayType('audio/wav; codecs="1"')},s=function(){return!!i.canPlayType&&(i.canPlayType("audio/x-m4a;")||i.canPlayType("audio/aac;"))},a=function(){return!!i.canPlayType&&i.canPlayType("audio/x-aiff;")};t.prototype.isFileSupported=function(t){switch(t.toLowerCase()){case"mp3":return n();case"wav":return r();case"ogg":return o();case"mp4":return s();case"aiff":return a();default:return!1}};var u=navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1;if(u){var c=!1,h=function(){if(!c){var t=e.createBuffer(1,1,22050),i=e.createBufferSource();i.buffer=t,i.connect(e.destination),i.start(0),console.log("start ios!"),"running"===e.state&&(c=!0)}};document.addEventListener("touchend",h,!1),document.addEventListener("touchstart",h,!1)}}();var i;i=function(){"use strict";var e=function(){var e=t.prototype.getAudioContext();this.input=e.createGain(),this.output=e.createGain(),this.limiter=e.createDynamicsCompressor(),this.limiter.threshold.value=0,this.limiter.ratio.value=100,this.audiocontext=e,this.output.disconnect(),this.inputSources=[],this.input.connect(this.limiter),this.limiter.connect(this.output),this.meter=e.createGain(),this.fftMeter=e.createGain(),this.output.connect(this.meter),this.output.connect(this.fftMeter),this.output.connect(this.audiocontext.destination),this.soundArray=[],this.parts=[],this.extensions=[]},i=new e;return t.prototype.getMasterVolume=function(){return i.output.gain.value},t.prototype.masterVolume=function(t,e,o){if("number"==typeof t){var e=e||0,o=o||0,n=i.audiocontext.currentTime,r=i.output.gain.value;i.output.gain.cancelScheduledValues(n+o),i.output.gain.linearRampToValueAtTime(r,n+o),i.output.gain.linearRampToValueAtTime(t,n+o+e)}else{if(!t)return i.output.gain;t.connect(i.output.gain)}},t.soundOut=i,t.soundOut._silentNode=i.audiocontext.createGain(),t.soundOut._silentNode.gain.value=0,t.soundOut._silentNode.connect(i.audiocontext.destination),i}(e);var o;o=function(){"use strict";var e=i;t.prototype.sampleRate=function(){return e.audiocontext.sampleRate},t.prototype.freqToMidi=function(t){var e=Math.log(t/440)/Math.log(2),i=Math.round(12*e)+57;return i},t.prototype.midiToFreq=function(t){return 440*Math.pow(2,(t-69)/12)},t.prototype.soundFormats=function(){e.extensions=[];for(var t=0;t-1))throw arguments[t]+" is not a valid sound format!";e.extensions.push(arguments[t])}},t.prototype.disposeSound=function(){for(var t=0;t-1){var r=t.prototype.isFileSupported(n);if(r)o=o;else for(var s=o.split("."),a=s[s.length-1],u=0;u1?(this.splitter=o.createChannelSplitter(2),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0)):(this.input.connect(this.left),this.input.connect(this.right)),this.output=o.createChannelMerger(2),this.left.connect(this.output,0,1),this.right.connect(this.output,0,0),this.output.connect(e)},t.Panner.prototype.pan=function(t,e){var i=e||0,n=o.currentTime+i,r=(t+1)/2,s=Math.cos(r*Math.PI/2),a=Math.sin(r*Math.PI/2);this.left.gain.linearRampToValueAtTime(a,n),this.right.gain.linearRampToValueAtTime(s,n)},t.Panner.prototype.inputChannels=function(t){1===t?(this.input.disconnect(),this.input.connect(this.left),this.input.connect(this.right)):2===t&&(this.splitter=o.createChannelSplitter(2),this.input.disconnect(),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0))},t.Panner.prototype.connect=function(t){this.output.connect(t)},t.Panner.prototype.disconnect=function(){this.output.disconnect()}),t.Panner3D=function(t,e){var i=o.createPanner();return i.panningModel="HRTF",i.distanceModel="linear",i.setPosition(0,0,0),t.connect(i),i.connect(e),i.pan=function(t,e,o){i.setPosition(t,e,o)},i}}(i);var s;s=function(){"use strict";function e(t,e){for(var i={},o=t.length,n=0;o>n;n++){if(t[n]>e){var r=t[n],s=new l(r,n);i[n]=s,n+=6e3}n++}return i}function o(t){for(var e=[],i=Object.keys(t).sort(),o=0;on;n++){var r=t[i[o]],s=t[i[o+n]];if(r&&s){var a=r.sampleIndex,u=s.sampleIndex,c=u-a;c>0&&r.intervals.push(c);var h=e.some(function(t){return t.interval===c?(t.count++,t):void 0});h||e.push({interval:c,count:1})}}return e}function r(t,e){var i=[];return t.forEach(function(t){try{var o=Math.abs(60/(t.interval/e));o=a(o);var n=i.some(function(e){return e.tempo===o?e.count+=t.count:void 0});if(!n){if(isNaN(o))return;i.push({tempo:Math.round(o),count:t.count})}}catch(r){throw r}}),i}function s(t,e,i,o){for(var n=[],r=Object.keys(t).sort(),s=0;s.01?!0:void 0})}function a(t){if(isFinite(t)&&0!=t){for(;90>t;)t*=2;for(;t>180&&t>90;)t/=2;return t}}var u=n,c=i,h=c.audiocontext;t.SoundFile=function(e,i,o,n){if("undefined"!=typeof e){if("string"==typeof e||"string"==typeof e[0]){var r=t.prototype._checkFileFormats(e);this.url=r}else if("object"==typeof e&&!(window.File&&window.FileReader&&window.FileList&&window.Blob))throw"Unable to load file because the File API is not supported";e.file&&(e=e.file),this.file=e}this._onended=function(){},this._looping=!1,this._playing=!1,this._paused=!1,this._pauseTime=0,this._cues=[],this._lastPos=0,this._counterNode,this._scopeNode,this.bufferSourceNodes=[],this.bufferSourceNode=null,this.buffer=null,this.playbackRate=1,this.gain=1,this.input=c.audiocontext.createGain(),this.output=c.audiocontext.createGain(),this.reversed=!1,this.startTime=0,this.endTime=null,this.pauseTime=0,this.mode="sustain",this.startMillis=null,this.amplitude=new t.Amplitude,this.output.connect(this.amplitude.input),this.panPosition=0,this.panner=new t.Panner(this.output,c.input,2),(this.url||this.file)&&this.load(i,o),c.soundArray.push(this),this._whileLoading="function"==typeof n?n:function(){}},t.prototype.registerPreloadMethod("loadSound",t.prototype),t.prototype.loadSound=function(e,i,o,n){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var r=new t.SoundFile(e,i,o,n);return r},t.SoundFile.prototype.load=function(t,e){var i=this,o=(new Error).stack;if(void 0!=this.url&&""!=this.url){var n=new XMLHttpRequest;n.addEventListener("progress",function(t){i._updateProgress(t)},!1),n.open("GET",this.url,!0),n.responseType="arraybuffer",n.onload=function(){if(200==n.status)h.decodeAudioData(n.response,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)},function(){var t=new u("decodeAudioData",o,i.url),n="AudioContext error at decodeAudioData for "+i.url;e?(t.msg=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)});else{var r=new u("loadSound",o,i.url),s="Unable to load "+i.url+". The request status was: "+n.status+" ("+n.statusText+")";e?(r.message=s,e(r)):console.error(s+"\n The error stack trace includes: \n"+r.stack)}},n.onerror=function(){var t=new u("loadSound",o,i.url),n="There was no response from the server at "+i.url+". Check the url and internet connectivity.";e?(t.message=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)},n.send()}else if(void 0!=this.file){var r=new FileReader,i=this;r.onload=function(){h.decodeAudioData(r.result,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)})},r.onerror=function(t){onerror&&onerror(t)},r.readAsArrayBuffer(this.file)}},t.SoundFile.prototype._updateProgress=function(t){if(t.lengthComputable){var e=Math.log(t.loaded/t.total*9.9);this._whileLoading(e)}else this._whileLoading("size unknown")},t.SoundFile.prototype.isLoaded=function(){return this.buffer?!0:!1},t.SoundFile.prototype.play=function(t,e,i,o,n){var r,s,a=this,u=c.audiocontext.currentTime,t=t||0;if(0>t&&(t=0),t+=u,!this.buffer)throw"not ready to play file, buffer has yet to load. Try preload()";if(this._pauseTime=0,"restart"===this.mode&&this.buffer&&this.bufferSourceNode){var u=c.audiocontext.currentTime;this.bufferSourceNode.stop(t),this._counterNode.stop(t)}if(this.bufferSourceNode=this._initSourceNode(),this._counterNode=this._initCounterNode(),o){if(!(o>=0&&o0&&this.reversed&&this.reverseBuffer();if(this.bufferSourceNode){var n=c.audiocontext.currentTime;this.bufferSourceNode.playbackRate.cancelScheduledValues(n),this.bufferSourceNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n),this._counterNode.playbackRate.cancelScheduledValues(n),this._counterNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n)}}},t.SoundFile.prototype.setPitch=function(t){var e=midiToFreq(t)/midiToFreq(60);this.rate(e)},t.SoundFile.prototype.getPlaybackRate=function(){return this.playbackRate},t.SoundFile.prototype.duration=function(){return this.buffer?this.buffer.duration:0},t.SoundFile.prototype.currentTime=function(){return this._pauseTime>0?this._pauseTime:this._lastPos/h.sampleRate},t.SoundFile.prototype.jump=function(t,e){if(0>t||t>this.buffer.duration)throw"jump time out of range";if(e>this.buffer.duration-t)throw"end time out of range";var i=t||0,o=e||this.buffer.duration-t;this.isPlaying()&&this.stop(),this.play(0,this.playbackRate,this.output.gain.value,i,o)},t.SoundFile.prototype.channels=function(){return this.buffer.numberOfChannels},t.SoundFile.prototype.sampleRate=function(){return this.buffer.sampleRate},t.SoundFile.prototype.frames=function(){return this.buffer.length},t.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,i=e.length/t,o=~~(i/10)||1,n=e.numberOfChannels,r=new Float32Array(Math.round(t)),s=0;n>s;s++)for(var a=e.getChannelData(s),u=0;t>u;u++){for(var c=~~(u*i),h=~~(c+i),p=0,l=c;h>l;l+=o){var f=a[l];f>p?p=f:-f>p&&(p=f)}(0===s||Math.abs(p)>r[u])&&(r[u]=p)}return r}},t.SoundFile.prototype.reverseBuffer=function(){var t=this.getVolume();if(this.setVolume(0,.01,0),this.pause(),!this.buffer)throw"SoundFile is not done loading";for(var e=0;en;n++){var r=o.getChannelData(n);r.set(t[n])}this.buffer=o,this.panner.inputChannels(e)},t.SoundFile.prototype._initCounterNode=function(){var e=this,i=h.currentTime,o=h.createBufferSource();return e._scopeNode&&(e._scopeNode.disconnect(),e._scopeNode=null),e._scopeNode=h.createScriptProcessor(256,1,1),o.buffer=p(e.buffer),o.playbackRate.setValueAtTime(e.playbackRate,i),o.connect(e._scopeNode),e._scopeNode.connect(t.soundOut._silentNode),e._scopeNode.onaudioprocess=function(t){var i=t.inputBuffer.getChannelData(0);e._lastPos=i[i.length-1]||0,e._onTimeUpdate(e._lastPos)},o},t.SoundFile.prototype._initSourceNode=function(){var t=this,e=h.currentTime,i=h.createBufferSource();return i.buffer=t.buffer,i.playbackRate.setValueAtTime(t.playbackRate,e),i};var p=function(t){for(var e=new Float32Array(t.length),i=h.createBuffer(1,t.length,44100),o=0;o=d);var u=o(f),c=r(u,n.sampleRate),h=c.sort(function(t,e){return e.count-t.count}).splice(0,5);this.tempo=h[0].tempo;var p=5,m=s(f,h[0].tempo,n.sampleRate,p);t(m)}};var l=function(t,e){this.sampleIndex=e,this.amplitude=t,this.tempos=[],this.intervals=[]},f=[];t.SoundFile.prototype.addCue=function(t,e,i){var o=this._cueIDCounter++,n=new d(e,t,o,i);return this._cues.push(n),o},t.SoundFile.prototype.removeCue=function(t){for(var e=0;e=o&&this._cues[i].callback(n)}this._prevTime=e};var d=function(t,e,i,o){this.callback=t,this.time=e,this.id=i,this.val=o}}(e,n,i);var a;a=function(){"use strict";var e=i;t.Amplitude=function(t){this.bufferSize=2048,this.audiocontext=e.audiocontext,this.processor=this.audiocontext.createScriptProcessor(this.bufferSize,2,1),this.input=this.processor,this.output=this.audiocontext.createGain(),this.smoothing=t||0,this.volume=0,this.average=0,this.stereoVol=[0,0],this.stereoAvg=[0,0],this.stereoVolNorm=[0,0],this.volMax=.001,this.normalize=!1,this.processor.onaudioprocess=this._audioProcess.bind(this),this.processor.connect(this.output),this.output.gain.value=0,this.output.connect(this.audiocontext.destination),e.meter.connect(this.processor)},t.Amplitude.prototype.setInput=function(i,o){e.meter.disconnect(),o&&(this.smoothing=o),null==i?(console.log("Amplitude input source is not ready! Connecting to master output instead"),e.meter.connect(this.processor)):i instanceof t.Signal?i.output.connect(this.processor):i?(i.connect(this.processor),this.processor.disconnect(),this.processor.connect(this.output)):e.meter.connect(this.processor)},t.Amplitude.prototype.connect=function(t){this.output.connect(t?t.hasOwnProperty("input")?t.input:t:this.panner.connect(e.input))},t.Amplitude.prototype.disconnect=function(){this.output.disconnect()},t.Amplitude.prototype._audioProcess=function(t){for(var e=0;ea;a++)i=o[a],this.normalize?(r+=Math.max(Math.min(i/this.volMax,1),-1),s+=Math.max(Math.min(i/this.volMax,1),-1)*Math.max(Math.min(i/this.volMax,1),-1)):(r+=i,s+=i*i);var u=r/n,c=Math.sqrt(s/n);this.stereoVol[e]=Math.max(c,this.stereoVol[e]*this.smoothing),this.stereoAvg[e]=Math.max(u,this.stereoVol[e]*this.smoothing),this.volMax=Math.max(this.stereoVol[e],this.volMax)}var h=this,p=this.stereoVol.reduce(function(t,e,i){return h.stereoVolNorm[i-1]=Math.max(Math.min(h.stereoVol[i-1]/h.volMax,1),0),h.stereoVolNorm[i]=Math.max(Math.min(h.stereoVol[i]/h.volMax,1),0),t+e});this.volume=p/this.stereoVol.length,this.volNorm=Math.max(Math.min(this.volume/this.volMax,1),0)},t.Amplitude.prototype.getLevel=function(t){return"undefined"!=typeof t?this.normalize?this.stereoVolNorm[t]:this.stereoVol[t]:this.normalize?this.volNorm:this.volume},t.Amplitude.prototype.toggleNormalize=function(t){this.normalize="boolean"==typeof t?t:!this.normalize},t.Amplitude.prototype.smooth=function(t){t>=0&&1>t?this.smoothing=t:console.log("Error: smoothing must be between 0 and 1")}}(i);var u;u=function(){"use strict";var e=i;t.FFT=function(t,i){this.smoothing=t||.8,this.bins=i||1024;var o=2*i||2048;this.input=this.analyser=e.audiocontext.createAnalyser(),e.fftMeter.connect(this.analyser),this.analyser.smoothingTimeConstant=this.smoothing,this.analyser.fftSize=o,this.freqDomain=new Uint8Array(this.analyser.frequencyBinCount),this.timeDomain=new Uint8Array(this.analyser.frequencyBinCount),this.bass=[20,140],this.lowMid=[140,400],this.mid=[400,2600],this.highMid=[2600,5200],this.treble=[5200,14e3]},t.FFT.prototype.setInput=function(t){t?(t.output?t.output.connect(this.analyser):t.connect&&t.connect(this.analyser),e.fftMeter.disconnect()):e.fftMeter.connect(this.analyser)},t.FFT.prototype.waveform=function(){for(var e,i,o,n=0;ni){var n=i;i=t,t=n}for(var r=Math.round(t/o*this.freqDomain.length),s=Math.round(i/o*this.freqDomain.length),a=0,u=0,c=r;s>=c;c++)a+=this.freqDomain[c],u+=1;var h=a/u;return h}throw"invalid input for getEnergy()"}var p=Math.round(t/o*this.freqDomain.length);return this.freqDomain[p]},t.FFT.prototype.getFreq=function(t,e){console.log("getFreq() is deprecated. Please use getEnergy() instead.");var i=this.getEnergy(t,e);return i},t.FFT.prototype.smooth=function(t){t&&(this.smoothing=t),this.analyser.smoothingTimeConstant=t};var o=function(t){t.freqDomain instanceof Float32Array==!1&&(t.freqDomain=new Float32Array(t.analyser.frequencyBinCount))},n=function(t){t.freqDomain instanceof Uint8Array==!1&&(t.freqDomain=new Uint8Array(t.analyser.frequencyBinCount))},r=function(t){t.timeDomain instanceof Float32Array==!1&&(t.timeDomain=new Float32Array(t.analyser.frequencyBinCount))},s=function(t){t.timeDomain instanceof Uint8Array==!1&&(t.timeDomain=new Uint8Array(t.analyser.frequencyBinCount))}}(i);var c;c=function(){"use strict";function t(t){return void 0===t}var e;if(t(window.AudioContext)&&(window.AudioContext=window.webkitAudioContext),t(window.OfflineAudioContext)&&(window.OfflineAudioContext=window.webkitOfflineAudioContext),t(AudioContext))throw new Error("Web Audio is not supported in this browser");e=new AudioContext,"function"!=typeof AudioContext.prototype.createGain&&(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),"function"!=typeof AudioContext.prototype.createDelay&&(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),"function"!=typeof AudioContext.prototype.createPeriodicWave&&(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),"function"!=typeof AudioBufferSourceNode.prototype.start&&(AudioBufferSourceNode.prototype.start=AudioBufferSourceNode.prototype.noteGrainOn),"function"!=typeof AudioBufferSourceNode.prototype.stop&&(AudioBufferSourceNode.prototype.stop=AudioBufferSourceNode.prototype.noteOff),"function"!=typeof OscillatorNode.prototype.start&&(OscillatorNode.prototype.start=OscillatorNode.prototype.noteOn),"function"!=typeof OscillatorNode.prototype.stop&&(OscillatorNode.prototype.stop=OscillatorNode.prototype.noteOff),"function"!=typeof OscillatorNode.prototype.setPeriodicWave&&(OscillatorNode.prototype.setPeriodicWave=OscillatorNode.prototype.setWaveTable),window.Tone||(AudioNode.prototype._nativeConnect=AudioNode.prototype.connect,AudioNode.prototype.connect=function(e,i,o){if(e.input)Array.isArray(e.input)?(t(o)&&(o=0),this.connect(e.input[o])):this.connect(e.input,i,o);else try{e instanceof AudioNode?this._nativeConnect(e,i,o):this._nativeConnect(e,i)}catch(n){throw new Error("error connecting to node: "+e)}});var i=function(e,i){t(e)||1===e?this.input=this.context.createGain():e>1&&(this.input=new Array(e)),t(i)||1===i?this.output=this.context.createGain():i>1&&(this.output=new Array(e))};i.context=e,i.prototype.context=i.context,i.prototype.bufferSize=2048,i.prototype.bufferTime=i.prototype.bufferSize/i.context.sampleRate,i.prototype.connect=function(t,e,i){Array.isArray(this.output)?(e=this.defaultArg(e,0),this.output[e].connect(t,0,i)):this.output.connect(t,e,i)},i.prototype.disconnect=function(t){Array.isArray(this.output)?(t=this.defaultArg(t,0),this.output[t].disconnect()):this.output.disconnect()},i.prototype.connectSeries=function(){if(arguments.length>1)for(var t=arguments[0],e=1;e1)for(var e=1;e0)for(var t=this,e=0;e0)for(var t=1;ti){var o=i;i=e,e=o}else if(e==i)return 0;return(t-e)/(i-e)},i.prototype.dispose=function(){this.isUndef(this.input)||(this.input instanceof AudioNode&&this.input.disconnect(),this.input=null),this.isUndef(this.output)||(this.output instanceof AudioNode&&this.output.disconnect(),this.output=null)};var o=null;i.prototype.noGC=function(){this.output.connect(o)},AudioNode.prototype.noGC=function(){this.connect(o)},i.prototype.now=function(){return this.context.currentTime},i.prototype.samplesToSeconds=function(t){return t/this.context.sampleRate},i.prototype.toSamples=function(t){var e=this.toSeconds(t);return Math.round(e*this.context.sampleRate)},i.prototype.toSeconds=function(t,e){if(e=this.defaultArg(e,this.now()),"number"==typeof t)return t;if("string"==typeof t){var i=0;return"+"===t.charAt(0)&&(t=t.slice(1),i=e),parseFloat(t)+i}return e},i.prototype.frequencyToSeconds=function(t){return 1/parseFloat(t)},i.prototype.secondsToFrequency=function(t){return 1/t};var n=[];return i._initAudioContext=function(t){t(i.context),n.push(t)},i.setContext=function(t){i.prototype.context=t,i.context=t;for(var e=0;ee;e++){var o=e/i*2-1,n=e/(i-1)*2-1;this._curve[e]=t(o,e,n)}this._shaper.curve=this._curve},t.WaveShaper.prototype.setCurve=function(t){if(this._isSafari()){var e=t[0];t.unshift(e)}this._curve=new Float32Array(t),this._shaper.curve=this._curve},t.WaveShaper.prototype.setOversample=function(t){this._shaper.oversample=t},t.WaveShaper.prototype._isSafari=function(){var t=navigator.userAgent.toLowerCase();return-1!==t.indexOf("safari")&&-1===t.indexOf("chrome")},t.WaveShaper.prototype.dispose=function(){t.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null},t.WaveShaper}(c);var l;l=function(t){"use strict";return t.Signal=function(e){this._scalar=this.context.createGain(),this.input=this.output=this.context.createGain(),this._syncRatio=1,this.value=this.defaultArg(e,0),t.Signal._constant.chain(this._scalar,this.output)},t.extend(t.Signal,t.SignalBase),t.Signal.prototype.getValue=function(){return this._scalar.gain.value},t.Signal.prototype.setValue=function(t){0===this._syncRatio?t=0:t*=this._syncRatio,this._scalar.gain.value=t},t.Signal.prototype.setValueAtTime=function(t,e){t*=this._syncRatio,this._scalar.gain.setValueAtTime(t,this.toSeconds(e))},t.Signal.prototype.setCurrentValueNow=function(t){t=this.defaultArg(t,this.now());var e=this.getValue();return this.cancelScheduledValues(t),this._scalar.gain.setValueAtTime(e,t),e},t.Signal.prototype.linearRampToValueAtTime=function(t,e){t*=this._syncRatio,this._scalar.gain.linearRampToValueAtTime(t,this.toSeconds(e))},t.Signal.prototype.exponentialRampToValueAtTime=function(t,e){t*=this._syncRatio;try{this._scalar.gain.exponentialRampToValueAtTime(t,this.toSeconds(e))}catch(i){this._scalar.gain.linearRampToValueAtTime(t,this.toSeconds(e))}},t.Signal.prototype.exponentialRampToValueNow=function(t,e){var i=this.now();this.setCurrentValueNow(i),"+"===e.toString().charAt(0)&&(e=e.substr(1)),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e))},t.Signal.prototype.linearRampToValueNow=function(t,e){var i=this.now();this.setCurrentValueNow(i),t*=this._syncRatio,"+"===e.toString().charAt(0)&&(e=e.substr(1)),this._scalar.gain.linearRampToValueAtTime(t,i+this.toSeconds(e))},t.Signal.prototype.setTargetAtTime=function(t,e,i){t*=this._syncRatio,this._scalar.gain.setTargetAtTime(t,this.toSeconds(e),i)},t.Signal.prototype.setValueCurveAtTime=function(t,e,i){for(var o=0;o0?this.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n):this.oscillator.frequency.linearRampToValueAtTime(t,o+i+n),this.phaseAmount&&this.phase(this.phaseAmount)}},t.Oscillator.prototype.getFreq=function(){return this.oscillator.frequency.value},t.Oscillator.prototype.setType=function(t){this.oscillator.type=t},t.Oscillator.prototype.getType=function(){return this.oscillator.type},t.Oscillator.prototype.connect=function(t){t?t.hasOwnProperty("input")?(this.panner.connect(t.input),this.connection=t.input):(this.panner.connect(t),this.connection=t):this.panner.connect(e.input)},t.Oscillator.prototype.disconnect=function(){this.output.disconnect(),this.panner.disconnect(),this.output.connect(this.panner),this.oscMods=[]},t.Oscillator.prototype.pan=function(t,e){this.panPosition=t,this.panner.pan(t,e)},t.Oscillator.prototype.getPan=function(){return this.panPosition},t.Oscillator.prototype.dispose=function(){if(this.oscillator){var t=e.audiocontext.currentTime;this.stop(t),this.disconnect(),this.oscillator.disconnect(),this.panner=null,this.oscillator=null}this.osc2&&this.osc2.dispose()},t.Oscillator.prototype.phase=function(i){var o=t.prototype.map(i,0,1,0,1/this.f),n=e.audiocontext.currentTime;this.phaseAmount=i,this.dNode||(this.dNode=e.audiocontext.createDelay(),this.oscillator.disconnect(),this.oscillator.connect(this.dNode),this.dNode.connect(this.output)),this.dNode.delayTime.setValueAtTime(o,n)};var s=function(t,e,i,o,n){var r=t.oscillator;for(var s in t.mathOps)t.mathOps[s]instanceof n&&(r.disconnect(),t.mathOps[s].dispose(),i=s,i0&&(r=t.mathOps[s-1]),r.disconnect(),r.connect(e),e.connect(o),t.mathOps[i]=e,t};t.Oscillator.prototype.add=function(t){var e=new o(t),i=this.mathOps.length-1,n=this.output;return s(this,e,i,n,o)},t.Oscillator.prototype.mult=function(t){var e=new n(t),i=this.mathOps.length-1,o=this.output;return s(this,e,i,o,n)},t.Oscillator.prototype.scale=function(e,i,o,n){var a,u;4===arguments.length?(a=t.prototype.map(o,e,i,0,1)-.5,u=t.prototype.map(n,e,i,0,1)-.5):(a=arguments[0],u=arguments[1]);var c=new r(a,u),h=this.mathOps.length-1,p=this.output;return s(this,c,h,p,r)},t.SinOsc=function(e){t.Oscillator.call(this,e,"sine")},t.SinOsc.prototype=Object.create(t.Oscillator.prototype),t.TriOsc=function(e){t.Oscillator.call(this,e,"triangle")},t.TriOsc.prototype=Object.create(t.Oscillator.prototype),t.SawOsc=function(e){t.Oscillator.call(this,e,"sawtooth")},t.SawOsc.prototype=Object.create(t.Oscillator.prototype),t.SqrOsc=function(e){t.Oscillator.call(this,e,"square")},t.SqrOsc.prototype=Object.create(t.Oscillator.prototype)}(i,l,f,d,y);var g;g=function(){"use strict";var e=i,o=f,n=d,r=y,s=c;s.setContext(e.audiocontext),t.Env=function(i,o,n,r,s,a,u,c){this.aTime=i,this.aLevel=o,this.dTime=n||0,this.dLevel=r||0,this.sTime=s||0,this.sLevel=a||0,this.rTime=u||0,this.rLevel=c||0,this.output=e.audiocontext.createGain(),this.control=new t.Signal,this.control.connect(this.output),this.connection=null,this.mathOps=[this.control],this.sourceToClear=null,this.wasTriggered=!1,e.soundArray.push(this)},t.Env.prototype.set=function(t,e,i,o,n,r,s,a){this.aTime=t,this.aLevel=e,this.dTime=i||0,this.dLevel=o||0,this.sTime=n||0,this.sLevel=r||0,this.rTime=s||0,this.rLevel=a||0},t.Env.prototype.setInput=function(){for(var t=0;tn;n++)i[n]=1;var r=t.createBufferSource();return r.buffer=e,r.loop=!0,r}var o=i;t.Pulse=function(i,n){t.Oscillator.call(this,i,"sawtooth"),this.w=n||0,this.osc2=new t.SawOsc(i),this.dNode=o.audiocontext.createDelay(),this.dcOffset=e(),this.dcGain=o.audiocontext.createGain(),this.dcOffset.connect(this.dcGain),this.dcGain.connect(this.output),this.f=i||440;var r=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=r,this.dcGain.gain.value=1.7*(.5-this.w),this.osc2.disconnect(),this.osc2.panner.disconnect(),this.osc2.amp(-1),this.osc2.output.connect(this.dNode),this.dNode.connect(this.output),this.output.gain.value=1,this.output.connect(this.panner)},t.Pulse.prototype=Object.create(t.Oscillator.prototype),t.Pulse.prototype.width=function(e){if("number"==typeof e){if(1>=e&&e>=0){this.w=e;var i=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=i}this.dcGain.gain.value=1.7*(.5-this.w)}else{e.connect(this.dNode.delayTime);var o=new t.SignalAdd(-.5);o.setInput(e),o=o.mult(-1),o=o.mult(1.7),o.connect(this.dcGain.gain)}},t.Pulse.prototype.start=function(t,i){var n=o.audiocontext.currentTime,r=i||0;if(!this.started){var s=t||this.f,a=this.oscillator.type;this.oscillator=o.audiocontext.createOscillator(),this.oscillator.frequency.setValueAtTime(s,n),this.oscillator.type=a,this.oscillator.connect(this.output),this.oscillator.start(r+n),this.osc2.oscillator=o.audiocontext.createOscillator(),this.osc2.oscillator.frequency.setValueAtTime(s,r+n),this.osc2.oscillator.type=a,this.osc2.oscillator.connect(this.osc2.output),this.osc2.start(r+n),this.freqNode=[this.oscillator.frequency,this.osc2.oscillator.frequency],this.dcOffset=e(),this.dcOffset.connect(this.dcGain),this.dcOffset.start(r+n),void 0!==this.mods&&void 0!==this.mods.frequency&&(this.mods.frequency.connect(this.freqNode[0]),this.mods.frequency.connect(this.freqNode[1])),this.started=!0,this.osc2.started=!0}},t.Pulse.prototype.stop=function(t){if(this.started){var e=t||0,i=o.audiocontext.currentTime;this.oscillator.stop(e+i),this.osc2.oscillator.stop(e+i),this.dcOffset.stop(e+i),this.started=!1,this.osc2.started=!1}},t.Pulse.prototype.freq=function(t,e,i){if("number"==typeof t){this.f=t;var n=o.audiocontext.currentTime,e=e||0,i=i||0,r=this.oscillator.frequency.value;this.oscillator.frequency.cancelScheduledValues(n),this.oscillator.frequency.setValueAtTime(r,n+i),this.oscillator.frequency.exponentialRampToValueAtTime(t,i+e+n),this.osc2.oscillator.frequency.cancelScheduledValues(n),this.osc2.oscillator.frequency.setValueAtTime(r,n+i),this.osc2.oscillator.frequency.exponentialRampToValueAtTime(t,i+e+n),this.freqMod&&(this.freqMod.output.disconnect(),this.freqMod=null)}else t.output&&(t.output.disconnect(),t.output.connect(this.oscillator.frequency),t.output.connect(this.osc2.oscillator.frequency),this.freqMod=t)}}(i,v);var _;_=function(){"use strict";var e=i;t.Noise=function(){t.Oscillator.call(this),delete this.f,delete this.freq,delete this.oscillator,this.buffer=o},t.Noise.prototype=Object.create(t.Oscillator.prototype);var o=function(){for(var t=2*e.audiocontext.sampleRate,i=e.audiocontext.createBuffer(1,t,e.audiocontext.sampleRate),o=i.getChannelData(0),n=0;t>n;n++)o[n]=2*Math.random()-1;return i.type="white",i}(),n=function(){var t,i,o,n,r,s,a,u=2*e.audiocontext.sampleRate,c=e.audiocontext.createBuffer(1,u,e.audiocontext.sampleRate),h=c.getChannelData(0);t=i=o=n=r=s=a=0;for(var p=0;u>p;p++){var l=2*Math.random()-1;t=.99886*t+.0555179*l,i=.99332*i+.0750759*l,o=.969*o+.153852*l,n=.8665*n+.3104856*l,r=.55*r+.5329522*l,s=-.7616*s-.016898*l,h[p]=t+i+o+n+r+s+a+.5362*l,h[p]*=.11,a=.115926*l}return c.type="pink",c}(),r=function(){for(var t=2*e.audiocontext.sampleRate,i=e.audiocontext.createBuffer(1,t,e.audiocontext.sampleRate),o=i.getChannelData(0),n=0,r=0;t>r;r++){var s=2*Math.random()-1;o[r]=(n+.02*s)/1.02,n=o[r],o[r]*=3.5}return i.type="brown",i}();t.Noise.prototype.setType=function(t){switch(t){case"white":this.buffer=o;break;case"pink":this.buffer=n;break;case"brown":this.buffer=r;break;default:this.buffer=o}if(this.started){var i=e.audiocontext.currentTime;this.stop(i),this.start(i+.01)}},t.Noise.prototype.getType=function(){return this.buffer.type},t.Noise.prototype.start=function(){this.started&&this.stop(),this.noise=e.audiocontext.createBufferSource(),this.noise.buffer=this.buffer,this.noise.loop=!0,this.noise.connect(this.output);var t=e.audiocontext.currentTime;this.noise.start(t),this.started=!0},t.Noise.prototype.stop=function(){var t=e.audiocontext.currentTime;this.noise&&(this.noise.stop(t),this.started=!1)},t.Noise.prototype.dispose=function(){var t=e.audiocontext.currentTime;this.noise&&(this.noise.disconnect(),this.stop(t)),this.output&&this.output.disconnect(),this.panner&&this.panner.disconnect(),this.output=null,this.panner=null,this.buffer=null,this.noise=null}}(i);var S;S=function(){"use strict";var e=i;t.AudioIn=function(){this.input=e.audiocontext.createGain(),this.output=e.audiocontext.createGain(),this.stream=null,this.mediaStream=null,this.currentSource=0,this.enabled=!1,this.amplitude=new t.Amplitude,this.output.connect(this.amplitude.input),"undefined"==typeof window.MediaStreamTrack?window.alert("This browser does not support MediaStreamTrack"):"function"==typeof window.MediaStreamTrack.getSources&&window.MediaStreamTrack.getSources(this._gotSources),e.soundArray.push(this)},t.AudioIn.prototype.start=function(t,i){var o=this;if(e.inputSources[o.currentSource]){var n=e.inputSources[o.currentSource].id,r={audio:{optional:[{sourceId:n}]}};window.navigator.getUserMedia(r,this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=e.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),t&&t(),o.amplitude.setInput(o.output)},this._onStreamError=function(t){i?i(t):console.error(t)})}else window.navigator.getUserMedia({audio:!0},this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=e.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),o.amplitude.setInput(o.output),t&&t()},this._onStreamError=function(t){i?i(t):console.error(t)})},t.AudioIn.prototype.stop=function(){this.stream&&this.stream.stop()},t.AudioIn.prototype.connect=function(t){this.output.connect(t?t.hasOwnProperty("input")?t.input:t.hasOwnProperty("analyser")?t.analyser:t:e.input)},t.AudioIn.prototype.disconnect=function(t){this.output.disconnect(t),this.output.connect(this.amplitude.input)},t.AudioIn.prototype.getLevel=function(t){return t&&(this.amplitude.smoothing=t),this.amplitude.getLevel()},t.AudioIn.prototype._gotSources=function(t){for(var e=0;e0?e.inputSources:"This browser does not support MediaStreamTrack.getSources()"},t.AudioIn.prototype.getSources=function(t){"function"==typeof window.MediaStreamTrack.getSources?window.MediaStreamTrack.getSources(function(i){for(var o=0,n=i.length;n>o;o++){var r=i[o];"audio"===r.kind&&e.inputSources.push(r)}t(e.inputSources)}):console.log("This browser does not support MediaStreamTrack.getSources()")},t.AudioIn.prototype.setSource=function(t){var i=this;e.inputSources.length>0&&t=t&&(t=1),"number"==typeof t?(i.biquad.frequency.value=t,i.biquad.frequency.cancelScheduledValues(this.ac.currentTime+.01+o),i.biquad.frequency.exponentialRampToValueAtTime(t,this.ac.currentTime+.02+o)):t&&t.connect(this.biquad.frequency),i.biquad.frequency.value},t.Filter.prototype.res=function(t,e){var i=this,o=e||0;return"number"==typeof t?(i.biquad.Q.value=t,i.biquad.Q.cancelScheduledValues(i.ac.currentTime+.01+o),i.biquad.Q.linearRampToValueAtTime(t,i.ac.currentTime+.02+o)):t&&freq.connect(this.biquad.Q),i.biquad.Q.value},t.Filter.prototype.setType=function(t){this.biquad.type=t},t.Filter.prototype.amp=function(t,i,o){var i=i||0,o=o||0,n=e.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(t,n+o+i+.001)},t.Filter.prototype.connect=function(e){var i=e||t.soundOut.input;this.output.connect(i)},t.Filter.prototype.disconnect=function(){this.output.disconnect()},t.LowPass=function(){t.Filter.call(this,"lowpass")},t.LowPass.prototype=Object.create(t.Filter.prototype),t.HighPass=function(){t.Filter.call(this,"highpass")},t.HighPass.prototype=Object.create(t.Filter.prototype),t.BandPass=function(){t.Filter.call(this,"bandpass")},t.BandPass.prototype=Object.create(t.Filter.prototype)}(i);var A;A=function(){"use strict";var e=i;t.Delay=function(){this.ac=e.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this._split=this.ac.createChannelSplitter(2),this._merge=this.ac.createChannelMerger(2),this._leftGain=this.ac.createGain(),this._rightGain=this.ac.createGain(),this.leftDelay=this.ac.createDelay(),this.rightDelay=this.ac.createDelay(),this._leftFilter=new t.Filter,this._rightFilter=new t.Filter,this._leftFilter.disconnect(),this._rightFilter.disconnect(),this.lowPass=this._leftFilter,this._leftFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._rightFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._leftFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this._rightFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this.input.connect(this._split),this.leftDelay.connect(this._leftGain),this.rightDelay.connect(this._rightGain),this._leftGain.connect(this._leftFilter.input),this._rightGain.connect(this._rightFilter.input),this._merge.connect(this.output),this.output.connect(t.soundOut.input),this._leftFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this._rightFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this.setType(0),this._maxDelay=this.leftDelay.delayTime.maxValue},t.Delay.prototype.process=function(t,e,i,o){var n=i||0,r=e||0;if(n>=1)throw new Error("Feedback value will force a positive feedback loop.");if(r>=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.setValueAtTime(n,this.ac.currentTime),this._rightGain.gain.setValueAtTime(n,this.ac.currentTime),o&&(this._leftFilter.freq(o),this._rightFilter.freq(o))},t.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)) -},t.Delay.prototype.feedback=function(t){if("number"!=typeof t)t.connect(this._leftGain.gain),t.connect(this._rightGain.gain);else{if(t>=1)throw new Error("Feedback value will force a positive feedback loop.");this._leftGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime),this._rightGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime)}},t.Delay.prototype.filter=function(t,e){this._leftFilter.set(t,e),this._rightFilter.set(t,e)},t.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._leftFilter.output.connect(this._merge,0,1),this._leftFilter.output.connect(this.leftDelay),this._leftFilter.output.connect(this.rightDelay)}},t.Delay.prototype.amp=function(t,i,o){var i=i||0,o=o||0,n=e.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(t,n+o+i+.001)},t.Delay.prototype.connect=function(e){var i=e||t.soundOut.input;this.output.connect(i)},t.Delay.prototype.disconnect=function(){this.output.disconnect()}}(i,b);var w;w=function(){"use strict";var e=i,o=n;t.Reverb=function(){this.ac=e.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse(),this.connect(),e.soundArray.push(this)},t.Reverb.prototype.process=function(t,e,i,o){t.connect(this.input);var n=!1;e&&(this._seconds=e,n=!0),i&&(this._decay=i),o&&(this._reverse=o),n&&this._buildImpulse()},t.Reverb.prototype.set=function(t,e,i){var o=!1;t&&(this._seconds=t,o=!0),e&&(this._decay=e),i&&(this._reverse=i),o&&this._buildImpulse()},t.Reverb.prototype.amp=function(t,i,o){var i=i||0,o=o||0,n=e.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(t,n+o+i+.001)},t.Reverb.prototype.connect=function(e){var i=e||t.soundOut.input;this.output.connect(i.input?i.input:i)},t.Reverb.prototype.disconnect=function(){this.output.disconnect()},t.Reverb.prototype._buildImpulse=function(){var t,e,i=this.ac.sampleRate,o=i*this._seconds,n=this._decay,r=this.ac.createBuffer(2,o,i),s=r.getChannelData(0),a=r.getChannelData(1);for(e=0;o>e;e++)t=this.reverse?o-e:e,s[e]=(2*Math.random()-1)*Math.pow(1-t/o,n),a[e]=(2*Math.random()-1)*Math.pow(1-t/o,n);this.convolverNode.buffer=r},t.Reverb.prototype.dispose=function(){this.convolverNode&&(this.convolverNode.buffer=null,this.convolverNode=null),"undefined"!=typeof this.output&&(this.output.disconnect(),this.output=null),"undefined"!=typeof this.panner&&(this.panner.disconnect(),this.panner=null)},t.Convolver=function(t,i,o){this.ac=e.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),t?(this.impulses=[],this._loadBuffer(t,i,o)):(this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse()),this.connect(),e.soundArray.push(this)},t.Convolver.prototype=Object.create(t.Reverb.prototype),t.prototype.registerPreloadMethod("createConvolver",t.prototype),t.prototype.createConvolver=function(e,i,o){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var n=new t.Convolver(e,i,o);return n.impulses=[],n},t.Convolver.prototype._loadBuffer=function(e,i,n){var e=t.prototype._checkFileFormats(e),r=this,s=(new Error).stack,a=t.prototype.getAudioContext(),u=new XMLHttpRequest;u.open("GET",e,!0),u.responseType="arraybuffer",u.onload=function(){if(200==u.status)a.decodeAudioData(u.response,function(t){var o={},n=e.split("/");o.name=n[n.length-1],o.audioBuffer=t,r.impulses.push(o),r.convolverNode.buffer=o.audioBuffer,i&&i(o)},function(){var t=new o("decodeAudioData",s,r.url),e="AudioContext error at decodeAudioData for "+r.url;n?(t.msg=e,n(t)):console.error(e+"\n The error stack trace includes: \n"+t.stack)});else{var t=new o("loadConvolver",s,r.url),c="Unable to load "+r.url+". The request status was: "+u.status+" ("+u.statusText+")";n?(t.message=c,n(t)):console.error(c+"\n The error stack trace includes: \n"+t.stack)}},u.onerror=function(){var t=new o("loadConvolver",s,r.url),e="There was no response from the server at "+r.url+". Check the url and internet connectivity.";n?(t.message=e,n(t)):console.error(e+"\n The error stack trace includes: \n"+t.stack)},u.send()},t.Convolver.prototype.set=null,t.Convolver.prototype.process=function(t){t.connect(this.input)},t.Convolver.prototype.impulses=[],t.Convolver.prototype.addImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this._loadBuffer(t,e,i)},t.Convolver.prototype.resetImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this.impulses=[],this._loadBuffer(t,e,i)},t.Convolver.prototype.toggleImpulse=function(t){if("number"==typeof t&&ts;s++){var a=o[s];a>0&&!n?(n=!0,setTimeout(function(){var t=e+r.samplesToSeconds(s+2*i);return function(){r.tick(t)}}(),0)):0>a&&n&&(n=!1)}this._upTick=n},t.Clock.prototype.dispose=function(){this._jsNode.disconnect(),this._controlSignal.dispose(),this._oscillator&&(this._oscillator.onended(),this._oscillator.disconnect()),this._jsNode.onaudioprocess=function(){},this._jsNode=null,this._controlSignal=null,this._oscillator=null},t.Clock}(c);var P;P=function(){"use strict";var e=i,o=x,n=e.audiocontext;t.Metro=function(){this.clock=new o(n.sampleRate,this.ontick.bind(this)),this.syncedParts=[],this.bpm=120,this._init(),this.tickCallback=function(){}};var r=0,s=0;t.Metro.prototype.ontick=function(t){var i=t-r,o=t-e.audiocontext.currentTime;if(!(-.02>=i-s)){r=t;for(var n in this.syncedParts){var a=this.syncedParts[n];a.incrementStep(o);for(var u in a.phrases){var c=a.phrases[u],h=c.sequence,p=this.metroTicks%h.length;0!==h[p]&&(this.metroTicks=t.parts.length?(t.scoreStep=0,t.onended()):(t.scoreStep=0,t.parts[t.currentPart-1].stop(),t.parts[t.currentPart].start())}var o=i,n=120;t.prototype.setBPM=function(t,e){n=t;for(var i in o.parts)o.parts[i].setBPM(n,e)},t.Phrase=function(t,e,i){this.phraseStep=0,this.name=t,this.callback=e,this.sequence=i},t.Part=function(e,i){this.length=e||0,this.partStep=0,this.phrases=[],this.looping=!1,this.isPlaying=!1,this.onended=function(){this.stop()},this.tatums=i||.0625,this.metro=new t.Metro,this.metro._init(),this.metro.beatLength(this.tatums),this.metro.setBPM(n),o.parts.push(this),this.callback=function(){}},t.Part.prototype.setBPM=function(t,e){this.metro.setBPM(t,e)},t.Part.prototype.getBPM=function(){return this.metro.getBPM()},t.Part.prototype.start=function(t){if(!this.isPlaying){this.isPlaying=!0,this.metro.resetSync(this);var e=t||0;this.metro.start(e)}},t.Part.prototype.loop=function(t){this.looping=!0,this.onended=function(){this.partStep=0};var e=t||0;this.start(e)},t.Part.prototype.noLoop=function(){this.looping=!1,this.onended=function(){this.stop()}},t.Part.prototype.stop=function(t){this.partStep=0,this.pause(t)},t.Part.prototype.pause=function(t){this.isPlaying=!1;var e=t||0;this.metro.stop(e)},t.Part.prototype.addPhrase=function(e,i,o){var n;if(3===arguments.length)n=new t.Phrase(e,i,o);else{if(!(arguments[0]instanceof t.Phrase))throw"invalid input. addPhrase accepts name, callback, array or a p5.Phrase";n=arguments[0]}this.phrases.push(n),n.sequence.length>this.length&&(this.length=n.sequence.length)},t.Part.prototype.removePhrase=function(t){for(var e in this.phrases)this.phrases[e].name===t&&this.phrases.split(e,1)},t.Part.prototype.getPhrase=function(t){for(var e in this.phrases)if(this.phrases[e].name===t)return this.phrases[e]},t.Part.prototype.replaceSequence=function(t,e){for(var i in this.phrases)this.phrases[i].name===t&&(this.phrases[i].sequence=e)},t.Part.prototype.incrementStep=function(t){this.partStepr;)o[r++]=t[n],o[r++]=e[n],n++;return o}function o(t,e,i){for(var o=i.length,n=0;o>n;n++)t.setUint8(e+n,i.charCodeAt(n))}var n=i,r=n.audiocontext;t.SoundRecorder=function(){this.input=r.createGain(),this.output=r.createGain(),this.recording=!1,this.bufferSize=1024,this._channels=2,this._clear(),this._jsNode=r.createScriptProcessor(this.bufferSize,this._channels,2),this._jsNode.onaudioprocess=this._audioprocess.bind(this),this._callback=function(){},this._jsNode.connect(t.soundOut._silentNode),this.setInput(),n.soundArray.push(this)},t.SoundRecorder.prototype.setInput=function(e){this.input.disconnect(),this.input=null,this.input=r.createGain(),this.input.connect(this._jsNode),this.input.connect(this.output),e?e.connect(this.input):t.soundOut.output.connect(this.input)},t.SoundRecorder.prototype.record=function(t,e,i){this.recording=!0,e&&(this.sampleLimit=Math.round(e*r.sampleRate)),t&&i?this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer),i()}:t&&(this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer)})},t.SoundRecorder.prototype.stop=function(){this.recording=!1,this._callback(),this._clear()},t.SoundRecorder.prototype._clear=function(){this._leftBuffers=[],this._rightBuffers=[],this.recordedSamples=0,this.sampleLimit=null},t.SoundRecorder.prototype._audioprocess=function(t){if(this.recording!==!1&&this.recording===!0)if(this.sampleLimit&&this.recordedSamples>=this.sampleLimit)this.stop();else{var e=t.inputBuffer.getChannelData(0),i=t.inputBuffer.getChannelData(1);this._leftBuffers.push(new Float32Array(e)),this._rightBuffers.push(new Float32Array(i)),this.recordedSamples+=this.bufferSize}},t.SoundRecorder.prototype._getBuffer=function(){var t=[];return t.push(this._mergeBuffers(this._leftBuffers)),t.push(this._mergeBuffers(this._rightBuffers)),t},t.SoundRecorder.prototype._mergeBuffers=function(t){for(var e=new Float32Array(this.recordedSamples),i=0,o=t.length,n=0;o>n;n++){var r=t[n];e.set(r,i),i+=r.length}return e},t.SoundRecorder.prototype.dispose=function(){this._clear(),this._callback=function(){},this.input&&this.input.disconnect(),this.input=null,this._jsNode=null},t.prototype.saveSound=function(i,n){var r=i.buffer.getChannelData(0),s=i.buffer.getChannelData(1),a=e(r,s),u=new ArrayBuffer(44+2*a.length),c=new DataView(u);o(c,0,"RIFF"),c.setUint32(4,44+2*a.length,!0),o(c,8,"WAVE"),o(c,12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,2,!0),c.setUint32(24,44100,!0),c.setUint32(28,176400,!0),c.setUint16(32,4,!0),c.setUint16(34,16,!0),o(c,36,"data"),c.setUint32(40,2*a.length,!0);for(var h=a.length,p=44,l=1,f=0;h>f;f++)c.setInt16(p,32767*a[f]*l,!0),p+=2;t.prototype.writeFile([c],n,"wav")}}(e,i);var F;F=function(){"use strict";t.PeakDetect=function(t,e,i,o){this.framesPerPeak=o||20,this.framesSinceLastPeak=0,this.decayRate=.95,this.threshold=i||.35,this.cutoff=0,this.cutoffMult=1.5,this.energy=0,this.penergy=0,this.currentValue=0,this.isDetected=!1,this.f1=t||40,this.f2=e||2e4,this._onPeak=function(){}},t.PeakDetect.prototype.update=function(t){var e=this.energy=t.getEnergy(this.f1,this.f2)/255;e>this.cutoff&&e>this.threshold&&e-this.penergy>0?(this._onPeak(),this.isDetected=!0,this.cutoff=e*this.cutoffMult,this.framesSinceLastPeak=0):(this.isDetected=!1,this.framesSinceLastPeak<=this.framesPerPeak?this.framesSinceLastPeak++:(this.cutoff*=this.decayRate,this.cutoff=Math.max(this.cutoff,this.threshold))),this.currentValue=e,this.penergy=e},t.PeakDetect.prototype.onPeak=function(t,e){var i=this;i._onPeak=function(){t(i.energy,e)}}}(i);var O;O=function(){"use strict";var e=i;t.Gain=function(){this.ac=e.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.output)},t.Gain.prototype.setInput=function(t){t.connect(this.input)},t.Gain.prototype.connect=function(e){var i=e||t.soundOut.input;this.output.connect(i.input?i.input:i)},t.Gain.prototype.disconnect=function(){this.output.disconnect()},t.Gain.prototype.amp=function(t,i,o){var i=i||0,o=o||0,n=e.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o),this.output.gain.linearRampToValueAtTime(t,n+o+i)}}(i,e);var V;V=function(){"use strict";var t=e;return t}(e,i,o,n,r,s,a,u,m,v,g,T,_,S,b,A,w,P,C,N,F,O)}); \ No newline at end of file +t.connect(i),t=i}},i.prototype.fan=function(){if(arguments.length>0)for(var t=1;ti){var o=i;i=e,e=o}else if(e==i)return 0;return(t-e)/(i-e)},i.prototype.dispose=function(){this.isUndef(this.input)||(this.input instanceof AudioNode&&this.input.disconnect(),this.input=null),this.isUndef(this.output)||(this.output instanceof AudioNode&&this.output.disconnect(),this.output=null)};var o=null;i.prototype.noGC=function(){this.output.connect(o)},AudioNode.prototype.noGC=function(){this.connect(o)},i.prototype.now=function(){return this.context.currentTime},i.prototype.samplesToSeconds=function(t){return t/this.context.sampleRate},i.prototype.toSamples=function(t){var e=this.toSeconds(t);return Math.round(e*this.context.sampleRate)},i.prototype.toSeconds=function(t,e){if(e=this.defaultArg(e,this.now()),"number"==typeof t)return t;if("string"==typeof t){var i=0;return"+"===t.charAt(0)&&(t=t.slice(1),i=e),parseFloat(t)+i}return e},i.prototype.frequencyToSeconds=function(t){return 1/parseFloat(t)},i.prototype.secondsToFrequency=function(t){return 1/t};var n=[];return i._initAudioContext=function(t){t(i.context),n.push(t)},i.setContext=function(t){i.prototype.context=t,i.context=t;for(var e=0;ee;e++){var o=e/i*2-1,n=e/(i-1)*2-1;this._curve[e]=t(o,e,n)}this._shaper.curve=this._curve},t.WaveShaper.prototype.setCurve=function(t){if(this._isSafari()){var e=t[0];t.unshift(e)}this._curve=new Float32Array(t),this._shaper.curve=this._curve},t.WaveShaper.prototype.setOversample=function(t){this._shaper.oversample=t},t.WaveShaper.prototype._isSafari=function(){var t=navigator.userAgent.toLowerCase();return-1!==t.indexOf("safari")&&-1===t.indexOf("chrome")},t.WaveShaper.prototype.dispose=function(){t.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null},t.WaveShaper}(c);var l;l=function(t){"use strict";return t.Signal=function(e){this._scalar=this.context.createGain(),this.input=this.output=this.context.createGain(),this._syncRatio=1,this.value=this.defaultArg(e,0),t.Signal._constant.chain(this._scalar,this.output)},t.extend(t.Signal,t.SignalBase),t.Signal.prototype.getValue=function(){return this._scalar.gain.value},t.Signal.prototype.setValue=function(t){0===this._syncRatio?t=0:t*=this._syncRatio,this._scalar.gain.value=t},t.Signal.prototype.setValueAtTime=function(t,e){t*=this._syncRatio,this._scalar.gain.setValueAtTime(t,this.toSeconds(e))},t.Signal.prototype.setCurrentValueNow=function(t){t=this.defaultArg(t,this.now());var e=this.getValue();return this.cancelScheduledValues(t),this._scalar.gain.setValueAtTime(e,t),e},t.Signal.prototype.linearRampToValueAtTime=function(t,e){t*=this._syncRatio,this._scalar.gain.linearRampToValueAtTime(t,this.toSeconds(e))},t.Signal.prototype.exponentialRampToValueAtTime=function(t,e){t*=this._syncRatio;try{this._scalar.gain.exponentialRampToValueAtTime(t,this.toSeconds(e))}catch(i){this._scalar.gain.linearRampToValueAtTime(t,this.toSeconds(e))}},t.Signal.prototype.exponentialRampToValueNow=function(t,e){var i=this.now();this.setCurrentValueNow(i),"+"===e.toString().charAt(0)&&(e=e.substr(1)),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e))},t.Signal.prototype.linearRampToValueNow=function(t,e){var i=this.now();this.setCurrentValueNow(i),t*=this._syncRatio,"+"===e.toString().charAt(0)&&(e=e.substr(1)),this._scalar.gain.linearRampToValueAtTime(t,i+this.toSeconds(e))},t.Signal.prototype.setTargetAtTime=function(t,e,i){t*=this._syncRatio,this._scalar.gain.setTargetAtTime(t,this.toSeconds(e),i)},t.Signal.prototype.setValueCurveAtTime=function(t,e,i){for(var o=0;o0?this.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n):this.oscillator.frequency.linearRampToValueAtTime(t,o+i+n),this.phaseAmount&&this.phase(this.phaseAmount)}},t.Oscillator.prototype.getFreq=function(){return this.oscillator.frequency.value},t.Oscillator.prototype.setType=function(t){this.oscillator.type=t},t.Oscillator.prototype.getType=function(){return this.oscillator.type},t.Oscillator.prototype.connect=function(t){t?t.hasOwnProperty("input")?(this.panner.connect(t.input),this.connection=t.input):(this.panner.connect(t),this.connection=t):this.panner.connect(e.input)},t.Oscillator.prototype.disconnect=function(){this.output.disconnect(),this.panner.disconnect(),this.output.connect(this.panner),this.oscMods=[]},t.Oscillator.prototype.pan=function(t,e){this.panPosition=t,this.panner.pan(t,e)},t.Oscillator.prototype.getPan=function(){return this.panPosition},t.Oscillator.prototype.dispose=function(){if(this.oscillator){var t=e.audiocontext.currentTime;this.stop(t),this.disconnect(),this.oscillator.disconnect(),this.panner=null,this.oscillator=null}this.osc2&&this.osc2.dispose()},t.Oscillator.prototype.phase=function(i){var o=t.prototype.map(i,0,1,0,1/this.f),n=e.audiocontext.currentTime;this.phaseAmount=i,this.dNode||(this.dNode=e.audiocontext.createDelay(),this.oscillator.disconnect(),this.oscillator.connect(this.dNode),this.dNode.connect(this.output)),this.dNode.delayTime.setValueAtTime(o,n)};var s=function(t,e,i,o,n){var r=t.oscillator;for(var s in t.mathOps)t.mathOps[s]instanceof n&&(r.disconnect(),t.mathOps[s].dispose(),i=s,i0&&(r=t.mathOps[s-1]),r.disconnect(),r.connect(e),e.connect(o),t.mathOps[i]=e,t};t.Oscillator.prototype.add=function(t){var e=new o(t),i=this.mathOps.length-1,n=this.output;return s(this,e,i,n,o)},t.Oscillator.prototype.mult=function(t){var e=new n(t),i=this.mathOps.length-1,o=this.output;return s(this,e,i,o,n)},t.Oscillator.prototype.scale=function(e,i,o,n){var a,u;4===arguments.length?(a=t.prototype.map(o,e,i,0,1)-.5,u=t.prototype.map(n,e,i,0,1)-.5):(a=arguments[0],u=arguments[1]);var c=new r(a,u),h=this.mathOps.length-1,p=this.output;return s(this,c,h,p,r)},t.SinOsc=function(e){t.Oscillator.call(this,e,"sine")},t.SinOsc.prototype=Object.create(t.Oscillator.prototype),t.TriOsc=function(e){t.Oscillator.call(this,e,"triangle")},t.TriOsc.prototype=Object.create(t.Oscillator.prototype),t.SawOsc=function(e){t.Oscillator.call(this,e,"sawtooth")},t.SawOsc.prototype=Object.create(t.Oscillator.prototype),t.SqrOsc=function(e){t.Oscillator.call(this,e,"square")},t.SqrOsc.prototype=Object.create(t.Oscillator.prototype)}(i,l,f,d,y);var g;g=function(){"use strict";var e=i,o=f,n=d,r=y,s=c;s.setContext(e.audiocontext),t.Env=function(i,o,n,r,s,a,u,c){this.aTime=i,this.aLevel=o,this.dTime=n||0,this.dLevel=r||0,this.sTime=s||0,this.sLevel=a||0,this.rTime=u||0,this.rLevel=c||0,this.output=e.audiocontext.createGain(),this.control=new t.Signal,this.control.connect(this.output),this.connection=null,this.mathOps=[this.control],this.sourceToClear=null,this.wasTriggered=!1,e.soundArray.push(this)},t.Env.prototype.set=function(t,e,i,o,n,r,s,a){this.aTime=t,this.aLevel=e,this.dTime=i||0,this.dLevel=o||0,this.sTime=n||0,this.sLevel=r||0,this.rTime=s||0,this.rLevel=a||0},t.Env.prototype.setInput=function(){for(var t=0;tn;n++)i[n]=1;var r=t.createBufferSource();return r.buffer=e,r.loop=!0,r}var o=i;t.Pulse=function(i,n){t.Oscillator.call(this,i,"sawtooth"),this.w=n||0,this.osc2=new t.SawOsc(i),this.dNode=o.audiocontext.createDelay(),this.dcOffset=e(),this.dcGain=o.audiocontext.createGain(),this.dcOffset.connect(this.dcGain),this.dcGain.connect(this.output),this.f=i||440;var r=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=r,this.dcGain.gain.value=1.7*(.5-this.w),this.osc2.disconnect(),this.osc2.panner.disconnect(),this.osc2.amp(-1),this.osc2.output.connect(this.dNode),this.dNode.connect(this.output),this.output.gain.value=1,this.output.connect(this.panner)},t.Pulse.prototype=Object.create(t.Oscillator.prototype),t.Pulse.prototype.width=function(e){if("number"==typeof e){if(1>=e&&e>=0){this.w=e;var i=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=i}this.dcGain.gain.value=1.7*(.5-this.w)}else{e.connect(this.dNode.delayTime);var o=new t.SignalAdd(-.5);o.setInput(e),o=o.mult(-1),o=o.mult(1.7),o.connect(this.dcGain.gain)}},t.Pulse.prototype.start=function(t,i){var n=o.audiocontext.currentTime,r=i||0;if(!this.started){var s=t||this.f,a=this.oscillator.type;this.oscillator=o.audiocontext.createOscillator(),this.oscillator.frequency.setValueAtTime(s,n),this.oscillator.type=a,this.oscillator.connect(this.output),this.oscillator.start(r+n),this.osc2.oscillator=o.audiocontext.createOscillator(),this.osc2.oscillator.frequency.setValueAtTime(s,r+n),this.osc2.oscillator.type=a,this.osc2.oscillator.connect(this.osc2.output),this.osc2.start(r+n),this.freqNode=[this.oscillator.frequency,this.osc2.oscillator.frequency],this.dcOffset=e(),this.dcOffset.connect(this.dcGain),this.dcOffset.start(r+n),void 0!==this.mods&&void 0!==this.mods.frequency&&(this.mods.frequency.connect(this.freqNode[0]),this.mods.frequency.connect(this.freqNode[1])),this.started=!0,this.osc2.started=!0}},t.Pulse.prototype.stop=function(t){if(this.started){var e=t||0,i=o.audiocontext.currentTime;this.oscillator.stop(e+i),this.osc2.oscillator.stop(e+i),this.dcOffset.stop(e+i),this.started=!1,this.osc2.started=!1}},t.Pulse.prototype.freq=function(t,e,i){if("number"==typeof t){this.f=t;var n=o.audiocontext.currentTime,e=e||0,i=i||0,r=this.oscillator.frequency.value;this.oscillator.frequency.cancelScheduledValues(n),this.oscillator.frequency.setValueAtTime(r,n+i),this.oscillator.frequency.exponentialRampToValueAtTime(t,i+e+n),this.osc2.oscillator.frequency.cancelScheduledValues(n),this.osc2.oscillator.frequency.setValueAtTime(r,n+i),this.osc2.oscillator.frequency.exponentialRampToValueAtTime(t,i+e+n),this.freqMod&&(this.freqMod.output.disconnect(),this.freqMod=null)}else t.output&&(t.output.disconnect(),t.output.connect(this.oscillator.frequency),t.output.connect(this.osc2.oscillator.frequency),this.freqMod=t)}}(i,v);var _;_=function(){"use strict";var e=i;t.Noise=function(){t.Oscillator.call(this),delete this.f,delete this.freq,delete this.oscillator,this.buffer=o},t.Noise.prototype=Object.create(t.Oscillator.prototype);var o=function(){for(var t=2*e.audiocontext.sampleRate,i=e.audiocontext.createBuffer(1,t,e.audiocontext.sampleRate),o=i.getChannelData(0),n=0;t>n;n++)o[n]=2*Math.random()-1;return i.type="white",i}(),n=function(){var t,i,o,n,r,s,a,u=2*e.audiocontext.sampleRate,c=e.audiocontext.createBuffer(1,u,e.audiocontext.sampleRate),h=c.getChannelData(0);t=i=o=n=r=s=a=0;for(var p=0;u>p;p++){var l=2*Math.random()-1;t=.99886*t+.0555179*l,i=.99332*i+.0750759*l,o=.969*o+.153852*l,n=.8665*n+.3104856*l,r=.55*r+.5329522*l,s=-.7616*s-.016898*l,h[p]=t+i+o+n+r+s+a+.5362*l,h[p]*=.11,a=.115926*l}return c.type="pink",c}(),r=function(){for(var t=2*e.audiocontext.sampleRate,i=e.audiocontext.createBuffer(1,t,e.audiocontext.sampleRate),o=i.getChannelData(0),n=0,r=0;t>r;r++){var s=2*Math.random()-1;o[r]=(n+.02*s)/1.02,n=o[r],o[r]*=3.5}return i.type="brown",i}();t.Noise.prototype.setType=function(t){switch(t){case"white":this.buffer=o;break;case"pink":this.buffer=n;break;case"brown":this.buffer=r;break;default:this.buffer=o}if(this.started){var i=e.audiocontext.currentTime;this.stop(i),this.start(i+.01)}},t.Noise.prototype.getType=function(){return this.buffer.type},t.Noise.prototype.start=function(){this.started&&this.stop(),this.noise=e.audiocontext.createBufferSource(),this.noise.buffer=this.buffer,this.noise.loop=!0,this.noise.connect(this.output);var t=e.audiocontext.currentTime;this.noise.start(t),this.started=!0},t.Noise.prototype.stop=function(){var t=e.audiocontext.currentTime;this.noise&&(this.noise.stop(t),this.started=!1)},t.Noise.prototype.dispose=function(){var t=e.audiocontext.currentTime;this.noise&&(this.noise.disconnect(),this.stop(t)),this.output&&this.output.disconnect(),this.panner&&this.panner.disconnect(),this.output=null,this.panner=null,this.buffer=null,this.noise=null}}(i);var S;S=function(){"use strict";var e=i;t.AudioIn=function(){this.input=e.audiocontext.createGain(),this.output=e.audiocontext.createGain(),this.stream=null,this.mediaStream=null,this.currentSource=0,this.enabled=!1,this.amplitude=new t.Amplitude,this.output.connect(this.amplitude.input),"undefined"==typeof window.MediaStreamTrack?window.alert("This browser does not support MediaStreamTrack"):"function"==typeof window.MediaStreamTrack.getSources&&window.MediaStreamTrack.getSources(this._gotSources),e.soundArray.push(this)},t.AudioIn.prototype.start=function(t,i){var o=this;if(e.inputSources[o.currentSource]){var n=e.inputSources[o.currentSource].id,r={audio:{optional:[{sourceId:n}]}};window.navigator.getUserMedia(r,this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=e.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),t&&t(),o.amplitude.setInput(o.output)},this._onStreamError=function(t){i?i(t):console.error(t)})}else window.navigator.getUserMedia({audio:!0},this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=e.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),o.amplitude.setInput(o.output),t&&t()},this._onStreamError=function(t){i?i(t):console.error(t)})},t.AudioIn.prototype.stop=function(){this.stream&&this.stream.stop()},t.AudioIn.prototype.connect=function(t){this.output.connect(t?t.hasOwnProperty("input")?t.input:t.hasOwnProperty("analyser")?t.analyser:t:e.input)},t.AudioIn.prototype.disconnect=function(t){this.output.disconnect(t),this.output.connect(this.amplitude.input)},t.AudioIn.prototype.getLevel=function(t){return t&&(this.amplitude.smoothing=t),this.amplitude.getLevel()},t.AudioIn.prototype._gotSources=function(t){for(var e=0;e0?e.inputSources:"This browser does not support MediaStreamTrack.getSources()"},t.AudioIn.prototype.getSources=function(t){"function"==typeof window.MediaStreamTrack.getSources?window.MediaStreamTrack.getSources(function(i){for(var o=0,n=i.length;n>o;o++){var r=i[o];"audio"===r.kind&&e.inputSources.push(r)}t(e.inputSources)}):console.log("This browser does not support MediaStreamTrack.getSources()")},t.AudioIn.prototype.setSource=function(t){var i=this;e.inputSources.length>0&&t=t&&(t=1),"number"==typeof t?(i.biquad.frequency.value=t,i.biquad.frequency.cancelScheduledValues(this.ac.currentTime+.01+o),i.biquad.frequency.exponentialRampToValueAtTime(t,this.ac.currentTime+.02+o)):t&&t.connect(this.biquad.frequency),i.biquad.frequency.value},t.Filter.prototype.res=function(t,e){var i=this,o=e||0;return"number"==typeof t?(i.biquad.Q.value=t,i.biquad.Q.cancelScheduledValues(i.ac.currentTime+.01+o),i.biquad.Q.linearRampToValueAtTime(t,i.ac.currentTime+.02+o)):t&&freq.connect(this.biquad.Q),i.biquad.Q.value},t.Filter.prototype.setType=function(t){this.biquad.type=t},t.Filter.prototype.amp=function(t,i,o){var i=i||0,o=o||0,n=e.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(t,n+o+i+.001)},t.Filter.prototype.connect=function(e){var i=e||t.soundOut.input;this.output.connect(i)},t.Filter.prototype.disconnect=function(){this.output.disconnect()},t.LowPass=function(){t.Filter.call(this,"lowpass")},t.LowPass.prototype=Object.create(t.Filter.prototype),t.HighPass=function(){t.Filter.call(this,"highpass")},t.HighPass.prototype=Object.create(t.Filter.prototype),t.BandPass=function(){t.Filter.call(this,"bandpass")},t.BandPass.prototype=Object.create(t.Filter.prototype)}(i);var A;A=function(){"use strict";var e=i;t.Delay=function(){this.ac=e.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this._split=this.ac.createChannelSplitter(2),this._merge=this.ac.createChannelMerger(2),this._leftGain=this.ac.createGain(),this._rightGain=this.ac.createGain(),this.leftDelay=this.ac.createDelay(),this.rightDelay=this.ac.createDelay(),this._leftFilter=new t.Filter,this._rightFilter=new t.Filter,this._leftFilter.disconnect(),this._rightFilter.disconnect(),this.lowPass=this._leftFilter,this._leftFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._rightFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._leftFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this._rightFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this.input.connect(this._split),this.leftDelay.connect(this._leftGain),this.rightDelay.connect(this._rightGain),this._leftGain.connect(this._leftFilter.input),this._rightGain.connect(this._rightFilter.input),this._merge.connect(this.output),this.output.connect(t.soundOut.input),this._leftFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this._rightFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this.setType(0),this._maxDelay=this.leftDelay.delayTime.maxValue},t.Delay.prototype.process=function(t,e,i,o){var n=i||0,r=e||0;if(n>=1)throw new Error("Feedback value will force a positive feedback loop.");if(r>=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.setValueAtTime(n,this.ac.currentTime),this._rightGain.gain.setValueAtTime(n,this.ac.currentTime),o&&(this._leftFilter.freq(o),this._rightFilter.freq(o))},t.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))},t.Delay.prototype.feedback=function(t){if("number"!=typeof t)t.connect(this._leftGain.gain),t.connect(this._rightGain.gain);else{if(t>=1)throw new Error("Feedback value will force a positive feedback loop.");this._leftGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime),this._rightGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime) +}},t.Delay.prototype.filter=function(t,e){this._leftFilter.set(t,e),this._rightFilter.set(t,e)},t.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._leftFilter.output.connect(this._merge,0,1),this._leftFilter.output.connect(this.leftDelay),this._leftFilter.output.connect(this.rightDelay)}},t.Delay.prototype.amp=function(t,i,o){var i=i||0,o=o||0,n=e.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(t,n+o+i+.001)},t.Delay.prototype.connect=function(e){var i=e||t.soundOut.input;this.output.connect(i)},t.Delay.prototype.disconnect=function(){this.output.disconnect()}}(i,b);var w;w=function(){"use strict";var e=i,o=n;t.Reverb=function(){this.ac=e.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse(),this.connect(),e.soundArray.push(this)},t.Reverb.prototype.process=function(t,e,i,o){t.connect(this.input);var n=!1;e&&(this._seconds=e,n=!0),i&&(this._decay=i),o&&(this._reverse=o),n&&this._buildImpulse()},t.Reverb.prototype.set=function(t,e,i){var o=!1;t&&(this._seconds=t,o=!0),e&&(this._decay=e),i&&(this._reverse=i),o&&this._buildImpulse()},t.Reverb.prototype.amp=function(t,i,o){var i=i||0,o=o||0,n=e.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(t,n+o+i+.001)},t.Reverb.prototype.connect=function(e){var i=e||t.soundOut.input;this.output.connect(i.input?i.input:i)},t.Reverb.prototype.disconnect=function(){this.output.disconnect()},t.Reverb.prototype._buildImpulse=function(){var t,e,i=this.ac.sampleRate,o=i*this._seconds,n=this._decay,r=this.ac.createBuffer(2,o,i),s=r.getChannelData(0),a=r.getChannelData(1);for(e=0;o>e;e++)t=this.reverse?o-e:e,s[e]=(2*Math.random()-1)*Math.pow(1-t/o,n),a[e]=(2*Math.random()-1)*Math.pow(1-t/o,n);this.convolverNode.buffer=r},t.Reverb.prototype.dispose=function(){this.convolverNode&&(this.convolverNode.buffer=null,this.convolverNode=null),"undefined"!=typeof this.output&&(this.output.disconnect(),this.output=null),"undefined"!=typeof this.panner&&(this.panner.disconnect(),this.panner=null)},t.Convolver=function(t,i,o){this.ac=e.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),t?(this.impulses=[],this._loadBuffer(t,i,o)):(this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse()),this.connect(),e.soundArray.push(this)},t.Convolver.prototype=Object.create(t.Reverb.prototype),t.prototype.registerPreloadMethod("createConvolver",t.prototype),t.prototype.createConvolver=function(e,i,o){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var n=new t.Convolver(e,i,o);return n.impulses=[],n},t.Convolver.prototype._loadBuffer=function(e,i,n){var e=t.prototype._checkFileFormats(e),r=this,s=(new Error).stack,a=t.prototype.getAudioContext(),u=new XMLHttpRequest;u.open("GET",e,!0),u.responseType="arraybuffer",u.onload=function(){if(200==u.status)a.decodeAudioData(u.response,function(t){var o={},n=e.split("/");o.name=n[n.length-1],o.audioBuffer=t,r.impulses.push(o),r.convolverNode.buffer=o.audioBuffer,i&&i(o)},function(){var t=new o("decodeAudioData",s,r.url),e="AudioContext error at decodeAudioData for "+r.url;n?(t.msg=e,n(t)):console.error(e+"\n The error stack trace includes: \n"+t.stack)});else{var t=new o("loadConvolver",s,r.url),c="Unable to load "+r.url+". The request status was: "+u.status+" ("+u.statusText+")";n?(t.message=c,n(t)):console.error(c+"\n The error stack trace includes: \n"+t.stack)}},u.onerror=function(){var t=new o("loadConvolver",s,r.url),e="There was no response from the server at "+r.url+". Check the url and internet connectivity.";n?(t.message=e,n(t)):console.error(e+"\n The error stack trace includes: \n"+t.stack)},u.send()},t.Convolver.prototype.set=null,t.Convolver.prototype.process=function(t){t.connect(this.input)},t.Convolver.prototype.impulses=[],t.Convolver.prototype.addImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this._loadBuffer(t,e,i)},t.Convolver.prototype.resetImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this.impulses=[],this._loadBuffer(t,e,i)},t.Convolver.prototype.toggleImpulse=function(t){if("number"==typeof t&&ts;s++){var a=o[s];a>0&&!n?(n=!0,setTimeout(function(){var t=e+r.samplesToSeconds(s+2*i);return function(){r.tick(t)}}(),0)):0>a&&n&&(n=!1)}this._upTick=n},t.Clock.prototype.dispose=function(){this._jsNode.disconnect(),this._controlSignal.dispose(),this._oscillator&&(this._oscillator.onended(),this._oscillator.disconnect()),this._jsNode.onaudioprocess=function(){},this._jsNode=null,this._controlSignal=null,this._oscillator=null},t.Clock}(c);var P;P=function(){"use strict";var e=i,o=x,n=e.audiocontext;t.Metro=function(){this.clock=new o(n.sampleRate,this.ontick.bind(this)),this.syncedParts=[],this.bpm=120,this._init(),this.tickCallback=function(){}};var r=0,s=0;t.Metro.prototype.ontick=function(t){var i=t-r,o=t-e.audiocontext.currentTime;if(!(-.02>=i-s)){r=t;for(var n in this.syncedParts){var a=this.syncedParts[n];a.incrementStep(o);for(var u in a.phrases){var c=a.phrases[u],h=c.sequence,p=this.metroTicks%h.length;0!==h[p]&&(this.metroTicks=t.parts.length?(t.scoreStep=0,t.onended()):(t.scoreStep=0,t.parts[t.currentPart-1].stop(),t.parts[t.currentPart].start())}var o=i,n=120;t.prototype.setBPM=function(t,e){n=t;for(var i in o.parts)o.parts[i].setBPM(n,e)},t.Phrase=function(t,e,i){this.phraseStep=0,this.name=t,this.callback=e,this.sequence=i},t.Part=function(e,i){this.length=e||0,this.partStep=0,this.phrases=[],this.looping=!1,this.isPlaying=!1,this.onended=function(){this.stop()},this.tatums=i||.0625,this.metro=new t.Metro,this.metro._init(),this.metro.beatLength(this.tatums),this.metro.setBPM(n),o.parts.push(this),this.callback=function(){}},t.Part.prototype.setBPM=function(t,e){this.metro.setBPM(t,e)},t.Part.prototype.getBPM=function(){return this.metro.getBPM()},t.Part.prototype.start=function(t){if(!this.isPlaying){this.isPlaying=!0,this.metro.resetSync(this);var e=t||0;this.metro.start(e)}},t.Part.prototype.loop=function(t){this.looping=!0,this.onended=function(){this.partStep=0};var e=t||0;this.start(e)},t.Part.prototype.noLoop=function(){this.looping=!1,this.onended=function(){this.stop()}},t.Part.prototype.stop=function(t){this.partStep=0,this.pause(t)},t.Part.prototype.pause=function(t){this.isPlaying=!1;var e=t||0;this.metro.stop(e)},t.Part.prototype.addPhrase=function(e,i,o){var n;if(3===arguments.length)n=new t.Phrase(e,i,o);else{if(!(arguments[0]instanceof t.Phrase))throw"invalid input. addPhrase accepts name, callback, array or a p5.Phrase";n=arguments[0]}this.phrases.push(n),n.sequence.length>this.length&&(this.length=n.sequence.length)},t.Part.prototype.removePhrase=function(t){for(var e in this.phrases)this.phrases[e].name===t&&this.phrases.split(e,1)},t.Part.prototype.getPhrase=function(t){for(var e in this.phrases)if(this.phrases[e].name===t)return this.phrases[e]},t.Part.prototype.replaceSequence=function(t,e){for(var i in this.phrases)this.phrases[i].name===t&&(this.phrases[i].sequence=e)},t.Part.prototype.incrementStep=function(t){this.partStepr;)o[r++]=t[n],o[r++]=e[n],n++;return o}function o(t,e,i){for(var o=i.length,n=0;o>n;n++)t.setUint8(e+n,i.charCodeAt(n))}var n=i,r=n.audiocontext;t.SoundRecorder=function(){this.input=r.createGain(),this.output=r.createGain(),this.recording=!1,this.bufferSize=1024,this._channels=2,this._clear(),this._jsNode=r.createScriptProcessor(this.bufferSize,this._channels,2),this._jsNode.onaudioprocess=this._audioprocess.bind(this),this._callback=function(){},this._jsNode.connect(t.soundOut._silentNode),this.setInput(),n.soundArray.push(this)},t.SoundRecorder.prototype.setInput=function(e){this.input.disconnect(),this.input=null,this.input=r.createGain(),this.input.connect(this._jsNode),this.input.connect(this.output),e?e.connect(this.input):t.soundOut.output.connect(this.input)},t.SoundRecorder.prototype.record=function(t,e,i){this.recording=!0,e&&(this.sampleLimit=Math.round(e*r.sampleRate)),t&&i?this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer),i()}:t&&(this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer)})},t.SoundRecorder.prototype.stop=function(){this.recording=!1,this._callback(),this._clear()},t.SoundRecorder.prototype._clear=function(){this._leftBuffers=[],this._rightBuffers=[],this.recordedSamples=0,this.sampleLimit=null},t.SoundRecorder.prototype._audioprocess=function(t){if(this.recording!==!1&&this.recording===!0)if(this.sampleLimit&&this.recordedSamples>=this.sampleLimit)this.stop();else{var e=t.inputBuffer.getChannelData(0),i=t.inputBuffer.getChannelData(1);this._leftBuffers.push(new Float32Array(e)),this._rightBuffers.push(new Float32Array(i)),this.recordedSamples+=this.bufferSize}},t.SoundRecorder.prototype._getBuffer=function(){var t=[];return t.push(this._mergeBuffers(this._leftBuffers)),t.push(this._mergeBuffers(this._rightBuffers)),t},t.SoundRecorder.prototype._mergeBuffers=function(t){for(var e=new Float32Array(this.recordedSamples),i=0,o=t.length,n=0;o>n;n++){var r=t[n];e.set(r,i),i+=r.length}return e},t.SoundRecorder.prototype.dispose=function(){this._clear(),this._callback=function(){},this.input&&this.input.disconnect(),this.input=null,this._jsNode=null},t.prototype.saveSound=function(i,n){var r=i.buffer.getChannelData(0),s=i.buffer.getChannelData(1),a=e(r,s),u=new ArrayBuffer(44+2*a.length),c=new DataView(u);o(c,0,"RIFF"),c.setUint32(4,44+2*a.length,!0),o(c,8,"WAVE"),o(c,12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,2,!0),c.setUint32(24,44100,!0),c.setUint32(28,176400,!0),c.setUint16(32,4,!0),c.setUint16(34,16,!0),o(c,36,"data"),c.setUint32(40,2*a.length,!0);for(var h=a.length,p=44,l=1,f=0;h>f;f++)c.setInt16(p,32767*a[f]*l,!0),p+=2;t.prototype.writeFile([c],n,"wav")}}(e,i);var F;F=function(){"use strict";t.PeakDetect=function(t,e,i,o){this.framesPerPeak=o||20,this.framesSinceLastPeak=0,this.decayRate=.95,this.threshold=i||.35,this.cutoff=0,this.cutoffMult=1.5,this.energy=0,this.penergy=0,this.currentValue=0,this.isDetected=!1,this.f1=t||40,this.f2=e||2e4,this._onPeak=function(){}},t.PeakDetect.prototype.update=function(t){var e=this.energy=t.getEnergy(this.f1,this.f2)/255;e>this.cutoff&&e>this.threshold&&e-this.penergy>0?(this._onPeak(),this.isDetected=!0,this.cutoff=e*this.cutoffMult,this.framesSinceLastPeak=0):(this.isDetected=!1,this.framesSinceLastPeak<=this.framesPerPeak?this.framesSinceLastPeak++:(this.cutoff*=this.decayRate,this.cutoff=Math.max(this.cutoff,this.threshold))),this.currentValue=e,this.penergy=e},t.PeakDetect.prototype.onPeak=function(t,e){var i=this;i._onPeak=function(){t(i.energy,e)}}}(i);var O;O=function(){"use strict";var e=i;t.Gain=function(){this.ac=e.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.output)},t.Gain.prototype.setInput=function(t){t.connect(this.input)},t.Gain.prototype.connect=function(e){var i=e||t.soundOut.input;this.output.connect(i.input?i.input:i)},t.Gain.prototype.disconnect=function(){this.output.disconnect()},t.Gain.prototype.amp=function(t,i,o){var i=i||0,o=o||0,n=e.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o),this.output.gain.linearRampToValueAtTime(t,n+o+i)}}(i,e);var M;M=function(){"use strict";var t=e;return t}(e,i,o,n,r,s,a,u,m,v,g,T,_,S,b,A,w,P,C,N,F,O)}); \ No newline at end of file From bf1b736de19cd250e1640b9cabcdc03650f0a796 Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Mon, 18 Jan 2016 16:31:47 -0500 Subject: [PATCH 05/25] add web-audio-automation-timeline --- Gruntfile.js | 1 + package.json | 13 ++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 10a8a985..bd186b57 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -103,6 +103,7 @@ module.exports = function(grunt) { out: 'lib/p5.sound.js', paths: { 'Tone' : 'node_modules/tone/Tone', + 'automation-timeline': 'node_modules/web-audio-automation-timeline/build/automation-timeline-amd', 'panner' : 'src/panner', 'sndcore': 'src/sndcore', 'master': 'src/master', diff --git a/package.json b/package.json index cdfcd129..8bb6a265 100644 --- a/package.json +++ b/package.json @@ -5,11 +5,7 @@ "url": "https://github.com/therewasaguy/p5.sound.js.git" }, "version": "0.2.17", - "licenses": [ - { - "type": "MIT" - } - ], + "license": "MIT", "devDependencies": { "grunt": "~0.4.2", "grunt-contrib-jshint": "~0.6.3", @@ -22,7 +18,10 @@ "grunt-contrib-yuidoc": "0.5.2", "almond": "~0.2.7", "amdclean": "~2.0", - "grunt-contrib-sass": "~0.7.2", - "tone": "~0.3" + "grunt-contrib-sass": "~0.7.2" + }, + "dependencies": { + "tone": "git+https://github.com/therewasaguy/tone.js.git#tonep5mod", + "web-audio-automation-timeline": "therewasaguy/web-audio-automation-timeline" } } From cd878b474200530b0d9419c6cf4a18f6d4d98f15 Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Mon, 18 Jan 2016 17:09:14 -0500 Subject: [PATCH 06/25] update Tone.js dep --- Gruntfile.js | 2 +- examples/loop_stepSequencer/sketch.js | 1 - lib/p5.sound.js | 1781 ++++++++++++++++++++----- lib/p5.sound.min.js | 7 +- package.json | 2 +- src/metro.js | 24 +- src/oscillator.js | 2 + 7 files changed, 1460 insertions(+), 359 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index bd186b57..92911303 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -70,7 +70,7 @@ module.exports = function(grunt) { include: ['src/app'], onBuildWrite: function( name, path, contents ) { if (path.indexOf('node_modules/tone/') > -1) { - return '/** Tone.js module by Yotam Mann, MIT License 2014 http://opensource.org/licenses/MIT **/\n' + + return '/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/\n' + require('amdclean').clean({ 'code': contents.replace(/console.log(.*);/g, ''), 'escodegen': { diff --git a/examples/loop_stepSequencer/sketch.js b/examples/loop_stepSequencer/sketch.js index fdcdc6a3..3725d439 100644 --- a/examples/loop_stepSequencer/sketch.js +++ b/examples/loop_stepSequencer/sketch.js @@ -31,7 +31,6 @@ function setup() { // set tempo (Beats Per Minute) of the part and tell it to loop part.setBPM(80); part.loop(); - } function playKick(time, params) { diff --git a/lib/p5.sound.js b/lib/p5.sound.js index 46ba075d..8cf8a6c3 100644 --- a/lib/p5.sound.js +++ b/lib/p5.sound.js @@ -2828,13 +2828,16 @@ fft = function () { } }; }(master); -/** Tone.js module by Yotam Mann, MIT License 2014 http://opensource.org/licenses/MIT **/ +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ var Tone_core_Tone; Tone_core_Tone = function () { 'use strict'; function isUndef(val) { return val === void 0; } + function isFunction(val) { + return typeof val === 'function'; + } var audioContext; if (isUndef(window.AudioContext)) { window.AudioContext = window.webkitAudioContext; @@ -2847,55 +2850,53 @@ Tone_core_Tone = function () { } else { throw new Error('Web Audio is not supported in this browser'); } - if (typeof AudioContext.prototype.createGain !== 'function') { + if (!isFunction(AudioContext.prototype.createGain)) { AudioContext.prototype.createGain = AudioContext.prototype.createGainNode; } - if (typeof AudioContext.prototype.createDelay !== 'function') { + if (!isFunction(AudioContext.prototype.createDelay)) { AudioContext.prototype.createDelay = AudioContext.prototype.createDelayNode; } - if (typeof AudioContext.prototype.createPeriodicWave !== 'function') { + if (!isFunction(AudioContext.prototype.createPeriodicWave)) { AudioContext.prototype.createPeriodicWave = AudioContext.prototype.createWaveTable; } - if (typeof AudioBufferSourceNode.prototype.start !== 'function') { + if (!isFunction(AudioBufferSourceNode.prototype.start)) { AudioBufferSourceNode.prototype.start = AudioBufferSourceNode.prototype.noteGrainOn; } - if (typeof AudioBufferSourceNode.prototype.stop !== 'function') { + if (!isFunction(AudioBufferSourceNode.prototype.stop)) { AudioBufferSourceNode.prototype.stop = AudioBufferSourceNode.prototype.noteOff; } - if (typeof OscillatorNode.prototype.start !== 'function') { + if (!isFunction(OscillatorNode.prototype.start)) { OscillatorNode.prototype.start = OscillatorNode.prototype.noteOn; } - if (typeof OscillatorNode.prototype.stop !== 'function') { + if (!isFunction(OscillatorNode.prototype.stop)) { OscillatorNode.prototype.stop = OscillatorNode.prototype.noteOff; } - if (typeof OscillatorNode.prototype.setPeriodicWave !== 'function') { + if (!isFunction(OscillatorNode.prototype.setPeriodicWave)) { OscillatorNode.prototype.setPeriodicWave = OscillatorNode.prototype.setWaveTable; } - if (!window.Tone) { - AudioNode.prototype._nativeConnect = AudioNode.prototype.connect; - AudioNode.prototype.connect = function (B, outNum, inNum) { - if (B.input) { - if (Array.isArray(B.input)) { - if (isUndef(inNum)) { - inNum = 0; - } - this.connect(B.input[inNum]); - } else { - this.connect(B.input, outNum, inNum); + AudioNode.prototype._nativeConnect = AudioNode.prototype.connect; + AudioNode.prototype.connect = function (B, outNum, inNum) { + if (B.input) { + if (Array.isArray(B.input)) { + if (isUndef(inNum)) { + inNum = 0; } + this.connect(B.input[inNum]); } else { - try { - if (B instanceof AudioNode) { - this._nativeConnect(B, outNum, inNum); - } else { - this._nativeConnect(B, outNum); - } - } catch (e) { - throw new Error('error connecting to node: ' + B); + this.connect(B.input, outNum, inNum); + } + } else { + try { + if (B instanceof AudioNode) { + this._nativeConnect(B, outNum, inNum); + } else { + this._nativeConnect(B, outNum); } + } catch (e) { + throw new Error('error connecting to node: ' + B); } - }; - } + } + }; var Tone = function (inputs, outputs) { if (isUndef(inputs) || inputs === 1) { this.input = this.context.createGain(); @@ -2908,10 +2909,139 @@ Tone_core_Tone = function () { this.output = new Array(inputs); } }; + Tone.prototype.set = function (params, value, rampTime) { + if (this.isObject(params)) { + rampTime = value; + } else if (this.isString(params)) { + var tmpObj = {}; + tmpObj[params] = value; + params = tmpObj; + } + for (var attr in params) { + value = params[attr]; + var parent = this; + if (attr.indexOf('.') !== -1) { + var attrSplit = attr.split('.'); + for (var i = 0; i < attrSplit.length - 1; i++) { + parent = parent[attrSplit[i]]; + } + attr = attrSplit[attrSplit.length - 1]; + } + var param = parent[attr]; + if (isUndef(param)) { + continue; + } + if (Tone.Signal && param instanceof Tone.Signal || Tone.Param && param instanceof Tone.Param) { + if (param.value !== value) { + if (isUndef(rampTime)) { + param.value = value; + } else { + param.rampTo(value, rampTime); + } + } + } else if (param instanceof AudioParam) { + if (param.value !== value) { + param.value = value; + } + } else if (param instanceof Tone) { + param.set(value); + } else if (param !== value) { + parent[attr] = value; + } + } + return this; + }; + Tone.prototype.get = function (params) { + if (isUndef(params)) { + params = this._collectDefaults(this.constructor); + } else if (this.isString(params)) { + params = [params]; + } + var ret = {}; + for (var i = 0; i < params.length; i++) { + var attr = params[i]; + var parent = this; + var subRet = ret; + if (attr.indexOf('.') !== -1) { + var attrSplit = attr.split('.'); + for (var j = 0; j < attrSplit.length - 1; j++) { + var subAttr = attrSplit[j]; + subRet[subAttr] = subRet[subAttr] || {}; + subRet = subRet[subAttr]; + parent = parent[subAttr]; + } + attr = attrSplit[attrSplit.length - 1]; + } + var param = parent[attr]; + if (this.isObject(params[attr])) { + subRet[attr] = param.get(); + } else if (Tone.Signal && param instanceof Tone.Signal) { + subRet[attr] = param.value; + } else if (Tone.Param && param instanceof Tone.Param) { + subRet[attr] = param.value; + } else if (param instanceof AudioParam) { + subRet[attr] = param.value; + } else if (param instanceof Tone) { + subRet[attr] = param.get(); + } else if (!isFunction(param) && !isUndef(param)) { + subRet[attr] = param; + } + } + return ret; + }; + Tone.prototype._collectDefaults = function (constr) { + var ret = []; + if (!isUndef(constr.defaults)) { + ret = Object.keys(constr.defaults); + } + if (!isUndef(constr._super)) { + var superDefs = this._collectDefaults(constr._super); + for (var i = 0; i < superDefs.length; i++) { + if (ret.indexOf(superDefs[i]) === -1) { + ret.push(superDefs[i]); + } + } + } + return ret; + }; + Tone.prototype.toString = function () { + for (var className in Tone) { + var isLetter = className[0].match(/^[A-Z]$/); + var sameConstructor = Tone[className] === this.constructor; + if (isFunction(Tone[className]) && isLetter && sameConstructor) { + return className; + } + } + return 'Tone'; + }; Tone.context = audioContext; Tone.prototype.context = Tone.context; Tone.prototype.bufferSize = 2048; - Tone.prototype.bufferTime = Tone.prototype.bufferSize / Tone.context.sampleRate; + Tone.prototype.blockTime = 128 / Tone.context.sampleRate; + Tone.prototype.dispose = function () { + if (!this.isUndef(this.input)) { + if (this.input instanceof AudioNode) { + this.input.disconnect(); + } + this.input = null; + } + if (!this.isUndef(this.output)) { + if (this.output instanceof AudioNode) { + this.output.disconnect(); + } + this.output = null; + } + return this; + }; + var _silentNode = null; + Tone.prototype.noGC = function () { + this.output.connect(_silentNode); + return this; + }; + AudioNode.prototype.noGC = function () { + this.connect(_silentNode); + return this; + }; Tone.prototype.connect = function (unit, outputNum, inputNum) { if (Array.isArray(this.output)) { outputNum = this.defaultArg(outputNum, 0); @@ -2919,6 +3049,7 @@ Tone_core_Tone = function () { } else { this.output.connect(unit, outputNum, inputNum); } + return this; }; Tone.prototype.disconnect = function (outputNum) { if (Array.isArray(this.output)) { @@ -2927,6 +3058,7 @@ Tone_core_Tone = function () { } else { this.output.disconnect(); } + return this; }; Tone.prototype.connectSeries = function () { if (arguments.length > 1) { @@ -2937,6 +3069,7 @@ Tone_core_Tone = function () { currentUnit = toUnit; } } + return this; }; Tone.prototype.connectParallel = function () { var connectFrom = arguments[0]; @@ -2946,6 +3079,7 @@ Tone_core_Tone = function () { connectFrom.connect(connectTo); } } + return this; }; Tone.prototype.chain = function () { if (arguments.length > 0) { @@ -2956,24 +3090,26 @@ Tone_core_Tone = function () { currentUnit = toUnit; } } + return this; }; Tone.prototype.fan = function () { if (arguments.length > 0) { - for (var i = 1; i < arguments.length; i++) { + for (var i = 0; i < arguments.length; i++) { this.connect(arguments[i]); } } + return this; }; AudioNode.prototype.chain = Tone.prototype.chain; AudioNode.prototype.fan = Tone.prototype.fan; Tone.prototype.defaultArg = function (given, fallback) { - if (typeof given === 'object' && typeof fallback === 'object') { + if (this.isObject(given) && this.isObject(fallback)) { var ret = {}; for (var givenProp in given) { - ret[givenProp] = this.defaultArg(given[givenProp], given[givenProp]); + ret[givenProp] = this.defaultArg(fallback[givenProp], given[givenProp]); } - for (var prop in fallback) { - ret[prop] = this.defaultArg(given[prop], fallback[prop]); + for (var fallbackProp in fallback) { + ret[fallbackProp] = this.defaultArg(given[fallbackProp], fallback[fallbackProp]); } return ret; } else { @@ -2982,7 +3118,7 @@ Tone_core_Tone = function () { }; Tone.prototype.optionsObject = function (values, keys, defaults) { var options = {}; - if (values.length === 1 && typeof values[0] === 'object') { + if (values.length === 1 && this.isObject(values[0])) { options = values[0]; } else { for (var i = 0; i < keys.length; i++) { @@ -2996,86 +3132,73 @@ Tone_core_Tone = function () { } }; Tone.prototype.isUndef = isUndef; - Tone.prototype.equalPowerScale = function (percent) { - var piFactor = 0.5 * Math.PI; - return Math.sin(percent * piFactor); - }; - Tone.prototype.logScale = function (gain) { - return Math.max(this.normalize(this.gainToDb(gain), -100, 0), 0); + Tone.prototype.isFunction = isFunction; + Tone.prototype.isNumber = function (arg) { + return typeof arg === 'number'; }; - Tone.prototype.expScale = function (gain) { - return this.dbToGain(this.interpolate(gain, -100, 0)); + Tone.prototype.isObject = function (arg) { + return Object.prototype.toString.call(arg) === '[object Object]' && arg.constructor === Object; }; - Tone.prototype.dbToGain = function (db) { - return Math.pow(2, db / 6); + Tone.prototype.isBoolean = function (arg) { + return typeof arg === 'boolean'; }; - Tone.prototype.gainToDb = function (gain) { - return 20 * (Math.log(gain) / Math.LN10); + Tone.prototype.isArray = function (arg) { + return Array.isArray(arg); }; - Tone.prototype.interpolate = function (input, outputMin, outputMax) { - return input * (outputMax - outputMin) + outputMin; + Tone.prototype.isString = function (arg) { + return typeof arg === 'string'; }; - Tone.prototype.normalize = function (input, inputMin, inputMax) { - if (inputMin > inputMax) { - var tmp = inputMax; - inputMax = inputMin; - inputMin = tmp; - } else if (inputMin == inputMax) { - return 0; - } - return (input - inputMin) / (inputMax - inputMin); + Tone.noOp = function () { }; - Tone.prototype.dispose = function () { - if (!this.isUndef(this.input)) { - if (this.input instanceof AudioNode) { - this.input.disconnect(); + Tone.prototype._readOnly = function (property) { + if (Array.isArray(property)) { + for (var i = 0; i < property.length; i++) { + this._readOnly(property[i]); } - this.input = null; + } else { + Object.defineProperty(this, property, { + writable: false, + enumerable: true + }); } - if (!this.isUndef(this.output)) { - if (this.output instanceof AudioNode) { - this.output.disconnect(); + }; + Tone.prototype._writable = function (property) { + if (Array.isArray(property)) { + for (var i = 0; i < property.length; i++) { + this._writable(property[i]); } - this.output = null; + } else { + Object.defineProperty(this, property, { writable: true }); } }; - var _silentNode = null; - Tone.prototype.noGC = function () { - this.output.connect(_silentNode); + Tone.State = { + Started: 'started', + Stopped: 'stopped', + Paused: 'paused' }; - AudioNode.prototype.noGC = function () { - this.connect(_silentNode); + Tone.prototype.equalPowerScale = function (percent) { + var piFactor = 0.5 * Math.PI; + return Math.sin(percent * piFactor); }; - Tone.prototype.now = function () { - return this.context.currentTime; + Tone.prototype.dbToGain = function (db) { + return Math.pow(2, db / 6); }; - Tone.prototype.samplesToSeconds = function (samples) { - return samples / this.context.sampleRate; + Tone.prototype.gainToDb = function (gain) { + return 20 * (Math.log(gain) / Math.LN10); }; - Tone.prototype.toSamples = function (time) { - var seconds = this.toSeconds(time); - return Math.round(seconds * this.context.sampleRate); + Tone.prototype.now = function () { + return this.context.currentTime; }; - Tone.prototype.toSeconds = function (time, now) { - now = this.defaultArg(now, this.now()); - if (typeof time === 'number') { - return time; - } else if (typeof time === 'string') { - var plusTime = 0; - if (time.charAt(0) === '+') { - time = time.slice(1); - plusTime = now; - } - return parseFloat(time) + plusTime; - } else { - return now; + Tone.extend = function (child, parent) { + if (isUndef(parent)) { + parent = Tone; } - }; - Tone.prototype.frequencyToSeconds = function (freq) { - return 1 / parseFloat(freq); - }; - Tone.prototype.secondsToFrequency = function (seconds) { - return 1 / seconds; + function TempConstructor() { + } + TempConstructor.prototype = parent.prototype; + child.prototype = new TempConstructor(); + child.prototype.constructor = child; + child._super = parent; }; var newContextCallbacks = []; Tone._initAudioContext = function (callback) { @@ -3089,16 +3212,6 @@ Tone_core_Tone = function () { newContextCallbacks[i](ctx); } }; - Tone.extend = function (child, parent) { - if (isUndef(parent)) { - parent = Tone; - } - function TempConstructor() { - } - TempConstructor.prototype = parent.prototype; - child.prototype = new TempConstructor(); - child.prototype.constructor = child; - }; Tone.startMobile = function () { var osc = Tone.context.createOscillator(); var silent = Tone.context.createGain(); @@ -3110,14 +3223,15 @@ Tone_core_Tone = function () { osc.stop(now + 1); }; Tone._initAudioContext(function (audioContext) { - Tone.prototype.bufferTime = Tone.prototype.bufferSize / audioContext.sampleRate; + Tone.prototype.blockTime = 128 / audioContext.sampleRate; _silentNode = audioContext.createGain(); _silentNode.gain.value = 0; _silentNode.connect(audioContext.destination); }); + Tone.version = 'r7-dev'; return Tone; }(); -/** Tone.js module by Yotam Mann, MIT License 2014 http://opensource.org/licenses/MIT **/ +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ var Tone_signal_SignalBase; Tone_signal_SignalBase = function (Tone) { 'use strict'; @@ -3125,19 +3239,20 @@ Tone_signal_SignalBase = function (Tone) { }; Tone.extend(Tone.SignalBase); Tone.SignalBase.prototype.connect = function (node, outputNumber, inputNumber) { - if (node instanceof Tone.Signal) { - node.setValue(0); + if (Tone.Signal && Tone.Signal === node.constructor || Tone.Param && Tone.Param === node.constructor || Tone.TimelineSignal && Tone.TimelineSignal === node.constructor) { + node._param.cancelScheduledValues(0); + node._param.value = 0; + node.overridden = true; } else if (node instanceof AudioParam) { + node.cancelScheduledValues(0); node.value = 0; } Tone.prototype.connect.call(this, node, outputNumber, inputNumber); - }; - Tone.SignalBase.prototype.dispose = function () { - Tone.prototype.dispose.call(this); + return this; }; return Tone.SignalBase; }(Tone_core_Tone); -/** Tone.js module by Yotam Mann, MIT License 2014 http://opensource.org/licenses/MIT **/ +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ var Tone_signal_WaveShaper; Tone_signal_WaveShaper = function (Tone) { 'use strict'; @@ -3145,10 +3260,10 @@ Tone_signal_WaveShaper = function (Tone) { this._shaper = this.input = this.output = this.context.createWaveShaper(); this._curve = null; if (Array.isArray(mapping)) { - this.setCurve(mapping); + this.curve = mapping; } else if (isFinite(mapping) || this.isUndef(mapping)) { this._curve = new Float32Array(this.defaultArg(mapping, 1024)); - } else if (typeof mapping === 'function') { + } else if (this.isFunction(mapping)) { this._curve = new Float32Array(this.defaultArg(bufferLen, 1024)); this.setMap(mapping); } @@ -3157,213 +3272,756 @@ Tone_signal_WaveShaper = function (Tone) { Tone.WaveShaper.prototype.setMap = function (mapping) { for (var i = 0, len = this._curve.length; i < len; i++) { var normalized = i / len * 2 - 1; - var normOffOne = i / (len - 1) * 2 - 1; - this._curve[i] = mapping(normalized, i, normOffOne); + this._curve[i] = mapping(normalized, i); } this._shaper.curve = this._curve; + return this; }; - Tone.WaveShaper.prototype.setCurve = function (mapping) { - if (this._isSafari()) { - var first = mapping[0]; - mapping.unshift(first); + Object.defineProperty(Tone.WaveShaper.prototype, 'curve', { + get: function () { + return this._shaper.curve; + }, + set: function (mapping) { + this._curve = new Float32Array(mapping); + this._shaper.curve = this._curve; } - this._curve = new Float32Array(mapping); - this._shaper.curve = this._curve; - }; - Tone.WaveShaper.prototype.setOversample = function (oversampling) { - this._shaper.oversample = oversampling; - }; - Tone.WaveShaper.prototype._isSafari = function () { - var ua = navigator.userAgent.toLowerCase(); - return ua.indexOf('safari') !== -1 && ua.indexOf('chrome') === -1; - }; + }); + Object.defineProperty(Tone.WaveShaper.prototype, 'oversample', { + get: function () { + return this._shaper.oversample; + }, + set: function (oversampling) { + if ([ + 'none', + '2x', + '4x' + ].indexOf(oversampling) !== -1) { + this._shaper.oversample = oversampling; + } else { + throw new Error('invalid oversampling: ' + oversampling); + } + } + }); Tone.WaveShaper.prototype.dispose = function () { Tone.prototype.dispose.call(this); this._shaper.disconnect(); this._shaper = null; this._curve = null; + return this; }; return Tone.WaveShaper; }(Tone_core_Tone); -/** Tone.js module by Yotam Mann, MIT License 2014 http://opensource.org/licenses/MIT **/ -var Tone_signal_Signal; -Tone_signal_Signal = function (Tone) { +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ +var Tone_core_Type; +Tone_core_Type = function (Tone) { 'use strict'; - Tone.Signal = function (value) { - this._scalar = this.context.createGain(); - this.input = this.output = this.context.createGain(); - this._syncRatio = 1; - this.value = this.defaultArg(value, 0); - Tone.Signal._constant.chain(this._scalar, this.output); - }; - Tone.extend(Tone.Signal, Tone.SignalBase); - Tone.Signal.prototype.getValue = function () { - return this._scalar.gain.value; - }; - Tone.Signal.prototype.setValue = function (value) { - if (this._syncRatio === 0) { - value = 0; + Tone.Type = { + Default: 'number', + Time: 'time', + Frequency: 'frequency', + NormalRange: 'normalRange', + AudioRange: 'audioRange', + Decibels: 'db', + Interval: 'interval', + BPM: 'bpm', + Positive: 'positive', + Cents: 'cents', + Degrees: 'degrees', + MIDI: 'midi', + TransportTime: 'transportTime', + Ticks: 'tick', + Note: 'note', + Milliseconds: 'milliseconds', + Notation: 'notation' + }; + Tone.prototype.isNowRelative = function () { + var nowRelative = new RegExp(/^\s*\+(.)+/i); + return function (note) { + return nowRelative.test(note); + }; + }(); + Tone.prototype.isTicks = function () { + var tickFormat = new RegExp(/^\d+i$/i); + return function (note) { + return tickFormat.test(note); + }; + }(); + Tone.prototype.isNotation = function () { + var notationFormat = new RegExp(/^[0-9]+[mnt]$/i); + return function (note) { + return notationFormat.test(note); + }; + }(); + Tone.prototype.isTransportTime = function () { + var transportTimeFormat = new RegExp(/^(\d+(\.\d+)?\:){1,2}(\d+(\.\d+)?)?$/i); + return function (transportTime) { + return transportTimeFormat.test(transportTime); + }; + }(); + Tone.prototype.isNote = function () { + var noteFormat = new RegExp(/^[a-g]{1}(b|#|x|bb)?-?[0-9]+$/i); + return function (note) { + return noteFormat.test(note); + }; + }(); + Tone.prototype.isFrequency = function () { + var freqFormat = new RegExp(/^\d*\.?\d+hz$/i); + return function (freq) { + return freqFormat.test(freq); + }; + }(); + function getTransportBpm() { + if (Tone.Transport && Tone.Transport.bpm) { + return Tone.Transport.bpm.value; } else { - value *= this._syncRatio; + return 120; } - this._scalar.gain.value = value; + } + function getTransportTimeSignature() { + if (Tone.Transport && Tone.Transport.timeSignature) { + return Tone.Transport.timeSignature; + } else { + return 4; + } + } + Tone.prototype.notationToSeconds = function (notation, bpm, timeSignature) { + bpm = this.defaultArg(bpm, getTransportBpm()); + timeSignature = this.defaultArg(timeSignature, getTransportTimeSignature()); + var beatTime = 60 / bpm; + if (notation === '1n') { + notation = '1m'; + } + var subdivision = parseInt(notation, 10); + var beats = 0; + if (subdivision === 0) { + beats = 0; + } + var lastLetter = notation.slice(-1); + if (lastLetter === 't') { + beats = 4 / subdivision * 2 / 3; + } else if (lastLetter === 'n') { + beats = 4 / subdivision; + } else if (lastLetter === 'm') { + beats = subdivision * timeSignature; + } else { + beats = 0; + } + return beatTime * beats; + }; + Tone.prototype.transportTimeToSeconds = function (transportTime, bpm, timeSignature) { + bpm = this.defaultArg(bpm, getTransportBpm()); + timeSignature = this.defaultArg(timeSignature, getTransportTimeSignature()); + var measures = 0; + var quarters = 0; + var sixteenths = 0; + var split = transportTime.split(':'); + if (split.length === 2) { + measures = parseFloat(split[0]); + quarters = parseFloat(split[1]); + } else if (split.length === 1) { + quarters = parseFloat(split[0]); + } else if (split.length === 3) { + measures = parseFloat(split[0]); + quarters = parseFloat(split[1]); + sixteenths = parseFloat(split[2]); + } + var beats = measures * timeSignature + quarters + sixteenths / 4; + return beats * (60 / bpm); + }; + Tone.prototype.ticksToSeconds = function (ticks, bpm) { + if (this.isUndef(Tone.Transport)) { + return 0; + } + ticks = parseFloat(ticks); + bpm = this.defaultArg(bpm, getTransportBpm()); + var tickTime = 60 / bpm / Tone.Transport.PPQ; + return tickTime * ticks; }; - Tone.Signal.prototype.setValueAtTime = function (value, time) { - value *= this._syncRatio; - this._scalar.gain.setValueAtTime(value, this.toSeconds(time)); + Tone.prototype.frequencyToSeconds = function (freq) { + return 1 / parseFloat(freq); }; - Tone.Signal.prototype.setCurrentValueNow = function (now) { - now = this.defaultArg(now, this.now()); - var currentVal = this.getValue(); - this.cancelScheduledValues(now); - this._scalar.gain.setValueAtTime(currentVal, now); - return currentVal; + Tone.prototype.samplesToSeconds = function (samples) { + return samples / this.context.sampleRate; }; - Tone.Signal.prototype.linearRampToValueAtTime = function (value, endTime) { - value *= this._syncRatio; - this._scalar.gain.linearRampToValueAtTime(value, this.toSeconds(endTime)); + Tone.prototype.secondsToSamples = function (seconds) { + return seconds * this.context.sampleRate; + }; + Tone.prototype.secondsToTransportTime = function (seconds, bpm, timeSignature) { + bpm = this.defaultArg(bpm, getTransportBpm()); + timeSignature = this.defaultArg(timeSignature, getTransportTimeSignature()); + var quarterTime = 60 / bpm; + var quarters = seconds / quarterTime; + var measures = Math.floor(quarters / timeSignature); + var sixteenths = quarters % 1 * 4; + quarters = Math.floor(quarters) % timeSignature; + var progress = [ + measures, + quarters, + sixteenths + ]; + return progress.join(':'); }; - Tone.Signal.prototype.exponentialRampToValueAtTime = function (value, endTime) { - value *= this._syncRatio; - try { - this._scalar.gain.exponentialRampToValueAtTime(value, this.toSeconds(endTime)); - } catch (e) { - this._scalar.gain.linearRampToValueAtTime(value, this.toSeconds(endTime)); - } + Tone.prototype.secondsToFrequency = function (seconds) { + return 1 / seconds; }; - Tone.Signal.prototype.exponentialRampToValueNow = function (value, endTime) { - var now = this.now(); - this.setCurrentValueNow(now); - if (endTime.toString().charAt(0) === '+') { - endTime = endTime.substr(1); + Tone.prototype.toTransportTime = function (time, bpm, timeSignature) { + var seconds = this.toSeconds(time); + return this.secondsToTransportTime(seconds, bpm, timeSignature); + }; + Tone.prototype.toFrequency = function (freq, now) { + if (this.isFrequency(freq)) { + return parseFloat(freq); + } else if (this.isNotation(freq) || this.isTransportTime(freq)) { + return this.secondsToFrequency(this.toSeconds(freq, now)); + } else if (this.isNote(freq)) { + return this.noteToFrequency(freq); + } else { + return freq; } - this.exponentialRampToValueAtTime(value, now + this.toSeconds(endTime)); }; - Tone.Signal.prototype.linearRampToValueNow = function (value, endTime) { - var now = this.now(); - this.setCurrentValueNow(now); - value *= this._syncRatio; - if (endTime.toString().charAt(0) === '+') { - endTime = endTime.substr(1); + Tone.prototype.toTicks = function (time) { + if (this.isUndef(Tone.Transport)) { + return 0; } - this._scalar.gain.linearRampToValueAtTime(value, now + this.toSeconds(endTime)); + var bpm = Tone.Transport.bpm.value; + var plusNow = 0; + if (this.isNowRelative(time)) { + time = time.replace('+', ''); + plusNow = Tone.Transport.ticks; + } else if (this.isUndef(time)) { + return Tone.Transport.ticks; + } + var seconds = this.toSeconds(time); + var quarter = 60 / bpm; + var quarters = seconds / quarter; + var tickNum = quarters * Tone.Transport.PPQ; + return Math.round(tickNum + plusNow); }; - Tone.Signal.prototype.setTargetAtTime = function (value, startTime, timeConstant) { - value *= this._syncRatio; - this._scalar.gain.setTargetAtTime(value, this.toSeconds(startTime), timeConstant); + Tone.prototype.toSamples = function (time) { + var seconds = this.toSeconds(time); + return Math.round(seconds * this.context.sampleRate); }; - Tone.Signal.prototype.setValueCurveAtTime = function (values, startTime, duration) { - for (var i = 0; i < values.length; i++) { - values[i] *= this._syncRatio; + Tone.prototype.toSeconds = function (time, now) { + now = this.defaultArg(now, this.now()); + if (this.isNumber(time)) { + return time; + } else if (this.isString(time)) { + var plusTime = 0; + if (this.isNowRelative(time)) { + time = time.replace('+', ''); + plusTime = now; + } + var betweenParens = time.match(/\(([^)(]+)\)/g); + if (betweenParens) { + for (var j = 0; j < betweenParens.length; j++) { + var symbol = betweenParens[j].replace(/[\(\)]/g, ''); + var symbolVal = this.toSeconds(symbol); + time = time.replace(betweenParens[j], symbolVal); + } + } + if (time.indexOf('@') !== -1) { + var quantizationSplit = time.split('@'); + if (!this.isUndef(Tone.Transport)) { + var toQuantize = quantizationSplit[0].trim(); + if (toQuantize === '') { + toQuantize = undefined; + } + if (plusTime > 0) { + toQuantize = '+' + toQuantize; + plusTime = 0; + } + var subdivision = quantizationSplit[1].trim(); + time = Tone.Transport.quantize(toQuantize, subdivision); + } else { + throw new Error('quantization requires Tone.Transport'); + } + } else { + var components = time.split(/[\(\)\-\+\/\*]/); + if (components.length > 1) { + var originalTime = time; + for (var i = 0; i < components.length; i++) { + var symb = components[i].trim(); + if (symb !== '') { + var val = this.toSeconds(symb); + time = time.replace(symb, val); + } + } + try { + time = eval(time); + } catch (e) { + throw new EvalError('cannot evaluate Time: ' + originalTime); + } + } else if (this.isNotation(time)) { + time = this.notationToSeconds(time); + } else if (this.isTransportTime(time)) { + time = this.transportTimeToSeconds(time); + } else if (this.isFrequency(time)) { + time = this.frequencyToSeconds(time); + } else if (this.isTicks(time)) { + time = this.ticksToSeconds(time); + } else { + time = parseFloat(time); + } + } + return time + plusTime; + } else { + return now; } - this._scalar.gain.setValueCurveAtTime(values, this.toSeconds(startTime), this.toSeconds(duration)); }; - Tone.Signal.prototype.cancelScheduledValues = function (startTime) { - this._scalar.gain.cancelScheduledValues(this.toSeconds(startTime)); + Tone.prototype.toNotation = function (time, bpm, timeSignature) { + var testNotations = [ + '1m', + '2n', + '4n', + '8n', + '16n', + '32n', + '64n', + '128n' + ]; + var retNotation = toNotationHelper.call(this, time, bpm, timeSignature, testNotations); + var testTripletNotations = [ + '1m', + '2n', + '2t', + '4n', + '4t', + '8n', + '8t', + '16n', + '16t', + '32n', + '32t', + '64n', + '64t', + '128n' + ]; + var retTripletNotation = toNotationHelper.call(this, time, bpm, timeSignature, testTripletNotations); + if (retTripletNotation.split('+').length < retNotation.split('+').length) { + return retTripletNotation; + } else { + return retNotation; + } }; - Tone.Signal.prototype.sync = function (signal, ratio) { - if (ratio) { - this._syncRatio = ratio; + function toNotationHelper(time, bpm, timeSignature, testNotations) { + var seconds = this.toSeconds(time); + var threshold = this.notationToSeconds(testNotations[testNotations.length - 1], bpm, timeSignature); + var retNotation = ''; + for (var i = 0; i < testNotations.length; i++) { + var notationTime = this.notationToSeconds(testNotations[i], bpm, timeSignature); + var multiple = seconds / notationTime; + var floatingPointError = 0.000001; + if (1 - multiple % 1 < floatingPointError) { + multiple += floatingPointError; + } + multiple = Math.floor(multiple); + if (multiple > 0) { + if (multiple === 1) { + retNotation += testNotations[i]; + } else { + retNotation += multiple.toString() + '*' + testNotations[i]; + } + seconds -= multiple * notationTime; + if (seconds < threshold) { + break; + } else { + retNotation += ' + '; + } + } + } + if (retNotation === '') { + retNotation = '0'; + } + return retNotation; + } + Tone.prototype.fromUnits = function (val, units) { + if (this.convert || this.isUndef(this.convert)) { + switch (units) { + case Tone.Type.Time: + return this.toSeconds(val); + case Tone.Type.Frequency: + return this.toFrequency(val); + case Tone.Type.Decibels: + return this.dbToGain(val); + case Tone.Type.NormalRange: + return Math.min(Math.max(val, 0), 1); + case Tone.Type.AudioRange: + return Math.min(Math.max(val, -1), 1); + case Tone.Type.Positive: + return Math.max(val, 0); + default: + return val; + } } else { - if (signal.getValue() !== 0) { - this._syncRatio = this.getValue() / signal.getValue(); - } else { - this._syncRatio = 0; + return val; + } + }; + Tone.prototype.toUnits = function (val, units) { + if (this.convert || this.isUndef(this.convert)) { + switch (units) { + case Tone.Type.Decibels: + return this.gainToDb(val); + default: + return val; } + } else { + return val; + } + }; + var noteToScaleIndex = { + 'cbb': -2, + 'cb': -1, + 'c': 0, + 'c#': 1, + 'cx': 2, + 'dbb': 0, + 'db': 1, + 'd': 2, + 'd#': 3, + 'dx': 4, + 'ebb': 2, + 'eb': 3, + 'e': 4, + 'e#': 5, + 'ex': 6, + 'fbb': 3, + 'fb': 4, + 'f': 5, + 'f#': 6, + 'fx': 7, + 'gbb': 5, + 'gb': 6, + 'g': 7, + 'g#': 8, + 'gx': 9, + 'abb': 7, + 'ab': 8, + 'a': 9, + 'a#': 10, + 'ax': 11, + 'bbb': 9, + 'bb': 10, + 'b': 11, + 'b#': 12, + 'bx': 13 + }; + var scaleIndexToNote = [ + 'C', + 'C#', + 'D', + 'D#', + 'E', + 'F', + 'F#', + 'G', + 'G#', + 'A', + 'A#', + 'B' + ]; + Tone.A4 = 440; + Tone.prototype.noteToFrequency = function (note) { + var parts = note.split(/(-?\d+)/); + if (parts.length === 3) { + var index = noteToScaleIndex[parts[0].toLowerCase()]; + var octave = parts[1]; + var noteNumber = index + (parseInt(octave, 10) + 1) * 12; + return this.midiToFrequency(noteNumber); + } else { + return 0; + } + }; + Tone.prototype.frequencyToNote = function (freq) { + var log = Math.log(freq / Tone.A4) / Math.LN2; + var noteNumber = Math.round(12 * log) + 57; + var octave = Math.floor(noteNumber / 12); + if (octave < 0) { + noteNumber += -12 * octave; } - this._scalar.disconnect(); - this._scalar = this.context.createGain(); - this.connectSeries(signal, this._scalar, this.output); - this._scalar.gain.value = this._syncRatio; + var noteName = scaleIndexToNote[noteNumber % 12]; + return noteName + octave.toString(); }; - Tone.Signal.prototype.unsync = function () { - var currentGain = this.getValue(); - this._scalar.disconnect(); - this._scalar = this.context.createGain(); - this._scalar.gain.value = currentGain / this._syncRatio; - this._syncRatio = 1; - Tone.Signal._constant.chain(this._scalar, this.output); + Tone.prototype.intervalToFrequencyRatio = function (interval) { + return Math.pow(2, interval / 12); }; - Tone.Signal.prototype.dispose = function () { - Tone.prototype.dispose.call(this); - this._scalar.disconnect(); - this._scalar = null; + Tone.prototype.midiToNote = function (midiNumber) { + var octave = Math.floor(midiNumber / 12) - 1; + var note = midiNumber % 12; + return scaleIndexToNote[note] + octave; + }; + Tone.prototype.noteToMidi = function (note) { + var parts = note.split(/(\d+)/); + if (parts.length === 3) { + var index = noteToScaleIndex[parts[0].toLowerCase()]; + var octave = parts[1]; + return index + (parseInt(octave, 10) + 1) * 12; + } else { + return 0; + } + }; + Tone.prototype.midiToFrequency = function (midi) { + return Tone.A4 * Math.pow(2, (midi - 69) / 12); }; - Object.defineProperty(Tone.Signal.prototype, 'value', { + return Tone; +}(Tone_core_Tone); +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ +var Tone_core_Param; +Tone_core_Param = function (Tone) { + 'use strict'; + Tone.Param = function () { + var options = this.optionsObject(arguments, [ + 'param', + 'units', + 'convert' + ], Tone.Param.defaults); + this._param = this.input = options.param; + this.units = options.units; + this.convert = options.convert; + this.overridden = false; + if (!this.isUndef(options.value)) { + this.value = options.value; + } + }; + Tone.extend(Tone.Param); + Tone.Param.defaults = { + 'units': Tone.Type.Default, + 'convert': true, + 'param': undefined + }; + Object.defineProperty(Tone.Param.prototype, 'value', { get: function () { - return this.getValue(); + return this._toUnits(this._param.value); }, - set: function (val) { - this.setValue(val); + set: function (value) { + var convertedVal = this._fromUnits(value); + this._param.value = convertedVal; } }); - Tone.Signal._generator = null; + Tone.Param.prototype._fromUnits = function (val) { + if (this.convert || this.isUndef(this.convert)) { + switch (this.units) { + case Tone.Type.Time: + return this.toSeconds(val); + case Tone.Type.Frequency: + return this.toFrequency(val); + case Tone.Type.Decibels: + return this.dbToGain(val); + case Tone.Type.NormalRange: + return Math.min(Math.max(val, 0), 1); + case Tone.Type.AudioRange: + return Math.min(Math.max(val, -1), 1); + case Tone.Type.Positive: + return Math.max(val, 0); + default: + return val; + } + } else { + return val; + } + }; + Tone.Param.prototype._toUnits = function (val) { + if (this.convert || this.isUndef(this.convert)) { + switch (this.units) { + case Tone.Type.Decibels: + return this.gainToDb(val); + default: + return val; + } + } else { + return val; + } + }; + Tone.Param.prototype._minOutput = 0.00001; + Tone.Param.prototype.setValueAtTime = function (value, time) { + value = this._fromUnits(value); + this._param.setValueAtTime(value, this.toSeconds(time)); + return this; + }; + Tone.Param.prototype.setRampPoint = function (now) { + now = this.defaultArg(now, this.now()); + var currentVal = this._param.value; + this._param.setValueAtTime(currentVal, now); + return this; + }; + Tone.Param.prototype.linearRampToValueAtTime = function (value, endTime) { + value = this._fromUnits(value); + this._param.linearRampToValueAtTime(value, this.toSeconds(endTime)); + return this; + }; + Tone.Param.prototype.exponentialRampToValueAtTime = function (value, endTime) { + value = this._fromUnits(value); + value = Math.max(this._minOutput, value); + this._param.exponentialRampToValueAtTime(value, this.toSeconds(endTime)); + return this; + }; + Tone.Param.prototype.exponentialRampToValue = function (value, rampTime) { + var now = this.now(); + var currentVal = this.value; + this.setValueAtTime(Math.max(currentVal, this._minOutput), now); + this.exponentialRampToValueAtTime(value, now + this.toSeconds(rampTime)); + return this; + }; + Tone.Param.prototype.linearRampToValue = function (value, rampTime) { + var now = this.now(); + this.setRampPoint(now); + this.linearRampToValueAtTime(value, now + this.toSeconds(rampTime)); + return this; + }; + Tone.Param.prototype.setTargetAtTime = function (value, startTime, timeConstant) { + value = this._fromUnits(value); + value = Math.max(this._minOutput, value); + timeConstant = Math.max(this._minOutput, timeConstant); + this._param.setTargetAtTime(value, this.toSeconds(startTime), timeConstant); + return this; + }; + Tone.Param.prototype.setValueCurveAtTime = function (values, startTime, duration) { + for (var i = 0; i < values.length; i++) { + values[i] = this._fromUnits(values[i]); + } + this._param.setValueCurveAtTime(values, this.toSeconds(startTime), this.toSeconds(duration)); + return this; + }; + Tone.Param.prototype.cancelScheduledValues = function (startTime) { + this._param.cancelScheduledValues(this.toSeconds(startTime)); + return this; + }; + Tone.Param.prototype.rampTo = function (value, rampTime) { + rampTime = this.defaultArg(rampTime, 0); + if (this.units === Tone.Type.Frequency || this.units === Tone.Type.BPM) { + this.exponentialRampToValue(value, rampTime); + } else { + this.linearRampToValue(value, rampTime); + } + return this; + }; + Tone.Param.prototype.dispose = function () { + Tone.prototype.dispose.call(this); + this._param = null; + return this; + }; + return Tone.Param; +}(Tone_core_Tone); +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ +var Tone_core_Gain; +Tone_core_Gain = function (Tone) { + 'use strict'; + Tone.Gain = function () { + var options = this.optionsObject(arguments, [ + 'gain', + 'units' + ], Tone.Gain.defaults); + this.input = this.output = this._gainNode = this.context.createGain(); + this.gain = new Tone.Param({ + 'param': this._gainNode.gain, + 'units': options.units, + 'value': options.gain, + 'convert': options.convert + }); + this._readOnly('gain'); + }; + Tone.extend(Tone.Gain); + Tone.Gain.defaults = { + 'gain': 1, + 'convert': true + }; + Tone.Gain.prototype.dispose = function () { + Tone.Param.prototype.dispose.call(this); + this._gainNode.disconnect(); + this._gainNode = null; + this._writable('gain'); + this.gain.dispose(); + this.gain = null; + }; + return Tone.Gain; +}(Tone_core_Tone, Tone_core_Param); +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ +var Tone_signal_Signal; +Tone_signal_Signal = function (Tone) { + 'use strict'; + Tone.Signal = function () { + var options = this.optionsObject(arguments, [ + 'value', + 'units' + ], Tone.Signal.defaults); + this.output = this._gain = this.context.createGain(); + options.param = this._gain.gain; + Tone.Param.call(this, options); + this.input = this._param = this._gain.gain; + Tone.Signal._constant.chain(this._gain); + }; + Tone.extend(Tone.Signal, Tone.Param); + Tone.Signal.defaults = { + 'value': 0, + 'units': Tone.Type.Default, + 'convert': true + }; + Tone.Signal.prototype.connect = Tone.SignalBase.prototype.connect; + Tone.Signal.prototype.dispose = function () { + Tone.Param.prototype.dispose.call(this); + this._param = null; + this._gain.disconnect(); + this._gain = null; + return this; + }; Tone.Signal._constant = null; Tone._initAudioContext(function (audioContext) { - Tone.Signal._generator = audioContext.createOscillator(); - Tone.Signal._constant = new Tone.WaveShaper([ - 1, - 1 - ]); - Tone.Signal._generator.connect(Tone.Signal._constant); - Tone.Signal._generator.start(0); - Tone.Signal._generator.noGC(); + var buffer = audioContext.createBuffer(1, 128, audioContext.sampleRate); + var arr = buffer.getChannelData(0); + for (var i = 0; i < arr.length; i++) { + arr[i] = 1; + } + Tone.Signal._constant = audioContext.createBufferSource(); + Tone.Signal._constant.channelCount = 1; + Tone.Signal._constant.channelCountMode = 'explicit'; + Tone.Signal._constant.buffer = buffer; + Tone.Signal._constant.loop = true; + Tone.Signal._constant.start(0); + Tone.Signal._constant.noGC(); }); return Tone.Signal; -}(Tone_core_Tone); -/** Tone.js module by Yotam Mann, MIT License 2014 http://opensource.org/licenses/MIT **/ +}(Tone_core_Tone, Tone_signal_WaveShaper, Tone_core_Type, Tone_core_Param); +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ var Tone_signal_Add; Tone_signal_Add = function (Tone) { 'use strict'; Tone.Add = function (value) { Tone.call(this, 2, 0); this._sum = this.input[0] = this.input[1] = this.output = this.context.createGain(); - this._value = null; - if (isFinite(value)) { - this._value = new Tone.Signal(value); - this._value.connect(this._sum); - } - }; - Tone.extend(Tone.Add, Tone.SignalBase); - Tone.Add.prototype.setValue = function (value) { - if (this._value !== null) { - this._value.setValue(value); - } else { - throw new Error('cannot switch from signal to number'); - } + this._param = this.input[1] = new Tone.Signal(value); + this._param.connect(this._sum); }; + Tone.extend(Tone.Add, Tone.Signal); Tone.Add.prototype.dispose = function () { Tone.prototype.dispose.call(this); + this._sum.disconnect(); this._sum = null; - if (this._value) { - this._value.dispose(); - this._value = null; - } + this._param.dispose(); + this._param = null; + return this; }; return Tone.Add; }(Tone_core_Tone); -/** Tone.js module by Yotam Mann, MIT License 2014 http://opensource.org/licenses/MIT **/ +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ var Tone_signal_Multiply; Tone_signal_Multiply = function (Tone) { 'use strict'; Tone.Multiply = function (value) { Tone.call(this, 2, 0); this._mult = this.input[0] = this.output = this.context.createGain(); - this._factor = this.input[1] = this.output.gain; - this._factor.value = this.defaultArg(value, 0); - }; - Tone.extend(Tone.Multiply, Tone.SignalBase); - Tone.Multiply.prototype.setValue = function (value) { - this._factor.value = value; + this._param = this.input[1] = this.output.gain; + this._param.value = this.defaultArg(value, 0); }; + Tone.extend(Tone.Multiply, Tone.Signal); Tone.Multiply.prototype.dispose = function () { Tone.prototype.dispose.call(this); + this._mult.disconnect(); this._mult = null; - this._factor = null; + this._param = null; + return this; }; return Tone.Multiply; }(Tone_core_Tone); -/** Tone.js module by Yotam Mann, MIT License 2014 http://opensource.org/licenses/MIT **/ +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ var Tone_signal_Scale; Tone_signal_Scale = function (Tone) { 'use strict'; @@ -3376,17 +4034,27 @@ Tone_signal_Scale = function (Tone) { this._setRange(); }; Tone.extend(Tone.Scale, Tone.SignalBase); - Tone.Scale.prototype.setMin = function (min) { - this._outputMin = min; - this._setRange(); - }; - Tone.Scale.prototype.setMax = function (max) { - this._outputMax = max; - this._setRange(); - }; + Object.defineProperty(Tone.Scale.prototype, 'min', { + get: function () { + return this._outputMin; + }, + set: function (min) { + this._outputMin = min; + this._setRange(); + } + }); + Object.defineProperty(Tone.Scale.prototype, 'max', { + get: function () { + return this._outputMax; + }, + set: function (max) { + this._outputMax = max; + this._setRange(); + } + }); Tone.Scale.prototype._setRange = function () { - this._add.setValue(this._outputMin); - this._scale.setValue(this._outputMax - this._outputMin); + this._add.value = this._outputMin; + this._scale.value = this._outputMax - this._outputMin; }; Tone.Scale.prototype.dispose = function () { Tone.prototype.dispose.call(this); @@ -3394,6 +4062,7 @@ Tone_signal_Scale = function (Tone) { this._add = null; this._scale.dispose(); this._scale = null; + return this; }; return Tone.Scale; }(Tone_core_Tone, Tone_signal_Add, Tone_signal_Multiply); @@ -6169,87 +6838,507 @@ reverb = function () { } }; }(master, errorHandler, sndcore); -/** Tone.js module by Yotam Mann, MIT License 2014 http://opensource.org/licenses/MIT **/ -var Tone_core_Clock; -Tone_core_Clock = function (Tone) { +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ +var Tone_core_Timeline; +Tone_core_Timeline = function (Tone) { + 'use strict'; + Tone.Timeline = function () { + var options = this.optionsObject(arguments, ['memory'], Tone.Timeline.defaults); + this._timeline = []; + this._toRemove = []; + this._iterating = false; + this.memory = options.memory; + }; + Tone.extend(Tone.Timeline); + Tone.Timeline.defaults = { 'memory': Infinity }; + Object.defineProperty(Tone.Timeline.prototype, 'length', { + get: function () { + return this._timeline.length; + } + }); + Tone.Timeline.prototype.addEvent = function (event) { + if (this.isUndef(event.time)) { + throw new Error('events must have a time attribute'); + } + event.time = this.toSeconds(event.time); + if (this._timeline.length) { + var index = this._search(event.time); + this._timeline.splice(index + 1, 0, event); + } else { + this._timeline.push(event); + } + if (this.length > this.memory) { + var diff = this.length - this.memory; + this._timeline.splice(0, diff); + } + return this; + }; + Tone.Timeline.prototype.removeEvent = function (event) { + if (this._iterating) { + this._toRemove.push(event); + } else { + var index = this._timeline.indexOf(event); + if (index !== -1) { + this._timeline.splice(index, 1); + } + } + return this; + }; + Tone.Timeline.prototype.getEvent = function (time) { + time = this.toSeconds(time); + var index = this._search(time); + if (index !== -1) { + return this._timeline[index]; + } else { + return null; + } + }; + Tone.Timeline.prototype.getEventAfter = function (time) { + time = this.toSeconds(time); + var index = this._search(time); + if (index + 1 < this._timeline.length) { + return this._timeline[index + 1]; + } else { + return null; + } + }; + Tone.Timeline.prototype.getEventBefore = function (time) { + time = this.toSeconds(time); + var index = this._search(time); + if (index - 1 >= 0) { + return this._timeline[index - 1]; + } else { + return null; + } + }; + Tone.Timeline.prototype.cancel = function (after) { + if (this._timeline.length > 1) { + after = this.toSeconds(after); + var index = this._search(after); + if (index >= 0) { + this._timeline = this._timeline.slice(0, index); + } else { + this._timeline = []; + } + } else if (this._timeline.length === 1) { + if (this._timeline[0].time >= after) { + this._timeline = []; + } + } + return this; + }; + Tone.Timeline.prototype.cancelBefore = function (time) { + if (this._timeline.length) { + time = this.toSeconds(time); + var index = this._search(time); + if (index >= 0) { + this._timeline = this._timeline.slice(index + 1); + } + } + return this; + }; + Tone.Timeline.prototype._search = function (time) { + var beginning = 0; + var len = this._timeline.length; + var end = len; + while (beginning <= end && beginning < len) { + var midPoint = Math.floor(beginning + (end - beginning) / 2); + var event = this._timeline[midPoint]; + if (event.time === time) { + for (var i = midPoint; i < this._timeline.length; i++) { + var testEvent = this._timeline[i]; + if (testEvent.time === time) { + midPoint = i; + } + } + return midPoint; + } else if (event.time > time) { + end = midPoint - 1; + } else if (event.time < time) { + beginning = midPoint + 1; + } + } + return beginning - 1; + }; + Tone.Timeline.prototype._iterate = function (callback, lowerBound, upperBound) { + this._iterating = true; + lowerBound = this.defaultArg(lowerBound, 0); + upperBound = this.defaultArg(upperBound, this._timeline.length - 1); + for (var i = lowerBound; i <= upperBound; i++) { + callback(this._timeline[i]); + } + this._iterating = false; + if (this._toRemove.length > 0) { + for (var j = 0; j < this._toRemove.length; j++) { + var index = this._timeline.indexOf(this._toRemove[j]); + if (index !== -1) { + this._timeline.splice(index, 1); + } + } + this._toRemove = []; + } + }; + Tone.Timeline.prototype.forEach = function (callback) { + this._iterate(callback); + return this; + }; + Tone.Timeline.prototype.forEachBefore = function (time, callback) { + time = this.toSeconds(time); + var upperBound = this._search(time); + if (upperBound !== -1) { + this._iterate(callback, 0, upperBound); + } + return this; + }; + Tone.Timeline.prototype.forEachAfter = function (time, callback) { + time = this.toSeconds(time); + var lowerBound = this._search(time); + this._iterate(callback, lowerBound + 1); + return this; + }; + Tone.Timeline.prototype.forEachFrom = function (time, callback) { + time = this.toSeconds(time); + var lowerBound = this._search(time); + while (lowerBound >= 0 && this._timeline[lowerBound].time >= time) { + lowerBound--; + } + this._iterate(callback, lowerBound + 1); + return this; + }; + Tone.Timeline.prototype.forEachAtTime = function (time, callback) { + time = this.toSeconds(time); + var upperBound = this._search(time); + if (upperBound !== -1) { + this._iterate(function (event) { + if (event.time === time) { + callback(event); + } + }, 0, upperBound); + } + return this; + }; + Tone.Timeline.prototype.dispose = function () { + Tone.prototype.dispose.call(this); + this._timeline = null; + this._toRemove = null; + }; + return Tone.Timeline; +}(Tone_core_Tone); +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ +var Tone_signal_TimelineSignal; +Tone_signal_TimelineSignal = function (Tone) { 'use strict'; - Tone.Clock = function (rate, callback) { - this._oscillator = null; - this._jsNode = this.context.createScriptProcessor(this.bufferSize, 1, 1); - this._jsNode.onaudioprocess = this._processBuffer.bind(this); - this._controlSignal = new Tone.Signal(1); - this._upTick = false; - this.tick = this.defaultArg(callback, function () { + Tone.TimelineSignal = function () { + var options = this.optionsObject(arguments, [ + 'value', + 'units' + ], Tone.Signal.defaults); + Tone.Signal.apply(this, options); + options.param = this._param; + Tone.Param.call(this, options); + this._events = new Tone.Timeline(10); + this._initial = this._fromUnits(this._param.value); + }; + Tone.extend(Tone.TimelineSignal, Tone.Param); + Tone.TimelineSignal.Type = { + Linear: 'linear', + Exponential: 'exponential', + Target: 'target', + Set: 'set' + }; + Object.defineProperty(Tone.TimelineSignal.prototype, 'value', { + get: function () { + return this._toUnits(this._param.value); + }, + set: function (value) { + var convertedVal = this._fromUnits(value); + this._initial = convertedVal; + this._param.value = convertedVal; + } + }); + Tone.TimelineSignal.prototype.setValueAtTime = function (value, startTime) { + value = this._fromUnits(value); + startTime = this.toSeconds(startTime); + this._events.addEvent({ + 'type': Tone.TimelineSignal.Type.Set, + 'value': value, + 'time': startTime }); - this._jsNode.noGC(); - this.setRate(rate); + this._param.setValueAtTime(value, startTime); + return this; }; - Tone.extend(Tone.Clock); - Tone.Clock.prototype.setRate = function (rate, rampTime) { - var freqVal = this.secondsToFrequency(this.toSeconds(rate)); - if (!rampTime) { - this._controlSignal.cancelScheduledValues(0); - this._controlSignal.setValue(freqVal); + Tone.TimelineSignal.prototype.linearRampToValueAtTime = function (value, endTime) { + value = this._fromUnits(value); + endTime = this.toSeconds(endTime); + this._events.addEvent({ + 'type': Tone.TimelineSignal.Type.Linear, + 'value': value, + 'time': endTime + }); + this._param.linearRampToValueAtTime(value, endTime); + return this; + }; + Tone.TimelineSignal.prototype.exponentialRampToValueAtTime = function (value, endTime) { + value = this._fromUnits(value); + value = Math.max(this._minOutput, value); + endTime = this.toSeconds(endTime); + this._events.addEvent({ + 'type': Tone.TimelineSignal.Type.Exponential, + 'value': value, + 'time': endTime + }); + this._param.exponentialRampToValueAtTime(value, endTime); + return this; + }; + Tone.TimelineSignal.prototype.setTargetAtTime = function (value, startTime, timeConstant) { + value = this._fromUnits(value); + value = Math.max(this._minOutput, value); + timeConstant = Math.max(this._minOutput, timeConstant); + startTime = this.toSeconds(startTime); + this._events.addEvent({ + 'type': Tone.TimelineSignal.Type.Target, + 'value': value, + 'time': startTime, + 'constant': timeConstant + }); + this._param.setTargetAtTime(value, startTime, timeConstant); + return this; + }; + Tone.TimelineSignal.prototype.cancelScheduledValues = function (after) { + this._events.cancel(after); + this._param.cancelScheduledValues(this.toSeconds(after)); + return this; + }; + Tone.TimelineSignal.prototype.setRampPoint = function (time) { + time = this.toSeconds(time); + var val = this.getValueAtTime(time); + var after = this._searchAfter(time); + if (after) { + this.cancelScheduledValues(time); + if (after.type === Tone.TimelineSignal.Type.Linear) { + this.linearRampToValueAtTime(val, time); + } else if (after.type === Tone.TimelineSignal.Type.Exponential) { + this.exponentialRampToValueAtTime(val, time); + } + } + this.setValueAtTime(val, time); + return this; + }; + Tone.TimelineSignal.prototype.linearRampToValueBetween = function (value, start, finish) { + this.setRampPoint(start); + this.linearRampToValueAtTime(value, finish); + return this; + }; + Tone.TimelineSignal.prototype.exponentialRampToValueBetween = function (value, start, finish) { + this.setRampPoint(start); + this.exponentialRampToValueAtTime(value, finish); + return this; + }; + Tone.TimelineSignal.prototype._searchBefore = function (time) { + return this._events.getEvent(time); + }; + Tone.TimelineSignal.prototype._searchAfter = function (time) { + return this._events.getEventAfter(time); + }; + Tone.TimelineSignal.prototype.getValueAtTime = function (time) { + var after = this._searchAfter(time); + var before = this._searchBefore(time); + var value = this._initial; + if (before === null) { + value = this._initial; + } else if (before.type === Tone.TimelineSignal.Type.Target) { + var previous = this._events.getEventBefore(before.time); + var previouVal; + if (previous === null) { + previouVal = this._initial; + } else { + previouVal = previous.value; + } + value = this._exponentialApproach(before.time, previouVal, before.value, before.constant, time); + } else if (after === null) { + value = before.value; + } else if (after.type === Tone.TimelineSignal.Type.Linear) { + value = this._linearInterpolate(before.time, before.value, after.time, after.value, time); + } else if (after.type === Tone.TimelineSignal.Type.Exponential) { + value = this._exponentialInterpolate(before.time, before.value, after.time, after.value, time); } else { - this._controlSignal.exponentialRampToValueNow(freqVal, rampTime); + value = before.value; } + return value; }; - Tone.Clock.prototype.getRate = function () { - return this._controlSignal.getValue(); + Tone.TimelineSignal.prototype.connect = Tone.SignalBase.prototype.connect; + Tone.TimelineSignal.prototype._exponentialApproach = function (t0, v0, v1, timeConstant, t) { + return v1 + (v0 - v1) * Math.exp(-(t - t0) / timeConstant); }; - Tone.Clock.prototype.start = function (time) { - this._oscillator = this.context.createOscillator(); - this._oscillator.type = 'square'; - this._oscillator.connect(this._jsNode); - this._controlSignal.connect(this._oscillator.frequency); - this._upTick = false; - var startTime = this.toSeconds(time); - this._oscillator.start(startTime); - this._oscillator.onended = function () { - }; + Tone.TimelineSignal.prototype._linearInterpolate = function (t0, v0, t1, v1, t) { + return v0 + (v1 - v0) * ((t - t0) / (t1 - t0)); }; - Tone.Clock.prototype.stop = function (time, onend) { - var stopTime = this.toSeconds(time); - this._oscillator.onended = onend; - this._oscillator.stop(stopTime); + Tone.TimelineSignal.prototype._exponentialInterpolate = function (t0, v0, t1, v1, t) { + v0 = Math.max(this._minOutput, v0); + return v0 * Math.pow(v1 / v0, (t - t0) / (t1 - t0)); }; - Tone.Clock.prototype._processBuffer = function (event) { - var now = this.defaultArg(event.playbackTime, this.now()); - var bufferSize = this._jsNode.bufferSize; - var incomingBuffer = event.inputBuffer.getChannelData(0); - var upTick = this._upTick; - var self = this; - for (var i = 0; i < bufferSize; i++) { - var sample = incomingBuffer[i]; - if (sample > 0 && !upTick) { - upTick = true; - setTimeout(function () { - var tickTime = now + self.samplesToSeconds(i + bufferSize * 2); - return function () { - self.tick(tickTime); - }; - }(), 0); - } else if (sample < 0 && upTick) { - upTick = false; + Tone.TimelineSignal.prototype.dispose = function () { + Tone.Signal.prototype.dispose.call(this); + Tone.Param.prototype.dispose.call(this); + this._events.dispose(); + this._events = null; + }; + return Tone.TimelineSignal; +}(Tone_core_Tone, Tone_signal_Signal); +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ +var Tone_core_TimelineState; +Tone_core_TimelineState = function (Tone) { + 'use strict'; + Tone.TimelineState = function (initial) { + Tone.Timeline.call(this); + this._initial = initial; + }; + Tone.extend(Tone.TimelineState, Tone.Timeline); + Tone.TimelineState.prototype.getStateAtTime = function (time) { + var event = this.getEvent(time); + if (event !== null) { + return event.state; + } else { + return this._initial; + } + }; + Tone.TimelineState.prototype.setStateAtTime = function (state, time) { + this.addEvent({ + 'state': state, + 'time': this.toSeconds(time) + }); + }; + return Tone.TimelineState; +}(Tone_core_Tone, Tone_core_Timeline); +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ +var Tone_core_Clock; +Tone_core_Clock = function (Tone) { + 'use strict'; + Tone.Clock = function () { + var options = this.optionsObject(arguments, [ + 'callback', + 'frequency' + ], Tone.Clock.defaults); + this.callback = options.callback; + this._lookAhead = 'auto'; + this._computedLookAhead = 1 / 60; + this._threshold = 0.5; + this._nextTick = -1; + this._lastUpdate = 0; + this._loopID = -1; + this.frequency = new Tone.TimelineSignal(options.frequency, Tone.Type.Frequency); + this.ticks = 0; + this._state = new Tone.TimelineState(Tone.State.Stopped); + this._boundLoop = this._loop.bind(this); + this._readOnly('frequency'); + this._loop(); + }; + Tone.extend(Tone.Clock); + Tone.Clock.defaults = { + 'callback': Tone.noOp, + 'frequency': 1, + 'lookAhead': 'auto' + }; + Object.defineProperty(Tone.Clock.prototype, 'state', { + get: function () { + return this._state.getStateAtTime(this.now()); + } + }); + Object.defineProperty(Tone.Clock.prototype, 'lookAhead', { + get: function () { + return this._lookAhead; + }, + set: function (val) { + if (val === 'auto') { + this._lookAhead = 'auto'; + } else { + this._lookAhead = this.toSeconds(val); + } + } + }); + Tone.Clock.prototype.start = function (time, offset) { + time = this.toSeconds(time); + if (this._state.getStateAtTime(time) !== Tone.State.Started) { + this._state.addEvent({ + 'state': Tone.State.Started, + 'time': time, + 'offset': offset + }); + } + return this; + }; + Tone.Clock.prototype.stop = function (time) { + time = this.toSeconds(time); + if (this._state.getStateAtTime(time) !== Tone.State.Stopped) { + this._state.setStateAtTime(Tone.State.Stopped, time); + } + return this; + }; + Tone.Clock.prototype.pause = function (time) { + time = this.toSeconds(time); + if (this._state.getStateAtTime(time) === Tone.State.Started) { + this._state.setStateAtTime(Tone.State.Paused, time); + } + return this; + }; + Tone.Clock.prototype._loop = function (time) { + this._loopID = requestAnimationFrame(this._boundLoop); + if (this._lookAhead === 'auto') { + if (!this.isUndef(time)) { + var diff = (time - this._lastUpdate) / 1000; + this._lastUpdate = time; + if (diff < this._threshold) { + this._computedLookAhead = (9 * this._computedLookAhead + diff) / 10; + } + } + } else { + this._computedLookAhead = this._lookAhead; + } + var now = this.now(); + var lookAhead = this._computedLookAhead * 2; + var event = this._state.getEvent(now + lookAhead); + var state = Tone.State.Stopped; + if (event) { + state = event.state; + if (this._nextTick === -1 && state === Tone.State.Started) { + this._nextTick = event.time; + if (!this.isUndef(event.offset)) { + this.ticks = event.offset; + } + } + } + if (state === Tone.State.Started) { + while (now + lookAhead > this._nextTick) { + if (now > this._nextTick + this._threshold) { + this._nextTick = now; + } + var tickTime = this._nextTick; + this._nextTick += 1 / this.frequency.getValueAtTime(this._nextTick); + this.callback(tickTime); + this.ticks++; } + } else if (state === Tone.State.Stopped) { + this._nextTick = -1; + this.ticks = 0; } - this._upTick = upTick; + }; + Tone.Clock.prototype.getStateAtTime = function (time) { + return this._state.getStateAtTime(time); }; Tone.Clock.prototype.dispose = function () { - this._jsNode.disconnect(); - this._controlSignal.dispose(); - if (this._oscillator) { - this._oscillator.onended(); - this._oscillator.disconnect(); - } - this._jsNode.onaudioprocess = function () { - }; - this._jsNode = null; - this._controlSignal = null; - this._oscillator = null; + cancelAnimationFrame(this._loopID); + Tone.TimelineState.prototype.dispose.call(this); + this._writable('frequency'); + this.frequency.dispose(); + this.frequency = null; + this._boundLoop = Tone.noOp; + this._nextTick = Infinity; + this.callback = null; + this._state.dispose(); + this._state = null; }; return Tone.Clock; -}(Tone_core_Tone); +}(Tone_core_Tone, Tone_signal_TimelineSignal); var metro; metro = function () { 'use strict'; @@ -6260,7 +7349,7 @@ metro = function () { var ac = p5sound.audiocontext; // var upTick = false; p5.Metro = function () { - this.clock = new Clock(ac.sampleRate, this.ontick.bind(this)); + this.clock = new Clock({ 'callback': this.ontick.bind(this) }); this.syncedParts = []; this.bpm = 120; // gets overridden by p5.Part @@ -6297,9 +7386,11 @@ metro = function () { }; p5.Metro.prototype.setBPM = function (bpm, rampTime) { var beatTime = 60 / (bpm * this.tatums); + var now = p5sound.audiocontext.currentTime; tatumTime = beatTime; - var ramp = rampTime || 0; - this.clock.setRate(beatTime, rampTime + p5sound.audiocontext.currentTime); + var rampTime = rampTime || 0; + this.clock.frequency.setValueAtTime(this.clock.frequency.value, now); + this.clock.frequency.linearRampToValueAtTime(bpm, now + rampTime); this.bpm = bpm; }; p5.Metro.prototype.getBPM = function (tempo) { @@ -6316,15 +7407,17 @@ metro = function () { p5.Metro.prototype.pushSync = function (part) { this.syncedParts.push(part); }; - p5.Metro.prototype.start = function (time) { - var t = time || 0; - this.clock.start(t); + p5.Metro.prototype.start = function (timeFromNow) { + var t = timeFromNow || 0; + var now = p5sound.audiocontext.currentTime; + this.clock.start(now + t); this.setBPM(this.bpm); }; - p5.Metro.prototype.stop = function (time) { - var t = time || 0; + p5.Metro.prototype.stop = function (timeFromNow) { + var t = timeFromNow || 0; + var now = p5sound.audiocontext.currentTime; if (this.clock._oscillator) { - this.clock.stop(t); + this.clock.stop(now + t); } }; p5.Metro.prototype.beatLength = function (tatums) { diff --git a/lib/p5.sound.min.js b/lib/p5.sound.min.js index 98ca0bd2..63cf80f2 100644 --- a/lib/p5.sound.min.js +++ b/lib/p5.sound.min.js @@ -1,5 +1,6 @@ /*! p5.sound.min.js v0.2.17 2016-01-18 */ -!function(t,e){"function"==typeof define&&define.amd?define("p5.sound",["p5"],function(t){e(t)}):e("object"==typeof exports?require("../p5"):t.p5)}(this,function(t){var e;e=function(){"use strict";!function(t,e){function i(t){t&&(t.setTargetAtTime||(t.setTargetAtTime=t.setTargetValueAtTime))}return e=e||{},window.hasOwnProperty("webkitAudioContext")&&!window.hasOwnProperty("AudioContext")&&(window.AudioContext=webkitAudioContext,AudioContext.prototype.hasOwnProperty("createGain")||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),AudioContext.prototype.hasOwnProperty("createDelay")||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),AudioContext.prototype.hasOwnProperty("createScriptProcessor")||(AudioContext.prototype.createScriptProcessor=AudioContext.prototype.createJavaScriptNode),AudioContext.prototype.hasOwnProperty("createPeriodicWave")||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),AudioContext.prototype.internal_createGain=AudioContext.prototype.createGain,AudioContext.prototype.createGain=function(){var t=this.internal_createGain();return i(t.gain),t},AudioContext.prototype.internal_createDelay=AudioContext.prototype.createDelay,AudioContext.prototype.createDelay=function(t){var e=t?this.internal_createDelay(t):this.internal_createDelay();return i(e.delayTime),e},AudioContext.prototype.internal_createBufferSource=AudioContext.prototype.createBufferSource,AudioContext.prototype.createBufferSource=function(){var t=this.internal_createBufferSource();return t.start?(t.internal_start=t.start,t.start=function(e,i,o){"undefined"!=typeof o?t.internal_start(e||0,i,o):t.internal_start(e||0,i||0)}):t.start=function(t,e,i){e||i?this.noteGrainOn(t||0,e,i):this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},i(t.playbackRate),t},AudioContext.prototype.internal_createDynamicsCompressor=AudioContext.prototype.createDynamicsCompressor,AudioContext.prototype.createDynamicsCompressor=function(){var t=this.internal_createDynamicsCompressor();return i(t.threshold),i(t.knee),i(t.ratio),i(t.reduction),i(t.attack),i(t.release),t},AudioContext.prototype.internal_createBiquadFilter=AudioContext.prototype.createBiquadFilter,AudioContext.prototype.createBiquadFilter=function(){var t=this.internal_createBiquadFilter();return i(t.frequency),i(t.detune),i(t.Q),i(t.gain),t},AudioContext.prototype.hasOwnProperty("createOscillator")&&(AudioContext.prototype.internal_createOscillator=AudioContext.prototype.createOscillator,AudioContext.prototype.createOscillator=function(){var t=this.internal_createOscillator();return t.start?(t.internal_start=t.start,t.start=function(e){t.internal_start(e||0)}):t.start=function(t){this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},t.setPeriodicWave||(t.setPeriodicWave=t.setWaveTable),i(t.frequency),i(t.detune),t})),window.hasOwnProperty("webkitOfflineAudioContext")&&!window.hasOwnProperty("OfflineAudioContext")&&(window.OfflineAudioContext=webkitOfflineAudioContext),e}(window);var e=new window.AudioContext;t.prototype.getAudioContext=function(){return e},navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;var i=document.createElement("audio");t.prototype.isSupported=function(){return!!i.canPlayType};var o=function(){return!!i.canPlayType&&i.canPlayType('audio/ogg; codecs="vorbis"')},n=function(){return!!i.canPlayType&&i.canPlayType("audio/mpeg;")},s=function(){return!!i.canPlayType&&i.canPlayType('audio/wav; codecs="1"')},r=function(){return!!i.canPlayType&&(i.canPlayType("audio/x-m4a;")||i.canPlayType("audio/aac;"))},a=function(){return!!i.canPlayType&&i.canPlayType("audio/x-aiff;")};t.prototype.isFileSupported=function(t){switch(t.toLowerCase()){case"mp3":return n();case"wav":return s();case"ogg":return o();case"mp4":return r();case"aiff":return a();default:return!1}};var u=navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1;if(u){var c=!1,h=function(){if(!c){var t=e.createBuffer(1,1,22050),i=e.createBufferSource();i.buffer=t,i.connect(e.destination),i.start(0),console.log("start ios!"),"running"===e.state&&(c=!0)}};document.addEventListener("touchend",h,!1),document.addEventListener("touchstart",h,!1)}}();var i;i=function(){"use strict";var e=function(){var e=t.prototype.getAudioContext();this.input=e.createGain(),this.output=e.createGain(),this.limiter=e.createDynamicsCompressor(),this.limiter.threshold.value=0,this.limiter.ratio.value=100,this.audiocontext=e,this.output.disconnect(),this.inputSources=[],this.input.connect(this.limiter),this.limiter.connect(this.output),this.meter=e.createGain(),this.fftMeter=e.createGain(),this.output.connect(this.meter),this.output.connect(this.fftMeter),this.output.connect(this.audiocontext.destination),this.soundArray=[],this.parts=[],this.extensions=[]},i=new e;return t.prototype.getMasterVolume=function(){return i.output.gain.value},t.prototype.masterVolume=function(t,e,o){if("number"==typeof t){var e=e||0,o=o||0,n=i.audiocontext.currentTime,s=i.output.gain.value;i.output.gain.cancelScheduledValues(n+o),i.output.gain.linearRampToValueAtTime(s,n+o),i.output.gain.linearRampToValueAtTime(t,n+o+e)}else{if(!t)return i.output.gain;t.connect(i.output.gain)}},t.soundOut=i,t.soundOut._silentNode=i.audiocontext.createGain(),t.soundOut._silentNode.gain.value=0,t.soundOut._silentNode.connect(i.audiocontext.destination),i}(e);var o;o=function(){"use strict";var e=i;t.prototype.sampleRate=function(){return e.audiocontext.sampleRate},t.prototype.freqToMidi=function(t){var e=Math.log(t/440)/Math.log(2),i=Math.round(12*e)+57;return i},t.prototype.midiToFreq=function(t){return 440*Math.pow(2,(t-69)/12)},t.prototype.soundFormats=function(){e.extensions=[];for(var t=0;t-1))throw arguments[t]+" is not a valid sound format!";e.extensions.push(arguments[t])}},t.prototype.disposeSound=function(){for(var t=0;t-1){var s=t.prototype.isFileSupported(n);if(s)o=o;else for(var r=o.split("."),a=r[r.length-1],u=0;u1?(this.splitter=o.createChannelSplitter(2),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0)):(this.input.connect(this.left),this.input.connect(this.right)),this.output=o.createChannelMerger(2),this.left.connect(this.output,0,1),this.right.connect(this.output,0,0),this.output.connect(e)},t.Panner.prototype.pan=function(t,e){var i=e||0,n=o.currentTime+i,s=(t+1)/2,r=Math.cos(s*Math.PI/2),a=Math.sin(s*Math.PI/2);this.left.gain.linearRampToValueAtTime(a,n),this.right.gain.linearRampToValueAtTime(r,n)},t.Panner.prototype.inputChannels=function(t){1===t?(this.input.disconnect(),this.input.connect(this.left),this.input.connect(this.right)):2===t&&(this.splitter=o.createChannelSplitter(2),this.input.disconnect(),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0))},t.Panner.prototype.connect=function(t){this.output.connect(t)},t.Panner.prototype.disconnect=function(){this.output.disconnect()}),t.Panner3D=function(t,e){var i=o.createPanner();return i.panningModel="HRTF",i.distanceModel="linear",i.setPosition(0,0,0),t.connect(i),i.connect(e),i.pan=function(t,e,o){i.setPosition(t,e,o)},i}}(i);var r;r=function(){"use strict";function e(t,e){for(var i={},o=t.length,n=0;o>n;n++){if(t[n]>e){var s=t[n],r=new l(s,n);i[n]=r,n+=6e3}n++}return i}function o(t){for(var e=[],i=Object.keys(t).sort(),o=0;on;n++){var s=t[i[o]],r=t[i[o+n]];if(s&&r){var a=s.sampleIndex,u=r.sampleIndex,c=u-a;c>0&&s.intervals.push(c);var h=e.some(function(t){return t.interval===c?(t.count++,t):void 0});h||e.push({interval:c,count:1})}}return e}function s(t,e){var i=[];return t.forEach(function(t){try{var o=Math.abs(60/(t.interval/e));o=a(o);var n=i.some(function(e){return e.tempo===o?e.count+=t.count:void 0});if(!n){if(isNaN(o))return;i.push({tempo:Math.round(o),count:t.count})}}catch(s){throw s}}),i}function r(t,e,i,o){for(var n=[],s=Object.keys(t).sort(),r=0;r.01?!0:void 0})}function a(t){if(isFinite(t)&&0!=t){for(;90>t;)t*=2;for(;t>180&&t>90;)t/=2;return t}}var u=n,c=i,h=c.audiocontext;t.SoundFile=function(e,i,o,n){if("undefined"!=typeof e){if("string"==typeof e||"string"==typeof e[0]){var s=t.prototype._checkFileFormats(e);this.url=s}else if("object"==typeof e&&!(window.File&&window.FileReader&&window.FileList&&window.Blob))throw"Unable to load file because the File API is not supported";e.file&&(e=e.file),this.file=e}this._onended=function(){},this._looping=!1,this._playing=!1,this._paused=!1,this._pauseTime=0,this._cues=[],this._lastPos=0,this._counterNode,this._scopeNode,this.bufferSourceNodes=[],this.bufferSourceNode=null,this.buffer=null,this.playbackRate=1,this.gain=1,this.input=c.audiocontext.createGain(),this.output=c.audiocontext.createGain(),this.reversed=!1,this.startTime=0,this.endTime=null,this.pauseTime=0,this.mode="sustain",this.startMillis=null,this.panPosition=0,this.panner=new t.Panner(this.output,c.input,2),(this.url||this.file)&&this.load(i,o),c.soundArray.push(this),this._whileLoading="function"==typeof n?n:function(){}},t.prototype.registerPreloadMethod("loadSound",t.prototype),t.prototype.loadSound=function(e,i,o,n){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var s=new t.SoundFile(e,i,o,n);return s},t.SoundFile.prototype.load=function(t,e){var i=this,o=(new Error).stack;if(void 0!=this.url&&""!=this.url){var n=new XMLHttpRequest;n.addEventListener("progress",function(t){i._updateProgress(t)},!1),n.open("GET",this.url,!0),n.responseType="arraybuffer",n.onload=function(){if(200==n.status)h.decodeAudioData(n.response,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)},function(){var t=new u("decodeAudioData",o,i.url),n="AudioContext error at decodeAudioData for "+i.url;e?(t.msg=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)});else{var s=new u("loadSound",o,i.url),r="Unable to load "+i.url+". The request status was: "+n.status+" ("+n.statusText+")";e?(s.message=r,e(s)):console.error(r+"\n The error stack trace includes: \n"+s.stack)}},n.onerror=function(){var t=new u("loadSound",o,i.url),n="There was no response from the server at "+i.url+". Check the url and internet connectivity.";e?(t.message=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)},n.send()}else if(void 0!=this.file){var s=new FileReader,i=this;s.onload=function(){h.decodeAudioData(s.result,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)})},s.onerror=function(t){onerror&&onerror(t)},s.readAsArrayBuffer(this.file)}},t.SoundFile.prototype._updateProgress=function(t){if(t.lengthComputable){var e=Math.log(t.loaded/t.total*9.9);this._whileLoading(e)}else this._whileLoading("size unknown")},t.SoundFile.prototype.isLoaded=function(){return this.buffer?!0:!1},t.SoundFile.prototype.play=function(t,e,i,o,n){var s,r,a=this,u=c.audiocontext.currentTime,t=t||0;if(0>t&&(t=0),t+=u,!this.buffer)throw"not ready to play file, buffer has yet to load. Try preload()";if(this._pauseTime=0,"restart"===this.mode&&this.buffer&&this.bufferSourceNode){var u=c.audiocontext.currentTime;this.bufferSourceNode.stop(t),this._counterNode.stop(t)}if(this.bufferSourceNode=this._initSourceNode(),this._counterNode&&(this._counterNode=void 0),this._counterNode=this._initCounterNode(),o){if(!(o>=0&&o0&&this.reversed&&this.reverseBuffer();if(this.bufferSourceNode){var n=c.audiocontext.currentTime;this.bufferSourceNode.playbackRate.cancelScheduledValues(n),this.bufferSourceNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n),this._counterNode.playbackRate.cancelScheduledValues(n),this._counterNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n)}}},t.SoundFile.prototype.setPitch=function(t){var e=midiToFreq(t)/midiToFreq(60);this.rate(e)},t.SoundFile.prototype.getPlaybackRate=function(){return this.playbackRate},t.SoundFile.prototype.duration=function(){return this.buffer?this.buffer.duration:0},t.SoundFile.prototype.currentTime=function(){return this._pauseTime>0?this._pauseTime:this._lastPos/h.sampleRate},t.SoundFile.prototype.jump=function(t,e){if(0>t||t>this.buffer.duration)throw"jump time out of range";if(e>this.buffer.duration-t)throw"end time out of range";var i=t||0,o=e||this.buffer.duration-t;this.isPlaying()&&this.stop(),this.play(0,this.playbackRate,this.output.gain.value,i,o)},t.SoundFile.prototype.channels=function(){return this.buffer.numberOfChannels},t.SoundFile.prototype.sampleRate=function(){return this.buffer.sampleRate},t.SoundFile.prototype.frames=function(){return this.buffer.length},t.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,i=e.length/t,o=~~(i/10)||1,n=e.numberOfChannels,s=new Float32Array(Math.round(t)),r=0;n>r;r++)for(var a=e.getChannelData(r),u=0;t>u;u++){for(var c=~~(u*i),h=~~(c+i),p=0,l=c;h>l;l+=o){var f=a[l];f>p?p=f:-f>p&&(p=f)}(0===r||Math.abs(p)>s[u])&&(s[u]=p)}return s}},t.SoundFile.prototype.reverseBuffer=function(){var t=this.getVolume();if(this.setVolume(0,.01,0),this.pause(),!this.buffer)throw"SoundFile is not done loading";for(var e=0;en;n++){var s=o.getChannelData(n);s.set(t[n])}this.buffer=o,this.panner.inputChannels(e)},t.SoundFile.prototype._initCounterNode=function(){var e=this,i=h.currentTime,o=h.createBufferSource();return e._scopeNode&&(e._scopeNode.disconnect(),e._scopeNode.onaudioprocess=void 0,e._scopeNode=null),e._scopeNode=h.createScriptProcessor(256,1,1),o.buffer=p(e.buffer),o.playbackRate.setValueAtTime(e.playbackRate,i),o.connect(e._scopeNode),e._scopeNode.connect(t.soundOut._silentNode),e._scopeNode.onaudioprocess=function(t){var i=t.inputBuffer.getChannelData(0);e._lastPos=i[i.length-1]||0,e._onTimeUpdate(e._lastPos)},o},t.SoundFile.prototype._initSourceNode=function(){var t=this,e=h.currentTime,i=h.createBufferSource();return i.buffer=t.buffer,i.playbackRate.setValueAtTime(t.playbackRate,e),i};var p=function(t){for(var e=new Float32Array(t.length),i=h.createBuffer(1,t.length,44100),o=0;o=d);var u=o(f),c=s(u,n.sampleRate),h=c.sort(function(t,e){return e.count-t.count}).splice(0,5);this.tempo=h[0].tempo;var p=5,m=r(f,h[0].tempo,n.sampleRate,p);t(m)}};var l=function(t,e){this.sampleIndex=e,this.amplitude=t,this.tempos=[],this.intervals=[]},f=[];t.SoundFile.prototype.addCue=function(t,e,i){var o=this._cueIDCounter++,n=new d(e,t,o,i);return this._cues.push(n),o},t.SoundFile.prototype.removeCue=function(t){for(var e=this._cues.length,i=0;e>i;i++){var o=this._cues[i];o.id===t&&this.cues.splice(i,1)}0===this._cues.length},t.SoundFile.prototype.clearCues=function(){this._cues=[]},t.SoundFile.prototype._onTimeUpdate=function(t){for(var e=t/this.buffer.sampleRate,i=this._cues.length,o=0;i>o;o++){var n=this._cues[o],s=n.time,r=n.val;this._prevTime=s&&n.callback(r)}this._prevTime=e};var d=function(t,e,i,o){this.callback=t,this.time=e,this.id=i,this.val=o}}(e,n,i);var a;a=function(){"use strict";var e=i;t.Amplitude=function(t){this.bufferSize=2048,this.audiocontext=e.audiocontext,this.processor=this.audiocontext.createScriptProcessor(this.bufferSize,2,1),this.input=this.processor,this.output=this.audiocontext.createGain(),this.smoothing=t||0,this.volume=0,this.average=0,this.stereoVol=[0,0],this.stereoAvg=[0,0],this.stereoVolNorm=[0,0],this.volMax=.001,this.normalize=!1,this.processor.onaudioprocess=this._audioProcess.bind(this),this.processor.connect(this.output),this.output.gain.value=0,this.output.connect(this.audiocontext.destination),e.meter.connect(this.processor),e.soundArray.push(this)},t.Amplitude.prototype.setInput=function(i,o){e.meter.disconnect(),o&&(this.smoothing=o),null==i?(console.log("Amplitude input source is not ready! Connecting to master output instead"),e.meter.connect(this.processor)):i instanceof t.Signal?i.output.connect(this.processor):i?(i.connect(this.processor),this.processor.disconnect(),this.processor.connect(this.output)):e.meter.connect(this.processor)},t.Amplitude.prototype.connect=function(t){this.output.connect(t?t.hasOwnProperty("input")?t.input:t:this.panner.connect(e.input))},t.Amplitude.prototype.disconnect=function(){this.output.disconnect()},t.Amplitude.prototype._audioProcess=function(t){for(var e=0;ea;a++)i=o[a],this.normalize?(s+=Math.max(Math.min(i/this.volMax,1),-1),r+=Math.max(Math.min(i/this.volMax,1),-1)*Math.max(Math.min(i/this.volMax,1),-1)):(s+=i,r+=i*i);var u=s/n,c=Math.sqrt(r/n);this.stereoVol[e]=Math.max(c,this.stereoVol[e]*this.smoothing),this.stereoAvg[e]=Math.max(u,this.stereoVol[e]*this.smoothing),this.volMax=Math.max(this.stereoVol[e],this.volMax)}var h=this,p=this.stereoVol.reduce(function(t,e,i){return h.stereoVolNorm[i-1]=Math.max(Math.min(h.stereoVol[i-1]/h.volMax,1),0),h.stereoVolNorm[i]=Math.max(Math.min(h.stereoVol[i]/h.volMax,1),0),t+e});this.volume=p/this.stereoVol.length,this.volNorm=Math.max(Math.min(this.volume/this.volMax,1),0)},t.Amplitude.prototype.getLevel=function(t){return"undefined"!=typeof t?this.normalize?this.stereoVolNorm[t]:this.stereoVol[t]:this.normalize?this.volNorm:this.volume},t.Amplitude.prototype.toggleNormalize=function(t){this.normalize="boolean"==typeof t?t:!this.normalize},t.Amplitude.prototype.smooth=function(t){t>=0&&1>t?this.smoothing=t:console.log("Error: smoothing must be between 0 and 1")},t.Amplitude.prototype.dispose=function(){var t=e.soundArray.indexOf(this);e.soundArray.splice(t,1),this.input.disconnect(),this.output.disconnect(),this.input=this.processor=void 0,this.output=void 0}}(i);var u;u=function(){"use strict";var e=i;t.FFT=function(t,i){this.smoothing=t||.8,this.bins=i||1024;var o=2*i||2048;this.input=this.analyser=e.audiocontext.createAnalyser(),e.fftMeter.connect(this.analyser),this.analyser.smoothingTimeConstant=this.smoothing,this.analyser.fftSize=o,this.freqDomain=new Uint8Array(this.analyser.frequencyBinCount),this.timeDomain=new Uint8Array(this.analyser.frequencyBinCount),this.bass=[20,140],this.lowMid=[140,400],this.mid=[400,2600],this.highMid=[2600,5200],this.treble=[5200,14e3],e.soundArray.push(this)},t.FFT.prototype.setInput=function(t){t?(t.output?t.output.connect(this.analyser):t.connect&&t.connect(this.analyser),e.fftMeter.disconnect()):e.fftMeter.connect(this.analyser)},t.FFT.prototype.waveform=function(){for(var e,i,o,n=0;ni){var n=i;i=t,t=n}for(var s=Math.round(t/o*this.freqDomain.length),r=Math.round(i/o*this.freqDomain.length),a=0,u=0,c=s;r>=c;c++)a+=this.freqDomain[c],u+=1;var h=a/u;return h}throw"invalid input for getEnergy()"}var p=Math.round(t/o*this.freqDomain.length);return this.freqDomain[p]},t.FFT.prototype.getFreq=function(t,e){console.log("getFreq() is deprecated. Please use getEnergy() instead.");var i=this.getEnergy(t,e);return i},t.FFT.prototype.smooth=function(t){t&&(this.smoothing=t),this.analyser.smoothingTimeConstant=t},t.FFT.prototype.dispose=function(){var t=e.soundArray.indexOf(this);e.soundArray.splice(t,1),this.analyser.disconnect(),this.analyser=void 0};var o=function(t){t.freqDomain instanceof Float32Array==!1&&(t.freqDomain=new Float32Array(t.analyser.frequencyBinCount))},n=function(t){t.freqDomain instanceof Uint8Array==!1&&(t.freqDomain=new Uint8Array(t.analyser.frequencyBinCount))},s=function(t){t.timeDomain instanceof Float32Array==!1&&(t.timeDomain=new Float32Array(t.analyser.frequencyBinCount))},r=function(t){t.timeDomain instanceof Uint8Array==!1&&(t.timeDomain=new Uint8Array(t.analyser.frequencyBinCount))}}(i);var c;c=function(){"use strict";function t(t){return void 0===t}var e;if(t(window.AudioContext)&&(window.AudioContext=window.webkitAudioContext),t(window.OfflineAudioContext)&&(window.OfflineAudioContext=window.webkitOfflineAudioContext),t(AudioContext))throw new Error("Web Audio is not supported in this browser");e=new AudioContext,"function"!=typeof AudioContext.prototype.createGain&&(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),"function"!=typeof AudioContext.prototype.createDelay&&(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),"function"!=typeof AudioContext.prototype.createPeriodicWave&&(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),"function"!=typeof AudioBufferSourceNode.prototype.start&&(AudioBufferSourceNode.prototype.start=AudioBufferSourceNode.prototype.noteGrainOn),"function"!=typeof AudioBufferSourceNode.prototype.stop&&(AudioBufferSourceNode.prototype.stop=AudioBufferSourceNode.prototype.noteOff),"function"!=typeof OscillatorNode.prototype.start&&(OscillatorNode.prototype.start=OscillatorNode.prototype.noteOn),"function"!=typeof OscillatorNode.prototype.stop&&(OscillatorNode.prototype.stop=OscillatorNode.prototype.noteOff),"function"!=typeof OscillatorNode.prototype.setPeriodicWave&&(OscillatorNode.prototype.setPeriodicWave=OscillatorNode.prototype.setWaveTable),window.Tone||(AudioNode.prototype._nativeConnect=AudioNode.prototype.connect,AudioNode.prototype.connect=function(e,i,o){if(e.input)Array.isArray(e.input)?(t(o)&&(o=0),this.connect(e.input[o])):this.connect(e.input,i,o);else try{e instanceof AudioNode?this._nativeConnect(e,i,o):this._nativeConnect(e,i)}catch(n){throw new Error("error connecting to node: "+e)}});var i=function(e,i){t(e)||1===e?this.input=this.context.createGain():e>1&&(this.input=new Array(e)),t(i)||1===i?this.output=this.context.createGain():i>1&&(this.output=new Array(e))};i.context=e,i.prototype.context=i.context,i.prototype.bufferSize=2048,i.prototype.bufferTime=i.prototype.bufferSize/i.context.sampleRate,i.prototype.connect=function(t,e,i){Array.isArray(this.output)?(e=this.defaultArg(e,0),this.output[e].connect(t,0,i)):this.output.connect(t,e,i)},i.prototype.disconnect=function(t){Array.isArray(this.output)?(t=this.defaultArg(t,0),this.output[t].disconnect()):this.output.disconnect() -},i.prototype.connectSeries=function(){if(arguments.length>1)for(var t=arguments[0],e=1;e1)for(var e=1;e0)for(var t=this,e=0;e0)for(var t=1;ti){var o=i;i=e,e=o}else if(e==i)return 0;return(t-e)/(i-e)},i.prototype.dispose=function(){this.isUndef(this.input)||(this.input instanceof AudioNode&&this.input.disconnect(),this.input=null),this.isUndef(this.output)||(this.output instanceof AudioNode&&this.output.disconnect(),this.output=null)};var o=null;i.prototype.noGC=function(){this.output.connect(o)},AudioNode.prototype.noGC=function(){this.connect(o)},i.prototype.now=function(){return this.context.currentTime},i.prototype.samplesToSeconds=function(t){return t/this.context.sampleRate},i.prototype.toSamples=function(t){var e=this.toSeconds(t);return Math.round(e*this.context.sampleRate)},i.prototype.toSeconds=function(t,e){if(e=this.defaultArg(e,this.now()),"number"==typeof t)return t;if("string"==typeof t){var i=0;return"+"===t.charAt(0)&&(t=t.slice(1),i=e),parseFloat(t)+i}return e},i.prototype.frequencyToSeconds=function(t){return 1/parseFloat(t)},i.prototype.secondsToFrequency=function(t){return 1/t};var n=[];return i._initAudioContext=function(t){t(i.context),n.push(t)},i.setContext=function(t){i.prototype.context=t,i.context=t;for(var e=0;ee;e++){var o=e/i*2-1,n=e/(i-1)*2-1;this._curve[e]=t(o,e,n)}this._shaper.curve=this._curve},t.WaveShaper.prototype.setCurve=function(t){if(this._isSafari()){var e=t[0];t.unshift(e)}this._curve=new Float32Array(t),this._shaper.curve=this._curve},t.WaveShaper.prototype.setOversample=function(t){this._shaper.oversample=t},t.WaveShaper.prototype._isSafari=function(){var t=navigator.userAgent.toLowerCase();return-1!==t.indexOf("safari")&&-1===t.indexOf("chrome")},t.WaveShaper.prototype.dispose=function(){t.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null},t.WaveShaper}(c);var l;l=function(t){"use strict";return t.Signal=function(e){this._scalar=this.context.createGain(),this.input=this.output=this.context.createGain(),this._syncRatio=1,this.value=this.defaultArg(e,0),t.Signal._constant.chain(this._scalar,this.output)},t.extend(t.Signal,t.SignalBase),t.Signal.prototype.getValue=function(){return this._scalar.gain.value},t.Signal.prototype.setValue=function(t){0===this._syncRatio?t=0:t*=this._syncRatio,this._scalar.gain.value=t},t.Signal.prototype.setValueAtTime=function(t,e){t*=this._syncRatio,this._scalar.gain.setValueAtTime(t,this.toSeconds(e))},t.Signal.prototype.setCurrentValueNow=function(t){t=this.defaultArg(t,this.now());var e=this.getValue();return this.cancelScheduledValues(t),this._scalar.gain.setValueAtTime(e,t),e},t.Signal.prototype.linearRampToValueAtTime=function(t,e){t*=this._syncRatio,this._scalar.gain.linearRampToValueAtTime(t,this.toSeconds(e))},t.Signal.prototype.exponentialRampToValueAtTime=function(t,e){t*=this._syncRatio;try{this._scalar.gain.exponentialRampToValueAtTime(t,this.toSeconds(e))}catch(i){this._scalar.gain.linearRampToValueAtTime(t,this.toSeconds(e))}},t.Signal.prototype.exponentialRampToValueNow=function(t,e){var i=this.now();this.setCurrentValueNow(i),"+"===e.toString().charAt(0)&&(e=e.substr(1)),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e))},t.Signal.prototype.linearRampToValueNow=function(t,e){var i=this.now();this.setCurrentValueNow(i),t*=this._syncRatio,"+"===e.toString().charAt(0)&&(e=e.substr(1)),this._scalar.gain.linearRampToValueAtTime(t,i+this.toSeconds(e))},t.Signal.prototype.setTargetAtTime=function(t,e,i){t*=this._syncRatio,this._scalar.gain.setTargetAtTime(t,this.toSeconds(e),i)},t.Signal.prototype.setValueCurveAtTime=function(t,e,i){for(var o=0;o0?this.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n):this.oscillator.frequency.linearRampToValueAtTime(t,o+i+n),this.phaseAmount&&this.phase(this.phaseAmount)}},t.Oscillator.prototype.getFreq=function(){return this.oscillator.frequency.value},t.Oscillator.prototype.setType=function(t){this.oscillator.type=t},t.Oscillator.prototype.getType=function(){return this.oscillator.type},t.Oscillator.prototype.connect=function(t){t?t.hasOwnProperty("input")?(this.panner.connect(t.input),this.connection=t.input):(this.panner.connect(t),this.connection=t):this.panner.connect(e.input)},t.Oscillator.prototype.disconnect=function(){this.output.disconnect(),this.panner.disconnect(),this.output.connect(this.panner),this.oscMods=[]},t.Oscillator.prototype.pan=function(t,e){this.panPosition=t,this.panner.pan(t,e)},t.Oscillator.prototype.getPan=function(){return this.panPosition},t.Oscillator.prototype.dispose=function(){var t=e.soundArray.indexOf(this);if(e.soundArray.splice(t,1),this.oscillator){var i=e.audiocontext.currentTime;this.stop(i),this.disconnect(),this.oscillator.disconnect(),this.panner=null,this.oscillator=null}this.osc2&&this.osc2.dispose()},t.Oscillator.prototype.phase=function(i){var o=t.prototype.map(i,0,1,0,1/this.f),n=e.audiocontext.currentTime;this.phaseAmount=i,this.dNode||(this.dNode=e.audiocontext.createDelay(),this.oscillator.disconnect(),this.oscillator.connect(this.dNode),this.dNode.connect(this.output)),this.dNode.delayTime.setValueAtTime(o,n)};var r=function(t,e,i,o,n){var s=t.oscillator;for(var r in t.mathOps)t.mathOps[r]instanceof n&&(s.disconnect(),t.mathOps[r].dispose(),i=r,i0&&(s=t.mathOps[r-1]),s.disconnect(),s.connect(e),e.connect(o),t.mathOps[i]=e,t};t.Oscillator.prototype.add=function(t){var e=new o(t),i=this.mathOps.length-1,n=this.output;return r(this,e,i,n,o)},t.Oscillator.prototype.mult=function(t){var e=new n(t),i=this.mathOps.length-1,o=this.output;return r(this,e,i,o,n)},t.Oscillator.prototype.scale=function(e,i,o,n){var a,u;4===arguments.length?(a=t.prototype.map(o,e,i,0,1)-.5,u=t.prototype.map(n,e,i,0,1)-.5):(a=arguments[0],u=arguments[1]);var c=new s(a,u),h=this.mathOps.length-1,p=this.output;return r(this,c,h,p,s)},t.SinOsc=function(e){t.Oscillator.call(this,e,"sine")},t.SinOsc.prototype=Object.create(t.Oscillator.prototype),t.TriOsc=function(e){t.Oscillator.call(this,e,"triangle")},t.TriOsc.prototype=Object.create(t.Oscillator.prototype),t.SawOsc=function(e){t.Oscillator.call(this,e,"sawtooth")},t.SawOsc.prototype=Object.create(t.Oscillator.prototype),t.SqrOsc=function(e){t.Oscillator.call(this,e,"square")},t.SqrOsc.prototype=Object.create(t.Oscillator.prototype)}(i,l,f,d,y);var g;g=function(){"use strict";var e=i,o=f,n=d,s=y,r=c;r.setContext(e.audiocontext),t.Env=function(i,o,n,s,r,a,u,c){this.aTime=i,this.aLevel=o,this.dTime=n||0,this.dLevel=s||0,this.sTime=r||0,this.sLevel=a||0,this.rTime=u||0,this.rLevel=c||0,this.output=e.audiocontext.createGain(),this.control=new t.Signal,this.control.connect(this.output),this.connection=null,this.mathOps=[this.control],this.sourceToClear=null,this.wasTriggered=!1,e.soundArray.push(this)},t.Env.prototype.set=function(t,e,i,o,n,s,r,a){this.aTime=t,this.aLevel=e,this.dTime=i||0,this.dLevel=o||0,this.sTime=n||0,this.sLevel=s||0,this.rTime=r||0,this.rLevel=a||0},t.Env.prototype.setInput=function(){for(var t=0;tn;n++)i[n]=1;var s=t.createBufferSource();return s.buffer=e,s.loop=!0,s}var o=i;t.Pulse=function(i,n){t.Oscillator.call(this,i,"sawtooth"),this.w=n||0,this.osc2=new t.SawOsc(i),this.dNode=o.audiocontext.createDelay(),this.dcOffset=e(),this.dcGain=o.audiocontext.createGain(),this.dcOffset.connect(this.dcGain),this.dcGain.connect(this.output),this.f=i||440;var s=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=s,this.dcGain.gain.value=1.7*(.5-this.w),this.osc2.disconnect(),this.osc2.panner.disconnect(),this.osc2.amp(-1),this.osc2.output.connect(this.dNode),this.dNode.connect(this.output),this.output.gain.value=1,this.output.connect(this.panner)},t.Pulse.prototype=Object.create(t.Oscillator.prototype),t.Pulse.prototype.width=function(e){if("number"==typeof e){if(1>=e&&e>=0){this.w=e;var i=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=i}this.dcGain.gain.value=1.7*(.5-this.w)}else{e.connect(this.dNode.delayTime);var o=new t.SignalAdd(-.5);o.setInput(e),o=o.mult(-1),o=o.mult(1.7),o.connect(this.dcGain.gain)}},t.Pulse.prototype.start=function(t,i){var n=o.audiocontext.currentTime,s=i||0;if(!this.started){var r=t||this.f,a=this.oscillator.type;this.oscillator=o.audiocontext.createOscillator(),this.oscillator.frequency.setValueAtTime(r,n),this.oscillator.type=a,this.oscillator.connect(this.output),this.oscillator.start(s+n),this.osc2.oscillator=o.audiocontext.createOscillator(),this.osc2.oscillator.frequency.setValueAtTime(r,s+n),this.osc2.oscillator.type=a,this.osc2.oscillator.connect(this.osc2.output),this.osc2.start(s+n),this.freqNode=[this.oscillator.frequency,this.osc2.oscillator.frequency],this.dcOffset=e(),this.dcOffset.connect(this.dcGain),this.dcOffset.start(s+n),void 0!==this.mods&&void 0!==this.mods.frequency&&(this.mods.frequency.connect(this.freqNode[0]),this.mods.frequency.connect(this.freqNode[1])),this.started=!0,this.osc2.started=!0}},t.Pulse.prototype.stop=function(t){if(this.started){var e=t||0,i=o.audiocontext.currentTime;this.oscillator.stop(e+i),this.osc2.oscillator.stop(e+i),this.dcOffset.stop(e+i),this.started=!1,this.osc2.started=!1}},t.Pulse.prototype.freq=function(t,e,i){if("number"==typeof t){this.f=t;var n=o.audiocontext.currentTime,e=e||0,i=i||0,s=this.oscillator.frequency.value;this.oscillator.frequency.cancelScheduledValues(n),this.oscillator.frequency.setValueAtTime(s,n+i),this.oscillator.frequency.exponentialRampToValueAtTime(t,i+e+n),this.osc2.oscillator.frequency.cancelScheduledValues(n),this.osc2.oscillator.frequency.setValueAtTime(s,n+i),this.osc2.oscillator.frequency.exponentialRampToValueAtTime(t,i+e+n),this.freqMod&&(this.freqMod.output.disconnect(),this.freqMod=null)}else t.output&&(t.output.disconnect(),t.output.connect(this.oscillator.frequency),t.output.connect(this.osc2.oscillator.frequency),this.freqMod=t)}}(i,v);var _;_=function(){"use strict";var e=i;t.Noise=function(){t.Oscillator.call(this),delete this.f,delete this.freq,delete this.oscillator,this.buffer=o},t.Noise.prototype=Object.create(t.Oscillator.prototype);var o=function(){for(var t=2*e.audiocontext.sampleRate,i=e.audiocontext.createBuffer(1,t,e.audiocontext.sampleRate),o=i.getChannelData(0),n=0;t>n;n++)o[n]=2*Math.random()-1;return i.type="white",i}(),n=function(){var t,i,o,n,s,r,a,u=2*e.audiocontext.sampleRate,c=e.audiocontext.createBuffer(1,u,e.audiocontext.sampleRate),h=c.getChannelData(0);t=i=o=n=s=r=a=0;for(var p=0;u>p;p++){var l=2*Math.random()-1;t=.99886*t+.0555179*l,i=.99332*i+.0750759*l,o=.969*o+.153852*l,n=.8665*n+.3104856*l,s=.55*s+.5329522*l,r=-.7616*r-.016898*l,h[p]=t+i+o+n+s+r+a+.5362*l,h[p]*=.11,a=.115926*l}return c.type="pink",c}(),s=function(){for(var t=2*e.audiocontext.sampleRate,i=e.audiocontext.createBuffer(1,t,e.audiocontext.sampleRate),o=i.getChannelData(0),n=0,s=0;t>s;s++){var r=2*Math.random()-1;o[s]=(n+.02*r)/1.02,n=o[s],o[s]*=3.5}return i.type="brown",i}();t.Noise.prototype.setType=function(t){switch(t){case"white":this.buffer=o;break;case"pink":this.buffer=n;break;case"brown":this.buffer=s;break;default:this.buffer=o}if(this.started){var i=e.audiocontext.currentTime;this.stop(i),this.start(i+.01)}},t.Noise.prototype.getType=function(){return this.buffer.type},t.Noise.prototype.start=function(){this.started&&this.stop(),this.noise=e.audiocontext.createBufferSource(),this.noise.buffer=this.buffer,this.noise.loop=!0,this.noise.connect(this.output);var t=e.audiocontext.currentTime;this.noise.start(t),this.started=!0},t.Noise.prototype.stop=function(){var t=e.audiocontext.currentTime;this.noise&&(this.noise.stop(t),this.started=!1)},t.Noise.prototype.dispose=function(){var t=e.audiocontext.currentTime,i=e.soundArray.indexOf(this);e.soundArray.splice(i,1),this.noise&&(this.noise.disconnect(),this.stop(t)),this.output&&this.output.disconnect(),this.panner&&this.panner.disconnect(),this.output=null,this.panner=null,this.buffer=null,this.noise=null}}(i);var S;S=function(){"use strict";var e=i;t.AudioIn=function(){this.input=e.audiocontext.createGain(),this.output=e.audiocontext.createGain(),this.stream=null,this.mediaStream=null,this.currentSource=0,this.enabled=!1,this.amplitude=new t.Amplitude,this.output.connect(this.amplitude.input),"undefined"==typeof window.MediaStreamTrack?window.alert("This browser does not support MediaStreamTrack"):"function"==typeof window.MediaStreamTrack.getSources&&window.MediaStreamTrack.getSources(this._gotSources),e.soundArray.push(this)},t.AudioIn.prototype.start=function(t,i){var o=this;if(e.inputSources[o.currentSource]){var n=e.inputSources[o.currentSource].id,s={audio:{optional:[{sourceId:n}]}};window.navigator.getUserMedia(s,this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=e.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),t&&t(),o.amplitude.setInput(o.output)},this._onStreamError=function(t){i?i(t):console.error(t)})}else window.navigator.getUserMedia({audio:!0},this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=e.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),o.amplitude.setInput(o.output),t&&t()},this._onStreamError=function(t){i?i(t):console.error(t)})},t.AudioIn.prototype.stop=function(){this.stream&&this.stream.stop()},t.AudioIn.prototype.connect=function(t){this.output.connect(t?t.hasOwnProperty("input")?t.input:t.hasOwnProperty("analyser")?t.analyser:t:e.input)},t.AudioIn.prototype.disconnect=function(t){this.output.disconnect(t),this.output.connect(this.amplitude.input)},t.AudioIn.prototype.getLevel=function(t){return t&&(this.amplitude.smoothing=t),this.amplitude.getLevel()},t.AudioIn.prototype._gotSources=function(t){for(var e=0;e0?e.inputSources:"This browser does not support MediaStreamTrack.getSources()"},t.AudioIn.prototype.getSources=function(t){"function"==typeof window.MediaStreamTrack.getSources?window.MediaStreamTrack.getSources(function(i){for(var o=0,n=i.length;n>o;o++){var s=i[o];"audio"===s.kind&&e.inputSources.push(s)}t(e.inputSources)}):console.log("This browser does not support MediaStreamTrack.getSources()")},t.AudioIn.prototype.setSource=function(t){var i=this;e.inputSources.length>0&&t=t&&(t=1),"number"==typeof t?(i.biquad.frequency.value=t,i.biquad.frequency.cancelScheduledValues(this.ac.currentTime+.01+o),i.biquad.frequency.exponentialRampToValueAtTime(t,this.ac.currentTime+.02+o)):t&&t.connect(this.biquad.frequency),i.biquad.frequency.value},t.Filter.prototype.res=function(t,e){var i=this,o=e||0;return"number"==typeof t?(i.biquad.Q.value=t,i.biquad.Q.cancelScheduledValues(i.ac.currentTime+.01+o),i.biquad.Q.linearRampToValueAtTime(t,i.ac.currentTime+.02+o)):t&&freq.connect(this.biquad.Q),i.biquad.Q.value},t.Filter.prototype.setType=function(t){this.biquad.type=t},t.Filter.prototype.amp=function(t,i,o){var i=i||0,o=o||0,n=e.audiocontext.currentTime,s=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(s,n+o+.001),this.output.gain.linearRampToValueAtTime(t,n+o+i+.001)},t.Filter.prototype.connect=function(e){var i=e||t.soundOut.input;this.output.connect(i)},t.Filter.prototype.disconnect=function(){this.output.disconnect()},t.Filter.prototype.dispose=function(){var t=e.soundArray.indexOf(this);e.soundArray.splice(t,1),this.input.disconnect(),this.input=void 0,this.output.disconnect(),this.output=void 0,this.biquad.disconnect(),this.biquad=void 0},t.LowPass=function(){t.Filter.call(this,"lowpass")},t.LowPass.prototype=Object.create(t.Filter.prototype),t.HighPass=function(){t.Filter.call(this,"highpass")},t.HighPass.prototype=Object.create(t.Filter.prototype),t.BandPass=function(){t.Filter.call(this,"bandpass")},t.BandPass.prototype=Object.create(t.Filter.prototype)}(i);var A;A=function(){"use strict";var e=i;t.Delay=function(){this.ac=e.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this._split=this.ac.createChannelSplitter(2),this._merge=this.ac.createChannelMerger(2),this._leftGain=this.ac.createGain(),this._rightGain=this.ac.createGain(),this.leftDelay=this.ac.createDelay(),this.rightDelay=this.ac.createDelay(),this._leftFilter=new t.Filter,this._rightFilter=new t.Filter,this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._leftFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._rightFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._leftFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this._rightFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this.input.connect(this._split),this.leftDelay.connect(this._leftGain),this.rightDelay.connect(this._rightGain),this._leftGain.connect(this._leftFilter.input),this._rightGain.connect(this._rightFilter.input),this._merge.connect(this.output),this.output.connect(t.soundOut.input),this._leftFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this._rightFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this.setType(0),this._maxDelay=this.leftDelay.delayTime.maxValue,e.soundArray.push(this)},t.Delay.prototype.process=function(t,e,i,o){var n=i||0,s=e||0;if(n>=1)throw new Error("Feedback value will force a positive feedback loop.");if(s>=this._maxDelay)throw new Error("Delay Time exceeds maximum delay time of "+this._maxDelay+" second.");t.connect(this.input),this.leftDelay.delayTime.setValueAtTime(s,this.ac.currentTime),this.rightDelay.delayTime.setValueAtTime(s,this.ac.currentTime),this._leftGain.gain.setValueAtTime(n,this.ac.currentTime),this._rightGain.gain.setValueAtTime(n,this.ac.currentTime),o&&(this._leftFilter.freq(o),this._rightFilter.freq(o)) -},t.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))},t.Delay.prototype.feedback=function(t){if("number"!=typeof t)t.connect(this._leftGain.gain),t.connect(this._rightGain.gain);else{if(t>=1)throw new Error("Feedback value will force a positive feedback loop.");this._leftGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime),this._rightGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime)}},t.Delay.prototype.filter=function(t,e){this._leftFilter.set(t,e),this._rightFilter.set(t,e)},t.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._leftFilter.output.connect(this._merge,0,1),this._leftFilter.output.connect(this.leftDelay),this._leftFilter.output.connect(this.rightDelay)}},t.Delay.prototype.amp=function(t,i,o){var i=i||0,o=o||0,n=e.audiocontext.currentTime,s=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(s,n+o+.001),this.output.gain.linearRampToValueAtTime(t,n+o+i+.001)},t.Delay.prototype.connect=function(e){var i=e||t.soundOut.input;this.output.connect(i)},t.Delay.prototype.disconnect=function(){this.output.disconnect()},t.Delay.prototype.dispose=function(){var t=e.soundArray.indexOf(this);e.soundArray.splice(t,1),this.input.disconnect(),this.output.disconnect(),this._split.disconnect(),this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._merge.disconnect(),this._leftGain.disconnect(),this._rightGain.disconnect(),this.leftDelay.disconnect(),this.rightDelay.disconnect(),this.input=void 0,this.output=void 0,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}}(i,b);var x;x=function(){"use strict";var e=i,o=n;t.Reverb=function(){this.ac=e.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse(),this.connect(),e.soundArray.push(this)},t.Reverb.prototype.process=function(t,e,i,o){t.connect(this.input);var n=!1;e&&(this._seconds=e,n=!0),i&&(this._decay=i),o&&(this._reverse=o),n&&this._buildImpulse()},t.Reverb.prototype.set=function(t,e,i){var o=!1;t&&(this._seconds=t,o=!0),e&&(this._decay=e),i&&(this._reverse=i),o&&this._buildImpulse()},t.Reverb.prototype.amp=function(t,i,o){var i=i||0,o=o||0,n=e.audiocontext.currentTime,s=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(s,n+o+.001),this.output.gain.linearRampToValueAtTime(t,n+o+i+.001)},t.Reverb.prototype.connect=function(e){var i=e||t.soundOut.input;this.output.connect(i.input?i.input:i)},t.Reverb.prototype.disconnect=function(){this.output.disconnect()},t.Reverb.prototype._buildImpulse=function(){var t,e,i=this.ac.sampleRate,o=i*this._seconds,n=this._decay,s=this.ac.createBuffer(2,o,i),r=s.getChannelData(0),a=s.getChannelData(1);for(e=0;o>e;e++)t=this.reverse?o-e:e,r[e]=(2*Math.random()-1)*Math.pow(1-t/o,n),a[e]=(2*Math.random()-1)*Math.pow(1-t/o,n);this.convolverNode.buffer=s},t.Reverb.prototype.dispose=function(){var t=e.soundArray.indexOf(this);e.soundArray.splice(t,1),this.convolverNode&&(this.convolverNode.buffer=null,this.convolverNode=null),"undefined"!=typeof this.output&&(this.output.disconnect(),this.output=null),"undefined"!=typeof this.panner&&(this.panner.disconnect(),this.panner=null)},t.Convolver=function(t,i,o){this.ac=e.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),t?(this.impulses=[],this._loadBuffer(t,i,o)):(this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse()),this.connect(),e.soundArray.push(this)},t.Convolver.prototype=Object.create(t.Reverb.prototype),t.prototype.registerPreloadMethod("createConvolver",t.prototype),t.prototype.createConvolver=function(e,i,o){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var n=new t.Convolver(e,i,o);return n.impulses=[],n},t.Convolver.prototype._loadBuffer=function(e,i,n){var e=t.prototype._checkFileFormats(e),s=this,r=(new Error).stack,a=t.prototype.getAudioContext(),u=new XMLHttpRequest;u.open("GET",e,!0),u.responseType="arraybuffer",u.onload=function(){if(200==u.status)a.decodeAudioData(u.response,function(t){var o={},n=e.split("/");o.name=n[n.length-1],o.audioBuffer=t,s.impulses.push(o),s.convolverNode.buffer=o.audioBuffer,i&&i(o)},function(){var t=new o("decodeAudioData",r,s.url),e="AudioContext error at decodeAudioData for "+s.url;n?(t.msg=e,n(t)):console.error(e+"\n The error stack trace includes: \n"+t.stack)});else{var t=new o("loadConvolver",r,s.url),c="Unable to load "+s.url+". The request status was: "+u.status+" ("+u.statusText+")";n?(t.message=c,n(t)):console.error(c+"\n The error stack trace includes: \n"+t.stack)}},u.onerror=function(){var t=new o("loadConvolver",r,s.url),e="There was no response from the server at "+s.url+". Check the url and internet connectivity.";n?(t.message=e,n(t)):console.error(e+"\n The error stack trace includes: \n"+t.stack)},u.send()},t.Convolver.prototype.set=null,t.Convolver.prototype.process=function(t){t.connect(this.input)},t.Convolver.prototype.impulses=[],t.Convolver.prototype.addImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this._loadBuffer(t,e,i)},t.Convolver.prototype.resetImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this.impulses=[],this._loadBuffer(t,e,i)},t.Convolver.prototype.toggleImpulse=function(t){if("number"==typeof t&&tr;r++){var a=o[r];a>0&&!n?(n=!0,setTimeout(function(){var t=e+s.samplesToSeconds(r+2*i);return function(){s.tick(t)}}(),0)):0>a&&n&&(n=!1)}this._upTick=n},t.Clock.prototype.dispose=function(){this._jsNode.disconnect(),this._controlSignal.dispose(),this._oscillator&&(this._oscillator.onended(),this._oscillator.disconnect()),this._jsNode.onaudioprocess=function(){},this._jsNode=null,this._controlSignal=null,this._oscillator=null},t.Clock}(c);var P;P=function(){"use strict";var e=i,o=w,n=e.audiocontext;t.Metro=function(){this.clock=new o(n.sampleRate,this.ontick.bind(this)),this.syncedParts=[],this.bpm=120,this._init(),this.tickCallback=function(){}};var s=0,r=0;t.Metro.prototype.ontick=function(t){var i=t-s,o=t-e.audiocontext.currentTime;if(!(-.02>=i-r)){s=t;for(var n in this.syncedParts){var a=this.syncedParts[n];a.incrementStep(o);for(var u in a.phrases){var c=a.phrases[u],h=c.sequence,p=this.metroTicks%h.length;0!==h[p]&&(this.metroTicks=t.parts.length?(t.scoreStep=0,t.onended()):(t.scoreStep=0,t.parts[t.currentPart-1].stop(),t.parts[t.currentPart].start())}var o=i,n=120;t.prototype.setBPM=function(t,e){n=t;for(var i in o.parts)o.parts[i].setBPM(n,e)},t.Phrase=function(t,e,i){this.phraseStep=0,this.name=t,this.callback=e,this.sequence=i},t.Part=function(e,i){this.length=e||0,this.partStep=0,this.phrases=[],this.looping=!1,this.isPlaying=!1,this.onended=function(){this.stop()},this.tatums=i||.0625,this.metro=new t.Metro,this.metro._init(),this.metro.beatLength(this.tatums),this.metro.setBPM(n),o.parts.push(this),this.callback=function(){}},t.Part.prototype.setBPM=function(t,e){this.metro.setBPM(t,e)},t.Part.prototype.getBPM=function(){return this.metro.getBPM()},t.Part.prototype.start=function(t){if(!this.isPlaying){this.isPlaying=!0,this.metro.resetSync(this);var e=t||0;this.metro.start(e)}},t.Part.prototype.loop=function(t){this.looping=!0,this.onended=function(){this.partStep=0};var e=t||0;this.start(e)},t.Part.prototype.noLoop=function(){this.looping=!1,this.onended=function(){this.stop()}},t.Part.prototype.stop=function(t){this.partStep=0,this.pause(t)},t.Part.prototype.pause=function(t){this.isPlaying=!1;var e=t||0;this.metro.stop(e)},t.Part.prototype.addPhrase=function(e,i,o){var n;if(3===arguments.length)n=new t.Phrase(e,i,o);else{if(!(arguments[0]instanceof t.Phrase))throw"invalid input. addPhrase accepts name, callback, array or a p5.Phrase";n=arguments[0]}this.phrases.push(n),n.sequence.length>this.length&&(this.length=n.sequence.length)},t.Part.prototype.removePhrase=function(t){for(var e in this.phrases)this.phrases[e].name===t&&this.phrases.split(e,1)},t.Part.prototype.getPhrase=function(t){for(var e in this.phrases)if(this.phrases[e].name===t)return this.phrases[e]},t.Part.prototype.replaceSequence=function(t,e){for(var i in this.phrases)this.phrases[i].name===t&&(this.phrases[i].sequence=e)},t.Part.prototype.incrementStep=function(t){this.partSteps;)o[s++]=t[n],o[s++]=e[n],n++;return o}function o(t,e,i){for(var o=i.length,n=0;o>n;n++)t.setUint8(e+n,i.charCodeAt(n))}var n=i,s=n.audiocontext;t.SoundRecorder=function(){this.input=s.createGain(),this.output=s.createGain(),this.recording=!1,this.bufferSize=1024,this._channels=2,this._clear(),this._jsNode=s.createScriptProcessor(this.bufferSize,this._channels,2),this._jsNode.onaudioprocess=this._audioprocess.bind(this),this._callback=function(){},this._jsNode.connect(t.soundOut._silentNode),this.setInput(),n.soundArray.push(this)},t.SoundRecorder.prototype.setInput=function(e){this.input.disconnect(),this.input=null,this.input=s.createGain(),this.input.connect(this._jsNode),this.input.connect(this.output),e?e.connect(this.input):t.soundOut.output.connect(this.input)},t.SoundRecorder.prototype.record=function(t,e,i){this.recording=!0,e&&(this.sampleLimit=Math.round(e*s.sampleRate)),t&&i?this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer),i()}:t&&(this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer)})},t.SoundRecorder.prototype.stop=function(){this.recording=!1,this._callback(),this._clear()},t.SoundRecorder.prototype._clear=function(){this._leftBuffers=[],this._rightBuffers=[],this.recordedSamples=0,this.sampleLimit=null},t.SoundRecorder.prototype._audioprocess=function(t){if(this.recording!==!1&&this.recording===!0)if(this.sampleLimit&&this.recordedSamples>=this.sampleLimit)this.stop();else{var e=t.inputBuffer.getChannelData(0),i=t.inputBuffer.getChannelData(1);this._leftBuffers.push(new Float32Array(e)),this._rightBuffers.push(new Float32Array(i)),this.recordedSamples+=this.bufferSize}},t.SoundRecorder.prototype._getBuffer=function(){var t=[];return t.push(this._mergeBuffers(this._leftBuffers)),t.push(this._mergeBuffers(this._rightBuffers)),t},t.SoundRecorder.prototype._mergeBuffers=function(t){for(var e=new Float32Array(this.recordedSamples),i=0,o=t.length,n=0;o>n;n++){var s=t[n];e.set(s,i),i+=s.length}return e},t.SoundRecorder.prototype.dispose=function(){this._clear();var t=n.soundArray.indexOf(this);n.soundArray.splice(t,1),this._callback=function(){},this.input&&this.input.disconnect(),this.input=null,this._jsNode=null},t.prototype.saveSound=function(i,n){var s=i.buffer.getChannelData(0),r=i.buffer.getChannelData(1),a=e(s,r),u=new ArrayBuffer(44+2*a.length),c=new DataView(u);o(c,0,"RIFF"),c.setUint32(4,44+2*a.length,!0),o(c,8,"WAVE"),o(c,12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,2,!0),c.setUint32(24,44100,!0),c.setUint32(28,176400,!0),c.setUint16(32,4,!0),c.setUint16(34,16,!0),o(c,36,"data"),c.setUint32(40,2*a.length,!0);for(var h=a.length,p=44,l=1,f=0;h>f;f++)c.setInt16(p,32767*a[f]*l,!0),p+=2;t.prototype.writeFile([c],n,"wav")}}(e,i);var F;F=function(){"use strict";t.PeakDetect=function(t,e,i,o){this.framesPerPeak=o||20,this.framesSinceLastPeak=0,this.decayRate=.95,this.threshold=i||.35,this.cutoff=0,this.cutoffMult=1.5,this.energy=0,this.penergy=0,this.currentValue=0,this.isDetected=!1,this.f1=t||40,this.f2=e||2e4,this._onPeak=function(){}},t.PeakDetect.prototype.update=function(t){var e=this.energy=t.getEnergy(this.f1,this.f2)/255;e>this.cutoff&&e>this.threshold&&e-this.penergy>0?(this._onPeak(),this.isDetected=!0,this.cutoff=e*this.cutoffMult,this.framesSinceLastPeak=0):(this.isDetected=!1,this.framesSinceLastPeak<=this.framesPerPeak?this.framesSinceLastPeak++:(this.cutoff*=this.decayRate,this.cutoff=Math.max(this.cutoff,this.threshold))),this.currentValue=e,this.penergy=e},t.PeakDetect.prototype.onPeak=function(t,e){var i=this;i._onPeak=function(){t(i.energy,e)}}}(i);var N;N=function(){"use strict";var e=i;t.Gain=function(){this.ac=e.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.output),e.soundArray.push(this)},t.Gain.prototype.setInput=function(t){t.connect(this.input)},t.Gain.prototype.connect=function(e){var i=e||t.soundOut.input;this.output.connect(i.input?i.input:i)},t.Gain.prototype.disconnect=function(){this.output.disconnect()},t.Gain.prototype.amp=function(t,i,o){var i=i||0,o=o||0,n=e.audiocontext.currentTime,s=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(s,n+o),this.output.gain.linearRampToValueAtTime(t,n+o+i)},t.Gain.prototype.dispose=function(){var t=e.soundArray.indexOf(this);e.soundArray.splice(t,1),this.output.disconnect(),this.input.disconnect(),this.output=void 0,this.input=void 0}}(i,e);var M;M=function(){"use strict";var t=e;return t}(e,i,o,n,s,r,a,u,m,v,g,T,_,S,b,A,x,P,C,O,F,N)}); \ No newline at end of file +!function(t,e){"function"==typeof define&&define.amd?define("p5.sound",["p5"],function(t){e(t)}):e("object"==typeof exports?require("../p5"):t.p5)}(this,function(p5){var sndcore;sndcore=function(){"use strict";!function(t,e){function i(t){t&&(t.setTargetAtTime||(t.setTargetAtTime=t.setTargetValueAtTime))}return e=e||{},window.hasOwnProperty("webkitAudioContext")&&!window.hasOwnProperty("AudioContext")&&(window.AudioContext=webkitAudioContext,AudioContext.prototype.hasOwnProperty("createGain")||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),AudioContext.prototype.hasOwnProperty("createDelay")||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),AudioContext.prototype.hasOwnProperty("createScriptProcessor")||(AudioContext.prototype.createScriptProcessor=AudioContext.prototype.createJavaScriptNode),AudioContext.prototype.hasOwnProperty("createPeriodicWave")||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),AudioContext.prototype.internal_createGain=AudioContext.prototype.createGain,AudioContext.prototype.createGain=function(){var t=this.internal_createGain();return i(t.gain),t},AudioContext.prototype.internal_createDelay=AudioContext.prototype.createDelay,AudioContext.prototype.createDelay=function(t){var e=t?this.internal_createDelay(t):this.internal_createDelay();return i(e.delayTime),e},AudioContext.prototype.internal_createBufferSource=AudioContext.prototype.createBufferSource,AudioContext.prototype.createBufferSource=function(){var t=this.internal_createBufferSource();return t.start?(t.internal_start=t.start,t.start=function(e,i,o){"undefined"!=typeof o?t.internal_start(e||0,i,o):t.internal_start(e||0,i||0)}):t.start=function(t,e,i){e||i?this.noteGrainOn(t||0,e,i):this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},i(t.playbackRate),t},AudioContext.prototype.internal_createDynamicsCompressor=AudioContext.prototype.createDynamicsCompressor,AudioContext.prototype.createDynamicsCompressor=function(){var t=this.internal_createDynamicsCompressor();return i(t.threshold),i(t.knee),i(t.ratio),i(t.reduction),i(t.attack),i(t.release),t},AudioContext.prototype.internal_createBiquadFilter=AudioContext.prototype.createBiquadFilter,AudioContext.prototype.createBiquadFilter=function(){var t=this.internal_createBiquadFilter();return i(t.frequency),i(t.detune),i(t.Q),i(t.gain),t},AudioContext.prototype.hasOwnProperty("createOscillator")&&(AudioContext.prototype.internal_createOscillator=AudioContext.prototype.createOscillator,AudioContext.prototype.createOscillator=function(){var t=this.internal_createOscillator();return t.start?(t.internal_start=t.start,t.start=function(e){t.internal_start(e||0)}):t.start=function(t){this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},t.setPeriodicWave||(t.setPeriodicWave=t.setWaveTable),i(t.frequency),i(t.detune),t})),window.hasOwnProperty("webkitOfflineAudioContext")&&!window.hasOwnProperty("OfflineAudioContext")&&(window.OfflineAudioContext=webkitOfflineAudioContext),e}(window);var t=new window.AudioContext;p5.prototype.getAudioContext=function(){return t},navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;var e=document.createElement("audio");p5.prototype.isSupported=function(){return!!e.canPlayType};var i=function(){return!!e.canPlayType&&e.canPlayType('audio/ogg; codecs="vorbis"')},o=function(){return!!e.canPlayType&&e.canPlayType("audio/mpeg;")},n=function(){return!!e.canPlayType&&e.canPlayType('audio/wav; codecs="1"')},r=function(){return!!e.canPlayType&&(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;"))},s=function(){return!!e.canPlayType&&e.canPlayType("audio/x-aiff;")};p5.prototype.isFileSupported=function(t){switch(t.toLowerCase()){case"mp3":return o();case"wav":return n();case"ogg":return i();case"mp4":return r();case"aiff":return s();default:return!1}};var a=navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1;if(a){var u=!1,c=function(){if(!u){var e=t.createBuffer(1,1,22050),i=t.createBufferSource();i.buffer=e,i.connect(t.destination),i.start(0),console.log("start ios!"),"running"===t.state&&(u=!0)}};document.addEventListener("touchend",c,!1),document.addEventListener("touchstart",c,!1)}}();var master;master=function(){"use strict";var t=function(){var t=p5.prototype.getAudioContext();this.input=t.createGain(),this.output=t.createGain(),this.limiter=t.createDynamicsCompressor(),this.limiter.threshold.value=0,this.limiter.ratio.value=100,this.audiocontext=t,this.output.disconnect(),this.inputSources=[],this.input.connect(this.limiter),this.limiter.connect(this.output),this.meter=t.createGain(),this.fftMeter=t.createGain(),this.output.connect(this.meter),this.output.connect(this.fftMeter),this.output.connect(this.audiocontext.destination),this.soundArray=[],this.parts=[],this.extensions=[]},e=new t;return p5.prototype.getMasterVolume=function(){return e.output.gain.value},p5.prototype.masterVolume=function(t,i,o){if("number"==typeof t){var i=i||0,o=o||0,n=e.audiocontext.currentTime,r=e.output.gain.value;e.output.gain.cancelScheduledValues(n+o),e.output.gain.linearRampToValueAtTime(r,n+o),e.output.gain.linearRampToValueAtTime(t,n+o+i)}else{if(!t)return e.output.gain;t.connect(e.output.gain)}},p5.soundOut=e,p5.soundOut._silentNode=e.audiocontext.createGain(),p5.soundOut._silentNode.gain.value=0,p5.soundOut._silentNode.connect(e.audiocontext.destination),e}(sndcore);var helpers;helpers=function(){"use strict";var t=master;p5.prototype.sampleRate=function(){return t.audiocontext.sampleRate},p5.prototype.freqToMidi=function(t){var e=Math.log(t/440)/Math.log(2),i=Math.round(12*e)+57;return i},p5.prototype.midiToFreq=function(t){return 440*Math.pow(2,(t-69)/12)},p5.prototype.soundFormats=function(){t.extensions=[];for(var e=0;e-1))throw arguments[e]+" is not a valid sound format!";t.extensions.push(arguments[e])}},p5.prototype.disposeSound=function(){for(var e=0;e-1){var n=p5.prototype.isFileSupported(o);if(n)i=i;else for(var r=i.split("."),s=r[r.length-1],a=0;a1?(this.splitter=e.createChannelSplitter(2),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0)):(this.input.connect(this.left),this.input.connect(this.right)),this.output=e.createChannelMerger(2),this.left.connect(this.output,0,1),this.right.connect(this.output,0,0),this.output.connect(i)},p5.Panner.prototype.pan=function(t,i){var o=i||0,n=e.currentTime+o,r=(t+1)/2,s=Math.cos(r*Math.PI/2),a=Math.sin(r*Math.PI/2);this.left.gain.linearRampToValueAtTime(a,n),this.right.gain.linearRampToValueAtTime(s,n)},p5.Panner.prototype.inputChannels=function(t){1===t?(this.input.disconnect(),this.input.connect(this.left),this.input.connect(this.right)):2===t&&(this.splitter=e.createChannelSplitter(2),this.input.disconnect(),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0))},p5.Panner.prototype.connect=function(t){this.output.connect(t)},p5.Panner.prototype.disconnect=function(){this.output.disconnect()}),p5.Panner3D=function(t,i){var o=e.createPanner();return o.panningModel="HRTF",o.distanceModel="linear",o.setPosition(0,0,0),t.connect(o),o.connect(i),o.pan=function(t,e,i){o.setPosition(t,e,i)},o}}(master);var soundfile;soundfile=function(){"use strict";function t(t,e){for(var i={},o=t.length,n=0;o>n;n++){if(t[n]>e){var r=t[n],s=new c(r,n);i[n]=s,n+=6e3}n++}return i}function e(t){for(var e=[],i=Object.keys(t).sort(),o=0;on;n++){var r=t[i[o]],s=t[i[o+n]];if(r&&s){var a=r.sampleIndex,u=s.sampleIndex,c=u-a;c>0&&r.intervals.push(c);var p=e.some(function(t){return t.interval===c?(t.count++,t):void 0});p||e.push({interval:c,count:1})}}return e}function i(t,e){var i=[];return t.forEach(function(t){try{var o=Math.abs(60/(t.interval/e));o=n(o);var r=i.some(function(e){return e.tempo===o?e.count+=t.count:void 0});if(!r){if(isNaN(o))return;i.push({tempo:Math.round(o),count:t.count})}}catch(s){throw s}}),i}function o(t,e,i,o){for(var r=[],s=Object.keys(t).sort(),a=0;a.01?!0:void 0})}function n(t){if(isFinite(t)&&0!=t){for(;90>t;)t*=2;for(;t>180&&t>90;)t/=2;return t}}var r=errorHandler,s=master,a=s.audiocontext;p5.SoundFile=function(t,e,i,o){if("undefined"!=typeof t){if("string"==typeof t||"string"==typeof t[0]){var n=p5.prototype._checkFileFormats(t);this.url=n}else if("object"==typeof t&&!(window.File&&window.FileReader&&window.FileList&&window.Blob))throw"Unable to load file because the File API is not supported";t.file&&(t=t.file),this.file=t}this._onended=function(){},this._looping=!1,this._playing=!1,this._paused=!1,this._pauseTime=0,this._cues=[],this._lastPos=0,this._counterNode,this._scopeNode,this.bufferSourceNodes=[],this.bufferSourceNode=null,this.buffer=null,this.playbackRate=1,this.gain=1,this.input=s.audiocontext.createGain(),this.output=s.audiocontext.createGain(),this.reversed=!1,this.startTime=0,this.endTime=null,this.pauseTime=0,this.mode="sustain",this.startMillis=null,this.panPosition=0,this.panner=new p5.Panner(this.output,s.input,2),(this.url||this.file)&&this.load(e,i),s.soundArray.push(this),this._whileLoading="function"==typeof o?o:function(){}},p5.prototype.registerPreloadMethod("loadSound",p5.prototype),p5.prototype.loadSound=function(t,e,i,o){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var n=new p5.SoundFile(t,e,i,o);return n},p5.SoundFile.prototype.load=function(t,e){var i=this,o=(new Error).stack;if(void 0!=this.url&&""!=this.url){var n=new XMLHttpRequest;n.addEventListener("progress",function(t){i._updateProgress(t)},!1),n.open("GET",this.url,!0),n.responseType="arraybuffer",n.onload=function(){if(200==n.status)a.decodeAudioData(n.response,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)},function(){var t=new r("decodeAudioData",o,i.url),n="AudioContext error at decodeAudioData for "+i.url;e?(t.msg=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)});else{var s=new r("loadSound",o,i.url),u="Unable to load "+i.url+". The request status was: "+n.status+" ("+n.statusText+")";e?(s.message=u,e(s)):console.error(u+"\n The error stack trace includes: \n"+s.stack)}},n.onerror=function(){var t=new r("loadSound",o,i.url),n="There was no response from the server at "+i.url+". Check the url and internet connectivity.";e?(t.message=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)},n.send()}else if(void 0!=this.file){var s=new FileReader,i=this;s.onload=function(){a.decodeAudioData(s.result,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)})},s.onerror=function(t){onerror&&onerror(t)},s.readAsArrayBuffer(this.file)}},p5.SoundFile.prototype._updateProgress=function(t){if(t.lengthComputable){var e=Math.log(t.loaded/t.total*9.9);this._whileLoading(e)}else this._whileLoading("size unknown")},p5.SoundFile.prototype.isLoaded=function(){return this.buffer?!0:!1},p5.SoundFile.prototype.play=function(t,e,i,o,n){var r,a,u=this,c=s.audiocontext.currentTime,t=t||0;if(0>t&&(t=0),t+=c,!this.buffer)throw"not ready to play file, buffer has yet to load. Try preload()";if(this._pauseTime=0,"restart"===this.mode&&this.buffer&&this.bufferSourceNode){var c=s.audiocontext.currentTime;this.bufferSourceNode.stop(t),this._counterNode.stop(t)}if(this.bufferSourceNode=this._initSourceNode(),this._counterNode&&(this._counterNode=void 0),this._counterNode=this._initCounterNode(),o){if(!(o>=0&&o0&&this.reversed&&this.reverseBuffer();if(this.bufferSourceNode){var n=s.audiocontext.currentTime;this.bufferSourceNode.playbackRate.cancelScheduledValues(n),this.bufferSourceNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n),this._counterNode.playbackRate.cancelScheduledValues(n),this._counterNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n)}}},p5.SoundFile.prototype.setPitch=function(t){var e=midiToFreq(t)/midiToFreq(60);this.rate(e)},p5.SoundFile.prototype.getPlaybackRate=function(){return this.playbackRate},p5.SoundFile.prototype.duration=function(){return this.buffer?this.buffer.duration:0},p5.SoundFile.prototype.currentTime=function(){return this._pauseTime>0?this._pauseTime:this._lastPos/a.sampleRate},p5.SoundFile.prototype.jump=function(t,e){if(0>t||t>this.buffer.duration)throw"jump time out of range";if(e>this.buffer.duration-t)throw"end time out of range";var i=t||0,o=e||this.buffer.duration-t;this.isPlaying()&&this.stop(),this.play(0,this.playbackRate,this.output.gain.value,i,o)},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,i=e.length/t,o=~~(i/10)||1,n=e.numberOfChannels,r=new Float32Array(Math.round(t)),s=0;n>s;s++)for(var a=e.getChannelData(s),u=0;t>u;u++){for(var c=~~(u*i),p=~~(c+i),h=0,l=c;p>l;l+=o){var f=a[l];f>h?h=f:-f>h&&(h=f)}(0===s||Math.abs(h)>r[u])&&(r[u]=h)}return r}},p5.SoundFile.prototype.reverseBuffer=function(){var t=this.getVolume();if(this.setVolume(0,.01,0),this.pause(),!this.buffer)throw"SoundFile is not done loading";for(var e=0;en;n++){var r=o.getChannelData(n);r.set(t[n])}this.buffer=o,this.panner.inputChannels(e)},p5.SoundFile.prototype._initCounterNode=function(){var t=this,e=a.currentTime,i=a.createBufferSource();return t._scopeNode&&(t._scopeNode.disconnect(),t._scopeNode.onaudioprocess=void 0,t._scopeNode=null),t._scopeNode=a.createScriptProcessor(256,1,1),i.buffer=u(t.buffer),i.playbackRate.setValueAtTime(t.playbackRate,e),i.connect(t._scopeNode),t._scopeNode.connect(p5.soundOut._silentNode),t._scopeNode.onaudioprocess=function(e){var i=e.inputBuffer.getChannelData(0);t._lastPos=i[i.length-1]||0,t._onTimeUpdate(t._lastPos)},i},p5.SoundFile.prototype._initSourceNode=function(){var t=this,e=a.currentTime,i=a.createBufferSource();return i.buffer=t.buffer,i.playbackRate.setValueAtTime(t.playbackRate,e),i};var u=function(t){for(var e=new Float32Array(t.length),i=a.createBuffer(1,t.length,44100),o=0;o=d);var u=e(p),c=i(u,s.sampleRate),h=c.sort(function(t,e){return e.count-t.count}).splice(0,5);this.tempo=h[0].tempo;var l=5,y=o(p,h[0].tempo,s.sampleRate,l);n(y)}};var c=function(t,e){this.sampleIndex=e,this.amplitude=t,this.tempos=[],this.intervals=[]},p=[];p5.SoundFile.prototype.addCue=function(t,e,i){var o=this._cueIDCounter++,n=new h(e,t,o,i);return this._cues.push(n),o},p5.SoundFile.prototype.removeCue=function(t){for(var e=this._cues.length,i=0;e>i;i++){var o=this._cues[i];o.id===t&&this.cues.splice(i,1)}0===this._cues.length},p5.SoundFile.prototype.clearCues=function(){this._cues=[]},p5.SoundFile.prototype._onTimeUpdate=function(t){for(var e=t/this.buffer.sampleRate,i=this._cues.length,o=0;i>o;o++){var n=this._cues[o],r=n.time,s=n.val;this._prevTime=r&&n.callback(s)}this._prevTime=e};var h=function(t,e,i,o){this.callback=t,this.time=e,this.id=i,this.val=o}}(sndcore,errorHandler,master);var amplitude;amplitude=function(){"use strict";var t=master;p5.Amplitude=function(e){this.bufferSize=2048,this.audiocontext=t.audiocontext,this.processor=this.audiocontext.createScriptProcessor(this.bufferSize,2,1),this.input=this.processor,this.output=this.audiocontext.createGain(),this.smoothing=e||0,this.volume=0,this.average=0,this.stereoVol=[0,0],this.stereoAvg=[0,0],this.stereoVolNorm=[0,0],this.volMax=.001,this.normalize=!1,this.processor.onaudioprocess=this._audioProcess.bind(this),this.processor.connect(this.output),this.output.gain.value=0,this.output.connect(this.audiocontext.destination),t.meter.connect(this.processor),t.soundArray.push(this)},p5.Amplitude.prototype.setInput=function(e,i){t.meter.disconnect(),i&&(this.smoothing=i),null==e?(console.log("Amplitude input source is not ready! Connecting to master output instead"),t.meter.connect(this.processor)):e instanceof p5.Signal?e.output.connect(this.processor):e?(e.connect(this.processor),this.processor.disconnect(),this.processor.connect(this.output)):t.meter.connect(this.processor)},p5.Amplitude.prototype.connect=function(e){this.output.connect(e?e.hasOwnProperty("input")?e.input:e:this.panner.connect(t.input))},p5.Amplitude.prototype.disconnect=function(){this.output.disconnect()},p5.Amplitude.prototype._audioProcess=function(t){for(var e=0;ea;a++)i=o[a],this.normalize?(r+=Math.max(Math.min(i/this.volMax,1),-1),s+=Math.max(Math.min(i/this.volMax,1),-1)*Math.max(Math.min(i/this.volMax,1),-1)):(r+=i,s+=i*i);var u=r/n,c=Math.sqrt(s/n);this.stereoVol[e]=Math.max(c,this.stereoVol[e]*this.smoothing),this.stereoAvg[e]=Math.max(u,this.stereoVol[e]*this.smoothing),this.volMax=Math.max(this.stereoVol[e],this.volMax)}var p=this,h=this.stereoVol.reduce(function(t,e,i){return p.stereoVolNorm[i-1]=Math.max(Math.min(p.stereoVol[i-1]/p.volMax,1),0),p.stereoVolNorm[i]=Math.max(Math.min(p.stereoVol[i]/p.volMax,1),0),t+e});this.volume=h/this.stereoVol.length,this.volNorm=Math.max(Math.min(this.volume/this.volMax,1),0)},p5.Amplitude.prototype.getLevel=function(t){return"undefined"!=typeof t?this.normalize?this.stereoVolNorm[t]:this.stereoVol[t]:this.normalize?this.volNorm:this.volume},p5.Amplitude.prototype.toggleNormalize=function(t){this.normalize="boolean"==typeof t?t:!this.normalize},p5.Amplitude.prototype.smooth=function(t){t>=0&&1>t?this.smoothing=t:console.log("Error: smoothing must be between 0 and 1")},p5.Amplitude.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.output.disconnect(),this.input=this.processor=void 0,this.output=void 0}}(master);var fft;fft=function(){"use strict";var t=master;p5.FFT=function(e,i){this.smoothing=e||.8,this.bins=i||1024;var o=2*i||2048;this.input=this.analyser=t.audiocontext.createAnalyser(),t.fftMeter.connect(this.analyser),this.analyser.smoothingTimeConstant=this.smoothing,this.analyser.fftSize=o,this.freqDomain=new Uint8Array(this.analyser.frequencyBinCount),this.timeDomain=new Uint8Array(this.analyser.frequencyBinCount),this.bass=[20,140],this.lowMid=[140,400],this.mid=[400,2600],this.highMid=[2600,5200],this.treble=[5200,14e3],t.soundArray.push(this)},p5.FFT.prototype.setInput=function(e){e?(e.output?e.output.connect(this.analyser):e.connect&&e.connect(this.analyser),t.fftMeter.disconnect()):t.fftMeter.connect(this.analyser)},p5.FFT.prototype.waveform=function(){for(var t,e,i,r=0;ri){var n=i;i=e,e=n}for(var r=Math.round(e/o*this.freqDomain.length),s=Math.round(i/o*this.freqDomain.length),a=0,u=0,c=r;s>=c;c++)a+=this.freqDomain[c],u+=1;var p=a/u;return p}throw"invalid input for getEnergy()"}var h=Math.round(e/o*this.freqDomain.length);return this.freqDomain[h]},p5.FFT.prototype.getFreq=function(t,e){console.log("getFreq() is deprecated. Please use getEnergy() instead.");var i=this.getEnergy(t,e);return i},p5.FFT.prototype.smooth=function(t){t&&(this.smoothing=t),this.analyser.smoothingTimeConstant=t},p5.FFT.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.analyser.disconnect(),this.analyser=void 0};var e=function(t){t.freqDomain instanceof Float32Array==!1&&(t.freqDomain=new Float32Array(t.analyser.frequencyBinCount))},i=function(t){t.freqDomain instanceof Uint8Array==!1&&(t.freqDomain=new Uint8Array(t.analyser.frequencyBinCount))},o=function(t){t.timeDomain instanceof Float32Array==!1&&(t.timeDomain=new Float32Array(t.analyser.frequencyBinCount))},n=function(t){t.timeDomain instanceof Uint8Array==!1&&(t.timeDomain=new Uint8Array(t.analyser.frequencyBinCount))}}(master);var Tone_core_Tone;Tone_core_Tone=function(){"use strict";function t(t){return void 0===t}function e(t){return"function"==typeof t}var i;if(t(window.AudioContext)&&(window.AudioContext=window.webkitAudioContext),t(window.OfflineAudioContext)&&(window.OfflineAudioContext=window.webkitOfflineAudioContext),t(AudioContext))throw new Error("Web Audio is not supported in this browser");i=new AudioContext,e(AudioContext.prototype.createGain)||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),e(AudioContext.prototype.createDelay)||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),e(AudioContext.prototype.createPeriodicWave)||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),e(AudioBufferSourceNode.prototype.start)||(AudioBufferSourceNode.prototype.start=AudioBufferSourceNode.prototype.noteGrainOn),e(AudioBufferSourceNode.prototype.stop)||(AudioBufferSourceNode.prototype.stop=AudioBufferSourceNode.prototype.noteOff),e(OscillatorNode.prototype.start)||(OscillatorNode.prototype.start=OscillatorNode.prototype.noteOn),e(OscillatorNode.prototype.stop)||(OscillatorNode.prototype.stop=OscillatorNode.prototype.noteOff),e(OscillatorNode.prototype.setPeriodicWave)||(OscillatorNode.prototype.setPeriodicWave=OscillatorNode.prototype.setWaveTable),AudioNode.prototype._nativeConnect=AudioNode.prototype.connect,AudioNode.prototype.connect=function(e,i,o){if(e.input)Array.isArray(e.input)?(t(o)&&(o=0),this.connect(e.input[o])):this.connect(e.input,i,o);else try{e instanceof AudioNode?this._nativeConnect(e,i,o):this._nativeConnect(e,i)}catch(n){throw new Error("error connecting to node: "+e)}};var o=function(e,i){t(e)||1===e?this.input=this.context.createGain():e>1&&(this.input=new Array(e)),t(i)||1===i?this.output=this.context.createGain():i>1&&(this.output=new Array(e))};o.prototype.set=function(e,i,n){if(this.isObject(e))n=i;else if(this.isString(e)){var r={}; +r[e]=i,e=r}for(var s in e){i=e[s];var a=this;if(-1!==s.indexOf(".")){for(var u=s.split("."),c=0;c1)for(var t=arguments[0],e=1;e1)for(var e=1;e0)for(var t=this,e=0;e0)for(var t=0;te;e++){var o=e/i*2-1;this._curve[e]=t(o,e)}return this._shaper.curve=this._curve,this},Object.defineProperty(t.WaveShaper.prototype,"curve",{get:function(){return this._shaper.curve},set:function(t){this._curve=new Float32Array(t),this._shaper.curve=this._curve}}),Object.defineProperty(t.WaveShaper.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){if(-1===["none","2x","4x"].indexOf(t))throw new Error("invalid oversampling: "+t);this._shaper.oversample=t}}),t.WaveShaper.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null,this},t.WaveShaper}(Tone_core_Tone);var Tone_core_Type;Tone_core_Type=function(Tone){"use strict";function getTransportBpm(){return Tone.Transport&&Tone.Transport.bpm?Tone.Transport.bpm.value:120}function getTransportTimeSignature(){return Tone.Transport&&Tone.Transport.timeSignature?Tone.Transport.timeSignature:4}function toNotationHelper(t,e,i,o){for(var n=this.toSeconds(t),r=this.notationToSeconds(o[o.length-1],e,i),s="",a=0;a1-c%1&&(c+=p),c=Math.floor(c),c>0){if(s+=1===c?o[a]:c.toString()+"*"+o[a],n-=c*u,r>n)break;s+=" + "}}return""===s&&(s="0"),s}Tone.Type={Default:"number",Time:"time",Frequency:"frequency",NormalRange:"normalRange",AudioRange:"audioRange",Decibels:"db",Interval:"interval",BPM:"bpm",Positive:"positive",Cents:"cents",Degrees:"degrees",MIDI:"midi",TransportTime:"transportTime",Ticks:"tick",Note:"note",Milliseconds:"milliseconds",Notation:"notation"},Tone.prototype.isNowRelative=function(){var t=new RegExp(/^\s*\+(.)+/i);return function(e){return t.test(e)}}(),Tone.prototype.isTicks=function(){var t=new RegExp(/^\d+i$/i);return function(e){return t.test(e)}}(),Tone.prototype.isNotation=function(){var t=new RegExp(/^[0-9]+[mnt]$/i);return function(e){return t.test(e)}}(),Tone.prototype.isTransportTime=function(){var t=new RegExp(/^(\d+(\.\d+)?\:){1,2}(\d+(\.\d+)?)?$/i);return function(e){return t.test(e)}}(),Tone.prototype.isNote=function(){var t=new RegExp(/^[a-g]{1}(b|#|x|bb)?-?[0-9]+$/i);return function(e){return t.test(e)}}(),Tone.prototype.isFrequency=function(){var t=new RegExp(/^\d*\.?\d+hz$/i);return function(e){return t.test(e)}}(),Tone.prototype.notationToSeconds=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=60/e;"1n"===t&&(t="1m");var n=parseInt(t,10),r=0;0===n&&(r=0);var s=t.slice(-1);return r="t"===s?4/n*2/3:"n"===s?4/n:"m"===s?n*i:0,o*r},Tone.prototype.transportTimeToSeconds=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=0,n=0,r=0,s=t.split(":");2===s.length?(o=parseFloat(s[0]),n=parseFloat(s[1])):1===s.length?n=parseFloat(s[0]):3===s.length&&(o=parseFloat(s[0]),n=parseFloat(s[1]),r=parseFloat(s[2]));var a=o*i+n+r/4;return a*(60/e)},Tone.prototype.ticksToSeconds=function(t,e){if(this.isUndef(Tone.Transport))return 0;t=parseFloat(t),e=this.defaultArg(e,getTransportBpm());var i=60/e/Tone.Transport.PPQ;return i*t},Tone.prototype.frequencyToSeconds=function(t){return 1/parseFloat(t)},Tone.prototype.samplesToSeconds=function(t){return t/this.context.sampleRate},Tone.prototype.secondsToSamples=function(t){return t*this.context.sampleRate},Tone.prototype.secondsToTransportTime=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=60/e,n=t/o,r=Math.floor(n/i),s=n%1*4;n=Math.floor(n)%i;var a=[r,n,s];return a.join(":")},Tone.prototype.secondsToFrequency=function(t){return 1/t},Tone.prototype.toTransportTime=function(t,e,i){var o=this.toSeconds(t);return this.secondsToTransportTime(o,e,i)},Tone.prototype.toFrequency=function(t,e){return this.isFrequency(t)?parseFloat(t):this.isNotation(t)||this.isTransportTime(t)?this.secondsToFrequency(this.toSeconds(t,e)):this.isNote(t)?this.noteToFrequency(t):t},Tone.prototype.toTicks=function(t){if(this.isUndef(Tone.Transport))return 0;var e=Tone.Transport.bpm.value,i=0;if(this.isNowRelative(t))t=t.replace("+",""),i=Tone.Transport.ticks;else if(this.isUndef(t))return Tone.Transport.ticks;var o=this.toSeconds(t),n=60/e,r=o/n,s=r*Tone.Transport.PPQ;return Math.round(s+i)},Tone.prototype.toSamples=function(t){var e=this.toSeconds(t);return Math.round(e*this.context.sampleRate)},Tone.prototype.toSeconds=function(time,now){if(now=this.defaultArg(now,this.now()),this.isNumber(time))return time;if(this.isString(time)){var plusTime=0;this.isNowRelative(time)&&(time=time.replace("+",""),plusTime=now);var betweenParens=time.match(/\(([^)(]+)\)/g);if(betweenParens)for(var j=0;j0&&(toQuantize="+"+toQuantize,plusTime=0);var subdivision=quantizationSplit[1].trim();time=Tone.Transport.quantize(toQuantize,subdivision)}else{var components=time.split(/[\(\)\-\+\/\*]/);if(components.length>1){for(var originalTime=time,i=0;io&&(i+=-12*o);var n=scaleIndexToNote[i%12];return n+o.toString()},Tone.prototype.intervalToFrequencyRatio=function(t){return Math.pow(2,t/12)},Tone.prototype.midiToNote=function(t){var e=Math.floor(t/12)-1,i=t%12;return scaleIndexToNote[i]+e},Tone.prototype.noteToMidi=function(t){var e=t.split(/(\d+)/);if(3===e.length){var i=noteToScaleIndex[e[0].toLowerCase()],o=e[1];return i+12*(parseInt(o,10)+1)}return 0},Tone.prototype.midiToFrequency=function(t){return Tone.A4*Math.pow(2,(t-69)/12)},Tone}(Tone_core_Tone);var Tone_core_Param;Tone_core_Param=function(t){"use strict";return t.Param=function(){var e=this.optionsObject(arguments,["param","units","convert"],t.Param.defaults);this._param=this.input=e.param,this.units=e.units,this.convert=e.convert,this.overridden=!1,this.isUndef(e.value)||(this.value=e.value)},t.extend(t.Param),t.Param.defaults={units:t.Type.Default,convert:!0,param:void 0},Object.defineProperty(t.Param.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(t){var e=this._fromUnits(t);this._param.value=e}}),t.Param.prototype._fromUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Time:return this.toSeconds(e);case t.Type.Frequency:return this.toFrequency(e);case t.Type.Decibels:return this.dbToGain(e);case t.Type.NormalRange:return Math.min(Math.max(e,0),1);case t.Type.AudioRange:return Math.min(Math.max(e,-1),1);case t.Type.Positive:return Math.max(e,0);default:return e}},t.Param.prototype._toUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Decibels:return this.gainToDb(e);default:return e}},t.Param.prototype._minOutput=1e-5,t.Param.prototype.setValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.setValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.setRampPoint=function(t){t=this.defaultArg(t,this.now());var e=this._param.value;return this._param.setValueAtTime(e,t),this},t.Param.prototype.linearRampToValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.linearRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValueAtTime=function(t,e){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),this._param.exponentialRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValue=function(t,e){var i=this.now(),o=this.value;return this.setValueAtTime(Math.max(o,this._minOutput),i),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.linearRampToValue=function(t,e){var i=this.now();return this.setRampPoint(i),this.linearRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.setTargetAtTime=function(t,e,i){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),i=Math.max(this._minOutput,i),this._param.setTargetAtTime(t,this.toSeconds(e),i),this},t.Param.prototype.setValueCurveAtTime=function(t,e,i){for(var o=0;o0?this.oscillator.frequency.exponentialRampToValueAtTime(e,o+i+n):this.oscillator.frequency.linearRampToValueAtTime(e,o+i+n),this.phaseAmount&&this.phase(this.phaseAmount)}},p5.Oscillator.prototype.getFreq=function(){return this.oscillator.frequency.value},p5.Oscillator.prototype.setType=function(t){this.oscillator.type=t},p5.Oscillator.prototype.getType=function(){return this.oscillator.type},p5.Oscillator.prototype.connect=function(e){e?e.hasOwnProperty("input")?(this.panner.connect(e.input),this.connection=e.input):(this.panner.connect(e),this.connection=e):this.panner.connect(t.input)},p5.Oscillator.prototype.disconnect=function(){this.output.disconnect(),this.panner.disconnect(),this.output.connect(this.panner),this.oscMods=[]},p5.Oscillator.prototype.pan=function(t,e){this.panPosition=t,this.panner.pan(t,e)},p5.Oscillator.prototype.getPan=function(){return this.panPosition},p5.Oscillator.prototype.dispose=function(){var e=t.soundArray.indexOf(this);if(t.soundArray.splice(e,1),this.oscillator){var i=t.audiocontext.currentTime;this.stop(i),this.disconnect(),this.oscillator.disconnect(),this.panner=null,this.oscillator=null}this.osc2&&this.osc2.dispose()},p5.Oscillator.prototype.phase=function(e){var i=p5.prototype.map(e,0,1,0,1/this.f),o=t.audiocontext.currentTime;this.phaseAmount=e,this.dNode||(this.dNode=t.audiocontext.createDelay(),this.oscillator.disconnect(),this.oscillator.connect(this.dNode),this.dNode.connect(this.output)),this.dNode.delayTime.setValueAtTime(i,o)};var n=function(t,e,i,o,n){var r=t.oscillator;for(var s in t.mathOps)t.mathOps[s]instanceof n&&(r.disconnect(),t.mathOps[s].dispose(),i=s,i0&&(r=t.mathOps[s-1]),r.disconnect(),r.connect(e),e.connect(o),t.mathOps[i]=e,t};p5.Oscillator.prototype.add=function(t){var i=new e(t),o=this.mathOps.length-1,r=this.output;return n(this,i,o,r,e)},p5.Oscillator.prototype.mult=function(t){var e=new i(t),o=this.mathOps.length-1,r=this.output;return n(this,e,o,r,i)},p5.Oscillator.prototype.scale=function(t,e,i,r){var s,a;4===arguments.length?(s=p5.prototype.map(i,t,e,0,1)-.5,a=p5.prototype.map(r,t,e,0,1)-.5):(s=arguments[0],a=arguments[1]);var u=new o(s,a),c=this.mathOps.length-1,p=this.output;return n(this,u,c,p,o)},p5.SinOsc=function(t){p5.Oscillator.call(this,t,"sine")},p5.SinOsc.prototype=Object.create(p5.Oscillator.prototype),p5.TriOsc=function(t){p5.Oscillator.call(this,t,"triangle")},p5.TriOsc.prototype=Object.create(p5.Oscillator.prototype),p5.SawOsc=function(t){p5.Oscillator.call(this,t,"sawtooth")},p5.SawOsc.prototype=Object.create(p5.Oscillator.prototype),p5.SqrOsc=function(t){p5.Oscillator.call(this,t,"square")},p5.SqrOsc.prototype=Object.create(p5.Oscillator.prototype)}(master,Tone_signal_Signal,Tone_signal_Add,Tone_signal_Multiply,Tone_signal_Scale);var env;env=function(){"use strict";var t=master,e=Tone_signal_Add,i=Tone_signal_Multiply,o=Tone_signal_Scale,n=Tone_core_Tone;n.setContext(t.audiocontext),p5.Env=function(e,i,o,n,r,s,a,u){this.aTime=e,this.aLevel=i,this.dTime=o||0,this.dLevel=n||0,this.sTime=r||0,this.sLevel=s||0,this.rTime=a||0,this.rLevel=u||0,this.output=t.audiocontext.createGain(),this.control=new p5.Signal,this.control.connect(this.output),this.connection=null,this.mathOps=[this.control],this.sourceToClear=null,this.wasTriggered=!1,t.soundArray.push(this)},p5.Env.prototype.set=function(t,e,i,o,n,r,s,a){this.aTime=t,this.aLevel=e,this.dTime=i||0,this.dLevel=o||0,this.sTime=n||0,this.sLevel=r||0,this.rTime=s||0,this.rLevel=a||0},p5.Env.prototype.setInput=function(){for(var t=0;tn;n++)o[n]=1;var r=t.createBufferSource();return r.buffer=i,r.loop=!0,r}var e=master;p5.Pulse=function(i,o){p5.Oscillator.call(this,i,"sawtooth"),this.w=o||0,this.osc2=new p5.SawOsc(i),this.dNode=e.audiocontext.createDelay(),this.dcOffset=t(),this.dcGain=e.audiocontext.createGain(),this.dcOffset.connect(this.dcGain),this.dcGain.connect(this.output),this.f=i||440;var n=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=n,this.dcGain.gain.value=1.7*(.5-this.w),this.osc2.disconnect(),this.osc2.panner.disconnect(),this.osc2.amp(-1),this.osc2.output.connect(this.dNode),this.dNode.connect(this.output),this.output.gain.value=1,this.output.connect(this.panner) +},p5.Pulse.prototype=Object.create(p5.Oscillator.prototype),p5.Pulse.prototype.width=function(t){if("number"==typeof t){if(1>=t&&t>=0){this.w=t;var e=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=e}this.dcGain.gain.value=1.7*(.5-this.w)}else{t.connect(this.dNode.delayTime);var i=new p5.SignalAdd(-.5);i.setInput(t),i=i.mult(-1),i=i.mult(1.7),i.connect(this.dcGain.gain)}},p5.Pulse.prototype.start=function(i,o){var n=e.audiocontext.currentTime,r=o||0;if(!this.started){var s=i||this.f,a=this.oscillator.type;this.oscillator=e.audiocontext.createOscillator(),this.oscillator.frequency.setValueAtTime(s,n),this.oscillator.type=a,this.oscillator.connect(this.output),this.oscillator.start(r+n),this.osc2.oscillator=e.audiocontext.createOscillator(),this.osc2.oscillator.frequency.setValueAtTime(s,r+n),this.osc2.oscillator.type=a,this.osc2.oscillator.connect(this.osc2.output),this.osc2.start(r+n),this.freqNode=[this.oscillator.frequency,this.osc2.oscillator.frequency],this.dcOffset=t(),this.dcOffset.connect(this.dcGain),this.dcOffset.start(r+n),void 0!==this.mods&&void 0!==this.mods.frequency&&(this.mods.frequency.connect(this.freqNode[0]),this.mods.frequency.connect(this.freqNode[1])),this.started=!0,this.osc2.started=!0}},p5.Pulse.prototype.stop=function(t){if(this.started){var i=t||0,o=e.audiocontext.currentTime;this.oscillator.stop(i+o),this.osc2.oscillator.stop(i+o),this.dcOffset.stop(i+o),this.started=!1,this.osc2.started=!1}},p5.Pulse.prototype.freq=function(t,i,o){if("number"==typeof t){this.f=t;var n=e.audiocontext.currentTime,i=i||0,o=o||0,r=this.oscillator.frequency.value;this.oscillator.frequency.cancelScheduledValues(n),this.oscillator.frequency.setValueAtTime(r,n+o),this.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n),this.osc2.oscillator.frequency.cancelScheduledValues(n),this.osc2.oscillator.frequency.setValueAtTime(r,n+o),this.osc2.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n),this.freqMod&&(this.freqMod.output.disconnect(),this.freqMod=null)}else t.output&&(t.output.disconnect(),t.output.connect(this.oscillator.frequency),t.output.connect(this.osc2.oscillator.frequency),this.freqMod=t)}}(master,oscillator);var noise;noise=function(){"use strict";var t=master;p5.Noise=function(){p5.Oscillator.call(this),delete this.f,delete this.freq,delete this.oscillator,this.buffer=e},p5.Noise.prototype=Object.create(p5.Oscillator.prototype);var e=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),o=i.getChannelData(0),n=0;e>n;n++)o[n]=2*Math.random()-1;return i.type="white",i}(),i=function(){var e,i,o,n,r,s,a,u=2*t.audiocontext.sampleRate,c=t.audiocontext.createBuffer(1,u,t.audiocontext.sampleRate),p=c.getChannelData(0);e=i=o=n=r=s=a=0;for(var h=0;u>h;h++){var l=2*Math.random()-1;e=.99886*e+.0555179*l,i=.99332*i+.0750759*l,o=.969*o+.153852*l,n=.8665*n+.3104856*l,r=.55*r+.5329522*l,s=-.7616*s-.016898*l,p[h]=e+i+o+n+r+s+a+.5362*l,p[h]*=.11,a=.115926*l}return c.type="pink",c}(),o=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),o=i.getChannelData(0),n=0,r=0;e>r;r++){var s=2*Math.random()-1;o[r]=(n+.02*s)/1.02,n=o[r],o[r]*=3.5}return i.type="brown",i}();p5.Noise.prototype.setType=function(n){switch(n){case"white":this.buffer=e;break;case"pink":this.buffer=i;break;case"brown":this.buffer=o;break;default:this.buffer=e}if(this.started){var r=t.audiocontext.currentTime;this.stop(r),this.start(r+.01)}},p5.Noise.prototype.getType=function(){return this.buffer.type},p5.Noise.prototype.start=function(){this.started&&this.stop(),this.noise=t.audiocontext.createBufferSource(),this.noise.buffer=this.buffer,this.noise.loop=!0,this.noise.connect(this.output);var e=t.audiocontext.currentTime;this.noise.start(e),this.started=!0},p5.Noise.prototype.stop=function(){var e=t.audiocontext.currentTime;this.noise&&(this.noise.stop(e),this.started=!1)},p5.Noise.prototype.dispose=function(){var e=t.audiocontext.currentTime,i=t.soundArray.indexOf(this);t.soundArray.splice(i,1),this.noise&&(this.noise.disconnect(),this.stop(e)),this.output&&this.output.disconnect(),this.panner&&this.panner.disconnect(),this.output=null,this.panner=null,this.buffer=null,this.noise=null}}(master);var audioin;audioin=function(){"use strict";var t=master;p5.AudioIn=function(){this.input=t.audiocontext.createGain(),this.output=t.audiocontext.createGain(),this.stream=null,this.mediaStream=null,this.currentSource=0,this.enabled=!1,this.amplitude=new p5.Amplitude,this.output.connect(this.amplitude.input),"undefined"==typeof window.MediaStreamTrack?window.alert("This browser does not support MediaStreamTrack"):"function"==typeof window.MediaStreamTrack.getSources&&window.MediaStreamTrack.getSources(this._gotSources),t.soundArray.push(this)},p5.AudioIn.prototype.start=function(e,i){var o=this;if(t.inputSources[o.currentSource]){var n=t.inputSources[o.currentSource].id,r={audio:{optional:[{sourceId:n}]}};window.navigator.getUserMedia(r,this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=t.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),e&&e(),o.amplitude.setInput(o.output)},this._onStreamError=function(t){i?i(t):console.error(t)})}else window.navigator.getUserMedia({audio:!0},this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=t.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),o.amplitude.setInput(o.output),e&&e()},this._onStreamError=function(t){i?i(t):console.error(t)})},p5.AudioIn.prototype.stop=function(){this.stream&&this.stream.stop()},p5.AudioIn.prototype.connect=function(e){this.output.connect(e?e.hasOwnProperty("input")?e.input:e.hasOwnProperty("analyser")?e.analyser:e:t.input)},p5.AudioIn.prototype.disconnect=function(t){this.output.disconnect(t),this.output.connect(this.amplitude.input)},p5.AudioIn.prototype.getLevel=function(t){return t&&(this.amplitude.smoothing=t),this.amplitude.getLevel()},p5.AudioIn.prototype._gotSources=function(t){for(var e=0;e0?t.inputSources:"This browser does not support MediaStreamTrack.getSources()"},p5.AudioIn.prototype.getSources=function(e){"function"==typeof window.MediaStreamTrack.getSources?window.MediaStreamTrack.getSources(function(i){for(var o=0,n=i.length;n>o;o++){var r=i[o];"audio"===r.kind&&t.inputSources.push(r)}e(t.inputSources)}):console.log("This browser does not support MediaStreamTrack.getSources()")},p5.AudioIn.prototype.setSource=function(e){var i=this;t.inputSources.length>0&&e=t&&(t=1),"number"==typeof t?(i.biquad.frequency.value=t,i.biquad.frequency.cancelScheduledValues(this.ac.currentTime+.01+o),i.biquad.frequency.exponentialRampToValueAtTime(t,this.ac.currentTime+.02+o)):t&&t.connect(this.biquad.frequency),i.biquad.frequency.value},p5.Filter.prototype.res=function(t,e){var i=this,o=e||0;return"number"==typeof t?(i.biquad.Q.value=t,i.biquad.Q.cancelScheduledValues(i.ac.currentTime+.01+o),i.biquad.Q.linearRampToValueAtTime(t,i.ac.currentTime+.02+o)):t&&freq.connect(this.biquad.Q),i.biquad.Q.value},p5.Filter.prototype.setType=function(t){this.biquad.type=t},p5.Filter.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Filter.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Filter.prototype.disconnect=function(){this.output.disconnect()},p5.Filter.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.input=void 0,this.output.disconnect(),this.output=void 0,this.biquad.disconnect(),this.biquad=void 0},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)}(master);var delay;delay=function(){"use strict";var t=master;p5.Delay=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this._split=this.ac.createChannelSplitter(2),this._merge=this.ac.createChannelMerger(2),this._leftGain=this.ac.createGain(),this._rightGain=this.ac.createGain(),this.leftDelay=this.ac.createDelay(),this.rightDelay=this.ac.createDelay(),this._leftFilter=new p5.Filter,this._rightFilter=new p5.Filter,this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._leftFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._rightFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._leftFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this._rightFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this.input.connect(this._split),this.leftDelay.connect(this._leftGain),this.rightDelay.connect(this._rightGain),this._leftGain.connect(this._leftFilter.input),this._rightGain.connect(this._rightFilter.input),this._merge.connect(this.output),this.output.connect(p5.soundOut.input),this._leftFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this._rightFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this.setType(0),this._maxDelay=this.leftDelay.delayTime.maxValue,t.soundArray.push(this)},p5.Delay.prototype.process=function(t,e,i,o){var n=i||0,r=e||0;if(n>=1)throw new Error("Feedback value will force a positive feedback loop.");if(r>=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.setValueAtTime(n,this.ac.currentTime),this._rightGain.gain.setValueAtTime(n,this.ac.currentTime),o&&(this._leftFilter.freq(o),this._rightFilter.freq(o))},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("number"!=typeof t)t.connect(this._leftGain.gain),t.connect(this._rightGain.gain);else{if(t>=1)throw new Error("Feedback value will force a positive feedback loop.");this._leftGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime),this._rightGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime)}},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._leftFilter.output.connect(this._merge,0,1),this._leftFilter.output.connect(this.leftDelay),this._leftFilter.output.connect(this.rightDelay)}},p5.Delay.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Delay.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Delay.prototype.disconnect=function(){this.output.disconnect()},p5.Delay.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.output.disconnect(),this._split.disconnect(),this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._merge.disconnect(),this._leftGain.disconnect(),this._rightGain.disconnect(),this.leftDelay.disconnect(),this.rightDelay.disconnect(),this.input=void 0,this.output=void 0,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}}(master,filter);var reverb;reverb=function(){"use strict";var t=master,e=errorHandler;p5.Reverb=function(){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse(),this.connect(),t.soundArray.push(this)},p5.Reverb.prototype.process=function(t,e,i,o){t.connect(this.input);var n=!1;e&&(this._seconds=e,n=!0),i&&(this._decay=i),o&&(this._reverse=o),n&&this._buildImpulse()},p5.Reverb.prototype.set=function(t,e,i){var o=!1;t&&(this._seconds=t,o=!0),e&&(this._decay=e),i&&(this._reverse=i),o&&this._buildImpulse()},p5.Reverb.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Reverb.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Reverb.prototype.disconnect=function(){this.output.disconnect()},p5.Reverb.prototype._buildImpulse=function(){var t,e,i=this.ac.sampleRate,o=i*this._seconds,n=this._decay,r=this.ac.createBuffer(2,o,i),s=r.getChannelData(0),a=r.getChannelData(1);for(e=0;o>e;e++)t=this.reverse?o-e:e,s[e]=(2*Math.random()-1)*Math.pow(1-t/o,n),a[e]=(2*Math.random()-1)*Math.pow(1-t/o,n);this.convolverNode.buffer=r},p5.Reverb.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.convolverNode&&(this.convolverNode.buffer=null,this.convolverNode=null),"undefined"!=typeof this.output&&(this.output.disconnect(),this.output=null),"undefined"!=typeof this.panner&&(this.panner.disconnect(),this.panner=null)},p5.Convolver=function(e,i,o){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),e?(this.impulses=[],this._loadBuffer(e,i,o)):(this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse()),this.connect(),t.soundArray.push(this)},p5.Convolver.prototype=Object.create(p5.Reverb.prototype),p5.prototype.registerPreloadMethod("createConvolver",p5.prototype),p5.prototype.createConvolver=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var o=new p5.Convolver(t,e,i);return o.impulses=[],o},p5.Convolver.prototype._loadBuffer=function(t,i,o){var t=p5.prototype._checkFileFormats(t),n=this,r=(new Error).stack,s=p5.prototype.getAudioContext(),a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer",a.onload=function(){if(200==a.status)s.decodeAudioData(a.response,function(e){var o={},r=t.split("/");o.name=r[r.length-1],o.audioBuffer=e,n.impulses.push(o),n.convolverNode.buffer=o.audioBuffer,i&&i(o)},function(){var t=new e("decodeAudioData",r,n.url),i="AudioContext error at decodeAudioData for "+n.url;o?(t.msg=i,o(t)):console.error(i+"\n The error stack trace includes: \n"+t.stack)});else{var u=new e("loadConvolver",r,n.url),c="Unable to load "+n.url+". The request status was: "+a.status+" ("+a.statusText+")";o?(u.message=c,o(u)):console.error(c+"\n The error stack trace includes: \n"+u.stack)}},a.onerror=function(){var t=new e("loadConvolver",r,n.url),i="There was no response from the server at "+n.url+". Check the url and internet connectivity.";o?(t.message=i,o(t)):console.error(i+"\n The error stack trace includes: \n"+t.stack)},a.send()},p5.Convolver.prototype.set=null,p5.Convolver.prototype.process=function(t){t.connect(this.input)},p5.Convolver.prototype.impulses=[],p5.Convolver.prototype.addImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this._loadBuffer(t,e,i)},p5.Convolver.prototype.resetImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this.impulses=[],this._loadBuffer(t,e,i)},p5.Convolver.prototype.toggleImpulse=function(t){if("number"==typeof t&&tthis.memory){var i=this.length-this.memory;this._timeline.splice(0,i)}return this},t.Timeline.prototype.removeEvent=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.getEvent=function(t){t=this.toSeconds(t);var e=this._search(t);return-1!==e?this._timeline[e]:null},t.Timeline.prototype.getEventAfter=function(t){t=this.toSeconds(t);var e=this._search(t);return e+1=0?this._timeline[e-1]:null},t.Timeline.prototype.cancel=function(t){if(this._timeline.length>1){t=this.toSeconds(t);var e=this._search(t);this._timeline=e>=0?this._timeline.slice(0,e):[]}else 1===this._timeline.length&&this._timeline[0].time>=t&&(this._timeline=[]);return this},t.Timeline.prototype.cancelBefore=function(t){if(this._timeline.length){t=this.toSeconds(t);var e=this._search(t);e>=0&&(this._timeline=this._timeline.slice(e+1))}return this},t.Timeline.prototype._search=function(t){for(var e=0,i=this._timeline.length,o=i;o>=e&&i>e;){var n=Math.floor(e+(o-e)/2),r=this._timeline[n];if(r.time===t){for(var s=n;st?o=n-1:r.time=o;o++)t(this._timeline[o]);if(this._iterating=!1,this._toRemove.length>0){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){t=this.toSeconds(t);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}(Tone_core_Tone);var Tone_signal_TimelineSignal;Tone_signal_TimelineSignal=function(t){"use strict";return t.TimelineSignal=function(){var e=this.optionsObject(arguments,["value","units"],t.Signal.defaults);t.Signal.apply(this,e),e.param=this._param,t.Param.call(this,e),this._events=new t.Timeline(10),this._initial=this._fromUnits(this._param.value)},t.extend(t.TimelineSignal,t.Param),t.TimelineSignal.Type={Linear:"linear",Exponential:"exponential",Target:"target",Set:"set"},Object.defineProperty(t.TimelineSignal.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(t){var e=this._fromUnits(t);this._initial=e,this._param.value=e}}),t.TimelineSignal.prototype.setValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.addEvent({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.addEvent({type:t.TimelineSignal.Type.Linear,value:e,time:i}),this._param.linearRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.exponentialRampToValueAtTime=function(e,i){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),i=this.toSeconds(i),this._events.addEvent({type:t.TimelineSignal.Type.Exponential,value:e,time:i}),this._param.exponentialRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.setTargetAtTime=function(e,i,o){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),o=Math.max(this._minOutput,o),i=this.toSeconds(i),this._events.addEvent({type:t.TimelineSignal.Type.Target,value:e,time:i,constant:o}),this._param.setTargetAtTime(e,i,o),this},t.TimelineSignal.prototype.cancelScheduledValues=function(t){return this._events.cancel(t),this._param.cancelScheduledValues(this.toSeconds(t)),this},t.TimelineSignal.prototype.setRampPoint=function(e){e=this.toSeconds(e);var i=this.getValueAtTime(e),o=this._searchAfter(e);return o&&(this.cancelScheduledValues(e),o.type===t.TimelineSignal.Type.Linear?this.linearRampToValueAtTime(i,e):o.type===t.TimelineSignal.Type.Exponential&&this.exponentialRampToValueAtTime(i,e)),this.setValueAtTime(i,e),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.getEvent(t)},t.TimelineSignal.prototype._searchAfter=function(t){return this._events.getEventAfter(t)},t.TimelineSignal.prototype.getValueAtTime=function(e){var i=this._searchAfter(e),o=this._searchBefore(e),n=this._initial;if(null===o)n=this._initial;else if(o.type===t.TimelineSignal.Type.Target){var r,s=this._events.getEventBefore(o.time);r=null===s?this._initial:s.value,n=this._exponentialApproach(o.time,r,o.value,o.constant,e)}else n=null===i?o.value:i.type===t.TimelineSignal.Type.Linear?this._linearInterpolate(o.time,o.value,i.time,i.value,e):i.type===t.TimelineSignal.Type.Exponential?this._exponentialInterpolate(o.time,o.value,i.time,i.value,e):o.value;return n},t.TimelineSignal.prototype.connect=t.SignalBase.prototype.connect,t.TimelineSignal.prototype._exponentialApproach=function(t,e,i,o,n){return i+(e-i)*Math.exp(-(n-t)/o)},t.TimelineSignal.prototype._linearInterpolate=function(t,e,i,o,n){return e+(o-e)*((n-t)/(i-t))},t.TimelineSignal.prototype._exponentialInterpolate=function(t,e,i,o,n){return e=Math.max(this._minOutput,e),e*Math.pow(o/e,(n-t)/(i-t))},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}(Tone_core_Tone,Tone_signal_Signal);var Tone_core_TimelineState;Tone_core_TimelineState=function(t){"use strict";return t.TimelineState=function(e){t.Timeline.call(this),this._initial=e},t.extend(t.TimelineState,t.Timeline),t.TimelineState.prototype.getStateAtTime=function(t){var e=this.getEvent(t);return null!==e?e.state:this._initial},t.TimelineState.prototype.setStateAtTime=function(t,e){this.addEvent({state:t,time:this.toSeconds(e)})},t.TimelineState}(Tone_core_Tone,Tone_core_Timeline);var Tone_core_Clock;Tone_core_Clock=function(t){"use strict";return t.Clock=function(){var e=this.optionsObject(arguments,["callback","frequency"],t.Clock.defaults);this.callback=e.callback,this._lookAhead="auto",this._computedLookAhead=1/60,this._threshold=.5,this._nextTick=-1,this._lastUpdate=0,this._loopID=-1,this.frequency=new t.TimelineSignal(e.frequency,t.Type.Frequency),this.ticks=0,this._state=new t.TimelineState(t.State.Stopped),this._boundLoop=this._loop.bind(this),this._readOnly("frequency"),this._loop()},t.extend(t.Clock),t.Clock.defaults={callback:t.noOp,frequency:1,lookAhead:"auto"},Object.defineProperty(t.Clock.prototype,"state",{get:function(){return this._state.getStateAtTime(this.now())}}),Object.defineProperty(t.Clock.prototype,"lookAhead",{get:function(){return this._lookAhead},set:function(t){this._lookAhead="auto"===t?"auto":this.toSeconds(t)}}),t.Clock.prototype.start=function(e,i){return e=this.toSeconds(e),this._state.getStateAtTime(e)!==t.State.Started&&this._state.addEvent({state:t.State.Started,time:e,offset:i}),this},t.Clock.prototype.stop=function(e){return e=this.toSeconds(e),this._state.getStateAtTime(e)!==t.State.Stopped&&this._state.setStateAtTime(t.State.Stopped,e),this},t.Clock.prototype.pause=function(e){return e=this.toSeconds(e),this._state.getStateAtTime(e)===t.State.Started&&this._state.setStateAtTime(t.State.Paused,e),this},t.Clock.prototype._loop=function(e){if(this._loopID=requestAnimationFrame(this._boundLoop),"auto"===this._lookAhead){if(!this.isUndef(e)){var i=(e-this._lastUpdate)/1e3;this._lastUpdate=e,ithis._nextTick;){o>this._nextTick+this._threshold&&(this._nextTick=o);var a=this._nextTick;this._nextTick+=1/this.frequency.getValueAtTime(this._nextTick),this.callback(a),this.ticks++}else s===t.State.Stopped&&(this._nextTick=-1,this.ticks=0)},t.Clock.prototype.getStateAtTime=function(t){return this._state.getStateAtTime(t)},t.Clock.prototype.dispose=function(){cancelAnimationFrame(this._loopID),t.TimelineState.prototype.dispose.call(this),this._writable("frequency"),this.frequency.dispose(),this.frequency=null,this._boundLoop=t.noOp,this._nextTick=1/0,this.callback=null,this._state.dispose(),this._state=null},t.Clock}(Tone_core_Tone,Tone_signal_TimelineSignal);var metro;metro=function(){"use strict";{var t=master,e=Tone_core_Clock;t.audiocontext}p5.Metro=function(){this.clock=new e({callback:this.ontick.bind(this)}),this.syncedParts=[],this.bpm=120,this._init(),this.tickCallback=function(){}};var i=0,o=0;p5.Metro.prototype.ontick=function(e){var n=e-i,r=e-t.audiocontext.currentTime;if(!(-.02>=n-o)){i=e;for(var s in this.syncedParts){var a=this.syncedParts[s];a.incrementStep(r);for(var u in a.phrases){var c=a.phrases[u],p=c.sequence,h=this.metroTicks%p.length;0!==p[h]&&(this.metroTicks=t.parts.length?(t.scoreStep=0,t.onended()):(t.scoreStep=0,t.parts[t.currentPart-1].stop(),t.parts[t.currentPart].start())}var e=master,i=120;p5.prototype.setBPM=function(t,o){i=t;for(var n in e.parts)e.parts[n].setBPM(i,o)},p5.Phrase=function(t,e,i){this.phraseStep=0,this.name=t,this.callback=e,this.sequence=i},p5.Part=function(t,o){this.length=t||0,this.partStep=0,this.phrases=[],this.looping=!1,this.isPlaying=!1,this.onended=function(){this.stop()},this.tatums=o||.0625,this.metro=new p5.Metro,this.metro._init(),this.metro.beatLength(this.tatums),this.metro.setBPM(i),e.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,i){var o;if(3===arguments.length)o=new p5.Phrase(t,e,i);else{if(!(arguments[0]instanceof p5.Phrase))throw"invalid input. addPhrase accepts name, callback, array or a p5.Phrase";o=arguments[0]}this.phrases.push(o),o.sequence.length>this.length&&(this.length=o.sequence.length)},p5.Part.prototype.removePhrase=function(t){for(var e in this.phrases)this.phrases[e].name===t&&this.phrases.split(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 i in this.phrases)this.phrases[i].name===t&&(this.phrases[i].sequence=e)},p5.Part.prototype.incrementStep=function(t){this.partStepr;)o[r++]=t[n],o[r++]=e[n],n++;return o}function e(t,e,i){for(var o=i.length,n=0;o>n;n++)t.setUint8(e+n,i.charCodeAt(n))}var i=master,o=i.audiocontext;p5.SoundRecorder=function(){this.input=o.createGain(),this.output=o.createGain(),this.recording=!1,this.bufferSize=1024,this._channels=2,this._clear(),this._jsNode=o.createScriptProcessor(this.bufferSize,this._channels,2),this._jsNode.onaudioprocess=this._audioprocess.bind(this),this._callback=function(){},this._jsNode.connect(p5.soundOut._silentNode),this.setInput(),i.soundArray.push(this)},p5.SoundRecorder.prototype.setInput=function(t){this.input.disconnect(),this.input=null,this.input=o.createGain(),this.input.connect(this._jsNode),this.input.connect(this.output),t?t.connect(this.input):p5.soundOut.output.connect(this.input)},p5.SoundRecorder.prototype.record=function(t,e,i){this.recording=!0,e&&(this.sampleLimit=Math.round(e*o.sampleRate)),t&&i?this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer),i()}:t&&(this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer)})},p5.SoundRecorder.prototype.stop=function(){this.recording=!1,this._callback(),this._clear()},p5.SoundRecorder.prototype._clear=function(){this._leftBuffers=[],this._rightBuffers=[],this.recordedSamples=0,this.sampleLimit=null},p5.SoundRecorder.prototype._audioprocess=function(t){if(this.recording!==!1&&this.recording===!0)if(this.sampleLimit&&this.recordedSamples>=this.sampleLimit)this.stop();else{var e=t.inputBuffer.getChannelData(0),i=t.inputBuffer.getChannelData(1);this._leftBuffers.push(new Float32Array(e)),this._rightBuffers.push(new Float32Array(i)),this.recordedSamples+=this.bufferSize}},p5.SoundRecorder.prototype._getBuffer=function(){var t=[];return t.push(this._mergeBuffers(this._leftBuffers)),t.push(this._mergeBuffers(this._rightBuffers)),t},p5.SoundRecorder.prototype._mergeBuffers=function(t){for(var e=new Float32Array(this.recordedSamples),i=0,o=t.length,n=0;o>n;n++){var r=t[n];e.set(r,i),i+=r.length}return e},p5.SoundRecorder.prototype.dispose=function(){this._clear();var t=i.soundArray.indexOf(this);i.soundArray.splice(t,1),this._callback=function(){},this.input&&this.input.disconnect(),this.input=null,this._jsNode=null},p5.prototype.saveSound=function(i,o){var n=i.buffer.getChannelData(0),r=i.buffer.getChannelData(1),s=t(n,r),a=new ArrayBuffer(44+2*s.length),u=new DataView(a);e(u,0,"RIFF"),u.setUint32(4,44+2*s.length,!0),e(u,8,"WAVE"),e(u,12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,2,!0),u.setUint32(24,44100,!0),u.setUint32(28,176400,!0),u.setUint16(32,4,!0),u.setUint16(34,16,!0),e(u,36,"data"),u.setUint32(40,2*s.length,!0);for(var c=s.length,p=44,h=1,l=0;c>l;l++)u.setInt16(p,32767*s[l]*h,!0),p+=2;p5.prototype.writeFile([u],o,"wav")}}(sndcore,master);var peakdetect;peakdetect=function(){"use strict";p5.PeakDetect=function(t,e,i,o){this.framesPerPeak=o||20,this.framesSinceLastPeak=0,this.decayRate=.95,this.threshold=i||.35,this.cutoff=0,this.cutoffMult=1.5,this.energy=0,this.penergy=0,this.currentValue=0,this.isDetected=!1,this.f1=t||40,this.f2=e||2e4,this._onPeak=function(){}},p5.PeakDetect.prototype.update=function(t){var e=this.energy=t.getEnergy(this.f1,this.f2)/255;e>this.cutoff&&e>this.threshold&&e-this.penergy>0?(this._onPeak(),this.isDetected=!0,this.cutoff=e*this.cutoffMult,this.framesSinceLastPeak=0):(this.isDetected=!1,this.framesSinceLastPeak<=this.framesPerPeak?this.framesSinceLastPeak++:(this.cutoff*=this.decayRate,this.cutoff=Math.max(this.cutoff,this.threshold))),this.currentValue=e,this.penergy=e},p5.PeakDetect.prototype.onPeak=function(t,e){var i=this;i._onPeak=function(){t(i.energy,e)}}}(master);var gain;gain=function(){"use strict";var t=master;p5.Gain=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.output),t.soundArray.push(this)},p5.Gain.prototype.setInput=function(t){t.connect(this.input)},p5.Gain.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Gain.prototype.disconnect=function(){this.output.disconnect()},p5.Gain.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o),this.output.gain.linearRampToValueAtTime(e,n+o+i)},p5.Gain.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.output.disconnect(),this.input.disconnect(),this.output=void 0,this.input=void 0}}(master,sndcore);var src_app;src_app=function(){"use strict";var t=sndcore;return t}(sndcore,master,helpers,errorHandler,panner,soundfile,amplitude,fft,signal,oscillator,env,pulse,noise,audioin,filter,delay,reverb,metro,looper,soundRecorder,peakdetect,gain)}); \ No newline at end of file diff --git a/package.json b/package.json index 8bb6a265..0e105df7 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "grunt-contrib-sass": "~0.7.2" }, "dependencies": { - "tone": "git+https://github.com/therewasaguy/tone.js.git#tonep5mod", + "tone": "therewasaguy/tone.js#p5-dev", "web-audio-automation-timeline": "therewasaguy/web-audio-automation-timeline" } } diff --git a/src/metro.js b/src/metro.js index bd83cd00..f5941562 100644 --- a/src/metro.js +++ b/src/metro.js @@ -11,7 +11,9 @@ define(function (require) { // var upTick = false; p5.Metro = function() { - this.clock = new Clock(ac.sampleRate, this.ontick.bind(this)); + this.clock = new Clock({ + 'callback': this.ontick.bind(this) + }); this.syncedParts = []; this.bpm = 120; // gets overridden by p5.Part this._init(); @@ -50,10 +52,12 @@ define(function (require) { p5.Metro.prototype.setBPM = function(bpm, rampTime) { var beatTime = 60 / (bpm*this.tatums); + var now = p5sound.audiocontext.currentTime; tatumTime = beatTime; - var ramp = rampTime || 0; - this.clock.setRate(beatTime, rampTime + p5sound.audiocontext.currentTime); + var rampTime = rampTime || 0; + this.clock.frequency.setValueAtTime(this.clock.frequency.value, now); + this.clock.frequency.linearRampToValueAtTime(bpm, now + rampTime); this.bpm = bpm; }; @@ -76,16 +80,18 @@ define(function (require) { this.syncedParts.push(part); }; - p5.Metro.prototype.start = function(time) { - var t = time || 0; - this.clock.start(t); + p5.Metro.prototype.start = function(timeFromNow) { + var t = timeFromNow || 0; + var now = p5sound.audiocontext.currentTime; + this.clock.start(now + t); this.setBPM(this.bpm); }; - p5.Metro.prototype.stop = function(time) { - var t = time || 0; + p5.Metro.prototype.stop = function(timeFromNow) { + var t = timeFromNow || 0; + var now = p5sound.audiocontext.currentTime; if (this.clock._oscillator) { - this.clock.stop(t); + this.clock.stop(now + t); } }; diff --git a/src/oscillator.js b/src/oscillator.js index 885810e7..603ae1a0 100644 --- a/src/oscillator.js +++ b/src/oscillator.js @@ -1,3 +1,4 @@ + define(function (require) { 'use strict'; @@ -86,6 +87,7 @@ define(function (require) { this.f = freq || 440.0; // frequency this.oscillator.frequency.setValueAtTime(this.f, p5sound.audiocontext.currentTime); this.oscillator.type = type || 'sine'; + var o = this.oscillator; // connections From 52a0a3ddd13a0b5eb16459ff70a957cd1d9bc4c5 Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Mon, 18 Jan 2016 17:16:22 -0500 Subject: [PATCH 07/25] web audio automation timeline is included in tone --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 0e105df7..9ce2efad 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,6 @@ "grunt-contrib-sass": "~0.7.2" }, "dependencies": { - "tone": "therewasaguy/tone.js#p5-dev", - "web-audio-automation-timeline": "therewasaguy/web-audio-automation-timeline" + "tone": "therewasaguy/tone.js#p5-dev" } } From 9c7dbc550ae4e464958e121370c7b281f19e62b2 Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Mon, 18 Jan 2016 17:26:09 -0500 Subject: [PATCH 08/25] get and set value in env with Tone.TimelineSignal --- lib/p5.sound.js | 828 ++++++++++++++++++++++---------------------- lib/p5.sound.min.js | 6 +- src/env.js | 16 +- 3 files changed, 434 insertions(+), 416 deletions(-) diff --git a/lib/p5.sound.js b/lib/p5.sound.js index 8cf8a6c3..74526a88 100644 --- a/lib/p5.sound.js +++ b/lib/p5.sound.js @@ -4723,6 +4723,353 @@ oscillator = function () { }; p5.SqrOsc.prototype = Object.create(p5.Oscillator.prototype); }(master, Tone_signal_Signal, Tone_signal_Add, Tone_signal_Multiply, Tone_signal_Scale); +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ +var Tone_core_Timeline; +Tone_core_Timeline = function (Tone) { + 'use strict'; + Tone.Timeline = function () { + var options = this.optionsObject(arguments, ['memory'], Tone.Timeline.defaults); + this._timeline = []; + this._toRemove = []; + this._iterating = false; + this.memory = options.memory; + }; + Tone.extend(Tone.Timeline); + Tone.Timeline.defaults = { 'memory': Infinity }; + Object.defineProperty(Tone.Timeline.prototype, 'length', { + get: function () { + return this._timeline.length; + } + }); + Tone.Timeline.prototype.addEvent = function (event) { + if (this.isUndef(event.time)) { + throw new Error('events must have a time attribute'); + } + event.time = this.toSeconds(event.time); + if (this._timeline.length) { + var index = this._search(event.time); + this._timeline.splice(index + 1, 0, event); + } else { + this._timeline.push(event); + } + if (this.length > this.memory) { + var diff = this.length - this.memory; + this._timeline.splice(0, diff); + } + return this; + }; + Tone.Timeline.prototype.removeEvent = function (event) { + if (this._iterating) { + this._toRemove.push(event); + } else { + var index = this._timeline.indexOf(event); + if (index !== -1) { + this._timeline.splice(index, 1); + } + } + return this; + }; + Tone.Timeline.prototype.getEvent = function (time) { + time = this.toSeconds(time); + var index = this._search(time); + if (index !== -1) { + return this._timeline[index]; + } else { + return null; + } + }; + Tone.Timeline.prototype.getEventAfter = function (time) { + time = this.toSeconds(time); + var index = this._search(time); + if (index + 1 < this._timeline.length) { + return this._timeline[index + 1]; + } else { + return null; + } + }; + Tone.Timeline.prototype.getEventBefore = function (time) { + time = this.toSeconds(time); + var index = this._search(time); + if (index - 1 >= 0) { + return this._timeline[index - 1]; + } else { + return null; + } + }; + Tone.Timeline.prototype.cancel = function (after) { + if (this._timeline.length > 1) { + after = this.toSeconds(after); + var index = this._search(after); + if (index >= 0) { + this._timeline = this._timeline.slice(0, index); + } else { + this._timeline = []; + } + } else if (this._timeline.length === 1) { + if (this._timeline[0].time >= after) { + this._timeline = []; + } + } + return this; + }; + Tone.Timeline.prototype.cancelBefore = function (time) { + if (this._timeline.length) { + time = this.toSeconds(time); + var index = this._search(time); + if (index >= 0) { + this._timeline = this._timeline.slice(index + 1); + } + } + return this; + }; + Tone.Timeline.prototype._search = function (time) { + var beginning = 0; + var len = this._timeline.length; + var end = len; + while (beginning <= end && beginning < len) { + var midPoint = Math.floor(beginning + (end - beginning) / 2); + var event = this._timeline[midPoint]; + if (event.time === time) { + for (var i = midPoint; i < this._timeline.length; i++) { + var testEvent = this._timeline[i]; + if (testEvent.time === time) { + midPoint = i; + } + } + return midPoint; + } else if (event.time > time) { + end = midPoint - 1; + } else if (event.time < time) { + beginning = midPoint + 1; + } + } + return beginning - 1; + }; + Tone.Timeline.prototype._iterate = function (callback, lowerBound, upperBound) { + this._iterating = true; + lowerBound = this.defaultArg(lowerBound, 0); + upperBound = this.defaultArg(upperBound, this._timeline.length - 1); + for (var i = lowerBound; i <= upperBound; i++) { + callback(this._timeline[i]); + } + this._iterating = false; + if (this._toRemove.length > 0) { + for (var j = 0; j < this._toRemove.length; j++) { + var index = this._timeline.indexOf(this._toRemove[j]); + if (index !== -1) { + this._timeline.splice(index, 1); + } + } + this._toRemove = []; + } + }; + Tone.Timeline.prototype.forEach = function (callback) { + this._iterate(callback); + return this; + }; + Tone.Timeline.prototype.forEachBefore = function (time, callback) { + time = this.toSeconds(time); + var upperBound = this._search(time); + if (upperBound !== -1) { + this._iterate(callback, 0, upperBound); + } + return this; + }; + Tone.Timeline.prototype.forEachAfter = function (time, callback) { + time = this.toSeconds(time); + var lowerBound = this._search(time); + this._iterate(callback, lowerBound + 1); + return this; + }; + Tone.Timeline.prototype.forEachFrom = function (time, callback) { + time = this.toSeconds(time); + var lowerBound = this._search(time); + while (lowerBound >= 0 && this._timeline[lowerBound].time >= time) { + lowerBound--; + } + this._iterate(callback, lowerBound + 1); + return this; + }; + Tone.Timeline.prototype.forEachAtTime = function (time, callback) { + time = this.toSeconds(time); + var upperBound = this._search(time); + if (upperBound !== -1) { + this._iterate(function (event) { + if (event.time === time) { + callback(event); + } + }, 0, upperBound); + } + return this; + }; + Tone.Timeline.prototype.dispose = function () { + Tone.prototype.dispose.call(this); + this._timeline = null; + this._toRemove = null; + }; + return Tone.Timeline; +}(Tone_core_Tone); +/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ +var Tone_signal_TimelineSignal; +Tone_signal_TimelineSignal = function (Tone) { + 'use strict'; + Tone.TimelineSignal = function () { + var options = this.optionsObject(arguments, [ + 'value', + 'units' + ], Tone.Signal.defaults); + Tone.Signal.apply(this, options); + options.param = this._param; + Tone.Param.call(this, options); + this._events = new Tone.Timeline(10); + this._initial = this._fromUnits(this._param.value); + }; + Tone.extend(Tone.TimelineSignal, Tone.Param); + Tone.TimelineSignal.Type = { + Linear: 'linear', + Exponential: 'exponential', + Target: 'target', + Set: 'set' + }; + Object.defineProperty(Tone.TimelineSignal.prototype, 'value', { + get: function () { + return this._toUnits(this._param.value); + }, + set: function (value) { + var convertedVal = this._fromUnits(value); + this._initial = convertedVal; + this._param.value = convertedVal; + } + }); + Tone.TimelineSignal.prototype.setValueAtTime = function (value, startTime) { + value = this._fromUnits(value); + startTime = this.toSeconds(startTime); + this._events.addEvent({ + 'type': Tone.TimelineSignal.Type.Set, + 'value': value, + 'time': startTime + }); + this._param.setValueAtTime(value, startTime); + return this; + }; + Tone.TimelineSignal.prototype.linearRampToValueAtTime = function (value, endTime) { + value = this._fromUnits(value); + endTime = this.toSeconds(endTime); + this._events.addEvent({ + 'type': Tone.TimelineSignal.Type.Linear, + 'value': value, + 'time': endTime + }); + this._param.linearRampToValueAtTime(value, endTime); + return this; + }; + Tone.TimelineSignal.prototype.exponentialRampToValueAtTime = function (value, endTime) { + value = this._fromUnits(value); + value = Math.max(this._minOutput, value); + endTime = this.toSeconds(endTime); + this._events.addEvent({ + 'type': Tone.TimelineSignal.Type.Exponential, + 'value': value, + 'time': endTime + }); + this._param.exponentialRampToValueAtTime(value, endTime); + return this; + }; + Tone.TimelineSignal.prototype.setTargetAtTime = function (value, startTime, timeConstant) { + value = this._fromUnits(value); + value = Math.max(this._minOutput, value); + timeConstant = Math.max(this._minOutput, timeConstant); + startTime = this.toSeconds(startTime); + this._events.addEvent({ + 'type': Tone.TimelineSignal.Type.Target, + 'value': value, + 'time': startTime, + 'constant': timeConstant + }); + this._param.setTargetAtTime(value, startTime, timeConstant); + return this; + }; + Tone.TimelineSignal.prototype.cancelScheduledValues = function (after) { + this._events.cancel(after); + this._param.cancelScheduledValues(this.toSeconds(after)); + return this; + }; + Tone.TimelineSignal.prototype.setRampPoint = function (time) { + time = this.toSeconds(time); + var val = this.getValueAtTime(time); + var after = this._searchAfter(time); + if (after) { + this.cancelScheduledValues(time); + if (after.type === Tone.TimelineSignal.Type.Linear) { + this.linearRampToValueAtTime(val, time); + } else if (after.type === Tone.TimelineSignal.Type.Exponential) { + this.exponentialRampToValueAtTime(val, time); + } + } + this.setValueAtTime(val, time); + return this; + }; + Tone.TimelineSignal.prototype.linearRampToValueBetween = function (value, start, finish) { + this.setRampPoint(start); + this.linearRampToValueAtTime(value, finish); + return this; + }; + Tone.TimelineSignal.prototype.exponentialRampToValueBetween = function (value, start, finish) { + this.setRampPoint(start); + this.exponentialRampToValueAtTime(value, finish); + return this; + }; + Tone.TimelineSignal.prototype._searchBefore = function (time) { + return this._events.getEvent(time); + }; + Tone.TimelineSignal.prototype._searchAfter = function (time) { + return this._events.getEventAfter(time); + }; + Tone.TimelineSignal.prototype.getValueAtTime = function (time) { + var after = this._searchAfter(time); + var before = this._searchBefore(time); + var value = this._initial; + if (before === null) { + value = this._initial; + } else if (before.type === Tone.TimelineSignal.Type.Target) { + var previous = this._events.getEventBefore(before.time); + var previouVal; + if (previous === null) { + previouVal = this._initial; + } else { + previouVal = previous.value; + } + value = this._exponentialApproach(before.time, previouVal, before.value, before.constant, time); + } else if (after === null) { + value = before.value; + } else if (after.type === Tone.TimelineSignal.Type.Linear) { + value = this._linearInterpolate(before.time, before.value, after.time, after.value, time); + } else if (after.type === Tone.TimelineSignal.Type.Exponential) { + value = this._exponentialInterpolate(before.time, before.value, after.time, after.value, time); + } else { + value = before.value; + } + return value; + }; + Tone.TimelineSignal.prototype.connect = Tone.SignalBase.prototype.connect; + Tone.TimelineSignal.prototype._exponentialApproach = function (t0, v0, v1, timeConstant, t) { + return v1 + (v0 - v1) * Math.exp(-(t - t0) / timeConstant); + }; + Tone.TimelineSignal.prototype._linearInterpolate = function (t0, v0, t1, v1, t) { + return v0 + (v1 - v0) * ((t - t0) / (t1 - t0)); + }; + Tone.TimelineSignal.prototype._exponentialInterpolate = function (t0, v0, t1, v1, t) { + v0 = Math.max(this._minOutput, v0); + return v0 * Math.pow(v1 / v0, (t - t0) / (t1 - t0)); + }; + Tone.TimelineSignal.prototype.dispose = function () { + Tone.Signal.prototype.dispose.call(this); + Tone.Param.prototype.dispose.call(this); + this._events.dispose(); + this._events = null; + }; + return Tone.TimelineSignal; +}(Tone_core_Tone, Tone_signal_Signal); var env; env = function () { 'use strict'; @@ -4730,6 +5077,7 @@ env = function () { var Add = Tone_signal_Add; var Mult = Tone_signal_Multiply; var Scale = Tone_signal_Scale; + var TimelineSignal = Tone_signal_TimelineSignal; var Tone = Tone_core_Tone; Tone.setContext(p5sound.audiocontext); /** @@ -4825,7 +5173,7 @@ env = function () { */ this.rLevel = l4 || 0; this.output = p5sound.audiocontext.createGain(); - this.control = new p5.Signal(); + this.control = new TimelineSignal(); this.control.connect(this.output); this.connection = null; // store connection @@ -4905,6 +5253,9 @@ env = function () { this.connect(unit); } } + // get and set value to anchor automation + var valToSet = this.control.getValueAtTime(t); + this.control.setValueAtTime(valToSet, t); // attack this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); // decay to decay level @@ -4937,6 +5288,9 @@ env = function () { this.connect(unit); } } + // get and set value to anchor automation + var valToSet = this.control.getValueAtTime(t); + this.control.setValueAtTime(valToSet, t); this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); // attack this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); @@ -4967,8 +5321,9 @@ env = function () { this.connect(unit); } } - // ideally would get & set currentValue here, - // but this.control._scalar.gain.value not working in firefox + // get and set value to anchor automation + var valToSet = this.control.getValueAtTime(t); + this.control.setValueAtTime(valToSet, t); // release based on how much time has passed since this.lastAttack if (t - this.lastAttack < this.aTime) { var a = this.aTime - (t - this.lastAttack); @@ -5093,7 +5448,7 @@ env = function () { mathOps[i].dispose(); } }; -}(master, Tone_signal_Add, Tone_signal_Multiply, Tone_signal_Scale, Tone_core_Tone); +}(master, Tone_signal_Add, Tone_signal_Multiply, Tone_signal_Scale, Tone_signal_TimelineSignal, Tone_core_Tone); var pulse; pulse = function () { 'use strict'; @@ -6767,424 +7122,77 @@ reverb = function () { p5.Convolver.prototype.addImpulse = function (path, callback, errorCallback) { // if loading locally without a server if (window.location.origin.indexOf('file://') > -1 && window.cordova === 'undefined') { - alert('This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS'); - } - this._loadBuffer(path, callback, errorCallback); - }; - /** - * Similar to .addImpulse, except that the .impulses - * Array is reset to save memory. A new .impulses - * array is created with this impulse as the only item. - * - * @method resetImpulse - * @param {String} path path to a sound file - * @param {Function} callback function (optional) - * @param {Function} errorCallback function (optional) - */ - p5.Convolver.prototype.resetImpulse = function (path, callback, errorCallback) { - // if loading locally without a server - if (window.location.origin.indexOf('file://') > -1 && window.cordova === 'undefined') { - alert('This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS'); - } - this.impulses = []; - this._loadBuffer(path, callback, errorCallback); - }; - /** - * If you have used .addImpulse() to add multiple impulses - * to a p5.Convolver, then you can use this method to toggle between - * the items in the .impulses Array. Accepts a parameter - * to identify which impulse you wish to use, identified either by its - * original filename (String) or by its position in the .impulses - * Array (Number).
- * You can access the objects in the .impulses Array directly. Each - * Object has two attributes: an .audioBuffer (type: - * Web Audio - * AudioBuffer) and a .name, a String that corresponds - * with the original filename. - * - * @method toggleImpulse - * @param {String|Number} id Identify the impulse by its original filename - * (String), or by its position in the - * .impulses Array (Number). - */ - p5.Convolver.prototype.toggleImpulse = function (id) { - if (typeof id === 'number' && id < this.impulses.length) { - this.convolverNode.buffer = this.impulses[id].audioBuffer; - } - if (typeof id === 'string') { - for (var i = 0; i < this.impulses.length; i++) { - if (this.impulses[i].name === id) { - this.convolverNode.buffer = this.impulses[i].audioBuffer; - break; - } - } - } - }; - p5.Convolver.prototype.dispose = function () { - // remove all the Impulse Response buffers - for (var i in this.impulses) { - this.impulses[i] = null; - } - this.convolverNode.disconnect(); - this.concolverNode = null; - if (typeof this.output !== 'undefined') { - this.output.disconnect(); - this.output = null; - } - if (typeof this.panner !== 'undefined') { - this.panner.disconnect(); - this.panner = null; - } - }; -}(master, errorHandler, sndcore); -/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ -var Tone_core_Timeline; -Tone_core_Timeline = function (Tone) { - 'use strict'; - Tone.Timeline = function () { - var options = this.optionsObject(arguments, ['memory'], Tone.Timeline.defaults); - this._timeline = []; - this._toRemove = []; - this._iterating = false; - this.memory = options.memory; - }; - Tone.extend(Tone.Timeline); - Tone.Timeline.defaults = { 'memory': Infinity }; - Object.defineProperty(Tone.Timeline.prototype, 'length', { - get: function () { - return this._timeline.length; - } - }); - Tone.Timeline.prototype.addEvent = function (event) { - if (this.isUndef(event.time)) { - throw new Error('events must have a time attribute'); - } - event.time = this.toSeconds(event.time); - if (this._timeline.length) { - var index = this._search(event.time); - this._timeline.splice(index + 1, 0, event); - } else { - this._timeline.push(event); - } - if (this.length > this.memory) { - var diff = this.length - this.memory; - this._timeline.splice(0, diff); - } - return this; - }; - Tone.Timeline.prototype.removeEvent = function (event) { - if (this._iterating) { - this._toRemove.push(event); - } else { - var index = this._timeline.indexOf(event); - if (index !== -1) { - this._timeline.splice(index, 1); - } - } - return this; - }; - Tone.Timeline.prototype.getEvent = function (time) { - time = this.toSeconds(time); - var index = this._search(time); - if (index !== -1) { - return this._timeline[index]; - } else { - return null; - } - }; - Tone.Timeline.prototype.getEventAfter = function (time) { - time = this.toSeconds(time); - var index = this._search(time); - if (index + 1 < this._timeline.length) { - return this._timeline[index + 1]; - } else { - return null; - } - }; - Tone.Timeline.prototype.getEventBefore = function (time) { - time = this.toSeconds(time); - var index = this._search(time); - if (index - 1 >= 0) { - return this._timeline[index - 1]; - } else { - return null; - } - }; - Tone.Timeline.prototype.cancel = function (after) { - if (this._timeline.length > 1) { - after = this.toSeconds(after); - var index = this._search(after); - if (index >= 0) { - this._timeline = this._timeline.slice(0, index); - } else { - this._timeline = []; - } - } else if (this._timeline.length === 1) { - if (this._timeline[0].time >= after) { - this._timeline = []; - } - } - return this; - }; - Tone.Timeline.prototype.cancelBefore = function (time) { - if (this._timeline.length) { - time = this.toSeconds(time); - var index = this._search(time); - if (index >= 0) { - this._timeline = this._timeline.slice(index + 1); - } - } - return this; - }; - Tone.Timeline.prototype._search = function (time) { - var beginning = 0; - var len = this._timeline.length; - var end = len; - while (beginning <= end && beginning < len) { - var midPoint = Math.floor(beginning + (end - beginning) / 2); - var event = this._timeline[midPoint]; - if (event.time === time) { - for (var i = midPoint; i < this._timeline.length; i++) { - var testEvent = this._timeline[i]; - if (testEvent.time === time) { - midPoint = i; - } - } - return midPoint; - } else if (event.time > time) { - end = midPoint - 1; - } else if (event.time < time) { - beginning = midPoint + 1; - } - } - return beginning - 1; - }; - Tone.Timeline.prototype._iterate = function (callback, lowerBound, upperBound) { - this._iterating = true; - lowerBound = this.defaultArg(lowerBound, 0); - upperBound = this.defaultArg(upperBound, this._timeline.length - 1); - for (var i = lowerBound; i <= upperBound; i++) { - callback(this._timeline[i]); - } - this._iterating = false; - if (this._toRemove.length > 0) { - for (var j = 0; j < this._toRemove.length; j++) { - var index = this._timeline.indexOf(this._toRemove[j]); - if (index !== -1) { - this._timeline.splice(index, 1); - } - } - this._toRemove = []; + alert('This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS'); } + this._loadBuffer(path, callback, errorCallback); }; - Tone.Timeline.prototype.forEach = function (callback) { - this._iterate(callback); - return this; - }; - Tone.Timeline.prototype.forEachBefore = function (time, callback) { - time = this.toSeconds(time); - var upperBound = this._search(time); - if (upperBound !== -1) { - this._iterate(callback, 0, upperBound); + /** + * Similar to .addImpulse, except that the .impulses + * Array is reset to save memory. A new .impulses + * array is created with this impulse as the only item. + * + * @method resetImpulse + * @param {String} path path to a sound file + * @param {Function} callback function (optional) + * @param {Function} errorCallback function (optional) + */ + p5.Convolver.prototype.resetImpulse = function (path, callback, errorCallback) { + // if loading locally without a server + if (window.location.origin.indexOf('file://') > -1 && window.cordova === 'undefined') { + alert('This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS'); } - return this; - }; - Tone.Timeline.prototype.forEachAfter = function (time, callback) { - time = this.toSeconds(time); - var lowerBound = this._search(time); - this._iterate(callback, lowerBound + 1); - return this; + this.impulses = []; + this._loadBuffer(path, callback, errorCallback); }; - Tone.Timeline.prototype.forEachFrom = function (time, callback) { - time = this.toSeconds(time); - var lowerBound = this._search(time); - while (lowerBound >= 0 && this._timeline[lowerBound].time >= time) { - lowerBound--; + /** + * If you have used .addImpulse() to add multiple impulses + * to a p5.Convolver, then you can use this method to toggle between + * the items in the .impulses Array. Accepts a parameter + * to identify which impulse you wish to use, identified either by its + * original filename (String) or by its position in the .impulses + * Array (Number).
+ * You can access the objects in the .impulses Array directly. Each + * Object has two attributes: an .audioBuffer (type: + * Web Audio + * AudioBuffer) and a .name, a String that corresponds + * with the original filename. + * + * @method toggleImpulse + * @param {String|Number} id Identify the impulse by its original filename + * (String), or by its position in the + * .impulses Array (Number). + */ + p5.Convolver.prototype.toggleImpulse = function (id) { + if (typeof id === 'number' && id < this.impulses.length) { + this.convolverNode.buffer = this.impulses[id].audioBuffer; } - this._iterate(callback, lowerBound + 1); - return this; - }; - Tone.Timeline.prototype.forEachAtTime = function (time, callback) { - time = this.toSeconds(time); - var upperBound = this._search(time); - if (upperBound !== -1) { - this._iterate(function (event) { - if (event.time === time) { - callback(event); + if (typeof id === 'string') { + for (var i = 0; i < this.impulses.length; i++) { + if (this.impulses[i].name === id) { + this.convolverNode.buffer = this.impulses[i].audioBuffer; + break; } - }, 0, upperBound); + } } - return this; - }; - Tone.Timeline.prototype.dispose = function () { - Tone.prototype.dispose.call(this); - this._timeline = null; - this._toRemove = null; - }; - return Tone.Timeline; -}(Tone_core_Tone); -/** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ -var Tone_signal_TimelineSignal; -Tone_signal_TimelineSignal = function (Tone) { - 'use strict'; - Tone.TimelineSignal = function () { - var options = this.optionsObject(arguments, [ - 'value', - 'units' - ], Tone.Signal.defaults); - Tone.Signal.apply(this, options); - options.param = this._param; - Tone.Param.call(this, options); - this._events = new Tone.Timeline(10); - this._initial = this._fromUnits(this._param.value); - }; - Tone.extend(Tone.TimelineSignal, Tone.Param); - Tone.TimelineSignal.Type = { - Linear: 'linear', - Exponential: 'exponential', - Target: 'target', - Set: 'set' }; - Object.defineProperty(Tone.TimelineSignal.prototype, 'value', { - get: function () { - return this._toUnits(this._param.value); - }, - set: function (value) { - var convertedVal = this._fromUnits(value); - this._initial = convertedVal; - this._param.value = convertedVal; + p5.Convolver.prototype.dispose = function () { + // remove all the Impulse Response buffers + for (var i in this.impulses) { + this.impulses[i] = null; } - }); - Tone.TimelineSignal.prototype.setValueAtTime = function (value, startTime) { - value = this._fromUnits(value); - startTime = this.toSeconds(startTime); - this._events.addEvent({ - 'type': Tone.TimelineSignal.Type.Set, - 'value': value, - 'time': startTime - }); - this._param.setValueAtTime(value, startTime); - return this; - }; - Tone.TimelineSignal.prototype.linearRampToValueAtTime = function (value, endTime) { - value = this._fromUnits(value); - endTime = this.toSeconds(endTime); - this._events.addEvent({ - 'type': Tone.TimelineSignal.Type.Linear, - 'value': value, - 'time': endTime - }); - this._param.linearRampToValueAtTime(value, endTime); - return this; - }; - Tone.TimelineSignal.prototype.exponentialRampToValueAtTime = function (value, endTime) { - value = this._fromUnits(value); - value = Math.max(this._minOutput, value); - endTime = this.toSeconds(endTime); - this._events.addEvent({ - 'type': Tone.TimelineSignal.Type.Exponential, - 'value': value, - 'time': endTime - }); - this._param.exponentialRampToValueAtTime(value, endTime); - return this; - }; - Tone.TimelineSignal.prototype.setTargetAtTime = function (value, startTime, timeConstant) { - value = this._fromUnits(value); - value = Math.max(this._minOutput, value); - timeConstant = Math.max(this._minOutput, timeConstant); - startTime = this.toSeconds(startTime); - this._events.addEvent({ - 'type': Tone.TimelineSignal.Type.Target, - 'value': value, - 'time': startTime, - 'constant': timeConstant - }); - this._param.setTargetAtTime(value, startTime, timeConstant); - return this; - }; - Tone.TimelineSignal.prototype.cancelScheduledValues = function (after) { - this._events.cancel(after); - this._param.cancelScheduledValues(this.toSeconds(after)); - return this; - }; - Tone.TimelineSignal.prototype.setRampPoint = function (time) { - time = this.toSeconds(time); - var val = this.getValueAtTime(time); - var after = this._searchAfter(time); - if (after) { - this.cancelScheduledValues(time); - if (after.type === Tone.TimelineSignal.Type.Linear) { - this.linearRampToValueAtTime(val, time); - } else if (after.type === Tone.TimelineSignal.Type.Exponential) { - this.exponentialRampToValueAtTime(val, time); - } + this.convolverNode.disconnect(); + this.concolverNode = null; + if (typeof this.output !== 'undefined') { + this.output.disconnect(); + this.output = null; } - this.setValueAtTime(val, time); - return this; - }; - Tone.TimelineSignal.prototype.linearRampToValueBetween = function (value, start, finish) { - this.setRampPoint(start); - this.linearRampToValueAtTime(value, finish); - return this; - }; - Tone.TimelineSignal.prototype.exponentialRampToValueBetween = function (value, start, finish) { - this.setRampPoint(start); - this.exponentialRampToValueAtTime(value, finish); - return this; - }; - Tone.TimelineSignal.prototype._searchBefore = function (time) { - return this._events.getEvent(time); - }; - Tone.TimelineSignal.prototype._searchAfter = function (time) { - return this._events.getEventAfter(time); - }; - Tone.TimelineSignal.prototype.getValueAtTime = function (time) { - var after = this._searchAfter(time); - var before = this._searchBefore(time); - var value = this._initial; - if (before === null) { - value = this._initial; - } else if (before.type === Tone.TimelineSignal.Type.Target) { - var previous = this._events.getEventBefore(before.time); - var previouVal; - if (previous === null) { - previouVal = this._initial; - } else { - previouVal = previous.value; - } - value = this._exponentialApproach(before.time, previouVal, before.value, before.constant, time); - } else if (after === null) { - value = before.value; - } else if (after.type === Tone.TimelineSignal.Type.Linear) { - value = this._linearInterpolate(before.time, before.value, after.time, after.value, time); - } else if (after.type === Tone.TimelineSignal.Type.Exponential) { - value = this._exponentialInterpolate(before.time, before.value, after.time, after.value, time); - } else { - value = before.value; + if (typeof this.panner !== 'undefined') { + this.panner.disconnect(); + this.panner = null; } - return value; - }; - Tone.TimelineSignal.prototype.connect = Tone.SignalBase.prototype.connect; - Tone.TimelineSignal.prototype._exponentialApproach = function (t0, v0, v1, timeConstant, t) { - return v1 + (v0 - v1) * Math.exp(-(t - t0) / timeConstant); }; - Tone.TimelineSignal.prototype._linearInterpolate = function (t0, v0, t1, v1, t) { - return v0 + (v1 - v0) * ((t - t0) / (t1 - t0)); - }; - Tone.TimelineSignal.prototype._exponentialInterpolate = function (t0, v0, t1, v1, t) { - v0 = Math.max(this._minOutput, v0); - return v0 * Math.pow(v1 / v0, (t - t0) / (t1 - t0)); - }; - Tone.TimelineSignal.prototype.dispose = function () { - Tone.Signal.prototype.dispose.call(this); - Tone.Param.prototype.dispose.call(this); - this._events.dispose(); - this._events = null; - }; - return Tone.TimelineSignal; -}(Tone_core_Tone, Tone_signal_Signal); +}(master, errorHandler, sndcore); /** Tone.js module by Yotam Mann, MIT License 2016 http://opensource.org/licenses/MIT **/ var Tone_core_TimelineState; Tone_core_TimelineState = function (Tone) { diff --git a/lib/p5.sound.min.js b/lib/p5.sound.min.js index 63cf80f2..293e53d0 100644 --- a/lib/p5.sound.min.js +++ b/lib/p5.sound.min.js @@ -1,6 +1,6 @@ /*! p5.sound.min.js v0.2.17 2016-01-18 */ !function(t,e){"function"==typeof define&&define.amd?define("p5.sound",["p5"],function(t){e(t)}):e("object"==typeof exports?require("../p5"):t.p5)}(this,function(p5){var sndcore;sndcore=function(){"use strict";!function(t,e){function i(t){t&&(t.setTargetAtTime||(t.setTargetAtTime=t.setTargetValueAtTime))}return e=e||{},window.hasOwnProperty("webkitAudioContext")&&!window.hasOwnProperty("AudioContext")&&(window.AudioContext=webkitAudioContext,AudioContext.prototype.hasOwnProperty("createGain")||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),AudioContext.prototype.hasOwnProperty("createDelay")||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),AudioContext.prototype.hasOwnProperty("createScriptProcessor")||(AudioContext.prototype.createScriptProcessor=AudioContext.prototype.createJavaScriptNode),AudioContext.prototype.hasOwnProperty("createPeriodicWave")||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),AudioContext.prototype.internal_createGain=AudioContext.prototype.createGain,AudioContext.prototype.createGain=function(){var t=this.internal_createGain();return i(t.gain),t},AudioContext.prototype.internal_createDelay=AudioContext.prototype.createDelay,AudioContext.prototype.createDelay=function(t){var e=t?this.internal_createDelay(t):this.internal_createDelay();return i(e.delayTime),e},AudioContext.prototype.internal_createBufferSource=AudioContext.prototype.createBufferSource,AudioContext.prototype.createBufferSource=function(){var t=this.internal_createBufferSource();return t.start?(t.internal_start=t.start,t.start=function(e,i,o){"undefined"!=typeof o?t.internal_start(e||0,i,o):t.internal_start(e||0,i||0)}):t.start=function(t,e,i){e||i?this.noteGrainOn(t||0,e,i):this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},i(t.playbackRate),t},AudioContext.prototype.internal_createDynamicsCompressor=AudioContext.prototype.createDynamicsCompressor,AudioContext.prototype.createDynamicsCompressor=function(){var t=this.internal_createDynamicsCompressor();return i(t.threshold),i(t.knee),i(t.ratio),i(t.reduction),i(t.attack),i(t.release),t},AudioContext.prototype.internal_createBiquadFilter=AudioContext.prototype.createBiquadFilter,AudioContext.prototype.createBiquadFilter=function(){var t=this.internal_createBiquadFilter();return i(t.frequency),i(t.detune),i(t.Q),i(t.gain),t},AudioContext.prototype.hasOwnProperty("createOscillator")&&(AudioContext.prototype.internal_createOscillator=AudioContext.prototype.createOscillator,AudioContext.prototype.createOscillator=function(){var t=this.internal_createOscillator();return t.start?(t.internal_start=t.start,t.start=function(e){t.internal_start(e||0)}):t.start=function(t){this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},t.setPeriodicWave||(t.setPeriodicWave=t.setWaveTable),i(t.frequency),i(t.detune),t})),window.hasOwnProperty("webkitOfflineAudioContext")&&!window.hasOwnProperty("OfflineAudioContext")&&(window.OfflineAudioContext=webkitOfflineAudioContext),e}(window);var t=new window.AudioContext;p5.prototype.getAudioContext=function(){return t},navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;var e=document.createElement("audio");p5.prototype.isSupported=function(){return!!e.canPlayType};var i=function(){return!!e.canPlayType&&e.canPlayType('audio/ogg; codecs="vorbis"')},o=function(){return!!e.canPlayType&&e.canPlayType("audio/mpeg;")},n=function(){return!!e.canPlayType&&e.canPlayType('audio/wav; codecs="1"')},r=function(){return!!e.canPlayType&&(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;"))},s=function(){return!!e.canPlayType&&e.canPlayType("audio/x-aiff;")};p5.prototype.isFileSupported=function(t){switch(t.toLowerCase()){case"mp3":return o();case"wav":return n();case"ogg":return i();case"mp4":return r();case"aiff":return s();default:return!1}};var a=navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1;if(a){var u=!1,c=function(){if(!u){var e=t.createBuffer(1,1,22050),i=t.createBufferSource();i.buffer=e,i.connect(t.destination),i.start(0),console.log("start ios!"),"running"===t.state&&(u=!0)}};document.addEventListener("touchend",c,!1),document.addEventListener("touchstart",c,!1)}}();var master;master=function(){"use strict";var t=function(){var t=p5.prototype.getAudioContext();this.input=t.createGain(),this.output=t.createGain(),this.limiter=t.createDynamicsCompressor(),this.limiter.threshold.value=0,this.limiter.ratio.value=100,this.audiocontext=t,this.output.disconnect(),this.inputSources=[],this.input.connect(this.limiter),this.limiter.connect(this.output),this.meter=t.createGain(),this.fftMeter=t.createGain(),this.output.connect(this.meter),this.output.connect(this.fftMeter),this.output.connect(this.audiocontext.destination),this.soundArray=[],this.parts=[],this.extensions=[]},e=new t;return p5.prototype.getMasterVolume=function(){return e.output.gain.value},p5.prototype.masterVolume=function(t,i,o){if("number"==typeof t){var i=i||0,o=o||0,n=e.audiocontext.currentTime,r=e.output.gain.value;e.output.gain.cancelScheduledValues(n+o),e.output.gain.linearRampToValueAtTime(r,n+o),e.output.gain.linearRampToValueAtTime(t,n+o+i)}else{if(!t)return e.output.gain;t.connect(e.output.gain)}},p5.soundOut=e,p5.soundOut._silentNode=e.audiocontext.createGain(),p5.soundOut._silentNode.gain.value=0,p5.soundOut._silentNode.connect(e.audiocontext.destination),e}(sndcore);var helpers;helpers=function(){"use strict";var t=master;p5.prototype.sampleRate=function(){return t.audiocontext.sampleRate},p5.prototype.freqToMidi=function(t){var e=Math.log(t/440)/Math.log(2),i=Math.round(12*e)+57;return i},p5.prototype.midiToFreq=function(t){return 440*Math.pow(2,(t-69)/12)},p5.prototype.soundFormats=function(){t.extensions=[];for(var e=0;e-1))throw arguments[e]+" is not a valid sound format!";t.extensions.push(arguments[e])}},p5.prototype.disposeSound=function(){for(var e=0;e-1){var n=p5.prototype.isFileSupported(o);if(n)i=i;else for(var r=i.split("."),s=r[r.length-1],a=0;a1?(this.splitter=e.createChannelSplitter(2),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0)):(this.input.connect(this.left),this.input.connect(this.right)),this.output=e.createChannelMerger(2),this.left.connect(this.output,0,1),this.right.connect(this.output,0,0),this.output.connect(i)},p5.Panner.prototype.pan=function(t,i){var o=i||0,n=e.currentTime+o,r=(t+1)/2,s=Math.cos(r*Math.PI/2),a=Math.sin(r*Math.PI/2);this.left.gain.linearRampToValueAtTime(a,n),this.right.gain.linearRampToValueAtTime(s,n)},p5.Panner.prototype.inputChannels=function(t){1===t?(this.input.disconnect(),this.input.connect(this.left),this.input.connect(this.right)):2===t&&(this.splitter=e.createChannelSplitter(2),this.input.disconnect(),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0))},p5.Panner.prototype.connect=function(t){this.output.connect(t)},p5.Panner.prototype.disconnect=function(){this.output.disconnect()}),p5.Panner3D=function(t,i){var o=e.createPanner();return o.panningModel="HRTF",o.distanceModel="linear",o.setPosition(0,0,0),t.connect(o),o.connect(i),o.pan=function(t,e,i){o.setPosition(t,e,i)},o}}(master);var soundfile;soundfile=function(){"use strict";function t(t,e){for(var i={},o=t.length,n=0;o>n;n++){if(t[n]>e){var r=t[n],s=new c(r,n);i[n]=s,n+=6e3}n++}return i}function e(t){for(var e=[],i=Object.keys(t).sort(),o=0;on;n++){var r=t[i[o]],s=t[i[o+n]];if(r&&s){var a=r.sampleIndex,u=s.sampleIndex,c=u-a;c>0&&r.intervals.push(c);var p=e.some(function(t){return t.interval===c?(t.count++,t):void 0});p||e.push({interval:c,count:1})}}return e}function i(t,e){var i=[];return t.forEach(function(t){try{var o=Math.abs(60/(t.interval/e));o=n(o);var r=i.some(function(e){return e.tempo===o?e.count+=t.count:void 0});if(!r){if(isNaN(o))return;i.push({tempo:Math.round(o),count:t.count})}}catch(s){throw s}}),i}function o(t,e,i,o){for(var r=[],s=Object.keys(t).sort(),a=0;a.01?!0:void 0})}function n(t){if(isFinite(t)&&0!=t){for(;90>t;)t*=2;for(;t>180&&t>90;)t/=2;return t}}var r=errorHandler,s=master,a=s.audiocontext;p5.SoundFile=function(t,e,i,o){if("undefined"!=typeof t){if("string"==typeof t||"string"==typeof t[0]){var n=p5.prototype._checkFileFormats(t);this.url=n}else if("object"==typeof t&&!(window.File&&window.FileReader&&window.FileList&&window.Blob))throw"Unable to load file because the File API is not supported";t.file&&(t=t.file),this.file=t}this._onended=function(){},this._looping=!1,this._playing=!1,this._paused=!1,this._pauseTime=0,this._cues=[],this._lastPos=0,this._counterNode,this._scopeNode,this.bufferSourceNodes=[],this.bufferSourceNode=null,this.buffer=null,this.playbackRate=1,this.gain=1,this.input=s.audiocontext.createGain(),this.output=s.audiocontext.createGain(),this.reversed=!1,this.startTime=0,this.endTime=null,this.pauseTime=0,this.mode="sustain",this.startMillis=null,this.panPosition=0,this.panner=new p5.Panner(this.output,s.input,2),(this.url||this.file)&&this.load(e,i),s.soundArray.push(this),this._whileLoading="function"==typeof o?o:function(){}},p5.prototype.registerPreloadMethod("loadSound",p5.prototype),p5.prototype.loadSound=function(t,e,i,o){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var n=new p5.SoundFile(t,e,i,o);return n},p5.SoundFile.prototype.load=function(t,e){var i=this,o=(new Error).stack;if(void 0!=this.url&&""!=this.url){var n=new XMLHttpRequest;n.addEventListener("progress",function(t){i._updateProgress(t)},!1),n.open("GET",this.url,!0),n.responseType="arraybuffer",n.onload=function(){if(200==n.status)a.decodeAudioData(n.response,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)},function(){var t=new r("decodeAudioData",o,i.url),n="AudioContext error at decodeAudioData for "+i.url;e?(t.msg=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)});else{var s=new r("loadSound",o,i.url),u="Unable to load "+i.url+". The request status was: "+n.status+" ("+n.statusText+")";e?(s.message=u,e(s)):console.error(u+"\n The error stack trace includes: \n"+s.stack)}},n.onerror=function(){var t=new r("loadSound",o,i.url),n="There was no response from the server at "+i.url+". Check the url and internet connectivity.";e?(t.message=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)},n.send()}else if(void 0!=this.file){var s=new FileReader,i=this;s.onload=function(){a.decodeAudioData(s.result,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)})},s.onerror=function(t){onerror&&onerror(t)},s.readAsArrayBuffer(this.file)}},p5.SoundFile.prototype._updateProgress=function(t){if(t.lengthComputable){var e=Math.log(t.loaded/t.total*9.9);this._whileLoading(e)}else this._whileLoading("size unknown")},p5.SoundFile.prototype.isLoaded=function(){return this.buffer?!0:!1},p5.SoundFile.prototype.play=function(t,e,i,o,n){var r,a,u=this,c=s.audiocontext.currentTime,t=t||0;if(0>t&&(t=0),t+=c,!this.buffer)throw"not ready to play file, buffer has yet to load. Try preload()";if(this._pauseTime=0,"restart"===this.mode&&this.buffer&&this.bufferSourceNode){var c=s.audiocontext.currentTime;this.bufferSourceNode.stop(t),this._counterNode.stop(t)}if(this.bufferSourceNode=this._initSourceNode(),this._counterNode&&(this._counterNode=void 0),this._counterNode=this._initCounterNode(),o){if(!(o>=0&&o0&&this.reversed&&this.reverseBuffer();if(this.bufferSourceNode){var n=s.audiocontext.currentTime;this.bufferSourceNode.playbackRate.cancelScheduledValues(n),this.bufferSourceNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n),this._counterNode.playbackRate.cancelScheduledValues(n),this._counterNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n)}}},p5.SoundFile.prototype.setPitch=function(t){var e=midiToFreq(t)/midiToFreq(60);this.rate(e)},p5.SoundFile.prototype.getPlaybackRate=function(){return this.playbackRate},p5.SoundFile.prototype.duration=function(){return this.buffer?this.buffer.duration:0},p5.SoundFile.prototype.currentTime=function(){return this._pauseTime>0?this._pauseTime:this._lastPos/a.sampleRate},p5.SoundFile.prototype.jump=function(t,e){if(0>t||t>this.buffer.duration)throw"jump time out of range";if(e>this.buffer.duration-t)throw"end time out of range";var i=t||0,o=e||this.buffer.duration-t;this.isPlaying()&&this.stop(),this.play(0,this.playbackRate,this.output.gain.value,i,o)},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,i=e.length/t,o=~~(i/10)||1,n=e.numberOfChannels,r=new Float32Array(Math.round(t)),s=0;n>s;s++)for(var a=e.getChannelData(s),u=0;t>u;u++){for(var c=~~(u*i),p=~~(c+i),h=0,l=c;p>l;l+=o){var f=a[l];f>h?h=f:-f>h&&(h=f)}(0===s||Math.abs(h)>r[u])&&(r[u]=h)}return r}},p5.SoundFile.prototype.reverseBuffer=function(){var t=this.getVolume();if(this.setVolume(0,.01,0),this.pause(),!this.buffer)throw"SoundFile is not done loading";for(var e=0;en;n++){var r=o.getChannelData(n);r.set(t[n])}this.buffer=o,this.panner.inputChannels(e)},p5.SoundFile.prototype._initCounterNode=function(){var t=this,e=a.currentTime,i=a.createBufferSource();return t._scopeNode&&(t._scopeNode.disconnect(),t._scopeNode.onaudioprocess=void 0,t._scopeNode=null),t._scopeNode=a.createScriptProcessor(256,1,1),i.buffer=u(t.buffer),i.playbackRate.setValueAtTime(t.playbackRate,e),i.connect(t._scopeNode),t._scopeNode.connect(p5.soundOut._silentNode),t._scopeNode.onaudioprocess=function(e){var i=e.inputBuffer.getChannelData(0);t._lastPos=i[i.length-1]||0,t._onTimeUpdate(t._lastPos)},i},p5.SoundFile.prototype._initSourceNode=function(){var t=this,e=a.currentTime,i=a.createBufferSource();return i.buffer=t.buffer,i.playbackRate.setValueAtTime(t.playbackRate,e),i};var u=function(t){for(var e=new Float32Array(t.length),i=a.createBuffer(1,t.length,44100),o=0;o=d);var u=e(p),c=i(u,s.sampleRate),h=c.sort(function(t,e){return e.count-t.count}).splice(0,5);this.tempo=h[0].tempo;var l=5,y=o(p,h[0].tempo,s.sampleRate,l);n(y)}};var c=function(t,e){this.sampleIndex=e,this.amplitude=t,this.tempos=[],this.intervals=[]},p=[];p5.SoundFile.prototype.addCue=function(t,e,i){var o=this._cueIDCounter++,n=new h(e,t,o,i);return this._cues.push(n),o},p5.SoundFile.prototype.removeCue=function(t){for(var e=this._cues.length,i=0;e>i;i++){var o=this._cues[i];o.id===t&&this.cues.splice(i,1)}0===this._cues.length},p5.SoundFile.prototype.clearCues=function(){this._cues=[]},p5.SoundFile.prototype._onTimeUpdate=function(t){for(var e=t/this.buffer.sampleRate,i=this._cues.length,o=0;i>o;o++){var n=this._cues[o],r=n.time,s=n.val;this._prevTime=r&&n.callback(s)}this._prevTime=e};var h=function(t,e,i,o){this.callback=t,this.time=e,this.id=i,this.val=o}}(sndcore,errorHandler,master);var amplitude;amplitude=function(){"use strict";var t=master;p5.Amplitude=function(e){this.bufferSize=2048,this.audiocontext=t.audiocontext,this.processor=this.audiocontext.createScriptProcessor(this.bufferSize,2,1),this.input=this.processor,this.output=this.audiocontext.createGain(),this.smoothing=e||0,this.volume=0,this.average=0,this.stereoVol=[0,0],this.stereoAvg=[0,0],this.stereoVolNorm=[0,0],this.volMax=.001,this.normalize=!1,this.processor.onaudioprocess=this._audioProcess.bind(this),this.processor.connect(this.output),this.output.gain.value=0,this.output.connect(this.audiocontext.destination),t.meter.connect(this.processor),t.soundArray.push(this)},p5.Amplitude.prototype.setInput=function(e,i){t.meter.disconnect(),i&&(this.smoothing=i),null==e?(console.log("Amplitude input source is not ready! Connecting to master output instead"),t.meter.connect(this.processor)):e instanceof p5.Signal?e.output.connect(this.processor):e?(e.connect(this.processor),this.processor.disconnect(),this.processor.connect(this.output)):t.meter.connect(this.processor)},p5.Amplitude.prototype.connect=function(e){this.output.connect(e?e.hasOwnProperty("input")?e.input:e:this.panner.connect(t.input))},p5.Amplitude.prototype.disconnect=function(){this.output.disconnect()},p5.Amplitude.prototype._audioProcess=function(t){for(var e=0;ea;a++)i=o[a],this.normalize?(r+=Math.max(Math.min(i/this.volMax,1),-1),s+=Math.max(Math.min(i/this.volMax,1),-1)*Math.max(Math.min(i/this.volMax,1),-1)):(r+=i,s+=i*i);var u=r/n,c=Math.sqrt(s/n);this.stereoVol[e]=Math.max(c,this.stereoVol[e]*this.smoothing),this.stereoAvg[e]=Math.max(u,this.stereoVol[e]*this.smoothing),this.volMax=Math.max(this.stereoVol[e],this.volMax)}var p=this,h=this.stereoVol.reduce(function(t,e,i){return p.stereoVolNorm[i-1]=Math.max(Math.min(p.stereoVol[i-1]/p.volMax,1),0),p.stereoVolNorm[i]=Math.max(Math.min(p.stereoVol[i]/p.volMax,1),0),t+e});this.volume=h/this.stereoVol.length,this.volNorm=Math.max(Math.min(this.volume/this.volMax,1),0)},p5.Amplitude.prototype.getLevel=function(t){return"undefined"!=typeof t?this.normalize?this.stereoVolNorm[t]:this.stereoVol[t]:this.normalize?this.volNorm:this.volume},p5.Amplitude.prototype.toggleNormalize=function(t){this.normalize="boolean"==typeof t?t:!this.normalize},p5.Amplitude.prototype.smooth=function(t){t>=0&&1>t?this.smoothing=t:console.log("Error: smoothing must be between 0 and 1")},p5.Amplitude.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.output.disconnect(),this.input=this.processor=void 0,this.output=void 0}}(master);var fft;fft=function(){"use strict";var t=master;p5.FFT=function(e,i){this.smoothing=e||.8,this.bins=i||1024;var o=2*i||2048;this.input=this.analyser=t.audiocontext.createAnalyser(),t.fftMeter.connect(this.analyser),this.analyser.smoothingTimeConstant=this.smoothing,this.analyser.fftSize=o,this.freqDomain=new Uint8Array(this.analyser.frequencyBinCount),this.timeDomain=new Uint8Array(this.analyser.frequencyBinCount),this.bass=[20,140],this.lowMid=[140,400],this.mid=[400,2600],this.highMid=[2600,5200],this.treble=[5200,14e3],t.soundArray.push(this)},p5.FFT.prototype.setInput=function(e){e?(e.output?e.output.connect(this.analyser):e.connect&&e.connect(this.analyser),t.fftMeter.disconnect()):t.fftMeter.connect(this.analyser)},p5.FFT.prototype.waveform=function(){for(var t,e,i,r=0;ri){var n=i;i=e,e=n}for(var r=Math.round(e/o*this.freqDomain.length),s=Math.round(i/o*this.freqDomain.length),a=0,u=0,c=r;s>=c;c++)a+=this.freqDomain[c],u+=1;var p=a/u;return p}throw"invalid input for getEnergy()"}var h=Math.round(e/o*this.freqDomain.length);return this.freqDomain[h]},p5.FFT.prototype.getFreq=function(t,e){console.log("getFreq() is deprecated. Please use getEnergy() instead.");var i=this.getEnergy(t,e);return i},p5.FFT.prototype.smooth=function(t){t&&(this.smoothing=t),this.analyser.smoothingTimeConstant=t},p5.FFT.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.analyser.disconnect(),this.analyser=void 0};var e=function(t){t.freqDomain instanceof Float32Array==!1&&(t.freqDomain=new Float32Array(t.analyser.frequencyBinCount))},i=function(t){t.freqDomain instanceof Uint8Array==!1&&(t.freqDomain=new Uint8Array(t.analyser.frequencyBinCount))},o=function(t){t.timeDomain instanceof Float32Array==!1&&(t.timeDomain=new Float32Array(t.analyser.frequencyBinCount))},n=function(t){t.timeDomain instanceof Uint8Array==!1&&(t.timeDomain=new Uint8Array(t.analyser.frequencyBinCount))}}(master);var Tone_core_Tone;Tone_core_Tone=function(){"use strict";function t(t){return void 0===t}function e(t){return"function"==typeof t}var i;if(t(window.AudioContext)&&(window.AudioContext=window.webkitAudioContext),t(window.OfflineAudioContext)&&(window.OfflineAudioContext=window.webkitOfflineAudioContext),t(AudioContext))throw new Error("Web Audio is not supported in this browser");i=new AudioContext,e(AudioContext.prototype.createGain)||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),e(AudioContext.prototype.createDelay)||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),e(AudioContext.prototype.createPeriodicWave)||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),e(AudioBufferSourceNode.prototype.start)||(AudioBufferSourceNode.prototype.start=AudioBufferSourceNode.prototype.noteGrainOn),e(AudioBufferSourceNode.prototype.stop)||(AudioBufferSourceNode.prototype.stop=AudioBufferSourceNode.prototype.noteOff),e(OscillatorNode.prototype.start)||(OscillatorNode.prototype.start=OscillatorNode.prototype.noteOn),e(OscillatorNode.prototype.stop)||(OscillatorNode.prototype.stop=OscillatorNode.prototype.noteOff),e(OscillatorNode.prototype.setPeriodicWave)||(OscillatorNode.prototype.setPeriodicWave=OscillatorNode.prototype.setWaveTable),AudioNode.prototype._nativeConnect=AudioNode.prototype.connect,AudioNode.prototype.connect=function(e,i,o){if(e.input)Array.isArray(e.input)?(t(o)&&(o=0),this.connect(e.input[o])):this.connect(e.input,i,o);else try{e instanceof AudioNode?this._nativeConnect(e,i,o):this._nativeConnect(e,i)}catch(n){throw new Error("error connecting to node: "+e)}};var o=function(e,i){t(e)||1===e?this.input=this.context.createGain():e>1&&(this.input=new Array(e)),t(i)||1===i?this.output=this.context.createGain():i>1&&(this.output=new Array(e))};o.prototype.set=function(e,i,n){if(this.isObject(e))n=i;else if(this.isString(e)){var r={}; -r[e]=i,e=r}for(var s in e){i=e[s];var a=this;if(-1!==s.indexOf(".")){for(var u=s.split("."),c=0;c1)for(var t=arguments[0],e=1;e1)for(var e=1;e0)for(var t=this,e=0;e0)for(var t=0;te;e++){var o=e/i*2-1;this._curve[e]=t(o,e)}return this._shaper.curve=this._curve,this},Object.defineProperty(t.WaveShaper.prototype,"curve",{get:function(){return this._shaper.curve},set:function(t){this._curve=new Float32Array(t),this._shaper.curve=this._curve}}),Object.defineProperty(t.WaveShaper.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){if(-1===["none","2x","4x"].indexOf(t))throw new Error("invalid oversampling: "+t);this._shaper.oversample=t}}),t.WaveShaper.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null,this},t.WaveShaper}(Tone_core_Tone);var Tone_core_Type;Tone_core_Type=function(Tone){"use strict";function getTransportBpm(){return Tone.Transport&&Tone.Transport.bpm?Tone.Transport.bpm.value:120}function getTransportTimeSignature(){return Tone.Transport&&Tone.Transport.timeSignature?Tone.Transport.timeSignature:4}function toNotationHelper(t,e,i,o){for(var n=this.toSeconds(t),r=this.notationToSeconds(o[o.length-1],e,i),s="",a=0;a1-c%1&&(c+=p),c=Math.floor(c),c>0){if(s+=1===c?o[a]:c.toString()+"*"+o[a],n-=c*u,r>n)break;s+=" + "}}return""===s&&(s="0"),s}Tone.Type={Default:"number",Time:"time",Frequency:"frequency",NormalRange:"normalRange",AudioRange:"audioRange",Decibels:"db",Interval:"interval",BPM:"bpm",Positive:"positive",Cents:"cents",Degrees:"degrees",MIDI:"midi",TransportTime:"transportTime",Ticks:"tick",Note:"note",Milliseconds:"milliseconds",Notation:"notation"},Tone.prototype.isNowRelative=function(){var t=new RegExp(/^\s*\+(.)+/i);return function(e){return t.test(e)}}(),Tone.prototype.isTicks=function(){var t=new RegExp(/^\d+i$/i);return function(e){return t.test(e)}}(),Tone.prototype.isNotation=function(){var t=new RegExp(/^[0-9]+[mnt]$/i);return function(e){return t.test(e)}}(),Tone.prototype.isTransportTime=function(){var t=new RegExp(/^(\d+(\.\d+)?\:){1,2}(\d+(\.\d+)?)?$/i);return function(e){return t.test(e)}}(),Tone.prototype.isNote=function(){var t=new RegExp(/^[a-g]{1}(b|#|x|bb)?-?[0-9]+$/i);return function(e){return t.test(e)}}(),Tone.prototype.isFrequency=function(){var t=new RegExp(/^\d*\.?\d+hz$/i);return function(e){return t.test(e)}}(),Tone.prototype.notationToSeconds=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=60/e;"1n"===t&&(t="1m");var n=parseInt(t,10),r=0;0===n&&(r=0);var s=t.slice(-1);return r="t"===s?4/n*2/3:"n"===s?4/n:"m"===s?n*i:0,o*r},Tone.prototype.transportTimeToSeconds=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=0,n=0,r=0,s=t.split(":");2===s.length?(o=parseFloat(s[0]),n=parseFloat(s[1])):1===s.length?n=parseFloat(s[0]):3===s.length&&(o=parseFloat(s[0]),n=parseFloat(s[1]),r=parseFloat(s[2]));var a=o*i+n+r/4;return a*(60/e)},Tone.prototype.ticksToSeconds=function(t,e){if(this.isUndef(Tone.Transport))return 0;t=parseFloat(t),e=this.defaultArg(e,getTransportBpm());var i=60/e/Tone.Transport.PPQ;return i*t},Tone.prototype.frequencyToSeconds=function(t){return 1/parseFloat(t)},Tone.prototype.samplesToSeconds=function(t){return t/this.context.sampleRate},Tone.prototype.secondsToSamples=function(t){return t*this.context.sampleRate},Tone.prototype.secondsToTransportTime=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=60/e,n=t/o,r=Math.floor(n/i),s=n%1*4;n=Math.floor(n)%i;var a=[r,n,s];return a.join(":")},Tone.prototype.secondsToFrequency=function(t){return 1/t},Tone.prototype.toTransportTime=function(t,e,i){var o=this.toSeconds(t);return this.secondsToTransportTime(o,e,i)},Tone.prototype.toFrequency=function(t,e){return this.isFrequency(t)?parseFloat(t):this.isNotation(t)||this.isTransportTime(t)?this.secondsToFrequency(this.toSeconds(t,e)):this.isNote(t)?this.noteToFrequency(t):t},Tone.prototype.toTicks=function(t){if(this.isUndef(Tone.Transport))return 0;var e=Tone.Transport.bpm.value,i=0;if(this.isNowRelative(t))t=t.replace("+",""),i=Tone.Transport.ticks;else if(this.isUndef(t))return Tone.Transport.ticks;var o=this.toSeconds(t),n=60/e,r=o/n,s=r*Tone.Transport.PPQ;return Math.round(s+i)},Tone.prototype.toSamples=function(t){var e=this.toSeconds(t);return Math.round(e*this.context.sampleRate)},Tone.prototype.toSeconds=function(time,now){if(now=this.defaultArg(now,this.now()),this.isNumber(time))return time;if(this.isString(time)){var plusTime=0;this.isNowRelative(time)&&(time=time.replace("+",""),plusTime=now);var betweenParens=time.match(/\(([^)(]+)\)/g);if(betweenParens)for(var j=0;j0&&(toQuantize="+"+toQuantize,plusTime=0);var subdivision=quantizationSplit[1].trim();time=Tone.Transport.quantize(toQuantize,subdivision)}else{var components=time.split(/[\(\)\-\+\/\*]/);if(components.length>1){for(var originalTime=time,i=0;io&&(i+=-12*o);var n=scaleIndexToNote[i%12];return n+o.toString()},Tone.prototype.intervalToFrequencyRatio=function(t){return Math.pow(2,t/12)},Tone.prototype.midiToNote=function(t){var e=Math.floor(t/12)-1,i=t%12;return scaleIndexToNote[i]+e},Tone.prototype.noteToMidi=function(t){var e=t.split(/(\d+)/);if(3===e.length){var i=noteToScaleIndex[e[0].toLowerCase()],o=e[1];return i+12*(parseInt(o,10)+1)}return 0},Tone.prototype.midiToFrequency=function(t){return Tone.A4*Math.pow(2,(t-69)/12)},Tone}(Tone_core_Tone);var Tone_core_Param;Tone_core_Param=function(t){"use strict";return t.Param=function(){var e=this.optionsObject(arguments,["param","units","convert"],t.Param.defaults);this._param=this.input=e.param,this.units=e.units,this.convert=e.convert,this.overridden=!1,this.isUndef(e.value)||(this.value=e.value)},t.extend(t.Param),t.Param.defaults={units:t.Type.Default,convert:!0,param:void 0},Object.defineProperty(t.Param.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(t){var e=this._fromUnits(t);this._param.value=e}}),t.Param.prototype._fromUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Time:return this.toSeconds(e);case t.Type.Frequency:return this.toFrequency(e);case t.Type.Decibels:return this.dbToGain(e);case t.Type.NormalRange:return Math.min(Math.max(e,0),1);case t.Type.AudioRange:return Math.min(Math.max(e,-1),1);case t.Type.Positive:return Math.max(e,0);default:return e}},t.Param.prototype._toUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Decibels:return this.gainToDb(e);default:return e}},t.Param.prototype._minOutput=1e-5,t.Param.prototype.setValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.setValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.setRampPoint=function(t){t=this.defaultArg(t,this.now());var e=this._param.value;return this._param.setValueAtTime(e,t),this},t.Param.prototype.linearRampToValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.linearRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValueAtTime=function(t,e){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),this._param.exponentialRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValue=function(t,e){var i=this.now(),o=this.value;return this.setValueAtTime(Math.max(o,this._minOutput),i),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.linearRampToValue=function(t,e){var i=this.now();return this.setRampPoint(i),this.linearRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.setTargetAtTime=function(t,e,i){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),i=Math.max(this._minOutput,i),this._param.setTargetAtTime(t,this.toSeconds(e),i),this},t.Param.prototype.setValueCurveAtTime=function(t,e,i){for(var o=0;o0?this.oscillator.frequency.exponentialRampToValueAtTime(e,o+i+n):this.oscillator.frequency.linearRampToValueAtTime(e,o+i+n),this.phaseAmount&&this.phase(this.phaseAmount)}},p5.Oscillator.prototype.getFreq=function(){return this.oscillator.frequency.value},p5.Oscillator.prototype.setType=function(t){this.oscillator.type=t},p5.Oscillator.prototype.getType=function(){return this.oscillator.type},p5.Oscillator.prototype.connect=function(e){e?e.hasOwnProperty("input")?(this.panner.connect(e.input),this.connection=e.input):(this.panner.connect(e),this.connection=e):this.panner.connect(t.input)},p5.Oscillator.prototype.disconnect=function(){this.output.disconnect(),this.panner.disconnect(),this.output.connect(this.panner),this.oscMods=[]},p5.Oscillator.prototype.pan=function(t,e){this.panPosition=t,this.panner.pan(t,e)},p5.Oscillator.prototype.getPan=function(){return this.panPosition},p5.Oscillator.prototype.dispose=function(){var e=t.soundArray.indexOf(this);if(t.soundArray.splice(e,1),this.oscillator){var i=t.audiocontext.currentTime;this.stop(i),this.disconnect(),this.oscillator.disconnect(),this.panner=null,this.oscillator=null}this.osc2&&this.osc2.dispose()},p5.Oscillator.prototype.phase=function(e){var i=p5.prototype.map(e,0,1,0,1/this.f),o=t.audiocontext.currentTime;this.phaseAmount=e,this.dNode||(this.dNode=t.audiocontext.createDelay(),this.oscillator.disconnect(),this.oscillator.connect(this.dNode),this.dNode.connect(this.output)),this.dNode.delayTime.setValueAtTime(i,o)};var n=function(t,e,i,o,n){var r=t.oscillator;for(var s in t.mathOps)t.mathOps[s]instanceof n&&(r.disconnect(),t.mathOps[s].dispose(),i=s,i0&&(r=t.mathOps[s-1]),r.disconnect(),r.connect(e),e.connect(o),t.mathOps[i]=e,t};p5.Oscillator.prototype.add=function(t){var i=new e(t),o=this.mathOps.length-1,r=this.output;return n(this,i,o,r,e)},p5.Oscillator.prototype.mult=function(t){var e=new i(t),o=this.mathOps.length-1,r=this.output;return n(this,e,o,r,i)},p5.Oscillator.prototype.scale=function(t,e,i,r){var s,a;4===arguments.length?(s=p5.prototype.map(i,t,e,0,1)-.5,a=p5.prototype.map(r,t,e,0,1)-.5):(s=arguments[0],a=arguments[1]);var u=new o(s,a),c=this.mathOps.length-1,p=this.output;return n(this,u,c,p,o)},p5.SinOsc=function(t){p5.Oscillator.call(this,t,"sine")},p5.SinOsc.prototype=Object.create(p5.Oscillator.prototype),p5.TriOsc=function(t){p5.Oscillator.call(this,t,"triangle")},p5.TriOsc.prototype=Object.create(p5.Oscillator.prototype),p5.SawOsc=function(t){p5.Oscillator.call(this,t,"sawtooth")},p5.SawOsc.prototype=Object.create(p5.Oscillator.prototype),p5.SqrOsc=function(t){p5.Oscillator.call(this,t,"square")},p5.SqrOsc.prototype=Object.create(p5.Oscillator.prototype)}(master,Tone_signal_Signal,Tone_signal_Add,Tone_signal_Multiply,Tone_signal_Scale);var env;env=function(){"use strict";var t=master,e=Tone_signal_Add,i=Tone_signal_Multiply,o=Tone_signal_Scale,n=Tone_core_Tone;n.setContext(t.audiocontext),p5.Env=function(e,i,o,n,r,s,a,u){this.aTime=e,this.aLevel=i,this.dTime=o||0,this.dLevel=n||0,this.sTime=r||0,this.sLevel=s||0,this.rTime=a||0,this.rLevel=u||0,this.output=t.audiocontext.createGain(),this.control=new p5.Signal,this.control.connect(this.output),this.connection=null,this.mathOps=[this.control],this.sourceToClear=null,this.wasTriggered=!1,t.soundArray.push(this)},p5.Env.prototype.set=function(t,e,i,o,n,r,s,a){this.aTime=t,this.aLevel=e,this.dTime=i||0,this.dLevel=o||0,this.sTime=n||0,this.sLevel=r||0,this.rTime=s||0,this.rLevel=a||0},p5.Env.prototype.setInput=function(){for(var t=0;tn;n++)o[n]=1;var r=t.createBufferSource();return r.buffer=i,r.loop=!0,r}var e=master;p5.Pulse=function(i,o){p5.Oscillator.call(this,i,"sawtooth"),this.w=o||0,this.osc2=new p5.SawOsc(i),this.dNode=e.audiocontext.createDelay(),this.dcOffset=t(),this.dcGain=e.audiocontext.createGain(),this.dcOffset.connect(this.dcGain),this.dcGain.connect(this.output),this.f=i||440;var n=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=n,this.dcGain.gain.value=1.7*(.5-this.w),this.osc2.disconnect(),this.osc2.panner.disconnect(),this.osc2.amp(-1),this.osc2.output.connect(this.dNode),this.dNode.connect(this.output),this.output.gain.value=1,this.output.connect(this.panner) -},p5.Pulse.prototype=Object.create(p5.Oscillator.prototype),p5.Pulse.prototype.width=function(t){if("number"==typeof t){if(1>=t&&t>=0){this.w=t;var e=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=e}this.dcGain.gain.value=1.7*(.5-this.w)}else{t.connect(this.dNode.delayTime);var i=new p5.SignalAdd(-.5);i.setInput(t),i=i.mult(-1),i=i.mult(1.7),i.connect(this.dcGain.gain)}},p5.Pulse.prototype.start=function(i,o){var n=e.audiocontext.currentTime,r=o||0;if(!this.started){var s=i||this.f,a=this.oscillator.type;this.oscillator=e.audiocontext.createOscillator(),this.oscillator.frequency.setValueAtTime(s,n),this.oscillator.type=a,this.oscillator.connect(this.output),this.oscillator.start(r+n),this.osc2.oscillator=e.audiocontext.createOscillator(),this.osc2.oscillator.frequency.setValueAtTime(s,r+n),this.osc2.oscillator.type=a,this.osc2.oscillator.connect(this.osc2.output),this.osc2.start(r+n),this.freqNode=[this.oscillator.frequency,this.osc2.oscillator.frequency],this.dcOffset=t(),this.dcOffset.connect(this.dcGain),this.dcOffset.start(r+n),void 0!==this.mods&&void 0!==this.mods.frequency&&(this.mods.frequency.connect(this.freqNode[0]),this.mods.frequency.connect(this.freqNode[1])),this.started=!0,this.osc2.started=!0}},p5.Pulse.prototype.stop=function(t){if(this.started){var i=t||0,o=e.audiocontext.currentTime;this.oscillator.stop(i+o),this.osc2.oscillator.stop(i+o),this.dcOffset.stop(i+o),this.started=!1,this.osc2.started=!1}},p5.Pulse.prototype.freq=function(t,i,o){if("number"==typeof t){this.f=t;var n=e.audiocontext.currentTime,i=i||0,o=o||0,r=this.oscillator.frequency.value;this.oscillator.frequency.cancelScheduledValues(n),this.oscillator.frequency.setValueAtTime(r,n+o),this.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n),this.osc2.oscillator.frequency.cancelScheduledValues(n),this.osc2.oscillator.frequency.setValueAtTime(r,n+o),this.osc2.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n),this.freqMod&&(this.freqMod.output.disconnect(),this.freqMod=null)}else t.output&&(t.output.disconnect(),t.output.connect(this.oscillator.frequency),t.output.connect(this.osc2.oscillator.frequency),this.freqMod=t)}}(master,oscillator);var noise;noise=function(){"use strict";var t=master;p5.Noise=function(){p5.Oscillator.call(this),delete this.f,delete this.freq,delete this.oscillator,this.buffer=e},p5.Noise.prototype=Object.create(p5.Oscillator.prototype);var e=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),o=i.getChannelData(0),n=0;e>n;n++)o[n]=2*Math.random()-1;return i.type="white",i}(),i=function(){var e,i,o,n,r,s,a,u=2*t.audiocontext.sampleRate,c=t.audiocontext.createBuffer(1,u,t.audiocontext.sampleRate),p=c.getChannelData(0);e=i=o=n=r=s=a=0;for(var h=0;u>h;h++){var l=2*Math.random()-1;e=.99886*e+.0555179*l,i=.99332*i+.0750759*l,o=.969*o+.153852*l,n=.8665*n+.3104856*l,r=.55*r+.5329522*l,s=-.7616*s-.016898*l,p[h]=e+i+o+n+r+s+a+.5362*l,p[h]*=.11,a=.115926*l}return c.type="pink",c}(),o=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),o=i.getChannelData(0),n=0,r=0;e>r;r++){var s=2*Math.random()-1;o[r]=(n+.02*s)/1.02,n=o[r],o[r]*=3.5}return i.type="brown",i}();p5.Noise.prototype.setType=function(n){switch(n){case"white":this.buffer=e;break;case"pink":this.buffer=i;break;case"brown":this.buffer=o;break;default:this.buffer=e}if(this.started){var r=t.audiocontext.currentTime;this.stop(r),this.start(r+.01)}},p5.Noise.prototype.getType=function(){return this.buffer.type},p5.Noise.prototype.start=function(){this.started&&this.stop(),this.noise=t.audiocontext.createBufferSource(),this.noise.buffer=this.buffer,this.noise.loop=!0,this.noise.connect(this.output);var e=t.audiocontext.currentTime;this.noise.start(e),this.started=!0},p5.Noise.prototype.stop=function(){var e=t.audiocontext.currentTime;this.noise&&(this.noise.stop(e),this.started=!1)},p5.Noise.prototype.dispose=function(){var e=t.audiocontext.currentTime,i=t.soundArray.indexOf(this);t.soundArray.splice(i,1),this.noise&&(this.noise.disconnect(),this.stop(e)),this.output&&this.output.disconnect(),this.panner&&this.panner.disconnect(),this.output=null,this.panner=null,this.buffer=null,this.noise=null}}(master);var audioin;audioin=function(){"use strict";var t=master;p5.AudioIn=function(){this.input=t.audiocontext.createGain(),this.output=t.audiocontext.createGain(),this.stream=null,this.mediaStream=null,this.currentSource=0,this.enabled=!1,this.amplitude=new p5.Amplitude,this.output.connect(this.amplitude.input),"undefined"==typeof window.MediaStreamTrack?window.alert("This browser does not support MediaStreamTrack"):"function"==typeof window.MediaStreamTrack.getSources&&window.MediaStreamTrack.getSources(this._gotSources),t.soundArray.push(this)},p5.AudioIn.prototype.start=function(e,i){var o=this;if(t.inputSources[o.currentSource]){var n=t.inputSources[o.currentSource].id,r={audio:{optional:[{sourceId:n}]}};window.navigator.getUserMedia(r,this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=t.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),e&&e(),o.amplitude.setInput(o.output)},this._onStreamError=function(t){i?i(t):console.error(t)})}else window.navigator.getUserMedia({audio:!0},this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=t.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),o.amplitude.setInput(o.output),e&&e()},this._onStreamError=function(t){i?i(t):console.error(t)})},p5.AudioIn.prototype.stop=function(){this.stream&&this.stream.stop()},p5.AudioIn.prototype.connect=function(e){this.output.connect(e?e.hasOwnProperty("input")?e.input:e.hasOwnProperty("analyser")?e.analyser:e:t.input)},p5.AudioIn.prototype.disconnect=function(t){this.output.disconnect(t),this.output.connect(this.amplitude.input)},p5.AudioIn.prototype.getLevel=function(t){return t&&(this.amplitude.smoothing=t),this.amplitude.getLevel()},p5.AudioIn.prototype._gotSources=function(t){for(var e=0;e0?t.inputSources:"This browser does not support MediaStreamTrack.getSources()"},p5.AudioIn.prototype.getSources=function(e){"function"==typeof window.MediaStreamTrack.getSources?window.MediaStreamTrack.getSources(function(i){for(var o=0,n=i.length;n>o;o++){var r=i[o];"audio"===r.kind&&t.inputSources.push(r)}e(t.inputSources)}):console.log("This browser does not support MediaStreamTrack.getSources()")},p5.AudioIn.prototype.setSource=function(e){var i=this;t.inputSources.length>0&&e=t&&(t=1),"number"==typeof t?(i.biquad.frequency.value=t,i.biquad.frequency.cancelScheduledValues(this.ac.currentTime+.01+o),i.biquad.frequency.exponentialRampToValueAtTime(t,this.ac.currentTime+.02+o)):t&&t.connect(this.biquad.frequency),i.biquad.frequency.value},p5.Filter.prototype.res=function(t,e){var i=this,o=e||0;return"number"==typeof t?(i.biquad.Q.value=t,i.biquad.Q.cancelScheduledValues(i.ac.currentTime+.01+o),i.biquad.Q.linearRampToValueAtTime(t,i.ac.currentTime+.02+o)):t&&freq.connect(this.biquad.Q),i.biquad.Q.value},p5.Filter.prototype.setType=function(t){this.biquad.type=t},p5.Filter.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Filter.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Filter.prototype.disconnect=function(){this.output.disconnect()},p5.Filter.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.input=void 0,this.output.disconnect(),this.output=void 0,this.biquad.disconnect(),this.biquad=void 0},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)}(master);var delay;delay=function(){"use strict";var t=master;p5.Delay=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this._split=this.ac.createChannelSplitter(2),this._merge=this.ac.createChannelMerger(2),this._leftGain=this.ac.createGain(),this._rightGain=this.ac.createGain(),this.leftDelay=this.ac.createDelay(),this.rightDelay=this.ac.createDelay(),this._leftFilter=new p5.Filter,this._rightFilter=new p5.Filter,this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._leftFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._rightFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._leftFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this._rightFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this.input.connect(this._split),this.leftDelay.connect(this._leftGain),this.rightDelay.connect(this._rightGain),this._leftGain.connect(this._leftFilter.input),this._rightGain.connect(this._rightFilter.input),this._merge.connect(this.output),this.output.connect(p5.soundOut.input),this._leftFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this._rightFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this.setType(0),this._maxDelay=this.leftDelay.delayTime.maxValue,t.soundArray.push(this)},p5.Delay.prototype.process=function(t,e,i,o){var n=i||0,r=e||0;if(n>=1)throw new Error("Feedback value will force a positive feedback loop.");if(r>=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.setValueAtTime(n,this.ac.currentTime),this._rightGain.gain.setValueAtTime(n,this.ac.currentTime),o&&(this._leftFilter.freq(o),this._rightFilter.freq(o))},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("number"!=typeof t)t.connect(this._leftGain.gain),t.connect(this._rightGain.gain);else{if(t>=1)throw new Error("Feedback value will force a positive feedback loop.");this._leftGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime),this._rightGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime)}},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._leftFilter.output.connect(this._merge,0,1),this._leftFilter.output.connect(this.leftDelay),this._leftFilter.output.connect(this.rightDelay)}},p5.Delay.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Delay.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Delay.prototype.disconnect=function(){this.output.disconnect()},p5.Delay.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.output.disconnect(),this._split.disconnect(),this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._merge.disconnect(),this._leftGain.disconnect(),this._rightGain.disconnect(),this.leftDelay.disconnect(),this.rightDelay.disconnect(),this.input=void 0,this.output=void 0,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}}(master,filter);var reverb;reverb=function(){"use strict";var t=master,e=errorHandler;p5.Reverb=function(){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse(),this.connect(),t.soundArray.push(this)},p5.Reverb.prototype.process=function(t,e,i,o){t.connect(this.input);var n=!1;e&&(this._seconds=e,n=!0),i&&(this._decay=i),o&&(this._reverse=o),n&&this._buildImpulse()},p5.Reverb.prototype.set=function(t,e,i){var o=!1;t&&(this._seconds=t,o=!0),e&&(this._decay=e),i&&(this._reverse=i),o&&this._buildImpulse()},p5.Reverb.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Reverb.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Reverb.prototype.disconnect=function(){this.output.disconnect()},p5.Reverb.prototype._buildImpulse=function(){var t,e,i=this.ac.sampleRate,o=i*this._seconds,n=this._decay,r=this.ac.createBuffer(2,o,i),s=r.getChannelData(0),a=r.getChannelData(1);for(e=0;o>e;e++)t=this.reverse?o-e:e,s[e]=(2*Math.random()-1)*Math.pow(1-t/o,n),a[e]=(2*Math.random()-1)*Math.pow(1-t/o,n);this.convolverNode.buffer=r},p5.Reverb.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.convolverNode&&(this.convolverNode.buffer=null,this.convolverNode=null),"undefined"!=typeof this.output&&(this.output.disconnect(),this.output=null),"undefined"!=typeof this.panner&&(this.panner.disconnect(),this.panner=null)},p5.Convolver=function(e,i,o){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),e?(this.impulses=[],this._loadBuffer(e,i,o)):(this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse()),this.connect(),t.soundArray.push(this)},p5.Convolver.prototype=Object.create(p5.Reverb.prototype),p5.prototype.registerPreloadMethod("createConvolver",p5.prototype),p5.prototype.createConvolver=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var o=new p5.Convolver(t,e,i);return o.impulses=[],o},p5.Convolver.prototype._loadBuffer=function(t,i,o){var t=p5.prototype._checkFileFormats(t),n=this,r=(new Error).stack,s=p5.prototype.getAudioContext(),a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer",a.onload=function(){if(200==a.status)s.decodeAudioData(a.response,function(e){var o={},r=t.split("/");o.name=r[r.length-1],o.audioBuffer=e,n.impulses.push(o),n.convolverNode.buffer=o.audioBuffer,i&&i(o)},function(){var t=new e("decodeAudioData",r,n.url),i="AudioContext error at decodeAudioData for "+n.url;o?(t.msg=i,o(t)):console.error(i+"\n The error stack trace includes: \n"+t.stack)});else{var u=new e("loadConvolver",r,n.url),c="Unable to load "+n.url+". The request status was: "+a.status+" ("+a.statusText+")";o?(u.message=c,o(u)):console.error(c+"\n The error stack trace includes: \n"+u.stack)}},a.onerror=function(){var t=new e("loadConvolver",r,n.url),i="There was no response from the server at "+n.url+". Check the url and internet connectivity.";o?(t.message=i,o(t)):console.error(i+"\n The error stack trace includes: \n"+t.stack)},a.send()},p5.Convolver.prototype.set=null,p5.Convolver.prototype.process=function(t){t.connect(this.input)},p5.Convolver.prototype.impulses=[],p5.Convolver.prototype.addImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this._loadBuffer(t,e,i)},p5.Convolver.prototype.resetImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this.impulses=[],this._loadBuffer(t,e,i)},p5.Convolver.prototype.toggleImpulse=function(t){if("number"==typeof t&&tthis.memory){var i=this.length-this.memory;this._timeline.splice(0,i)}return this},t.Timeline.prototype.removeEvent=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.getEvent=function(t){t=this.toSeconds(t);var e=this._search(t);return-1!==e?this._timeline[e]:null},t.Timeline.prototype.getEventAfter=function(t){t=this.toSeconds(t);var e=this._search(t);return e+1=0?this._timeline[e-1]:null},t.Timeline.prototype.cancel=function(t){if(this._timeline.length>1){t=this.toSeconds(t);var e=this._search(t);this._timeline=e>=0?this._timeline.slice(0,e):[]}else 1===this._timeline.length&&this._timeline[0].time>=t&&(this._timeline=[]);return this},t.Timeline.prototype.cancelBefore=function(t){if(this._timeline.length){t=this.toSeconds(t);var e=this._search(t);e>=0&&(this._timeline=this._timeline.slice(e+1))}return this},t.Timeline.prototype._search=function(t){for(var e=0,i=this._timeline.length,o=i;o>=e&&i>e;){var n=Math.floor(e+(o-e)/2),r=this._timeline[n];if(r.time===t){for(var s=n;st?o=n-1:r.time=o;o++)t(this._timeline[o]);if(this._iterating=!1,this._toRemove.length>0){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){t=this.toSeconds(t);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}(Tone_core_Tone);var Tone_signal_TimelineSignal;Tone_signal_TimelineSignal=function(t){"use strict";return t.TimelineSignal=function(){var e=this.optionsObject(arguments,["value","units"],t.Signal.defaults);t.Signal.apply(this,e),e.param=this._param,t.Param.call(this,e),this._events=new t.Timeline(10),this._initial=this._fromUnits(this._param.value)},t.extend(t.TimelineSignal,t.Param),t.TimelineSignal.Type={Linear:"linear",Exponential:"exponential",Target:"target",Set:"set"},Object.defineProperty(t.TimelineSignal.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(t){var e=this._fromUnits(t);this._initial=e,this._param.value=e}}),t.TimelineSignal.prototype.setValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.addEvent({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.addEvent({type:t.TimelineSignal.Type.Linear,value:e,time:i}),this._param.linearRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.exponentialRampToValueAtTime=function(e,i){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),i=this.toSeconds(i),this._events.addEvent({type:t.TimelineSignal.Type.Exponential,value:e,time:i}),this._param.exponentialRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.setTargetAtTime=function(e,i,o){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),o=Math.max(this._minOutput,o),i=this.toSeconds(i),this._events.addEvent({type:t.TimelineSignal.Type.Target,value:e,time:i,constant:o}),this._param.setTargetAtTime(e,i,o),this},t.TimelineSignal.prototype.cancelScheduledValues=function(t){return this._events.cancel(t),this._param.cancelScheduledValues(this.toSeconds(t)),this},t.TimelineSignal.prototype.setRampPoint=function(e){e=this.toSeconds(e);var i=this.getValueAtTime(e),o=this._searchAfter(e);return o&&(this.cancelScheduledValues(e),o.type===t.TimelineSignal.Type.Linear?this.linearRampToValueAtTime(i,e):o.type===t.TimelineSignal.Type.Exponential&&this.exponentialRampToValueAtTime(i,e)),this.setValueAtTime(i,e),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.getEvent(t)},t.TimelineSignal.prototype._searchAfter=function(t){return this._events.getEventAfter(t)},t.TimelineSignal.prototype.getValueAtTime=function(e){var i=this._searchAfter(e),o=this._searchBefore(e),n=this._initial;if(null===o)n=this._initial;else if(o.type===t.TimelineSignal.Type.Target){var r,s=this._events.getEventBefore(o.time);r=null===s?this._initial:s.value,n=this._exponentialApproach(o.time,r,o.value,o.constant,e)}else n=null===i?o.value:i.type===t.TimelineSignal.Type.Linear?this._linearInterpolate(o.time,o.value,i.time,i.value,e):i.type===t.TimelineSignal.Type.Exponential?this._exponentialInterpolate(o.time,o.value,i.time,i.value,e):o.value;return n},t.TimelineSignal.prototype.connect=t.SignalBase.prototype.connect,t.TimelineSignal.prototype._exponentialApproach=function(t,e,i,o,n){return i+(e-i)*Math.exp(-(n-t)/o)},t.TimelineSignal.prototype._linearInterpolate=function(t,e,i,o,n){return e+(o-e)*((n-t)/(i-t))},t.TimelineSignal.prototype._exponentialInterpolate=function(t,e,i,o,n){return e=Math.max(this._minOutput,e),e*Math.pow(o/e,(n-t)/(i-t))},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}(Tone_core_Tone,Tone_signal_Signal);var Tone_core_TimelineState;Tone_core_TimelineState=function(t){"use strict";return t.TimelineState=function(e){t.Timeline.call(this),this._initial=e},t.extend(t.TimelineState,t.Timeline),t.TimelineState.prototype.getStateAtTime=function(t){var e=this.getEvent(t);return null!==e?e.state:this._initial},t.TimelineState.prototype.setStateAtTime=function(t,e){this.addEvent({state:t,time:this.toSeconds(e)})},t.TimelineState}(Tone_core_Tone,Tone_core_Timeline);var Tone_core_Clock;Tone_core_Clock=function(t){"use strict";return t.Clock=function(){var e=this.optionsObject(arguments,["callback","frequency"],t.Clock.defaults);this.callback=e.callback,this._lookAhead="auto",this._computedLookAhead=1/60,this._threshold=.5,this._nextTick=-1,this._lastUpdate=0,this._loopID=-1,this.frequency=new t.TimelineSignal(e.frequency,t.Type.Frequency),this.ticks=0,this._state=new t.TimelineState(t.State.Stopped),this._boundLoop=this._loop.bind(this),this._readOnly("frequency"),this._loop()},t.extend(t.Clock),t.Clock.defaults={callback:t.noOp,frequency:1,lookAhead:"auto"},Object.defineProperty(t.Clock.prototype,"state",{get:function(){return this._state.getStateAtTime(this.now())}}),Object.defineProperty(t.Clock.prototype,"lookAhead",{get:function(){return this._lookAhead},set:function(t){this._lookAhead="auto"===t?"auto":this.toSeconds(t)}}),t.Clock.prototype.start=function(e,i){return e=this.toSeconds(e),this._state.getStateAtTime(e)!==t.State.Started&&this._state.addEvent({state:t.State.Started,time:e,offset:i}),this},t.Clock.prototype.stop=function(e){return e=this.toSeconds(e),this._state.getStateAtTime(e)!==t.State.Stopped&&this._state.setStateAtTime(t.State.Stopped,e),this},t.Clock.prototype.pause=function(e){return e=this.toSeconds(e),this._state.getStateAtTime(e)===t.State.Started&&this._state.setStateAtTime(t.State.Paused,e),this},t.Clock.prototype._loop=function(e){if(this._loopID=requestAnimationFrame(this._boundLoop),"auto"===this._lookAhead){if(!this.isUndef(e)){var i=(e-this._lastUpdate)/1e3;this._lastUpdate=e,ithis._nextTick;){o>this._nextTick+this._threshold&&(this._nextTick=o);var a=this._nextTick;this._nextTick+=1/this.frequency.getValueAtTime(this._nextTick),this.callback(a),this.ticks++}else s===t.State.Stopped&&(this._nextTick=-1,this.ticks=0)},t.Clock.prototype.getStateAtTime=function(t){return this._state.getStateAtTime(t)},t.Clock.prototype.dispose=function(){cancelAnimationFrame(this._loopID),t.TimelineState.prototype.dispose.call(this),this._writable("frequency"),this.frequency.dispose(),this.frequency=null,this._boundLoop=t.noOp,this._nextTick=1/0,this.callback=null,this._state.dispose(),this._state=null},t.Clock}(Tone_core_Tone,Tone_signal_TimelineSignal);var metro;metro=function(){"use strict";{var t=master,e=Tone_core_Clock;t.audiocontext}p5.Metro=function(){this.clock=new e({callback:this.ontick.bind(this)}),this.syncedParts=[],this.bpm=120,this._init(),this.tickCallback=function(){}};var i=0,o=0;p5.Metro.prototype.ontick=function(e){var n=e-i,r=e-t.audiocontext.currentTime;if(!(-.02>=n-o)){i=e;for(var s in this.syncedParts){var a=this.syncedParts[s];a.incrementStep(r);for(var u in a.phrases){var c=a.phrases[u],p=c.sequence,h=this.metroTicks%p.length;0!==p[h]&&(this.metroTicks=t.parts.length?(t.scoreStep=0,t.onended()):(t.scoreStep=0,t.parts[t.currentPart-1].stop(),t.parts[t.currentPart].start())}var e=master,i=120;p5.prototype.setBPM=function(t,o){i=t;for(var n in e.parts)e.parts[n].setBPM(i,o)},p5.Phrase=function(t,e,i){this.phraseStep=0,this.name=t,this.callback=e,this.sequence=i},p5.Part=function(t,o){this.length=t||0,this.partStep=0,this.phrases=[],this.looping=!1,this.isPlaying=!1,this.onended=function(){this.stop()},this.tatums=o||.0625,this.metro=new p5.Metro,this.metro._init(),this.metro.beatLength(this.tatums),this.metro.setBPM(i),e.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,i){var o;if(3===arguments.length)o=new p5.Phrase(t,e,i);else{if(!(arguments[0]instanceof p5.Phrase))throw"invalid input. addPhrase accepts name, callback, array or a p5.Phrase";o=arguments[0]}this.phrases.push(o),o.sequence.length>this.length&&(this.length=o.sequence.length)},p5.Part.prototype.removePhrase=function(t){for(var e in this.phrases)this.phrases[e].name===t&&this.phrases.split(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 i in this.phrases)this.phrases[i].name===t&&(this.phrases[i].sequence=e)},p5.Part.prototype.incrementStep=function(t){this.partStepr;)o[r++]=t[n],o[r++]=e[n],n++;return o}function e(t,e,i){for(var o=i.length,n=0;o>n;n++)t.setUint8(e+n,i.charCodeAt(n))}var i=master,o=i.audiocontext;p5.SoundRecorder=function(){this.input=o.createGain(),this.output=o.createGain(),this.recording=!1,this.bufferSize=1024,this._channels=2,this._clear(),this._jsNode=o.createScriptProcessor(this.bufferSize,this._channels,2),this._jsNode.onaudioprocess=this._audioprocess.bind(this),this._callback=function(){},this._jsNode.connect(p5.soundOut._silentNode),this.setInput(),i.soundArray.push(this)},p5.SoundRecorder.prototype.setInput=function(t){this.input.disconnect(),this.input=null,this.input=o.createGain(),this.input.connect(this._jsNode),this.input.connect(this.output),t?t.connect(this.input):p5.soundOut.output.connect(this.input)},p5.SoundRecorder.prototype.record=function(t,e,i){this.recording=!0,e&&(this.sampleLimit=Math.round(e*o.sampleRate)),t&&i?this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer),i()}:t&&(this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer)})},p5.SoundRecorder.prototype.stop=function(){this.recording=!1,this._callback(),this._clear()},p5.SoundRecorder.prototype._clear=function(){this._leftBuffers=[],this._rightBuffers=[],this.recordedSamples=0,this.sampleLimit=null},p5.SoundRecorder.prototype._audioprocess=function(t){if(this.recording!==!1&&this.recording===!0)if(this.sampleLimit&&this.recordedSamples>=this.sampleLimit)this.stop();else{var e=t.inputBuffer.getChannelData(0),i=t.inputBuffer.getChannelData(1);this._leftBuffers.push(new Float32Array(e)),this._rightBuffers.push(new Float32Array(i)),this.recordedSamples+=this.bufferSize}},p5.SoundRecorder.prototype._getBuffer=function(){var t=[];return t.push(this._mergeBuffers(this._leftBuffers)),t.push(this._mergeBuffers(this._rightBuffers)),t},p5.SoundRecorder.prototype._mergeBuffers=function(t){for(var e=new Float32Array(this.recordedSamples),i=0,o=t.length,n=0;o>n;n++){var r=t[n];e.set(r,i),i+=r.length}return e},p5.SoundRecorder.prototype.dispose=function(){this._clear();var t=i.soundArray.indexOf(this);i.soundArray.splice(t,1),this._callback=function(){},this.input&&this.input.disconnect(),this.input=null,this._jsNode=null},p5.prototype.saveSound=function(i,o){var n=i.buffer.getChannelData(0),r=i.buffer.getChannelData(1),s=t(n,r),a=new ArrayBuffer(44+2*s.length),u=new DataView(a);e(u,0,"RIFF"),u.setUint32(4,44+2*s.length,!0),e(u,8,"WAVE"),e(u,12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,2,!0),u.setUint32(24,44100,!0),u.setUint32(28,176400,!0),u.setUint16(32,4,!0),u.setUint16(34,16,!0),e(u,36,"data"),u.setUint32(40,2*s.length,!0);for(var c=s.length,p=44,h=1,l=0;c>l;l++)u.setInt16(p,32767*s[l]*h,!0),p+=2;p5.prototype.writeFile([u],o,"wav")}}(sndcore,master);var peakdetect;peakdetect=function(){"use strict";p5.PeakDetect=function(t,e,i,o){this.framesPerPeak=o||20,this.framesSinceLastPeak=0,this.decayRate=.95,this.threshold=i||.35,this.cutoff=0,this.cutoffMult=1.5,this.energy=0,this.penergy=0,this.currentValue=0,this.isDetected=!1,this.f1=t||40,this.f2=e||2e4,this._onPeak=function(){}},p5.PeakDetect.prototype.update=function(t){var e=this.energy=t.getEnergy(this.f1,this.f2)/255;e>this.cutoff&&e>this.threshold&&e-this.penergy>0?(this._onPeak(),this.isDetected=!0,this.cutoff=e*this.cutoffMult,this.framesSinceLastPeak=0):(this.isDetected=!1,this.framesSinceLastPeak<=this.framesPerPeak?this.framesSinceLastPeak++:(this.cutoff*=this.decayRate,this.cutoff=Math.max(this.cutoff,this.threshold))),this.currentValue=e,this.penergy=e},p5.PeakDetect.prototype.onPeak=function(t,e){var i=this;i._onPeak=function(){t(i.energy,e)}}}(master);var gain;gain=function(){"use strict";var t=master;p5.Gain=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.output),t.soundArray.push(this)},p5.Gain.prototype.setInput=function(t){t.connect(this.input)},p5.Gain.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Gain.prototype.disconnect=function(){this.output.disconnect()},p5.Gain.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o),this.output.gain.linearRampToValueAtTime(e,n+o+i)},p5.Gain.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.output.disconnect(),this.input.disconnect(),this.output=void 0,this.input=void 0}}(master,sndcore);var src_app;src_app=function(){"use strict";var t=sndcore;return t}(sndcore,master,helpers,errorHandler,panner,soundfile,amplitude,fft,signal,oscillator,env,pulse,noise,audioin,filter,delay,reverb,metro,looper,soundRecorder,peakdetect,gain)}); \ No newline at end of file +r[e]=i,e=r}for(var s in e){i=e[s];var a=this;if(-1!==s.indexOf(".")){for(var u=s.split("."),c=0;c1)for(var t=arguments[0],e=1;e1)for(var e=1;e0)for(var t=this,e=0;e0)for(var t=0;te;e++){var o=e/i*2-1;this._curve[e]=t(o,e)}return this._shaper.curve=this._curve,this},Object.defineProperty(t.WaveShaper.prototype,"curve",{get:function(){return this._shaper.curve},set:function(t){this._curve=new Float32Array(t),this._shaper.curve=this._curve}}),Object.defineProperty(t.WaveShaper.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){if(-1===["none","2x","4x"].indexOf(t))throw new Error("invalid oversampling: "+t);this._shaper.oversample=t}}),t.WaveShaper.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null,this},t.WaveShaper}(Tone_core_Tone);var Tone_core_Type;Tone_core_Type=function(Tone){"use strict";function getTransportBpm(){return Tone.Transport&&Tone.Transport.bpm?Tone.Transport.bpm.value:120}function getTransportTimeSignature(){return Tone.Transport&&Tone.Transport.timeSignature?Tone.Transport.timeSignature:4}function toNotationHelper(t,e,i,o){for(var n=this.toSeconds(t),r=this.notationToSeconds(o[o.length-1],e,i),s="",a=0;a1-c%1&&(c+=p),c=Math.floor(c),c>0){if(s+=1===c?o[a]:c.toString()+"*"+o[a],n-=c*u,r>n)break;s+=" + "}}return""===s&&(s="0"),s}Tone.Type={Default:"number",Time:"time",Frequency:"frequency",NormalRange:"normalRange",AudioRange:"audioRange",Decibels:"db",Interval:"interval",BPM:"bpm",Positive:"positive",Cents:"cents",Degrees:"degrees",MIDI:"midi",TransportTime:"transportTime",Ticks:"tick",Note:"note",Milliseconds:"milliseconds",Notation:"notation"},Tone.prototype.isNowRelative=function(){var t=new RegExp(/^\s*\+(.)+/i);return function(e){return t.test(e)}}(),Tone.prototype.isTicks=function(){var t=new RegExp(/^\d+i$/i);return function(e){return t.test(e)}}(),Tone.prototype.isNotation=function(){var t=new RegExp(/^[0-9]+[mnt]$/i);return function(e){return t.test(e)}}(),Tone.prototype.isTransportTime=function(){var t=new RegExp(/^(\d+(\.\d+)?\:){1,2}(\d+(\.\d+)?)?$/i);return function(e){return t.test(e)}}(),Tone.prototype.isNote=function(){var t=new RegExp(/^[a-g]{1}(b|#|x|bb)?-?[0-9]+$/i);return function(e){return t.test(e)}}(),Tone.prototype.isFrequency=function(){var t=new RegExp(/^\d*\.?\d+hz$/i);return function(e){return t.test(e)}}(),Tone.prototype.notationToSeconds=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=60/e;"1n"===t&&(t="1m");var n=parseInt(t,10),r=0;0===n&&(r=0);var s=t.slice(-1);return r="t"===s?4/n*2/3:"n"===s?4/n:"m"===s?n*i:0,o*r},Tone.prototype.transportTimeToSeconds=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=0,n=0,r=0,s=t.split(":");2===s.length?(o=parseFloat(s[0]),n=parseFloat(s[1])):1===s.length?n=parseFloat(s[0]):3===s.length&&(o=parseFloat(s[0]),n=parseFloat(s[1]),r=parseFloat(s[2]));var a=o*i+n+r/4;return a*(60/e)},Tone.prototype.ticksToSeconds=function(t,e){if(this.isUndef(Tone.Transport))return 0;t=parseFloat(t),e=this.defaultArg(e,getTransportBpm());var i=60/e/Tone.Transport.PPQ;return i*t},Tone.prototype.frequencyToSeconds=function(t){return 1/parseFloat(t)},Tone.prototype.samplesToSeconds=function(t){return t/this.context.sampleRate},Tone.prototype.secondsToSamples=function(t){return t*this.context.sampleRate},Tone.prototype.secondsToTransportTime=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=60/e,n=t/o,r=Math.floor(n/i),s=n%1*4;n=Math.floor(n)%i;var a=[r,n,s];return a.join(":")},Tone.prototype.secondsToFrequency=function(t){return 1/t},Tone.prototype.toTransportTime=function(t,e,i){var o=this.toSeconds(t);return this.secondsToTransportTime(o,e,i)},Tone.prototype.toFrequency=function(t,e){return this.isFrequency(t)?parseFloat(t):this.isNotation(t)||this.isTransportTime(t)?this.secondsToFrequency(this.toSeconds(t,e)):this.isNote(t)?this.noteToFrequency(t):t},Tone.prototype.toTicks=function(t){if(this.isUndef(Tone.Transport))return 0;var e=Tone.Transport.bpm.value,i=0;if(this.isNowRelative(t))t=t.replace("+",""),i=Tone.Transport.ticks;else if(this.isUndef(t))return Tone.Transport.ticks;var o=this.toSeconds(t),n=60/e,r=o/n,s=r*Tone.Transport.PPQ;return Math.round(s+i)},Tone.prototype.toSamples=function(t){var e=this.toSeconds(t);return Math.round(e*this.context.sampleRate)},Tone.prototype.toSeconds=function(time,now){if(now=this.defaultArg(now,this.now()),this.isNumber(time))return time;if(this.isString(time)){var plusTime=0;this.isNowRelative(time)&&(time=time.replace("+",""),plusTime=now);var betweenParens=time.match(/\(([^)(]+)\)/g);if(betweenParens)for(var j=0;j0&&(toQuantize="+"+toQuantize,plusTime=0);var subdivision=quantizationSplit[1].trim();time=Tone.Transport.quantize(toQuantize,subdivision)}else{var components=time.split(/[\(\)\-\+\/\*]/);if(components.length>1){for(var originalTime=time,i=0;io&&(i+=-12*o);var n=scaleIndexToNote[i%12];return n+o.toString()},Tone.prototype.intervalToFrequencyRatio=function(t){return Math.pow(2,t/12)},Tone.prototype.midiToNote=function(t){var e=Math.floor(t/12)-1,i=t%12;return scaleIndexToNote[i]+e},Tone.prototype.noteToMidi=function(t){var e=t.split(/(\d+)/);if(3===e.length){var i=noteToScaleIndex[e[0].toLowerCase()],o=e[1];return i+12*(parseInt(o,10)+1)}return 0},Tone.prototype.midiToFrequency=function(t){return Tone.A4*Math.pow(2,(t-69)/12)},Tone}(Tone_core_Tone);var Tone_core_Param;Tone_core_Param=function(t){"use strict";return t.Param=function(){var e=this.optionsObject(arguments,["param","units","convert"],t.Param.defaults);this._param=this.input=e.param,this.units=e.units,this.convert=e.convert,this.overridden=!1,this.isUndef(e.value)||(this.value=e.value)},t.extend(t.Param),t.Param.defaults={units:t.Type.Default,convert:!0,param:void 0},Object.defineProperty(t.Param.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(t){var e=this._fromUnits(t);this._param.value=e}}),t.Param.prototype._fromUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Time:return this.toSeconds(e);case t.Type.Frequency:return this.toFrequency(e);case t.Type.Decibels:return this.dbToGain(e);case t.Type.NormalRange:return Math.min(Math.max(e,0),1);case t.Type.AudioRange:return Math.min(Math.max(e,-1),1);case t.Type.Positive:return Math.max(e,0);default:return e}},t.Param.prototype._toUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Decibels:return this.gainToDb(e);default:return e}},t.Param.prototype._minOutput=1e-5,t.Param.prototype.setValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.setValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.setRampPoint=function(t){t=this.defaultArg(t,this.now());var e=this._param.value;return this._param.setValueAtTime(e,t),this},t.Param.prototype.linearRampToValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.linearRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValueAtTime=function(t,e){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),this._param.exponentialRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValue=function(t,e){var i=this.now(),o=this.value;return this.setValueAtTime(Math.max(o,this._minOutput),i),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.linearRampToValue=function(t,e){var i=this.now();return this.setRampPoint(i),this.linearRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.setTargetAtTime=function(t,e,i){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),i=Math.max(this._minOutput,i),this._param.setTargetAtTime(t,this.toSeconds(e),i),this},t.Param.prototype.setValueCurveAtTime=function(t,e,i){for(var o=0;o0?this.oscillator.frequency.exponentialRampToValueAtTime(e,o+i+n):this.oscillator.frequency.linearRampToValueAtTime(e,o+i+n),this.phaseAmount&&this.phase(this.phaseAmount)}},p5.Oscillator.prototype.getFreq=function(){return this.oscillator.frequency.value},p5.Oscillator.prototype.setType=function(t){this.oscillator.type=t},p5.Oscillator.prototype.getType=function(){return this.oscillator.type},p5.Oscillator.prototype.connect=function(e){e?e.hasOwnProperty("input")?(this.panner.connect(e.input),this.connection=e.input):(this.panner.connect(e),this.connection=e):this.panner.connect(t.input)},p5.Oscillator.prototype.disconnect=function(){this.output.disconnect(),this.panner.disconnect(),this.output.connect(this.panner),this.oscMods=[]},p5.Oscillator.prototype.pan=function(t,e){this.panPosition=t,this.panner.pan(t,e)},p5.Oscillator.prototype.getPan=function(){return this.panPosition},p5.Oscillator.prototype.dispose=function(){var e=t.soundArray.indexOf(this);if(t.soundArray.splice(e,1),this.oscillator){var i=t.audiocontext.currentTime;this.stop(i),this.disconnect(),this.oscillator.disconnect(),this.panner=null,this.oscillator=null}this.osc2&&this.osc2.dispose()},p5.Oscillator.prototype.phase=function(e){var i=p5.prototype.map(e,0,1,0,1/this.f),o=t.audiocontext.currentTime;this.phaseAmount=e,this.dNode||(this.dNode=t.audiocontext.createDelay(),this.oscillator.disconnect(),this.oscillator.connect(this.dNode),this.dNode.connect(this.output)),this.dNode.delayTime.setValueAtTime(i,o)};var n=function(t,e,i,o,n){var r=t.oscillator;for(var s in t.mathOps)t.mathOps[s]instanceof n&&(r.disconnect(),t.mathOps[s].dispose(),i=s,i0&&(r=t.mathOps[s-1]),r.disconnect(),r.connect(e),e.connect(o),t.mathOps[i]=e,t};p5.Oscillator.prototype.add=function(t){var i=new e(t),o=this.mathOps.length-1,r=this.output;return n(this,i,o,r,e)},p5.Oscillator.prototype.mult=function(t){var e=new i(t),o=this.mathOps.length-1,r=this.output;return n(this,e,o,r,i)},p5.Oscillator.prototype.scale=function(t,e,i,r){var s,a;4===arguments.length?(s=p5.prototype.map(i,t,e,0,1)-.5,a=p5.prototype.map(r,t,e,0,1)-.5):(s=arguments[0],a=arguments[1]);var u=new o(s,a),c=this.mathOps.length-1,p=this.output;return n(this,u,c,p,o)},p5.SinOsc=function(t){p5.Oscillator.call(this,t,"sine")},p5.SinOsc.prototype=Object.create(p5.Oscillator.prototype),p5.TriOsc=function(t){p5.Oscillator.call(this,t,"triangle")},p5.TriOsc.prototype=Object.create(p5.Oscillator.prototype),p5.SawOsc=function(t){p5.Oscillator.call(this,t,"sawtooth")},p5.SawOsc.prototype=Object.create(p5.Oscillator.prototype),p5.SqrOsc=function(t){p5.Oscillator.call(this,t,"square")},p5.SqrOsc.prototype=Object.create(p5.Oscillator.prototype)}(master,Tone_signal_Signal,Tone_signal_Add,Tone_signal_Multiply,Tone_signal_Scale);var Tone_core_Timeline;Tone_core_Timeline=function(t){"use strict";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.addEvent=function(t){if(this.isUndef(t.time))throw new Error("events must have a time attribute");if(t.time=this.toSeconds(t.time),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.removeEvent=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.getEvent=function(t){t=this.toSeconds(t);var e=this._search(t);return-1!==e?this._timeline[e]:null},t.Timeline.prototype.getEventAfter=function(t){t=this.toSeconds(t);var e=this._search(t);return e+1=0?this._timeline[e-1]:null},t.Timeline.prototype.cancel=function(t){if(this._timeline.length>1){t=this.toSeconds(t);var e=this._search(t);this._timeline=e>=0?this._timeline.slice(0,e):[]}else 1===this._timeline.length&&this._timeline[0].time>=t&&(this._timeline=[]);return this},t.Timeline.prototype.cancelBefore=function(t){if(this._timeline.length){t=this.toSeconds(t);var e=this._search(t);e>=0&&(this._timeline=this._timeline.slice(e+1))}return this},t.Timeline.prototype._search=function(t){for(var e=0,i=this._timeline.length,o=i;o>=e&&i>e;){var n=Math.floor(e+(o-e)/2),r=this._timeline[n];if(r.time===t){for(var s=n;st?o=n-1:r.time=o;o++)t(this._timeline[o]);if(this._iterating=!1,this._toRemove.length>0){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){t=this.toSeconds(t);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}(Tone_core_Tone);var Tone_signal_TimelineSignal;Tone_signal_TimelineSignal=function(t){"use strict";return t.TimelineSignal=function(){var e=this.optionsObject(arguments,["value","units"],t.Signal.defaults);t.Signal.apply(this,e),e.param=this._param,t.Param.call(this,e),this._events=new t.Timeline(10),this._initial=this._fromUnits(this._param.value)},t.extend(t.TimelineSignal,t.Param),t.TimelineSignal.Type={Linear:"linear",Exponential:"exponential",Target:"target",Set:"set"},Object.defineProperty(t.TimelineSignal.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(t){var e=this._fromUnits(t);this._initial=e,this._param.value=e}}),t.TimelineSignal.prototype.setValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.addEvent({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.addEvent({type:t.TimelineSignal.Type.Linear,value:e,time:i}),this._param.linearRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.exponentialRampToValueAtTime=function(e,i){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),i=this.toSeconds(i),this._events.addEvent({type:t.TimelineSignal.Type.Exponential,value:e,time:i}),this._param.exponentialRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.setTargetAtTime=function(e,i,o){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),o=Math.max(this._minOutput,o),i=this.toSeconds(i),this._events.addEvent({type:t.TimelineSignal.Type.Target,value:e,time:i,constant:o}),this._param.setTargetAtTime(e,i,o),this},t.TimelineSignal.prototype.cancelScheduledValues=function(t){return this._events.cancel(t),this._param.cancelScheduledValues(this.toSeconds(t)),this},t.TimelineSignal.prototype.setRampPoint=function(e){e=this.toSeconds(e);var i=this.getValueAtTime(e),o=this._searchAfter(e); +return o&&(this.cancelScheduledValues(e),o.type===t.TimelineSignal.Type.Linear?this.linearRampToValueAtTime(i,e):o.type===t.TimelineSignal.Type.Exponential&&this.exponentialRampToValueAtTime(i,e)),this.setValueAtTime(i,e),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.getEvent(t)},t.TimelineSignal.prototype._searchAfter=function(t){return this._events.getEventAfter(t)},t.TimelineSignal.prototype.getValueAtTime=function(e){var i=this._searchAfter(e),o=this._searchBefore(e),n=this._initial;if(null===o)n=this._initial;else if(o.type===t.TimelineSignal.Type.Target){var r,s=this._events.getEventBefore(o.time);r=null===s?this._initial:s.value,n=this._exponentialApproach(o.time,r,o.value,o.constant,e)}else n=null===i?o.value:i.type===t.TimelineSignal.Type.Linear?this._linearInterpolate(o.time,o.value,i.time,i.value,e):i.type===t.TimelineSignal.Type.Exponential?this._exponentialInterpolate(o.time,o.value,i.time,i.value,e):o.value;return n},t.TimelineSignal.prototype.connect=t.SignalBase.prototype.connect,t.TimelineSignal.prototype._exponentialApproach=function(t,e,i,o,n){return i+(e-i)*Math.exp(-(n-t)/o)},t.TimelineSignal.prototype._linearInterpolate=function(t,e,i,o,n){return e+(o-e)*((n-t)/(i-t))},t.TimelineSignal.prototype._exponentialInterpolate=function(t,e,i,o,n){return e=Math.max(this._minOutput,e),e*Math.pow(o/e,(n-t)/(i-t))},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}(Tone_core_Tone,Tone_signal_Signal);var env;env=function(){"use strict";var t=master,e=Tone_signal_Add,i=Tone_signal_Multiply,o=Tone_signal_Scale,n=Tone_signal_TimelineSignal,r=Tone_core_Tone;r.setContext(t.audiocontext),p5.Env=function(e,i,o,r,s,a,u,c){this.aTime=e,this.aLevel=i,this.dTime=o||0,this.dLevel=r||0,this.sTime=s||0,this.sLevel=a||0,this.rTime=u||0,this.rLevel=c||0,this.output=t.audiocontext.createGain(),this.control=new n,this.control.connect(this.output),this.connection=null,this.mathOps=[this.control],this.sourceToClear=null,this.wasTriggered=!1,t.soundArray.push(this)},p5.Env.prototype.set=function(t,e,i,o,n,r,s,a){this.aTime=t,this.aLevel=e,this.dTime=i||0,this.dLevel=o||0,this.sTime=n||0,this.sLevel=r||0,this.rTime=s||0,this.rLevel=a||0},p5.Env.prototype.setInput=function(){for(var t=0;tn;n++)o[n]=1;var r=t.createBufferSource();return r.buffer=i,r.loop=!0,r}var e=master;p5.Pulse=function(i,o){p5.Oscillator.call(this,i,"sawtooth"),this.w=o||0,this.osc2=new p5.SawOsc(i),this.dNode=e.audiocontext.createDelay(),this.dcOffset=t(),this.dcGain=e.audiocontext.createGain(),this.dcOffset.connect(this.dcGain),this.dcGain.connect(this.output),this.f=i||440;var n=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=n,this.dcGain.gain.value=1.7*(.5-this.w),this.osc2.disconnect(),this.osc2.panner.disconnect(),this.osc2.amp(-1),this.osc2.output.connect(this.dNode),this.dNode.connect(this.output),this.output.gain.value=1,this.output.connect(this.panner)},p5.Pulse.prototype=Object.create(p5.Oscillator.prototype),p5.Pulse.prototype.width=function(t){if("number"==typeof t){if(1>=t&&t>=0){this.w=t;var e=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=e}this.dcGain.gain.value=1.7*(.5-this.w)}else{t.connect(this.dNode.delayTime);var i=new p5.SignalAdd(-.5);i.setInput(t),i=i.mult(-1),i=i.mult(1.7),i.connect(this.dcGain.gain)}},p5.Pulse.prototype.start=function(i,o){var n=e.audiocontext.currentTime,r=o||0;if(!this.started){var s=i||this.f,a=this.oscillator.type;this.oscillator=e.audiocontext.createOscillator(),this.oscillator.frequency.setValueAtTime(s,n),this.oscillator.type=a,this.oscillator.connect(this.output),this.oscillator.start(r+n),this.osc2.oscillator=e.audiocontext.createOscillator(),this.osc2.oscillator.frequency.setValueAtTime(s,r+n),this.osc2.oscillator.type=a,this.osc2.oscillator.connect(this.osc2.output),this.osc2.start(r+n),this.freqNode=[this.oscillator.frequency,this.osc2.oscillator.frequency],this.dcOffset=t(),this.dcOffset.connect(this.dcGain),this.dcOffset.start(r+n),void 0!==this.mods&&void 0!==this.mods.frequency&&(this.mods.frequency.connect(this.freqNode[0]),this.mods.frequency.connect(this.freqNode[1])),this.started=!0,this.osc2.started=!0}},p5.Pulse.prototype.stop=function(t){if(this.started){var i=t||0,o=e.audiocontext.currentTime;this.oscillator.stop(i+o),this.osc2.oscillator.stop(i+o),this.dcOffset.stop(i+o),this.started=!1,this.osc2.started=!1}},p5.Pulse.prototype.freq=function(t,i,o){if("number"==typeof t){this.f=t;var n=e.audiocontext.currentTime,i=i||0,o=o||0,r=this.oscillator.frequency.value;this.oscillator.frequency.cancelScheduledValues(n),this.oscillator.frequency.setValueAtTime(r,n+o),this.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n),this.osc2.oscillator.frequency.cancelScheduledValues(n),this.osc2.oscillator.frequency.setValueAtTime(r,n+o),this.osc2.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n),this.freqMod&&(this.freqMod.output.disconnect(),this.freqMod=null)}else t.output&&(t.output.disconnect(),t.output.connect(this.oscillator.frequency),t.output.connect(this.osc2.oscillator.frequency),this.freqMod=t)}}(master,oscillator);var noise;noise=function(){"use strict";var t=master;p5.Noise=function(){p5.Oscillator.call(this),delete this.f,delete this.freq,delete this.oscillator,this.buffer=e},p5.Noise.prototype=Object.create(p5.Oscillator.prototype);var e=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),o=i.getChannelData(0),n=0;e>n;n++)o[n]=2*Math.random()-1;return i.type="white",i}(),i=function(){var e,i,o,n,r,s,a,u=2*t.audiocontext.sampleRate,c=t.audiocontext.createBuffer(1,u,t.audiocontext.sampleRate),p=c.getChannelData(0);e=i=o=n=r=s=a=0;for(var h=0;u>h;h++){var l=2*Math.random()-1;e=.99886*e+.0555179*l,i=.99332*i+.0750759*l,o=.969*o+.153852*l,n=.8665*n+.3104856*l,r=.55*r+.5329522*l,s=-.7616*s-.016898*l,p[h]=e+i+o+n+r+s+a+.5362*l,p[h]*=.11,a=.115926*l}return c.type="pink",c}(),o=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),o=i.getChannelData(0),n=0,r=0;e>r;r++){var s=2*Math.random()-1;o[r]=(n+.02*s)/1.02,n=o[r],o[r]*=3.5}return i.type="brown",i}();p5.Noise.prototype.setType=function(n){switch(n){case"white":this.buffer=e;break;case"pink":this.buffer=i;break;case"brown":this.buffer=o;break;default:this.buffer=e}if(this.started){var r=t.audiocontext.currentTime;this.stop(r),this.start(r+.01)}},p5.Noise.prototype.getType=function(){return this.buffer.type},p5.Noise.prototype.start=function(){this.started&&this.stop(),this.noise=t.audiocontext.createBufferSource(),this.noise.buffer=this.buffer,this.noise.loop=!0,this.noise.connect(this.output);var e=t.audiocontext.currentTime;this.noise.start(e),this.started=!0},p5.Noise.prototype.stop=function(){var e=t.audiocontext.currentTime;this.noise&&(this.noise.stop(e),this.started=!1)},p5.Noise.prototype.dispose=function(){var e=t.audiocontext.currentTime,i=t.soundArray.indexOf(this);t.soundArray.splice(i,1),this.noise&&(this.noise.disconnect(),this.stop(e)),this.output&&this.output.disconnect(),this.panner&&this.panner.disconnect(),this.output=null,this.panner=null,this.buffer=null,this.noise=null}}(master);var audioin;audioin=function(){"use strict";var t=master;p5.AudioIn=function(){this.input=t.audiocontext.createGain(),this.output=t.audiocontext.createGain(),this.stream=null,this.mediaStream=null,this.currentSource=0,this.enabled=!1,this.amplitude=new p5.Amplitude,this.output.connect(this.amplitude.input),"undefined"==typeof window.MediaStreamTrack?window.alert("This browser does not support MediaStreamTrack"):"function"==typeof window.MediaStreamTrack.getSources&&window.MediaStreamTrack.getSources(this._gotSources),t.soundArray.push(this)},p5.AudioIn.prototype.start=function(e,i){var o=this;if(t.inputSources[o.currentSource]){var n=t.inputSources[o.currentSource].id,r={audio:{optional:[{sourceId:n}]}};window.navigator.getUserMedia(r,this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=t.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),e&&e(),o.amplitude.setInput(o.output)},this._onStreamError=function(t){i?i(t):console.error(t)})}else window.navigator.getUserMedia({audio:!0},this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=t.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),o.amplitude.setInput(o.output),e&&e()},this._onStreamError=function(t){i?i(t):console.error(t)})},p5.AudioIn.prototype.stop=function(){this.stream&&this.stream.stop()},p5.AudioIn.prototype.connect=function(e){this.output.connect(e?e.hasOwnProperty("input")?e.input:e.hasOwnProperty("analyser")?e.analyser:e:t.input)},p5.AudioIn.prototype.disconnect=function(t){this.output.disconnect(t),this.output.connect(this.amplitude.input)},p5.AudioIn.prototype.getLevel=function(t){return t&&(this.amplitude.smoothing=t),this.amplitude.getLevel()},p5.AudioIn.prototype._gotSources=function(t){for(var e=0;e0?t.inputSources:"This browser does not support MediaStreamTrack.getSources()"},p5.AudioIn.prototype.getSources=function(e){"function"==typeof window.MediaStreamTrack.getSources?window.MediaStreamTrack.getSources(function(i){for(var o=0,n=i.length;n>o;o++){var r=i[o];"audio"===r.kind&&t.inputSources.push(r)}e(t.inputSources)}):console.log("This browser does not support MediaStreamTrack.getSources()")},p5.AudioIn.prototype.setSource=function(e){var i=this;t.inputSources.length>0&&e=t&&(t=1),"number"==typeof t?(i.biquad.frequency.value=t,i.biquad.frequency.cancelScheduledValues(this.ac.currentTime+.01+o),i.biquad.frequency.exponentialRampToValueAtTime(t,this.ac.currentTime+.02+o)):t&&t.connect(this.biquad.frequency),i.biquad.frequency.value},p5.Filter.prototype.res=function(t,e){var i=this,o=e||0;return"number"==typeof t?(i.biquad.Q.value=t,i.biquad.Q.cancelScheduledValues(i.ac.currentTime+.01+o),i.biquad.Q.linearRampToValueAtTime(t,i.ac.currentTime+.02+o)):t&&freq.connect(this.biquad.Q),i.biquad.Q.value},p5.Filter.prototype.setType=function(t){this.biquad.type=t},p5.Filter.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Filter.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Filter.prototype.disconnect=function(){this.output.disconnect()},p5.Filter.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.input=void 0,this.output.disconnect(),this.output=void 0,this.biquad.disconnect(),this.biquad=void 0},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)}(master);var delay;delay=function(){"use strict";var t=master;p5.Delay=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this._split=this.ac.createChannelSplitter(2),this._merge=this.ac.createChannelMerger(2),this._leftGain=this.ac.createGain(),this._rightGain=this.ac.createGain(),this.leftDelay=this.ac.createDelay(),this.rightDelay=this.ac.createDelay(),this._leftFilter=new p5.Filter,this._rightFilter=new p5.Filter,this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._leftFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._rightFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._leftFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this._rightFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this.input.connect(this._split),this.leftDelay.connect(this._leftGain),this.rightDelay.connect(this._rightGain),this._leftGain.connect(this._leftFilter.input),this._rightGain.connect(this._rightFilter.input),this._merge.connect(this.output),this.output.connect(p5.soundOut.input),this._leftFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this._rightFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this.setType(0),this._maxDelay=this.leftDelay.delayTime.maxValue,t.soundArray.push(this)},p5.Delay.prototype.process=function(t,e,i,o){var n=i||0,r=e||0;if(n>=1)throw new Error("Feedback value will force a positive feedback loop.");if(r>=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.setValueAtTime(n,this.ac.currentTime),this._rightGain.gain.setValueAtTime(n,this.ac.currentTime),o&&(this._leftFilter.freq(o),this._rightFilter.freq(o))},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("number"!=typeof t)t.connect(this._leftGain.gain),t.connect(this._rightGain.gain);else{if(t>=1)throw new Error("Feedback value will force a positive feedback loop.");this._leftGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime),this._rightGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime)}},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._leftFilter.output.connect(this._merge,0,1),this._leftFilter.output.connect(this.leftDelay),this._leftFilter.output.connect(this.rightDelay)}},p5.Delay.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Delay.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Delay.prototype.disconnect=function(){this.output.disconnect()},p5.Delay.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.output.disconnect(),this._split.disconnect(),this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._merge.disconnect(),this._leftGain.disconnect(),this._rightGain.disconnect(),this.leftDelay.disconnect(),this.rightDelay.disconnect(),this.input=void 0,this.output=void 0,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}}(master,filter);var reverb;reverb=function(){"use strict";var t=master,e=errorHandler;p5.Reverb=function(){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse(),this.connect(),t.soundArray.push(this)},p5.Reverb.prototype.process=function(t,e,i,o){t.connect(this.input);var n=!1;e&&(this._seconds=e,n=!0),i&&(this._decay=i),o&&(this._reverse=o),n&&this._buildImpulse()},p5.Reverb.prototype.set=function(t,e,i){var o=!1;t&&(this._seconds=t,o=!0),e&&(this._decay=e),i&&(this._reverse=i),o&&this._buildImpulse()},p5.Reverb.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Reverb.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Reverb.prototype.disconnect=function(){this.output.disconnect()},p5.Reverb.prototype._buildImpulse=function(){var t,e,i=this.ac.sampleRate,o=i*this._seconds,n=this._decay,r=this.ac.createBuffer(2,o,i),s=r.getChannelData(0),a=r.getChannelData(1);for(e=0;o>e;e++)t=this.reverse?o-e:e,s[e]=(2*Math.random()-1)*Math.pow(1-t/o,n),a[e]=(2*Math.random()-1)*Math.pow(1-t/o,n);this.convolverNode.buffer=r},p5.Reverb.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.convolverNode&&(this.convolverNode.buffer=null,this.convolverNode=null),"undefined"!=typeof this.output&&(this.output.disconnect(),this.output=null),"undefined"!=typeof this.panner&&(this.panner.disconnect(),this.panner=null)},p5.Convolver=function(e,i,o){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),e?(this.impulses=[],this._loadBuffer(e,i,o)):(this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse()),this.connect(),t.soundArray.push(this)},p5.Convolver.prototype=Object.create(p5.Reverb.prototype),p5.prototype.registerPreloadMethod("createConvolver",p5.prototype),p5.prototype.createConvolver=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var o=new p5.Convolver(t,e,i);return o.impulses=[],o},p5.Convolver.prototype._loadBuffer=function(t,i,o){var t=p5.prototype._checkFileFormats(t),n=this,r=(new Error).stack,s=p5.prototype.getAudioContext(),a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer",a.onload=function(){if(200==a.status)s.decodeAudioData(a.response,function(e){var o={},r=t.split("/");o.name=r[r.length-1],o.audioBuffer=e,n.impulses.push(o),n.convolverNode.buffer=o.audioBuffer,i&&i(o)},function(){var t=new e("decodeAudioData",r,n.url),i="AudioContext error at decodeAudioData for "+n.url;o?(t.msg=i,o(t)):console.error(i+"\n The error stack trace includes: \n"+t.stack)});else{var u=new e("loadConvolver",r,n.url),c="Unable to load "+n.url+". The request status was: "+a.status+" ("+a.statusText+")";o?(u.message=c,o(u)):console.error(c+"\n The error stack trace includes: \n"+u.stack)}},a.onerror=function(){var t=new e("loadConvolver",r,n.url),i="There was no response from the server at "+n.url+". Check the url and internet connectivity.";o?(t.message=i,o(t)):console.error(i+"\n The error stack trace includes: \n"+t.stack)},a.send()},p5.Convolver.prototype.set=null,p5.Convolver.prototype.process=function(t){t.connect(this.input)},p5.Convolver.prototype.impulses=[],p5.Convolver.prototype.addImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this._loadBuffer(t,e,i)},p5.Convolver.prototype.resetImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this.impulses=[],this._loadBuffer(t,e,i)},p5.Convolver.prototype.toggleImpulse=function(t){if("number"==typeof t&&tthis._nextTick;){o>this._nextTick+this._threshold&&(this._nextTick=o);var a=this._nextTick;this._nextTick+=1/this.frequency.getValueAtTime(this._nextTick),this.callback(a),this.ticks++}else s===t.State.Stopped&&(this._nextTick=-1,this.ticks=0)},t.Clock.prototype.getStateAtTime=function(t){return this._state.getStateAtTime(t)},t.Clock.prototype.dispose=function(){cancelAnimationFrame(this._loopID),t.TimelineState.prototype.dispose.call(this),this._writable("frequency"),this.frequency.dispose(),this.frequency=null,this._boundLoop=t.noOp,this._nextTick=1/0,this.callback=null,this._state.dispose(),this._state=null},t.Clock}(Tone_core_Tone,Tone_signal_TimelineSignal);var metro;metro=function(){"use strict";{var t=master,e=Tone_core_Clock;t.audiocontext}p5.Metro=function(){this.clock=new e({callback:this.ontick.bind(this)}),this.syncedParts=[],this.bpm=120,this._init(),this.tickCallback=function(){}};var i=0,o=0;p5.Metro.prototype.ontick=function(e){var n=e-i,r=e-t.audiocontext.currentTime;if(!(-.02>=n-o)){i=e;for(var s in this.syncedParts){var a=this.syncedParts[s];a.incrementStep(r);for(var u in a.phrases){var c=a.phrases[u],p=c.sequence,h=this.metroTicks%p.length;0!==p[h]&&(this.metroTicks=t.parts.length?(t.scoreStep=0,t.onended()):(t.scoreStep=0,t.parts[t.currentPart-1].stop(),t.parts[t.currentPart].start())}var e=master,i=120;p5.prototype.setBPM=function(t,o){i=t;for(var n in e.parts)e.parts[n].setBPM(i,o)},p5.Phrase=function(t,e,i){this.phraseStep=0,this.name=t,this.callback=e,this.sequence=i},p5.Part=function(t,o){this.length=t||0,this.partStep=0,this.phrases=[],this.looping=!1,this.isPlaying=!1,this.onended=function(){this.stop()},this.tatums=o||.0625,this.metro=new p5.Metro,this.metro._init(),this.metro.beatLength(this.tatums),this.metro.setBPM(i),e.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,i){var o;if(3===arguments.length)o=new p5.Phrase(t,e,i);else{if(!(arguments[0]instanceof p5.Phrase))throw"invalid input. addPhrase accepts name, callback, array or a p5.Phrase";o=arguments[0]}this.phrases.push(o),o.sequence.length>this.length&&(this.length=o.sequence.length)},p5.Part.prototype.removePhrase=function(t){for(var e in this.phrases)this.phrases[e].name===t&&this.phrases.split(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 i in this.phrases)this.phrases[i].name===t&&(this.phrases[i].sequence=e)},p5.Part.prototype.incrementStep=function(t){this.partStepr;)o[r++]=t[n],o[r++]=e[n],n++;return o}function e(t,e,i){for(var o=i.length,n=0;o>n;n++)t.setUint8(e+n,i.charCodeAt(n))}var i=master,o=i.audiocontext;p5.SoundRecorder=function(){this.input=o.createGain(),this.output=o.createGain(),this.recording=!1,this.bufferSize=1024,this._channels=2,this._clear(),this._jsNode=o.createScriptProcessor(this.bufferSize,this._channels,2),this._jsNode.onaudioprocess=this._audioprocess.bind(this),this._callback=function(){},this._jsNode.connect(p5.soundOut._silentNode),this.setInput(),i.soundArray.push(this)},p5.SoundRecorder.prototype.setInput=function(t){this.input.disconnect(),this.input=null,this.input=o.createGain(),this.input.connect(this._jsNode),this.input.connect(this.output),t?t.connect(this.input):p5.soundOut.output.connect(this.input)},p5.SoundRecorder.prototype.record=function(t,e,i){this.recording=!0,e&&(this.sampleLimit=Math.round(e*o.sampleRate)),t&&i?this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer),i()}:t&&(this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer)})},p5.SoundRecorder.prototype.stop=function(){this.recording=!1,this._callback(),this._clear()},p5.SoundRecorder.prototype._clear=function(){this._leftBuffers=[],this._rightBuffers=[],this.recordedSamples=0,this.sampleLimit=null},p5.SoundRecorder.prototype._audioprocess=function(t){if(this.recording!==!1&&this.recording===!0)if(this.sampleLimit&&this.recordedSamples>=this.sampleLimit)this.stop();else{var e=t.inputBuffer.getChannelData(0),i=t.inputBuffer.getChannelData(1);this._leftBuffers.push(new Float32Array(e)),this._rightBuffers.push(new Float32Array(i)),this.recordedSamples+=this.bufferSize}},p5.SoundRecorder.prototype._getBuffer=function(){var t=[];return t.push(this._mergeBuffers(this._leftBuffers)),t.push(this._mergeBuffers(this._rightBuffers)),t},p5.SoundRecorder.prototype._mergeBuffers=function(t){for(var e=new Float32Array(this.recordedSamples),i=0,o=t.length,n=0;o>n;n++){var r=t[n];e.set(r,i),i+=r.length}return e},p5.SoundRecorder.prototype.dispose=function(){this._clear();var t=i.soundArray.indexOf(this);i.soundArray.splice(t,1),this._callback=function(){},this.input&&this.input.disconnect(),this.input=null,this._jsNode=null},p5.prototype.saveSound=function(i,o){var n=i.buffer.getChannelData(0),r=i.buffer.getChannelData(1),s=t(n,r),a=new ArrayBuffer(44+2*s.length),u=new DataView(a);e(u,0,"RIFF"),u.setUint32(4,44+2*s.length,!0),e(u,8,"WAVE"),e(u,12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,2,!0),u.setUint32(24,44100,!0),u.setUint32(28,176400,!0),u.setUint16(32,4,!0),u.setUint16(34,16,!0),e(u,36,"data"),u.setUint32(40,2*s.length,!0);for(var c=s.length,p=44,h=1,l=0;c>l;l++)u.setInt16(p,32767*s[l]*h,!0),p+=2;p5.prototype.writeFile([u],o,"wav")}}(sndcore,master);var peakdetect;peakdetect=function(){"use strict";p5.PeakDetect=function(t,e,i,o){this.framesPerPeak=o||20,this.framesSinceLastPeak=0,this.decayRate=.95,this.threshold=i||.35,this.cutoff=0,this.cutoffMult=1.5,this.energy=0,this.penergy=0,this.currentValue=0,this.isDetected=!1,this.f1=t||40,this.f2=e||2e4,this._onPeak=function(){}},p5.PeakDetect.prototype.update=function(t){var e=this.energy=t.getEnergy(this.f1,this.f2)/255;e>this.cutoff&&e>this.threshold&&e-this.penergy>0?(this._onPeak(),this.isDetected=!0,this.cutoff=e*this.cutoffMult,this.framesSinceLastPeak=0):(this.isDetected=!1,this.framesSinceLastPeak<=this.framesPerPeak?this.framesSinceLastPeak++:(this.cutoff*=this.decayRate,this.cutoff=Math.max(this.cutoff,this.threshold))),this.currentValue=e,this.penergy=e},p5.PeakDetect.prototype.onPeak=function(t,e){var i=this;i._onPeak=function(){t(i.energy,e)}}}(master);var gain;gain=function(){"use strict";var t=master;p5.Gain=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.output),t.soundArray.push(this)},p5.Gain.prototype.setInput=function(t){t.connect(this.input)},p5.Gain.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Gain.prototype.disconnect=function(){this.output.disconnect()},p5.Gain.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o),this.output.gain.linearRampToValueAtTime(e,n+o+i)},p5.Gain.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.output.disconnect(),this.input.disconnect(),this.output=void 0,this.input=void 0}}(master,sndcore);var src_app;src_app=function(){"use strict";var t=sndcore;return t}(sndcore,master,helpers,errorHandler,panner,soundfile,amplitude,fft,signal,oscillator,env,pulse,noise,audioin,filter,delay,reverb,metro,looper,soundRecorder,peakdetect,gain)}); \ No newline at end of file diff --git a/src/env.js b/src/env.js index 519b69fd..55b119ab 100644 --- a/src/env.js +++ b/src/env.js @@ -5,6 +5,7 @@ define(function (require) { var Add = require('Tone/signal/Add'); var Mult = require('Tone/signal/Multiply'); var Scale = require('Tone/signal/Scale'); + var TimelineSignal = require('Tone/signal/TimelineSignal'); var Tone = require('Tone/core/Tone'); Tone.setContext( p5sound.audiocontext); @@ -105,7 +106,7 @@ define(function (require) { this.output = p5sound.audiocontext.createGain();; - this.control = new p5.Signal(); + this.control = new TimelineSignal(); this.control.connect(this.output); @@ -197,6 +198,10 @@ define(function (require) { } } + // get and set value to anchor automation + var valToSet = this.control.getValueAtTime(t); + this.control.setValueAtTime(valToSet, t); + // attack this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); // decay to decay level @@ -232,6 +237,10 @@ define(function (require) { } } + // get and set value to anchor automation + var valToSet = this.control.getValueAtTime(t); + this.control.setValueAtTime(valToSet, t); + this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); // attack @@ -270,8 +279,9 @@ define(function (require) { } } - // ideally would get & set currentValue here, - // but this.control._scalar.gain.value not working in firefox + // get and set value to anchor automation + var valToSet = this.control.getValueAtTime(t); + this.control.setValueAtTime(valToSet, t); // release based on how much time has passed since this.lastAttack if ( (t - this.lastAttack) < (this.aTime) ) { From dae7984f633f0c2804b442cb8993961a1ef31581 Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Thu, 21 Jan 2016 01:46:42 -0500 Subject: [PATCH 09/25] update envelope attack/release --- src/env.js | 134 +++++++++++++++++++++++++++++------------------------ 1 file changed, 73 insertions(+), 61 deletions(-) diff --git a/src/env.js b/src/env.js index 55b119ab..b2b71b4e 100644 --- a/src/env.js +++ b/src/env.js @@ -70,6 +70,7 @@ define(function (require) { * */ p5.Env = function(t1, l1, t2, l2, t3, l3, t4, l4){ + var now = p5sound.audiocontext.currentTime; /** * @property attackTime @@ -107,8 +108,8 @@ define(function (require) { this.output = p5sound.audiocontext.createGain();; this.control = new TimelineSignal(); - this.control.connect(this.output); + this.control.setValueAtTime(0, now); this.connection = null; // store connection @@ -198,18 +199,45 @@ define(function (require) { } } - // get and set value to anchor automation - var valToSet = this.control.getValueAtTime(t); - this.control.setValueAtTime(valToSet, t); - - // attack - this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); - // decay to decay level - this.control.linearRampToValueAtTime(this.dLevel, t + this.aTime + this.dTime); - // hold sustain level - this.control.linearRampToValueAtTime(this.sLevel, t + this.aTime + this.dTime + this.sTime); - // release - this.control.linearRampToValueAtTime(this.rLevel, t + this.aTime + this.dTime + this.sTime + this.rTime); + this.triggerAttack(unit, secondsFromNow); + this.triggerRelease(unit, secondsFromNow + this.aTime + this.dTime + this.sTime); + + // get and set value (with linear ramp) to anchor automation + // var valToSet = this.control.getValueAtTime(t); + // this.control.linearRampToValueAtTime(valToSet, t); + + // // after each ramp completes, cancel scheduled values + // // (so they can be overridden in case env has been re-triggered) + // // then, set current value (with linearRamp to avoid click) + // // then, schedule the next automation... + + // // attack + // t += this.aTime; + // this.control.linearRampToValueAtTime(this.aLevel, t); + // valToSet = this.control.getValueAtTime(t); + // this.control.cancelScheduledValues(t); + // this.control.linearRampToValueAtTime(valToSet, t); + + // // decay to decay level + // t += this.dTime; + // this.control.linearRampToValueAtTime(this.dLevel, t); + // valToSet = this.control.getValueAtTime(t); + // this.control.cancelScheduledValues(t); + // this.control.linearRampToValueAtTime(valToSet, t); + + // // hold sustain level + // t += this.sTime; + // this.control.linearRampToValueAtTime(this.sLevel, t); + // valToSet = this.control.getValueAtTime(t); + // this.control.cancelScheduledValues(t); + // this.control.linearRampToValueAtTime(valToSet, t); + + // // release + // t += this.rTime; + // this.control.linearRampToValueAtTime(this.rLevel, t); + // valToSet = this.control.getValueAtTime(t); + // this.control.cancelScheduledValues(t); + // this.control.linearRampToValueAtTime(valToSet, t); }; /** @@ -237,18 +265,35 @@ define(function (require) { } } - // get and set value to anchor automation + // get and set value (with linear ramp) to anchor automation var valToSet = this.control.getValueAtTime(t); - this.control.setValueAtTime(valToSet, t); + this.control.linearRampToValueAtTime(valToSet, t); - this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); + // after each ramp completes, cancel scheduled values + // (so they can be overridden in case env has been re-triggered) + // then, set current value (with linearRamp to avoid click) + // then, schedule the next automation... // attack - this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); - // decay to sustain level - this.control.linearRampToValueAtTime(this.dLevel, t + this.aTime + this.dTime); + t += this.aTime; + this.control.linearRampToValueAtTime(this.aLevel, t); + valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); + this.control.linearRampToValueAtTime(valToSet, t); - this.control.linearRampToValueAtTime(this.sLevel, t + this.aTime + this.dTime + this.sTime); + // decay to decay level + t += this.dTime; + this.control.linearRampToValueAtTime(this.dLevel, t); + valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); + this.control.linearRampToValueAtTime(valToSet, t); + + // hold sustain level + t += this.sTime; + this.control.linearRampToValueAtTime(this.sLevel, t); + valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); + this.control.linearRampToValueAtTime(valToSet, t); }; @@ -279,49 +324,16 @@ define(function (require) { } } - // get and set value to anchor automation + // get and set value (with linear ramp) to anchor automation var valToSet = this.control.getValueAtTime(t); - this.control.setValueAtTime(valToSet, t); - - // release based on how much time has passed since this.lastAttack - if ( (t - this.lastAttack) < (this.aTime) ) { - var a = this.aTime - (t - this.lastAttack); - this.control.linearRampToValueAtTime(this.aLevel, t + a); - this.control.linearRampToValueAtTime(this.dLevel, t + a + this.dTime); - this.control.linearRampToValueAtTime(this.sLevel, t + a + this.dTime + this.sTime); - this.control.linearRampToValueAtTime(this.rLevel, t + a + this.dTime + this.sTime + this.rTime); - relTime = t + this.dTime + this.sTime + this.rTime; - } - else if ( (t - this.lastAttack) < (this.aTime + this.dTime) ) { - var d = this.aTime + this.dTime - (now - this.lastAttack); - this.control.linearRampToValueAtTime(this.dLevel, t + d); - // this.control.linearRampToValueAtTime(this.sLevel, t + d + this.sTime); - this.control.linearRampToValueAtTime(this.sLevel, t + d + 0.01); - this.control.linearRampToValueAtTime(this.rLevel, t + d + 0.01 + this.rTime); - relTime = t + this.sTime + this.rTime; - } - else if ( (t - this.lastAttack) < (this.aTime + this.dTime + this.sTime) ) { - var s = this.aTime + this.dTime + this.sTime - (now - this.lastAttack); - this.control.linearRampToValueAtTime(this.sLevel, t + s); - this.control.linearRampToValueAtTime(this.rLevel, t + s + this.rTime); - relTime = t + this.rTime; - } - else { - this.control.linearRampToValueAtTime(this.sLevel, t); - this.control.linearRampToValueAtTime(this.rLevel, t + this.rTime); - relTime = t + this.dTime + this.sTime + this.rTime; - } - - // clear osc / sources - var clearTime = (t + this.aTime + this.dTime + this.sTime + this.rTime); // * 1000; + this.control.linearRampToValueAtTime(valToSet, t); - if (this.connection && this.connection.hasOwnProperty('oscillator')) { - this.sourceToClear = this.connection.oscillator; - this.sourceToClear.stop(clearTime + .01); - } else if (this.connect && this.connection.hasOwnProperty('source')){ - this.sourceToClear = this.connection.source; - this.sourceToClear.stop(clearTime + .01); - } + // release + t += this.rTime; + this.control.linearRampToValueAtTime(this.rLevel, t); + valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); + this.control.linearRampToValueAtTime(valToSet, t); this.wasTriggered = false; }; From 209c6641d9f61c4e26f6abdf8830b7887fa75bef Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Thu, 21 Jan 2016 01:47:32 -0500 Subject: [PATCH 10/25] compile lib --- examples/envelope/sketch.js | 4 +- lib/p5.sound.js | 92 +++++++++++++++---------------------- lib/p5.sound.min.js | 8 ++-- 3 files changed, 42 insertions(+), 62 deletions(-) diff --git a/examples/envelope/sketch.js b/examples/envelope/sketch.js index ef33a024..bd6e9901 100644 --- a/examples/envelope/sketch.js +++ b/examples/envelope/sketch.js @@ -19,8 +19,8 @@ var env; var a; // Times and levels for the ASR envelope -var attackTime = 0.01; -var attackLevel = 0.7; +var attackTime = 0.001; +var attackLevel = 0.9; var decayTime = 0.3; var decayLevel = 0.2; var sustainTime = 0.1; diff --git a/lib/p5.sound.js b/lib/p5.sound.js index 74526a88..d9395fe7 100644 --- a/lib/p5.sound.js +++ b/lib/p5.sound.js @@ -1,4 +1,4 @@ -/*! p5.sound.js v0.2.17 2016-01-18 */ +/*! p5.sound.js v0.2.17 2016-01-21 */ (function (root, factory) { if (typeof define === 'function' && define.amd) define('p5.sound', ['p5'], function (p5) { (factory(p5));}); @@ -5140,6 +5140,7 @@ env = function () { * */ p5.Env = function (t1, l1, t2, l2, t3, l3, t4, l4) { + var now = p5sound.audiocontext.currentTime; /** * @property attackTime */ @@ -5175,6 +5176,7 @@ env = function () { this.output = p5sound.audiocontext.createGain(); this.control = new TimelineSignal(); this.control.connect(this.output); + this.control.setValueAtTime(0, now); this.connection = null; // store connection //array of math operation signal chaining @@ -5253,17 +5255,8 @@ env = function () { this.connect(unit); } } - // get and set value to anchor automation - var valToSet = this.control.getValueAtTime(t); - this.control.setValueAtTime(valToSet, t); - // attack - this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); - // decay to decay level - this.control.linearRampToValueAtTime(this.dLevel, t + this.aTime + this.dTime); - // hold sustain level - this.control.linearRampToValueAtTime(this.sLevel, t + this.aTime + this.dTime + this.sTime); - // release - this.control.linearRampToValueAtTime(this.rLevel, t + this.aTime + this.dTime + this.sTime + this.rTime); + this.triggerAttack(unit, secondsFromNow); + this.triggerRelease(unit, secondsFromNow + this.aTime + this.dTime + this.sTime); }; /** * Trigger the Attack, Decay, and Sustain of the Envelope. @@ -5288,15 +5281,31 @@ env = function () { this.connect(unit); } } - // get and set value to anchor automation + // get and set value (with linear ramp) to anchor automation var valToSet = this.control.getValueAtTime(t); - this.control.setValueAtTime(valToSet, t); - this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); + this.control.linearRampToValueAtTime(valToSet, t); + // after each ramp completes, cancel scheduled values + // (so they can be overridden in case env has been re-triggered) + // then, set current value (with linearRamp to avoid click) + // then, schedule the next automation... // attack - this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); - // decay to sustain level - this.control.linearRampToValueAtTime(this.dLevel, t + this.aTime + this.dTime); - this.control.linearRampToValueAtTime(this.sLevel, t + this.aTime + this.dTime + this.sTime); + t += this.aTime; + this.control.linearRampToValueAtTime(this.aLevel, t); + valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); + this.control.linearRampToValueAtTime(valToSet, t); + // decay to decay level + t += this.dTime; + this.control.linearRampToValueAtTime(this.dLevel, t); + valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); + this.control.linearRampToValueAtTime(valToSet, t); + // hold sustain level + t += this.sTime; + this.control.linearRampToValueAtTime(this.sLevel, t); + valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); + this.control.linearRampToValueAtTime(valToSet, t); }; /** * Trigger the Release of the Envelope. This is similar to releasing @@ -5321,44 +5330,15 @@ env = function () { this.connect(unit); } } - // get and set value to anchor automation + // get and set value (with linear ramp) to anchor automation var valToSet = this.control.getValueAtTime(t); - this.control.setValueAtTime(valToSet, t); - // release based on how much time has passed since this.lastAttack - if (t - this.lastAttack < this.aTime) { - var a = this.aTime - (t - this.lastAttack); - this.control.linearRampToValueAtTime(this.aLevel, t + a); - this.control.linearRampToValueAtTime(this.dLevel, t + a + this.dTime); - this.control.linearRampToValueAtTime(this.sLevel, t + a + this.dTime + this.sTime); - this.control.linearRampToValueAtTime(this.rLevel, t + a + this.dTime + this.sTime + this.rTime); - relTime = t + this.dTime + this.sTime + this.rTime; - } else if (t - this.lastAttack < this.aTime + this.dTime) { - var d = this.aTime + this.dTime - (now - this.lastAttack); - this.control.linearRampToValueAtTime(this.dLevel, t + d); - // this.control.linearRampToValueAtTime(this.sLevel, t + d + this.sTime); - this.control.linearRampToValueAtTime(this.sLevel, t + d + 0.01); - this.control.linearRampToValueAtTime(this.rLevel, t + d + 0.01 + this.rTime); - relTime = t + this.sTime + this.rTime; - } else if (t - this.lastAttack < this.aTime + this.dTime + this.sTime) { - var s = this.aTime + this.dTime + this.sTime - (now - this.lastAttack); - this.control.linearRampToValueAtTime(this.sLevel, t + s); - this.control.linearRampToValueAtTime(this.rLevel, t + s + this.rTime); - relTime = t + this.rTime; - } else { - this.control.linearRampToValueAtTime(this.sLevel, t); - this.control.linearRampToValueAtTime(this.rLevel, t + this.rTime); - relTime = t + this.dTime + this.sTime + this.rTime; - } - // clear osc / sources - var clearTime = t + this.aTime + this.dTime + this.sTime + this.rTime; - // * 1000; - if (this.connection && this.connection.hasOwnProperty('oscillator')) { - this.sourceToClear = this.connection.oscillator; - this.sourceToClear.stop(clearTime + 0.01); - } else if (this.connect && this.connection.hasOwnProperty('source')) { - this.sourceToClear = this.connection.source; - this.sourceToClear.stop(clearTime + 0.01); - } + this.control.linearRampToValueAtTime(valToSet, t); + // release + t += this.rTime; + this.control.linearRampToValueAtTime(this.rLevel, t); + valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); + this.control.linearRampToValueAtTime(valToSet, t); this.wasTriggered = false; }; p5.Env.prototype.connect = function (unit) { diff --git a/lib/p5.sound.min.js b/lib/p5.sound.min.js index 293e53d0..657c6670 100644 --- a/lib/p5.sound.min.js +++ b/lib/p5.sound.min.js @@ -1,6 +1,6 @@ -/*! p5.sound.min.js v0.2.17 2016-01-18 */ +/*! p5.sound.min.js v0.2.17 2016-01-21 */ -!function(t,e){"function"==typeof define&&define.amd?define("p5.sound",["p5"],function(t){e(t)}):e("object"==typeof exports?require("../p5"):t.p5)}(this,function(p5){var sndcore;sndcore=function(){"use strict";!function(t,e){function i(t){t&&(t.setTargetAtTime||(t.setTargetAtTime=t.setTargetValueAtTime))}return e=e||{},window.hasOwnProperty("webkitAudioContext")&&!window.hasOwnProperty("AudioContext")&&(window.AudioContext=webkitAudioContext,AudioContext.prototype.hasOwnProperty("createGain")||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),AudioContext.prototype.hasOwnProperty("createDelay")||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),AudioContext.prototype.hasOwnProperty("createScriptProcessor")||(AudioContext.prototype.createScriptProcessor=AudioContext.prototype.createJavaScriptNode),AudioContext.prototype.hasOwnProperty("createPeriodicWave")||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),AudioContext.prototype.internal_createGain=AudioContext.prototype.createGain,AudioContext.prototype.createGain=function(){var t=this.internal_createGain();return i(t.gain),t},AudioContext.prototype.internal_createDelay=AudioContext.prototype.createDelay,AudioContext.prototype.createDelay=function(t){var e=t?this.internal_createDelay(t):this.internal_createDelay();return i(e.delayTime),e},AudioContext.prototype.internal_createBufferSource=AudioContext.prototype.createBufferSource,AudioContext.prototype.createBufferSource=function(){var t=this.internal_createBufferSource();return t.start?(t.internal_start=t.start,t.start=function(e,i,o){"undefined"!=typeof o?t.internal_start(e||0,i,o):t.internal_start(e||0,i||0)}):t.start=function(t,e,i){e||i?this.noteGrainOn(t||0,e,i):this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},i(t.playbackRate),t},AudioContext.prototype.internal_createDynamicsCompressor=AudioContext.prototype.createDynamicsCompressor,AudioContext.prototype.createDynamicsCompressor=function(){var t=this.internal_createDynamicsCompressor();return i(t.threshold),i(t.knee),i(t.ratio),i(t.reduction),i(t.attack),i(t.release),t},AudioContext.prototype.internal_createBiquadFilter=AudioContext.prototype.createBiquadFilter,AudioContext.prototype.createBiquadFilter=function(){var t=this.internal_createBiquadFilter();return i(t.frequency),i(t.detune),i(t.Q),i(t.gain),t},AudioContext.prototype.hasOwnProperty("createOscillator")&&(AudioContext.prototype.internal_createOscillator=AudioContext.prototype.createOscillator,AudioContext.prototype.createOscillator=function(){var t=this.internal_createOscillator();return t.start?(t.internal_start=t.start,t.start=function(e){t.internal_start(e||0)}):t.start=function(t){this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},t.setPeriodicWave||(t.setPeriodicWave=t.setWaveTable),i(t.frequency),i(t.detune),t})),window.hasOwnProperty("webkitOfflineAudioContext")&&!window.hasOwnProperty("OfflineAudioContext")&&(window.OfflineAudioContext=webkitOfflineAudioContext),e}(window);var t=new window.AudioContext;p5.prototype.getAudioContext=function(){return t},navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;var e=document.createElement("audio");p5.prototype.isSupported=function(){return!!e.canPlayType};var i=function(){return!!e.canPlayType&&e.canPlayType('audio/ogg; codecs="vorbis"')},o=function(){return!!e.canPlayType&&e.canPlayType("audio/mpeg;")},n=function(){return!!e.canPlayType&&e.canPlayType('audio/wav; codecs="1"')},r=function(){return!!e.canPlayType&&(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;"))},s=function(){return!!e.canPlayType&&e.canPlayType("audio/x-aiff;")};p5.prototype.isFileSupported=function(t){switch(t.toLowerCase()){case"mp3":return o();case"wav":return n();case"ogg":return i();case"mp4":return r();case"aiff":return s();default:return!1}};var a=navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1;if(a){var u=!1,c=function(){if(!u){var e=t.createBuffer(1,1,22050),i=t.createBufferSource();i.buffer=e,i.connect(t.destination),i.start(0),console.log("start ios!"),"running"===t.state&&(u=!0)}};document.addEventListener("touchend",c,!1),document.addEventListener("touchstart",c,!1)}}();var master;master=function(){"use strict";var t=function(){var t=p5.prototype.getAudioContext();this.input=t.createGain(),this.output=t.createGain(),this.limiter=t.createDynamicsCompressor(),this.limiter.threshold.value=0,this.limiter.ratio.value=100,this.audiocontext=t,this.output.disconnect(),this.inputSources=[],this.input.connect(this.limiter),this.limiter.connect(this.output),this.meter=t.createGain(),this.fftMeter=t.createGain(),this.output.connect(this.meter),this.output.connect(this.fftMeter),this.output.connect(this.audiocontext.destination),this.soundArray=[],this.parts=[],this.extensions=[]},e=new t;return p5.prototype.getMasterVolume=function(){return e.output.gain.value},p5.prototype.masterVolume=function(t,i,o){if("number"==typeof t){var i=i||0,o=o||0,n=e.audiocontext.currentTime,r=e.output.gain.value;e.output.gain.cancelScheduledValues(n+o),e.output.gain.linearRampToValueAtTime(r,n+o),e.output.gain.linearRampToValueAtTime(t,n+o+i)}else{if(!t)return e.output.gain;t.connect(e.output.gain)}},p5.soundOut=e,p5.soundOut._silentNode=e.audiocontext.createGain(),p5.soundOut._silentNode.gain.value=0,p5.soundOut._silentNode.connect(e.audiocontext.destination),e}(sndcore);var helpers;helpers=function(){"use strict";var t=master;p5.prototype.sampleRate=function(){return t.audiocontext.sampleRate},p5.prototype.freqToMidi=function(t){var e=Math.log(t/440)/Math.log(2),i=Math.round(12*e)+57;return i},p5.prototype.midiToFreq=function(t){return 440*Math.pow(2,(t-69)/12)},p5.prototype.soundFormats=function(){t.extensions=[];for(var e=0;e-1))throw arguments[e]+" is not a valid sound format!";t.extensions.push(arguments[e])}},p5.prototype.disposeSound=function(){for(var e=0;e-1){var n=p5.prototype.isFileSupported(o);if(n)i=i;else for(var r=i.split("."),s=r[r.length-1],a=0;a1?(this.splitter=e.createChannelSplitter(2),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0)):(this.input.connect(this.left),this.input.connect(this.right)),this.output=e.createChannelMerger(2),this.left.connect(this.output,0,1),this.right.connect(this.output,0,0),this.output.connect(i)},p5.Panner.prototype.pan=function(t,i){var o=i||0,n=e.currentTime+o,r=(t+1)/2,s=Math.cos(r*Math.PI/2),a=Math.sin(r*Math.PI/2);this.left.gain.linearRampToValueAtTime(a,n),this.right.gain.linearRampToValueAtTime(s,n)},p5.Panner.prototype.inputChannels=function(t){1===t?(this.input.disconnect(),this.input.connect(this.left),this.input.connect(this.right)):2===t&&(this.splitter=e.createChannelSplitter(2),this.input.disconnect(),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0))},p5.Panner.prototype.connect=function(t){this.output.connect(t)},p5.Panner.prototype.disconnect=function(){this.output.disconnect()}),p5.Panner3D=function(t,i){var o=e.createPanner();return o.panningModel="HRTF",o.distanceModel="linear",o.setPosition(0,0,0),t.connect(o),o.connect(i),o.pan=function(t,e,i){o.setPosition(t,e,i)},o}}(master);var soundfile;soundfile=function(){"use strict";function t(t,e){for(var i={},o=t.length,n=0;o>n;n++){if(t[n]>e){var r=t[n],s=new c(r,n);i[n]=s,n+=6e3}n++}return i}function e(t){for(var e=[],i=Object.keys(t).sort(),o=0;on;n++){var r=t[i[o]],s=t[i[o+n]];if(r&&s){var a=r.sampleIndex,u=s.sampleIndex,c=u-a;c>0&&r.intervals.push(c);var p=e.some(function(t){return t.interval===c?(t.count++,t):void 0});p||e.push({interval:c,count:1})}}return e}function i(t,e){var i=[];return t.forEach(function(t){try{var o=Math.abs(60/(t.interval/e));o=n(o);var r=i.some(function(e){return e.tempo===o?e.count+=t.count:void 0});if(!r){if(isNaN(o))return;i.push({tempo:Math.round(o),count:t.count})}}catch(s){throw s}}),i}function o(t,e,i,o){for(var r=[],s=Object.keys(t).sort(),a=0;a.01?!0:void 0})}function n(t){if(isFinite(t)&&0!=t){for(;90>t;)t*=2;for(;t>180&&t>90;)t/=2;return t}}var r=errorHandler,s=master,a=s.audiocontext;p5.SoundFile=function(t,e,i,o){if("undefined"!=typeof t){if("string"==typeof t||"string"==typeof t[0]){var n=p5.prototype._checkFileFormats(t);this.url=n}else if("object"==typeof t&&!(window.File&&window.FileReader&&window.FileList&&window.Blob))throw"Unable to load file because the File API is not supported";t.file&&(t=t.file),this.file=t}this._onended=function(){},this._looping=!1,this._playing=!1,this._paused=!1,this._pauseTime=0,this._cues=[],this._lastPos=0,this._counterNode,this._scopeNode,this.bufferSourceNodes=[],this.bufferSourceNode=null,this.buffer=null,this.playbackRate=1,this.gain=1,this.input=s.audiocontext.createGain(),this.output=s.audiocontext.createGain(),this.reversed=!1,this.startTime=0,this.endTime=null,this.pauseTime=0,this.mode="sustain",this.startMillis=null,this.panPosition=0,this.panner=new p5.Panner(this.output,s.input,2),(this.url||this.file)&&this.load(e,i),s.soundArray.push(this),this._whileLoading="function"==typeof o?o:function(){}},p5.prototype.registerPreloadMethod("loadSound",p5.prototype),p5.prototype.loadSound=function(t,e,i,o){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var n=new p5.SoundFile(t,e,i,o);return n},p5.SoundFile.prototype.load=function(t,e){var i=this,o=(new Error).stack;if(void 0!=this.url&&""!=this.url){var n=new XMLHttpRequest;n.addEventListener("progress",function(t){i._updateProgress(t)},!1),n.open("GET",this.url,!0),n.responseType="arraybuffer",n.onload=function(){if(200==n.status)a.decodeAudioData(n.response,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)},function(){var t=new r("decodeAudioData",o,i.url),n="AudioContext error at decodeAudioData for "+i.url;e?(t.msg=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)});else{var s=new r("loadSound",o,i.url),u="Unable to load "+i.url+". The request status was: "+n.status+" ("+n.statusText+")";e?(s.message=u,e(s)):console.error(u+"\n The error stack trace includes: \n"+s.stack)}},n.onerror=function(){var t=new r("loadSound",o,i.url),n="There was no response from the server at "+i.url+". Check the url and internet connectivity.";e?(t.message=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)},n.send()}else if(void 0!=this.file){var s=new FileReader,i=this;s.onload=function(){a.decodeAudioData(s.result,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)})},s.onerror=function(t){onerror&&onerror(t)},s.readAsArrayBuffer(this.file)}},p5.SoundFile.prototype._updateProgress=function(t){if(t.lengthComputable){var e=Math.log(t.loaded/t.total*9.9);this._whileLoading(e)}else this._whileLoading("size unknown")},p5.SoundFile.prototype.isLoaded=function(){return this.buffer?!0:!1},p5.SoundFile.prototype.play=function(t,e,i,o,n){var r,a,u=this,c=s.audiocontext.currentTime,t=t||0;if(0>t&&(t=0),t+=c,!this.buffer)throw"not ready to play file, buffer has yet to load. Try preload()";if(this._pauseTime=0,"restart"===this.mode&&this.buffer&&this.bufferSourceNode){var c=s.audiocontext.currentTime;this.bufferSourceNode.stop(t),this._counterNode.stop(t)}if(this.bufferSourceNode=this._initSourceNode(),this._counterNode&&(this._counterNode=void 0),this._counterNode=this._initCounterNode(),o){if(!(o>=0&&o0&&this.reversed&&this.reverseBuffer();if(this.bufferSourceNode){var n=s.audiocontext.currentTime;this.bufferSourceNode.playbackRate.cancelScheduledValues(n),this.bufferSourceNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n),this._counterNode.playbackRate.cancelScheduledValues(n),this._counterNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n)}}},p5.SoundFile.prototype.setPitch=function(t){var e=midiToFreq(t)/midiToFreq(60);this.rate(e)},p5.SoundFile.prototype.getPlaybackRate=function(){return this.playbackRate},p5.SoundFile.prototype.duration=function(){return this.buffer?this.buffer.duration:0},p5.SoundFile.prototype.currentTime=function(){return this._pauseTime>0?this._pauseTime:this._lastPos/a.sampleRate},p5.SoundFile.prototype.jump=function(t,e){if(0>t||t>this.buffer.duration)throw"jump time out of range";if(e>this.buffer.duration-t)throw"end time out of range";var i=t||0,o=e||this.buffer.duration-t;this.isPlaying()&&this.stop(),this.play(0,this.playbackRate,this.output.gain.value,i,o)},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,i=e.length/t,o=~~(i/10)||1,n=e.numberOfChannels,r=new Float32Array(Math.round(t)),s=0;n>s;s++)for(var a=e.getChannelData(s),u=0;t>u;u++){for(var c=~~(u*i),p=~~(c+i),h=0,l=c;p>l;l+=o){var f=a[l];f>h?h=f:-f>h&&(h=f)}(0===s||Math.abs(h)>r[u])&&(r[u]=h)}return r}},p5.SoundFile.prototype.reverseBuffer=function(){var t=this.getVolume();if(this.setVolume(0,.01,0),this.pause(),!this.buffer)throw"SoundFile is not done loading";for(var e=0;en;n++){var r=o.getChannelData(n);r.set(t[n])}this.buffer=o,this.panner.inputChannels(e)},p5.SoundFile.prototype._initCounterNode=function(){var t=this,e=a.currentTime,i=a.createBufferSource();return t._scopeNode&&(t._scopeNode.disconnect(),t._scopeNode.onaudioprocess=void 0,t._scopeNode=null),t._scopeNode=a.createScriptProcessor(256,1,1),i.buffer=u(t.buffer),i.playbackRate.setValueAtTime(t.playbackRate,e),i.connect(t._scopeNode),t._scopeNode.connect(p5.soundOut._silentNode),t._scopeNode.onaudioprocess=function(e){var i=e.inputBuffer.getChannelData(0);t._lastPos=i[i.length-1]||0,t._onTimeUpdate(t._lastPos)},i},p5.SoundFile.prototype._initSourceNode=function(){var t=this,e=a.currentTime,i=a.createBufferSource();return i.buffer=t.buffer,i.playbackRate.setValueAtTime(t.playbackRate,e),i};var u=function(t){for(var e=new Float32Array(t.length),i=a.createBuffer(1,t.length,44100),o=0;o=d);var u=e(p),c=i(u,s.sampleRate),h=c.sort(function(t,e){return e.count-t.count}).splice(0,5);this.tempo=h[0].tempo;var l=5,y=o(p,h[0].tempo,s.sampleRate,l);n(y)}};var c=function(t,e){this.sampleIndex=e,this.amplitude=t,this.tempos=[],this.intervals=[]},p=[];p5.SoundFile.prototype.addCue=function(t,e,i){var o=this._cueIDCounter++,n=new h(e,t,o,i);return this._cues.push(n),o},p5.SoundFile.prototype.removeCue=function(t){for(var e=this._cues.length,i=0;e>i;i++){var o=this._cues[i];o.id===t&&this.cues.splice(i,1)}0===this._cues.length},p5.SoundFile.prototype.clearCues=function(){this._cues=[]},p5.SoundFile.prototype._onTimeUpdate=function(t){for(var e=t/this.buffer.sampleRate,i=this._cues.length,o=0;i>o;o++){var n=this._cues[o],r=n.time,s=n.val;this._prevTime=r&&n.callback(s)}this._prevTime=e};var h=function(t,e,i,o){this.callback=t,this.time=e,this.id=i,this.val=o}}(sndcore,errorHandler,master);var amplitude;amplitude=function(){"use strict";var t=master;p5.Amplitude=function(e){this.bufferSize=2048,this.audiocontext=t.audiocontext,this.processor=this.audiocontext.createScriptProcessor(this.bufferSize,2,1),this.input=this.processor,this.output=this.audiocontext.createGain(),this.smoothing=e||0,this.volume=0,this.average=0,this.stereoVol=[0,0],this.stereoAvg=[0,0],this.stereoVolNorm=[0,0],this.volMax=.001,this.normalize=!1,this.processor.onaudioprocess=this._audioProcess.bind(this),this.processor.connect(this.output),this.output.gain.value=0,this.output.connect(this.audiocontext.destination),t.meter.connect(this.processor),t.soundArray.push(this)},p5.Amplitude.prototype.setInput=function(e,i){t.meter.disconnect(),i&&(this.smoothing=i),null==e?(console.log("Amplitude input source is not ready! Connecting to master output instead"),t.meter.connect(this.processor)):e instanceof p5.Signal?e.output.connect(this.processor):e?(e.connect(this.processor),this.processor.disconnect(),this.processor.connect(this.output)):t.meter.connect(this.processor)},p5.Amplitude.prototype.connect=function(e){this.output.connect(e?e.hasOwnProperty("input")?e.input:e:this.panner.connect(t.input))},p5.Amplitude.prototype.disconnect=function(){this.output.disconnect()},p5.Amplitude.prototype._audioProcess=function(t){for(var e=0;ea;a++)i=o[a],this.normalize?(r+=Math.max(Math.min(i/this.volMax,1),-1),s+=Math.max(Math.min(i/this.volMax,1),-1)*Math.max(Math.min(i/this.volMax,1),-1)):(r+=i,s+=i*i);var u=r/n,c=Math.sqrt(s/n);this.stereoVol[e]=Math.max(c,this.stereoVol[e]*this.smoothing),this.stereoAvg[e]=Math.max(u,this.stereoVol[e]*this.smoothing),this.volMax=Math.max(this.stereoVol[e],this.volMax)}var p=this,h=this.stereoVol.reduce(function(t,e,i){return p.stereoVolNorm[i-1]=Math.max(Math.min(p.stereoVol[i-1]/p.volMax,1),0),p.stereoVolNorm[i]=Math.max(Math.min(p.stereoVol[i]/p.volMax,1),0),t+e});this.volume=h/this.stereoVol.length,this.volNorm=Math.max(Math.min(this.volume/this.volMax,1),0)},p5.Amplitude.prototype.getLevel=function(t){return"undefined"!=typeof t?this.normalize?this.stereoVolNorm[t]:this.stereoVol[t]:this.normalize?this.volNorm:this.volume},p5.Amplitude.prototype.toggleNormalize=function(t){this.normalize="boolean"==typeof t?t:!this.normalize},p5.Amplitude.prototype.smooth=function(t){t>=0&&1>t?this.smoothing=t:console.log("Error: smoothing must be between 0 and 1")},p5.Amplitude.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.output.disconnect(),this.input=this.processor=void 0,this.output=void 0}}(master);var fft;fft=function(){"use strict";var t=master;p5.FFT=function(e,i){this.smoothing=e||.8,this.bins=i||1024;var o=2*i||2048;this.input=this.analyser=t.audiocontext.createAnalyser(),t.fftMeter.connect(this.analyser),this.analyser.smoothingTimeConstant=this.smoothing,this.analyser.fftSize=o,this.freqDomain=new Uint8Array(this.analyser.frequencyBinCount),this.timeDomain=new Uint8Array(this.analyser.frequencyBinCount),this.bass=[20,140],this.lowMid=[140,400],this.mid=[400,2600],this.highMid=[2600,5200],this.treble=[5200,14e3],t.soundArray.push(this)},p5.FFT.prototype.setInput=function(e){e?(e.output?e.output.connect(this.analyser):e.connect&&e.connect(this.analyser),t.fftMeter.disconnect()):t.fftMeter.connect(this.analyser)},p5.FFT.prototype.waveform=function(){for(var t,e,i,r=0;ri){var n=i;i=e,e=n}for(var r=Math.round(e/o*this.freqDomain.length),s=Math.round(i/o*this.freqDomain.length),a=0,u=0,c=r;s>=c;c++)a+=this.freqDomain[c],u+=1;var p=a/u;return p}throw"invalid input for getEnergy()"}var h=Math.round(e/o*this.freqDomain.length);return this.freqDomain[h]},p5.FFT.prototype.getFreq=function(t,e){console.log("getFreq() is deprecated. Please use getEnergy() instead.");var i=this.getEnergy(t,e);return i},p5.FFT.prototype.smooth=function(t){t&&(this.smoothing=t),this.analyser.smoothingTimeConstant=t},p5.FFT.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.analyser.disconnect(),this.analyser=void 0};var e=function(t){t.freqDomain instanceof Float32Array==!1&&(t.freqDomain=new Float32Array(t.analyser.frequencyBinCount))},i=function(t){t.freqDomain instanceof Uint8Array==!1&&(t.freqDomain=new Uint8Array(t.analyser.frequencyBinCount))},o=function(t){t.timeDomain instanceof Float32Array==!1&&(t.timeDomain=new Float32Array(t.analyser.frequencyBinCount))},n=function(t){t.timeDomain instanceof Uint8Array==!1&&(t.timeDomain=new Uint8Array(t.analyser.frequencyBinCount))}}(master);var Tone_core_Tone;Tone_core_Tone=function(){"use strict";function t(t){return void 0===t}function e(t){return"function"==typeof t}var i;if(t(window.AudioContext)&&(window.AudioContext=window.webkitAudioContext),t(window.OfflineAudioContext)&&(window.OfflineAudioContext=window.webkitOfflineAudioContext),t(AudioContext))throw new Error("Web Audio is not supported in this browser");i=new AudioContext,e(AudioContext.prototype.createGain)||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),e(AudioContext.prototype.createDelay)||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),e(AudioContext.prototype.createPeriodicWave)||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),e(AudioBufferSourceNode.prototype.start)||(AudioBufferSourceNode.prototype.start=AudioBufferSourceNode.prototype.noteGrainOn),e(AudioBufferSourceNode.prototype.stop)||(AudioBufferSourceNode.prototype.stop=AudioBufferSourceNode.prototype.noteOff),e(OscillatorNode.prototype.start)||(OscillatorNode.prototype.start=OscillatorNode.prototype.noteOn),e(OscillatorNode.prototype.stop)||(OscillatorNode.prototype.stop=OscillatorNode.prototype.noteOff),e(OscillatorNode.prototype.setPeriodicWave)||(OscillatorNode.prototype.setPeriodicWave=OscillatorNode.prototype.setWaveTable),AudioNode.prototype._nativeConnect=AudioNode.prototype.connect,AudioNode.prototype.connect=function(e,i,o){if(e.input)Array.isArray(e.input)?(t(o)&&(o=0),this.connect(e.input[o])):this.connect(e.input,i,o);else try{e instanceof AudioNode?this._nativeConnect(e,i,o):this._nativeConnect(e,i)}catch(n){throw new Error("error connecting to node: "+e)}};var o=function(e,i){t(e)||1===e?this.input=this.context.createGain():e>1&&(this.input=new Array(e)),t(i)||1===i?this.output=this.context.createGain():i>1&&(this.output=new Array(e))};o.prototype.set=function(e,i,n){if(this.isObject(e))n=i;else if(this.isString(e)){var r={}; +!function(t,e){"function"==typeof define&&define.amd?define("p5.sound",["p5"],function(t){e(t)}):e("object"==typeof exports?require("../p5"):t.p5)}(this,function(p5){var sndcore;sndcore=function(){"use strict";!function(t,e){function i(t){t&&(t.setTargetAtTime||(t.setTargetAtTime=t.setTargetValueAtTime))}return e=e||{},window.hasOwnProperty("webkitAudioContext")&&!window.hasOwnProperty("AudioContext")&&(window.AudioContext=webkitAudioContext,AudioContext.prototype.hasOwnProperty("createGain")||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),AudioContext.prototype.hasOwnProperty("createDelay")||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),AudioContext.prototype.hasOwnProperty("createScriptProcessor")||(AudioContext.prototype.createScriptProcessor=AudioContext.prototype.createJavaScriptNode),AudioContext.prototype.hasOwnProperty("createPeriodicWave")||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),AudioContext.prototype.internal_createGain=AudioContext.prototype.createGain,AudioContext.prototype.createGain=function(){var t=this.internal_createGain();return i(t.gain),t},AudioContext.prototype.internal_createDelay=AudioContext.prototype.createDelay,AudioContext.prototype.createDelay=function(t){var e=t?this.internal_createDelay(t):this.internal_createDelay();return i(e.delayTime),e},AudioContext.prototype.internal_createBufferSource=AudioContext.prototype.createBufferSource,AudioContext.prototype.createBufferSource=function(){var t=this.internal_createBufferSource();return t.start?(t.internal_start=t.start,t.start=function(e,i,o){"undefined"!=typeof o?t.internal_start(e||0,i,o):t.internal_start(e||0,i||0)}):t.start=function(t,e,i){e||i?this.noteGrainOn(t||0,e,i):this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},i(t.playbackRate),t},AudioContext.prototype.internal_createDynamicsCompressor=AudioContext.prototype.createDynamicsCompressor,AudioContext.prototype.createDynamicsCompressor=function(){var t=this.internal_createDynamicsCompressor();return i(t.threshold),i(t.knee),i(t.ratio),i(t.reduction),i(t.attack),i(t.release),t},AudioContext.prototype.internal_createBiquadFilter=AudioContext.prototype.createBiquadFilter,AudioContext.prototype.createBiquadFilter=function(){var t=this.internal_createBiquadFilter();return i(t.frequency),i(t.detune),i(t.Q),i(t.gain),t},AudioContext.prototype.hasOwnProperty("createOscillator")&&(AudioContext.prototype.internal_createOscillator=AudioContext.prototype.createOscillator,AudioContext.prototype.createOscillator=function(){var t=this.internal_createOscillator();return t.start?(t.internal_start=t.start,t.start=function(e){t.internal_start(e||0)}):t.start=function(t){this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},t.setPeriodicWave||(t.setPeriodicWave=t.setWaveTable),i(t.frequency),i(t.detune),t})),window.hasOwnProperty("webkitOfflineAudioContext")&&!window.hasOwnProperty("OfflineAudioContext")&&(window.OfflineAudioContext=webkitOfflineAudioContext),e}(window);var t=new window.AudioContext;p5.prototype.getAudioContext=function(){return t},navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;var e=document.createElement("audio");p5.prototype.isSupported=function(){return!!e.canPlayType};var i=function(){return!!e.canPlayType&&e.canPlayType('audio/ogg; codecs="vorbis"')},o=function(){return!!e.canPlayType&&e.canPlayType("audio/mpeg;")},n=function(){return!!e.canPlayType&&e.canPlayType('audio/wav; codecs="1"')},r=function(){return!!e.canPlayType&&(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;"))},s=function(){return!!e.canPlayType&&e.canPlayType("audio/x-aiff;")};p5.prototype.isFileSupported=function(t){switch(t.toLowerCase()){case"mp3":return o();case"wav":return n();case"ogg":return i();case"mp4":return r();case"aiff":return s();default:return!1}};var a=navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1;if(a){var u=!1,c=function(){if(!u){var e=t.createBuffer(1,1,22050),i=t.createBufferSource();i.buffer=e,i.connect(t.destination),i.start(0),console.log("start ios!"),"running"===t.state&&(u=!0)}};document.addEventListener("touchend",c,!1),document.addEventListener("touchstart",c,!1)}}();var master;master=function(){"use strict";var t=function(){var t=p5.prototype.getAudioContext();this.input=t.createGain(),this.output=t.createGain(),this.limiter=t.createDynamicsCompressor(),this.limiter.threshold.value=0,this.limiter.ratio.value=100,this.audiocontext=t,this.output.disconnect(),this.inputSources=[],this.input.connect(this.limiter),this.limiter.connect(this.output),this.meter=t.createGain(),this.fftMeter=t.createGain(),this.output.connect(this.meter),this.output.connect(this.fftMeter),this.output.connect(this.audiocontext.destination),this.soundArray=[],this.parts=[],this.extensions=[]},e=new t;return p5.prototype.getMasterVolume=function(){return e.output.gain.value},p5.prototype.masterVolume=function(t,i,o){if("number"==typeof t){var i=i||0,o=o||0,n=e.audiocontext.currentTime,r=e.output.gain.value;e.output.gain.cancelScheduledValues(n+o),e.output.gain.linearRampToValueAtTime(r,n+o),e.output.gain.linearRampToValueAtTime(t,n+o+i)}else{if(!t)return e.output.gain;t.connect(e.output.gain)}},p5.soundOut=e,p5.soundOut._silentNode=e.audiocontext.createGain(),p5.soundOut._silentNode.gain.value=0,p5.soundOut._silentNode.connect(e.audiocontext.destination),e}(sndcore);var helpers;helpers=function(){"use strict";var t=master;p5.prototype.sampleRate=function(){return t.audiocontext.sampleRate},p5.prototype.freqToMidi=function(t){var e=Math.log(t/440)/Math.log(2),i=Math.round(12*e)+57;return i},p5.prototype.midiToFreq=function(t){return 440*Math.pow(2,(t-69)/12)},p5.prototype.soundFormats=function(){t.extensions=[];for(var e=0;e-1))throw arguments[e]+" is not a valid sound format!";t.extensions.push(arguments[e])}},p5.prototype.disposeSound=function(){for(var e=0;e-1){var n=p5.prototype.isFileSupported(o);if(n)i=i;else for(var r=i.split("."),s=r[r.length-1],a=0;a1?(this.splitter=e.createChannelSplitter(2),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0)):(this.input.connect(this.left),this.input.connect(this.right)),this.output=e.createChannelMerger(2),this.left.connect(this.output,0,1),this.right.connect(this.output,0,0),this.output.connect(i)},p5.Panner.prototype.pan=function(t,i){var o=i||0,n=e.currentTime+o,r=(t+1)/2,s=Math.cos(r*Math.PI/2),a=Math.sin(r*Math.PI/2);this.left.gain.linearRampToValueAtTime(a,n),this.right.gain.linearRampToValueAtTime(s,n)},p5.Panner.prototype.inputChannels=function(t){1===t?(this.input.disconnect(),this.input.connect(this.left),this.input.connect(this.right)):2===t&&(this.splitter=e.createChannelSplitter(2),this.input.disconnect(),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0))},p5.Panner.prototype.connect=function(t){this.output.connect(t)},p5.Panner.prototype.disconnect=function(){this.output.disconnect()}),p5.Panner3D=function(t,i){var o=e.createPanner();return o.panningModel="HRTF",o.distanceModel="linear",o.setPosition(0,0,0),t.connect(o),o.connect(i),o.pan=function(t,e,i){o.setPosition(t,e,i)},o}}(master);var soundfile;soundfile=function(){"use strict";function t(t,e){for(var i={},o=t.length,n=0;o>n;n++){if(t[n]>e){var r=t[n],s=new c(r,n);i[n]=s,n+=6e3}n++}return i}function e(t){for(var e=[],i=Object.keys(t).sort(),o=0;on;n++){var r=t[i[o]],s=t[i[o+n]];if(r&&s){var a=r.sampleIndex,u=s.sampleIndex,c=u-a;c>0&&r.intervals.push(c);var p=e.some(function(t){return t.interval===c?(t.count++,t):void 0});p||e.push({interval:c,count:1})}}return e}function i(t,e){var i=[];return t.forEach(function(t){try{var o=Math.abs(60/(t.interval/e));o=n(o);var r=i.some(function(e){return e.tempo===o?e.count+=t.count:void 0});if(!r){if(isNaN(o))return;i.push({tempo:Math.round(o),count:t.count})}}catch(s){throw s}}),i}function o(t,e,i,o){for(var r=[],s=Object.keys(t).sort(),a=0;a.01?!0:void 0})}function n(t){if(isFinite(t)&&0!=t){for(;90>t;)t*=2;for(;t>180&&t>90;)t/=2;return t}}var r=errorHandler,s=master,a=s.audiocontext;p5.SoundFile=function(t,e,i,o){if("undefined"!=typeof t){if("string"==typeof t||"string"==typeof t[0]){var n=p5.prototype._checkFileFormats(t);this.url=n}else if("object"==typeof t&&!(window.File&&window.FileReader&&window.FileList&&window.Blob))throw"Unable to load file because the File API is not supported";t.file&&(t=t.file),this.file=t}this._onended=function(){},this._looping=!1,this._playing=!1,this._paused=!1,this._pauseTime=0,this._cues=[],this._lastPos=0,this._counterNode,this._scopeNode,this.bufferSourceNodes=[],this.bufferSourceNode=null,this.buffer=null,this.playbackRate=1,this.gain=1,this.input=s.audiocontext.createGain(),this.output=s.audiocontext.createGain(),this.reversed=!1,this.startTime=0,this.endTime=null,this.pauseTime=0,this.mode="sustain",this.startMillis=null,this.panPosition=0,this.panner=new p5.Panner(this.output,s.input,2),(this.url||this.file)&&this.load(e,i),s.soundArray.push(this),this._whileLoading="function"==typeof o?o:function(){}},p5.prototype.registerPreloadMethod("loadSound",p5.prototype),p5.prototype.loadSound=function(t,e,i,o){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var n=new p5.SoundFile(t,e,i,o);return n},p5.SoundFile.prototype.load=function(t,e){var i=this,o=(new Error).stack;if(void 0!=this.url&&""!=this.url){var n=new XMLHttpRequest;n.addEventListener("progress",function(t){i._updateProgress(t)},!1),n.open("GET",this.url,!0),n.responseType="arraybuffer",n.onload=function(){if(200==n.status)a.decodeAudioData(n.response,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)},function(){var t=new r("decodeAudioData",o,i.url),n="AudioContext error at decodeAudioData for "+i.url;e?(t.msg=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)});else{var s=new r("loadSound",o,i.url),u="Unable to load "+i.url+". The request status was: "+n.status+" ("+n.statusText+")";e?(s.message=u,e(s)):console.error(u+"\n The error stack trace includes: \n"+s.stack)}},n.onerror=function(){var t=new r("loadSound",o,i.url),n="There was no response from the server at "+i.url+". Check the url and internet connectivity.";e?(t.message=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)},n.send()}else if(void 0!=this.file){var s=new FileReader,i=this;s.onload=function(){a.decodeAudioData(s.result,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)})},s.onerror=function(t){onerror&&onerror(t)},s.readAsArrayBuffer(this.file)}},p5.SoundFile.prototype._updateProgress=function(t){if(t.lengthComputable){var e=Math.log(t.loaded/t.total*9.9);this._whileLoading(e)}else this._whileLoading("size unknown")},p5.SoundFile.prototype.isLoaded=function(){return this.buffer?!0:!1},p5.SoundFile.prototype.play=function(t,e,i,o,n){var r,a,u=this,c=s.audiocontext.currentTime,t=t||0;if(0>t&&(t=0),t+=c,!this.buffer)throw"not ready to play file, buffer has yet to load. Try preload()";if(this._pauseTime=0,"restart"===this.mode&&this.buffer&&this.bufferSourceNode){var c=s.audiocontext.currentTime;this.bufferSourceNode.stop(t),this._counterNode.stop(t)}if(this.bufferSourceNode=this._initSourceNode(),this._counterNode&&(this._counterNode=void 0),this._counterNode=this._initCounterNode(),o){if(!(o>=0&&o0&&this.reversed&&this.reverseBuffer();if(this.bufferSourceNode){var n=s.audiocontext.currentTime;this.bufferSourceNode.playbackRate.cancelScheduledValues(n),this.bufferSourceNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n),this._counterNode.playbackRate.cancelScheduledValues(n),this._counterNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n)}}},p5.SoundFile.prototype.setPitch=function(t){var e=midiToFreq(t)/midiToFreq(60);this.rate(e)},p5.SoundFile.prototype.getPlaybackRate=function(){return this.playbackRate},p5.SoundFile.prototype.duration=function(){return this.buffer?this.buffer.duration:0},p5.SoundFile.prototype.currentTime=function(){return this._pauseTime>0?this._pauseTime:this._lastPos/a.sampleRate},p5.SoundFile.prototype.jump=function(t,e){if(0>t||t>this.buffer.duration)throw"jump time out of range";if(e>this.buffer.duration-t)throw"end time out of range";var i=t||0,o=e||this.buffer.duration-t;this.isPlaying()&&this.stop(),this.play(0,this.playbackRate,this.output.gain.value,i,o)},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,i=e.length/t,o=~~(i/10)||1,n=e.numberOfChannels,r=new Float32Array(Math.round(t)),s=0;n>s;s++)for(var a=e.getChannelData(s),u=0;t>u;u++){for(var c=~~(u*i),p=~~(c+i),h=0,l=c;p>l;l+=o){var f=a[l];f>h?h=f:-f>h&&(h=f)}(0===s||Math.abs(h)>r[u])&&(r[u]=h)}return r}},p5.SoundFile.prototype.reverseBuffer=function(){var t=this.getVolume();if(this.setVolume(0,.01,0),this.pause(),!this.buffer)throw"SoundFile is not done loading";for(var e=0;en;n++){var r=o.getChannelData(n);r.set(t[n])}this.buffer=o,this.panner.inputChannels(e)},p5.SoundFile.prototype._initCounterNode=function(){var t=this,e=a.currentTime,i=a.createBufferSource();return t._scopeNode&&(t._scopeNode.disconnect(),t._scopeNode.onaudioprocess=void 0,t._scopeNode=null),t._scopeNode=a.createScriptProcessor(256,1,1),i.buffer=u(t.buffer),i.playbackRate.setValueAtTime(t.playbackRate,e),i.connect(t._scopeNode),t._scopeNode.connect(p5.soundOut._silentNode),t._scopeNode.onaudioprocess=function(e){var i=e.inputBuffer.getChannelData(0);t._lastPos=i[i.length-1]||0,t._onTimeUpdate(t._lastPos)},i},p5.SoundFile.prototype._initSourceNode=function(){var t=this,e=a.currentTime,i=a.createBufferSource();return i.buffer=t.buffer,i.playbackRate.setValueAtTime(t.playbackRate,e),i};var u=function(t){for(var e=new Float32Array(t.length),i=a.createBuffer(1,t.length,44100),o=0;o=d);var u=e(p),c=i(u,s.sampleRate),h=c.sort(function(t,e){return e.count-t.count}).splice(0,5);this.tempo=h[0].tempo;var l=5,y=o(p,h[0].tempo,s.sampleRate,l);n(y)}};var c=function(t,e){this.sampleIndex=e,this.amplitude=t,this.tempos=[],this.intervals=[]},p=[];p5.SoundFile.prototype.addCue=function(t,e,i){var o=this._cueIDCounter++,n=new h(e,t,o,i);return this._cues.push(n),o},p5.SoundFile.prototype.removeCue=function(t){for(var e=this._cues.length,i=0;e>i;i++){var o=this._cues[i];o.id===t&&this.cues.splice(i,1)}0===this._cues.length},p5.SoundFile.prototype.clearCues=function(){this._cues=[]},p5.SoundFile.prototype._onTimeUpdate=function(t){for(var e=t/this.buffer.sampleRate,i=this._cues.length,o=0;i>o;o++){var n=this._cues[o],r=n.time,s=n.val;this._prevTime=r&&n.callback(s)}this._prevTime=e};var h=function(t,e,i,o){this.callback=t,this.time=e,this.id=i,this.val=o}}(sndcore,errorHandler,master);var amplitude;amplitude=function(){"use strict";var t=master;p5.Amplitude=function(e){this.bufferSize=2048,this.audiocontext=t.audiocontext,this.processor=this.audiocontext.createScriptProcessor(this.bufferSize,2,1),this.input=this.processor,this.output=this.audiocontext.createGain(),this.smoothing=e||0,this.volume=0,this.average=0,this.stereoVol=[0,0],this.stereoAvg=[0,0],this.stereoVolNorm=[0,0],this.volMax=.001,this.normalize=!1,this.processor.onaudioprocess=this._audioProcess.bind(this),this.processor.connect(this.output),this.output.gain.value=0,this.output.connect(this.audiocontext.destination),t.meter.connect(this.processor),t.soundArray.push(this)},p5.Amplitude.prototype.setInput=function(e,i){t.meter.disconnect(),i&&(this.smoothing=i),null==e?(console.log("Amplitude input source is not ready! Connecting to master output instead"),t.meter.connect(this.processor)):e instanceof p5.Signal?e.output.connect(this.processor):e?(e.connect(this.processor),this.processor.disconnect(),this.processor.connect(this.output)):t.meter.connect(this.processor)},p5.Amplitude.prototype.connect=function(e){this.output.connect(e?e.hasOwnProperty("input")?e.input:e:this.panner.connect(t.input))},p5.Amplitude.prototype.disconnect=function(){this.output.disconnect()},p5.Amplitude.prototype._audioProcess=function(t){for(var e=0;ea;a++)i=o[a],this.normalize?(r+=Math.max(Math.min(i/this.volMax,1),-1),s+=Math.max(Math.min(i/this.volMax,1),-1)*Math.max(Math.min(i/this.volMax,1),-1)):(r+=i,s+=i*i);var u=r/n,c=Math.sqrt(s/n);this.stereoVol[e]=Math.max(c,this.stereoVol[e]*this.smoothing),this.stereoAvg[e]=Math.max(u,this.stereoVol[e]*this.smoothing),this.volMax=Math.max(this.stereoVol[e],this.volMax)}var p=this,h=this.stereoVol.reduce(function(t,e,i){return p.stereoVolNorm[i-1]=Math.max(Math.min(p.stereoVol[i-1]/p.volMax,1),0),p.stereoVolNorm[i]=Math.max(Math.min(p.stereoVol[i]/p.volMax,1),0),t+e});this.volume=h/this.stereoVol.length,this.volNorm=Math.max(Math.min(this.volume/this.volMax,1),0)},p5.Amplitude.prototype.getLevel=function(t){return"undefined"!=typeof t?this.normalize?this.stereoVolNorm[t]:this.stereoVol[t]:this.normalize?this.volNorm:this.volume},p5.Amplitude.prototype.toggleNormalize=function(t){this.normalize="boolean"==typeof t?t:!this.normalize},p5.Amplitude.prototype.smooth=function(t){t>=0&&1>t?this.smoothing=t:console.log("Error: smoothing must be between 0 and 1")},p5.Amplitude.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.output.disconnect(),this.input=this.processor=void 0,this.output=void 0}}(master);var fft;fft=function(){"use strict";var t=master;p5.FFT=function(e,i){this.smoothing=e||.8,this.bins=i||1024;var o=2*i||2048;this.input=this.analyser=t.audiocontext.createAnalyser(),t.fftMeter.connect(this.analyser),this.analyser.smoothingTimeConstant=this.smoothing,this.analyser.fftSize=o,this.freqDomain=new Uint8Array(this.analyser.frequencyBinCount),this.timeDomain=new Uint8Array(this.analyser.frequencyBinCount),this.bass=[20,140],this.lowMid=[140,400],this.mid=[400,2600],this.highMid=[2600,5200],this.treble=[5200,14e3],t.soundArray.push(this)},p5.FFT.prototype.setInput=function(e){e?(e.output?e.output.connect(this.analyser):e.connect&&e.connect(this.analyser),t.fftMeter.disconnect()):t.fftMeter.connect(this.analyser)},p5.FFT.prototype.waveform=function(){for(var t,e,i,r=0;ri){var n=i;i=e,e=n}for(var r=Math.round(e/o*this.freqDomain.length),s=Math.round(i/o*this.freqDomain.length),a=0,u=0,c=r;s>=c;c++)a+=this.freqDomain[c],u+=1;var p=a/u;return p}throw"invalid input for getEnergy()"}var h=Math.round(e/o*this.freqDomain.length);return this.freqDomain[h]},p5.FFT.prototype.getFreq=function(t,e){console.log("getFreq() is deprecated. Please use getEnergy() instead.");var i=this.getEnergy(t,e);return i},p5.FFT.prototype.smooth=function(t){t&&(this.smoothing=t),this.analyser.smoothingTimeConstant=t},p5.FFT.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.analyser.disconnect(),this.analyser=void 0};var e=function(t){t.freqDomain instanceof Float32Array==!1&&(t.freqDomain=new Float32Array(t.analyser.frequencyBinCount))},i=function(t){t.freqDomain instanceof Uint8Array==!1&&(t.freqDomain=new Uint8Array(t.analyser.frequencyBinCount))},o=function(t){t.timeDomain instanceof Float32Array==!1&&(t.timeDomain=new Float32Array(t.analyser.frequencyBinCount))},n=function(t){t.timeDomain instanceof Uint8Array==!1&&(t.timeDomain=new Uint8Array(t.analyser.frequencyBinCount))}}(master);var Tone_core_Tone;Tone_core_Tone=function(){"use strict";function t(t){return void 0===t}function e(t){return"function"==typeof t}var i;if(t(window.AudioContext)&&(window.AudioContext=window.webkitAudioContext),t(window.OfflineAudioContext)&&(window.OfflineAudioContext=window.webkitOfflineAudioContext),t(AudioContext))throw new Error("Web Audio is not supported in this browser");i=new AudioContext,e(AudioContext.prototype.createGain)||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),e(AudioContext.prototype.createDelay)||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),e(AudioContext.prototype.createPeriodicWave)||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),e(AudioBufferSourceNode.prototype.start)||(AudioBufferSourceNode.prototype.start=AudioBufferSourceNode.prototype.noteGrainOn),e(AudioBufferSourceNode.prototype.stop)||(AudioBufferSourceNode.prototype.stop=AudioBufferSourceNode.prototype.noteOff),e(OscillatorNode.prototype.start)||(OscillatorNode.prototype.start=OscillatorNode.prototype.noteOn),e(OscillatorNode.prototype.stop)||(OscillatorNode.prototype.stop=OscillatorNode.prototype.noteOff),e(OscillatorNode.prototype.setPeriodicWave)||(OscillatorNode.prototype.setPeriodicWave=OscillatorNode.prototype.setWaveTable),AudioNode.prototype._nativeConnect=AudioNode.prototype.connect,AudioNode.prototype.connect=function(e,i,o){if(e.input)Array.isArray(e.input)?(t(o)&&(o=0),this.connect(e.input[o])):this.connect(e.input,i,o);else try{e instanceof AudioNode?this._nativeConnect(e,i,o):this._nativeConnect(e,i)}catch(n){throw new Error("error connecting to node: "+e)}};var o=function(e,i){t(e)||1===e?this.input=this.context.createGain():e>1&&(this.input=new Array(e)),t(i)||1===i?this.output=this.context.createGain():i>1&&(this.output=new Array(e))};o.prototype.set=function(e,i,n){if(this.isObject(e))n=i;else if(this.isString(e)){var r={}; r[e]=i,e=r}for(var s in e){i=e[s];var a=this;if(-1!==s.indexOf(".")){for(var u=s.split("."),c=0;c1)for(var t=arguments[0],e=1;e1)for(var e=1;e0)for(var t=this,e=0;e0)for(var t=0;te;e++){var o=e/i*2-1;this._curve[e]=t(o,e)}return this._shaper.curve=this._curve,this},Object.defineProperty(t.WaveShaper.prototype,"curve",{get:function(){return this._shaper.curve},set:function(t){this._curve=new Float32Array(t),this._shaper.curve=this._curve}}),Object.defineProperty(t.WaveShaper.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){if(-1===["none","2x","4x"].indexOf(t))throw new Error("invalid oversampling: "+t);this._shaper.oversample=t}}),t.WaveShaper.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null,this},t.WaveShaper}(Tone_core_Tone);var Tone_core_Type;Tone_core_Type=function(Tone){"use strict";function getTransportBpm(){return Tone.Transport&&Tone.Transport.bpm?Tone.Transport.bpm.value:120}function getTransportTimeSignature(){return Tone.Transport&&Tone.Transport.timeSignature?Tone.Transport.timeSignature:4}function toNotationHelper(t,e,i,o){for(var n=this.toSeconds(t),r=this.notationToSeconds(o[o.length-1],e,i),s="",a=0;a1-c%1&&(c+=p),c=Math.floor(c),c>0){if(s+=1===c?o[a]:c.toString()+"*"+o[a],n-=c*u,r>n)break;s+=" + "}}return""===s&&(s="0"),s}Tone.Type={Default:"number",Time:"time",Frequency:"frequency",NormalRange:"normalRange",AudioRange:"audioRange",Decibels:"db",Interval:"interval",BPM:"bpm",Positive:"positive",Cents:"cents",Degrees:"degrees",MIDI:"midi",TransportTime:"transportTime",Ticks:"tick",Note:"note",Milliseconds:"milliseconds",Notation:"notation"},Tone.prototype.isNowRelative=function(){var t=new RegExp(/^\s*\+(.)+/i);return function(e){return t.test(e)}}(),Tone.prototype.isTicks=function(){var t=new RegExp(/^\d+i$/i);return function(e){return t.test(e)}}(),Tone.prototype.isNotation=function(){var t=new RegExp(/^[0-9]+[mnt]$/i);return function(e){return t.test(e)}}(),Tone.prototype.isTransportTime=function(){var t=new RegExp(/^(\d+(\.\d+)?\:){1,2}(\d+(\.\d+)?)?$/i);return function(e){return t.test(e)}}(),Tone.prototype.isNote=function(){var t=new RegExp(/^[a-g]{1}(b|#|x|bb)?-?[0-9]+$/i);return function(e){return t.test(e)}}(),Tone.prototype.isFrequency=function(){var t=new RegExp(/^\d*\.?\d+hz$/i);return function(e){return t.test(e)}}(),Tone.prototype.notationToSeconds=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=60/e;"1n"===t&&(t="1m");var n=parseInt(t,10),r=0;0===n&&(r=0);var s=t.slice(-1);return r="t"===s?4/n*2/3:"n"===s?4/n:"m"===s?n*i:0,o*r},Tone.prototype.transportTimeToSeconds=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=0,n=0,r=0,s=t.split(":");2===s.length?(o=parseFloat(s[0]),n=parseFloat(s[1])):1===s.length?n=parseFloat(s[0]):3===s.length&&(o=parseFloat(s[0]),n=parseFloat(s[1]),r=parseFloat(s[2]));var a=o*i+n+r/4;return a*(60/e)},Tone.prototype.ticksToSeconds=function(t,e){if(this.isUndef(Tone.Transport))return 0;t=parseFloat(t),e=this.defaultArg(e,getTransportBpm());var i=60/e/Tone.Transport.PPQ;return i*t},Tone.prototype.frequencyToSeconds=function(t){return 1/parseFloat(t)},Tone.prototype.samplesToSeconds=function(t){return t/this.context.sampleRate},Tone.prototype.secondsToSamples=function(t){return t*this.context.sampleRate},Tone.prototype.secondsToTransportTime=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=60/e,n=t/o,r=Math.floor(n/i),s=n%1*4;n=Math.floor(n)%i;var a=[r,n,s];return a.join(":")},Tone.prototype.secondsToFrequency=function(t){return 1/t},Tone.prototype.toTransportTime=function(t,e,i){var o=this.toSeconds(t);return this.secondsToTransportTime(o,e,i)},Tone.prototype.toFrequency=function(t,e){return this.isFrequency(t)?parseFloat(t):this.isNotation(t)||this.isTransportTime(t)?this.secondsToFrequency(this.toSeconds(t,e)):this.isNote(t)?this.noteToFrequency(t):t},Tone.prototype.toTicks=function(t){if(this.isUndef(Tone.Transport))return 0;var e=Tone.Transport.bpm.value,i=0;if(this.isNowRelative(t))t=t.replace("+",""),i=Tone.Transport.ticks;else if(this.isUndef(t))return Tone.Transport.ticks;var o=this.toSeconds(t),n=60/e,r=o/n,s=r*Tone.Transport.PPQ;return Math.round(s+i)},Tone.prototype.toSamples=function(t){var e=this.toSeconds(t);return Math.round(e*this.context.sampleRate)},Tone.prototype.toSeconds=function(time,now){if(now=this.defaultArg(now,this.now()),this.isNumber(time))return time;if(this.isString(time)){var plusTime=0;this.isNowRelative(time)&&(time=time.replace("+",""),plusTime=now);var betweenParens=time.match(/\(([^)(]+)\)/g);if(betweenParens)for(var j=0;j0&&(toQuantize="+"+toQuantize,plusTime=0);var subdivision=quantizationSplit[1].trim();time=Tone.Transport.quantize(toQuantize,subdivision)}else{var components=time.split(/[\(\)\-\+\/\*]/);if(components.length>1){for(var originalTime=time,i=0;io&&(i+=-12*o);var n=scaleIndexToNote[i%12];return n+o.toString()},Tone.prototype.intervalToFrequencyRatio=function(t){return Math.pow(2,t/12)},Tone.prototype.midiToNote=function(t){var e=Math.floor(t/12)-1,i=t%12;return scaleIndexToNote[i]+e},Tone.prototype.noteToMidi=function(t){var e=t.split(/(\d+)/);if(3===e.length){var i=noteToScaleIndex[e[0].toLowerCase()],o=e[1];return i+12*(parseInt(o,10)+1)}return 0},Tone.prototype.midiToFrequency=function(t){return Tone.A4*Math.pow(2,(t-69)/12)},Tone}(Tone_core_Tone);var Tone_core_Param;Tone_core_Param=function(t){"use strict";return t.Param=function(){var e=this.optionsObject(arguments,["param","units","convert"],t.Param.defaults);this._param=this.input=e.param,this.units=e.units,this.convert=e.convert,this.overridden=!1,this.isUndef(e.value)||(this.value=e.value)},t.extend(t.Param),t.Param.defaults={units:t.Type.Default,convert:!0,param:void 0},Object.defineProperty(t.Param.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(t){var e=this._fromUnits(t);this._param.value=e}}),t.Param.prototype._fromUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Time:return this.toSeconds(e);case t.Type.Frequency:return this.toFrequency(e);case t.Type.Decibels:return this.dbToGain(e);case t.Type.NormalRange:return Math.min(Math.max(e,0),1);case t.Type.AudioRange:return Math.min(Math.max(e,-1),1);case t.Type.Positive:return Math.max(e,0);default:return e}},t.Param.prototype._toUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Decibels:return this.gainToDb(e);default:return e}},t.Param.prototype._minOutput=1e-5,t.Param.prototype.setValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.setValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.setRampPoint=function(t){t=this.defaultArg(t,this.now());var e=this._param.value;return this._param.setValueAtTime(e,t),this},t.Param.prototype.linearRampToValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.linearRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValueAtTime=function(t,e){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),this._param.exponentialRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValue=function(t,e){var i=this.now(),o=this.value;return this.setValueAtTime(Math.max(o,this._minOutput),i),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.linearRampToValue=function(t,e){var i=this.now();return this.setRampPoint(i),this.linearRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.setTargetAtTime=function(t,e,i){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),i=Math.max(this._minOutput,i),this._param.setTargetAtTime(t,this.toSeconds(e),i),this},t.Param.prototype.setValueCurveAtTime=function(t,e,i){for(var o=0;o0?this.oscillator.frequency.exponentialRampToValueAtTime(e,o+i+n):this.oscillator.frequency.linearRampToValueAtTime(e,o+i+n),this.phaseAmount&&this.phase(this.phaseAmount)}},p5.Oscillator.prototype.getFreq=function(){return this.oscillator.frequency.value},p5.Oscillator.prototype.setType=function(t){this.oscillator.type=t},p5.Oscillator.prototype.getType=function(){return this.oscillator.type},p5.Oscillator.prototype.connect=function(e){e?e.hasOwnProperty("input")?(this.panner.connect(e.input),this.connection=e.input):(this.panner.connect(e),this.connection=e):this.panner.connect(t.input)},p5.Oscillator.prototype.disconnect=function(){this.output.disconnect(),this.panner.disconnect(),this.output.connect(this.panner),this.oscMods=[]},p5.Oscillator.prototype.pan=function(t,e){this.panPosition=t,this.panner.pan(t,e)},p5.Oscillator.prototype.getPan=function(){return this.panPosition},p5.Oscillator.prototype.dispose=function(){var e=t.soundArray.indexOf(this);if(t.soundArray.splice(e,1),this.oscillator){var i=t.audiocontext.currentTime;this.stop(i),this.disconnect(),this.oscillator.disconnect(),this.panner=null,this.oscillator=null}this.osc2&&this.osc2.dispose()},p5.Oscillator.prototype.phase=function(e){var i=p5.prototype.map(e,0,1,0,1/this.f),o=t.audiocontext.currentTime;this.phaseAmount=e,this.dNode||(this.dNode=t.audiocontext.createDelay(),this.oscillator.disconnect(),this.oscillator.connect(this.dNode),this.dNode.connect(this.output)),this.dNode.delayTime.setValueAtTime(i,o)};var n=function(t,e,i,o,n){var r=t.oscillator;for(var s in t.mathOps)t.mathOps[s]instanceof n&&(r.disconnect(),t.mathOps[s].dispose(),i=s,i0&&(r=t.mathOps[s-1]),r.disconnect(),r.connect(e),e.connect(o),t.mathOps[i]=e,t};p5.Oscillator.prototype.add=function(t){var i=new e(t),o=this.mathOps.length-1,r=this.output;return n(this,i,o,r,e)},p5.Oscillator.prototype.mult=function(t){var e=new i(t),o=this.mathOps.length-1,r=this.output;return n(this,e,o,r,i)},p5.Oscillator.prototype.scale=function(t,e,i,r){var s,a;4===arguments.length?(s=p5.prototype.map(i,t,e,0,1)-.5,a=p5.prototype.map(r,t,e,0,1)-.5):(s=arguments[0],a=arguments[1]);var u=new o(s,a),c=this.mathOps.length-1,p=this.output;return n(this,u,c,p,o)},p5.SinOsc=function(t){p5.Oscillator.call(this,t,"sine")},p5.SinOsc.prototype=Object.create(p5.Oscillator.prototype),p5.TriOsc=function(t){p5.Oscillator.call(this,t,"triangle")},p5.TriOsc.prototype=Object.create(p5.Oscillator.prototype),p5.SawOsc=function(t){p5.Oscillator.call(this,t,"sawtooth")},p5.SawOsc.prototype=Object.create(p5.Oscillator.prototype),p5.SqrOsc=function(t){p5.Oscillator.call(this,t,"square")},p5.SqrOsc.prototype=Object.create(p5.Oscillator.prototype)}(master,Tone_signal_Signal,Tone_signal_Add,Tone_signal_Multiply,Tone_signal_Scale);var Tone_core_Timeline;Tone_core_Timeline=function(t){"use strict";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.addEvent=function(t){if(this.isUndef(t.time))throw new Error("events must have a time attribute");if(t.time=this.toSeconds(t.time),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.removeEvent=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.getEvent=function(t){t=this.toSeconds(t);var e=this._search(t);return-1!==e?this._timeline[e]:null},t.Timeline.prototype.getEventAfter=function(t){t=this.toSeconds(t);var e=this._search(t);return e+1=0?this._timeline[e-1]:null},t.Timeline.prototype.cancel=function(t){if(this._timeline.length>1){t=this.toSeconds(t);var e=this._search(t);this._timeline=e>=0?this._timeline.slice(0,e):[]}else 1===this._timeline.length&&this._timeline[0].time>=t&&(this._timeline=[]);return this},t.Timeline.prototype.cancelBefore=function(t){if(this._timeline.length){t=this.toSeconds(t);var e=this._search(t);e>=0&&(this._timeline=this._timeline.slice(e+1))}return this},t.Timeline.prototype._search=function(t){for(var e=0,i=this._timeline.length,o=i;o>=e&&i>e;){var n=Math.floor(e+(o-e)/2),r=this._timeline[n];if(r.time===t){for(var s=n;st?o=n-1:r.time=o;o++)t(this._timeline[o]);if(this._iterating=!1,this._toRemove.length>0){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){t=this.toSeconds(t);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}(Tone_core_Tone);var Tone_signal_TimelineSignal;Tone_signal_TimelineSignal=function(t){"use strict";return t.TimelineSignal=function(){var e=this.optionsObject(arguments,["value","units"],t.Signal.defaults);t.Signal.apply(this,e),e.param=this._param,t.Param.call(this,e),this._events=new t.Timeline(10),this._initial=this._fromUnits(this._param.value)},t.extend(t.TimelineSignal,t.Param),t.TimelineSignal.Type={Linear:"linear",Exponential:"exponential",Target:"target",Set:"set"},Object.defineProperty(t.TimelineSignal.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(t){var e=this._fromUnits(t);this._initial=e,this._param.value=e}}),t.TimelineSignal.prototype.setValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.addEvent({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.addEvent({type:t.TimelineSignal.Type.Linear,value:e,time:i}),this._param.linearRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.exponentialRampToValueAtTime=function(e,i){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),i=this.toSeconds(i),this._events.addEvent({type:t.TimelineSignal.Type.Exponential,value:e,time:i}),this._param.exponentialRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.setTargetAtTime=function(e,i,o){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),o=Math.max(this._minOutput,o),i=this.toSeconds(i),this._events.addEvent({type:t.TimelineSignal.Type.Target,value:e,time:i,constant:o}),this._param.setTargetAtTime(e,i,o),this},t.TimelineSignal.prototype.cancelScheduledValues=function(t){return this._events.cancel(t),this._param.cancelScheduledValues(this.toSeconds(t)),this},t.TimelineSignal.prototype.setRampPoint=function(e){e=this.toSeconds(e);var i=this.getValueAtTime(e),o=this._searchAfter(e); -return o&&(this.cancelScheduledValues(e),o.type===t.TimelineSignal.Type.Linear?this.linearRampToValueAtTime(i,e):o.type===t.TimelineSignal.Type.Exponential&&this.exponentialRampToValueAtTime(i,e)),this.setValueAtTime(i,e),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.getEvent(t)},t.TimelineSignal.prototype._searchAfter=function(t){return this._events.getEventAfter(t)},t.TimelineSignal.prototype.getValueAtTime=function(e){var i=this._searchAfter(e),o=this._searchBefore(e),n=this._initial;if(null===o)n=this._initial;else if(o.type===t.TimelineSignal.Type.Target){var r,s=this._events.getEventBefore(o.time);r=null===s?this._initial:s.value,n=this._exponentialApproach(o.time,r,o.value,o.constant,e)}else n=null===i?o.value:i.type===t.TimelineSignal.Type.Linear?this._linearInterpolate(o.time,o.value,i.time,i.value,e):i.type===t.TimelineSignal.Type.Exponential?this._exponentialInterpolate(o.time,o.value,i.time,i.value,e):o.value;return n},t.TimelineSignal.prototype.connect=t.SignalBase.prototype.connect,t.TimelineSignal.prototype._exponentialApproach=function(t,e,i,o,n){return i+(e-i)*Math.exp(-(n-t)/o)},t.TimelineSignal.prototype._linearInterpolate=function(t,e,i,o,n){return e+(o-e)*((n-t)/(i-t))},t.TimelineSignal.prototype._exponentialInterpolate=function(t,e,i,o,n){return e=Math.max(this._minOutput,e),e*Math.pow(o/e,(n-t)/(i-t))},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}(Tone_core_Tone,Tone_signal_Signal);var env;env=function(){"use strict";var t=master,e=Tone_signal_Add,i=Tone_signal_Multiply,o=Tone_signal_Scale,n=Tone_signal_TimelineSignal,r=Tone_core_Tone;r.setContext(t.audiocontext),p5.Env=function(e,i,o,r,s,a,u,c){this.aTime=e,this.aLevel=i,this.dTime=o||0,this.dLevel=r||0,this.sTime=s||0,this.sLevel=a||0,this.rTime=u||0,this.rLevel=c||0,this.output=t.audiocontext.createGain(),this.control=new n,this.control.connect(this.output),this.connection=null,this.mathOps=[this.control],this.sourceToClear=null,this.wasTriggered=!1,t.soundArray.push(this)},p5.Env.prototype.set=function(t,e,i,o,n,r,s,a){this.aTime=t,this.aLevel=e,this.dTime=i||0,this.dLevel=o||0,this.sTime=n||0,this.sLevel=r||0,this.rTime=s||0,this.rLevel=a||0},p5.Env.prototype.setInput=function(){for(var t=0;tn;n++)o[n]=1;var r=t.createBufferSource();return r.buffer=i,r.loop=!0,r}var e=master;p5.Pulse=function(i,o){p5.Oscillator.call(this,i,"sawtooth"),this.w=o||0,this.osc2=new p5.SawOsc(i),this.dNode=e.audiocontext.createDelay(),this.dcOffset=t(),this.dcGain=e.audiocontext.createGain(),this.dcOffset.connect(this.dcGain),this.dcGain.connect(this.output),this.f=i||440;var n=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=n,this.dcGain.gain.value=1.7*(.5-this.w),this.osc2.disconnect(),this.osc2.panner.disconnect(),this.osc2.amp(-1),this.osc2.output.connect(this.dNode),this.dNode.connect(this.output),this.output.gain.value=1,this.output.connect(this.panner)},p5.Pulse.prototype=Object.create(p5.Oscillator.prototype),p5.Pulse.prototype.width=function(t){if("number"==typeof t){if(1>=t&&t>=0){this.w=t;var e=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=e}this.dcGain.gain.value=1.7*(.5-this.w)}else{t.connect(this.dNode.delayTime);var i=new p5.SignalAdd(-.5);i.setInput(t),i=i.mult(-1),i=i.mult(1.7),i.connect(this.dcGain.gain)}},p5.Pulse.prototype.start=function(i,o){var n=e.audiocontext.currentTime,r=o||0;if(!this.started){var s=i||this.f,a=this.oscillator.type;this.oscillator=e.audiocontext.createOscillator(),this.oscillator.frequency.setValueAtTime(s,n),this.oscillator.type=a,this.oscillator.connect(this.output),this.oscillator.start(r+n),this.osc2.oscillator=e.audiocontext.createOscillator(),this.osc2.oscillator.frequency.setValueAtTime(s,r+n),this.osc2.oscillator.type=a,this.osc2.oscillator.connect(this.osc2.output),this.osc2.start(r+n),this.freqNode=[this.oscillator.frequency,this.osc2.oscillator.frequency],this.dcOffset=t(),this.dcOffset.connect(this.dcGain),this.dcOffset.start(r+n),void 0!==this.mods&&void 0!==this.mods.frequency&&(this.mods.frequency.connect(this.freqNode[0]),this.mods.frequency.connect(this.freqNode[1])),this.started=!0,this.osc2.started=!0}},p5.Pulse.prototype.stop=function(t){if(this.started){var i=t||0,o=e.audiocontext.currentTime;this.oscillator.stop(i+o),this.osc2.oscillator.stop(i+o),this.dcOffset.stop(i+o),this.started=!1,this.osc2.started=!1}},p5.Pulse.prototype.freq=function(t,i,o){if("number"==typeof t){this.f=t;var n=e.audiocontext.currentTime,i=i||0,o=o||0,r=this.oscillator.frequency.value;this.oscillator.frequency.cancelScheduledValues(n),this.oscillator.frequency.setValueAtTime(r,n+o),this.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n),this.osc2.oscillator.frequency.cancelScheduledValues(n),this.osc2.oscillator.frequency.setValueAtTime(r,n+o),this.osc2.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n),this.freqMod&&(this.freqMod.output.disconnect(),this.freqMod=null)}else t.output&&(t.output.disconnect(),t.output.connect(this.oscillator.frequency),t.output.connect(this.osc2.oscillator.frequency),this.freqMod=t)}}(master,oscillator);var noise;noise=function(){"use strict";var t=master;p5.Noise=function(){p5.Oscillator.call(this),delete this.f,delete this.freq,delete this.oscillator,this.buffer=e},p5.Noise.prototype=Object.create(p5.Oscillator.prototype);var e=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),o=i.getChannelData(0),n=0;e>n;n++)o[n]=2*Math.random()-1;return i.type="white",i}(),i=function(){var e,i,o,n,r,s,a,u=2*t.audiocontext.sampleRate,c=t.audiocontext.createBuffer(1,u,t.audiocontext.sampleRate),p=c.getChannelData(0);e=i=o=n=r=s=a=0;for(var h=0;u>h;h++){var l=2*Math.random()-1;e=.99886*e+.0555179*l,i=.99332*i+.0750759*l,o=.969*o+.153852*l,n=.8665*n+.3104856*l,r=.55*r+.5329522*l,s=-.7616*s-.016898*l,p[h]=e+i+o+n+r+s+a+.5362*l,p[h]*=.11,a=.115926*l}return c.type="pink",c}(),o=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),o=i.getChannelData(0),n=0,r=0;e>r;r++){var s=2*Math.random()-1;o[r]=(n+.02*s)/1.02,n=o[r],o[r]*=3.5}return i.type="brown",i}();p5.Noise.prototype.setType=function(n){switch(n){case"white":this.buffer=e;break;case"pink":this.buffer=i;break;case"brown":this.buffer=o;break;default:this.buffer=e}if(this.started){var r=t.audiocontext.currentTime;this.stop(r),this.start(r+.01)}},p5.Noise.prototype.getType=function(){return this.buffer.type},p5.Noise.prototype.start=function(){this.started&&this.stop(),this.noise=t.audiocontext.createBufferSource(),this.noise.buffer=this.buffer,this.noise.loop=!0,this.noise.connect(this.output);var e=t.audiocontext.currentTime;this.noise.start(e),this.started=!0},p5.Noise.prototype.stop=function(){var e=t.audiocontext.currentTime;this.noise&&(this.noise.stop(e),this.started=!1)},p5.Noise.prototype.dispose=function(){var e=t.audiocontext.currentTime,i=t.soundArray.indexOf(this);t.soundArray.splice(i,1),this.noise&&(this.noise.disconnect(),this.stop(e)),this.output&&this.output.disconnect(),this.panner&&this.panner.disconnect(),this.output=null,this.panner=null,this.buffer=null,this.noise=null}}(master);var audioin;audioin=function(){"use strict";var t=master;p5.AudioIn=function(){this.input=t.audiocontext.createGain(),this.output=t.audiocontext.createGain(),this.stream=null,this.mediaStream=null,this.currentSource=0,this.enabled=!1,this.amplitude=new p5.Amplitude,this.output.connect(this.amplitude.input),"undefined"==typeof window.MediaStreamTrack?window.alert("This browser does not support MediaStreamTrack"):"function"==typeof window.MediaStreamTrack.getSources&&window.MediaStreamTrack.getSources(this._gotSources),t.soundArray.push(this)},p5.AudioIn.prototype.start=function(e,i){var o=this;if(t.inputSources[o.currentSource]){var n=t.inputSources[o.currentSource].id,r={audio:{optional:[{sourceId:n}]}};window.navigator.getUserMedia(r,this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=t.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),e&&e(),o.amplitude.setInput(o.output)},this._onStreamError=function(t){i?i(t):console.error(t)})}else window.navigator.getUserMedia({audio:!0},this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=t.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),o.amplitude.setInput(o.output),e&&e()},this._onStreamError=function(t){i?i(t):console.error(t)})},p5.AudioIn.prototype.stop=function(){this.stream&&this.stream.stop()},p5.AudioIn.prototype.connect=function(e){this.output.connect(e?e.hasOwnProperty("input")?e.input:e.hasOwnProperty("analyser")?e.analyser:e:t.input)},p5.AudioIn.prototype.disconnect=function(t){this.output.disconnect(t),this.output.connect(this.amplitude.input)},p5.AudioIn.prototype.getLevel=function(t){return t&&(this.amplitude.smoothing=t),this.amplitude.getLevel()},p5.AudioIn.prototype._gotSources=function(t){for(var e=0;e0?t.inputSources:"This browser does not support MediaStreamTrack.getSources()"},p5.AudioIn.prototype.getSources=function(e){"function"==typeof window.MediaStreamTrack.getSources?window.MediaStreamTrack.getSources(function(i){for(var o=0,n=i.length;n>o;o++){var r=i[o];"audio"===r.kind&&t.inputSources.push(r)}e(t.inputSources)}):console.log("This browser does not support MediaStreamTrack.getSources()")},p5.AudioIn.prototype.setSource=function(e){var i=this;t.inputSources.length>0&&e=t&&(t=1),"number"==typeof t?(i.biquad.frequency.value=t,i.biquad.frequency.cancelScheduledValues(this.ac.currentTime+.01+o),i.biquad.frequency.exponentialRampToValueAtTime(t,this.ac.currentTime+.02+o)):t&&t.connect(this.biquad.frequency),i.biquad.frequency.value},p5.Filter.prototype.res=function(t,e){var i=this,o=e||0;return"number"==typeof t?(i.biquad.Q.value=t,i.biquad.Q.cancelScheduledValues(i.ac.currentTime+.01+o),i.biquad.Q.linearRampToValueAtTime(t,i.ac.currentTime+.02+o)):t&&freq.connect(this.biquad.Q),i.biquad.Q.value},p5.Filter.prototype.setType=function(t){this.biquad.type=t},p5.Filter.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Filter.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Filter.prototype.disconnect=function(){this.output.disconnect()},p5.Filter.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.input=void 0,this.output.disconnect(),this.output=void 0,this.biquad.disconnect(),this.biquad=void 0},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)}(master);var delay;delay=function(){"use strict";var t=master;p5.Delay=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this._split=this.ac.createChannelSplitter(2),this._merge=this.ac.createChannelMerger(2),this._leftGain=this.ac.createGain(),this._rightGain=this.ac.createGain(),this.leftDelay=this.ac.createDelay(),this.rightDelay=this.ac.createDelay(),this._leftFilter=new p5.Filter,this._rightFilter=new p5.Filter,this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._leftFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._rightFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._leftFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this._rightFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this.input.connect(this._split),this.leftDelay.connect(this._leftGain),this.rightDelay.connect(this._rightGain),this._leftGain.connect(this._leftFilter.input),this._rightGain.connect(this._rightFilter.input),this._merge.connect(this.output),this.output.connect(p5.soundOut.input),this._leftFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this._rightFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this.setType(0),this._maxDelay=this.leftDelay.delayTime.maxValue,t.soundArray.push(this)},p5.Delay.prototype.process=function(t,e,i,o){var n=i||0,r=e||0;if(n>=1)throw new Error("Feedback value will force a positive feedback loop.");if(r>=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.setValueAtTime(n,this.ac.currentTime),this._rightGain.gain.setValueAtTime(n,this.ac.currentTime),o&&(this._leftFilter.freq(o),this._rightFilter.freq(o))},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("number"!=typeof t)t.connect(this._leftGain.gain),t.connect(this._rightGain.gain);else{if(t>=1)throw new Error("Feedback value will force a positive feedback loop.");this._leftGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime),this._rightGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime)}},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._leftFilter.output.connect(this._merge,0,1),this._leftFilter.output.connect(this.leftDelay),this._leftFilter.output.connect(this.rightDelay)}},p5.Delay.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Delay.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Delay.prototype.disconnect=function(){this.output.disconnect()},p5.Delay.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.output.disconnect(),this._split.disconnect(),this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._merge.disconnect(),this._leftGain.disconnect(),this._rightGain.disconnect(),this.leftDelay.disconnect(),this.rightDelay.disconnect(),this.input=void 0,this.output=void 0,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}}(master,filter);var reverb;reverb=function(){"use strict";var t=master,e=errorHandler;p5.Reverb=function(){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse(),this.connect(),t.soundArray.push(this)},p5.Reverb.prototype.process=function(t,e,i,o){t.connect(this.input);var n=!1;e&&(this._seconds=e,n=!0),i&&(this._decay=i),o&&(this._reverse=o),n&&this._buildImpulse()},p5.Reverb.prototype.set=function(t,e,i){var o=!1;t&&(this._seconds=t,o=!0),e&&(this._decay=e),i&&(this._reverse=i),o&&this._buildImpulse()},p5.Reverb.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Reverb.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Reverb.prototype.disconnect=function(){this.output.disconnect()},p5.Reverb.prototype._buildImpulse=function(){var t,e,i=this.ac.sampleRate,o=i*this._seconds,n=this._decay,r=this.ac.createBuffer(2,o,i),s=r.getChannelData(0),a=r.getChannelData(1);for(e=0;o>e;e++)t=this.reverse?o-e:e,s[e]=(2*Math.random()-1)*Math.pow(1-t/o,n),a[e]=(2*Math.random()-1)*Math.pow(1-t/o,n);this.convolverNode.buffer=r},p5.Reverb.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.convolverNode&&(this.convolverNode.buffer=null,this.convolverNode=null),"undefined"!=typeof this.output&&(this.output.disconnect(),this.output=null),"undefined"!=typeof this.panner&&(this.panner.disconnect(),this.panner=null)},p5.Convolver=function(e,i,o){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),e?(this.impulses=[],this._loadBuffer(e,i,o)):(this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse()),this.connect(),t.soundArray.push(this)},p5.Convolver.prototype=Object.create(p5.Reverb.prototype),p5.prototype.registerPreloadMethod("createConvolver",p5.prototype),p5.prototype.createConvolver=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var o=new p5.Convolver(t,e,i);return o.impulses=[],o},p5.Convolver.prototype._loadBuffer=function(t,i,o){var t=p5.prototype._checkFileFormats(t),n=this,r=(new Error).stack,s=p5.prototype.getAudioContext(),a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer",a.onload=function(){if(200==a.status)s.decodeAudioData(a.response,function(e){var o={},r=t.split("/");o.name=r[r.length-1],o.audioBuffer=e,n.impulses.push(o),n.convolverNode.buffer=o.audioBuffer,i&&i(o)},function(){var t=new e("decodeAudioData",r,n.url),i="AudioContext error at decodeAudioData for "+n.url;o?(t.msg=i,o(t)):console.error(i+"\n The error stack trace includes: \n"+t.stack)});else{var u=new e("loadConvolver",r,n.url),c="Unable to load "+n.url+". The request status was: "+a.status+" ("+a.statusText+")";o?(u.message=c,o(u)):console.error(c+"\n The error stack trace includes: \n"+u.stack)}},a.onerror=function(){var t=new e("loadConvolver",r,n.url),i="There was no response from the server at "+n.url+". Check the url and internet connectivity.";o?(t.message=i,o(t)):console.error(i+"\n The error stack trace includes: \n"+t.stack)},a.send()},p5.Convolver.prototype.set=null,p5.Convolver.prototype.process=function(t){t.connect(this.input)},p5.Convolver.prototype.impulses=[],p5.Convolver.prototype.addImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this._loadBuffer(t,e,i)},p5.Convolver.prototype.resetImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this.impulses=[],this._loadBuffer(t,e,i)},p5.Convolver.prototype.toggleImpulse=function(t){if("number"==typeof t&&tthis._nextTick;){o>this._nextTick+this._threshold&&(this._nextTick=o);var a=this._nextTick;this._nextTick+=1/this.frequency.getValueAtTime(this._nextTick),this.callback(a),this.ticks++}else s===t.State.Stopped&&(this._nextTick=-1,this.ticks=0)},t.Clock.prototype.getStateAtTime=function(t){return this._state.getStateAtTime(t)},t.Clock.prototype.dispose=function(){cancelAnimationFrame(this._loopID),t.TimelineState.prototype.dispose.call(this),this._writable("frequency"),this.frequency.dispose(),this.frequency=null,this._boundLoop=t.noOp,this._nextTick=1/0,this.callback=null,this._state.dispose(),this._state=null},t.Clock}(Tone_core_Tone,Tone_signal_TimelineSignal);var metro;metro=function(){"use strict";{var t=master,e=Tone_core_Clock;t.audiocontext}p5.Metro=function(){this.clock=new e({callback:this.ontick.bind(this)}),this.syncedParts=[],this.bpm=120,this._init(),this.tickCallback=function(){}};var i=0,o=0;p5.Metro.prototype.ontick=function(e){var n=e-i,r=e-t.audiocontext.currentTime;if(!(-.02>=n-o)){i=e;for(var s in this.syncedParts){var a=this.syncedParts[s];a.incrementStep(r);for(var u in a.phrases){var c=a.phrases[u],p=c.sequence,h=this.metroTicks%p.length;0!==p[h]&&(this.metroTicks=t.parts.length?(t.scoreStep=0,t.onended()):(t.scoreStep=0,t.parts[t.currentPart-1].stop(),t.parts[t.currentPart].start())}var e=master,i=120;p5.prototype.setBPM=function(t,o){i=t;for(var n in e.parts)e.parts[n].setBPM(i,o)},p5.Phrase=function(t,e,i){this.phraseStep=0,this.name=t,this.callback=e,this.sequence=i},p5.Part=function(t,o){this.length=t||0,this.partStep=0,this.phrases=[],this.looping=!1,this.isPlaying=!1,this.onended=function(){this.stop()},this.tatums=o||.0625,this.metro=new p5.Metro,this.metro._init(),this.metro.beatLength(this.tatums),this.metro.setBPM(i),e.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,i){var o;if(3===arguments.length)o=new p5.Phrase(t,e,i);else{if(!(arguments[0]instanceof p5.Phrase))throw"invalid input. addPhrase accepts name, callback, array or a p5.Phrase";o=arguments[0]}this.phrases.push(o),o.sequence.length>this.length&&(this.length=o.sequence.length)},p5.Part.prototype.removePhrase=function(t){for(var e in this.phrases)this.phrases[e].name===t&&this.phrases.split(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 i in this.phrases)this.phrases[i].name===t&&(this.phrases[i].sequence=e)},p5.Part.prototype.incrementStep=function(t){this.partStepr;)o[r++]=t[n],o[r++]=e[n],n++;return o}function e(t,e,i){for(var o=i.length,n=0;o>n;n++)t.setUint8(e+n,i.charCodeAt(n))}var i=master,o=i.audiocontext;p5.SoundRecorder=function(){this.input=o.createGain(),this.output=o.createGain(),this.recording=!1,this.bufferSize=1024,this._channels=2,this._clear(),this._jsNode=o.createScriptProcessor(this.bufferSize,this._channels,2),this._jsNode.onaudioprocess=this._audioprocess.bind(this),this._callback=function(){},this._jsNode.connect(p5.soundOut._silentNode),this.setInput(),i.soundArray.push(this)},p5.SoundRecorder.prototype.setInput=function(t){this.input.disconnect(),this.input=null,this.input=o.createGain(),this.input.connect(this._jsNode),this.input.connect(this.output),t?t.connect(this.input):p5.soundOut.output.connect(this.input)},p5.SoundRecorder.prototype.record=function(t,e,i){this.recording=!0,e&&(this.sampleLimit=Math.round(e*o.sampleRate)),t&&i?this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer),i()}:t&&(this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer)})},p5.SoundRecorder.prototype.stop=function(){this.recording=!1,this._callback(),this._clear()},p5.SoundRecorder.prototype._clear=function(){this._leftBuffers=[],this._rightBuffers=[],this.recordedSamples=0,this.sampleLimit=null},p5.SoundRecorder.prototype._audioprocess=function(t){if(this.recording!==!1&&this.recording===!0)if(this.sampleLimit&&this.recordedSamples>=this.sampleLimit)this.stop();else{var e=t.inputBuffer.getChannelData(0),i=t.inputBuffer.getChannelData(1);this._leftBuffers.push(new Float32Array(e)),this._rightBuffers.push(new Float32Array(i)),this.recordedSamples+=this.bufferSize}},p5.SoundRecorder.prototype._getBuffer=function(){var t=[];return t.push(this._mergeBuffers(this._leftBuffers)),t.push(this._mergeBuffers(this._rightBuffers)),t},p5.SoundRecorder.prototype._mergeBuffers=function(t){for(var e=new Float32Array(this.recordedSamples),i=0,o=t.length,n=0;o>n;n++){var r=t[n];e.set(r,i),i+=r.length}return e},p5.SoundRecorder.prototype.dispose=function(){this._clear();var t=i.soundArray.indexOf(this);i.soundArray.splice(t,1),this._callback=function(){},this.input&&this.input.disconnect(),this.input=null,this._jsNode=null},p5.prototype.saveSound=function(i,o){var n=i.buffer.getChannelData(0),r=i.buffer.getChannelData(1),s=t(n,r),a=new ArrayBuffer(44+2*s.length),u=new DataView(a);e(u,0,"RIFF"),u.setUint32(4,44+2*s.length,!0),e(u,8,"WAVE"),e(u,12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,2,!0),u.setUint32(24,44100,!0),u.setUint32(28,176400,!0),u.setUint16(32,4,!0),u.setUint16(34,16,!0),e(u,36,"data"),u.setUint32(40,2*s.length,!0);for(var c=s.length,p=44,h=1,l=0;c>l;l++)u.setInt16(p,32767*s[l]*h,!0),p+=2;p5.prototype.writeFile([u],o,"wav")}}(sndcore,master);var peakdetect;peakdetect=function(){"use strict";p5.PeakDetect=function(t,e,i,o){this.framesPerPeak=o||20,this.framesSinceLastPeak=0,this.decayRate=.95,this.threshold=i||.35,this.cutoff=0,this.cutoffMult=1.5,this.energy=0,this.penergy=0,this.currentValue=0,this.isDetected=!1,this.f1=t||40,this.f2=e||2e4,this._onPeak=function(){}},p5.PeakDetect.prototype.update=function(t){var e=this.energy=t.getEnergy(this.f1,this.f2)/255;e>this.cutoff&&e>this.threshold&&e-this.penergy>0?(this._onPeak(),this.isDetected=!0,this.cutoff=e*this.cutoffMult,this.framesSinceLastPeak=0):(this.isDetected=!1,this.framesSinceLastPeak<=this.framesPerPeak?this.framesSinceLastPeak++:(this.cutoff*=this.decayRate,this.cutoff=Math.max(this.cutoff,this.threshold))),this.currentValue=e,this.penergy=e},p5.PeakDetect.prototype.onPeak=function(t,e){var i=this;i._onPeak=function(){t(i.energy,e)}}}(master);var gain;gain=function(){"use strict";var t=master;p5.Gain=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.output),t.soundArray.push(this)},p5.Gain.prototype.setInput=function(t){t.connect(this.input)},p5.Gain.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Gain.prototype.disconnect=function(){this.output.disconnect()},p5.Gain.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o),this.output.gain.linearRampToValueAtTime(e,n+o+i)},p5.Gain.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.output.disconnect(),this.input.disconnect(),this.output=void 0,this.input=void 0}}(master,sndcore);var src_app;src_app=function(){"use strict";var t=sndcore;return t}(sndcore,master,helpers,errorHandler,panner,soundfile,amplitude,fft,signal,oscillator,env,pulse,noise,audioin,filter,delay,reverb,metro,looper,soundRecorder,peakdetect,gain)}); \ No newline at end of file +return o&&(this.cancelScheduledValues(e),o.type===t.TimelineSignal.Type.Linear?this.linearRampToValueAtTime(i,e):o.type===t.TimelineSignal.Type.Exponential&&this.exponentialRampToValueAtTime(i,e)),this.setValueAtTime(i,e),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.getEvent(t)},t.TimelineSignal.prototype._searchAfter=function(t){return this._events.getEventAfter(t)},t.TimelineSignal.prototype.getValueAtTime=function(e){var i=this._searchAfter(e),o=this._searchBefore(e),n=this._initial;if(null===o)n=this._initial;else if(o.type===t.TimelineSignal.Type.Target){var r,s=this._events.getEventBefore(o.time);r=null===s?this._initial:s.value,n=this._exponentialApproach(o.time,r,o.value,o.constant,e)}else n=null===i?o.value:i.type===t.TimelineSignal.Type.Linear?this._linearInterpolate(o.time,o.value,i.time,i.value,e):i.type===t.TimelineSignal.Type.Exponential?this._exponentialInterpolate(o.time,o.value,i.time,i.value,e):o.value;return n},t.TimelineSignal.prototype.connect=t.SignalBase.prototype.connect,t.TimelineSignal.prototype._exponentialApproach=function(t,e,i,o,n){return i+(e-i)*Math.exp(-(n-t)/o)},t.TimelineSignal.prototype._linearInterpolate=function(t,e,i,o,n){return e+(o-e)*((n-t)/(i-t))},t.TimelineSignal.prototype._exponentialInterpolate=function(t,e,i,o,n){return e=Math.max(this._minOutput,e),e*Math.pow(o/e,(n-t)/(i-t))},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}(Tone_core_Tone,Tone_signal_Signal);var env;env=function(){"use strict";var t=master,e=Tone_signal_Add,i=Tone_signal_Multiply,o=Tone_signal_Scale,n=Tone_signal_TimelineSignal,r=Tone_core_Tone;r.setContext(t.audiocontext),p5.Env=function(e,i,o,r,s,a,u,c){var p=t.audiocontext.currentTime;this.aTime=e,this.aLevel=i,this.dTime=o||0,this.dLevel=r||0,this.sTime=s||0,this.sLevel=a||0,this.rTime=u||0,this.rLevel=c||0,this.output=t.audiocontext.createGain(),this.control=new n,this.control.connect(this.output),this.control.setValueAtTime(0,p),this.connection=null,this.mathOps=[this.control],this.sourceToClear=null,this.wasTriggered=!1,t.soundArray.push(this)},p5.Env.prototype.set=function(t,e,i,o,n,r,s,a){this.aTime=t,this.aLevel=e,this.dTime=i||0,this.dLevel=o||0,this.sTime=n||0,this.sLevel=r||0,this.rTime=s||0,this.rLevel=a||0},p5.Env.prototype.setInput=function(){for(var t=0;tn;n++)o[n]=1;var r=t.createBufferSource();return r.buffer=i,r.loop=!0,r}var e=master;p5.Pulse=function(i,o){p5.Oscillator.call(this,i,"sawtooth"),this.w=o||0,this.osc2=new p5.SawOsc(i),this.dNode=e.audiocontext.createDelay(),this.dcOffset=t(),this.dcGain=e.audiocontext.createGain(),this.dcOffset.connect(this.dcGain),this.dcGain.connect(this.output),this.f=i||440;var n=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=n,this.dcGain.gain.value=1.7*(.5-this.w),this.osc2.disconnect(),this.osc2.panner.disconnect(),this.osc2.amp(-1),this.osc2.output.connect(this.dNode),this.dNode.connect(this.output),this.output.gain.value=1,this.output.connect(this.panner)},p5.Pulse.prototype=Object.create(p5.Oscillator.prototype),p5.Pulse.prototype.width=function(t){if("number"==typeof t){if(1>=t&&t>=0){this.w=t;var e=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=e}this.dcGain.gain.value=1.7*(.5-this.w)}else{t.connect(this.dNode.delayTime);var i=new p5.SignalAdd(-.5);i.setInput(t),i=i.mult(-1),i=i.mult(1.7),i.connect(this.dcGain.gain)}},p5.Pulse.prototype.start=function(i,o){var n=e.audiocontext.currentTime,r=o||0;if(!this.started){var s=i||this.f,a=this.oscillator.type;this.oscillator=e.audiocontext.createOscillator(),this.oscillator.frequency.setValueAtTime(s,n),this.oscillator.type=a,this.oscillator.connect(this.output),this.oscillator.start(r+n),this.osc2.oscillator=e.audiocontext.createOscillator(),this.osc2.oscillator.frequency.setValueAtTime(s,r+n),this.osc2.oscillator.type=a,this.osc2.oscillator.connect(this.osc2.output),this.osc2.start(r+n),this.freqNode=[this.oscillator.frequency,this.osc2.oscillator.frequency],this.dcOffset=t(),this.dcOffset.connect(this.dcGain),this.dcOffset.start(r+n),void 0!==this.mods&&void 0!==this.mods.frequency&&(this.mods.frequency.connect(this.freqNode[0]),this.mods.frequency.connect(this.freqNode[1])),this.started=!0,this.osc2.started=!0}},p5.Pulse.prototype.stop=function(t){if(this.started){var i=t||0,o=e.audiocontext.currentTime;this.oscillator.stop(i+o),this.osc2.oscillator.stop(i+o),this.dcOffset.stop(i+o),this.started=!1,this.osc2.started=!1}},p5.Pulse.prototype.freq=function(t,i,o){if("number"==typeof t){this.f=t;var n=e.audiocontext.currentTime,i=i||0,o=o||0,r=this.oscillator.frequency.value;this.oscillator.frequency.cancelScheduledValues(n),this.oscillator.frequency.setValueAtTime(r,n+o),this.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n),this.osc2.oscillator.frequency.cancelScheduledValues(n),this.osc2.oscillator.frequency.setValueAtTime(r,n+o),this.osc2.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n),this.freqMod&&(this.freqMod.output.disconnect(),this.freqMod=null)}else t.output&&(t.output.disconnect(),t.output.connect(this.oscillator.frequency),t.output.connect(this.osc2.oscillator.frequency),this.freqMod=t)}}(master,oscillator);var noise;noise=function(){"use strict";var t=master;p5.Noise=function(){p5.Oscillator.call(this),delete this.f,delete this.freq,delete this.oscillator,this.buffer=e},p5.Noise.prototype=Object.create(p5.Oscillator.prototype);var e=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),o=i.getChannelData(0),n=0;e>n;n++)o[n]=2*Math.random()-1;return i.type="white",i}(),i=function(){var e,i,o,n,r,s,a,u=2*t.audiocontext.sampleRate,c=t.audiocontext.createBuffer(1,u,t.audiocontext.sampleRate),p=c.getChannelData(0);e=i=o=n=r=s=a=0;for(var h=0;u>h;h++){var l=2*Math.random()-1;e=.99886*e+.0555179*l,i=.99332*i+.0750759*l,o=.969*o+.153852*l,n=.8665*n+.3104856*l,r=.55*r+.5329522*l,s=-.7616*s-.016898*l,p[h]=e+i+o+n+r+s+a+.5362*l,p[h]*=.11,a=.115926*l}return c.type="pink",c}(),o=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),o=i.getChannelData(0),n=0,r=0;e>r;r++){var s=2*Math.random()-1;o[r]=(n+.02*s)/1.02,n=o[r],o[r]*=3.5}return i.type="brown",i}();p5.Noise.prototype.setType=function(n){switch(n){case"white":this.buffer=e;break;case"pink":this.buffer=i;break;case"brown":this.buffer=o;break;default:this.buffer=e}if(this.started){var r=t.audiocontext.currentTime;this.stop(r),this.start(r+.01)}},p5.Noise.prototype.getType=function(){return this.buffer.type},p5.Noise.prototype.start=function(){this.started&&this.stop(),this.noise=t.audiocontext.createBufferSource(),this.noise.buffer=this.buffer,this.noise.loop=!0,this.noise.connect(this.output);var e=t.audiocontext.currentTime;this.noise.start(e),this.started=!0},p5.Noise.prototype.stop=function(){var e=t.audiocontext.currentTime;this.noise&&(this.noise.stop(e),this.started=!1)},p5.Noise.prototype.dispose=function(){var e=t.audiocontext.currentTime,i=t.soundArray.indexOf(this);t.soundArray.splice(i,1),this.noise&&(this.noise.disconnect(),this.stop(e)),this.output&&this.output.disconnect(),this.panner&&this.panner.disconnect(),this.output=null,this.panner=null,this.buffer=null,this.noise=null}}(master);var audioin;audioin=function(){"use strict";var t=master;p5.AudioIn=function(){this.input=t.audiocontext.createGain(),this.output=t.audiocontext.createGain(),this.stream=null,this.mediaStream=null,this.currentSource=0,this.enabled=!1,this.amplitude=new p5.Amplitude,this.output.connect(this.amplitude.input),"undefined"==typeof window.MediaStreamTrack?window.alert("This browser does not support MediaStreamTrack"):"function"==typeof window.MediaStreamTrack.getSources&&window.MediaStreamTrack.getSources(this._gotSources),t.soundArray.push(this)},p5.AudioIn.prototype.start=function(e,i){var o=this;if(t.inputSources[o.currentSource]){var n=t.inputSources[o.currentSource].id,r={audio:{optional:[{sourceId:n}]}};window.navigator.getUserMedia(r,this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=t.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),e&&e(),o.amplitude.setInput(o.output)},this._onStreamError=function(t){i?i(t):console.error(t)})}else window.navigator.getUserMedia({audio:!0},this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=t.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),o.amplitude.setInput(o.output),e&&e()},this._onStreamError=function(t){i?i(t):console.error(t)})},p5.AudioIn.prototype.stop=function(){this.stream&&this.stream.stop()},p5.AudioIn.prototype.connect=function(e){this.output.connect(e?e.hasOwnProperty("input")?e.input:e.hasOwnProperty("analyser")?e.analyser:e:t.input)},p5.AudioIn.prototype.disconnect=function(t){this.output.disconnect(t),this.output.connect(this.amplitude.input)},p5.AudioIn.prototype.getLevel=function(t){return t&&(this.amplitude.smoothing=t),this.amplitude.getLevel()},p5.AudioIn.prototype._gotSources=function(t){for(var e=0;e0?t.inputSources:"This browser does not support MediaStreamTrack.getSources()"},p5.AudioIn.prototype.getSources=function(e){"function"==typeof window.MediaStreamTrack.getSources?window.MediaStreamTrack.getSources(function(i){for(var o=0,n=i.length;n>o;o++){var r=i[o];"audio"===r.kind&&t.inputSources.push(r)}e(t.inputSources)}):console.log("This browser does not support MediaStreamTrack.getSources()")},p5.AudioIn.prototype.setSource=function(e){var i=this;t.inputSources.length>0&&e=t&&(t=1),"number"==typeof t?(i.biquad.frequency.value=t,i.biquad.frequency.cancelScheduledValues(this.ac.currentTime+.01+o),i.biquad.frequency.exponentialRampToValueAtTime(t,this.ac.currentTime+.02+o)):t&&t.connect(this.biquad.frequency),i.biquad.frequency.value},p5.Filter.prototype.res=function(t,e){var i=this,o=e||0;return"number"==typeof t?(i.biquad.Q.value=t,i.biquad.Q.cancelScheduledValues(i.ac.currentTime+.01+o),i.biquad.Q.linearRampToValueAtTime(t,i.ac.currentTime+.02+o)):t&&freq.connect(this.biquad.Q),i.biquad.Q.value},p5.Filter.prototype.setType=function(t){this.biquad.type=t},p5.Filter.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Filter.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Filter.prototype.disconnect=function(){this.output.disconnect()},p5.Filter.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.input=void 0,this.output.disconnect(),this.output=void 0,this.biquad.disconnect(),this.biquad=void 0},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)}(master);var delay;delay=function(){"use strict";var t=master;p5.Delay=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this._split=this.ac.createChannelSplitter(2),this._merge=this.ac.createChannelMerger(2),this._leftGain=this.ac.createGain(),this._rightGain=this.ac.createGain(),this.leftDelay=this.ac.createDelay(),this.rightDelay=this.ac.createDelay(),this._leftFilter=new p5.Filter,this._rightFilter=new p5.Filter,this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._leftFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._rightFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._leftFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this._rightFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this.input.connect(this._split),this.leftDelay.connect(this._leftGain),this.rightDelay.connect(this._rightGain),this._leftGain.connect(this._leftFilter.input),this._rightGain.connect(this._rightFilter.input),this._merge.connect(this.output),this.output.connect(p5.soundOut.input),this._leftFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this._rightFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this.setType(0),this._maxDelay=this.leftDelay.delayTime.maxValue,t.soundArray.push(this)},p5.Delay.prototype.process=function(t,e,i,o){var n=i||0,r=e||0;if(n>=1)throw new Error("Feedback value will force a positive feedback loop.");if(r>=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.setValueAtTime(n,this.ac.currentTime),this._rightGain.gain.setValueAtTime(n,this.ac.currentTime),o&&(this._leftFilter.freq(o),this._rightFilter.freq(o))},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("number"!=typeof t)t.connect(this._leftGain.gain),t.connect(this._rightGain.gain);else{if(t>=1)throw new Error("Feedback value will force a positive feedback loop.");this._leftGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime),this._rightGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime)}},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._leftFilter.output.connect(this._merge,0,1),this._leftFilter.output.connect(this.leftDelay),this._leftFilter.output.connect(this.rightDelay)}},p5.Delay.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Delay.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Delay.prototype.disconnect=function(){this.output.disconnect()},p5.Delay.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.output.disconnect(),this._split.disconnect(),this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._merge.disconnect(),this._leftGain.disconnect(),this._rightGain.disconnect(),this.leftDelay.disconnect(),this.rightDelay.disconnect(),this.input=void 0,this.output=void 0,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}}(master,filter);var reverb;reverb=function(){"use strict";var t=master,e=errorHandler;p5.Reverb=function(){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse(),this.connect(),t.soundArray.push(this)},p5.Reverb.prototype.process=function(t,e,i,o){t.connect(this.input);var n=!1;e&&(this._seconds=e,n=!0),i&&(this._decay=i),o&&(this._reverse=o),n&&this._buildImpulse()},p5.Reverb.prototype.set=function(t,e,i){var o=!1;t&&(this._seconds=t,o=!0),e&&(this._decay=e),i&&(this._reverse=i),o&&this._buildImpulse()},p5.Reverb.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Reverb.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Reverb.prototype.disconnect=function(){this.output.disconnect()},p5.Reverb.prototype._buildImpulse=function(){var t,e,i=this.ac.sampleRate,o=i*this._seconds,n=this._decay,r=this.ac.createBuffer(2,o,i),s=r.getChannelData(0),a=r.getChannelData(1);for(e=0;o>e;e++)t=this.reverse?o-e:e,s[e]=(2*Math.random()-1)*Math.pow(1-t/o,n),a[e]=(2*Math.random()-1)*Math.pow(1-t/o,n);this.convolverNode.buffer=r},p5.Reverb.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.convolverNode&&(this.convolverNode.buffer=null,this.convolverNode=null),"undefined"!=typeof this.output&&(this.output.disconnect(),this.output=null),"undefined"!=typeof this.panner&&(this.panner.disconnect(),this.panner=null)},p5.Convolver=function(e,i,o){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),e?(this.impulses=[],this._loadBuffer(e,i,o)):(this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse()),this.connect(),t.soundArray.push(this)},p5.Convolver.prototype=Object.create(p5.Reverb.prototype),p5.prototype.registerPreloadMethod("createConvolver",p5.prototype),p5.prototype.createConvolver=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var o=new p5.Convolver(t,e,i);return o.impulses=[],o},p5.Convolver.prototype._loadBuffer=function(t,i,o){var t=p5.prototype._checkFileFormats(t),n=this,r=(new Error).stack,s=p5.prototype.getAudioContext(),a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer",a.onload=function(){if(200==a.status)s.decodeAudioData(a.response,function(e){var o={},r=t.split("/");o.name=r[r.length-1],o.audioBuffer=e,n.impulses.push(o),n.convolverNode.buffer=o.audioBuffer,i&&i(o)},function(){var t=new e("decodeAudioData",r,n.url),i="AudioContext error at decodeAudioData for "+n.url;o?(t.msg=i,o(t)):console.error(i+"\n The error stack trace includes: \n"+t.stack)});else{var u=new e("loadConvolver",r,n.url),c="Unable to load "+n.url+". The request status was: "+a.status+" ("+a.statusText+")";o?(u.message=c,o(u)):console.error(c+"\n The error stack trace includes: \n"+u.stack)}},a.onerror=function(){var t=new e("loadConvolver",r,n.url),i="There was no response from the server at "+n.url+". Check the url and internet connectivity.";o?(t.message=i,o(t)):console.error(i+"\n The error stack trace includes: \n"+t.stack)},a.send()},p5.Convolver.prototype.set=null,p5.Convolver.prototype.process=function(t){t.connect(this.input)},p5.Convolver.prototype.impulses=[],p5.Convolver.prototype.addImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this._loadBuffer(t,e,i)},p5.Convolver.prototype.resetImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this.impulses=[],this._loadBuffer(t,e,i)},p5.Convolver.prototype.toggleImpulse=function(t){if("number"==typeof t&&tthis._nextTick;){o>this._nextTick+this._threshold&&(this._nextTick=o);var a=this._nextTick;this._nextTick+=1/this.frequency.getValueAtTime(this._nextTick),this.callback(a),this.ticks++}else s===t.State.Stopped&&(this._nextTick=-1,this.ticks=0)},t.Clock.prototype.getStateAtTime=function(t){return this._state.getStateAtTime(t)},t.Clock.prototype.dispose=function(){cancelAnimationFrame(this._loopID),t.TimelineState.prototype.dispose.call(this),this._writable("frequency"),this.frequency.dispose(),this.frequency=null,this._boundLoop=t.noOp,this._nextTick=1/0,this.callback=null,this._state.dispose(),this._state=null},t.Clock}(Tone_core_Tone,Tone_signal_TimelineSignal);var metro;metro=function(){"use strict";{var t=master,e=Tone_core_Clock;t.audiocontext}p5.Metro=function(){this.clock=new e({callback:this.ontick.bind(this)}),this.syncedParts=[],this.bpm=120,this._init(),this.tickCallback=function(){}};var i=0,o=0;p5.Metro.prototype.ontick=function(e){var n=e-i,r=e-t.audiocontext.currentTime;if(!(-.02>=n-o)){i=e;for(var s in this.syncedParts){var a=this.syncedParts[s];a.incrementStep(r);for(var u in a.phrases){var c=a.phrases[u],p=c.sequence,h=this.metroTicks%p.length;0!==p[h]&&(this.metroTicks=t.parts.length?(t.scoreStep=0,t.onended()):(t.scoreStep=0,t.parts[t.currentPart-1].stop(),t.parts[t.currentPart].start())}var e=master,i=120;p5.prototype.setBPM=function(t,o){i=t;for(var n in e.parts)e.parts[n].setBPM(i,o)},p5.Phrase=function(t,e,i){this.phraseStep=0,this.name=t,this.callback=e,this.sequence=i},p5.Part=function(t,o){this.length=t||0,this.partStep=0,this.phrases=[],this.looping=!1,this.isPlaying=!1,this.onended=function(){this.stop()},this.tatums=o||.0625,this.metro=new p5.Metro,this.metro._init(),this.metro.beatLength(this.tatums),this.metro.setBPM(i),e.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,i){var o;if(3===arguments.length)o=new p5.Phrase(t,e,i);else{if(!(arguments[0]instanceof p5.Phrase))throw"invalid input. addPhrase accepts name, callback, array or a p5.Phrase";o=arguments[0]}this.phrases.push(o),o.sequence.length>this.length&&(this.length=o.sequence.length)},p5.Part.prototype.removePhrase=function(t){for(var e in this.phrases)this.phrases[e].name===t&&this.phrases.split(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 i in this.phrases)this.phrases[i].name===t&&(this.phrases[i].sequence=e) +},p5.Part.prototype.incrementStep=function(t){this.partStepr;)o[r++]=t[n],o[r++]=e[n],n++;return o}function e(t,e,i){for(var o=i.length,n=0;o>n;n++)t.setUint8(e+n,i.charCodeAt(n))}var i=master,o=i.audiocontext;p5.SoundRecorder=function(){this.input=o.createGain(),this.output=o.createGain(),this.recording=!1,this.bufferSize=1024,this._channels=2,this._clear(),this._jsNode=o.createScriptProcessor(this.bufferSize,this._channels,2),this._jsNode.onaudioprocess=this._audioprocess.bind(this),this._callback=function(){},this._jsNode.connect(p5.soundOut._silentNode),this.setInput(),i.soundArray.push(this)},p5.SoundRecorder.prototype.setInput=function(t){this.input.disconnect(),this.input=null,this.input=o.createGain(),this.input.connect(this._jsNode),this.input.connect(this.output),t?t.connect(this.input):p5.soundOut.output.connect(this.input)},p5.SoundRecorder.prototype.record=function(t,e,i){this.recording=!0,e&&(this.sampleLimit=Math.round(e*o.sampleRate)),t&&i?this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer),i()}:t&&(this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer)})},p5.SoundRecorder.prototype.stop=function(){this.recording=!1,this._callback(),this._clear()},p5.SoundRecorder.prototype._clear=function(){this._leftBuffers=[],this._rightBuffers=[],this.recordedSamples=0,this.sampleLimit=null},p5.SoundRecorder.prototype._audioprocess=function(t){if(this.recording!==!1&&this.recording===!0)if(this.sampleLimit&&this.recordedSamples>=this.sampleLimit)this.stop();else{var e=t.inputBuffer.getChannelData(0),i=t.inputBuffer.getChannelData(1);this._leftBuffers.push(new Float32Array(e)),this._rightBuffers.push(new Float32Array(i)),this.recordedSamples+=this.bufferSize}},p5.SoundRecorder.prototype._getBuffer=function(){var t=[];return t.push(this._mergeBuffers(this._leftBuffers)),t.push(this._mergeBuffers(this._rightBuffers)),t},p5.SoundRecorder.prototype._mergeBuffers=function(t){for(var e=new Float32Array(this.recordedSamples),i=0,o=t.length,n=0;o>n;n++){var r=t[n];e.set(r,i),i+=r.length}return e},p5.SoundRecorder.prototype.dispose=function(){this._clear();var t=i.soundArray.indexOf(this);i.soundArray.splice(t,1),this._callback=function(){},this.input&&this.input.disconnect(),this.input=null,this._jsNode=null},p5.prototype.saveSound=function(i,o){var n=i.buffer.getChannelData(0),r=i.buffer.getChannelData(1),s=t(n,r),a=new ArrayBuffer(44+2*s.length),u=new DataView(a);e(u,0,"RIFF"),u.setUint32(4,44+2*s.length,!0),e(u,8,"WAVE"),e(u,12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,2,!0),u.setUint32(24,44100,!0),u.setUint32(28,176400,!0),u.setUint16(32,4,!0),u.setUint16(34,16,!0),e(u,36,"data"),u.setUint32(40,2*s.length,!0);for(var c=s.length,p=44,h=1,l=0;c>l;l++)u.setInt16(p,32767*s[l]*h,!0),p+=2;p5.prototype.writeFile([u],o,"wav")}}(sndcore,master);var peakdetect;peakdetect=function(){"use strict";p5.PeakDetect=function(t,e,i,o){this.framesPerPeak=o||20,this.framesSinceLastPeak=0,this.decayRate=.95,this.threshold=i||.35,this.cutoff=0,this.cutoffMult=1.5,this.energy=0,this.penergy=0,this.currentValue=0,this.isDetected=!1,this.f1=t||40,this.f2=e||2e4,this._onPeak=function(){}},p5.PeakDetect.prototype.update=function(t){var e=this.energy=t.getEnergy(this.f1,this.f2)/255;e>this.cutoff&&e>this.threshold&&e-this.penergy>0?(this._onPeak(),this.isDetected=!0,this.cutoff=e*this.cutoffMult,this.framesSinceLastPeak=0):(this.isDetected=!1,this.framesSinceLastPeak<=this.framesPerPeak?this.framesSinceLastPeak++:(this.cutoff*=this.decayRate,this.cutoff=Math.max(this.cutoff,this.threshold))),this.currentValue=e,this.penergy=e},p5.PeakDetect.prototype.onPeak=function(t,e){var i=this;i._onPeak=function(){t(i.energy,e)}}}(master);var gain;gain=function(){"use strict";var t=master;p5.Gain=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.output),t.soundArray.push(this)},p5.Gain.prototype.setInput=function(t){t.connect(this.input)},p5.Gain.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Gain.prototype.disconnect=function(){this.output.disconnect()},p5.Gain.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o),this.output.gain.linearRampToValueAtTime(e,n+o+i)},p5.Gain.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.output.disconnect(),this.input.disconnect(),this.output=void 0,this.input=void 0}}(master,sndcore);var src_app;src_app=function(){"use strict";var t=sndcore;return t}(sndcore,master,helpers,errorHandler,panner,soundfile,amplitude,fft,signal,oscillator,env,pulse,noise,audioin,filter,delay,reverb,metro,looper,soundRecorder,peakdetect,gain)}); \ No newline at end of file From 4b1d10913b681de7f4e847de1fe445e4712f89af Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Thu, 21 Jan 2016 01:53:22 -0500 Subject: [PATCH 11/25] remove comments --- src/env.js | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/src/env.js b/src/env.js index b2b71b4e..c423f2e1 100644 --- a/src/env.js +++ b/src/env.js @@ -201,43 +201,6 @@ define(function (require) { this.triggerAttack(unit, secondsFromNow); this.triggerRelease(unit, secondsFromNow + this.aTime + this.dTime + this.sTime); - - // get and set value (with linear ramp) to anchor automation - // var valToSet = this.control.getValueAtTime(t); - // this.control.linearRampToValueAtTime(valToSet, t); - - // // after each ramp completes, cancel scheduled values - // // (so they can be overridden in case env has been re-triggered) - // // then, set current value (with linearRamp to avoid click) - // // then, schedule the next automation... - - // // attack - // t += this.aTime; - // this.control.linearRampToValueAtTime(this.aLevel, t); - // valToSet = this.control.getValueAtTime(t); - // this.control.cancelScheduledValues(t); - // this.control.linearRampToValueAtTime(valToSet, t); - - // // decay to decay level - // t += this.dTime; - // this.control.linearRampToValueAtTime(this.dLevel, t); - // valToSet = this.control.getValueAtTime(t); - // this.control.cancelScheduledValues(t); - // this.control.linearRampToValueAtTime(valToSet, t); - - // // hold sustain level - // t += this.sTime; - // this.control.linearRampToValueAtTime(this.sLevel, t); - // valToSet = this.control.getValueAtTime(t); - // this.control.cancelScheduledValues(t); - // this.control.linearRampToValueAtTime(valToSet, t); - - // // release - // t += this.rTime; - // this.control.linearRampToValueAtTime(this.rLevel, t); - // valToSet = this.control.getValueAtTime(t); - // this.control.cancelScheduledValues(t); - // this.control.linearRampToValueAtTime(valToSet, t); }; /** From 8a3938bcb494aa6d00731355297e766de2c74432 Mon Sep 17 00:00:00 2001 From: Jeff Snyder Date: Sun, 24 Jan 2016 19:01:48 -0500 Subject: [PATCH 12/25] added exponential envelopes, and altered the input settings for envelopes to conform to ADSR --- src/env.js | 201 +++++++++++++++++++++++++++++------------------------ 1 file changed, 110 insertions(+), 91 deletions(-) diff --git a/src/env.js b/src/env.js index 4f0edb13..b4bf7d25 100644 --- a/src/env.js +++ b/src/env.js @@ -5,6 +5,7 @@ define(function (require) { var Add = require('Tone/signal/Add'); var Mult = require('Tone/signal/Multiply'); var Scale = require('Tone/signal/Scale'); + var TimelineSignal = require('Tone/signal/TimelineSignal'); var Tone = require('Tone/core/Tone'); Tone.setContext( p5sound.audiocontext); @@ -69,6 +70,7 @@ define(function (require) { * */ p5.Env = function(t1, l1, t2, l2, t3, l3, t4, l4){ + var now = p5sound.audiocontext.currentTime; /** * @property attackTime @@ -82,38 +84,34 @@ define(function (require) { * @property decayTime */ this.dTime = t2 || 0; - /** - * @property decayLevel - */ - this.dLevel = l2 || 0; - /** - * @property sustainTime - */ - this.sTime = t3 || 0; /** * @property sustainLevel */ - this.sLevel = l3 || 0; + this.sLevel = l2 || 0; /** * @property releaseTime */ - this.rTime = t4 || 0; + this.rTime = t3 || 0; /** * @property releaseLevel */ - this.rLevel = l4 || 0; + this.rLevel = l3 || 0; + this.output = p5sound.audiocontext.createGain();; - this.control = new p5.Signal(); - + this.control = new TimelineSignal(); this.control.connect(this.output); + this.control.setValueAtTime(0, now); this.connection = null; // store connection //array of math operation signal chaining this.mathOps = [this.control]; + //whether envelope should be linear or exponential curve + this.isExponential = false; + // oscillator or buffer source to clear on env complete // to save resources if/when it is retriggered this.sourceToClear = null; @@ -135,22 +133,19 @@ define(function (require) { * @param {Number} aLevel Typically an amplitude between * 0.0 and 1.0 * @param {Number} dTime Time - * @param {Number} [dLevel] Amplitude (In a standard ADSR envelope, + * @param {Number} [sLevel] Amplitude (In a standard ADSR envelope, * decayLevel = sustainLevel) - * @param {Number} [sTime] Time (in seconds) - * @param {Number} [sLevel] Amplitude 0.0 to 1.0 - * @param {Number} [rTime] Time (in seconds) + * @param {Number} [rTime] Release Time (in seconds) * @param {Number} [rLevel] Amplitude 0.0 to 1.0 + */ - p5.Env.prototype.set = function(t1, l1, t2, l2, t3, l3, t4, l4){ + p5.Env.prototype.set = function(t1, l1, t2, l2, t3, l3){ this.aTime = t1; this.aLevel = l1; this.dTime = t2 || 0; - this.dLevel = l2 || 0; - this.sTime = t3 || 0; - this.sLevel = l3 || 0; - this.rTime = t4 || 0; - this.rLevel = l4 || 0; + this.sLevel = l2 || 0; + this.rTime = t3 || 0; + this.rLevel = l3 || 0; }; /** @@ -169,6 +164,19 @@ define(function (require) { } }; + p5.Env.prototype.setExp = function(isExp){ + this.isExponential = isExp; + } + + //protect against zero values being sent to exponential functions + p5.Env.prototype.checkExpInput = function(value) { + if (value <= 0) + { + value = 0.0001; + } + return value; + }; + p5.Env.prototype.ctrl = function(unit){ this.connect(unit); }; @@ -197,21 +205,8 @@ define(function (require) { } } - var currentVal = this.control.getValue(); - this.control.cancelScheduledValues(t); - this.control.linearRampToValueAtTime(currentVal, t); - - // attack - this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); - // decay to decay level - this.control.linearRampToValueAtTime(this.dLevel, t + this.aTime + this.dTime); - // hold sustain level - this.control.linearRampToValueAtTime(this.sLevel, t + this.aTime + this.dTime + this.sTime); - // release - this.control.linearRampToValueAtTime(this.rLevel, t + this.aTime + this.dTime + this.sTime + this.rTime); - - var clearTime = (t + this.aTime + this.dTime + this.sTime + this.rTime); //* 1000; - + this.triggerAttack(unit, secondsFromNow); + this.triggerRelease(unit, secondsFromNow + this.aTime + this.dTime); }; /** @@ -233,27 +228,62 @@ define(function (require) { this.lastAttack = t; this.wasTriggered = true; - // we should set current value, but this is not working on Firefox - var currentVal = this.control.getValue(); - console.log(currentVal); - this.control.cancelScheduledValues(t); - this.control.linearRampToValueAtTime(currentVal, t); - if (unit) { if (this.connection !== unit) { this.connect(unit); } } - this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); + // get and set value (with linear ramp) to anchor automation + var valToSet = this.control.getValueAtTime(t); + if (this.isExponential == true) + { + this.control.exponentialRampToValueAtTime(this.checkExpInput(valToSet), t); + } + else + { + this.control.linearRampToValueAtTime(valToSet, t); + } + + // after each ramp completes, cancel scheduled values + // (so they can be overridden in case env has been re-triggered) + // then, set current value (with linearRamp to avoid click) + // then, schedule the next automation... // attack - this.control.linearRampToValueAtTime(this.aLevel, t + this.aTime); - // decay to sustain level - this.control.linearRampToValueAtTime(this.dLevel, t + this.aTime + this.dTime); - - this.control.linearRampToValueAtTime(this.sLevel, t + this.aTime + this.dTime + this.sTime); + t += this.aTime; + + if (this.isExponential == true) + { + this.control.exponentialRampToValueAtTime(this.checkExpInput(this.aLevel), t); + valToSet = this.checkExpInput(this.control.getValueAtTime(t)); + this.control.cancelScheduledValues(t); + this.control.exponentialRampToValueAtTime(valToSet, t); + } + else + { + this.control.linearRampToValueAtTime(this.aLevel, t); + valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); + this.control.linearRampToValueAtTime(valToSet, t); + } + // decay to decay level + t += this.dTime; + if (this.isExponential == true) + { + this.control.exponentialRampToValueAtTime(this.checkExpInput(this.sLevel), t); + valToSet = this.checkExpInput(this.control.getValueAtTime(t)); + this.control.cancelScheduledValues(t); + this.control.exponentialRampToValueAtTime(valToSet, t); + } + else + { + this.control.linearRampToValueAtTime(this.sLevel, t); + valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); + this.control.linearRampToValueAtTime(valToSet, t); + } }; /** @@ -275,7 +305,6 @@ define(function (require) { var now = p5sound.audiocontext.currentTime; var tFromNow = secondsFromNow || 0; var t = now + tFromNow; - var relTime; if (unit) { if (this.connection !== unit) { @@ -283,49 +312,33 @@ define(function (require) { } } - this.control.cancelScheduledValues(t); - - // ideally would get & set currentValue here, - // but this.control._scalar.gain.value not working in firefox - - // release based on how much time has passed since this.lastAttack - if ( (t - this.lastAttack) < (this.aTime) ) { - var a = this.aTime - (t - this.lastAttack); - this.control.linearRampToValueAtTime(this.aLevel, t + a); - this.control.linearRampToValueAtTime(this.dLevel, t + a + this.dTime); - this.control.linearRampToValueAtTime(this.sLevel, t + a + this.dTime + this.sTime); - this.control.linearRampToValueAtTime(this.rLevel, t + a + this.dTime + this.sTime + this.rTime); - relTime = t + this.dTime + this.sTime + this.rTime; + // get and set value (with linear or exponential ramp) to anchor automation + var valToSet = this.control.getValueAtTime(t); + if (this.isExponential == true) + { + this.control.exponentialRampToValueAtTime(this.checkExpInput(valToSet), t); } - else if ( (t - this.lastAttack) < (this.aTime + this.dTime) ) { - var d = this.aTime + this.dTime - (now - this.lastAttack); - this.control.linearRampToValueAtTime(this.dLevel, t + d); - // this.control.linearRampToValueAtTime(this.sLevel, t + d + this.sTime); - this.control.linearRampToValueAtTime(this.sLevel, t + d + 0.01); - this.control.linearRampToValueAtTime(this.rLevel, t + d + 0.01 + this.rTime); - relTime = t + this.sTime + this.rTime; - } - else if ( (t - this.lastAttack) < (this.aTime + this.dTime + this.sTime) ) { - var s = this.aTime + this.dTime + this.sTime - (now - this.lastAttack); - this.control.linearRampToValueAtTime(this.sLevel, t + s); - this.control.linearRampToValueAtTime(this.rLevel, t + s + this.rTime); - relTime = t + this.rTime; + else + { + this.control.linearRampToValueAtTime(valToSet, t); } - else { - this.control.linearRampToValueAtTime(this.sLevel, t); - this.control.linearRampToValueAtTime(this.rLevel, t + this.rTime); - relTime = t + this.dTime + this.sTime + this.rTime; + + // release + t += this.rTime; + + if (this.isExponential == true) + { + this.control.exponentialRampToValueAtTime(this.checkExpInput(this.rLevel), t); + valToSet = this.checkExpInput(this.control.getValueAtTime(t)); + this.control.cancelScheduledValues(t); + this.control.exponentialRampToValueAtTime(valToSet, t); } - - // clear osc / sources - var clearTime = (t + this.aTime + this.dTime + this.sTime + this.rTime); // * 1000; - - if (this.connection && this.connection.hasOwnProperty('oscillator')) { - this.sourceToClear = this.connection.oscillator; - this.sourceToClear.stop(clearTime + .01); - } else if (this.connect && this.connection.hasOwnProperty('source')){ - this.sourceToClear = this.connection.source; - this.sourceToClear.stop(clearTime + .01); + else + { + this.control.linearRampToValueAtTime(this.rLevel, t); + valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); + this.control.linearRampToValueAtTime(valToSet, t); } this.wasTriggered = false; @@ -360,6 +373,8 @@ define(function (require) { this.output.disconnect(); }; + + // Signal Math /** @@ -419,6 +434,10 @@ define(function (require) { // get rid of the oscillator p5.Env.prototype.dispose = function() { + // remove reference from soundArray + var index = p5sound.soundArray.indexOf(this); + p5sound.soundArray.splice(index, 1); + var now = p5sound.audiocontext.currentTime; this.disconnect(); try{ From b7736073f4e77f9b2c2314d5b0f4069180cf77ba Mon Sep 17 00:00:00 2001 From: Jeff Snyder Date: Sun, 24 Jan 2016 21:29:21 -0500 Subject: [PATCH 13/25] fixed envelopes to not break existing code --- src/env.js | 74 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 62 insertions(+), 12 deletions(-) diff --git a/src/env.js b/src/env.js index f02c17db..1586fbfd 100644 --- a/src/env.js +++ b/src/env.js @@ -84,25 +84,33 @@ define(function (require) { * @property decayTime */ this.dTime = t2 || 0; + /** + * @property decayLevel + */ + this.dLevel = l2 || 0; + /** + * @property sustainTime + */ + this.sTime = t3 || 0; /** * @property sustainLevel */ - this.sLevel = l2 || 0; + this.sLevel = l3 || 0; /** * @property releaseTime */ - this.rTime = t3 || 0; + this.rTime = t4 || 0; /** * @property releaseLevel */ - this.rLevel = l3 || 0; - + this.rLevel = l4 || 0; + console.log(t1 + " " + l1 + " " + t2 + " " + l2 + " " + t3 + " " + l3 + " " + t4 + " " + l4 + " ") this.output = p5sound.audiocontext.createGain();; this.control = new TimelineSignal(); + this.init(); this.control.connect(this.output); - this.control.setValueAtTime(0, now); this.connection = null; // store connection @@ -124,6 +132,12 @@ define(function (require) { p5sound.soundArray.push(this); }; + + p5.Env.prototype.init = function () { + var now = p5sound.audiocontext.currentTime; + var t = now; + this.control.setTargetAtTime(0.00001, t, .001); + }; /** * Reset the envelope with a series of time/value pairs. * @@ -139,10 +153,24 @@ define(function (require) { * @param {Number} [rLevel] Amplitude 0.0 to 1.0 */ - p5.Env.prototype.set = function(t1, l1, t2, l2, t3, l3){ + p5.Env.prototype.set = function(t1, l1, t2, l2, t3, l3, t4, l4){ + this.aTime = t1; + this.aLevel = l1; + this.dTime = t2 || 0; + this.dLevel = l2 || 0; + this.sTime = t3 || 0; + this.sLevel = l3 || 0; + this.rTime = t4 || 0; + this.rLevel = l4 || 0; + }; + + + p5.Env.prototype.setADSR = function(t1, l1, t2, l2, t3, l3){ this.aTime = t1; this.aLevel = l1; this.dTime = t2 || 0; + this.dLevel = l2 || 0; + this.sTime = 0; this.sLevel = l2 || 0; this.rTime = t3 || 0; this.rLevel = l3 || 0; @@ -207,7 +235,7 @@ define(function (require) { this.triggerAttack(unit, secondsFromNow); - this.triggerRelease(unit, secondsFromNow + this.aTime + this.dTime); + this.triggerRelease(unit, secondsFromNow + this.aTime + this.dTime + this.sTime); }; @@ -238,6 +266,7 @@ define(function (require) { // get and set value (with linear ramp) to anchor automation var valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); // not sure if this is necessary if (this.isExponential == true) { this.control.exponentialRampToValueAtTime(this.checkExpInput(valToSet), t); @@ -247,7 +276,6 @@ define(function (require) { this.control.linearRampToValueAtTime(valToSet, t); } - // after each ramp completes, cancel scheduled values // (so they can be overridden in case env has been re-triggered) // then, set current value (with linearRamp to avoid click) @@ -255,8 +283,6 @@ define(function (require) { // attack t += this.aTime; - - if (this.isExponential == true) { this.control.exponentialRampToValueAtTime(this.checkExpInput(this.aLevel), t); @@ -272,9 +298,26 @@ define(function (require) { this.control.linearRampToValueAtTime(valToSet, t); } - // decay to decay level + // decay to decay level (if using ADSR, then decay level == sustain level) t += this.dTime; if (this.isExponential == true) + { + this.control.exponentialRampToValueAtTime(this.checkExpInput(this.dLevel), t); + valToSet = this.checkExpInput(this.control.getValueAtTime(t)); + this.control.cancelScheduledValues(t); + this.control.exponentialRampToValueAtTime(valToSet, t); + } + else + { + this.control.linearRampToValueAtTime(this.dLevel, t); + valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); + this.control.linearRampToValueAtTime(valToSet, t); + } + + // move to sustain level and hold for sustain time (if using ADSR, sustain time is set to 0 and sustain level is set to decay level) + t += this.sTime; + if (this.isExponential == true) { this.control.exponentialRampToValueAtTime(this.checkExpInput(this.sLevel), t); valToSet = this.checkExpInput(this.control.getValueAtTime(t)); @@ -303,6 +346,13 @@ define(function (require) { // only trigger a release if an attack was triggered if (!this.wasTriggered) { + // this currently causes a bit of trouble: + // if a later release has been scheduled (via the play function) + // a new earlier release won't interrupt it, because + // this.wasTriggered has already been set to false. + // If we want new earlier releases to override, then we need to + // keep track of the last release time, and if the new release time is + // earlier, then use it. return; } @@ -318,6 +368,7 @@ define(function (require) { // get and set value (with linear or exponential ramp) to anchor automation var valToSet = this.control.getValueAtTime(t); + this.control.cancelScheduledValues(t); // not sure if this is necessary if (this.isExponential == true) { this.control.exponentialRampToValueAtTime(this.checkExpInput(valToSet), t); @@ -345,7 +396,6 @@ define(function (require) { this.control.linearRampToValueAtTime(valToSet, t); } - this.wasTriggered = false; }; From 9fcb678e5bf755e204dfcbba32627b8af420821a Mon Sep 17 00:00:00 2001 From: Jeff Snyder Date: Sun, 24 Jan 2016 23:06:49 -0500 Subject: [PATCH 14/25] fixed envelopes. now normal envelope works as expected, plus there is an ADSR setting option, and an AD ramp for more simple operation. --- examples/envelopeRamp/index.html | 17 +++ examples/envelopeRamp/sketch.js | 68 +++++++++ examples/envelope_exponential_play/index.html | 17 +++ examples/envelope_exponential_play/sketch.js | 78 ++++++++++ .../envelope_exponential_trig_rel/index.html | 17 +++ .../envelope_exponential_trig_rel/sketch.js | 77 ++++++++++ src/env.js | 140 +++++++++++++++++- 7 files changed, 408 insertions(+), 6 deletions(-) create mode 100755 examples/envelopeRamp/index.html create mode 100755 examples/envelopeRamp/sketch.js create mode 100755 examples/envelope_exponential_play/index.html create mode 100755 examples/envelope_exponential_play/sketch.js create mode 100755 examples/envelope_exponential_trig_rel/index.html create mode 100755 examples/envelope_exponential_trig_rel/sketch.js diff --git a/examples/envelopeRamp/index.html b/examples/envelopeRamp/index.html new file mode 100755 index 00000000..3112a3d3 --- /dev/null +++ b/examples/envelopeRamp/index.html @@ -0,0 +1,17 @@ + + + + + envelope_ramp + + + + + + + + + + + + diff --git a/examples/envelopeRamp/sketch.js b/examples/envelopeRamp/sketch.js new file mode 100755 index 00000000..386451a7 --- /dev/null +++ b/examples/envelopeRamp/sketch.js @@ -0,0 +1,68 @@ +var osc, envelope, fft; +var myPhraseAttack, myPhraseRelease, myPart; +var atPattern = [1, 0,0,0]; +var scaleArray = [60, 62, 64, 65, 67, 69, 71, 72]; +var note = 0; +var startPoint = 0; +var endPoint = 0; +var numWaveforms = 50; + +function setup() { + createCanvas(710, 200); + osc = new p5.SinOsc(); + envelope = new p5.Env(); + envelope.setRampAD(.005,0.5); + osc.amp(0.); + osc.start(); + myPhraseAttack = new p5.Phrase('testerAttack', makeSoundAttack, atPattern); + myPart = new p5.Part(); + myPart.addPhrase(myPhraseAttack); + myPart.setBPM(100); + myPart.loop(); + myPart.start(); + fft = new p5.FFT(); + endPoint = width / numWaveforms; + noFill(); + background(20); +} + +function draw() { + + + var waveform = fft.waveform(); // analyze the waveform + beginShape(); + stroke(255, 255, 0); + for (var i = 0; i < waveform.length; i++){ + var x = map(i, 0, waveform.length, startPoint, endPoint); + var y = map(waveform[i], -1, 1, height, 0); + vertex(x, y); + } + endShape(); + startPoint = endPoint + 1; + endPoint += (width / numWaveforms); + if (endPoint > width) + { + background(20); + startPoint = 0; + endPoint = (width / numWaveforms); + } +} + + +function makeSoundAttack(time, playbackRate) +{ + var midiValue = scaleArray[note]; + var freqValue = midiToFreq(midiValue); + osc.freq(freqValue * 2, .001, time); + envelope.rampAD(osc, time, 1 , 0); + note = (note + 1) % scaleArray.length; + setTimeout(redrawWaveform, time * 1000.0); +} + + +function redrawWaveform() +{ + background(20); + startPoint = 0; + endPoint = (width / numWaveforms); +} diff --git a/examples/envelope_exponential_play/index.html b/examples/envelope_exponential_play/index.html new file mode 100755 index 00000000..cb711df7 --- /dev/null +++ b/examples/envelope_exponential_play/index.html @@ -0,0 +1,17 @@ + + + + + envelope_exponential_play + + + + + + + + + + + + diff --git a/examples/envelope_exponential_play/sketch.js b/examples/envelope_exponential_play/sketch.js new file mode 100755 index 00000000..9ddb42c6 --- /dev/null +++ b/examples/envelope_exponential_play/sketch.js @@ -0,0 +1,78 @@ +var osc, envelope, fft; +var myPhraseAttack, myPhraseRelease, myPart; +var atPattern = [1, 0,0,0]; +var relPattern = [0, 0,1,0]; +var scaleArray = [60, 62, 64, 65, 67, 69, 71, 72]; +var note = 0; +var startPoint = 0; +var endPoint = 0; +var numWaveforms = 50; + +function setup() { + createCanvas(710, 200); + osc = new p5.SinOsc(); + envelope = new p5.Env(0.1, 1.0, 0.1, .5, .1, .5, .1, 0.0); // + envelope.setExp(true); + //envelope.setADSR(0.1, 1.0, 1.0, 0.2, 5.0, 0.0); //AT, AL, DT, SL, RT, RL + osc.amp(0.); + osc.start(); + myPhraseAttack = new p5.Phrase('testerAttack', makeSoundAttack, atPattern); + myPhraseRelease = new p5.Phrase('testerRelease', makeSoundRelease, relPattern); + myPart = new p5.Part(); + myPart.addPhrase(myPhraseAttack); + myPart.addPhrase(myPhraseRelease); // comment this back in to check release + myPart.setBPM(100); + myPart.loop(); + myPart.start(); + fft = new p5.FFT(); + endPoint = width / numWaveforms; + noFill(); + background(20); +} + +function draw() { + + + var waveform = fft.waveform(); // analyze the waveform + beginShape(); + stroke(255, 255, 0); + for (var i = 0; i < waveform.length; i++){ + var x = map(i, 0, waveform.length, startPoint, endPoint); + var y = map(waveform[i], -1, 1, height, 0); + vertex(x, y); + } + endShape(); + startPoint = endPoint + 1; + endPoint += (width / numWaveforms); + if (endPoint > width) + { + background(20); + startPoint = 0; + endPoint = (width / numWaveforms); + } +} + + +function makeSoundAttack(time, playbackRate) +{ + var midiValue = scaleArray[note]; + var freqValue = midiToFreq(midiValue); + osc.freq(freqValue * 2, .01, time); // comment this back in to check pitch changes + envelope.play(osc, time); + //envelope.triggerAttack(osc, time); + note = (note + 1) % scaleArray.length; + setTimeout(redrawWaveform, time * 1000.0); + +} + +function makeSoundRelease(time, playbackRate) +{ + //envelope.triggerRelease(osc, time); // comment this back in to check release +} + +function redrawWaveform() +{ + background(20); + startPoint = 0; + endPoint = (width / numWaveforms); +} diff --git a/examples/envelope_exponential_trig_rel/index.html b/examples/envelope_exponential_trig_rel/index.html new file mode 100755 index 00000000..e81591ad --- /dev/null +++ b/examples/envelope_exponential_trig_rel/index.html @@ -0,0 +1,17 @@ + + + + + envelope_exponential_trig_rel + + + + + + + + + + + + diff --git a/examples/envelope_exponential_trig_rel/sketch.js b/examples/envelope_exponential_trig_rel/sketch.js new file mode 100755 index 00000000..f0688ada --- /dev/null +++ b/examples/envelope_exponential_trig_rel/sketch.js @@ -0,0 +1,77 @@ +var osc, envelope, fft; +var myPhraseAttack, myPhraseRelease, myPart; +var atPattern = [1, 0,0,0]; +var relPattern = [0, 0,1,0]; +var scaleArray = [60, 62, 64, 65, 67, 69, 71, 72]; +var note = 0; +var startPoint = 0; +var endPoint = 0; +var numWaveforms = 50; + +function setup() { + createCanvas(710, 200); + osc = new p5.SinOsc(); + envelope = new p5.Env(); + envelope.setExp(true); + envelope.setADSR(0.1, 1.0, .1, 0.2, .01, 0.0); //AT, AL, DT, SL, RT, RL + osc.amp(0.); + osc.start(); + myPhraseAttack = new p5.Phrase('testerAttack', makeSoundAttack, atPattern); + myPhraseRelease = new p5.Phrase('testerRelease', makeSoundRelease, relPattern); + myPart = new p5.Part(); + myPart.addPhrase(myPhraseAttack); + myPart.addPhrase(myPhraseRelease); // comment this back in to check release + myPart.setBPM(100); + myPart.loop(); + myPart.start(); + fft = new p5.FFT(); + endPoint = width / numWaveforms; + noFill(); + background(20); +} + +function draw() { + + + var waveform = fft.waveform(); // analyze the waveform + beginShape(); + stroke(255, 255, 0); + for (var i = 0; i < waveform.length; i++){ + var x = map(i, 0, waveform.length, startPoint, endPoint); + var y = map(waveform[i], -1, 1, height, 0); + vertex(x, y); + } + endShape(); + startPoint = endPoint + 1; + endPoint += (width / numWaveforms); + if (endPoint > width) + { + background(20); + startPoint = 0; + endPoint = (width / numWaveforms); + } +} + + +function makeSoundAttack(time, playbackRate) +{ + var midiValue = scaleArray[note]; + var freqValue = midiToFreq(midiValue); + osc.freq(freqValue * 2, .01, time); // comment this back in to check pitch changes + envelope.triggerAttack(osc, time); + note = (note + 1) % scaleArray.length; + setTimeout(redrawWaveform, time * 1000.0); + +} + +function makeSoundRelease(time, playbackRate) +{ + envelope.triggerRelease(osc, time); // comment this back in to check release +} + +function redrawWaveform() +{ + background(20); + startPoint = 0; + endPoint = (width / numWaveforms); +} diff --git a/src/env.js b/src/env.js index 1586fbfd..c9920aa4 100644 --- a/src/env.js +++ b/src/env.js @@ -104,13 +104,21 @@ define(function (require) { * @property releaseLevel */ this.rLevel = l4 || 0; - console.log(t1 + " " + l1 + " " + t2 + " " + l2 + " " + t3 + " " + l3 + " " + t4 + " " + l4 + " ") + + this.rampHighPercentage = 0.98; + + this.rampLowPercentage = 0.02; + + this.rampAttackTime = 0.01; + this.rampDecayTime = 0.01; this.output = p5sound.audiocontext.createGain();; this.control = new TimelineSignal(); - this.init(); - this.control.connect(this.output); + + this.init(); // this makes sure the envelope starts at zero + + this.control.connect(this.output); // connect to the output this.connection = null; // store connection @@ -132,12 +140,14 @@ define(function (require) { p5sound.soundArray.push(this); }; - + // this init function just smooths the starting value to zero and gives a start point for the timeline + // - it was necessary to remove glitches at the beginning. p5.Env.prototype.init = function () { var now = p5sound.audiocontext.currentTime; var t = now; this.control.setTargetAtTime(0.00001, t, .001); }; + /** * Reset the envelope with a series of time/value pairs. * @@ -164,7 +174,8 @@ define(function (require) { this.rLevel = l4 || 0; }; - + // this is a helper function that lets the user enter values more like an ADSR envelope + // attack time, attack value, decay time, sustain value, release time, release value p5.Env.prototype.setADSR = function(t1, l1, t2, l2, t3, l3){ this.aTime = t1; this.aLevel = l1; @@ -176,6 +187,19 @@ define(function (require) { this.rLevel = l3 || 0; }; + p5.Env.prototype.setRampAD = function(t1, t2){ + //sets the time constants for simple exponential ramps + this.rampAttackTime = t1; + this.rampDecayTime = t2; + }; + + p5.Env.prototype.setRampPercentages = function(p1, p2){ + //set the percentages that the simple exponential ramps go to + this.rampHighPercentage = p1; + this.rampLowPercentage = p2; + }; + + /** * Assign a parameter to be controlled by this envelope. * If a p5.Sound object is given, then the p5.Env will control its @@ -194,7 +218,7 @@ define(function (require) { p5.Env.prototype.setExp = function(isExp){ this.isExponential = isExp; - } + }; //protect against zero values being sent to exponential functions p5.Env.prototype.checkExpInput = function(value) { @@ -209,6 +233,7 @@ define(function (require) { this.connect(unit); }; + /** * Play tells the envelope to start acting on a given input. * If the input is a p5.sound object (i.e. AudioIn, Oscillator, @@ -399,6 +424,109 @@ define(function (require) { this.wasTriggered = false; }; + //this simply ramps exponentially to whatever value you give it, using the time constants set by setRampAD. + //Going up uses attackTime, going down uses decayTime. + p5.Env.prototype.ramp = function(unit, secondsFromNow, v) { + + var now = p5sound.audiocontext.currentTime; + var tFromNow = secondsFromNow || 0; + var t = now + tFromNow; + var destination = this.checkExpInput(v); + + if (unit) { + if (this.connection !== unit) { + this.connect(unit); + } + } + + // get and set value (with linear or exponential ramp) to anchor automation + var currentVal = this.checkExpInput(this.control.getValueAtTime(t)); + this.control.cancelScheduledValues(t); + + //if it's going up + if(destination > currentVal) + { + /// Aatish Bhatia's calculation for time constant for rise(to adjust 1/1-e calculation to any percentage) + var rampTC = (this.rampAttackTime / (log((destination - currentVal)/((1.0 - this.rampHighPercentage) * destination)))); + this.control.setTargetAtTime(destination, t, rampTC); + } + + //if it's going down + if(destination < currentVal) + { + /// Aatish Bhatia's calculation for time constant for fall(to adjust 1/1-e calculation to any percentage) + //not sure about this one, should it be 1-rampLowPercentage or not? + var rampTC = (this.rampDecayTime / (log((currentVal - destination)/((this.rampLowPercentage) * currentVal)))); + this.control.setTargetAtTime(destination, t, rampTC); + } + }; + + + // this is intended as a "pingable" AD trigger. You give it a value to ramp to, and it will use the "simpleAD" time constants to form an exponential ramp up to the value and back down to zero or the 2nd value argument. + p5.Env.prototype.rampAD = function(unit, secondsFromNow, v1, v2) { + + var now = p5sound.audiocontext.currentTime; + var tFromNow = secondsFromNow || 0; + var t = now + tFromNow; + var destination1 = this.checkExpInput(v1); + var destination2 = this.checkExpInput(v2 || 0); + + if (unit) { + if (this.connection !== unit) { + this.connect(unit); + } + } + + // get and set value (with linear or exponential ramp) to anchor automation + var currentVal = this.checkExpInput(this.control.getValueAtTime(t)); + + this.control.cancelScheduledValues(t); + + //if it's going up + if(destination1 > currentVal) + { + /// Aatish Bhatia's calculation for time constant for rise(to adjust 1/1-e calculation to any percentage) + var rampTC = (this.rampAttackTime / (log((destination1 - currentVal)/((1.0 - this.rampHighPercentage) * destination1)))); + //console.log("ramp up1 TC = " + rampTC); + this.control.setTargetAtTime(destination1, t, rampTC); + t += this.rampAttackTime; + } + + //if it's going down + else if(destination1 < currentVal) + { + /// Aatish Bhatia's calculation for time constant for fall(to adjust 1/1-e calculation to any percentage) + var rampTC = (this.rampDecayTime / (log((currentVal - destination1)/((this.rampLowPercentage) * currentVal)))); + //console.log("ramp down1 TC = " + rampTC); + this.control.setTargetAtTime(destination1, t, rampTC); + t += this.rampDecayTime; + } + + // second part of envelope begins + + //if it's going up + if(destination2 > destination1) + { + /// Aatish Bhatia's calculation for time constant for rise(to adjust 1/1-e calculation to any percentage) + var rampTC = (this.rampAttackTime / (log((destination2 - destination1)/((1.0 - this.rampHighPercentage) * destination2)))); + //console.log("ramp up2 TC = " + rampTC); + this.control.setTargetAtTime(destination2, t, rampTC); + } + + //if it's going down + else if(destination2 < destination1) + { + /// Aatish Bhatia's calculation for time constant for fall(to adjust 1/1-e calculation to any percentage) + var rampTC = (this.rampDecayTime / (log((destination1 - destination2)/((this.rampLowPercentage) * destination1)))); + //console.log("ramp down2 TC = " + rampTC); + this.control.setTargetAtTime(destination2, t, rampTC); + } + + + }; + + + p5.Env.prototype.connect = function(unit){ this.connection = unit; From 0222a926d2527e0c88431e71cfbfef949adc703f Mon Sep 17 00:00:00 2001 From: Jeff Snyder Date: Mon, 25 Jan 2016 14:43:03 -0500 Subject: [PATCH 15/25] added this fun bell example to show the use of the rampAD function --- .../assets/LadyChapelStAlbansCathedral.wav | Bin 0 -> 2116858 bytes examples/bells_envelope_test/index.html | 17 +++ examples/bells_envelope_test/sketch.js | 142 ++++++++++++++++++ 3 files changed, 159 insertions(+) create mode 100755 examples/bells_envelope_test/assets/LadyChapelStAlbansCathedral.wav create mode 100755 examples/bells_envelope_test/index.html create mode 100755 examples/bells_envelope_test/sketch.js diff --git a/examples/bells_envelope_test/assets/LadyChapelStAlbansCathedral.wav b/examples/bells_envelope_test/assets/LadyChapelStAlbansCathedral.wav new file mode 100755 index 0000000000000000000000000000000000000000..228b3706afc6e95863d3990c1e2b05002a5193be GIT binary patch literal 2116858 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

Bihj!~-9E3E$U+^qmb2s6iM5YxN`+dl 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%0AG%*mGBNnh*0`;h)e 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®n@4-{ty>6|03X3yF^liyNZ7iY`wlXPt#bsT*) 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 XsQog06{aYVE88`P)L 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

qOWBkOGIL>oNp*2ZkAnr;U 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 z zR9oX6bbc%A?CJq=pCa?*$6j;BQ{H=~e{Oa^)eJOlT@kEOo_&M@Xy#0!+;U*i55 zf9Y9gCmD0qUcL2x^aMPYeg>Y5XW{pZ^UQ_c$8X|=o*(78%KaVa%G_8R&%qDcwaw1J zcjP@9GY&E@XPppVZyi$Bx(jhR&#buUnSOXMJ(O2@|IVK^-smZQEoqeRDMowlQsINy zQpWr!X(~$@hey=mW$m6b#py$>Tg@|>Yxt1zyUXnJGuB3-b}7G`>cSTLnMYc}*-&{8 zGXrNz|8{I84qky7>sfy+L(-?QkL}vUHp_QU8N1&n=7{P>WKYGv9421$H#~nj_G#A7 z9E6!yCg2-G>vi&2*NJ>$kaRlezqUrZen&Yt{WpzKe|Ug22RFM6gMN8(C2PMe?MdU{XYZ}Hvw zzxd?6U7xEASK%b`V{$h60~sTH0mc`8MpDK%uwnkV8y}VC33zz3?!VaVprQ4-#pbRr zY1Z%9c5P}bsyiI+MoPJar=_Q(SlNdFd$t!JDylrjC6ak3t! zyy{rq@2-mLwcQhT6wXzqi*O|pd+(CRR2+!6;cn!PnnnM<>s!dp?oY-J`38wE-Nk&g zJpb|)*IB1ODebJ`lh;1zd@JYPr7ibBKDzwAa39ZQEqz0~{(aFip8vV@e~;(kzpyV^ z%rpE$D|6m8)-YM0Z_q5?2$$bi^`*1(DrJbhTbE~VUA`f{44vteZ;{`X*8TM7+hxq= z+_uu*jkSeO#||6JeAz{eg|c2Y7v;RQ^mWcx*+bb!Hk5sLddinI?h5qqQ-1si)JL88 z`Io)JJO-^RsuOT|X&r~VOaFKr*R0pX`mfrbehu!34~aJrm9J%9h(Db)58CNgO%~`*sX0p#aE>BU)-droqLOobo%4A%DDx; zF|_`>=FWxkTei|?`(f-n^X2cf!R`sShh)Dw=j?1xAK>05^oZ+xCz|gFa<bbl}U zPjOB0et~OA^H<21bY8+A(C3Q(G2#W98_=*vsa~e^=Y#Our@F39WzgzNnnh zk3j3EO52t-chX+KPY*|STFwmI&pW1^370joJ}PIiZ_~9~nQPy~arEbqZ!7ckeQabr zJ+`qw*_muizD?rO_}DW4$45;OcO(wMEit}4zJ1uxx}106@Mif&v5cv;U4KE?Q7dD9 zhu9B}XqNZy@$oHdzw(Z0OI%vq#N%sQOW_1%%@{5D;3#F$e&YTg@%3go^Uj%Z^_2Jz()o;hCsbYR{>}8`kzT$x>cNfZ zvv3%8P+wH>P21A%$CUjB+*tUf_<_2ghSP9w%vx(G-mEVCV)13$oNb))1J~P^BcQs%%)fP z8uBfTU*hfJK8ahA8%Wx6GxfLxuM$V!mEQ(T5ti~?K%a{z;Fq|HaT?$FwmDCmm-KQb zF<829x<4Fm!`S1#_#)04TGpjyojagi$K3+YcW)Q$$Tv1HSiH3P19$+k;rNZJLN=85 zC*?fx?q>PkAZv}z`o{8w!nf*W`|LPlHe)XPgua+D-A6urRQzq;)t3KXfbEp|K6ZPm zYx~T`L3nag--(z0UjqMy>eBj3cUgBY&&tdZZp}1IG zj2qC85WW_!qD@lPInvBLpKhLR^s=fY+!{oP^{MdgL`#6t$PA;MU1^2^W;)>WteO&B&y7I)ntk24t@_V=w zJ@fj~cs;%)kFzlTY$v=9&7s9UhT#kJL1b0&Z^pqm50yXX!6n_5T_*L3zKetnta!6lK^@IGb)b-_JRJC*$i*dTj7g@)kLh z%poVK*Hf7GeF(QD85e1b`^bChm$YUsV%AaD)BE?-=c?wpvTxY4UGINx#OdPB!D-@t zh_TPCI|ivs)(PrdH5V~+-V*f8g)56|?k#KZoclbk&imp)o=g0fjTh_UvKOB(?t9YB zJkU}G?NfeV@Rerq`>A()M)h|buTK{5E^|zk^E>5hWt<$O&ab;a5pN_jTz{_YvCjq4 zo{st{>%X%17($=j=HtbA6X%(8|AJlenT1#2{dhi3z^kOOB|bdVe58EKH-+J7yiT0h z(;4)e@JafQkPj|v?>_QPIpUKa!`JYB9D(VV2}8^Koc!IP>T>#2VhopWiNEPOK6DrI zPqLBl_Y>xs)YmvD@rDhp(;BmVJ%{w6Z|wfbxCC}^JlVnZJnNE4SgG^lxksOmGx@A# zwWYmXYXA<{Q79QMA5^&QHq!yA``Rg&tpcBHq(?&t zTFd*-9{C)oJ^1bN{_zy`ndrX$E93e=JfFTBeh)XmeKF-fBvilsuqE&Pu|L_J#Aj&d zvIa_i#6Dq?C?voQNNV^(JX2Hfxa|}KiG~ep}oI>eQ$Qu&C}#=FN#|Mmu4oTZ)&hNd>%YyhY_BoQZ!LkDljie@ zYvaS>@ogD%Ro0KEV{AgZmNKn@&&fMu;!2!~Z^_?2wT!vJt{0c*3ht%955x=bJNR8Z z7l%p1xX;;s8HeeEarD$BZJaT5Jju99*^}P^_%eQ#{Dy2!e*xKDX>0MyoRH`4Ci{?- zkDZpb+S>IAobfA%;fJU{%J)>CsYm9LH;_LqXO?M;-Y572oTq={PX>}c zJ+_}Ye6C3LAcv6TJ%yxA*<6{U*6S%z{*ACVhePsV#OZS)+D#Xlii%5RslHtb|RPZ{~BGH-t1o-tYdUfAErOmVWF zG}c>L8~0sAd#Wma?hLl@iFn$noRev`Aj;cV<9-d)&5CXr*w734N@Jjt`Ci4(t~tQq%}GBx(VY3)YmP~i`@ zy@#Q<-9H}ZxIb3-3-pA)j9Ht7d9H&)=sn^Mpx=%w)320H)_n05%i%fF?}y(J-i4L$ zZN=Ait)!!^I$8VOgh$YotNgC==0)Wbo;_IR=4$aey~Zr}TI3YcAYZWSd&yy>V?5=b z^-4MSJxE_#KbEmQ+5IJ&b^IN%>DjYzEM9@>ulTR;%IiV=CjBlvihezcpS@!F)@c-; z+pgDG%9gXc>JDT(d7oZ>ACtBjDgVdtKFs}>@oHSTS?6~k9xC08wXK9F|Mcq}I391t zes~?Oqx=`)&A30V+Ai;FtMSMO6q~RfEA2GSGiz$E)uinltF+&y^qJbzSzO*RRR8ka zAMj`RTcSS2p4P(~=!4{QB<2iZmh1SEtQ9kleMzn$yEe5u?t#|D<*eAaDgO5X981g( z<*a>xwDfy_4hnqX!E~HtEJv|;|tPbJ7o>Jk$h8!)$wUus6XDpl}LQ|Q2nqB9^`(? ze}S?&i^$)AXobh&2FNxV>BoKC&o~;04SY*p>9e$T{EBsUdB@XGmc~$`P6s#3+*{4Y zRjs@Gc9*?XwIP0C-Q7feoo}u4ond}6lC^7ROJsvBYqGLm|Ci^j=Nr%9bZMW5o0F}z z&!sp^JMiJ@^Rn-nDo)mI!dqM5Jo@gqke(F75jJPW8<^PGOV@VgTxZjEJqJp&e0RM5BKE^q#YxLbPcV~0oA3fAI`@Ti8IJC?!nRheq6n}RG#?QreJL)`LxqpEfZ$HIe`eXP2rX8*k zeglrh@%XVkPDMVajFF99>(g>3x;y@kG(Dd+tUfQ_9L+bzvTw|Moc`fss>GXvvyi_k zZLPno5m*6$+`km-SsN7|*+1GQI&|@dx!;xf)`01Z}@Ym!m*Z(y}m*Ue` zQjU$uCS*8$d;5c97F~a*es|G275T3CwKA{TLzLg1Y$pCzgfHsE|2!<+*GO#oJ0yF$ z^OYm*_nvZ{jHi>EiLqDC0$z9h6W4zt&yl~^;bkn`?Oyb$n0V*Aei=_g&lLOa;2z{> zBz+tGQ*H4gz9!FKqxLU*j1C)nh}YXEV7)1vfq~daqPH!W220njTV(Q|5WK6W{sx~7=bN4K zHwNF4mc4a+K>7B2V#+3d>OKz#;D~nFFO~1Y-;&pC`b6db2>U7TQoY4b6>2ZVbtCo@_9~86x0L5~b@g5{=RwtmxQ6_#G0XZZd*nUDwWck9kI9-M>#NSv zI92?4Nf$F-ULpsR4@uf%NzdecR{X;PZIF3;Sd$OK!<+SQw@<@S^t9n|xDFbtIS;SC zj~RF4aeR;ea}(F}_qH#_9po_qPg9n2Q5zLLBK$1+>)P~m<6k*D-&R(6c8V&-Nsx?*H^7;@E3SF@;9vtC&@z^r9Z5D^1iHL%~CzIsQ!=BHzjjO zm%eS|EN!25SzkSSahGPje)~G!KsQdx{v@`tJADB5!4cZ;X|k>B7M_oN@WI5v^q+n& zXA&Ri$F%h}!dAtDls9J>XXD0rjdEx0G}-<1ANy*sucTRg_E+iWkyXfiX}>{YM^|9h zwPSFzW_@0_FAk>fk5e%H8T(6k;wQYqU2(89qK_NO{%|ppcw3XB$(iI>?UFG+iCjvi z(=Q~yaLpf-_pE$Mc}K?AG`hOkcC-AxIeX{UK>G2*x59J8v%boiOJ`#=PRs9M-gH0j zc>XQ^nz&qd{eLpVF9^%~f#M@q#=AVbG@j(y_^+WPWm$qg4c}Ckvlnp)_91*^@nfTL zB>gJ&J`VH!8v8EiESKS2V>0zjKc0cvn~lLi^zCp0E{o~kfkTaF_m^?q<@z<8gG1W2 z4;_PPcRU}zIu2LBb#R{a7AWhg^z3N{;do)^;|<1N z>RZt}Xx=Di=~pRJ=8I8m@5O{;FAivzv%AKL?RxEFtYi)=`=%GAm9dg~q}{p3|RUE23x#*w_Lg^T!=-ZF<&tFh^6?#G9U-^#u~9m@WG zKj9yUzdHRzd|g@Y#;JT^g~@w34kF8wtH~;47Fkxlb8&m}E*VGO5_T(*R#|`i68|Us zVO&u;Cb(Wh{@X5M{B-eu^7}$q-)8+c1XI3WdFDR+8NS-A_r(h^_5D=%RPh(m&!_(t zTlhM@sm*_d+1prWa$W9;Bv zyd4+dH2fRhhL7U)n6h4ueKCHiQqO}zcC!&?p1VsPSzG2`)hrQ5F(;OF_aOX%@Ts2L7l%l1Cv1?HTqo^8 zcphf1n~cLelkpzEnX%Z7o8Sn%VrW@=l(JvvTHBX7FZOqKobm`d~W>EYGgaok>6`%7D+kMP8pM*llbb5#97Dn zO4yC@Mf#@fCAN2+{*iup$MFcNch$l4#~gfvJ*CVCDeDuct;@TrG14AOKU-QGWAa-P zcO?Bu+KSDVv)79-Ha!!cA&-;P>ouG~e(m}u@)L3axu2X!(*8rqW+df*S{`qZ>?H@_ z?LD>s{T!bq%e3pW%5YQCj|?PhlC{ZRByo?yxA00#8Z*$CE_3@C_&9x<@Ql@2_ye4W z>*7MxCXJ4(@@%Dg&GLB6^8w;oL2PsJZ%ujentUyDNTrAihNJ=XvEV^T#-K%~+TzY#n4TWsXUotWAcH{mBWxqifUhjfU}7-jN!ct(#Q>_OK*WsUJu&s#5)Z?*p> z?kB{UsIn*GPs*Ntw6Lr(b`hTUcl<_cTTGwsj`}!%U#yWabC|R~!ZCE?y>lF99dZh> z|0ur^Skd(f1oIn#vKKngy$!5qb`!o0vHr<-r^zqhQRJO;-Zz)|Sua8=>zk-rO8{_e~h$}3L8oYdJ(FQ$FRmd-PF!X?drdv3|E_uEDMG1H6yy;QEH1Qnzv@btnDX z?Ru?yJ8I9yL+$!|-UsN(V@BKG+E4~#y0m#O>VxcWI@+}Hk9OIISABc!<(uV9w7fIV zer{8GDDSc+s>~gI=<#t2$nNA>GK$D2=g#FEX0|dO<2t_cBz#=i6KDTs`L-+PHq}Js zdzfDQ3jWxAeUnP)VHGCQ4i?W_h*%y!($O!k=Ah(hu$P1*B_s1mZS+6x7 zb)9n~d3LNL|39m#?h7yPW0bwD72gwfi1<(70b~-{ntY9HMf#Cl$m8WnZ!YTL{RL63Tpxk+HRr=`X_#FL5*h5PDV$#<}<+m`Y!|G&Pk~VGPy5vlvo@FgJ z)^*aondtM19i=a;Il^|syE zwD-;=Wo!`kQ~Eh)G+9@V(QXs)wV~`6cWTxghM9}^!OUG<_!%x7TGuD*#^G&y4Pl34 zUve3_P@dB+nU(n!SuUvSG)<+9#@cVawOTC#1>8`f0Oo&Xw6W*g<7br zPth|sr4Pm^OYHqg?BKFZa~7`DtoKao(e-0FPrX-KDf=+8fUMmH?KJ@fykNn@o_j;UFV%8NOA^UCo3)dEJ z3Hk4j8Kbd<_%V5v^C{(PY^2;zDCfq)wO?mbe2k4nSBB`7{%mYcKT3G+XUuJei(~XR zv`5}8*$Z@1Z{xP?(I(<6;;^ag^~!ex>Qa37JY~F(h*N$;5uX#E-XJqc)`+pWj2rb$ zTNFQ(b~#D;Um`cSo{!Jtzsc{&C-e{THv}vGzr5Q{9bzX-6Jw*iTl)@vFtmP$ctW$@ zcin<#DDO}4Ao>3RGX{QxFAM((uF|g8L;K>+i9`A8FS6$JcS1bH%L7(neoFHrvViXgSY(;{L&;L(Zj7 z#@oqT(tQB4cla^Jr~MiSx9h)`+SE30(TCxy*d_c$yji?Cn7kgw!P0pUzree343U1B zyKZ&eOYS9alKaUA#B)`n+n8^bcW0I7a<*OFNB-yj)#P0=n*IjvNS-Hsh-b=oYWJWv zttR2(MBU0b9FA%81_o-fV>Jeht29#6j!U#2IGUF4CrG^X>tZ`MHNEZ{G$zf`^@ ztfN-94$FFKL$oHWtW7#ur)7lITI_ZmQ8hMD^M(z@JGm^ZAY^2{({_hH#ibrDF_nRdBc?A7V{1#3}@ftUgapXdB zDiNog2M$5cmwE0`oTn{@;TgCtj>csc@g>*U_g{hWsS`10R1YNFe)MS^%oY-F6uyn) zd+KpB2Gb8&Gb|>(729?C8{;PQy>N9r42R-KO!ywSEM{!K=lO-6zZsXou~^E7D~dBt zSuQ{}U&X#MzS6GKl{Wh?U7pR@JPc>xydJ(4o9%ipdjyV`<^-&aiR}&*c~`ooIQP-d z!Q+KJfGOASFm?NcoK3zWuZ#KirSNKbe@P|^{{uPKb;>^!r=oh6HP{1~{yGRFeTel^ zd6zc{U!!-E&BYmu-@{(K1P4lMGO~k`&qc1&#%c4dh24y)U&zNc?#9RQA-q@lAH)gt z`*AWo;r%f2W1|<~B=z1KW8=%>qp0rXUG0mQaPw2K^+%Bnl)8;}y|no8%lo7LE$fv2 zuJ0fll38R^<$MWOA}^BIO!|FQ@?)}|`#0eZBz7}`#CEIij zne(+xE9oBT`964(cv;IFMgN=(r!P-m#dYTJjGvqX-)c_Z2K99(-+l58{8(3ipZgY@a=L)kON?_|#Dhq0e^ z$P|)w!0Tia&vcQLzni2Tj#kIp@npP*OmeNS@_kG>Z=Q~9KYu$W>!z&bI~iw7_tte+ zzgE^~+PR@EIzzPgyW(}@+uCb8;hryRo1Y8M{zh8mH;|7=Gj@`Y?ov4ic&_etzFX^dXP({XE} zoy+g0*iPxQvvK6m`q{TI`R&xK`{^vyXJsy1L-?)q4e(mr6feU4aL;CK7fWNt$W_L1 z#v8jUYsYP+@fVVNVeY+!^YItjCjIvS{bPE3&g*1zy7q3oDUFLTcD4&1kFlpgBzu?m zwD^h4U#m9j^GD?=d!WK+h zaHewq5?jhQ8~c)Pmf7T0ChdfXJIeC#hN`HaOB(IUXh%~CJNW#^(`h$4O;h*t7 zb@&kbYp2g~Rc*4QGR;P7rec3NyLnkz*1{Rqs(DA4y>!+~2YD{<3I|9}U8;%A@_&$& zb@XS#-jinP^dItD_niNfHB|Cw3;RFvuz0^9Pmza6udq{yy5$T$4uoToKKc@-5=R~neVs9 zt(#>XQ`UW}&_AJn)Ki~pJE;*AXX-q_*@dFPCEI;OwB#MsZ8^1Tp?zrfw-(k}b-JbN7dS#kHk#Mzi!NLJFW zS7F+BDlUN!AU{;*^~GF2Le>+02c~|PllZ4^Ez*Z!+H5V%nxZdG#n;F+B)%_ek*Bd2 zwM97#>fPRcg)A6q%#ov;^*Z$d+=#?ZE@;{tv$-F-X1C>C$rktyy@~&He|u!Bc}HIT zg>EdD^?mxmxG(m&vg?VYpZo^l9A$Vzp2xP8MVsG-!{`s;TsHL>#@F4BEo+$5agb-e zg4Q@?tsTEK$1`dBZJV|KjQ`n{J{k|e%`ojfSG<+6OPa}hI2rszJw9i+mv(&@V`E9{ zeB2GQcH0Z*yO(mOjlOXGBQz(M?}bJw@7ioaIm_S49BYinX1dwlXnao^-$4J$-`r`j zx&7&r*;s5!*~)LZ*09HGWN&A`*2;OlJ#@}~Q4!Asm1Z_LGXerVc-^!T&0>FzbTW(nAbEyFf0mdVa{iHbH|5*2 zAK+WUP9(3AZ!QX#ZzJP|9hKiz?4TUlIPa`leQ`s2>MLHE*G4Y7ePj5oJ@&h3{Fn7e)*z>~*|IdR$EoI=X}AEd#LE4HFn(ewd>N1T{0Qj{BnwH(_EoZ` zwy5xHwKD58ucBlf`63EXki*IcA1gGyjKS&0@6H{CmIF8eU0AON*t2 zw6vs>=1(l7-}U}H@89S0-Q{w>+|J{9p67X(?|!i^23?`14V{KxRmp|K;rV*V-XiS^y*W%kGEZQ^?!bA5G>BCqJ`pFh8=Xngp4sMWI2+UF=d_j0`LCfqSpLS` zcwFAys6K|;w0u+58rrCgJK3))^^$dhK34oj9hC1=FT*>9$FGKH>o7ifDSpEJF2Nhx zd=8(&^D)m@r^|bu=_jzaz|ri@@G#}u91p?w#OIIYw;4O)o9tcjkGQ4lUcy1_-{FVw z&&W5*e#HUozp@A8YnU-Nc2`gM{_GdnN$(ltLsjhClqK;eV)Db^%kRz3Qa7HlvM1R& z26t?i-v~7ZiTg$N7VYwPQnEhpe1Sd4eDhg6H}eYilYXunubf9O@od0{M&SG=zrwqO ze*zcw#7n&$DgKed55|X$hkN4+ZR6Ri@v=JZjpw=lpWOQ%{0XUp>@}3;9EzohwX;eYVWW`)1;H)}Ba$oW4D%DaJ6@h|c?R(QklN8M{1*LxS# z+K+am)YS&UQ>V|1>)JePjlT$$Yy4FFYPjrG*$6Y8U{^1q`#v~g+Mv^C#|-Dx@JeECi7zr|7aReWrM zaOEn$jZ>D^DE95rJOJlod|)yDTHMs5dMf(}+ed+@nWf9G$-`TFV|IM;ZUIx>e=7voSmh9>tMC$Hs4ePs&#I=u%Ia*Dl0{@DJkve4f((#$e{#tkbhz-Jz@A2f76Fe4a5R zbM+YHljU!f37vESV?O)+sabCpPnEF{_%*dGI+S3148cX!W^3G~Qd_}x9;`dXp zkK)dBB@LiM={U;$C!n=x@uP$cp;aqb=87)iJel=()`Y8P;bV9Uu2Gg-@$c5@^Tm5XS~s(w z^ml!)!F%u$;nz3)zc_fl^I7*#cHMq>F80H(3SUjCqk*!#)6TfX0!$KI5!PRcXNx5ayv#yS5o?oY2#%9eZf7JmcW(D`0?ulfD` zI2-f4ImbM`BlhcIU;WVi@?C7pGh2CAnRGoHmOY%c-F4fAeT2V(-WQek08<>_K)bYS z-?{+j-dpc04(+Pvo%t9)9oSXRKUw2n%}(Dr2Yb1GPn?9WQTlz-e4DIM%Gfar{Y~9;#cvLlju z$I}%woKB?eX)vW8w!&qYXPXt$NxiQ&Rt^%LF>?Z5qU~v8r#+_CNd znnUAPS?giLxY#&~{S7?C`3vwH)<737DRWZmTX>WFoi1D%Iw#_zI9m8qxflBx*Jqym zJ^M9!mhN)RW0?AQkgk=7$5H>QI=DdH{0x_L)!{SQxvs$h(8ovw78^}(6A2Yy_BvW`l5PC#Q~=N#1jos_Gx4!e}Ct~=Ic<^4w1c=xz2 zYvV_x>H4f8vWD$!AS~-j?-UyEI;X7F-*E@_THKAjvEw1MjpNky2Wd|_l=h*I3zt@9 z?bs5Y-{qIJt~E*8DDRc>{Ysff@0R96bR6}erRpww=pF4F-_v)>`}Ni8a;stbxV}6T z^Ns08@LutcLjF@7fnQNh=gazV5B#w-`(x_WIM%@GZ_<69y`WkDM*FMHvcAq(*~wh4 zU9!&3oYcy?DZXQlEOoB#t4r0D=b-psDFb#=C)bJhAG(&_p^Ke=5tXf4iMwOUyGouD zcP7ej`I}24a0vTgoQ(1H7Jdj5uM0CS9E2a}(V@6bSo*`wcnN0xl77{Xk0l?Eb=CPf zvRVI*|I;{8_+&f)FTwrgYbtJv>F0~2bpaZCvcF#5qkRkeO6!|=15UtRG@4p8kUmcj zIG6crDt-quCfuky6bOE z$6@A_#rB=I#*X`D4&Sfo?^SB|i?!{sY;9fU^at?^Y;#YZ^UF8B$KbEUA13~foHs`# zubrg(HTP(>*ukor^FChLp&)Q58Y2PyuPx*1Q2KZ-V{lZYQx7oqt1rX}CjWxufO6+MHC+~>b& zZ>+NBD0{WLVCJ%YFmvS)Txm_7v0>jf|G_V{>+gco53+Z22Rmz+AFX}ow+j{^QQr^ zyM{GZPZhsOXR(vlvEuJc3F{}W{AEp({qgD{dc^(Rr%HQ_p&1n4OTS&BKF&t|Q1);p zv2SIs!ll^dx>cwjR`1Z=jNxt2u)5kq`pq+#z&-)6qK589+#@Na}RZDoMhpqId zZP?ohPrOaoyNW06vYygL9p|fV_Yx;<*vdLCZEpQl`t#wN`QFk={qKosf4-BoXZEMF{;U?c?mzT%=ij2gIQ|{|+wnc(Y%I<- z?wNakOjvwitur-uFqHL8*d1Y z4-aY^@9}Kh59i=U_(NPDAH`SPGxI{i|B3_T^-Ua%>+sMXdw=KOtIs#y!i+KNE#bTJ zZvH9l-3QH=o!DndH#9bs{kaw9v83<$p!zjt4Rt?eZk>;#<@v^(SC(t=EcUH91?S>a z;jz~lS8{%q>!xD=uKGKaCAbg!Wi)p*KG3Y+r)-IRrLi4moEwR!iSsplK;FKC%8%;Ih_QA+MI{dd~T!_E6^wZK; z_jfLR_CVU3h6>*crQH!P%Dbe_Zo&p&{3$;6NBQ`dd(6RKQN}1fRQ4Js;8)tldAt`l z!L*yQwfZhG-zr;woXF0e*4&=i?H4}1?T!QQpCsV_F&8Zjk0*g&Wfw zzr{SG+<_fq>(>*%yI$ij!~x=TLVAfZCz(^q+WtBGpLYF>eH_kbAA(s+yh~GQRF4+8 z$2iANbg4r;#(j3clxYHHJunHc$8Jo$KcO7g;zO9aaQ{*_c}6&c{V*Plx!(Xxe$(HQ z&SPE0$ID*$c=ky4K%6TdLoxGbd|ZDi|0X)W%JGXhfj%ys=kW^MiYMYET7xT-E zr!&yln7==fF|hGb=Zv9Q7j?`JWt`!&<+*4+KGSWTk6&olesmMccljN_-ooEu^MTeT zOX|IVt?*3t0E|y$?X8_#S$C%XUK8KAQRcQiaXLHW=3wMErEibN*~(d^yvmpUK1tY) z;kGPYcXf5Kt(GQA-`Z)5sf+Gn;rzJjUS zUt!uS`Hb&PL1WJUtz##)cl{dAox2$FeRu!SN62WO{)1 z6}|%F?<-N-)w4JV|Bj=z!9TIL^wW3eb=SWOd`_E`b)LEpw{F+J>prMmf3JTWJ|X^z z_>g;~p4_+0h1cTs;>YhYm&!xg)7=TLVyoxsB796;eH&LO(?m=ekHiKIqC;puiXR+I zN6=~XX{u!JkDN7zhnOtSEIgA_C@~7o~K{*mWPua_ro>H zA8O;0*Ga~!jE(%dm2qoqv;O-hU&IxzISG^g{>}P3A#1X-H#Y#~Bkfe$`9*c~MK+%( z@77aaIsd=%ayfp1O1G@J-5id@nY->ai)~ zU(Q{PnIE6Qy#L;$S=&3{RN)8XS$GtV!Y<7G))!~timv+iPAmA{R_%JdcM5JIPq(AG zuYN)Nw%SlTKBqm6HH|l&`_Pi|Eo615aBZBwbDi-e@13%@RfYVlIv$m^d^^0W>qoM$ zcJCuFWAy$wR6a6qWvtFTwqdjW|0uUXX=e>sz2lw-V%l^g;qkMj)=yhwOIvP-4Q;X| zPUn|7|2OwZ+wS7pXUP4_x^_>;pQ6<9GI7#|gWY>Q_K0S^rpOwnH#_6RhwxQQ-+B{2 zgR4-xm)}){(6Y2i}5zz#rhB za1pB0glCVftY=oTo9y^dA2haIq- zXD?ia{qX@DCEm|)Jli&n`4IOZ9;7zj-LUT8b%G@;9?5d=Wc!HW5FDbM=ph9rx|#1M;&N z-=J;VbwAr(-QDB(E10n%<4*i#e;k54@XI4{LmY*xx@-SkY25z=`!)U)zuk?0$8RTz z*W~ZFvG-#eFFFHJzv#Rl&F7hi8yOpa zdGXat@{@P#Wn9-j)ejv17&BMQr57FFNUzg$dRAD{Uq<|?nt?A!>rkACZ_-Q3lDxIl zSMofS^tEe&;_#k8=SFXEBydS1T?JKo{mg`>Obce(mtBjtStGf(W;RQK2)x5meWFYd0} zS3Q>gbuJ#|T*4RQ2JQO)@z}+2o+n51KjU&4pIZ1~=Rb)J=a0ch_;KuhuFqQ1c-e{n z>z|!m-^+NK@p6dveZ)1Dy1W20x1`OoCaKix#=>sys{MBx^>G;W6crEUXqwxkhiw4k0NqvUhX*lKT#2Ka9iJcU!L|IWyi~jB~ZIvXuLpq+BGlo1Q z{j5g^nuiBq=7yc|o4A|uSL!3-Uv=Jl$}&D~f#R2SEn;xmvu+`O5Q8C4MXIaf$q7FJuHe_sRWV751F_ zJcZi3thaY@dJ&{V&fk=_7mMX3g@=U1O(a`MZc^O?Zg#{!M;^ zA8eLy!wTagsne8kSMmQQz2WSqaWwuKPZOTHzY=f9g~G4L4qnu*``AhB7ufr=pT&3O z@pm`}AHuQ9rGJz?jTtygUq1yiu8hLWAs@l4b@s=G>kh(maU?Fp5g4EP0jZoc55s{J9!?+YQSO&KTuA%T zRg}EVr}xoKw4$s28!9bKepV~TmoRfveEMEo;vS7QD!VzZyd%}_Wu0;WW-K@qN4xeS zY{}zwxJ;Tq!mXP2Tk!~7gO@k!zteFsu2R0Mg)c+-D|_&lu`d@d9D(1$KF&|U%Dt{f z>&JY1RNhNIjBDjB?U(11)tK@4FPQl=?RzCYfs3@~PjM-G5kAqAo-&l@2>StLKItbs z_gmpUm!PsGf90L?eVDb`AJ8*H$2?cQt=j_4(X9bB%inZb)TM3M>bsLY(jEDD_SpDn z*`J9o{gzInN9jo6i*b9LhqGOu`l-BI4pWZQOWK29=b5Cs0>`lLKz>yA>a`u~hLN{-?jtJtXr*O&Ea+EU!S+pC_ZIrJ2J z8l^vKi|QHt1}0wSeEF{UQr;~lUwJ1|wecu+%K8O%?)z117;BWqw{a7^Ncj7_udGlS zt@DI$N+;7s&VNEUyP-TSZQIIy)<`F5{+v?ZcTz8^qI*pX$Vbb!=+^gTuD%Ob^T(f~ zb!oL6JN)#=*jwM2iCN2y!WS@O#m-Ihm^e*bEbLRb2aP2@QGP#>@i5`N=@6PM-flRT zPx7y_Z~KO@0quHj`z+3NzYB3J-i{NTUw{+Y$!A~ooj8nr1>G^zx}=BFDtoV2Vt@8b)NjgjyL21F$^A=Ty#$lycublN%vdvC{KxPt+SYxu z_WES)X~3 zaWBjm@%46jCs%!^UH@O5H_4;ElYHkrV0re?w=%D`^ttR0ma&9g-VrNjm2_`or%#{H zPM;aUUW%KtZ^I|M>#<`tPGwL2f9&+HJLT_Ud{g)g?Blx2@k4k$?$cu*h>16}{eNR} znO8PsU)@!|2b-%+GlnLtaX>vT@$s@}@ERtse7ubFCpYUgVe)i`w6769&-pvpceCfS z!`OVYtWnib@>-?6za;$gxCdr@TPF|wlw~q5q1Ey-*15FDLR^N%mh6eNyeH3lwAPk5 zQFz*=uY7NXXUS*AiRAYk@i(D=QOkY*ieJWO@Jw1w-=gQpd|T@O5XYGtR=Ym&(&v|B z>g6Z6al3wAPkl~jpVF@1>z#o|vD1G0;rnn9rjKohcX!p#H=lRB1zktG(*1N$PoDO2 zoN?;YlzXO*?xy3NzZOrx)b}Wg?|z1MBzZ4uh|_TgI-8P*gpZ)4cOvDwlsjddK!fQk zq^`=}E69Ae3%fVIOX=6ixACtWdv+=NS_$jZUGMiT$6Ukj%6m<7S9wl49#0XT`Z-R% zr{G7}6?Wk_@Id7EC10oE7>Wf*cj>GKtUefjr$&#`@Ze$;=qwnq^{MW+m%T+H)<1P9#Ev0|Z zD0-E~ch}z=4tLMLvU@k{XQR|<@}N%2nDwOd*RXrx3^YEK{&a}r^V}!n;AQwLx{8wa z)s+2Z{VLBDRhWIk%jJ6qoGD(OBQgeN&*H=E*Brm6oWDeQYs|tHpKW6L_XJ^?rykRW znWs9AQ=f0*xwt{IenwP|vL>0MPQNSMI8c2LGmb99m+*cZ*{*%`)A(!GOvML;D`WKo z_QiNL`&{8)!T3Y`dvBcUp07wJ>%4(Dn+6KYSo<{Q9`S|s#k~+8U|)g5)ZHDJdFEam zEACH_KUT|e8Lq(Rd-x*$imlvL^86UyfX}$@YnX9nQxva!d%OxSk#_24a(6u@J&sSX zpT^mkyi|Az_Qy$B=2=|g+SGaa#%gSsW3$)L5U(#z!WONiKD3#8uNG%R?1;Y}j_a=T zvk2#kvrXGM*Ye$x_Q&yR=Q55rNZXgaxDD_Wa<25X;mBXgJbxYblh)1X{_(T2A9)4N zVDqPv&y362WBWQ@+jIRA_qv3=jGgmq@JhT=c+&3}r{k|9r5~owF@Eq$SM9HvTdmi#-%;kO$yix)`~-)J_YzujRM}T}5!3&7)Zg>m zznA;O{-iiB(s1@N+?_6^H(Wm$&%z1Rn;P!7Ls#u@4`9}%6LGveq_5rEUH83XT=zHk zOIsc$-TO&<=N((-^Xe7h_h7^Q@5cYo_l0HOXTIb29BcRTcRDM_Z_)(zYnU-Qwy~(Z zdl0{s@;%9ZpKhXXIyX*yFEAIqDWluTsF0GWu+)_PD z-=$v*n@Gx6)^H24ukg9}f;?V?3-L%?irTE~-?e&pGNx^(;9Si7qOVqqaU^QP;^#lW z%K01c5&RZ5=%dt|wxZncHd;xODe29jLG%!%4*6o)FOB~!=&IN6#;x+3y_+%bo}RJ&F-$CXMWc|%KHXmR}~+dtsG%L=MTg&nDv4B?d*g4f0gU@ zlolV&_W&*XdKqs!_W9ypt@y%^*;zO6kxuUSl=%8@@tLec+U&ndD|Nn{^u6rOm2br_ zL-kPJz4yY5=jp?DJD$;1k0s{0GEc0;p~5$Bnz!%(%zQBfw|3nzcr<<%)j|1Nd8fM9 zrR*`7@zZ!w=J(8Ji`bcm!l~LQJh)kYPn>=E>Snq{*!S>3GL~l?udb}^#%yd0yB4p< zq(9T~ZTJPcmHN;95wW}KcVHRoZle*@B5T6(OtaQ?@w;K&{8w1&x4-lJtjzmcw#!W7EV$a3?I7)Z}yD@P#bKH{Gk7CL^8Kvt86JjjZpUOu=9E{7&&_c&YQ>_xr}FINkZvo!9=Y z(Rd_#C)^kRLA%pD+Le;G!|7@H`x4H;v$4WiI1l-Gd3SOnZcpKf@|d=AkH&ZDVz#n0 zF2VTu6r6^s*W(+cG-i2wSO>jrdxV{s{$8$d8%BL}Y zSK*b)oH|^CDZ^Hjw)!NUK_8(LdhCzmXgY-YQHvJ4F73R4-)w{LNP`h5!UW$vv z`7Wk@7t}0sP<-znP^?Z>&`Fr+Z_*dM=`4=&LLBJ#PN>EJFxOC!;Wd^rvEPh$MN~WsNYrQn*8mC{2ji= zeQfKR>QO#DklkVDS#K$Biu|d{+^OBFx1@h`vwl9^fc-ez7*p1UdG?sc*5}LGF5}mC z*!$8q=m@%qPHmTO>Z_FHHuiK{FRY2)pkOP@OpGgjV!eVg^~4F=(AcE*?2aqnjR9xQG4A9ioySx;=n zPT4nQKabBT^Y74@RD7T>#y2va&A^fF{Uv-J2jc;>1;w8_%5g1D5_dKZbZzpqT;6WR z&6{-^AHh-Vui#erb?la2`qOaK_sg8HFSe9(SIk_L>obqP=s58n!mLB4<4R0D^=TUu zU2`C2E;t$2;@5Dz{9KH)#JdLHW9$Fv-}x4$^vT4(xLNz>9DGT-%W#~sJ%=M)^CIS1 zCa^-?IOne7=8Jy>8wX$GBH`GiL1F&|0V; z?%!5Vcn&-Jbg9dXdCPE}dpy#vfBT}{%6jA1_}!jxWhw85zwEvv#6KGsNq-~`QHD=p zi^kIJ^uP2h8P}`a<7?O#&(nwGCF6Cq87>m%KaSh9(s9aur{mw^cPLaR<+oJ_^@Q(? zPYE}!L=U&GhY5dvO&>w=%I{z%x^8QB=J(`l564+o z#D}hQ&1twCzlsYnZI|#bV8-kw4(_V=o>t&m+EUmJxG|2z)WLXh`F5F8K8YDOQiip7 zARgJS_i!&lb4?j@HxVAc>S&Xv(3q2VllcZD-;Fl5ZPz^B@qMJGcU*Su7_%c4jPW^S`V7i<#hJBpQpbh9$S|;vMI1~3oV@a9Q({6mHjB8JJ*X!M( z?Rwlh2M-fB<5R{Ob4%HC9EI|h?-#&hvcf`;VjRvbHMM|G2H5*tfAC6#uL2 zyD$&V_m3J8< z#n;BAuJ}ReEAOg{jBAy?bu_;0{%M!5x9hdmtvJGUzr!QlCwmiv*x4USJ7%q*4l8>U zS<7~^U##6**+2FSRGx#?d-b~O)2G&8iyoqr+V%73Rj7YtzA1Z!?8aQjSJ3TrAv^u; zbjQENQTQqjZrAyF+jDc)JWqJ;&fd-hcJ`_Jva`mG-@GaQ5M#`0>@Oe7aUiB0%q8Wy z_-VF0Gn(~9&HS0Z$%=5oyFUCLM2>c7qQr0ziwR9dv zb#-$Or*#=Wv0{;0Nm+3~6PI)0n%T~rsa<73}s|Ch$on>1GV-*5yz zf*+*&sN}!Lz8a6EE9hdHF79l+4DY8)96yC=>$Nzi_M__7cI`LvUB!>?6`uW2KGI2E zV)w9<{gv;z{`ca}pr1HC7u_d$&-$NWAOW<6G2g!>E6_`pXp?kBJ1JIr^rVaD|r^{cG4_;)MM(eab4!3LPycfpnVf7S^j zj6;2f)!%CVqgmEJc~?`$y<4RFXF8Eyqiux$1>?V~F#fv~Th=5Ca1#H&7_&b8CJuG} zvv?=&h?#5Fk#x$OF$j&t<(bl2qP%zP7~9SizS=yUv{nfJHuiGe={N<)q4j)u-du&| z_OgDhaBJr>ukMT4&piNJcnWqfY0Y(y8L`a+S77F^OK^Rj- z9d_o9>MnYTeLwySAH~%BFL7h_`3qsj{mjv=jO)Kq&%(>xx_%GUX{F8^Z(!1T3)hI> z%XMqnS+73py71SSwcI1ZvtGSV+_c}FXq}h(uUuEwb`9sh%l;cJ7C&v3{62|oN;w{6 z-%}sweS9g`Okr~hKjL)6SbB`N4lCNdm|F`z< z?7<$-5BI{1!$YvIx*vpT&wS^zi8L}Fe$jnWA2+a{B6+Qpt$g!!39cv3r`1K~Ouk#? z+NSWNeH`wK6@Ew^++H(tfB9zXWwyPPv`g~ZNOU+Z#Eqj9};UV-HN`F6wj-`YhPAAZt^7>Wm@4D+TW$MNq-RBp0X4{&<{b%7{ z@NWDk{?d8Ak~yWUDW4Ob^860BXc`wVW5swzOGEiiKE4K8@-1RSfl-?AcG~S>oq^#xr zPR?03WF9Mf#%Z^V4X5HL{xTY8<3L=FFYuYHV;{k0)4Yc9uSs|sS_745$`$OZ*nQh& zOe<>|<8a=~m3IdR;>~RRtUL?6BK{0^()ki*P8x!PyF3fi97;dT95kT2e&$+*W7ylZ z)tmU^up#U`oFg9Nc%HvE_ zZ;h+*GMv>cdx?1$UFxn9uC2;DmD_NP@acHG@KKnuY>7#Cq`Vx3Ej$AAo089C@^S|D z>Z-qu7}8b0*U=8uO~R)NzYWdDRqApX&c+#-abT76m*QMJAD7^0ybbrj$(Z9Ssju?) z!>pJ4-~sJ=KWZk9V?Tm9uMcD$(Atpi4RoLW=sS}RKlcDwe{+-l+BWaS%6lyi z(w0kcaT)4OMSDue*zcFlR7J7>SKeo0-{GVcF zu9LUy&zC&x>OL2;CsO<`bHIAEm{z*a&u|z%j%m{ev7t`G(bBvb?{tr;IF+5Wdf}%q z-yWTS@4EhY{2w~q{nSO-2U&~fo1?Ray#Nox@pwF@ubhmV;3=3gpNeDUdn{THc1ECf zDSrps^K;n)%sTO3(p@e532eFUPJ94o;mdd$uEQ2?Nh$BP6d&IVXGvp)ep*SQfP-<*j9yYwwg8xF;^X|7e)@>{3mYY_WKn0PN@ zKWi&%zOugE68i`rfDPfh;$U?id!+so%3CMvAT0Z@>LY8)Df6m`me?w(YtBfnolrgz~SG}%IU7aG{bWDAY#3?uxuf&O%@(gsp z+-DfOm;4Ov^0%>3yjIqX3xywy+MxOf?xY_airS{yAJ5Vk{dwd3^Q7yoM-Ss}?^V%S5n~w_9_cI4o84E9O*K3g*&=`AB(eisIcI5LWRIg=@TcA8Avp>+R=dwfa zDE7HHLRz=sXk3P06}}Ru;2Jy?<14Ojtv{^1r>L?d-nMzqdYHqKbC%4 zzONa?f3nBbTRUulo=sZs!!`2uw)FbYleE@(^;+H|T!p8xkHAUl$#_-PFR8Pwn|1&H z0)CFNhMi6sQ!|$TfQ)hFIq7m?7t^nP=5m-j>ZY4y0{Bk?8No-)Qf&1W{jyVY&lWf^XaH@MGR;`9;!PnbTLv0)-gJ1Woj zi|_z;`p-d_@x@%)N!p{dXZ9kdv5iNSvA7kVG1e3x`h)oIivM@~EB%9>uhsZ1Ce6%a z3mw0M(rHL9&r+@J@No8?xUKUa#!cNPj{0$~Q6#u+v?SYcJs>cE7g1gInVeTp@fuj>AWAHosE-GPb3Tccg>qI69Ql zX4}y9^tQUc3bTGIWpjPv?I5j9kbf6n_)xoE^PGXB`T7i;jW=V3i*d33_y9Jfu@oP| zg}86C-g`P;9ZhZ5ziHba{iTiU%ZRmw31Cped|b(l0qxaL|s9*5)C zu)lK`;{th^h9fC?{=IU*Q*NIh{uAjAPj^E__8;`j0hY z_0zV$sfmAR*WVDn$NnID^Ck8*Jxdu=v-T?Q)q7#a-iM?!7|+99aDI3FHxu}LwNAR9 zX_jZ!^!w^^_5*C=WpyupfSoyJnX*m6HOjgtZX-N?a~Sq>PJYX`bjq3Ux~dydnaaNL zG{*pmA%#SJxA_2 zURhE{1LY-tVcc!ZrsPk#8>i6Ou1|aHMb{CZuCB*P@)A4ig)33LG?M4--7DkK$C~xM zzJfE^6VW}hZq2>I^3A01>FDs`i|p;l=4lYt7sG97vX5*>=76r%yk+Uy%>F?#a zZYr*1kHO3nS(7fqS>hW{$`~~cU!ak+t+a-q`?YA3E zq>QsGD9_z}-EWaRyh2Ad>-TV1;jzu~O+j@T{+7Ng>{VQV)<@+TFYWt-9{V2W-f_H; zUU58!UUPgCt)XwyAL)P|e!%(IQ{7kkW&ZgMw)oS-xK93(_EznB&KT6L`(b?YIoIrq zbJg#T_<*=u<5XJa`USWMpT&XBy^hw9tvti)4^`Gs*7^KZ(Z^wY+nv;qAuJuJ?r@HA}U5NRENY44pe&yLAgOWkgk^Vm1%adT{lm;7JCHrAE* zuV29d@{&Fo-~JvhmVO6cmbWKyFug>dq&0MsJf>{t(0}PPdW$k%{GHzK{0e-`^-FLB zUK?BbDN{#2_Q4iAzPTE6&-pZ*ws39`rp$Al%eB=3#ShExke*;?{(l7*3x5NZsmd70 zkE``?_0amf`YzvEjhEg%;@yUsGy2m+I+`-Rji9;CO~A$Oc`&Arr@qqHlFxCN_2F0? zElw|7C(bIGeK1Fxanaz4%`c%gc(Zy^& znfb6hC!HYddioL_OUKc@(%cUl@?&f(?Y%_U=i2H7&qw(z^CLg0E?}qrk3>FL$`!xJ z_2-KJ1m*f;nq~Yc^W!Ow+jJp4FE8`y-!)r#PQ1>%leO$jVV*V0Hx6%!D__-W+#7$1 zZ%a30_l7i{wxBnJ^~bsDY$8tNE7S4a?s~l5xLxetV%C?*|8nza*6JgrH2|gA z$~t(7eUW{zGLMJjQ};Ltvu^H-uem-x`7`Y2dgD^#ap_)!d(s3tibm1}l=_}QC(6r> z7$3O8aYgeSe~WIW^VwJ7SWG?bj{GEZNTvSE@6y5%?io%}uiwF8-SxBiNX&gY7$4lQ zU5}BWdzbO-Be)5BvmR!iGZvI*(3N;Er5_Cz=T7_v&O~!WW2toS!v(k;$6@;E0L-{& zjA>a{<{e}9?u##G&A5tv0FL&onf-X}pZ5~ktE{X$vnD8e{TEq>T6bpMo9F+m|2oFk zu(D4dKks1UJMJ0#3U<~$m*HmYYsIsM%{LcWBUKM$())w-^30ntWT3Tet{H@$e_Qqt z%Qqf-2(!M*?-VNM%YMSEuItVIz56L&S$n_k_;L673q9fZd3+k#`Q2k>EX{9n@(!Ym zqwGe;ENQgXmxi&k!_FL9>g*nTSDYL0O{{1wjiP7i7!o(%50p9RB*!VIx+?W>8;+%) z&}W4|g9qb3&^Xv}&qgm)KWXPq*7z@||EwW56DPJYy`#R%xUIYyU&{BRr(ni@^<3tH zTk$Qis!#>X4gHyZe{oaflu``~e42xo!S!z2v_8V&?X=M?Z1)LiJzPwV9uv zpcc)ehIondnCn_JqPrfOCt`!bJ~W#KP~xqiv~PT4a95d6%DR6Ddo??CkvxoM?}07X z9gf5C7>u8e!WsBYoQh{+{PqHzz`g;cSA~_fN!tzWs-K4^sQcftjk(o7v4j7`ndYM2 z!%Er8{+{a^TeAmBH*?N1{Wa&8v)>Z`757<*jdnf%=^tgDxK{W_lOAq{DeD~f&a+9% zJBd

p2&u-51E?OdKIE$?H0Co@_CLcd+?>rgb=V(UHPG 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

?Dn{_fLyGh%&X+TRm&=eLIU?_3MqV1UkB z&ii{)*Y7?vbPjdvxsMq!enM7cL>{|dp>No8bQb$L>i|6)=h43)=55G|JR!zwcaQRp zWa8f>Gia~yM;NjDorp+4PF({2jkS9=Z$z37CuBetBoVht;?$>ZceV|AM67?zEA3;f zYhzqr5p#@P5qp|@Lk?eHUVV3@AjW$>3-nBk|3ETg9qr}@`rM$in(M6Q+2409?HBPU z=zT?4(5)5mTQ4B?Na#Vq?;TrL8s~Z_D;}!<(J)VU+oJ#!x2Vk zZ|`e>&f*Nt>|Wa2h5y#${sw1!$J=(V$J;LC&Fc97-s8S@zjHXxGd|~W7V8{qd)wE2 z1-PmI@6JM=`9{x+ety))m391#7+28G;+ zxc1B|jIKNL%Rgh>QzF+M{*AS#H5X`|WGo-)d#dWc?C154?kv8mVj&(Cb?y@JRn`USS2x}>tI$}b zATzm2Lfm8Q>j3qi)Tz>s7YKIkOc!LG5U2i?n{XSNBhwkwe zCUpJIVSGT0bDj@q{3q_iIPWDBXMWU&49GhYup1wU)9yL6I`A32V821{-Fh3ejx=tC z8}xpSyTZ@Jy+Y%U_cNedKT_{2cIWy-(nr0XcYh$p{bl^d`~7fEzmFNdp)b(7E6mV2 zwNKFRR-)Dy(mDQ^B|dz1RN>eUJYQGc?|F z_;+~fdVv3d?mP=jXa2TB_v^Vhk2KzSBD(wX9Nb4j|5xZ-|A5B3FY`T@44pq<|DpT+ z-g(D&I3fdf={cC^{`A{-!fyR1Xg$x1{mS{W#5ze&TxYh_6=_E30ha(zSh%U-~v}@zXbIguirWB zXI_E&-QNH`AJ5f&xnIx8ef=((!Sl7&7x)a#v(_C6NR`CBc3!oiuh8B~>>Q!<&xrBP zdP6p(AQ{naoc7r3dfxg1V$O^_cNSQ_i?f#TD>UDJ`kl+XiWp;`glIqfz6<@8c<hKN5PAW8eCH{up9@g_NRwN?U4wt>= zBQ$n`3wG5t9g~P-CZvx}af9`Yr0W<#JptF2cC-0qjXfPb=e5r_(0y!6`tva?cm!f#$u&~xXZ>yJI|sN=r$|7FJ?dY%mE zGt4lm_jNT6@ywFGmp#UFDcWI#1^V&K?KyW&FyQkZA}rnB?u)#@ecH==%jm0qdPP`? zU*M>(bA$SxkO^t`3wV&TO7N zj1RCvd&od-?FlC6J#Vl=zZ)kc{Ib{bx2GWbugE(xBR}E~odc{$MA{tC{$tmzn^>Qa zfGiT5v3~5KZtv6?;am5c8(;Q4dp_#Y?_+}2b#H;S;$3N9 + + + + bells_envelope_test + + + + + + + + + + + + diff --git a/examples/bells_envelope_test/sketch.js b/examples/bells_envelope_test/sketch.js new file mode 100755 index 00000000..23843602 --- /dev/null +++ b/examples/bells_envelope_test/sketch.js @@ -0,0 +1,142 @@ + +// This example shows a more complex use of the .rampAD function for the envelope. +// You can use it to make a simple attack/decay envelope for struck or plucked style notes. +// Here, we're creating synthetic bells using additive synthesis, and triggering each of their attacks and decays differently to make different harmonics last for different times. + +var osc = []; +var envelope = []; +var fft; +var myPhraseAttack, myPhraseRelease, myPart; +var atPattern = [1, 1,1,1,0,1,1,1,1,0,0,0,0]; // this rhythmic pattern puts some rests in there +var patternArray = [0,1,2,3,3,2,0,1]; // pattern of the notes (in terms of array indices from scaleArray) +var scaleArray = [64, 60, 62, 55]; // classic bell tune +var harmonicsArray = [.5, 1., 1.183, 1.506, 2., 2.514, 2.662, 3.011, 4.166, 5.433, 6.796, 8.215]; // bell partials taken from https://en.wikipedia.org/wiki/Strike_tone +var idealArray = [.5, 1., 1.2, 1.5, 2, 2.5, 2.6667, 3.0, 4.0, 5.3333, 6.6667, 8.0]; // ideal bell partials +var note = 0; +var startPoint = 0; +var endPoint = 0; +var numWaveforms = 100; +var numOsc = 12; // reduce this to reduce the number of overtones, 4 makes a nice, dark gamelan sound +var numNotes = 4; +var rawImpulse; +var cVerb; +var oscVols = []; +var firstNote = 1; +var pitchRatio = .8; //change this to transpose things around +var pitchDeviation = .001; +var idealOrReal = 0; // change this to 1 to change to an ideal bell instead of a measured bell +var maxAttack = .001; // in seconds ... setting to .001 makes things very percussive, setting to > 1 makes them sound far away +var maxDecay = 9.0; // in seconds ... short times make for deader bells +var percentWashed = 0.0; +var washedMax = 4; + + +function preload() +{ + // create a p5.Convolver + cVerb = createConvolver('/assets/LadyChapelStAlbansCathedral.wav'); + +} + +function setup() +{ + createCanvas(1000, 400); + rawImpulse = loadSound('assets/' + cVerb.impulses[0].name); + + for (var i = 0; i < numNotes; i++) + { + // make the arrays into 2D arrays + osc[i] = []; + envelope[i] = []; + oscVols[i] = []; + var midiValue = scaleArray[i]; + var freqValue = midiToFreq(midiValue); + + for(var j = 0; j < numOsc; j++) + { + // make arrays of sine waves for each note, additive synthesis, and assign independent envelopes, amplitudes, and slight detunings for each harmonic + osc[i][j] = new p5.SinOsc(); + envelope[i][j] = new p5.Env(); + if (random(0, 1) > percentWashed) + { + myMaxAttack = maxAttack; + print("normal"); + } + else + { + myMaxAttack = washedMax; + print("washed"); + } + envelope[i][j].setRampAD(random(.001, myMaxAttack), random(.01, maxDecay)); // turning sustain level to 0. makes an AD envelope + osc[i][j].amp(0.); + oscVols[i][j] = random(.01, .3); + if (idealOrReal == 0) + { + var myOvertone = harmonicsArray[j]; + } + else + { + var myOvertone = idealArray[j]; + } + osc[i][j].freq(freqValue * harmonicsArray[j] * random(1.0 - pitchDeviation, 1 + pitchDeviation) * pitchRatio); + osc[i][j].start(); + osc[i][j].disconnect(); + //put 'em through that reverb, ahhhhhh yeah it's like a New Age in here + cVerb.process(osc[i][j]); + } + } + myPhraseAttack = new p5.Phrase('testerAttack', makeSoundAttack, atPattern); + myPart = new p5.Part(); + myPart.addPhrase(myPhraseAttack); + myPart.setBPM(15); // super slow because it's in 16th notes + myPart.loop(); + myPart.start(); + fft = new p5.FFT(); // for the drawing of the waveform (just using the buffer part) + endPoint = width / numWaveforms; // for the drawing + background(20); +} + +function draw() +{ + background(0, 0, 0, 9); //to make the trails fade like on a scope :) + var waveform = fft.waveform(); // analyze the waveform + fft.analyze(); + beginShape(); + noFill(); + stroke(fft.getEnergy("bass") * 2.0, fft.getEnergy("mid")* 2.0, fft.getEnergy("treble") * 2.0); // the (* 2.0) is just to make the colors a little brighter + for (var i = 0; i < waveform.length; i++) + { + var x = map(i, 0, waveform.length, startPoint, endPoint); + var y = map(waveform[i], -.9, .9, height, 0); + vertex(x, y); + } + endShape(); + startPoint = endPoint + 1; + endPoint += (width / numWaveforms); + if (endPoint > width) + { + redrawWaveform(); + } +} + +function makeSoundAttack(time, playbackRate) +{ + var whichNote = patternArray[note]; + for (var i = 0; i < numOsc; i++) + { + envelope[whichNote][i].rampAD(osc[whichNote][i], time, (oscVols[whichNote][i] * random(.8, 1.0))); // the added randomness just makes each strike a little different. + } + note = (note + 1) % patternArray.length; + if (firstNote == 1) + { + setTimeout(redrawWaveform, time * 1000.0); // just so the drawing display starts at the left on the first note + } + firstNote = 0; +} + + +function redrawWaveform() +{ + startPoint = 0; + endPoint = (width / numWaveforms); +} From 6b547ef6e45e8271cffb8625b179cec9dd892698 Mon Sep 17 00:00:00 2001 From: Jeff Snyder Date: Mon, 25 Jan 2016 14:46:14 -0500 Subject: [PATCH 16/25] added this fun bell example to show the use of the rampAD function --- examples/bells_envelope_test/sketch.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/bells_envelope_test/sketch.js b/examples/bells_envelope_test/sketch.js index 23843602..34035151 100755 --- a/examples/bells_envelope_test/sketch.js +++ b/examples/bells_envelope_test/sketch.js @@ -2,7 +2,7 @@ // This example shows a more complex use of the .rampAD function for the envelope. // You can use it to make a simple attack/decay envelope for struck or plucked style notes. // Here, we're creating synthetic bells using additive synthesis, and triggering each of their attacks and decays differently to make different harmonics last for different times. - +// Have fun! - Jeff Snyder var osc = []; var envelope = []; var fft; From 7ac7b1d7dc2f0e817aa72c9a7a1bd4c40e794056 Mon Sep 17 00:00:00 2001 From: Jeff Snyder Date: Mon, 25 Jan 2016 16:28:01 -0500 Subject: [PATCH 17/25] changed TimeConstant calculation to happen only when attack and decay times for ramps are changed, rather than at every envelope trigger --- src/env.js | 62 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/src/env.js b/src/env.js index c9920aa4..49aaab49 100644 --- a/src/env.js +++ b/src/env.js @@ -110,7 +110,10 @@ define(function (require) { this.rampLowPercentage = 0.02; this.rampAttackTime = 0.01; - this.rampDecayTime = 0.01; + this.rampDecayTime = 0.5; + + this.rampAttackTC = 0.12; + this.rampDecayTC = 0.12; this.output = p5sound.audiocontext.createGain();; @@ -146,6 +149,8 @@ define(function (require) { var now = p5sound.audiocontext.currentTime; var t = now; this.control.setTargetAtTime(0.00001, t, .001); + //also, compute the correct time constants + this.setRampAD(this.rampAttackTime, this.rampDecayTime) }; /** @@ -189,14 +194,27 @@ define(function (require) { p5.Env.prototype.setRampAD = function(t1, t2){ //sets the time constants for simple exponential ramps - this.rampAttackTime = t1; - this.rampDecayTime = t2; + this.rampAttackTime = this.checkExpInput(t1); + this.rampDecayTime = this.checkExpInput(t2); + var TCDenominator = 1.0; + /// Aatish Bhatia's calculation for time constant for rise(to adjust 1/1-e calculation to any percentage) + TCDenominator = Math.log(1.0 / (this.checkExpInput(1.0 - this.rampHighPercentage))); + this.rampAttackTC = (t1 / this.checkExpInput(TCDenominator)); + TCDenominator = Math.log(1.0 / this.rampLowPercentage); + this.rampDecayTC = (t2 / this.checkExpInput(TCDenominator)); }; p5.Env.prototype.setRampPercentages = function(p1, p2){ //set the percentages that the simple exponential ramps go to - this.rampHighPercentage = p1; - this.rampLowPercentage = p2; + this.rampHighPercentage = this.checkExpInput(p1); + this.rampLowPercentage = this.checkExpInput(p2); + var TCDenominator = 1.0; + //now re-compute the time constants based on those percentages + /// Aatish Bhatia's calculation for time constant for rise(to adjust 1/1-e calculation to any percentage) + TCDenominator = Math.log(1.0 / (this.checkExpInput(1.0 - this.rampHighPercentage))); + this.rampAttackTC = (this.rampAttackTime / this.checkExpInput(TCDenominator)); + TCDenominator = Math.log(1.0 / this.rampLowPercentage); + this.rampDecayTC = (this.rampDecayTime / this.checkExpInput(TCDenominator)); }; @@ -446,18 +464,14 @@ define(function (require) { //if it's going up if(destination > currentVal) { - /// Aatish Bhatia's calculation for time constant for rise(to adjust 1/1-e calculation to any percentage) - var rampTC = (this.rampAttackTime / (log((destination - currentVal)/((1.0 - this.rampHighPercentage) * destination)))); - this.control.setTargetAtTime(destination, t, rampTC); + this.control.setTargetAtTime(destination, t, this.rampAttackTC); } //if it's going down if(destination < currentVal) { - /// Aatish Bhatia's calculation for time constant for fall(to adjust 1/1-e calculation to any percentage) - //not sure about this one, should it be 1-rampLowPercentage or not? - var rampTC = (this.rampDecayTime / (log((currentVal - destination)/((this.rampLowPercentage) * currentVal)))); - this.control.setTargetAtTime(destination, t, rampTC); + + this.control.setTargetAtTime(destination, t, this.rampDecayTC); } }; @@ -477,7 +491,7 @@ define(function (require) { } } - // get and set value (with linear or exponential ramp) to anchor automation + //get current value var currentVal = this.checkExpInput(this.control.getValueAtTime(t)); this.control.cancelScheduledValues(t); @@ -485,41 +499,29 @@ define(function (require) { //if it's going up if(destination1 > currentVal) { - /// Aatish Bhatia's calculation for time constant for rise(to adjust 1/1-e calculation to any percentage) - var rampTC = (this.rampAttackTime / (log((destination1 - currentVal)/((1.0 - this.rampHighPercentage) * destination1)))); - //console.log("ramp up1 TC = " + rampTC); - this.control.setTargetAtTime(destination1, t, rampTC); + this.control.setTargetAtTime(destination1, t, this.rampAttackTC); t += this.rampAttackTime; } //if it's going down else if(destination1 < currentVal) { - /// Aatish Bhatia's calculation for time constant for fall(to adjust 1/1-e calculation to any percentage) - var rampTC = (this.rampDecayTime / (log((currentVal - destination1)/((this.rampLowPercentage) * currentVal)))); - //console.log("ramp down1 TC = " + rampTC); - this.control.setTargetAtTime(destination1, t, rampTC); + this.control.setTargetAtTime(destination1, t, this.rampDecayTC); t += this.rampDecayTime; } - // second part of envelope begins + // Now the second part of envelope begins //if it's going up if(destination2 > destination1) { - /// Aatish Bhatia's calculation for time constant for rise(to adjust 1/1-e calculation to any percentage) - var rampTC = (this.rampAttackTime / (log((destination2 - destination1)/((1.0 - this.rampHighPercentage) * destination2)))); - //console.log("ramp up2 TC = " + rampTC); - this.control.setTargetAtTime(destination2, t, rampTC); + this.control.setTargetAtTime(destination2, t, this.rampAttackTC); } //if it's going down else if(destination2 < destination1) { - /// Aatish Bhatia's calculation for time constant for fall(to adjust 1/1-e calculation to any percentage) - var rampTC = (this.rampDecayTime / (log((destination1 - destination2)/((this.rampLowPercentage) * destination1)))); - //console.log("ramp down2 TC = " + rampTC); - this.control.setTargetAtTime(destination2, t, rampTC); + this.control.setTargetAtTime(destination2, t, this.rampDecayTC); } From 044fb47c60d57792734c6559477b4e97686bb089 Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Tue, 26 Jan 2016 02:59:36 -0500 Subject: [PATCH 18/25] update example paths --- examples/bells_envelope_test/index.html | 7 +++---- examples/bells_envelope_test/sketch.js | 2 +- examples/envelopeMultipleSources/sketch.js | 4 ++-- examples/envelopeRamp/index.html | 7 ++++--- examples/envelopeRamp/sketch.js | 4 ++-- examples/envelope_exponential_play/index.html | 7 +++---- examples/envelope_exponential_trig_rel/index.html | 7 +++---- 7 files changed, 18 insertions(+), 20 deletions(-) diff --git a/examples/bells_envelope_test/index.html b/examples/bells_envelope_test/index.html index f4cf2d95..a60e707c 100755 --- a/examples/bells_envelope_test/index.html +++ b/examples/bells_envelope_test/index.html @@ -3,10 +3,9 @@ bells_envelope_test - - - - + + + diff --git a/examples/bells_envelope_test/sketch.js b/examples/bells_envelope_test/sketch.js index 34035151..e473995c 100755 --- a/examples/bells_envelope_test/sketch.js +++ b/examples/bells_envelope_test/sketch.js @@ -34,7 +34,7 @@ var washedMax = 4; function preload() { // create a p5.Convolver - cVerb = createConvolver('/assets/LadyChapelStAlbansCathedral.wav'); + cVerb = createConvolver('assets/LadyChapelStAlbansCathedral.wav'); } diff --git a/examples/envelopeMultipleSources/sketch.js b/examples/envelopeMultipleSources/sketch.js index ce506e71..c6ebe9f3 100644 --- a/examples/envelopeMultipleSources/sketch.js +++ b/examples/envelopeMultipleSources/sketch.js @@ -94,9 +94,9 @@ function draw(){ function mouseClicked() { if (mouseX > 0 && mouseX < width && mouseY > 0 && mouseY < height) { if ( getMasterVolume() == 0) { - setMasterVolume(0.3, 0.5); + masterVolume(0.3, 0.5); } else { - setMasterVolume(0, 0.5); + masterVolume(0, 0.5); } } } \ No newline at end of file diff --git a/examples/envelopeRamp/index.html b/examples/envelopeRamp/index.html index 3112a3d3..41584b86 100755 --- a/examples/envelopeRamp/index.html +++ b/examples/envelopeRamp/index.html @@ -3,10 +3,11 @@ envelope_ramp - + - - + + + diff --git a/examples/envelopeRamp/sketch.js b/examples/envelopeRamp/sketch.js index 386451a7..afb28734 100755 --- a/examples/envelopeRamp/sketch.js +++ b/examples/envelopeRamp/sketch.js @@ -11,13 +11,13 @@ function setup() { createCanvas(710, 200); osc = new p5.SinOsc(); envelope = new p5.Env(); - envelope.setRampAD(.005,0.5); + envelope.setRampAD(.005,0.02); osc.amp(0.); osc.start(); myPhraseAttack = new p5.Phrase('testerAttack', makeSoundAttack, atPattern); myPart = new p5.Part(); myPart.addPhrase(myPhraseAttack); - myPart.setBPM(100); + myPart.setBPM(360); myPart.loop(); myPart.start(); fft = new p5.FFT(); diff --git a/examples/envelope_exponential_play/index.html b/examples/envelope_exponential_play/index.html index cb711df7..d6246922 100755 --- a/examples/envelope_exponential_play/index.html +++ b/examples/envelope_exponential_play/index.html @@ -3,10 +3,9 @@ envelope_exponential_play - - - - + + + diff --git a/examples/envelope_exponential_trig_rel/index.html b/examples/envelope_exponential_trig_rel/index.html index e81591ad..069ae044 100755 --- a/examples/envelope_exponential_trig_rel/index.html +++ b/examples/envelope_exponential_trig_rel/index.html @@ -3,10 +3,9 @@ envelope_exponential_trig_rel - - - - + + + From dd99cbe02bff719c06ecdaab2a44aba85f4d5e3a Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Tue, 26 Jan 2016 04:04:08 -0500 Subject: [PATCH 19/25] env documentation --- src/env.js | 68 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 55 insertions(+), 13 deletions(-) diff --git a/src/env.js b/src/env.js index 49aaab49..751ff650 100644 --- a/src/env.js +++ b/src/env.js @@ -166,7 +166,6 @@ define(function (require) { * decayLevel = sustainLevel) * @param {Number} [rTime] Release Time (in seconds) * @param {Number} [rLevel] Amplitude 0.0 to 1.0 - */ p5.Env.prototype.set = function(t1, l1, t2, l2, t3, l3, t4, l4){ this.aTime = t1; @@ -179,8 +178,20 @@ define(function (require) { this.rLevel = l4 || 0; }; - // this is a helper function that lets the user enter values more like an ADSR envelope - // attack time, attack value, decay time, sustain value, release time, release value + /** + * Set values like a traditional + * + * ADSR envelope + * . + * + * @method setADSR + * @param {Number} attackTime in seconds from now + * @param {Number} attackVal value + * @param {Number} [decayTime] in seconds from now (defaults to 0) + * @param {Number} [sustainVal] value (defaults to 0) + * @param {Number} [releaseTime] in seconds from now (defaults to 0) + * @param {Number} [releaseVal] value (defaults to 0) + */ p5.Env.prototype.setADSR = function(t1, l1, t2, l2, t3, l3){ this.aTime = t1; this.aLevel = l1; @@ -192,8 +203,17 @@ define(function (require) { this.rLevel = l3 || 0; }; + /** + * Set the + * time constants for simple exponential ramps. + * The larger the time constant value, the slower the + * transition will be. + * + * @method setRampAD + * @param {Number} attackTimeConstant attack time constant + * @param {Number} decayTimeConstant decay time constant + */ p5.Env.prototype.setRampAD = function(t1, t2){ - //sets the time constants for simple exponential ramps this.rampAttackTime = this.checkExpInput(t1); this.rampDecayTime = this.checkExpInput(t2); var TCDenominator = 1.0; @@ -234,11 +254,19 @@ define(function (require) { } }; + /** + * Set whether the envelope ramp is linear (default) or exponential. + * Exponential ramps can be useful because we perceive amplitude + * and frequency logarithmically. + * + * @method setExp + * @param {Boolean} isExp true is exponential, false is linear + */ p5.Env.prototype.setExp = function(isExp){ this.isExponential = isExp; }; - //protect against zero values being sent to exponential functions + //helper method to protect against zero values being sent to exponential functions p5.Env.prototype.checkExpInput = function(value) { if (value <= 0) { @@ -247,11 +275,6 @@ define(function (require) { return value; }; - p5.Env.prototype.ctrl = function(unit){ - this.connect(unit); - }; - - /** * Play tells the envelope to start acting on a given input. * If the input is a p5.sound object (i.e. AudioIn, Oscillator, @@ -442,8 +465,16 @@ define(function (require) { this.wasTriggered = false; }; - //this simply ramps exponentially to whatever value you give it, using the time constants set by setRampAD. - //Going up uses attackTime, going down uses decayTime. + /** + * Exponentially ramp to a value, using the time constants + * set by setRampAD. Going up uses attackTime, + * going down uses decayTime. + * + * @method ramp + * @param {Object} unit p5.sound Object or Web Audio Param + * @param {Number} secondsFromNow When to trigger the ramp + * @param {Number} v Target value + */ p5.Env.prototype.ramp = function(unit, secondsFromNow, v) { var now = p5sound.audiocontext.currentTime; @@ -476,7 +507,18 @@ define(function (require) { }; - // this is intended as a "pingable" AD trigger. You give it a value to ramp to, and it will use the "simpleAD" time constants to form an exponential ramp up to the value and back down to zero or the 2nd value argument. + /** + * rampAD is a "pingable" Attack/Decay trigger. You give it a value + * to ramp to, and it will use the preset "simpleAD" time constants + * to form an exponential ramp up to the value and back down to zero + * or the 2nd value argument. + * + * @method rampAD + * @param {Object} unit p5.sound Object or Web Audio Param + * @param {Number} secondsFromNow When to trigger the ramp + * @param {Number} level1 Target value 1 + * @param {Number} [level2] Target value 2 (optional, defaults to zero) + */ p5.Env.prototype.rampAD = function(unit, secondsFromNow, v1, v2) { var now = p5sound.audiocontext.currentTime; From 9b125b480caec80f194ff6e1a56dc580cca0ee0d Mon Sep 17 00:00:00 2001 From: Jeff Snyder Date: Thu, 28 Jan 2016 17:58:14 -0500 Subject: [PATCH 20/25] added a getCentroid() function to return the spectral centroid of an fft --- src/fft.js | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/src/fft.js b/src/fft.js index 9dc88f77..b7894a22 100644 --- a/src/fft.js +++ b/src/fft.js @@ -371,6 +371,97 @@ define(function (require) { var x = this.getEnergy(freq1, freq2); return x; } + + + + /** + * Returns the + * + * spectral centroid of the input signal. + * NOTE: analyze() must be called prior to getCentroid(). Analyze() + * tells the FFT to analyze frequency data, and getCentroid() uses + * the results determine the spectral centroid.

+ * + * @method getCentroid + * @return {Number} Spectral Centroid Frequency Frequency of the spectral centroid in Hz. + * + * + * @example + *
+ * + * + *function setup(){ + * cnv = createCanvas(800,400); + * sound = new p5.AudioIn(); + * sound.start(); + * fft = new p5.FFT(); + * sound.connect(fft); + *} + * + * + *function draw(){ + * + * var centroidplot = 0.0; + * var spectralCentroid = 0; + * + * + * background(0); + * stroke(0,255,0); + * var spectrum = fft.analyze(); + * fill(0,255,0); // spectrum is green + * + * //draw the spectrum + * + * for (var i = 0; i< spectrum.length; i++){ + * var x = map(log(i), 0, log(spectrum.length), 0, width); + * var h = map(spectrum[i], 0, 255, 0, height); + * var rectangle_width = (log(i+1)-log(i))*(width/log(spectrum.length)); + * rect(x, height, rectangle_width, -h ) + * } + + * var nyquist = 22050; + * + * // get the centroid + * spectralCentroid = fft.getCentroid(); + * + * // the mean_freq_index calculation is for the display. + * var mean_freq_index = spectralCentroid/(nyquist/spectrum.length); + * + * centroidplot = map(log(mean_freq_index), 0, log(spectrum.length), 0, width); + * + * + * stroke(255,0,0); // the line showing where the centroid is will be red + * + * rect(centroidplot, 0, width / spectrum.length, height) + * noStroke(); + * fill(255,255,255); // text is white + * textSize(40); + * text("centroid: "+round(spectralCentroid)+" Hz", 10, 40); + *} + *
+ */ + p5.FFT.prototype.getCentroid = function() { + var nyquist = p5sound.audiocontext.sampleRate/2; + var cumulative_sum = 0; + var centroid_normalization = 0; + + for (var i = 0; i < this.freqDomain.length; i++) + { + cumulative_sum += i * this.freqDomain[i]; + centroid_normalization += this.freqDomain[i]; + } + + var mean_freq_index = 0; + + if (centroid_normalization != 0) + { + mean_freq_index = (cumulative_sum / centroid_normalization); + } + + var spec_centroid_freq = (mean_freq_index * (nyquist / this.freqDomain.length)); + return spec_centroid_freq; + } + /** * Smooth FFT analysis by averaging with the last analysis frame. * From 82353cda395c7f7e17914565f885edc7ac558c7e Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Sun, 31 Jan 2016 15:52:56 -0500 Subject: [PATCH 21/25] rampAD --> ramp --- examples/bells_envelope_test/sketch.js | 4 +- examples/envelopeRamp/sketch.js | 4 +- src/env.js | 73 +++++--------------------- 3 files changed, 16 insertions(+), 65 deletions(-) diff --git a/examples/bells_envelope_test/sketch.js b/examples/bells_envelope_test/sketch.js index e473995c..290720ec 100755 --- a/examples/bells_envelope_test/sketch.js +++ b/examples/bells_envelope_test/sketch.js @@ -1,5 +1,5 @@ -// This example shows a more complex use of the .rampAD function for the envelope. +// This example shows a more complex use of the .ramp function for the envelope. // You can use it to make a simple attack/decay envelope for struck or plucked style notes. // Here, we're creating synthetic bells using additive synthesis, and triggering each of their attacks and decays differently to make different harmonics last for different times. // Have fun! - Jeff Snyder @@ -124,7 +124,7 @@ function makeSoundAttack(time, playbackRate) var whichNote = patternArray[note]; for (var i = 0; i < numOsc; i++) { - envelope[whichNote][i].rampAD(osc[whichNote][i], time, (oscVols[whichNote][i] * random(.8, 1.0))); // the added randomness just makes each strike a little different. + envelope[whichNote][i].ramp(osc[whichNote][i], time, (oscVols[whichNote][i] * random(.8, 1.0)), 0); // the added randomness just makes each strike a little different. } note = (note + 1) % patternArray.length; if (firstNote == 1) diff --git a/examples/envelopeRamp/sketch.js b/examples/envelopeRamp/sketch.js index afb28734..02919c99 100755 --- a/examples/envelopeRamp/sketch.js +++ b/examples/envelopeRamp/sketch.js @@ -17,7 +17,7 @@ function setup() { myPhraseAttack = new p5.Phrase('testerAttack', makeSoundAttack, atPattern); myPart = new p5.Part(); myPart.addPhrase(myPhraseAttack); - myPart.setBPM(360); + myPart.setBPM(240); myPart.loop(); myPart.start(); fft = new p5.FFT(); @@ -54,7 +54,7 @@ function makeSoundAttack(time, playbackRate) var midiValue = scaleArray[note]; var freqValue = midiToFreq(midiValue); osc.freq(freqValue * 2, .001, time); - envelope.rampAD(osc, time, 1 , 0); + envelope.ramp(osc, time, 1, 0); note = (note + 1) % scaleArray.length; setTimeout(redrawWaveform, time * 1000.0); } diff --git a/src/env.js b/src/env.js index 751ff650..f1c40eb0 100644 --- a/src/env.js +++ b/src/env.js @@ -466,67 +466,25 @@ define(function (require) { }; /** - * Exponentially ramp to a value, using the time constants - * set by setRampAD. Going up uses attackTime, - * going down uses decayTime. + * Exponentially ramp to a value using time constants. + * If the value is higher than current value, it uses attackTime, + * while a decrease uses decayTime. * * @method ramp * @param {Object} unit p5.sound Object or Web Audio Param * @param {Number} secondsFromNow When to trigger the ramp * @param {Number} v Target value + * @param {Number} [v2] Second target value (optional) */ - p5.Env.prototype.ramp = function(unit, secondsFromNow, v) { - - var now = p5sound.audiocontext.currentTime; - var tFromNow = secondsFromNow || 0; - var t = now + tFromNow; - var destination = this.checkExpInput(v); - - if (unit) { - if (this.connection !== unit) { - this.connect(unit); - } - } - - // get and set value (with linear or exponential ramp) to anchor automation - var currentVal = this.checkExpInput(this.control.getValueAtTime(t)); - this.control.cancelScheduledValues(t); - - //if it's going up - if(destination > currentVal) - { - this.control.setTargetAtTime(destination, t, this.rampAttackTC); - } - - //if it's going down - if(destination < currentVal) - { - - this.control.setTargetAtTime(destination, t, this.rampDecayTC); - } - }; - - - /** - * rampAD is a "pingable" Attack/Decay trigger. You give it a value - * to ramp to, and it will use the preset "simpleAD" time constants - * to form an exponential ramp up to the value and back down to zero - * or the 2nd value argument. - * - * @method rampAD - * @param {Object} unit p5.sound Object or Web Audio Param - * @param {Number} secondsFromNow When to trigger the ramp - * @param {Number} level1 Target value 1 - * @param {Number} [level2] Target value 2 (optional, defaults to zero) - */ - p5.Env.prototype.rampAD = function(unit, secondsFromNow, v1, v2) { + p5.Env.prototype.ramp = function(unit, secondsFromNow, v1, v2) { var now = p5sound.audiocontext.currentTime; var tFromNow = secondsFromNow || 0; var t = now + tFromNow; var destination1 = this.checkExpInput(v1); - var destination2 = this.checkExpInput(v2 || 0); + var destination2 = typeof(v2) !== 'undefined' ? this.checkExpInput(v2) : undefined; + // connect env to unit if not already connected if (unit) { if (this.connection !== unit) { this.connect(unit); @@ -535,42 +493,35 @@ define(function (require) { //get current value var currentVal = this.checkExpInput(this.control.getValueAtTime(t)); - this.control.cancelScheduledValues(t); //if it's going up - if(destination1 > currentVal) - { + if (destination1 > currentVal) { this.control.setTargetAtTime(destination1, t, this.rampAttackTC); t += this.rampAttackTime; } //if it's going down - else if(destination1 < currentVal) - { + else if (destination1 < currentVal) { this.control.setTargetAtTime(destination1, t, this.rampDecayTC); t += this.rampDecayTime; } // Now the second part of envelope begins + if (destination2 === undefined) return; //if it's going up - if(destination2 > destination1) - { + if (destination2 > destination1) { this.control.setTargetAtTime(destination2, t, this.rampAttackTC); } //if it's going down - else if(destination2 < destination1) - { + else if (destination2 < destination1) { this.control.setTargetAtTime(destination2, t, this.rampDecayTC); } - - }; - p5.Env.prototype.connect = function(unit){ this.connection = unit; From f45e4970b772cb93e749603229ca67d43a6b2d6d Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Sun, 31 Jan 2016 16:13:25 -0500 Subject: [PATCH 22/25] setRampAD --> setADSR --- examples/bells_envelope_test/sketch.js | 2 +- examples/envelopeRamp/sketch.js | 2 +- src/env.js | 100 +++++++++++++------------ 3 files changed, 53 insertions(+), 51 deletions(-) diff --git a/examples/bells_envelope_test/sketch.js b/examples/bells_envelope_test/sketch.js index 290720ec..78d079da 100755 --- a/examples/bells_envelope_test/sketch.js +++ b/examples/bells_envelope_test/sketch.js @@ -67,7 +67,7 @@ function setup() myMaxAttack = washedMax; print("washed"); } - envelope[i][j].setRampAD(random(.001, myMaxAttack), random(.01, maxDecay)); // turning sustain level to 0. makes an AD envelope + envelope[i][j].setADSR(random(.001, myMaxAttack), random(.01, maxDecay)); // turning sustain level to 0. makes an AD envelope osc[i][j].amp(0.); oscVols[i][j] = random(.01, .3); if (idealOrReal == 0) diff --git a/examples/envelopeRamp/sketch.js b/examples/envelopeRamp/sketch.js index 02919c99..8d390ce2 100755 --- a/examples/envelopeRamp/sketch.js +++ b/examples/envelopeRamp/sketch.js @@ -11,7 +11,7 @@ function setup() { createCanvas(710, 200); osc = new p5.SinOsc(); envelope = new p5.Env(); - envelope.setRampAD(.005,0.02); + envelope.setADSR(.005,0.02); osc.amp(0.); osc.start(); myPhraseAttack = new p5.Phrase('testerAttack', makeSoundAttack, atPattern); diff --git a/src/env.js b/src/env.js index f1c40eb0..e9cf6f15 100644 --- a/src/env.js +++ b/src/env.js @@ -75,15 +75,15 @@ define(function (require) { /** * @property attackTime */ - this.aTime = t1; + this.aTime = t1 || 0.1; /** * @property attackLevel */ - this.aLevel = l1; + this.aLevel = l1 || 1; /** * @property decayTime */ - this.dTime = t2 || 0; + this.dTime = t2 || 0.5; /** * @property decayLevel */ @@ -105,15 +105,10 @@ define(function (require) { */ this.rLevel = l4 || 0; - this.rampHighPercentage = 0.98; - - this.rampLowPercentage = 0.02; + this._rampHighPercentage = 0.98; - this.rampAttackTime = 0.01; - this.rampDecayTime = 0.5; + this._rampLowPercentage = 0.02; - this.rampAttackTC = 0.12; - this.rampDecayTC = 0.12; this.output = p5sound.audiocontext.createGain();; @@ -150,7 +145,7 @@ define(function (require) { var t = now; this.control.setTargetAtTime(0.00001, t, .001); //also, compute the correct time constants - this.setRampAD(this.rampAttackTime, this.rampDecayTime) + this._setRampAD(this.aTime, this.dTime) }; /** @@ -176,6 +171,9 @@ define(function (require) { this.sLevel = l3 || 0; this.rTime = t4 || 0; this.rLevel = l4 || 0; + + // set time constants for ramp + this._setRampAD(t1, t2); }; /** @@ -192,49 +190,52 @@ define(function (require) { * @param {Number} [releaseTime] in seconds from now (defaults to 0) * @param {Number} [releaseVal] value (defaults to 0) */ - p5.Env.prototype.setADSR = function(t1, l1, t2, l2, t3, l3){ - this.aTime = t1; - this.aLevel = l1; - this.dTime = t2 || 0; - this.dLevel = l2 || 0; - this.sTime = 0; - this.sLevel = l2 || 0; - this.rTime = t3 || 0; - this.rLevel = l3 || 0; + p5.Env.prototype.setADSR = function(aTime, dTime, sPercent, rTime){ + this.aTime = aTime; + this.dTime = dTime || 0; + this.sPercent = sPercent; + this.rTime = rTime; + + // also set time constants for ramp + this._setRampAD(aTime, dTime); }; - /** - * Set the - * time constants for simple exponential ramps. - * The larger the time constant value, the slower the - * transition will be. - * - * @method setRampAD - * @param {Number} attackTimeConstant attack time constant - * @param {Number} decayTimeConstant decay time constant - */ - p5.Env.prototype.setRampAD = function(t1, t2){ - this.rampAttackTime = this.checkExpInput(t1); - this.rampDecayTime = this.checkExpInput(t2); + + // private (undocumented) method called when ADSR is set to set time constants for ramp + // + // Set the + // time constants for simple exponential ramps. + // The larger the time constant value, the slower the + // transition will be. + // + // method _setRampAD + // param {Number} attackTimeConstant attack time constant + // param {Number} decayTimeConstant decay time constant + // + p5.Env.prototype._setRampAD = function(t1, t2){ + this._rampAttackTime = this.checkExpInput(t1); + this._rampDecayTime = this.checkExpInput(t2); + var TCDenominator = 1.0; /// Aatish Bhatia's calculation for time constant for rise(to adjust 1/1-e calculation to any percentage) - TCDenominator = Math.log(1.0 / (this.checkExpInput(1.0 - this.rampHighPercentage))); - this.rampAttackTC = (t1 / this.checkExpInput(TCDenominator)); - TCDenominator = Math.log(1.0 / this.rampLowPercentage); - this.rampDecayTC = (t2 / this.checkExpInput(TCDenominator)); + TCDenominator = Math.log(1.0 / (this.checkExpInput(1.0 - this._rampHighPercentage))); + this._rampAttackTC = (t1 / this.checkExpInput(TCDenominator)); + TCDenominator = Math.log(1.0 / this._rampLowPercentage); + this._rampDecayTC = (t2 / this.checkExpInput(TCDenominator)); }; + // private method p5.Env.prototype.setRampPercentages = function(p1, p2){ //set the percentages that the simple exponential ramps go to - this.rampHighPercentage = this.checkExpInput(p1); - this.rampLowPercentage = this.checkExpInput(p2); + this._rampHighPercentage = this.checkExpInput(p1); + this._rampLowPercentage = this.checkExpInput(p2); var TCDenominator = 1.0; //now re-compute the time constants based on those percentages /// Aatish Bhatia's calculation for time constant for rise(to adjust 1/1-e calculation to any percentage) - TCDenominator = Math.log(1.0 / (this.checkExpInput(1.0 - this.rampHighPercentage))); - this.rampAttackTC = (this.rampAttackTime / this.checkExpInput(TCDenominator)); - TCDenominator = Math.log(1.0 / this.rampLowPercentage); - this.rampDecayTC = (this.rampDecayTime / this.checkExpInput(TCDenominator)); + TCDenominator = Math.log(1.0 / (this.checkExpInput(1.0 - this._rampHighPercentage))); + this._rampAttackTC = (this._rampAttackTime / this.checkExpInput(TCDenominator)); + TCDenominator = Math.log(1.0 / this._rampLowPercentage); + this._rampDecayTC = (this._rampDecayTime / this.checkExpInput(TCDenominator)); }; @@ -475,6 +476,7 @@ define(function (require) { * @param {Number} secondsFromNow When to trigger the ramp * @param {Number} v Target value * @param {Number} [v2] Second target value (optional) + * @example */ p5.Env.prototype.ramp = function(unit, secondsFromNow, v1, v2) { @@ -497,14 +499,14 @@ define(function (require) { //if it's going up if (destination1 > currentVal) { - this.control.setTargetAtTime(destination1, t, this.rampAttackTC); - t += this.rampAttackTime; + this.control.setTargetAtTime(destination1, t, this._rampAttackTC); + t += this._rampAttackTime; } //if it's going down else if (destination1 < currentVal) { - this.control.setTargetAtTime(destination1, t, this.rampDecayTC); - t += this.rampDecayTime; + this.control.setTargetAtTime(destination1, t, this._rampDecayTC); + t += this._rampDecayTime; } // Now the second part of envelope begins @@ -512,12 +514,12 @@ define(function (require) { //if it's going up if (destination2 > destination1) { - this.control.setTargetAtTime(destination2, t, this.rampAttackTC); + this.control.setTargetAtTime(destination2, t, this._rampAttackTC); } //if it's going down else if (destination2 < destination1) { - this.control.setTargetAtTime(destination2, t, this.rampDecayTC); + this.control.setTargetAtTime(destination2, t, this._rampDecayTC); } }; From 3f9e82d628f5264bf7a1159619de52f61579d7e1 Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Sun, 31 Jan 2016 20:03:51 -0500 Subject: [PATCH 23/25] env.play tFromNow fix and fix up examples --- examples/envelope/sketch.js | 34 ++++---- examples/envelopeMultipleSources/sketch.js | 31 ++++--- examples/envelopeOnOff/sketch.js | 41 ++++----- src/env.js | 97 ++++++++++------------ 4 files changed, 101 insertions(+), 102 deletions(-) diff --git a/examples/envelope/sketch.js b/examples/envelope/sketch.js index bd6e9901..4102c5f1 100644 --- a/examples/envelope/sketch.js +++ b/examples/envelope/sketch.js @@ -2,15 +2,15 @@ /* This sketch shows how to use envelopes and oscillators. Envelopes are pre-defined amplitude -distribution over time. The sound library provides an ASR envelope which stands for attach, -sustain, release. The amplitude rises then sustains at the maximum level and decays slowly -depending on pre defined time segments. +distribution over time. The sound library provides an ADSR envelope which stands for attack, +decay, sustain, release. The amplitude rises then decays to a sustain level, then decays slowly +toward the release value. - .________ - . --- - . --- - . --- - A S R + . + . . _______ + . --- + . --- + A D S R */ @@ -22,10 +22,10 @@ var a; var attackTime = 0.001; var attackLevel = 0.9; var decayTime = 0.3; -var decayLevel = 0.2; +var susPercent = 0.2; var sustainTime = 0.1; -var sustainLevel = decayLevel; var releaseTime = 0.5; +var releaseLevel = 0; var midiSequence = [ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72 ]; var duration = 1000; @@ -36,8 +36,8 @@ var trigger; var note = 0; function setup(){ - createCanvas(600, 600); - background(255); + createCanvas(600, 400); + fill(0, 255, 0); trigger = millis(); @@ -45,15 +45,16 @@ function setup(){ triOsc.amp(0); triOsc.start(); - env = new p5.Env(attackTime, attackLevel, decayTime, decayLevel, sustainTime, sustainLevel, releaseTime); - fill(0); + env = new p5.Env(); + env.setADSR(attackTime, decayTime, susPercent, releaseTime); + env.setRange(attackLevel, releaseLevel); a = new p5.Amplitude(); } function draw(){ var size = 10; - background(255, 255,255,20); + background(20, 20, 20, 70); ellipse(map ( (trigger - millis()) % duration, 1000, 0, 0, width), map ( a.getLevel(), 0, .5, height-size, 0), size, size); // If the determined trigger moment in time matches up with the computer clock and we if the @@ -63,7 +64,8 @@ function draw(){ triOsc.freq(midiToFreq(midiSequence[note])); // The envelope gets triggered with the oscillator as input and the times and levels we defined earlier - env.play(triOsc); + // play accepts an object to play, time from now, and a sustain time—how long to hold before the release. + env.play(triOsc, 0, sustainTime); // Create the new trigger according to predefined durations and speed it up by deviding by 1.5 trigger = millis() + duration; diff --git a/examples/envelopeMultipleSources/sketch.js b/examples/envelopeMultipleSources/sketch.js index c6ebe9f3..53dcc418 100644 --- a/examples/envelopeMultipleSources/sketch.js +++ b/examples/envelopeMultipleSources/sketch.js @@ -1,18 +1,18 @@ // Adapting Wilm Thoben's Envelope example from the Processing Handbook ex2 /* -This sketch shows how to use envelopes and oscillators. Envelopes are pre-defined amplitude -distribution over time. The sound library provides an ASR envelope which stands for attach, -sustain, release. The amplitude rises then sustains at the maximum level and decays slowly -depending on pre defined time segments. - - .________ - . --- - . --- - . --- - A S R - -In this example, the envelope controls two sources: a Pink Noise and a Triangle Oscillator +This sketch shows how to use envelopes to trigger multiple sources (in this case,noise and oscillator). + +Envelopes are pre-defined amplitude distribution over time. +The sound library provides an ADSR envelope which stands for attack, decay, sustain, release. +The amplitude rises then decays to a sustain level, then decays slowly toward the release value. + + . + . . _______ + . --- + . --- + A D S R + */ var triOsc; @@ -38,8 +38,8 @@ var trigger; var note = 0; function setup(){ - createCanvas(600, 600); - background(255); + createCanvas(600, 400); + fill(0, 255, 0); trigger = millis(); @@ -59,14 +59,13 @@ function setup(){ // triOsc.amp(env); env.setInput(noise, triOsc); - fill(0); a = new p5.Amplitude(); } function draw(){ var size = 10; - background(255, 255,255,20); + background(20, 20, 20, 70); ellipse(map ( (trigger - millis()) % duration, 1000, 0, 0, width), map ( a.getLevel(), 0, .3, height-size, 0), size, size); // If the determined trigger moment in time matches up with the computer clock and we if the diff --git a/examples/envelopeOnOff/sketch.js b/examples/envelopeOnOff/sketch.js index 49f900ee..1afaa895 100644 --- a/examples/envelopeOnOff/sketch.js +++ b/examples/envelopeOnOff/sketch.js @@ -4,18 +4,18 @@ * Trigger the Release when the mouse is released. */ -var triOsc; +var osc; var env; var a; // Times and levels for the ADSR envelope var attackTime = 0.001; -var attackLevel = 0.9; -var decayTime = 0.25; -var decayLevel = 0.2; -var sustainTime = 0.1; -var sustainLevel = decayLevel; -var releaseTime = .8; +var attackLevel = 0.6; +var decayTime = 0.1; +var susPercent = 0.2; +var releaseTime = 0.5; +var releaseLevel = 0; + var duration = 1000; // Set the note trigger var trigger; @@ -25,17 +25,21 @@ var note = 0; function setup(){ - createCanvas(600, 600); - background(255); + createCanvas(600, 300); + background(20); + fill(0,255,0); trigger = millis(); - triOsc = new p5.TriOsc(); - triOsc.freq(220); - triOsc.start(); - env = new p5.Env(attackTime, attackLevel, decayTime, decayLevel, sustainTime, sustainLevel, releaseTime); - triOsc.amp(env); - fill(0); + osc = new p5.SinOsc(); + osc.freq(220); + osc.start(); + + env = new p5.Env(); + env.setADSR(attackTime, decayTime, susPercent, releaseTime); + env.setRange(attackLevel, releaseLevel); + + osc.amp(env); createP('click mouse to triggerAttack, release mouse to triggerRelease'); a = new p5.Amplitude(); @@ -43,14 +47,13 @@ function setup(){ function draw(){ var size = 10; - background(255, 255,255,20); + background(20, 20, 20, 70); ellipse( map ( (trigger - millis()) % duration, 1000, 0, 0, width) % width, map ( a.getLevel(), 0, .5, height-size, 0), size, size); } function mousePressed(){ - // The envelope gets triggered with the oscillator as input and the times and levels we defined earlier - env.triggerAttack(); - trigger = millis() + duration; + env.triggerAttack(); + trigger = millis() + duration; } function mouseReleased(){ diff --git a/src/env.js b/src/env.js index e9cf6f15..4d8dd123 100644 --- a/src/env.js +++ b/src/env.js @@ -29,8 +29,6 @@ define(function (require) { * @param {Number} dTime Time * @param {Number} [dLevel] Amplitude (In a standard ADSR envelope, * decayLevel = sustainLevel) - * @param {Number} [sTime] Time (in seconds) - * @param {Number} [sLevel] Amplitude 0.0 to 1.0 * @param {Number} [rTime] Time (in seconds) * @param {Number} [rLevel] Amplitude 0.0 to 1.0 * @example @@ -39,8 +37,6 @@ define(function (require) { * var aL = 0.7; // attack level 0.0 to 1.0 * var dT = 0.3; // decay time in seconds * var dL = 0.1; // decay level 0.0 to 1.0 - * var sT = 0.2; // sustain time in seconds - * var sL = dL; // sustain level 0.0 to 1.0 * var rT = 0.5; // release time in seconds * // release level defaults to zero * @@ -88,14 +84,6 @@ define(function (require) { * @property decayLevel */ this.dLevel = l2 || 0; - /** - * @property sustainTime - */ - this.sTime = t3 || 0; - /** - * @property sustainLevel - */ - this.sLevel = l3 || 0; /** * @property releaseTime */ @@ -152,23 +140,21 @@ define(function (require) { * Reset the envelope with a series of time/value pairs. * * @method set - * @param {Number} aTime Time (in seconds) before level + * @param {Number} attackTime Time (in seconds) before level * reaches attackLevel - * @param {Number} aLevel Typically an amplitude between + * @param {Number} attackLevel Typically an amplitude between * 0.0 and 1.0 - * @param {Number} dTime Time - * @param {Number} [sLevel] Amplitude (In a standard ADSR envelope, + * @param {Number} decayTime Time + * @param {Number} decayLevel Amplitude (In a standard ADSR envelope, * decayLevel = sustainLevel) - * @param {Number} [rTime] Release Time (in seconds) - * @param {Number} [rLevel] Amplitude 0.0 to 1.0 + * @param {Number} releaseTime Release Time (in seconds) + * @param {Number} releaseLevel Amplitude */ - p5.Env.prototype.set = function(t1, l1, t2, l2, t3, l3, t4, l4){ + p5.Env.prototype.set = function(t1, l1, t2, l2, t3, l3){ this.aTime = t1; this.aLevel = l1; this.dTime = t2 || 0; this.dLevel = l2 || 0; - this.sTime = t3 || 0; - this.sLevel = l3 || 0; this.rTime = t4 || 0; this.rLevel = l4 || 0; @@ -183,23 +169,47 @@ define(function (require) { * . * * @method setADSR - * @param {Number} attackTime in seconds from now - * @param {Number} attackVal value - * @param {Number} [decayTime] in seconds from now (defaults to 0) - * @param {Number} [sustainVal] value (defaults to 0) - * @param {Number} [releaseTime] in seconds from now (defaults to 0) - * @param {Number} [releaseVal] value (defaults to 0) + * @param {Number} attackTime Time (in seconds before envelope + * reaches Attack Level + * @param {Number} [decayTime] Time (in seconds) before envelope + * reaches Decay/Sustain Level + * @param {Number} [sustainPercent] percent between attackLevel and releaseLevel + * @param {Number} [releaseTime] Time in seconds from now (defaults to 0) */ p5.Env.prototype.setADSR = function(aTime, dTime, sPercent, rTime){ this.aTime = aTime; this.dTime = dTime || 0; + + // lerp this.sPercent = sPercent; - this.rTime = rTime; + this.dLevel = typeof(sPercent) !== 'undefined' ? sPercent * (this.aLevel - this.rLevel) + this.rLevel : 0; + + this.rTime = rTime || 0; // also set time constants for ramp this._setRampAD(aTime, dTime); }; + /** + * Set max and min of envelope + * + * @method setRange + * @param {Number} aLevel attack level (defaults to 1) + * @param {Number} rLevel release level (defaults to 0) + */ + p5.Env.prototype.setRange = function(aLevel, rLevel) { + this.aLevel = aLevel || 1; + this.rLevel = 0; + + // not sure if this belongs here: + + // {Number} [dLevel] decay/sustain level (optional) + // if (typeof(dLevel) !== 'undefined') { + // this.dLevel = dLevel + // } else if (this.sPercent) { + // this.dLevel = this.sPercent ? this.sPercent * (this.aLevel - this.rLevel) + this.rLevel : 0; + // } + } // private (undocumented) method called when ADSR is set to set time constants for ramp // @@ -287,12 +297,14 @@ define(function (require) { * @method play * @param {Object} unit A p5.sound object or * Web Audio Param. - * @param {Number} secondsFromNow time from now (in seconds) + * @param {Number} [startTime] time from now (in seconds) at which to play + * @param {Number} [sustainTime] time to sustain before releasing the envelope + */ - p5.Env.prototype.play = function(unit, secondsFromNow){ + p5.Env.prototype.play = function(unit, secondsFromNow, susTime){ var now = p5sound.audiocontext.currentTime; var tFromNow = secondsFromNow || 0; - var t = now + tFromNow; + var susTime = susTime || 0; if (unit) { if (this.connection !== unit) { @@ -300,14 +312,14 @@ define(function (require) { } } - this.triggerAttack(unit, secondsFromNow); + this.triggerAttack(unit, tFromNow); - this.triggerRelease(unit, secondsFromNow + this.aTime + this.dTime + this.sTime); + this.triggerRelease(unit, tFromNow + this.aTime + this.dTime + susTime); }; /** - * Trigger the Attack, Decay, and Sustain of the Envelope. + * Trigger the Attack, and Decay portion of the Envelope. * Similar to holding down a key on a piano, but it will * hold the sustain level until you let go. Input can be * any p5.sound object, or a @@ -8,3 +9,8 @@ + + + click to trigger amplitude and frequency envelopes + + \ No newline at end of file diff --git a/examples/envAmpFreq/sketch.js b/examples/envAmpFreq/sketch.js new file mode 100644 index 00000000..cc170881 --- /dev/null +++ b/examples/envAmpFreq/sketch.js @@ -0,0 +1,35 @@ +/** + * Control the level of an envelope + */ + +var env; // this is the env +var osc; // this oscillator will modulate the amplitude of the carrier +var freqEnv; // env for frequency + +function setup() { + env = new p5.Env(); + env.setADSR(0.01, 0.2, 0.2, 0.3); + env.setRange(0, 1); + + freqEnv = new p5.Env(); + freqEnv.setADSR(0.01, 0.2, 0.2, 0.3); + freqEnv.setRange(300, 5000); + + + osc = new p5.Oscillator(); // connects to master output by default + osc.start(0); + osc.freq(220); + // osc.freq(env.scale(0,1,800,300)); + osc.freq(freqEnv); + osc.amp(env); +} + +function mousePressed() { + env.triggerAttack(); + freqEnv.triggerAttack(); +} + +function mouseReleased() { + env.triggerRelease(); + freqEnv.triggerRelease(); +} \ No newline at end of file diff --git a/examples/envSignalMath/sketch.js b/examples/envSignalMath/sketch.js deleted file mode 100644 index bff0301b..00000000 --- a/examples/envSignalMath/sketch.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Control the level of an envelope with math - */ - -var env; // this is the oscillator we will hear -var osc; // this oscillator will modulate the amplitude of the carrier - -function setup() { - env = new p5.Env(0.01, 1, 0.5, 0.8, 0.3,0.2); - - osc = new p5.Oscillator(); // connects to master output by default - osc.start(0); - osc.freq(1); - osc.freq(env.scale(0,1,800,300)); - osc.amp(env); -} - -function mousePressed() { - env.triggerAttack(osc); -} - -function mouseReleased() { - env.triggerRelease(osc); -} \ No newline at end of file diff --git a/src/env.js b/src/env.js index 4d8dd123..a6b69731 100644 --- a/src/env.js +++ b/src/env.js @@ -11,87 +11,90 @@ define(function (require) { Tone.setContext( p5sound.audiocontext); /** - *

Envelopes are pre-defined amplitude distribution over time. - * The p5.Env accepts up to four time/level pairs, where time - * determines how long of a ramp before value reaches level. + *

Envelopes are pre-defined amplitude distribution over time. + * The p5.Env accepts up to three time/level pairs, where time + * determines the duration until value reaches level. * Typically, envelopes are used to control the output volume * of an object, a series of fades referred to as Attack, Decay, - * Sustain and Release (ADSR). But p5.Env can control any - * Web Audio Param, for example it can be passed to an Oscillator - * frequency like osc.freq(env)

+ * Sustain and Release ( + *
ADSR + * ). But p5.Env can control any Web Audio Param; for example it can be passed to an Oscillator + * frequency like osc.freq(env).

+ *

Use setRange to change the attack/release level. + * Use setADSR to change attackTime, decayTime, sustainPercent and releaseTime.

+ *

Use the play method to play the entire envelope, the ramp method for a pingable trigger, + * or triggerAttack/triggerRelease to trigger noteOn/noteOff.

* * @class p5.Env * @constructor - * @param {Number} aTime Time (in seconds) before level - * reaches attackLevel - * @param {Number} aLevel Typically an amplitude between - * 0.0 and 1.0 - * @param {Number} dTime Time - * @param {Number} [dLevel] Amplitude (In a standard ADSR envelope, - * decayLevel = sustainLevel) - * @param {Number} [rTime] Time (in seconds) - * @param {Number} [rLevel] Amplitude 0.0 to 1.0 * @example *
- * var aT = 0.1; // attack time in seconds - * var aL = 0.7; // attack level 0.0 to 1.0 - * var dT = 0.3; // decay time in seconds - * var dL = 0.1; // decay level 0.0 to 1.0 - * var rT = 0.5; // release time in seconds - * // release level defaults to zero + * var attackLevel = 1.0; + * var releaseLevel = 0; + * + * var attackTime = 0.001 + * var decayTime = 0.2; + * var susPercent = 0.2; + * var releaseTime = 0.5; + * + * var env, triOsc; * - * var env; - * var triOsc; - * * function setup() { - * background(0); - * noStroke(); - * fill(255); + * var cnv = createCanvas(100, 100); + * * textAlign(CENTER); * text('click to play', width/2, height/2); * - * env = new p5.Env(aT, aL, dT, dL, sT, sL, rT); + * env = new p5.Env(); + * env.setADSR(attackTime, decayTime, susPercent, releaseTime); + * env.setRange(attackLevel, releaseLevel); + * * triOsc = new p5.Oscillator('triangle'); - * triOsc.amp(env); // give the env control of the triOsc's amp + * triOsc.amp(env); * triOsc.start(); + * triOsc.freq(220); + * + * cnv.mousePressed(playEnv); * } * - * // mouseClick triggers envelope if over canvas - * function mouseClicked() { - * // is mouse over canvas? - * if (mouseX > 0 && mouseX < width && mouseY > 0 && mouseY < height) { - * env.play(triOsc); - * } + * function playEnv(){ + * env.play(); * } *
*/ - p5.Env = function(t1, l1, t2, l2, t3, l3, t4, l4){ + p5.Env = function(t1, l1, t2, l2, t3, l3){ var now = p5sound.audiocontext.currentTime; /** + * Time until envelope reaches attackLevel * @property attackTime */ this.aTime = t1 || 0.1; /** + * Level once attack is complete. * @property attackLevel */ this.aLevel = l1 || 1; /** + * Time until envelope reaches decayLevel. * @property decayTime */ this.dTime = t2 || 0.5; /** + * Level after decay. The envelope will sustain here until it is released. * @property decayLevel */ this.dLevel = l2 || 0; /** + * Duration of the release portion of the envelope. * @property releaseTime */ - this.rTime = t4 || 0; + this.rTime = t3 || 0; /** + * Level at the end of the release. * @property releaseLevel */ - this.rLevel = l4 || 0; + this.rLevel = l3 || 0; this._rampHighPercentage = 0.98; @@ -102,7 +105,7 @@ define(function (require) { this.control = new TimelineSignal(); - this.init(); // this makes sure the envelope starts at zero + this._init(); // this makes sure the envelope starts at zero this.control.connect(this.output); // connect to the output @@ -128,7 +131,7 @@ define(function (require) { // this init function just smooths the starting value to zero and gives a start point for the timeline // - it was necessary to remove glitches at the beginning. - p5.Env.prototype.init = function () { + p5.Env.prototype._init = function () { var now = p5sound.audiocontext.currentTime; var t = now; this.control.setTargetAtTime(0.00001, t, .001); @@ -173,15 +176,55 @@ define(function (require) { * reaches Attack Level * @param {Number} [decayTime] Time (in seconds) before envelope * reaches Decay/Sustain Level - * @param {Number} [sustainPercent] percent between attackLevel and releaseLevel + * @param {Number} [susRatio] Ratio between attackLevel and releaseLevel, on a scale from 0 to 1, + * where 1.0 = attackLevel, 0.0 = releaseLevel. + * The susRatio determines the decayLevel and the level at which the + * sustain portion of the envelope will sustain. + * For example, if attackLevel is 0.4, releaseLevel is 0, + * and susAmt is 0.5, the decayLevel would be 0.2. If attackLevel is + * increased to 1.0 (using setRange), + * then decayLevel would increase proportionally, to become 0.5. * @param {Number} [releaseTime] Time in seconds from now (defaults to 0) + * @example + *
+ * var attackLevel = 1.0; + * var releaseLevel = 0; + * + * var attackTime = 0.001 + * var decayTime = 0.2; + * var susPercent = 0.2; + * var releaseTime = 0.5; + * + * var env, triOsc; + * + * function setup() { + * var cnv = createCanvas(100, 100); + * + * textAlign(CENTER); + * text('click to play', width/2, height/2); + * + * env = new p5.Env(); + * env.setADSR(attackTime, decayTime, susPercent, releaseTime); + * env.setRange(attackLevel, releaseLevel); + * + * triOsc = new p5.Oscillator('triangle'); + * triOsc.amp(env); + * triOsc.start(); + * triOsc.freq(220); + * + * cnv.mousePressed(playEnv); + * } + * + * function playEnv(){ + * env.play(); + * } */ p5.Env.prototype.setADSR = function(aTime, dTime, sPercent, rTime){ this.aTime = aTime; this.dTime = dTime || 0; // lerp - this.sPercent = sPercent; + this.sPercent = sPercent || 0; this.dLevel = typeof(sPercent) !== 'undefined' ? sPercent * (this.aLevel - this.rLevel) + this.rLevel : 0; this.rTime = rTime || 0; @@ -191,15 +234,48 @@ define(function (require) { }; /** - * Set max and min of envelope + * Set max (attackLevel) and min (releaseLevel) of envelope. * * @method setRange * @param {Number} aLevel attack level (defaults to 1) * @param {Number} rLevel release level (defaults to 0) + * @example + *
+ * var attackLevel = 1.0; + * var releaseLevel = 0; + * + * var attackTime = 0.001 + * var decayTime = 0.2; + * var susPercent = 0.2; + * var releaseTime = 0.5; + * + * var env, triOsc; + * + * function setup() { + * var cnv = createCanvas(100, 100); + * + * textAlign(CENTER); + * text('click to play', width/2, height/2); + * + * env = new p5.Env(); + * env.setADSR(attackTime, decayTime, susPercent, releaseTime); + * env.setRange(attackLevel, releaseLevel); + * + * triOsc = new p5.Oscillator('triangle'); + * triOsc.amp(env); + * triOsc.start(); + * triOsc.freq(220); + * + * cnv.mousePressed(playEnv); + * } + * + * function playEnv(){ + * env.play(); + * } */ p5.Env.prototype.setRange = function(aLevel, rLevel) { this.aLevel = aLevel || 1; - this.rLevel = 0; + this.rLevel = rLevel || 0; // not sure if this belongs here: @@ -329,6 +405,52 @@ define(function (require) { * @method triggerAttack * @param {Object} unit p5.sound Object or Web Audio Param * @param {Number} secondsFromNow time from now (in seconds) + * @example + *
+ * + * var attackLevel = 1.0; + * var releaseLevel = 0; + * + * var attackTime = 0.001 + * var decayTime = 0.3; + * var susPercent = 0.4; + * var releaseTime = 0.5; + * + * var env, triOsc; + * + * function setup() { + * var cnv = createCanvas(100, 100); + * background(200); + * textAlign(CENTER); + * text('click to play', width/2, height/2); + * + * env = new p5.Env(); + * env.setADSR(attackTime, decayTime, susPercent, releaseTime); + * env.setRange(attackLevel, releaseLevel); + * + * triOsc = new p5.Oscillator('triangle'); + * triOsc.amp(env); + * triOsc.start(); + * triOsc.freq(220); + * + * cnv.mousePressed(envAttack); + * } + * + * function envAttack(){ + * console.log('trigger attack'); + * env.triggerAttack(); + * + * background(0,255,0); + * text('attack!', width/2, height/2); + * } + * + * function mouseReleased() { + * env.triggerRelease(); + * + * background(200); + * text('click to play', width/2, height/2); + * } + *
*/ p5.Env.prototype.triggerAttack = function(unit, secondsFromNow) { var now = p5sound.audiocontext.currentTime; @@ -403,6 +525,52 @@ define(function (require) { * @method triggerRelease * @param {Object} unit p5.sound Object or Web Audio Param * @param {Number} secondsFromNow time to trigger the release + * @example + *
+ * + * var attackLevel = 1.0; + * var releaseLevel = 0; + * + * var attackTime = 0.001 + * var decayTime = 0.3; + * var susPercent = 0.4; + * var releaseTime = 0.5; + * + * var env, triOsc; + * + * function setup() { + * var cnv = createCanvas(100, 100); + * background(200); + * textAlign(CENTER); + * text('click to play', width/2, height/2); + * + * env = new p5.Env(); + * env.setADSR(attackTime, decayTime, susPercent, releaseTime); + * env.setRange(attackLevel, releaseLevel); + * + * triOsc = new p5.Oscillator('triangle'); + * triOsc.amp(env); + * triOsc.start(); + * triOsc.freq(220); + * + * cnv.mousePressed(envAttack); + * } + * + * function envAttack(){ + * console.log('trigger attack'); + * env.triggerAttack(); + * + * background(0,255,0); + * text('attack!', width/2, height/2); + * } + * + * function mouseReleased() { + * env.triggerRelease(); + * + * background(200); + * text('click to play', width/2, height/2); + * } + *
*/ p5.Env.prototype.triggerRelease = function(unit, secondsFromNow) { @@ -472,6 +640,43 @@ define(function (require) { * @param {Number} v Target value * @param {Number} [v2] Second target value (optional) * @example + *
+ * var env, osc, amp, cnv; + * + * var attackTime = 0.001; + * var decayTime = 0.2; + * var attackLevel = 1; + * var decayLevel = 0; + * + * function setup() { + * cnv = createCanvas(100, 100); + * fill(0,255,0); + * noStroke(); + * + * env = new p5.Env(); + * env.setADSR(attackTime, decayTime); + * + * osc = new p5.Oscillator(); + * osc.amp(env); + * osc.start(); + * + * amp = new p5.Amplitude(); + * + * cnv.mousePressed(triggerRamp); + * } + * + * function triggerRamp() { + * env.ramp(osc, 0, attackLevel, decayLevel); + * } + * + * function draw() { + * background(20,20,20); + * text('click me', 10, 20); + * var h = map(amp.getLevel(), 0, 0.4, 0, height);; + * + * rect(0, height, width, -h); + * } + *
*/ p5.Env.prototype.ramp = function(unit, secondsFromNow, v1, v2) { From 5a6b23e80bba090d792129aef64262ae8f8a862f Mon Sep 17 00:00:00 2001 From: therewasaguy Date: Sun, 31 Jan 2016 21:28:37 -0500 Subject: [PATCH 25/25] 0.3.0 --- lib/p5.sound.js | 669 ++++++++++++++++++++++++++++++++++++-------- lib/p5.sound.min.js | 10 +- package.json | 2 +- 3 files changed, 566 insertions(+), 115 deletions(-) diff --git a/lib/p5.sound.js b/lib/p5.sound.js index d9395fe7..349be07f 100644 --- a/lib/p5.sound.js +++ b/lib/p5.sound.js @@ -1,4 +1,4 @@ -/*! p5.sound.js v0.2.17 2016-01-21 */ +/*! p5.sound.js v0.3.0 2016-01-31 */ (function (root, factory) { if (typeof define === 'function' && define.amd) define('p5.sound', ['p5'], function (p5) { (factory(p5));}); @@ -2786,6 +2786,87 @@ fft = function () { var x = this.getEnergy(freq1, freq2); return x; }; + /** + * Returns the + * + * spectral centroid of the input signal. + * NOTE: analyze() must be called prior to getCentroid(). Analyze() + * tells the FFT to analyze frequency data, and getCentroid() uses + * the results determine the spectral centroid.

+ * + * @method getCentroid + * @return {Number} Spectral Centroid Frequency Frequency of the spectral centroid in Hz. + * + * + * @example + *
+ * + * + *function setup(){ + * cnv = createCanvas(800,400); + * sound = new p5.AudioIn(); + * sound.start(); + * fft = new p5.FFT(); + * sound.connect(fft); + *} + * + * + *function draw(){ + * + * var centroidplot = 0.0; + * var spectralCentroid = 0; + * + * + * background(0); + * stroke(0,255,0); + * var spectrum = fft.analyze(); + * fill(0,255,0); // spectrum is green + * + * //draw the spectrum + * + * for (var i = 0; i< spectrum.length; i++){ + * var x = map(log(i), 0, log(spectrum.length), 0, width); + * var h = map(spectrum[i], 0, 255, 0, height); + * var rectangle_width = (log(i+1)-log(i))*(width/log(spectrum.length)); + * rect(x, height, rectangle_width, -h ) + * } + + * var nyquist = 22050; + * + * // get the centroid + * spectralCentroid = fft.getCentroid(); + * + * // the mean_freq_index calculation is for the display. + * var mean_freq_index = spectralCentroid/(nyquist/spectrum.length); + * + * centroidplot = map(log(mean_freq_index), 0, log(spectrum.length), 0, width); + * + * + * stroke(255,0,0); // the line showing where the centroid is will be red + * + * rect(centroidplot, 0, width / spectrum.length, height) + * noStroke(); + * fill(255,255,255); // text is white + * textSize(40); + * text("centroid: "+round(spectralCentroid)+" Hz", 10, 40); + *} + *
+ */ + p5.FFT.prototype.getCentroid = function () { + var nyquist = p5sound.audiocontext.sampleRate / 2; + var cumulative_sum = 0; + var centroid_normalization = 0; + for (var i = 0; i < this.freqDomain.length; i++) { + cumulative_sum += i * this.freqDomain[i]; + centroid_normalization += this.freqDomain[i]; + } + var mean_freq_index = 0; + if (centroid_normalization != 0) { + mean_freq_index = cumulative_sum / centroid_normalization; + } + var spec_centroid_freq = mean_freq_index * (nyquist / this.freqDomain.length); + return spec_centroid_freq; + }; /** * Smooth FFT analysis by averaging with the last analysis frame. * @@ -5081,106 +5162,103 @@ env = function () { var Tone = Tone_core_Tone; Tone.setContext(p5sound.audiocontext); /** - *

Envelopes are pre-defined amplitude distribution over time. - * The p5.Env accepts up to four time/level pairs, where time - * determines how long of a ramp before value reaches level. + *

Envelopes are pre-defined amplitude distribution over time. + * The p5.Env accepts up to three time/level pairs, where time + * determines the duration until value reaches level. * Typically, envelopes are used to control the output volume * of an object, a series of fades referred to as Attack, Decay, - * Sustain and Release (ADSR). But p5.Env can control any - * Web Audio Param, for example it can be passed to an Oscillator - * frequency like osc.freq(env)

+ * Sustain and Release ( + * ADSR + * ). But p5.Env can control any Web Audio Param; for example it can be passed to an Oscillator + * frequency like osc.freq(env).

+ *

Use setRange to change the attack/release level. + * Use setADSR to change attackTime, decayTime, sustainPercent and releaseTime.

+ *

Use the play method to play the entire envelope, the ramp method for a pingable trigger, + * or triggerAttack/triggerRelease to trigger noteOn/noteOff.

* * @class p5.Env * @constructor - * @param {Number} aTime Time (in seconds) before level - * reaches attackLevel - * @param {Number} aLevel Typically an amplitude between - * 0.0 and 1.0 - * @param {Number} dTime Time - * @param {Number} [dLevel] Amplitude (In a standard ADSR envelope, - * decayLevel = sustainLevel) - * @param {Number} [sTime] Time (in seconds) - * @param {Number} [sLevel] Amplitude 0.0 to 1.0 - * @param {Number} [rTime] Time (in seconds) - * @param {Number} [rLevel] Amplitude 0.0 to 1.0 * @example *
- * var aT = 0.1; // attack time in seconds - * var aL = 0.7; // attack level 0.0 to 1.0 - * var dT = 0.3; // decay time in seconds - * var dL = 0.1; // decay level 0.0 to 1.0 - * var sT = 0.2; // sustain time in seconds - * var sL = dL; // sustain level 0.0 to 1.0 - * var rT = 0.5; // release time in seconds - * // release level defaults to zero - * - * var env; - * var triOsc; - * + * var attackLevel = 1.0; + * var releaseLevel = 0; + * + * var attackTime = 0.001 + * var decayTime = 0.2; + * var susPercent = 0.2; + * var releaseTime = 0.5; + * + * var env, triOsc; + * * function setup() { - * background(0); - * noStroke(); - * fill(255); + * var cnv = createCanvas(100, 100); + * * textAlign(CENTER); * text('click to play', width/2, height/2); * - * env = new p5.Env(aT, aL, dT, dL, sT, sL, rT); + * env = new p5.Env(); + * env.setADSR(attackTime, decayTime, susPercent, releaseTime); + * env.setRange(attackLevel, releaseLevel); + * * triOsc = new p5.Oscillator('triangle'); - * triOsc.amp(env); // give the env control of the triOsc's amp + * triOsc.amp(env); * triOsc.start(); + * triOsc.freq(220); + * + * cnv.mousePressed(playEnv); * } * - * // mouseClick triggers envelope if over canvas - * function mouseClicked() { - * // is mouse over canvas? - * if (mouseX > 0 && mouseX < width && mouseY > 0 && mouseY < height) { - * env.play(triOsc); - * } + * function playEnv(){ + * env.play(); * } *
*/ - p5.Env = function (t1, l1, t2, l2, t3, l3, t4, l4) { + p5.Env = function (t1, l1, t2, l2, t3, l3) { var now = p5sound.audiocontext.currentTime; /** + * Time until envelope reaches attackLevel * @property attackTime */ - this.aTime = t1; + this.aTime = t1 || 0.1; /** + * Level once attack is complete. * @property attackLevel */ - this.aLevel = l1; + this.aLevel = l1 || 1; /** + * Time until envelope reaches decayLevel. * @property decayTime */ - this.dTime = t2 || 0; + this.dTime = t2 || 0.5; /** + * Level after decay. The envelope will sustain here until it is released. * @property decayLevel */ this.dLevel = l2 || 0; /** - * @property sustainTime - */ - this.sTime = t3 || 0; - /** - * @property sustainLevel - */ - this.sLevel = l3 || 0; - /** + * Duration of the release portion of the envelope. * @property releaseTime */ - this.rTime = t4 || 0; + this.rTime = t3 || 0; /** + * Level at the end of the release. * @property releaseLevel */ - this.rLevel = l4 || 0; + this.rLevel = l3 || 0; + this._rampHighPercentage = 0.98; + this._rampLowPercentage = 0.02; this.output = p5sound.audiocontext.createGain(); this.control = new TimelineSignal(); + this._init(); + // this makes sure the envelope starts at zero this.control.connect(this.output); - this.control.setValueAtTime(0, now); + // connect to the output this.connection = null; // store connection //array of math operation signal chaining this.mathOps = [this.control]; + //whether envelope should be linear or exponential curve + this.isExponential = false; // oscillator or buffer source to clear on env complete // to save resources if/when it is retriggered this.sourceToClear = null; @@ -5189,31 +5267,180 @@ env = function () { // add to the soundArray so we can dispose of the env later p5sound.soundArray.push(this); }; + // this init function just smooths the starting value to zero and gives a start point for the timeline + // - it was necessary to remove glitches at the beginning. + p5.Env.prototype._init = function () { + var now = p5sound.audiocontext.currentTime; + var t = now; + this.control.setTargetAtTime(0.00001, t, 0.001); + //also, compute the correct time constants + this._setRampAD(this.aTime, this.dTime); + }; /** * Reset the envelope with a series of time/value pairs. * * @method set - * @param {Number} aTime Time (in seconds) before level + * @param {Number} attackTime Time (in seconds) before level * reaches attackLevel - * @param {Number} aLevel Typically an amplitude between + * @param {Number} attackLevel Typically an amplitude between * 0.0 and 1.0 - * @param {Number} dTime Time - * @param {Number} [dLevel] Amplitude (In a standard ADSR envelope, + * @param {Number} decayTime Time + * @param {Number} decayLevel Amplitude (In a standard ADSR envelope, * decayLevel = sustainLevel) - * @param {Number} [sTime] Time (in seconds) - * @param {Number} [sLevel] Amplitude 0.0 to 1.0 - * @param {Number} [rTime] Time (in seconds) - * @param {Number} [rLevel] Amplitude 0.0 to 1.0 + * @param {Number} releaseTime Release Time (in seconds) + * @param {Number} releaseLevel Amplitude */ - p5.Env.prototype.set = function (t1, l1, t2, l2, t3, l3, t4, l4) { + p5.Env.prototype.set = function (t1, l1, t2, l2, t3, l3) { this.aTime = t1; this.aLevel = l1; this.dTime = t2 || 0; this.dLevel = l2 || 0; - this.sTime = t3 || 0; - this.sLevel = l3 || 0; this.rTime = t4 || 0; this.rLevel = l4 || 0; + // set time constants for ramp + this._setRampAD(t1, t2); + }; + /** + * Set values like a traditional + * + * ADSR envelope + * . + * + * @method setADSR + * @param {Number} attackTime Time (in seconds before envelope + * reaches Attack Level + * @param {Number} [decayTime] Time (in seconds) before envelope + * reaches Decay/Sustain Level + * @param {Number} [susRatio] Ratio between attackLevel and releaseLevel, on a scale from 0 to 1, + * where 1.0 = attackLevel, 0.0 = releaseLevel. + * The susRatio determines the decayLevel and the level at which the + * sustain portion of the envelope will sustain. + * For example, if attackLevel is 0.4, releaseLevel is 0, + * and susAmt is 0.5, the decayLevel would be 0.2. If attackLevel is + * increased to 1.0 (using setRange), + * then decayLevel would increase proportionally, to become 0.5. + * @param {Number} [releaseTime] Time in seconds from now (defaults to 0) + * @example + *
+ * var attackLevel = 1.0; + * var releaseLevel = 0; + * + * var attackTime = 0.001 + * var decayTime = 0.2; + * var susPercent = 0.2; + * var releaseTime = 0.5; + * + * var env, triOsc; + * + * function setup() { + * var cnv = createCanvas(100, 100); + * + * textAlign(CENTER); + * text('click to play', width/2, height/2); + * + * env = new p5.Env(); + * env.setADSR(attackTime, decayTime, susPercent, releaseTime); + * env.setRange(attackLevel, releaseLevel); + * + * triOsc = new p5.Oscillator('triangle'); + * triOsc.amp(env); + * triOsc.start(); + * triOsc.freq(220); + * + * cnv.mousePressed(playEnv); + * } + * + * function playEnv(){ + * env.play(); + * } + */ + p5.Env.prototype.setADSR = function (aTime, dTime, sPercent, rTime) { + this.aTime = aTime; + this.dTime = dTime || 0; + // lerp + this.sPercent = sPercent || 0; + this.dLevel = typeof sPercent !== 'undefined' ? sPercent * (this.aLevel - this.rLevel) + this.rLevel : 0; + this.rTime = rTime || 0; + // also set time constants for ramp + this._setRampAD(aTime, dTime); + }; + /** + * Set max (attackLevel) and min (releaseLevel) of envelope. + * + * @method setRange + * @param {Number} aLevel attack level (defaults to 1) + * @param {Number} rLevel release level (defaults to 0) + * @example + *
+ * var attackLevel = 1.0; + * var releaseLevel = 0; + * + * var attackTime = 0.001 + * var decayTime = 0.2; + * var susPercent = 0.2; + * var releaseTime = 0.5; + * + * var env, triOsc; + * + * function setup() { + * var cnv = createCanvas(100, 100); + * + * textAlign(CENTER); + * text('click to play', width/2, height/2); + * + * env = new p5.Env(); + * env.setADSR(attackTime, decayTime, susPercent, releaseTime); + * env.setRange(attackLevel, releaseLevel); + * + * triOsc = new p5.Oscillator('triangle'); + * triOsc.amp(env); + * triOsc.start(); + * triOsc.freq(220); + * + * cnv.mousePressed(playEnv); + * } + * + * function playEnv(){ + * env.play(); + * } + */ + p5.Env.prototype.setRange = function (aLevel, rLevel) { + this.aLevel = aLevel || 1; + this.rLevel = rLevel || 0; + }; + // private (undocumented) method called when ADSR is set to set time constants for ramp + // + // Set the + // time constants for simple exponential ramps. + // The larger the time constant value, the slower the + // transition will be. + // + // method _setRampAD + // param {Number} attackTimeConstant attack time constant + // param {Number} decayTimeConstant decay time constant + // + p5.Env.prototype._setRampAD = function (t1, t2) { + this._rampAttackTime = this.checkExpInput(t1); + this._rampDecayTime = this.checkExpInput(t2); + var TCDenominator = 1; + /// Aatish Bhatia's calculation for time constant for rise(to adjust 1/1-e calculation to any percentage) + TCDenominator = Math.log(1 / this.checkExpInput(1 - this._rampHighPercentage)); + this._rampAttackTC = t1 / this.checkExpInput(TCDenominator); + TCDenominator = Math.log(1 / this._rampLowPercentage); + this._rampDecayTC = t2 / this.checkExpInput(TCDenominator); + }; + // private method + p5.Env.prototype.setRampPercentages = function (p1, p2) { + //set the percentages that the simple exponential ramps go to + this._rampHighPercentage = this.checkExpInput(p1); + this._rampLowPercentage = this.checkExpInput(p2); + var TCDenominator = 1; + //now re-compute the time constants based on those percentages + /// Aatish Bhatia's calculation for time constant for rise(to adjust 1/1-e calculation to any percentage) + TCDenominator = Math.log(1 / this.checkExpInput(1 - this._rampHighPercentage)); + this._rampAttackTC = this._rampAttackTime / this.checkExpInput(TCDenominator); + TCDenominator = Math.log(1 / this._rampLowPercentage); + this._rampDecayTC = this._rampDecayTime / this.checkExpInput(TCDenominator); }; /** * Assign a parameter to be controlled by this envelope. @@ -5230,36 +5457,53 @@ env = function () { this.connect(arguments[i]); } }; - p5.Env.prototype.ctrl = function (unit) { - this.connect(unit); - }; /** - * Play tells the envelope to start acting on a given input. - * If the input is a p5.sound object (i.e. AudioIn, Oscillator, - * SoundFile), then Env will control its output volume. - * Envelopes can also be used to control any - * Web Audio Audio Param. - * - * @method play - * @param {Object} unit A p5.sound object or - * Web Audio Param. - * @param {Number} secondsFromNow time from now (in seconds) + * Set whether the envelope ramp is linear (default) or exponential. + * Exponential ramps can be useful because we perceive amplitude + * and frequency logarithmically. + * + * @method setExp + * @param {Boolean} isExp true is exponential, false is linear */ - p5.Env.prototype.play = function (unit, secondsFromNow) { + p5.Env.prototype.setExp = function (isExp) { + this.isExponential = isExp; + }; + //helper method to protect against zero values being sent to exponential functions + p5.Env.prototype.checkExpInput = function (value) { + if (value <= 0) { + value = 0.0001; + } + return value; + }; + /** + * Play tells the envelope to start acting on a given input. + * If the input is a p5.sound object (i.e. AudioIn, Oscillator, + * SoundFile), then Env will control its output volume. + * Envelopes can also be used to control any + * Web Audio Audio Param. + * + * @method play + * @param {Object} unit A p5.sound object or + * Web Audio Param. + * @param {Number} [startTime] time from now (in seconds) at which to play + * @param {Number} [sustainTime] time to sustain before releasing the envelope + + */ + p5.Env.prototype.play = function (unit, secondsFromNow, susTime) { var now = p5sound.audiocontext.currentTime; var tFromNow = secondsFromNow || 0; - var t = now + tFromNow; + var susTime = susTime || 0; if (unit) { if (this.connection !== unit) { this.connect(unit); } } - this.triggerAttack(unit, secondsFromNow); - this.triggerRelease(unit, secondsFromNow + this.aTime + this.dTime + this.sTime); + this.triggerAttack(unit, tFromNow); + this.triggerRelease(unit, tFromNow + this.aTime + this.dTime + susTime); }; /** - * Trigger the Attack, Decay, and Sustain of the Envelope. + * Trigger the Attack, and Decay portion of the Envelope. * Similar to holding down a key on a piano, but it will * hold the sustain level until you let go. Input can be * any p5.sound object, or a -1))throw arguments[e]+" is not a valid sound format!";t.extensions.push(arguments[e])}},p5.prototype.disposeSound=function(){for(var e=0;e-1){var n=p5.prototype.isFileSupported(o);if(n)i=i;else for(var r=i.split("."),s=r[r.length-1],a=0;a1?(this.splitter=e.createChannelSplitter(2),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0)):(this.input.connect(this.left),this.input.connect(this.right)),this.output=e.createChannelMerger(2),this.left.connect(this.output,0,1),this.right.connect(this.output,0,0),this.output.connect(i)},p5.Panner.prototype.pan=function(t,i){var o=i||0,n=e.currentTime+o,r=(t+1)/2,s=Math.cos(r*Math.PI/2),a=Math.sin(r*Math.PI/2);this.left.gain.linearRampToValueAtTime(a,n),this.right.gain.linearRampToValueAtTime(s,n)},p5.Panner.prototype.inputChannels=function(t){1===t?(this.input.disconnect(),this.input.connect(this.left),this.input.connect(this.right)):2===t&&(this.splitter=e.createChannelSplitter(2),this.input.disconnect(),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0))},p5.Panner.prototype.connect=function(t){this.output.connect(t)},p5.Panner.prototype.disconnect=function(){this.output.disconnect()}),p5.Panner3D=function(t,i){var o=e.createPanner();return o.panningModel="HRTF",o.distanceModel="linear",o.setPosition(0,0,0),t.connect(o),o.connect(i),o.pan=function(t,e,i){o.setPosition(t,e,i)},o}}(master);var soundfile;soundfile=function(){"use strict";function t(t,e){for(var i={},o=t.length,n=0;o>n;n++){if(t[n]>e){var r=t[n],s=new c(r,n);i[n]=s,n+=6e3}n++}return i}function e(t){for(var e=[],i=Object.keys(t).sort(),o=0;on;n++){var r=t[i[o]],s=t[i[o+n]];if(r&&s){var a=r.sampleIndex,u=s.sampleIndex,c=u-a;c>0&&r.intervals.push(c);var p=e.some(function(t){return t.interval===c?(t.count++,t):void 0});p||e.push({interval:c,count:1})}}return e}function i(t,e){var i=[];return t.forEach(function(t){try{var o=Math.abs(60/(t.interval/e));o=n(o);var r=i.some(function(e){return e.tempo===o?e.count+=t.count:void 0});if(!r){if(isNaN(o))return;i.push({tempo:Math.round(o),count:t.count})}}catch(s){throw s}}),i}function o(t,e,i,o){for(var r=[],s=Object.keys(t).sort(),a=0;a.01?!0:void 0})}function n(t){if(isFinite(t)&&0!=t){for(;90>t;)t*=2;for(;t>180&&t>90;)t/=2;return t}}var r=errorHandler,s=master,a=s.audiocontext;p5.SoundFile=function(t,e,i,o){if("undefined"!=typeof t){if("string"==typeof t||"string"==typeof t[0]){var n=p5.prototype._checkFileFormats(t);this.url=n}else if("object"==typeof t&&!(window.File&&window.FileReader&&window.FileList&&window.Blob))throw"Unable to load file because the File API is not supported";t.file&&(t=t.file),this.file=t}this._onended=function(){},this._looping=!1,this._playing=!1,this._paused=!1,this._pauseTime=0,this._cues=[],this._lastPos=0,this._counterNode,this._scopeNode,this.bufferSourceNodes=[],this.bufferSourceNode=null,this.buffer=null,this.playbackRate=1,this.gain=1,this.input=s.audiocontext.createGain(),this.output=s.audiocontext.createGain(),this.reversed=!1,this.startTime=0,this.endTime=null,this.pauseTime=0,this.mode="sustain",this.startMillis=null,this.panPosition=0,this.panner=new p5.Panner(this.output,s.input,2),(this.url||this.file)&&this.load(e,i),s.soundArray.push(this),this._whileLoading="function"==typeof o?o:function(){}},p5.prototype.registerPreloadMethod("loadSound",p5.prototype),p5.prototype.loadSound=function(t,e,i,o){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var n=new p5.SoundFile(t,e,i,o);return n},p5.SoundFile.prototype.load=function(t,e){var i=this,o=(new Error).stack;if(void 0!=this.url&&""!=this.url){var n=new XMLHttpRequest;n.addEventListener("progress",function(t){i._updateProgress(t)},!1),n.open("GET",this.url,!0),n.responseType="arraybuffer",n.onload=function(){if(200==n.status)a.decodeAudioData(n.response,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)},function(){var t=new r("decodeAudioData",o,i.url),n="AudioContext error at decodeAudioData for "+i.url;e?(t.msg=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)});else{var s=new r("loadSound",o,i.url),u="Unable to load "+i.url+". The request status was: "+n.status+" ("+n.statusText+")";e?(s.message=u,e(s)):console.error(u+"\n The error stack trace includes: \n"+s.stack)}},n.onerror=function(){var t=new r("loadSound",o,i.url),n="There was no response from the server at "+i.url+". Check the url and internet connectivity.";e?(t.message=n,e(t)):console.error(n+"\n The error stack trace includes: \n"+t.stack)},n.send()}else if(void 0!=this.file){var s=new FileReader,i=this;s.onload=function(){a.decodeAudioData(s.result,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)})},s.onerror=function(t){onerror&&onerror(t)},s.readAsArrayBuffer(this.file)}},p5.SoundFile.prototype._updateProgress=function(t){if(t.lengthComputable){var e=Math.log(t.loaded/t.total*9.9);this._whileLoading(e)}else this._whileLoading("size unknown")},p5.SoundFile.prototype.isLoaded=function(){return this.buffer?!0:!1},p5.SoundFile.prototype.play=function(t,e,i,o,n){var r,a,u=this,c=s.audiocontext.currentTime,t=t||0;if(0>t&&(t=0),t+=c,!this.buffer)throw"not ready to play file, buffer has yet to load. Try preload()";if(this._pauseTime=0,"restart"===this.mode&&this.buffer&&this.bufferSourceNode){var c=s.audiocontext.currentTime;this.bufferSourceNode.stop(t),this._counterNode.stop(t)}if(this.bufferSourceNode=this._initSourceNode(),this._counterNode&&(this._counterNode=void 0),this._counterNode=this._initCounterNode(),o){if(!(o>=0&&o0&&this.reversed&&this.reverseBuffer();if(this.bufferSourceNode){var n=s.audiocontext.currentTime;this.bufferSourceNode.playbackRate.cancelScheduledValues(n),this.bufferSourceNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n),this._counterNode.playbackRate.cancelScheduledValues(n),this._counterNode.playbackRate.linearRampToValueAtTime(Math.abs(e),n)}}},p5.SoundFile.prototype.setPitch=function(t){var e=midiToFreq(t)/midiToFreq(60);this.rate(e)},p5.SoundFile.prototype.getPlaybackRate=function(){return this.playbackRate},p5.SoundFile.prototype.duration=function(){return this.buffer?this.buffer.duration:0},p5.SoundFile.prototype.currentTime=function(){return this._pauseTime>0?this._pauseTime:this._lastPos/a.sampleRate},p5.SoundFile.prototype.jump=function(t,e){if(0>t||t>this.buffer.duration)throw"jump time out of range";if(e>this.buffer.duration-t)throw"end time out of range";var i=t||0,o=e||this.buffer.duration-t;this.isPlaying()&&this.stop(),this.play(0,this.playbackRate,this.output.gain.value,i,o)},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,i=e.length/t,o=~~(i/10)||1,n=e.numberOfChannels,r=new Float32Array(Math.round(t)),s=0;n>s;s++)for(var a=e.getChannelData(s),u=0;t>u;u++){for(var c=~~(u*i),p=~~(c+i),h=0,l=c;p>l;l+=o){var f=a[l];f>h?h=f:-f>h&&(h=f)}(0===s||Math.abs(h)>r[u])&&(r[u]=h)}return r}},p5.SoundFile.prototype.reverseBuffer=function(){var t=this.getVolume();if(this.setVolume(0,.01,0),this.pause(),!this.buffer)throw"SoundFile is not done loading";for(var e=0;en;n++){var r=o.getChannelData(n);r.set(t[n])}this.buffer=o,this.panner.inputChannels(e)},p5.SoundFile.prototype._initCounterNode=function(){var t=this,e=a.currentTime,i=a.createBufferSource();return t._scopeNode&&(t._scopeNode.disconnect(),t._scopeNode.onaudioprocess=void 0,t._scopeNode=null),t._scopeNode=a.createScriptProcessor(256,1,1),i.buffer=u(t.buffer),i.playbackRate.setValueAtTime(t.playbackRate,e),i.connect(t._scopeNode),t._scopeNode.connect(p5.soundOut._silentNode),t._scopeNode.onaudioprocess=function(e){var i=e.inputBuffer.getChannelData(0);t._lastPos=i[i.length-1]||0,t._onTimeUpdate(t._lastPos)},i},p5.SoundFile.prototype._initSourceNode=function(){var t=this,e=a.currentTime,i=a.createBufferSource();return i.buffer=t.buffer,i.playbackRate.setValueAtTime(t.playbackRate,e),i};var u=function(t){for(var e=new Float32Array(t.length),i=a.createBuffer(1,t.length,44100),o=0;o=d);var u=e(p),c=i(u,s.sampleRate),h=c.sort(function(t,e){return e.count-t.count}).splice(0,5);this.tempo=h[0].tempo;var l=5,y=o(p,h[0].tempo,s.sampleRate,l);n(y)}};var c=function(t,e){this.sampleIndex=e,this.amplitude=t,this.tempos=[],this.intervals=[]},p=[];p5.SoundFile.prototype.addCue=function(t,e,i){var o=this._cueIDCounter++,n=new h(e,t,o,i);return this._cues.push(n),o},p5.SoundFile.prototype.removeCue=function(t){for(var e=this._cues.length,i=0;e>i;i++){var o=this._cues[i];o.id===t&&this.cues.splice(i,1)}0===this._cues.length},p5.SoundFile.prototype.clearCues=function(){this._cues=[]},p5.SoundFile.prototype._onTimeUpdate=function(t){for(var e=t/this.buffer.sampleRate,i=this._cues.length,o=0;i>o;o++){var n=this._cues[o],r=n.time,s=n.val;this._prevTime=r&&n.callback(s)}this._prevTime=e};var h=function(t,e,i,o){this.callback=t,this.time=e,this.id=i,this.val=o}}(sndcore,errorHandler,master);var amplitude;amplitude=function(){"use strict";var t=master;p5.Amplitude=function(e){this.bufferSize=2048,this.audiocontext=t.audiocontext,this.processor=this.audiocontext.createScriptProcessor(this.bufferSize,2,1),this.input=this.processor,this.output=this.audiocontext.createGain(),this.smoothing=e||0,this.volume=0,this.average=0,this.stereoVol=[0,0],this.stereoAvg=[0,0],this.stereoVolNorm=[0,0],this.volMax=.001,this.normalize=!1,this.processor.onaudioprocess=this._audioProcess.bind(this),this.processor.connect(this.output),this.output.gain.value=0,this.output.connect(this.audiocontext.destination),t.meter.connect(this.processor),t.soundArray.push(this)},p5.Amplitude.prototype.setInput=function(e,i){t.meter.disconnect(),i&&(this.smoothing=i),null==e?(console.log("Amplitude input source is not ready! Connecting to master output instead"),t.meter.connect(this.processor)):e instanceof p5.Signal?e.output.connect(this.processor):e?(e.connect(this.processor),this.processor.disconnect(),this.processor.connect(this.output)):t.meter.connect(this.processor)},p5.Amplitude.prototype.connect=function(e){this.output.connect(e?e.hasOwnProperty("input")?e.input:e:this.panner.connect(t.input))},p5.Amplitude.prototype.disconnect=function(){this.output.disconnect()},p5.Amplitude.prototype._audioProcess=function(t){for(var e=0;ea;a++)i=o[a],this.normalize?(r+=Math.max(Math.min(i/this.volMax,1),-1),s+=Math.max(Math.min(i/this.volMax,1),-1)*Math.max(Math.min(i/this.volMax,1),-1)):(r+=i,s+=i*i);var u=r/n,c=Math.sqrt(s/n);this.stereoVol[e]=Math.max(c,this.stereoVol[e]*this.smoothing),this.stereoAvg[e]=Math.max(u,this.stereoVol[e]*this.smoothing),this.volMax=Math.max(this.stereoVol[e],this.volMax)}var p=this,h=this.stereoVol.reduce(function(t,e,i){return p.stereoVolNorm[i-1]=Math.max(Math.min(p.stereoVol[i-1]/p.volMax,1),0),p.stereoVolNorm[i]=Math.max(Math.min(p.stereoVol[i]/p.volMax,1),0),t+e});this.volume=h/this.stereoVol.length,this.volNorm=Math.max(Math.min(this.volume/this.volMax,1),0)},p5.Amplitude.prototype.getLevel=function(t){return"undefined"!=typeof t?this.normalize?this.stereoVolNorm[t]:this.stereoVol[t]:this.normalize?this.volNorm:this.volume},p5.Amplitude.prototype.toggleNormalize=function(t){this.normalize="boolean"==typeof t?t:!this.normalize},p5.Amplitude.prototype.smooth=function(t){t>=0&&1>t?this.smoothing=t:console.log("Error: smoothing must be between 0 and 1")},p5.Amplitude.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.output.disconnect(),this.input=this.processor=void 0,this.output=void 0}}(master);var fft;fft=function(){"use strict";var t=master;p5.FFT=function(e,i){this.smoothing=e||.8,this.bins=i||1024;var o=2*i||2048;this.input=this.analyser=t.audiocontext.createAnalyser(),t.fftMeter.connect(this.analyser),this.analyser.smoothingTimeConstant=this.smoothing,this.analyser.fftSize=o,this.freqDomain=new Uint8Array(this.analyser.frequencyBinCount),this.timeDomain=new Uint8Array(this.analyser.frequencyBinCount),this.bass=[20,140],this.lowMid=[140,400],this.mid=[400,2600],this.highMid=[2600,5200],this.treble=[5200,14e3],t.soundArray.push(this)},p5.FFT.prototype.setInput=function(e){e?(e.output?e.output.connect(this.analyser):e.connect&&e.connect(this.analyser),t.fftMeter.disconnect()):t.fftMeter.connect(this.analyser)},p5.FFT.prototype.waveform=function(){for(var t,e,i,r=0;ri){var n=i;i=e,e=n}for(var r=Math.round(e/o*this.freqDomain.length),s=Math.round(i/o*this.freqDomain.length),a=0,u=0,c=r;s>=c;c++)a+=this.freqDomain[c],u+=1;var p=a/u;return p}throw"invalid input for getEnergy()"}var h=Math.round(e/o*this.freqDomain.length);return this.freqDomain[h]},p5.FFT.prototype.getFreq=function(t,e){console.log("getFreq() is deprecated. Please use getEnergy() instead.");var i=this.getEnergy(t,e);return i},p5.FFT.prototype.smooth=function(t){t&&(this.smoothing=t),this.analyser.smoothingTimeConstant=t},p5.FFT.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.analyser.disconnect(),this.analyser=void 0};var e=function(t){t.freqDomain instanceof Float32Array==!1&&(t.freqDomain=new Float32Array(t.analyser.frequencyBinCount))},i=function(t){t.freqDomain instanceof Uint8Array==!1&&(t.freqDomain=new Uint8Array(t.analyser.frequencyBinCount))},o=function(t){t.timeDomain instanceof Float32Array==!1&&(t.timeDomain=new Float32Array(t.analyser.frequencyBinCount))},n=function(t){t.timeDomain instanceof Uint8Array==!1&&(t.timeDomain=new Uint8Array(t.analyser.frequencyBinCount))}}(master);var Tone_core_Tone;Tone_core_Tone=function(){"use strict";function t(t){return void 0===t}function e(t){return"function"==typeof t}var i;if(t(window.AudioContext)&&(window.AudioContext=window.webkitAudioContext),t(window.OfflineAudioContext)&&(window.OfflineAudioContext=window.webkitOfflineAudioContext),t(AudioContext))throw new Error("Web Audio is not supported in this browser");i=new AudioContext,e(AudioContext.prototype.createGain)||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),e(AudioContext.prototype.createDelay)||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),e(AudioContext.prototype.createPeriodicWave)||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),e(AudioBufferSourceNode.prototype.start)||(AudioBufferSourceNode.prototype.start=AudioBufferSourceNode.prototype.noteGrainOn),e(AudioBufferSourceNode.prototype.stop)||(AudioBufferSourceNode.prototype.stop=AudioBufferSourceNode.prototype.noteOff),e(OscillatorNode.prototype.start)||(OscillatorNode.prototype.start=OscillatorNode.prototype.noteOn),e(OscillatorNode.prototype.stop)||(OscillatorNode.prototype.stop=OscillatorNode.prototype.noteOff),e(OscillatorNode.prototype.setPeriodicWave)||(OscillatorNode.prototype.setPeriodicWave=OscillatorNode.prototype.setWaveTable),AudioNode.prototype._nativeConnect=AudioNode.prototype.connect,AudioNode.prototype.connect=function(e,i,o){if(e.input)Array.isArray(e.input)?(t(o)&&(o=0),this.connect(e.input[o])):this.connect(e.input,i,o);else try{e instanceof AudioNode?this._nativeConnect(e,i,o):this._nativeConnect(e,i)}catch(n){throw new Error("error connecting to node: "+e)}};var o=function(e,i){t(e)||1===e?this.input=this.context.createGain():e>1&&(this.input=new Array(e)),t(i)||1===i?this.output=this.context.createGain():i>1&&(this.output=new Array(e))};o.prototype.set=function(e,i,n){if(this.isObject(e))n=i;else if(this.isString(e)){var r={}; -r[e]=i,e=r}for(var s in e){i=e[s];var a=this;if(-1!==s.indexOf(".")){for(var u=s.split("."),c=0;c1)for(var t=arguments[0],e=1;e1)for(var e=1;e0)for(var t=this,e=0;e0)for(var t=0;te;e++){var o=e/i*2-1;this._curve[e]=t(o,e)}return this._shaper.curve=this._curve,this},Object.defineProperty(t.WaveShaper.prototype,"curve",{get:function(){return this._shaper.curve},set:function(t){this._curve=new Float32Array(t),this._shaper.curve=this._curve}}),Object.defineProperty(t.WaveShaper.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){if(-1===["none","2x","4x"].indexOf(t))throw new Error("invalid oversampling: "+t);this._shaper.oversample=t}}),t.WaveShaper.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null,this},t.WaveShaper}(Tone_core_Tone);var Tone_core_Type;Tone_core_Type=function(Tone){"use strict";function getTransportBpm(){return Tone.Transport&&Tone.Transport.bpm?Tone.Transport.bpm.value:120}function getTransportTimeSignature(){return Tone.Transport&&Tone.Transport.timeSignature?Tone.Transport.timeSignature:4}function toNotationHelper(t,e,i,o){for(var n=this.toSeconds(t),r=this.notationToSeconds(o[o.length-1],e,i),s="",a=0;a1-c%1&&(c+=p),c=Math.floor(c),c>0){if(s+=1===c?o[a]:c.toString()+"*"+o[a],n-=c*u,r>n)break;s+=" + "}}return""===s&&(s="0"),s}Tone.Type={Default:"number",Time:"time",Frequency:"frequency",NormalRange:"normalRange",AudioRange:"audioRange",Decibels:"db",Interval:"interval",BPM:"bpm",Positive:"positive",Cents:"cents",Degrees:"degrees",MIDI:"midi",TransportTime:"transportTime",Ticks:"tick",Note:"note",Milliseconds:"milliseconds",Notation:"notation"},Tone.prototype.isNowRelative=function(){var t=new RegExp(/^\s*\+(.)+/i);return function(e){return t.test(e)}}(),Tone.prototype.isTicks=function(){var t=new RegExp(/^\d+i$/i);return function(e){return t.test(e)}}(),Tone.prototype.isNotation=function(){var t=new RegExp(/^[0-9]+[mnt]$/i);return function(e){return t.test(e)}}(),Tone.prototype.isTransportTime=function(){var t=new RegExp(/^(\d+(\.\d+)?\:){1,2}(\d+(\.\d+)?)?$/i);return function(e){return t.test(e)}}(),Tone.prototype.isNote=function(){var t=new RegExp(/^[a-g]{1}(b|#|x|bb)?-?[0-9]+$/i);return function(e){return t.test(e)}}(),Tone.prototype.isFrequency=function(){var t=new RegExp(/^\d*\.?\d+hz$/i);return function(e){return t.test(e)}}(),Tone.prototype.notationToSeconds=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=60/e;"1n"===t&&(t="1m");var n=parseInt(t,10),r=0;0===n&&(r=0);var s=t.slice(-1);return r="t"===s?4/n*2/3:"n"===s?4/n:"m"===s?n*i:0,o*r},Tone.prototype.transportTimeToSeconds=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=0,n=0,r=0,s=t.split(":");2===s.length?(o=parseFloat(s[0]),n=parseFloat(s[1])):1===s.length?n=parseFloat(s[0]):3===s.length&&(o=parseFloat(s[0]),n=parseFloat(s[1]),r=parseFloat(s[2]));var a=o*i+n+r/4;return a*(60/e)},Tone.prototype.ticksToSeconds=function(t,e){if(this.isUndef(Tone.Transport))return 0;t=parseFloat(t),e=this.defaultArg(e,getTransportBpm());var i=60/e/Tone.Transport.PPQ;return i*t},Tone.prototype.frequencyToSeconds=function(t){return 1/parseFloat(t)},Tone.prototype.samplesToSeconds=function(t){return t/this.context.sampleRate},Tone.prototype.secondsToSamples=function(t){return t*this.context.sampleRate},Tone.prototype.secondsToTransportTime=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var o=60/e,n=t/o,r=Math.floor(n/i),s=n%1*4;n=Math.floor(n)%i;var a=[r,n,s];return a.join(":")},Tone.prototype.secondsToFrequency=function(t){return 1/t},Tone.prototype.toTransportTime=function(t,e,i){var o=this.toSeconds(t);return this.secondsToTransportTime(o,e,i)},Tone.prototype.toFrequency=function(t,e){return this.isFrequency(t)?parseFloat(t):this.isNotation(t)||this.isTransportTime(t)?this.secondsToFrequency(this.toSeconds(t,e)):this.isNote(t)?this.noteToFrequency(t):t},Tone.prototype.toTicks=function(t){if(this.isUndef(Tone.Transport))return 0;var e=Tone.Transport.bpm.value,i=0;if(this.isNowRelative(t))t=t.replace("+",""),i=Tone.Transport.ticks;else if(this.isUndef(t))return Tone.Transport.ticks;var o=this.toSeconds(t),n=60/e,r=o/n,s=r*Tone.Transport.PPQ;return Math.round(s+i)},Tone.prototype.toSamples=function(t){var e=this.toSeconds(t);return Math.round(e*this.context.sampleRate)},Tone.prototype.toSeconds=function(time,now){if(now=this.defaultArg(now,this.now()),this.isNumber(time))return time;if(this.isString(time)){var plusTime=0;this.isNowRelative(time)&&(time=time.replace("+",""),plusTime=now);var betweenParens=time.match(/\(([^)(]+)\)/g);if(betweenParens)for(var j=0;j0&&(toQuantize="+"+toQuantize,plusTime=0);var subdivision=quantizationSplit[1].trim();time=Tone.Transport.quantize(toQuantize,subdivision)}else{var components=time.split(/[\(\)\-\+\/\*]/);if(components.length>1){for(var originalTime=time,i=0;io&&(i+=-12*o);var n=scaleIndexToNote[i%12];return n+o.toString()},Tone.prototype.intervalToFrequencyRatio=function(t){return Math.pow(2,t/12)},Tone.prototype.midiToNote=function(t){var e=Math.floor(t/12)-1,i=t%12;return scaleIndexToNote[i]+e},Tone.prototype.noteToMidi=function(t){var e=t.split(/(\d+)/);if(3===e.length){var i=noteToScaleIndex[e[0].toLowerCase()],o=e[1];return i+12*(parseInt(o,10)+1)}return 0},Tone.prototype.midiToFrequency=function(t){return Tone.A4*Math.pow(2,(t-69)/12)},Tone}(Tone_core_Tone);var Tone_core_Param;Tone_core_Param=function(t){"use strict";return t.Param=function(){var e=this.optionsObject(arguments,["param","units","convert"],t.Param.defaults);this._param=this.input=e.param,this.units=e.units,this.convert=e.convert,this.overridden=!1,this.isUndef(e.value)||(this.value=e.value)},t.extend(t.Param),t.Param.defaults={units:t.Type.Default,convert:!0,param:void 0},Object.defineProperty(t.Param.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(t){var e=this._fromUnits(t);this._param.value=e}}),t.Param.prototype._fromUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Time:return this.toSeconds(e);case t.Type.Frequency:return this.toFrequency(e);case t.Type.Decibels:return this.dbToGain(e);case t.Type.NormalRange:return Math.min(Math.max(e,0),1);case t.Type.AudioRange:return Math.min(Math.max(e,-1),1);case t.Type.Positive:return Math.max(e,0);default:return e}},t.Param.prototype._toUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Decibels:return this.gainToDb(e);default:return e}},t.Param.prototype._minOutput=1e-5,t.Param.prototype.setValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.setValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.setRampPoint=function(t){t=this.defaultArg(t,this.now());var e=this._param.value;return this._param.setValueAtTime(e,t),this},t.Param.prototype.linearRampToValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.linearRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValueAtTime=function(t,e){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),this._param.exponentialRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValue=function(t,e){var i=this.now(),o=this.value;return this.setValueAtTime(Math.max(o,this._minOutput),i),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.linearRampToValue=function(t,e){var i=this.now();return this.setRampPoint(i),this.linearRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.setTargetAtTime=function(t,e,i){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),i=Math.max(this._minOutput,i),this._param.setTargetAtTime(t,this.toSeconds(e),i),this},t.Param.prototype.setValueCurveAtTime=function(t,e,i){for(var o=0;o0?this.oscillator.frequency.exponentialRampToValueAtTime(e,o+i+n):this.oscillator.frequency.linearRampToValueAtTime(e,o+i+n),this.phaseAmount&&this.phase(this.phaseAmount)}},p5.Oscillator.prototype.getFreq=function(){return this.oscillator.frequency.value},p5.Oscillator.prototype.setType=function(t){this.oscillator.type=t},p5.Oscillator.prototype.getType=function(){return this.oscillator.type},p5.Oscillator.prototype.connect=function(e){e?e.hasOwnProperty("input")?(this.panner.connect(e.input),this.connection=e.input):(this.panner.connect(e),this.connection=e):this.panner.connect(t.input)},p5.Oscillator.prototype.disconnect=function(){this.output.disconnect(),this.panner.disconnect(),this.output.connect(this.panner),this.oscMods=[]},p5.Oscillator.prototype.pan=function(t,e){this.panPosition=t,this.panner.pan(t,e)},p5.Oscillator.prototype.getPan=function(){return this.panPosition},p5.Oscillator.prototype.dispose=function(){var e=t.soundArray.indexOf(this);if(t.soundArray.splice(e,1),this.oscillator){var i=t.audiocontext.currentTime;this.stop(i),this.disconnect(),this.oscillator.disconnect(),this.panner=null,this.oscillator=null}this.osc2&&this.osc2.dispose()},p5.Oscillator.prototype.phase=function(e){var i=p5.prototype.map(e,0,1,0,1/this.f),o=t.audiocontext.currentTime;this.phaseAmount=e,this.dNode||(this.dNode=t.audiocontext.createDelay(),this.oscillator.disconnect(),this.oscillator.connect(this.dNode),this.dNode.connect(this.output)),this.dNode.delayTime.setValueAtTime(i,o)};var n=function(t,e,i,o,n){var r=t.oscillator;for(var s in t.mathOps)t.mathOps[s]instanceof n&&(r.disconnect(),t.mathOps[s].dispose(),i=s,i0&&(r=t.mathOps[s-1]),r.disconnect(),r.connect(e),e.connect(o),t.mathOps[i]=e,t};p5.Oscillator.prototype.add=function(t){var i=new e(t),o=this.mathOps.length-1,r=this.output;return n(this,i,o,r,e)},p5.Oscillator.prototype.mult=function(t){var e=new i(t),o=this.mathOps.length-1,r=this.output;return n(this,e,o,r,i)},p5.Oscillator.prototype.scale=function(t,e,i,r){var s,a;4===arguments.length?(s=p5.prototype.map(i,t,e,0,1)-.5,a=p5.prototype.map(r,t,e,0,1)-.5):(s=arguments[0],a=arguments[1]);var u=new o(s,a),c=this.mathOps.length-1,p=this.output;return n(this,u,c,p,o)},p5.SinOsc=function(t){p5.Oscillator.call(this,t,"sine")},p5.SinOsc.prototype=Object.create(p5.Oscillator.prototype),p5.TriOsc=function(t){p5.Oscillator.call(this,t,"triangle")},p5.TriOsc.prototype=Object.create(p5.Oscillator.prototype),p5.SawOsc=function(t){p5.Oscillator.call(this,t,"sawtooth")},p5.SawOsc.prototype=Object.create(p5.Oscillator.prototype),p5.SqrOsc=function(t){p5.Oscillator.call(this,t,"square")},p5.SqrOsc.prototype=Object.create(p5.Oscillator.prototype)}(master,Tone_signal_Signal,Tone_signal_Add,Tone_signal_Multiply,Tone_signal_Scale);var Tone_core_Timeline;Tone_core_Timeline=function(t){"use strict";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.addEvent=function(t){if(this.isUndef(t.time))throw new Error("events must have a time attribute");if(t.time=this.toSeconds(t.time),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.removeEvent=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.getEvent=function(t){t=this.toSeconds(t);var e=this._search(t);return-1!==e?this._timeline[e]:null},t.Timeline.prototype.getEventAfter=function(t){t=this.toSeconds(t);var e=this._search(t);return e+1=0?this._timeline[e-1]:null},t.Timeline.prototype.cancel=function(t){if(this._timeline.length>1){t=this.toSeconds(t);var e=this._search(t);this._timeline=e>=0?this._timeline.slice(0,e):[]}else 1===this._timeline.length&&this._timeline[0].time>=t&&(this._timeline=[]);return this},t.Timeline.prototype.cancelBefore=function(t){if(this._timeline.length){t=this.toSeconds(t);var e=this._search(t);e>=0&&(this._timeline=this._timeline.slice(e+1))}return this},t.Timeline.prototype._search=function(t){for(var e=0,i=this._timeline.length,o=i;o>=e&&i>e;){var n=Math.floor(e+(o-e)/2),r=this._timeline[n];if(r.time===t){for(var s=n;st?o=n-1:r.time=o;o++)t(this._timeline[o]);if(this._iterating=!1,this._toRemove.length>0){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){t=this.toSeconds(t);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}(Tone_core_Tone);var Tone_signal_TimelineSignal;Tone_signal_TimelineSignal=function(t){"use strict";return t.TimelineSignal=function(){var e=this.optionsObject(arguments,["value","units"],t.Signal.defaults);t.Signal.apply(this,e),e.param=this._param,t.Param.call(this,e),this._events=new t.Timeline(10),this._initial=this._fromUnits(this._param.value)},t.extend(t.TimelineSignal,t.Param),t.TimelineSignal.Type={Linear:"linear",Exponential:"exponential",Target:"target",Set:"set"},Object.defineProperty(t.TimelineSignal.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(t){var e=this._fromUnits(t);this._initial=e,this._param.value=e}}),t.TimelineSignal.prototype.setValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.addEvent({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.addEvent({type:t.TimelineSignal.Type.Linear,value:e,time:i}),this._param.linearRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.exponentialRampToValueAtTime=function(e,i){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),i=this.toSeconds(i),this._events.addEvent({type:t.TimelineSignal.Type.Exponential,value:e,time:i}),this._param.exponentialRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.setTargetAtTime=function(e,i,o){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),o=Math.max(this._minOutput,o),i=this.toSeconds(i),this._events.addEvent({type:t.TimelineSignal.Type.Target,value:e,time:i,constant:o}),this._param.setTargetAtTime(e,i,o),this},t.TimelineSignal.prototype.cancelScheduledValues=function(t){return this._events.cancel(t),this._param.cancelScheduledValues(this.toSeconds(t)),this},t.TimelineSignal.prototype.setRampPoint=function(e){e=this.toSeconds(e);var i=this.getValueAtTime(e),o=this._searchAfter(e); -return o&&(this.cancelScheduledValues(e),o.type===t.TimelineSignal.Type.Linear?this.linearRampToValueAtTime(i,e):o.type===t.TimelineSignal.Type.Exponential&&this.exponentialRampToValueAtTime(i,e)),this.setValueAtTime(i,e),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.getEvent(t)},t.TimelineSignal.prototype._searchAfter=function(t){return this._events.getEventAfter(t)},t.TimelineSignal.prototype.getValueAtTime=function(e){var i=this._searchAfter(e),o=this._searchBefore(e),n=this._initial;if(null===o)n=this._initial;else if(o.type===t.TimelineSignal.Type.Target){var r,s=this._events.getEventBefore(o.time);r=null===s?this._initial:s.value,n=this._exponentialApproach(o.time,r,o.value,o.constant,e)}else n=null===i?o.value:i.type===t.TimelineSignal.Type.Linear?this._linearInterpolate(o.time,o.value,i.time,i.value,e):i.type===t.TimelineSignal.Type.Exponential?this._exponentialInterpolate(o.time,o.value,i.time,i.value,e):o.value;return n},t.TimelineSignal.prototype.connect=t.SignalBase.prototype.connect,t.TimelineSignal.prototype._exponentialApproach=function(t,e,i,o,n){return i+(e-i)*Math.exp(-(n-t)/o)},t.TimelineSignal.prototype._linearInterpolate=function(t,e,i,o,n){return e+(o-e)*((n-t)/(i-t))},t.TimelineSignal.prototype._exponentialInterpolate=function(t,e,i,o,n){return e=Math.max(this._minOutput,e),e*Math.pow(o/e,(n-t)/(i-t))},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}(Tone_core_Tone,Tone_signal_Signal);var env;env=function(){"use strict";var t=master,e=Tone_signal_Add,i=Tone_signal_Multiply,o=Tone_signal_Scale,n=Tone_signal_TimelineSignal,r=Tone_core_Tone;r.setContext(t.audiocontext),p5.Env=function(e,i,o,r,s,a,u,c){var p=t.audiocontext.currentTime;this.aTime=e,this.aLevel=i,this.dTime=o||0,this.dLevel=r||0,this.sTime=s||0,this.sLevel=a||0,this.rTime=u||0,this.rLevel=c||0,this.output=t.audiocontext.createGain(),this.control=new n,this.control.connect(this.output),this.control.setValueAtTime(0,p),this.connection=null,this.mathOps=[this.control],this.sourceToClear=null,this.wasTriggered=!1,t.soundArray.push(this)},p5.Env.prototype.set=function(t,e,i,o,n,r,s,a){this.aTime=t,this.aLevel=e,this.dTime=i||0,this.dLevel=o||0,this.sTime=n||0,this.sLevel=r||0,this.rTime=s||0,this.rLevel=a||0},p5.Env.prototype.setInput=function(){for(var t=0;tn;n++)o[n]=1;var r=t.createBufferSource();return r.buffer=i,r.loop=!0,r}var e=master;p5.Pulse=function(i,o){p5.Oscillator.call(this,i,"sawtooth"),this.w=o||0,this.osc2=new p5.SawOsc(i),this.dNode=e.audiocontext.createDelay(),this.dcOffset=t(),this.dcGain=e.audiocontext.createGain(),this.dcOffset.connect(this.dcGain),this.dcGain.connect(this.output),this.f=i||440;var n=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=n,this.dcGain.gain.value=1.7*(.5-this.w),this.osc2.disconnect(),this.osc2.panner.disconnect(),this.osc2.amp(-1),this.osc2.output.connect(this.dNode),this.dNode.connect(this.output),this.output.gain.value=1,this.output.connect(this.panner)},p5.Pulse.prototype=Object.create(p5.Oscillator.prototype),p5.Pulse.prototype.width=function(t){if("number"==typeof t){if(1>=t&&t>=0){this.w=t;var e=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=e}this.dcGain.gain.value=1.7*(.5-this.w)}else{t.connect(this.dNode.delayTime);var i=new p5.SignalAdd(-.5);i.setInput(t),i=i.mult(-1),i=i.mult(1.7),i.connect(this.dcGain.gain)}},p5.Pulse.prototype.start=function(i,o){var n=e.audiocontext.currentTime,r=o||0;if(!this.started){var s=i||this.f,a=this.oscillator.type;this.oscillator=e.audiocontext.createOscillator(),this.oscillator.frequency.setValueAtTime(s,n),this.oscillator.type=a,this.oscillator.connect(this.output),this.oscillator.start(r+n),this.osc2.oscillator=e.audiocontext.createOscillator(),this.osc2.oscillator.frequency.setValueAtTime(s,r+n),this.osc2.oscillator.type=a,this.osc2.oscillator.connect(this.osc2.output),this.osc2.start(r+n),this.freqNode=[this.oscillator.frequency,this.osc2.oscillator.frequency],this.dcOffset=t(),this.dcOffset.connect(this.dcGain),this.dcOffset.start(r+n),void 0!==this.mods&&void 0!==this.mods.frequency&&(this.mods.frequency.connect(this.freqNode[0]),this.mods.frequency.connect(this.freqNode[1])),this.started=!0,this.osc2.started=!0}},p5.Pulse.prototype.stop=function(t){if(this.started){var i=t||0,o=e.audiocontext.currentTime;this.oscillator.stop(i+o),this.osc2.oscillator.stop(i+o),this.dcOffset.stop(i+o),this.started=!1,this.osc2.started=!1}},p5.Pulse.prototype.freq=function(t,i,o){if("number"==typeof t){this.f=t;var n=e.audiocontext.currentTime,i=i||0,o=o||0,r=this.oscillator.frequency.value;this.oscillator.frequency.cancelScheduledValues(n),this.oscillator.frequency.setValueAtTime(r,n+o),this.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n),this.osc2.oscillator.frequency.cancelScheduledValues(n),this.osc2.oscillator.frequency.setValueAtTime(r,n+o),this.osc2.oscillator.frequency.exponentialRampToValueAtTime(t,o+i+n),this.freqMod&&(this.freqMod.output.disconnect(),this.freqMod=null)}else t.output&&(t.output.disconnect(),t.output.connect(this.oscillator.frequency),t.output.connect(this.osc2.oscillator.frequency),this.freqMod=t)}}(master,oscillator);var noise;noise=function(){"use strict";var t=master;p5.Noise=function(){p5.Oscillator.call(this),delete this.f,delete this.freq,delete this.oscillator,this.buffer=e},p5.Noise.prototype=Object.create(p5.Oscillator.prototype);var e=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),o=i.getChannelData(0),n=0;e>n;n++)o[n]=2*Math.random()-1;return i.type="white",i}(),i=function(){var e,i,o,n,r,s,a,u=2*t.audiocontext.sampleRate,c=t.audiocontext.createBuffer(1,u,t.audiocontext.sampleRate),p=c.getChannelData(0);e=i=o=n=r=s=a=0;for(var h=0;u>h;h++){var l=2*Math.random()-1;e=.99886*e+.0555179*l,i=.99332*i+.0750759*l,o=.969*o+.153852*l,n=.8665*n+.3104856*l,r=.55*r+.5329522*l,s=-.7616*s-.016898*l,p[h]=e+i+o+n+r+s+a+.5362*l,p[h]*=.11,a=.115926*l}return c.type="pink",c}(),o=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),o=i.getChannelData(0),n=0,r=0;e>r;r++){var s=2*Math.random()-1;o[r]=(n+.02*s)/1.02,n=o[r],o[r]*=3.5}return i.type="brown",i}();p5.Noise.prototype.setType=function(n){switch(n){case"white":this.buffer=e;break;case"pink":this.buffer=i;break;case"brown":this.buffer=o;break;default:this.buffer=e}if(this.started){var r=t.audiocontext.currentTime;this.stop(r),this.start(r+.01)}},p5.Noise.prototype.getType=function(){return this.buffer.type},p5.Noise.prototype.start=function(){this.started&&this.stop(),this.noise=t.audiocontext.createBufferSource(),this.noise.buffer=this.buffer,this.noise.loop=!0,this.noise.connect(this.output);var e=t.audiocontext.currentTime;this.noise.start(e),this.started=!0},p5.Noise.prototype.stop=function(){var e=t.audiocontext.currentTime;this.noise&&(this.noise.stop(e),this.started=!1)},p5.Noise.prototype.dispose=function(){var e=t.audiocontext.currentTime,i=t.soundArray.indexOf(this);t.soundArray.splice(i,1),this.noise&&(this.noise.disconnect(),this.stop(e)),this.output&&this.output.disconnect(),this.panner&&this.panner.disconnect(),this.output=null,this.panner=null,this.buffer=null,this.noise=null}}(master);var audioin;audioin=function(){"use strict";var t=master;p5.AudioIn=function(){this.input=t.audiocontext.createGain(),this.output=t.audiocontext.createGain(),this.stream=null,this.mediaStream=null,this.currentSource=0,this.enabled=!1,this.amplitude=new p5.Amplitude,this.output.connect(this.amplitude.input),"undefined"==typeof window.MediaStreamTrack?window.alert("This browser does not support MediaStreamTrack"):"function"==typeof window.MediaStreamTrack.getSources&&window.MediaStreamTrack.getSources(this._gotSources),t.soundArray.push(this)},p5.AudioIn.prototype.start=function(e,i){var o=this;if(t.inputSources[o.currentSource]){var n=t.inputSources[o.currentSource].id,r={audio:{optional:[{sourceId:n}]}};window.navigator.getUserMedia(r,this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=t.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),e&&e(),o.amplitude.setInput(o.output)},this._onStreamError=function(t){i?i(t):console.error(t)})}else window.navigator.getUserMedia({audio:!0},this._onStream=function(i){o.stream=i,o.enabled=!0,o.mediaStream=t.audiocontext.createMediaStreamSource(i),o.mediaStream.connect(o.output),o.amplitude.setInput(o.output),e&&e()},this._onStreamError=function(t){i?i(t):console.error(t)})},p5.AudioIn.prototype.stop=function(){this.stream&&this.stream.stop()},p5.AudioIn.prototype.connect=function(e){this.output.connect(e?e.hasOwnProperty("input")?e.input:e.hasOwnProperty("analyser")?e.analyser:e:t.input)},p5.AudioIn.prototype.disconnect=function(t){this.output.disconnect(t),this.output.connect(this.amplitude.input)},p5.AudioIn.prototype.getLevel=function(t){return t&&(this.amplitude.smoothing=t),this.amplitude.getLevel()},p5.AudioIn.prototype._gotSources=function(t){for(var e=0;e0?t.inputSources:"This browser does not support MediaStreamTrack.getSources()"},p5.AudioIn.prototype.getSources=function(e){"function"==typeof window.MediaStreamTrack.getSources?window.MediaStreamTrack.getSources(function(i){for(var o=0,n=i.length;n>o;o++){var r=i[o];"audio"===r.kind&&t.inputSources.push(r)}e(t.inputSources)}):console.log("This browser does not support MediaStreamTrack.getSources()")},p5.AudioIn.prototype.setSource=function(e){var i=this;t.inputSources.length>0&&e=t&&(t=1),"number"==typeof t?(i.biquad.frequency.value=t,i.biquad.frequency.cancelScheduledValues(this.ac.currentTime+.01+o),i.biquad.frequency.exponentialRampToValueAtTime(t,this.ac.currentTime+.02+o)):t&&t.connect(this.biquad.frequency),i.biquad.frequency.value},p5.Filter.prototype.res=function(t,e){var i=this,o=e||0;return"number"==typeof t?(i.biquad.Q.value=t,i.biquad.Q.cancelScheduledValues(i.ac.currentTime+.01+o),i.biquad.Q.linearRampToValueAtTime(t,i.ac.currentTime+.02+o)):t&&freq.connect(this.biquad.Q),i.biquad.Q.value},p5.Filter.prototype.setType=function(t){this.biquad.type=t},p5.Filter.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Filter.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Filter.prototype.disconnect=function(){this.output.disconnect()},p5.Filter.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.input=void 0,this.output.disconnect(),this.output=void 0,this.biquad.disconnect(),this.biquad=void 0},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)}(master);var delay;delay=function(){"use strict";var t=master;p5.Delay=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this._split=this.ac.createChannelSplitter(2),this._merge=this.ac.createChannelMerger(2),this._leftGain=this.ac.createGain(),this._rightGain=this.ac.createGain(),this.leftDelay=this.ac.createDelay(),this.rightDelay=this.ac.createDelay(),this._leftFilter=new p5.Filter,this._rightFilter=new p5.Filter,this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._leftFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._rightFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._leftFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this._rightFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this.input.connect(this._split),this.leftDelay.connect(this._leftGain),this.rightDelay.connect(this._rightGain),this._leftGain.connect(this._leftFilter.input),this._rightGain.connect(this._rightFilter.input),this._merge.connect(this.output),this.output.connect(p5.soundOut.input),this._leftFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this._rightFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this.setType(0),this._maxDelay=this.leftDelay.delayTime.maxValue,t.soundArray.push(this)},p5.Delay.prototype.process=function(t,e,i,o){var n=i||0,r=e||0;if(n>=1)throw new Error("Feedback value will force a positive feedback loop.");if(r>=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.setValueAtTime(n,this.ac.currentTime),this._rightGain.gain.setValueAtTime(n,this.ac.currentTime),o&&(this._leftFilter.freq(o),this._rightFilter.freq(o))},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("number"!=typeof t)t.connect(this._leftGain.gain),t.connect(this._rightGain.gain);else{if(t>=1)throw new Error("Feedback value will force a positive feedback loop.");this._leftGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime),this._rightGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime)}},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._leftFilter.output.connect(this._merge,0,1),this._leftFilter.output.connect(this.leftDelay),this._leftFilter.output.connect(this.rightDelay)}},p5.Delay.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Delay.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Delay.prototype.disconnect=function(){this.output.disconnect()},p5.Delay.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.output.disconnect(),this._split.disconnect(),this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._merge.disconnect(),this._leftGain.disconnect(),this._rightGain.disconnect(),this.leftDelay.disconnect(),this.rightDelay.disconnect(),this.input=void 0,this.output=void 0,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}}(master,filter);var reverb;reverb=function(){"use strict";var t=master,e=errorHandler;p5.Reverb=function(){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse(),this.connect(),t.soundArray.push(this)},p5.Reverb.prototype.process=function(t,e,i,o){t.connect(this.input);var n=!1;e&&(this._seconds=e,n=!0),i&&(this._decay=i),o&&(this._reverse=o),n&&this._buildImpulse()},p5.Reverb.prototype.set=function(t,e,i){var o=!1;t&&(this._seconds=t,o=!0),e&&(this._decay=e),i&&(this._reverse=i),o&&this._buildImpulse()},p5.Reverb.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o+.001),this.output.gain.linearRampToValueAtTime(e,n+o+i+.001)},p5.Reverb.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Reverb.prototype.disconnect=function(){this.output.disconnect()},p5.Reverb.prototype._buildImpulse=function(){var t,e,i=this.ac.sampleRate,o=i*this._seconds,n=this._decay,r=this.ac.createBuffer(2,o,i),s=r.getChannelData(0),a=r.getChannelData(1);for(e=0;o>e;e++)t=this.reverse?o-e:e,s[e]=(2*Math.random()-1)*Math.pow(1-t/o,n),a[e]=(2*Math.random()-1)*Math.pow(1-t/o,n);this.convolverNode.buffer=r},p5.Reverb.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.convolverNode&&(this.convolverNode.buffer=null,this.convolverNode=null),"undefined"!=typeof this.output&&(this.output.disconnect(),this.output=null),"undefined"!=typeof this.panner&&(this.panner.disconnect(),this.panner=null)},p5.Convolver=function(e,i,o){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),e?(this.impulses=[],this._loadBuffer(e,i,o)):(this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse()),this.connect(),t.soundArray.push(this)},p5.Convolver.prototype=Object.create(p5.Reverb.prototype),p5.prototype.registerPreloadMethod("createConvolver",p5.prototype),p5.prototype.createConvolver=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var o=new p5.Convolver(t,e,i);return o.impulses=[],o},p5.Convolver.prototype._loadBuffer=function(t,i,o){var t=p5.prototype._checkFileFormats(t),n=this,r=(new Error).stack,s=p5.prototype.getAudioContext(),a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer",a.onload=function(){if(200==a.status)s.decodeAudioData(a.response,function(e){var o={},r=t.split("/");o.name=r[r.length-1],o.audioBuffer=e,n.impulses.push(o),n.convolverNode.buffer=o.audioBuffer,i&&i(o)},function(){var t=new e("decodeAudioData",r,n.url),i="AudioContext error at decodeAudioData for "+n.url;o?(t.msg=i,o(t)):console.error(i+"\n The error stack trace includes: \n"+t.stack)});else{var u=new e("loadConvolver",r,n.url),c="Unable to load "+n.url+". The request status was: "+a.status+" ("+a.statusText+")";o?(u.message=c,o(u)):console.error(c+"\n The error stack trace includes: \n"+u.stack)}},a.onerror=function(){var t=new e("loadConvolver",r,n.url),i="There was no response from the server at "+n.url+". Check the url and internet connectivity.";o?(t.message=i,o(t)):console.error(i+"\n The error stack trace includes: \n"+t.stack)},a.send()},p5.Convolver.prototype.set=null,p5.Convolver.prototype.process=function(t){t.connect(this.input)},p5.Convolver.prototype.impulses=[],p5.Convolver.prototype.addImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this._loadBuffer(t,e,i)},p5.Convolver.prototype.resetImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this.impulses=[],this._loadBuffer(t,e,i)},p5.Convolver.prototype.toggleImpulse=function(t){if("number"==typeof t&&tthis._nextTick;){o>this._nextTick+this._threshold&&(this._nextTick=o);var a=this._nextTick;this._nextTick+=1/this.frequency.getValueAtTime(this._nextTick),this.callback(a),this.ticks++}else s===t.State.Stopped&&(this._nextTick=-1,this.ticks=0)},t.Clock.prototype.getStateAtTime=function(t){return this._state.getStateAtTime(t)},t.Clock.prototype.dispose=function(){cancelAnimationFrame(this._loopID),t.TimelineState.prototype.dispose.call(this),this._writable("frequency"),this.frequency.dispose(),this.frequency=null,this._boundLoop=t.noOp,this._nextTick=1/0,this.callback=null,this._state.dispose(),this._state=null},t.Clock}(Tone_core_Tone,Tone_signal_TimelineSignal);var metro;metro=function(){"use strict";{var t=master,e=Tone_core_Clock;t.audiocontext}p5.Metro=function(){this.clock=new e({callback:this.ontick.bind(this)}),this.syncedParts=[],this.bpm=120,this._init(),this.tickCallback=function(){}};var i=0,o=0;p5.Metro.prototype.ontick=function(e){var n=e-i,r=e-t.audiocontext.currentTime;if(!(-.02>=n-o)){i=e;for(var s in this.syncedParts){var a=this.syncedParts[s];a.incrementStep(r);for(var u in a.phrases){var c=a.phrases[u],p=c.sequence,h=this.metroTicks%p.length;0!==p[h]&&(this.metroTicks=t.parts.length?(t.scoreStep=0,t.onended()):(t.scoreStep=0,t.parts[t.currentPart-1].stop(),t.parts[t.currentPart].start())}var e=master,i=120;p5.prototype.setBPM=function(t,o){i=t;for(var n in e.parts)e.parts[n].setBPM(i,o)},p5.Phrase=function(t,e,i){this.phraseStep=0,this.name=t,this.callback=e,this.sequence=i},p5.Part=function(t,o){this.length=t||0,this.partStep=0,this.phrases=[],this.looping=!1,this.isPlaying=!1,this.onended=function(){this.stop()},this.tatums=o||.0625,this.metro=new p5.Metro,this.metro._init(),this.metro.beatLength(this.tatums),this.metro.setBPM(i),e.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,i){var o;if(3===arguments.length)o=new p5.Phrase(t,e,i);else{if(!(arguments[0]instanceof p5.Phrase))throw"invalid input. addPhrase accepts name, callback, array or a p5.Phrase";o=arguments[0]}this.phrases.push(o),o.sequence.length>this.length&&(this.length=o.sequence.length)},p5.Part.prototype.removePhrase=function(t){for(var e in this.phrases)this.phrases[e].name===t&&this.phrases.split(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 i in this.phrases)this.phrases[i].name===t&&(this.phrases[i].sequence=e) -},p5.Part.prototype.incrementStep=function(t){this.partStepr;)o[r++]=t[n],o[r++]=e[n],n++;return o}function e(t,e,i){for(var o=i.length,n=0;o>n;n++)t.setUint8(e+n,i.charCodeAt(n))}var i=master,o=i.audiocontext;p5.SoundRecorder=function(){this.input=o.createGain(),this.output=o.createGain(),this.recording=!1,this.bufferSize=1024,this._channels=2,this._clear(),this._jsNode=o.createScriptProcessor(this.bufferSize,this._channels,2),this._jsNode.onaudioprocess=this._audioprocess.bind(this),this._callback=function(){},this._jsNode.connect(p5.soundOut._silentNode),this.setInput(),i.soundArray.push(this)},p5.SoundRecorder.prototype.setInput=function(t){this.input.disconnect(),this.input=null,this.input=o.createGain(),this.input.connect(this._jsNode),this.input.connect(this.output),t?t.connect(this.input):p5.soundOut.output.connect(this.input)},p5.SoundRecorder.prototype.record=function(t,e,i){this.recording=!0,e&&(this.sampleLimit=Math.round(e*o.sampleRate)),t&&i?this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer),i()}:t&&(this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer)})},p5.SoundRecorder.prototype.stop=function(){this.recording=!1,this._callback(),this._clear()},p5.SoundRecorder.prototype._clear=function(){this._leftBuffers=[],this._rightBuffers=[],this.recordedSamples=0,this.sampleLimit=null},p5.SoundRecorder.prototype._audioprocess=function(t){if(this.recording!==!1&&this.recording===!0)if(this.sampleLimit&&this.recordedSamples>=this.sampleLimit)this.stop();else{var e=t.inputBuffer.getChannelData(0),i=t.inputBuffer.getChannelData(1);this._leftBuffers.push(new Float32Array(e)),this._rightBuffers.push(new Float32Array(i)),this.recordedSamples+=this.bufferSize}},p5.SoundRecorder.prototype._getBuffer=function(){var t=[];return t.push(this._mergeBuffers(this._leftBuffers)),t.push(this._mergeBuffers(this._rightBuffers)),t},p5.SoundRecorder.prototype._mergeBuffers=function(t){for(var e=new Float32Array(this.recordedSamples),i=0,o=t.length,n=0;o>n;n++){var r=t[n];e.set(r,i),i+=r.length}return e},p5.SoundRecorder.prototype.dispose=function(){this._clear();var t=i.soundArray.indexOf(this);i.soundArray.splice(t,1),this._callback=function(){},this.input&&this.input.disconnect(),this.input=null,this._jsNode=null},p5.prototype.saveSound=function(i,o){var n=i.buffer.getChannelData(0),r=i.buffer.getChannelData(1),s=t(n,r),a=new ArrayBuffer(44+2*s.length),u=new DataView(a);e(u,0,"RIFF"),u.setUint32(4,44+2*s.length,!0),e(u,8,"WAVE"),e(u,12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,2,!0),u.setUint32(24,44100,!0),u.setUint32(28,176400,!0),u.setUint16(32,4,!0),u.setUint16(34,16,!0),e(u,36,"data"),u.setUint32(40,2*s.length,!0);for(var c=s.length,p=44,h=1,l=0;c>l;l++)u.setInt16(p,32767*s[l]*h,!0),p+=2;p5.prototype.writeFile([u],o,"wav")}}(sndcore,master);var peakdetect;peakdetect=function(){"use strict";p5.PeakDetect=function(t,e,i,o){this.framesPerPeak=o||20,this.framesSinceLastPeak=0,this.decayRate=.95,this.threshold=i||.35,this.cutoff=0,this.cutoffMult=1.5,this.energy=0,this.penergy=0,this.currentValue=0,this.isDetected=!1,this.f1=t||40,this.f2=e||2e4,this._onPeak=function(){}},p5.PeakDetect.prototype.update=function(t){var e=this.energy=t.getEnergy(this.f1,this.f2)/255;e>this.cutoff&&e>this.threshold&&e-this.penergy>0?(this._onPeak(),this.isDetected=!0,this.cutoff=e*this.cutoffMult,this.framesSinceLastPeak=0):(this.isDetected=!1,this.framesSinceLastPeak<=this.framesPerPeak?this.framesSinceLastPeak++:(this.cutoff*=this.decayRate,this.cutoff=Math.max(this.cutoff,this.threshold))),this.currentValue=e,this.penergy=e},p5.PeakDetect.prototype.onPeak=function(t,e){var i=this;i._onPeak=function(){t(i.energy,e)}}}(master);var gain;gain=function(){"use strict";var t=master;p5.Gain=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.output),t.soundArray.push(this)},p5.Gain.prototype.setInput=function(t){t.connect(this.input)},p5.Gain.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Gain.prototype.disconnect=function(){this.output.disconnect()},p5.Gain.prototype.amp=function(e,i,o){var i=i||0,o=o||0,n=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(n),this.output.gain.linearRampToValueAtTime(r,n+o),this.output.gain.linearRampToValueAtTime(e,n+o+i)},p5.Gain.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.output.disconnect(),this.input.disconnect(),this.output=void 0,this.input=void 0}}(master,sndcore);var src_app;src_app=function(){"use strict";var t=sndcore;return t}(sndcore,master,helpers,errorHandler,panner,soundfile,amplitude,fft,signal,oscillator,env,pulse,noise,audioin,filter,delay,reverb,metro,looper,soundRecorder,peakdetect,gain)}); \ No newline at end of file +!function(t,e){"function"==typeof define&&define.amd?define("p5.sound",["p5"],function(t){e(t)}):e("object"==typeof exports?require("../p5"):t.p5)}(this,function(p5){var sndcore;sndcore=function(){"use strict";!function(t,e,i){function n(t){t&&(t.setTargetAtTime||(t.setTargetAtTime=t.setTargetValueAtTime))}return e=e||{},window.hasOwnProperty("webkitAudioContext")&&!window.hasOwnProperty("AudioContext")&&(window.AudioContext=webkitAudioContext,AudioContext.prototype.hasOwnProperty("createGain")||(AudioContext.prototype.createGain=AudioContext.prototype.createGainNode),AudioContext.prototype.hasOwnProperty("createDelay")||(AudioContext.prototype.createDelay=AudioContext.prototype.createDelayNode),AudioContext.prototype.hasOwnProperty("createScriptProcessor")||(AudioContext.prototype.createScriptProcessor=AudioContext.prototype.createJavaScriptNode),AudioContext.prototype.hasOwnProperty("createPeriodicWave")||(AudioContext.prototype.createPeriodicWave=AudioContext.prototype.createWaveTable),AudioContext.prototype.internal_createGain=AudioContext.prototype.createGain,AudioContext.prototype.createGain=function(){var t=this.internal_createGain();return n(t.gain),t},AudioContext.prototype.internal_createDelay=AudioContext.prototype.createDelay,AudioContext.prototype.createDelay=function(t){var e=t?this.internal_createDelay(t):this.internal_createDelay();return n(e.delayTime),e},AudioContext.prototype.internal_createBufferSource=AudioContext.prototype.createBufferSource,AudioContext.prototype.createBufferSource=function(){var t=this.internal_createBufferSource();return t.start?(t.internal_start=t.start,t.start=function(e,i,n){"undefined"!=typeof n?t.internal_start(e||0,i,n):t.internal_start(e||0,i||0)}):t.start=function(t,e,i){e||i?this.noteGrainOn(t||0,e,i):this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},n(t.playbackRate),t},AudioContext.prototype.internal_createDynamicsCompressor=AudioContext.prototype.createDynamicsCompressor,AudioContext.prototype.createDynamicsCompressor=function(){var t=this.internal_createDynamicsCompressor();return n(t.threshold),n(t.knee),n(t.ratio),n(t.reduction),n(t.attack),n(t.release),t},AudioContext.prototype.internal_createBiquadFilter=AudioContext.prototype.createBiquadFilter,AudioContext.prototype.createBiquadFilter=function(){var t=this.internal_createBiquadFilter();return n(t.frequency),n(t.detune),n(t.Q),n(t.gain),t},AudioContext.prototype.hasOwnProperty("createOscillator")&&(AudioContext.prototype.internal_createOscillator=AudioContext.prototype.createOscillator,AudioContext.prototype.createOscillator=function(){var t=this.internal_createOscillator();return t.start?(t.internal_start=t.start,t.start=function(e){t.internal_start(e||0)}):t.start=function(t){this.noteOn(t||0)},t.stop?(t.internal_stop=t.stop,t.stop=function(e){t.internal_stop(e||0)}):t.stop=function(t){this.noteOff(t||0)},t.setPeriodicWave||(t.setPeriodicWave=t.setWaveTable),n(t.frequency),n(t.detune),t})),window.hasOwnProperty("webkitOfflineAudioContext")&&!window.hasOwnProperty("OfflineAudioContext")&&(window.OfflineAudioContext=webkitOfflineAudioContext),e}(window);var t=new window.AudioContext;p5.prototype.getAudioContext=function(){return t},navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;var e=document.createElement("audio");p5.prototype.isSupported=function(){return!!e.canPlayType};var i=function(){return!!e.canPlayType&&e.canPlayType('audio/ogg; codecs="vorbis"')},n=function(){return!!e.canPlayType&&e.canPlayType("audio/mpeg;")},o=function(){return!!e.canPlayType&&e.canPlayType('audio/wav; codecs="1"')},r=function(){return!!e.canPlayType&&(e.canPlayType("audio/x-m4a;")||e.canPlayType("audio/aac;"))},s=function(){return!!e.canPlayType&&e.canPlayType("audio/x-aiff;")};p5.prototype.isFileSupported=function(t){switch(t.toLowerCase()){case"mp3":return n();case"wav":return o();case"ogg":return i();case"mp4":return r();case"aiff":return s();default:return!1}};var a=navigator.userAgent.match(/(iPad|iPhone|iPod)/g)?!0:!1;if(a){var u=!1,c=function(){if(!u){var e=t.createBuffer(1,1,22050),i=t.createBufferSource();i.buffer=e,i.connect(t.destination),i.start(0),console.log("start ios!"),"running"===t.state&&(u=!0)}};document.addEventListener("touchend",c,!1),document.addEventListener("touchstart",c,!1)}}();var master;master=function(){"use strict";var t=function(){var t=p5.prototype.getAudioContext();this.input=t.createGain(),this.output=t.createGain(),this.limiter=t.createDynamicsCompressor(),this.limiter.threshold.value=0,this.limiter.ratio.value=100,this.audiocontext=t,this.output.disconnect(),this.inputSources=[],this.input.connect(this.limiter),this.limiter.connect(this.output),this.meter=t.createGain(),this.fftMeter=t.createGain(),this.output.connect(this.meter),this.output.connect(this.fftMeter),this.output.connect(this.audiocontext.destination),this.soundArray=[],this.parts=[],this.extensions=[]},e=new t;return p5.prototype.getMasterVolume=function(){return e.output.gain.value},p5.prototype.masterVolume=function(t,i,n){if("number"==typeof t){var i=i||0,n=n||0,o=e.audiocontext.currentTime,r=e.output.gain.value;e.output.gain.cancelScheduledValues(o+n),e.output.gain.linearRampToValueAtTime(r,o+n),e.output.gain.linearRampToValueAtTime(t,o+n+i)}else{if(!t)return e.output.gain;t.connect(e.output.gain)}},p5.soundOut=e,p5.soundOut._silentNode=e.audiocontext.createGain(),p5.soundOut._silentNode.gain.value=0,p5.soundOut._silentNode.connect(e.audiocontext.destination),e}(sndcore);var helpers;helpers=function(){"use strict";var t=master;p5.prototype.sampleRate=function(){return t.audiocontext.sampleRate},p5.prototype.freqToMidi=function(t){var e=Math.log(t/440)/Math.log(2),i=Math.round(12*e)+57;return i},p5.prototype.midiToFreq=function(t){return 440*Math.pow(2,(t-69)/12)},p5.prototype.soundFormats=function(){t.extensions=[];for(var e=0;e-1))throw arguments[e]+" is not a valid sound format!";t.extensions.push(arguments[e])}},p5.prototype.disposeSound=function(){for(var e=0;e-1){var o=p5.prototype.isFileSupported(n);if(o)i=i;else for(var r=i.split("."),s=r[r.length-1],a=0;a1?(this.splitter=e.createChannelSplitter(2),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0)):(this.input.connect(this.left),this.input.connect(this.right)),this.output=e.createChannelMerger(2),this.left.connect(this.output,0,1),this.right.connect(this.output,0,0),this.output.connect(i)},p5.Panner.prototype.pan=function(t,i){var n=i||0,o=e.currentTime+n,r=(t+1)/2,s=Math.cos(r*Math.PI/2),a=Math.sin(r*Math.PI/2);this.left.gain.linearRampToValueAtTime(a,o),this.right.gain.linearRampToValueAtTime(s,o)},p5.Panner.prototype.inputChannels=function(t){1===t?(this.input.disconnect(),this.input.connect(this.left),this.input.connect(this.right)):2===t&&(this.splitter=e.createChannelSplitter(2),this.input.disconnect(),this.input.connect(this.splitter),this.splitter.connect(this.left,1),this.splitter.connect(this.right,0))},p5.Panner.prototype.connect=function(t){this.output.connect(t)},p5.Panner.prototype.disconnect=function(t){this.output.disconnect()}),p5.Panner3D=function(t,i){var n=e.createPanner();return n.panningModel="HRTF",n.distanceModel="linear",n.setPosition(0,0,0),t.connect(n),n.connect(i),n.pan=function(t,e,i){n.setPosition(t,e,i)},n}}(master);var soundfile;soundfile=function(){"use strict";function t(t,e){for(var i={},n=t.length,o=0;n>o;o++){if(t[o]>e){var r=t[o],s=new c(r,o);i[o]=s,o+=6e3}o++}return i}function e(t){for(var e=[],i=Object.keys(t).sort(),n=0;no;o++){var r=t[i[n]],s=t[i[n+o]];if(r&&s){var a=r.sampleIndex,u=s.sampleIndex,c=u-a;c>0&&r.intervals.push(c);var p=e.some(function(t,e){return t.interval===c?(t.count++,t):void 0});p||e.push({interval:c,count:1})}}return e}function i(t,e){var i=[];return t.forEach(function(t,n){try{var r=Math.abs(60/(t.interval/e));r=o(r);var s=i.some(function(e){return e.tempo===r?e.count+=t.count:void 0});if(!s){if(isNaN(r))return;i.push({tempo:Math.round(r),count:t.count})}}catch(a){throw a}}),i}function n(t,e,i,n){for(var r=[],s=Object.keys(t).sort(),a=0;a.01?!0:void 0})}function o(t){if(isFinite(t)&&0!=t){for(;90>t;)t*=2;for(;t>180&&t>90;)t/=2;return t}}var r=errorHandler,s=master,a=s.audiocontext;p5.SoundFile=function(t,e,i,n){if("undefined"!=typeof t){if("string"==typeof t||"string"==typeof t[0]){var o=p5.prototype._checkFileFormats(t);this.url=o}else if("object"==typeof t&&!(window.File&&window.FileReader&&window.FileList&&window.Blob))throw"Unable to load file because the File API is not supported";t.file&&(t=t.file),this.file=t}this._onended=function(){},this._looping=!1,this._playing=!1,this._paused=!1,this._pauseTime=0,this._cues=[],this._lastPos=0,this._counterNode,this._scopeNode,this.bufferSourceNodes=[],this.bufferSourceNode=null,this.buffer=null,this.playbackRate=1,this.gain=1,this.input=s.audiocontext.createGain(),this.output=s.audiocontext.createGain(),this.reversed=!1,this.startTime=0,this.endTime=null,this.pauseTime=0,this.mode="sustain",this.startMillis=null,this.panPosition=0,this.panner=new p5.Panner(this.output,s.input,2),(this.url||this.file)&&this.load(e,i),s.soundArray.push(this),"function"==typeof n?this._whileLoading=n:this._whileLoading=function(){}},p5.prototype.registerPreloadMethod("loadSound",p5.prototype),p5.prototype.loadSound=function(t,e,i,n){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var o=new p5.SoundFile(t,e,i,n);return o},p5.SoundFile.prototype.load=function(t,e){var i=this,n=(new Error).stack;if(void 0!=this.url&&""!=this.url){var o=new XMLHttpRequest;o.addEventListener("progress",function(t){i._updateProgress(t)},!1),o.open("GET",this.url,!0),o.responseType="arraybuffer",o.onload=function(){if(200==o.status)a.decodeAudioData(o.response,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)},function(t){var o=new r("decodeAudioData",n,i.url),s="AudioContext error at decodeAudioData for "+i.url;e?(o.msg=s,e(o)):console.error(s+"\n The error stack trace includes: \n"+o.stack)});else{var s=new r("loadSound",n,i.url),u="Unable to load "+i.url+". The request status was: "+o.status+" ("+o.statusText+")";e?(s.message=u,e(s)):console.error(u+"\n The error stack trace includes: \n"+s.stack)}},o.onerror=function(t){var o=new r("loadSound",n,i.url),s="There was no response from the server at "+i.url+". Check the url and internet connectivity.";e?(o.message=s,e(o)):console.error(s+"\n The error stack trace includes: \n"+o.stack)},o.send()}else if(void 0!=this.file){var s=new FileReader,i=this;s.onload=function(){a.decodeAudioData(s.result,function(e){i.buffer=e,i.panner.inputChannels(e.numberOfChannels),t&&t(i)})},s.onerror=function(t){onerror&&onerror(t)},s.readAsArrayBuffer(this.file)}},p5.SoundFile.prototype._updateProgress=function(t){if(t.lengthComputable){var e=Math.log(t.loaded/t.total*9.9);this._whileLoading(e)}else this._whileLoading("size unknown")},p5.SoundFile.prototype.isLoaded=function(){return this.buffer?!0:!1},p5.SoundFile.prototype.play=function(t,e,i,n,o){var r,a,u=this,c=s.audiocontext.currentTime,t=t||0;if(0>t&&(t=0),t+=c,!this.buffer)throw"not ready to play file, buffer has yet to load. Try preload()";if(this._pauseTime=0,"restart"===this.mode&&this.buffer&&this.bufferSourceNode){var c=s.audiocontext.currentTime;this.bufferSourceNode.stop(t),this._counterNode.stop(t)}if(this.bufferSourceNode=this._initSourceNode(),this._counterNode&&(this._counterNode=void 0),this._counterNode=this._initCounterNode(),n){if(!(n>=0&&n0&&this.reversed&&this.reverseBuffer();if(this.bufferSourceNode){var o=s.audiocontext.currentTime;this.bufferSourceNode.playbackRate.cancelScheduledValues(o),this.bufferSourceNode.playbackRate.linearRampToValueAtTime(Math.abs(e),o),this._counterNode.playbackRate.cancelScheduledValues(o),this._counterNode.playbackRate.linearRampToValueAtTime(Math.abs(e),o)}}},p5.SoundFile.prototype.setPitch=function(t){var e=midiToFreq(t)/midiToFreq(60);this.rate(e)},p5.SoundFile.prototype.getPlaybackRate=function(){return this.playbackRate},p5.SoundFile.prototype.duration=function(){return this.buffer?this.buffer.duration:0},p5.SoundFile.prototype.currentTime=function(){return this._pauseTime>0?this._pauseTime:this._lastPos/a.sampleRate},p5.SoundFile.prototype.jump=function(t,e){if(0>t||t>this.buffer.duration)throw"jump time out of range";if(e>this.buffer.duration-t)throw"end time out of range";var i=t||0,n=e||this.buffer.duration-t;this.isPlaying()&&this.stop(),this.play(0,this.playbackRate,this.output.gain.value,i,n)},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,i=e.length/t,n=~~(i/10)||1,o=e.numberOfChannels,r=new Float32Array(Math.round(t)),s=0;o>s;s++)for(var a=e.getChannelData(s),u=0;t>u;u++){for(var c=~~(u*i),p=~~(c+i),h=0,l=c;p>l;l+=n){var d=a[l];d>h?h=d:-d>h&&(h=d)}(0===s||Math.abs(h)>r[u])&&(r[u]=h)}return r}},p5.SoundFile.prototype.reverseBuffer=function(){var t=this.getVolume();if(this.setVolume(0,.01,0),this.pause(),!this.buffer)throw"SoundFile is not done loading";for(var e=0;eo;o++){var r=n.getChannelData(o);r.set(t[o])}this.buffer=n,this.panner.inputChannels(e)},p5.SoundFile.prototype._initCounterNode=function(){var t=this,e=a.currentTime,i=a.createBufferSource();return t._scopeNode&&(t._scopeNode.disconnect(),t._scopeNode.onaudioprocess=void 0,t._scopeNode=null),t._scopeNode=a.createScriptProcessor(256,1,1),i.buffer=u(t.buffer),i.playbackRate.setValueAtTime(t.playbackRate,e),i.connect(t._scopeNode),t._scopeNode.connect(p5.soundOut._silentNode),t._scopeNode.onaudioprocess=function(e){var i=e.inputBuffer.getChannelData(0);t._lastPos=i[i.length-1]||0,t._onTimeUpdate(t._lastPos)},i},p5.SoundFile.prototype._initSourceNode=function(){var t=this,e=a.currentTime,i=a.createBufferSource();return i.buffer=t.buffer,i.playbackRate.setValueAtTime(t.playbackRate,e),i};var u=function(t){for(var e=new Float32Array(t.length),i=a.createBuffer(1,t.length,44100),n=0;n=f);var u=e(p),c=i(u,s.sampleRate),h=c.sort(function(t,e){return e.count-t.count}).splice(0,5);this.tempo=h[0].tempo;var l=5,y=n(p,h[0].tempo,s.sampleRate,l);o(y)}};var c=function(t,e){this.sampleIndex=e,this.amplitude=t,this.tempos=[],this.intervals=[]},p=[];p5.SoundFile.prototype.addCue=function(t,e,i){var n=this._cueIDCounter++,o=new h(e,t,n,i);return this._cues.push(o),n},p5.SoundFile.prototype.removeCue=function(t){for(var e=this._cues.length,i=0;e>i;i++){var n=this._cues[i];n.id===t&&this.cues.splice(i,1)}0===this._cues.length},p5.SoundFile.prototype.clearCues=function(){this._cues=[]},p5.SoundFile.prototype._onTimeUpdate=function(t){for(var e=t/this.buffer.sampleRate,i=this._cues.length,n=0;i>n;n++){var o=this._cues[n],r=o.time,s=o.val;this._prevTime=r&&o.callback(s)}this._prevTime=e};var h=function(t,e,i,n){this.callback=t,this.time=e,this.id=i,this.val=n}}(sndcore,errorHandler,master);var amplitude;amplitude=function(){"use strict";var t=master;p5.Amplitude=function(e){this.bufferSize=2048,this.audiocontext=t.audiocontext,this.processor=this.audiocontext.createScriptProcessor(this.bufferSize,2,1),this.input=this.processor,this.output=this.audiocontext.createGain(),this.smoothing=e||0,this.volume=0,this.average=0,this.stereoVol=[0,0],this.stereoAvg=[0,0],this.stereoVolNorm=[0,0],this.volMax=.001,this.normalize=!1,this.processor.onaudioprocess=this._audioProcess.bind(this),this.processor.connect(this.output),this.output.gain.value=0,this.output.connect(this.audiocontext.destination),t.meter.connect(this.processor),t.soundArray.push(this)},p5.Amplitude.prototype.setInput=function(e,i){t.meter.disconnect(),i&&(this.smoothing=i),null==e?(console.log("Amplitude input source is not ready! Connecting to master output instead"),t.meter.connect(this.processor)):e instanceof p5.Signal?e.output.connect(this.processor):e?(e.connect(this.processor),this.processor.disconnect(),this.processor.connect(this.output)):t.meter.connect(this.processor)},p5.Amplitude.prototype.connect=function(e){e?e.hasOwnProperty("input")?this.output.connect(e.input):this.output.connect(e):this.output.connect(this.panner.connect(t.input))},p5.Amplitude.prototype.disconnect=function(t){this.output.disconnect()},p5.Amplitude.prototype._audioProcess=function(t){for(var e=0;ea;a++)i=n[a],this.normalize?(r+=Math.max(Math.min(i/this.volMax,1),-1),s+=Math.max(Math.min(i/this.volMax,1),-1)*Math.max(Math.min(i/this.volMax,1),-1)):(r+=i,s+=i*i);var u=r/o,c=Math.sqrt(s/o);this.stereoVol[e]=Math.max(c,this.stereoVol[e]*this.smoothing),this.stereoAvg[e]=Math.max(u,this.stereoVol[e]*this.smoothing),this.volMax=Math.max(this.stereoVol[e],this.volMax)}var p=this,h=this.stereoVol.reduce(function(t,e,i){return p.stereoVolNorm[i-1]=Math.max(Math.min(p.stereoVol[i-1]/p.volMax,1),0),p.stereoVolNorm[i]=Math.max(Math.min(p.stereoVol[i]/p.volMax,1),0),t+e});this.volume=h/this.stereoVol.length,this.volNorm=Math.max(Math.min(this.volume/this.volMax,1),0)},p5.Amplitude.prototype.getLevel=function(t){return"undefined"!=typeof t?this.normalize?this.stereoVolNorm[t]:this.stereoVol[t]:this.normalize?this.volNorm:this.volume},p5.Amplitude.prototype.toggleNormalize=function(t){"boolean"==typeof t?this.normalize=t:this.normalize=!this.normalize},p5.Amplitude.prototype.smooth=function(t){t>=0&&1>t?this.smoothing=t:console.log("Error: smoothing must be between 0 and 1")},p5.Amplitude.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.output.disconnect(),this.input=this.processor=void 0,this.output=void 0}}(master);var fft;fft=function(){"use strict";var t=master;p5.FFT=function(e,i){this.smoothing=e||.8,this.bins=i||1024;var n=2*i||2048;this.input=this.analyser=t.audiocontext.createAnalyser(),t.fftMeter.connect(this.analyser),this.analyser.smoothingTimeConstant=this.smoothing,this.analyser.fftSize=n,this.freqDomain=new Uint8Array(this.analyser.frequencyBinCount),this.timeDomain=new Uint8Array(this.analyser.frequencyBinCount),this.bass=[20,140],this.lowMid=[140,400],this.mid=[400,2600],this.highMid=[2600,5200],this.treble=[5200,14e3],t.soundArray.push(this)},p5.FFT.prototype.setInput=function(e){e?(e.output?e.output.connect(this.analyser):e.connect&&e.connect(this.analyser),t.fftMeter.disconnect()):t.fftMeter.connect(this.analyser)},p5.FFT.prototype.waveform=function(){for(var t,e,i,r=0;ri){var o=i;i=e,e=o}for(var r=Math.round(e/n*this.freqDomain.length),s=Math.round(i/n*this.freqDomain.length),a=0,u=0,c=r;s>=c;c++)a+=this.freqDomain[c],u+=1;var p=a/u;return p}throw"invalid input for getEnergy()"}var h=Math.round(e/n*this.freqDomain.length);return this.freqDomain[h]},p5.FFT.prototype.getFreq=function(t,e){console.log("getFreq() is deprecated. Please use getEnergy() instead.");var i=this.getEnergy(t,e);return i},p5.FFT.prototype.getCentroid=function(){for(var e=t.audiocontext.sampleRate/2,i=0,n=0,o=0;o1&&(this.input=new Array(e)),t(i)||1===i?this.output=this.context.createGain():i>1&&(this.output=new Array(e))};n.prototype.set=function(e,i,o){if(this.isObject(e))o=i;else if(this.isString(e)){var r={};r[e]=i,e=r}for(var s in e){i=e[s];var a=this;if(-1!==s.indexOf(".")){for(var u=s.split("."),c=0;c1)for(var t=arguments[0],e=1;e1)for(var e=1;e0)for(var t=this,e=0;e0)for(var t=0;te;e++){var n=e/i*2-1;this._curve[e]=t(n,e)}return this._shaper.curve=this._curve,this},Object.defineProperty(t.WaveShaper.prototype,"curve",{get:function(){return this._shaper.curve},set:function(t){this._curve=new Float32Array(t),this._shaper.curve=this._curve}}),Object.defineProperty(t.WaveShaper.prototype,"oversample",{get:function(){return this._shaper.oversample},set:function(t){if(-1===["none","2x","4x"].indexOf(t))throw new Error("invalid oversampling: "+t);this._shaper.oversample=t}}),t.WaveShaper.prototype.dispose=function(){return t.prototype.dispose.call(this),this._shaper.disconnect(),this._shaper=null,this._curve=null,this},t.WaveShaper}(Tone_core_Tone);var Tone_core_Type;Tone_core_Type=function(Tone){"use strict";function getTransportBpm(){return Tone.Transport&&Tone.Transport.bpm?Tone.Transport.bpm.value:120}function getTransportTimeSignature(){return Tone.Transport&&Tone.Transport.timeSignature?Tone.Transport.timeSignature:4}function toNotationHelper(t,e,i,n){for(var o=this.toSeconds(t),r=this.notationToSeconds(n[n.length-1],e,i),s="",a=0;a1-c%1&&(c+=p),c=Math.floor(c),c>0){if(s+=1===c?n[a]:c.toString()+"*"+n[a],o-=c*u,r>o)break;s+=" + "}}return""===s&&(s="0"),s}Tone.Type={Default:"number",Time:"time",Frequency:"frequency",NormalRange:"normalRange",AudioRange:"audioRange",Decibels:"db",Interval:"interval",BPM:"bpm",Positive:"positive",Cents:"cents",Degrees:"degrees",MIDI:"midi",TransportTime:"transportTime",Ticks:"tick",Note:"note",Milliseconds:"milliseconds",Notation:"notation"},Tone.prototype.isNowRelative=function(){var t=new RegExp(/^\s*\+(.)+/i);return function(e){return t.test(e)}}(),Tone.prototype.isTicks=function(){var t=new RegExp(/^\d+i$/i);return function(e){return t.test(e)}}(),Tone.prototype.isNotation=function(){var t=new RegExp(/^[0-9]+[mnt]$/i);return function(e){return t.test(e)}}(),Tone.prototype.isTransportTime=function(){var t=new RegExp(/^(\d+(\.\d+)?\:){1,2}(\d+(\.\d+)?)?$/i);return function(e){return t.test(e)}}(),Tone.prototype.isNote=function(){var t=new RegExp(/^[a-g]{1}(b|#|x|bb)?-?[0-9]+$/i);return function(e){return t.test(e)}}(),Tone.prototype.isFrequency=function(){var t=new RegExp(/^\d*\.?\d+hz$/i);return function(e){return t.test(e)}}(),Tone.prototype.notationToSeconds=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var n=60/e;"1n"===t&&(t="1m");var o=parseInt(t,10),r=0;0===o&&(r=0);var s=t.slice(-1);return r="t"===s?4/o*2/3:"n"===s?4/o:"m"===s?o*i:0,n*r},Tone.prototype.transportTimeToSeconds=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var n=0,o=0,r=0,s=t.split(":");2===s.length?(n=parseFloat(s[0]),o=parseFloat(s[1])):1===s.length?o=parseFloat(s[0]):3===s.length&&(n=parseFloat(s[0]),o=parseFloat(s[1]),r=parseFloat(s[2]));var a=n*i+o+r/4;return a*(60/e)},Tone.prototype.ticksToSeconds=function(t,e){if(this.isUndef(Tone.Transport))return 0;t=parseFloat(t),e=this.defaultArg(e,getTransportBpm());var i=60/e/Tone.Transport.PPQ;return i*t},Tone.prototype.frequencyToSeconds=function(t){return 1/parseFloat(t)},Tone.prototype.samplesToSeconds=function(t){return t/this.context.sampleRate},Tone.prototype.secondsToSamples=function(t){return t*this.context.sampleRate},Tone.prototype.secondsToTransportTime=function(t,e,i){e=this.defaultArg(e,getTransportBpm()),i=this.defaultArg(i,getTransportTimeSignature());var n=60/e,o=t/n,r=Math.floor(o/i),s=o%1*4;o=Math.floor(o)%i;var a=[r,o,s];return a.join(":")},Tone.prototype.secondsToFrequency=function(t){return 1/t},Tone.prototype.toTransportTime=function(t,e,i){var n=this.toSeconds(t);return this.secondsToTransportTime(n,e,i)},Tone.prototype.toFrequency=function(t,e){return this.isFrequency(t)?parseFloat(t):this.isNotation(t)||this.isTransportTime(t)?this.secondsToFrequency(this.toSeconds(t,e)):this.isNote(t)?this.noteToFrequency(t):t},Tone.prototype.toTicks=function(t){if(this.isUndef(Tone.Transport))return 0;var e=Tone.Transport.bpm.value,i=0;if(this.isNowRelative(t))t=t.replace("+",""),i=Tone.Transport.ticks;else if(this.isUndef(t))return Tone.Transport.ticks;var n=this.toSeconds(t),o=60/e,r=n/o,s=r*Tone.Transport.PPQ;return Math.round(s+i)},Tone.prototype.toSamples=function(t){var e=this.toSeconds(t);return Math.round(e*this.context.sampleRate)},Tone.prototype.toSeconds=function(time,now){if(now=this.defaultArg(now,this.now()),this.isNumber(time))return time;if(this.isString(time)){var plusTime=0;this.isNowRelative(time)&&(time=time.replace("+",""),plusTime=now);var betweenParens=time.match(/\(([^)(]+)\)/g);if(betweenParens)for(var j=0;j0&&(toQuantize="+"+toQuantize,plusTime=0);var subdivision=quantizationSplit[1].trim();time=Tone.Transport.quantize(toQuantize,subdivision)}else{var components=time.split(/[\(\)\-\+\/\*]/);if(components.length>1){for(var originalTime=time,i=0;in&&(i+=-12*n);var o=scaleIndexToNote[i%12];return o+n.toString()},Tone.prototype.intervalToFrequencyRatio=function(t){return Math.pow(2,t/12)},Tone.prototype.midiToNote=function(t){var e=Math.floor(t/12)-1,i=t%12;return scaleIndexToNote[i]+e},Tone.prototype.noteToMidi=function(t){var e=t.split(/(\d+)/);if(3===e.length){var i=noteToScaleIndex[e[0].toLowerCase()],n=e[1];return i+12*(parseInt(n,10)+1)}return 0},Tone.prototype.midiToFrequency=function(t){return Tone.A4*Math.pow(2,(t-69)/12)},Tone}(Tone_core_Tone);var Tone_core_Param;Tone_core_Param=function(t){"use strict";return t.Param=function(){var e=this.optionsObject(arguments,["param","units","convert"],t.Param.defaults);this._param=this.input=e.param,this.units=e.units,this.convert=e.convert,this.overridden=!1,this.isUndef(e.value)||(this.value=e.value)},t.extend(t.Param),t.Param.defaults={units:t.Type.Default,convert:!0,param:void 0},Object.defineProperty(t.Param.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(t){var e=this._fromUnits(t);this._param.value=e}}),t.Param.prototype._fromUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Time:return this.toSeconds(e);case t.Type.Frequency:return this.toFrequency(e);case t.Type.Decibels:return this.dbToGain(e);case t.Type.NormalRange:return Math.min(Math.max(e,0),1);case t.Type.AudioRange:return Math.min(Math.max(e,-1),1);case t.Type.Positive:return Math.max(e,0);default:return e}},t.Param.prototype._toUnits=function(e){if(!this.convert&&!this.isUndef(this.convert))return e;switch(this.units){case t.Type.Decibels:return this.gainToDb(e);default:return e}},t.Param.prototype._minOutput=1e-5,t.Param.prototype.setValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.setValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.setRampPoint=function(t){t=this.defaultArg(t,this.now());var e=this._param.value;return this._param.setValueAtTime(e,t),this},t.Param.prototype.linearRampToValueAtTime=function(t,e){return t=this._fromUnits(t),this._param.linearRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValueAtTime=function(t,e){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),this._param.exponentialRampToValueAtTime(t,this.toSeconds(e)),this},t.Param.prototype.exponentialRampToValue=function(t,e){var i=this.now(),n=this.value;return this.setValueAtTime(Math.max(n,this._minOutput),i),this.exponentialRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.linearRampToValue=function(t,e){var i=this.now();return this.setRampPoint(i),this.linearRampToValueAtTime(t,i+this.toSeconds(e)),this},t.Param.prototype.setTargetAtTime=function(t,e,i){return t=this._fromUnits(t),t=Math.max(this._minOutput,t),i=Math.max(this._minOutput,i),this._param.setTargetAtTime(t,this.toSeconds(e),i),this},t.Param.prototype.setValueCurveAtTime=function(t,e,i){for(var n=0;n0?this.oscillator.frequency.exponentialRampToValueAtTime(e,n+i+o):this.oscillator.frequency.linearRampToValueAtTime(e,n+i+o),this.phaseAmount&&this.phase(this.phaseAmount)}},p5.Oscillator.prototype.getFreq=function(){return this.oscillator.frequency.value},p5.Oscillator.prototype.setType=function(t){this.oscillator.type=t},p5.Oscillator.prototype.getType=function(){return this.oscillator.type},p5.Oscillator.prototype.connect=function(e){e?e.hasOwnProperty("input")?(this.panner.connect(e.input),this.connection=e.input):(this.panner.connect(e),this.connection=e):this.panner.connect(t.input)},p5.Oscillator.prototype.disconnect=function(t){this.output.disconnect(),this.panner.disconnect(),this.output.connect(this.panner),this.oscMods=[]},p5.Oscillator.prototype.pan=function(t,e){this.panPosition=t,this.panner.pan(t,e)},p5.Oscillator.prototype.getPan=function(){return this.panPosition},p5.Oscillator.prototype.dispose=function(){var e=t.soundArray.indexOf(this);if(t.soundArray.splice(e,1),this.oscillator){var i=t.audiocontext.currentTime;this.stop(i),this.disconnect(),this.oscillator.disconnect(),this.panner=null,this.oscillator=null}this.osc2&&this.osc2.dispose()},p5.Oscillator.prototype.phase=function(e){var i=p5.prototype.map(e,0,1,0,1/this.f),n=t.audiocontext.currentTime;this.phaseAmount=e,this.dNode||(this.dNode=t.audiocontext.createDelay(),this.oscillator.disconnect(),this.oscillator.connect(this.dNode),this.dNode.connect(this.output)),this.dNode.delayTime.setValueAtTime(i,n)};var o=function(t,e,i,n,o){var r=t.oscillator;for(var s in t.mathOps)t.mathOps[s]instanceof o&&(r.disconnect(),t.mathOps[s].dispose(),i=s,i0&&(r=t.mathOps[s-1]),r.disconnect(),r.connect(e),e.connect(n),t.mathOps[i]=e,t};p5.Oscillator.prototype.add=function(t){var i=new e(t),n=this.mathOps.length-1,r=this.output;return o(this,i,n,r,e)},p5.Oscillator.prototype.mult=function(t){var e=new i(t),n=this.mathOps.length-1,r=this.output;return o(this,e,n,r,i)},p5.Oscillator.prototype.scale=function(t,e,i,r){var s,a;4===arguments.length?(s=p5.prototype.map(i,t,e,0,1)-.5,a=p5.prototype.map(r,t,e,0,1)-.5):(s=arguments[0],a=arguments[1]);var u=new n(s,a),c=this.mathOps.length-1,p=this.output;return o(this,u,c,p,n)},p5.SinOsc=function(t){p5.Oscillator.call(this,t,"sine")},p5.SinOsc.prototype=Object.create(p5.Oscillator.prototype),p5.TriOsc=function(t){p5.Oscillator.call(this,t,"triangle")},p5.TriOsc.prototype=Object.create(p5.Oscillator.prototype),p5.SawOsc=function(t){p5.Oscillator.call(this,t,"sawtooth")},p5.SawOsc.prototype=Object.create(p5.Oscillator.prototype),p5.SqrOsc=function(t){p5.Oscillator.call(this,t,"square")},p5.SqrOsc.prototype=Object.create(p5.Oscillator.prototype)}(master,Tone_signal_Signal,Tone_signal_Add,Tone_signal_Multiply,Tone_signal_Scale);var Tone_core_Timeline;Tone_core_Timeline=function(t){"use strict";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.addEvent=function(t){if(this.isUndef(t.time))throw new Error("events must have a time attribute");if(t.time=this.toSeconds(t.time),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.removeEvent=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.getEvent=function(t){t=this.toSeconds(t);var e=this._search(t);return-1!==e?this._timeline[e]:null},t.Timeline.prototype.getEventAfter=function(t){t=this.toSeconds(t);var e=this._search(t);return e+1=0?this._timeline[e-1]:null},t.Timeline.prototype.cancel=function(t){if(this._timeline.length>1){t=this.toSeconds(t);var e=this._search(t);e>=0?this._timeline=this._timeline.slice(0,e):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){t=this.toSeconds(t);var e=this._search(t);e>=0&&(this._timeline=this._timeline.slice(e+1))}return this},t.Timeline.prototype._search=function(t){for(var e=0,i=this._timeline.length,n=i;n>=e&&i>e;){var o=Math.floor(e+(n-e)/2),r=this._timeline[o];if(r.time===t){for(var s=o;st?n=o-1:r.time=n;n++)t(this._timeline[n]);if(this._iterating=!1,this._toRemove.length>0){for(var o=0;o=0&&this._timeline[i].time>=t;)i--;return this._iterate(e,i+1),this},t.Timeline.prototype.forEachAtTime=function(t,e){t=this.toSeconds(t);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}(Tone_core_Tone);var Tone_signal_TimelineSignal;Tone_signal_TimelineSignal=function(t){"use strict";return t.TimelineSignal=function(){var e=this.optionsObject(arguments,["value","units"],t.Signal.defaults);t.Signal.apply(this,e),e.param=this._param,t.Param.call(this,e),this._events=new t.Timeline(10),this._initial=this._fromUnits(this._param.value)},t.extend(t.TimelineSignal,t.Param),t.TimelineSignal.Type={Linear:"linear",Exponential:"exponential",Target:"target",Set:"set"},Object.defineProperty(t.TimelineSignal.prototype,"value",{get:function(){return this._toUnits(this._param.value)},set:function(t){var e=this._fromUnits(t);this._initial=e,this._param.value=e}}),t.TimelineSignal.prototype.setValueAtTime=function(e,i){return e=this._fromUnits(e),i=this.toSeconds(i),this._events.addEvent({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.addEvent({type:t.TimelineSignal.Type.Linear,value:e,time:i}),this._param.linearRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.exponentialRampToValueAtTime=function(e,i){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),i=this.toSeconds(i),this._events.addEvent({type:t.TimelineSignal.Type.Exponential,value:e,time:i}),this._param.exponentialRampToValueAtTime(e,i),this},t.TimelineSignal.prototype.setTargetAtTime=function(e,i,n){return e=this._fromUnits(e),e=Math.max(this._minOutput,e),n=Math.max(this._minOutput,n),i=this.toSeconds(i),this._events.addEvent({type:t.TimelineSignal.Type.Target, +value:e,time:i,constant:n}),this._param.setTargetAtTime(e,i,n),this},t.TimelineSignal.prototype.cancelScheduledValues=function(t){return this._events.cancel(t),this._param.cancelScheduledValues(this.toSeconds(t)),this},t.TimelineSignal.prototype.setRampPoint=function(e){e=this.toSeconds(e);var i=this.getValueAtTime(e),n=this._searchAfter(e);return 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),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.getEvent(t)},t.TimelineSignal.prototype._searchAfter=function(t){return this._events.getEventAfter(t)},t.TimelineSignal.prototype.getValueAtTime=function(e){var i=this._searchAfter(e),n=this._searchBefore(e),o=this._initial;if(null===n)o=this._initial;else if(n.type===t.TimelineSignal.Type.Target){var r,s=this._events.getEventBefore(n.time);r=null===s?this._initial:s.value,o=this._exponentialApproach(n.time,r,n.value,n.constant,e)}else o=null===i?n.value:i.type===t.TimelineSignal.Type.Linear?this._linearInterpolate(n.time,n.value,i.time,i.value,e):i.type===t.TimelineSignal.Type.Exponential?this._exponentialInterpolate(n.time,n.value,i.time,i.value,e):n.value;return o},t.TimelineSignal.prototype.connect=t.SignalBase.prototype.connect,t.TimelineSignal.prototype._exponentialApproach=function(t,e,i,n,o){return i+(e-i)*Math.exp(-(o-t)/n)},t.TimelineSignal.prototype._linearInterpolate=function(t,e,i,n,o){return e+(n-e)*((o-t)/(i-t))},t.TimelineSignal.prototype._exponentialInterpolate=function(t,e,i,n,o){return e=Math.max(this._minOutput,e),e*Math.pow(n/e,(o-t)/(i-t))},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}(Tone_core_Tone,Tone_signal_Signal);var env;env=function(){"use strict";var t=master,e=Tone_signal_Add,i=Tone_signal_Multiply,n=Tone_signal_Scale,o=Tone_signal_TimelineSignal,r=Tone_core_Tone;r.setContext(t.audiocontext),p5.Env=function(e,i,n,r,s,a){t.audiocontext.currentTime;this.aTime=e||.1,this.aLevel=i||1,this.dTime=n||.5,this.dLevel=r||0,this.rTime=s||0,this.rLevel=a||0,this._rampHighPercentage=.98,this._rampLowPercentage=.02,this.output=t.audiocontext.createGain(),this.control=new o,this._init(),this.control.connect(this.output),this.connection=null,this.mathOps=[this.control],this.isExponential=!1,this.sourceToClear=null,this.wasTriggered=!1,t.soundArray.push(this)},p5.Env.prototype._init=function(){var e=t.audiocontext.currentTime,i=e;this.control.setTargetAtTime(1e-5,i,.001),this._setRampAD(this.aTime,this.dTime)},p5.Env.prototype.set=function(t,e,i,n,o,r){this.aTime=t,this.aLevel=e,this.dTime=i||0,this.dLevel=n||0,this.rTime=t4||0,this.rLevel=l4||0,this._setRampAD(t,i)},p5.Env.prototype.setADSR=function(t,e,i,n){this.aTime=t,this.dTime=e||0,this.sPercent=i||0,this.dLevel="undefined"!=typeof i?i*(this.aLevel-this.rLevel)+this.rLevel:0,this.rTime=n||0,this._setRampAD(t,e)},p5.Env.prototype.setRange=function(t,e){this.aLevel=t||1,this.rLevel=e||0},p5.Env.prototype._setRampAD=function(t,e){this._rampAttackTime=this.checkExpInput(t),this._rampDecayTime=this.checkExpInput(e);var i=1;i=Math.log(1/this.checkExpInput(1-this._rampHighPercentage)),this._rampAttackTC=t/this.checkExpInput(i),i=Math.log(1/this._rampLowPercentage),this._rampDecayTC=e/this.checkExpInput(i)},p5.Env.prototype.setRampPercentages=function(t,e){this._rampHighPercentage=this.checkExpInput(t),this._rampLowPercentage=this.checkExpInput(e);var i=1;i=Math.log(1/this.checkExpInput(1-this._rampHighPercentage)),this._rampAttackTC=this._rampAttackTime/this.checkExpInput(i),i=Math.log(1/this._rampLowPercentage),this._rampDecayTC=this._rampDecayTime/this.checkExpInput(i)},p5.Env.prototype.setInput=function(t){for(var e=0;e=t&&(t=1e-4),t},p5.Env.prototype.play=function(e,i,n){var o=(t.audiocontext.currentTime,i||0),n=n||0;e&&this.connection!==e&&this.connect(e),this.triggerAttack(e,o),this.triggerRelease(e,o+this.aTime+this.dTime+n)},p5.Env.prototype.triggerAttack=function(e,i){var n=t.audiocontext.currentTime,o=i||0,r=n+o;this.lastAttack=r,this.wasTriggered=!0,e&&this.connection!==e&&this.connect(e);var s=this.control.getValueAtTime(r);this.control.cancelScheduledValues(r),1==this.isExponential?this.control.exponentialRampToValueAtTime(this.checkExpInput(s),r):this.control.linearRampToValueAtTime(s,r),r+=this.aTime,1==this.isExponential?(this.control.exponentialRampToValueAtTime(this.checkExpInput(this.aLevel),r),s=this.checkExpInput(this.control.getValueAtTime(r)),this.control.cancelScheduledValues(r),this.control.exponentialRampToValueAtTime(s,r)):(this.control.linearRampToValueAtTime(this.aLevel,r),s=this.control.getValueAtTime(r),this.control.cancelScheduledValues(r),this.control.linearRampToValueAtTime(s,r)),r+=this.dTime,1==this.isExponential?(this.control.exponentialRampToValueAtTime(this.checkExpInput(this.dLevel),r),s=this.checkExpInput(this.control.getValueAtTime(r)),this.control.cancelScheduledValues(r),this.control.exponentialRampToValueAtTime(s,r)):(this.control.linearRampToValueAtTime(this.dLevel,r),s=this.control.getValueAtTime(r),this.control.cancelScheduledValues(r),this.control.linearRampToValueAtTime(s,r))},p5.Env.prototype.triggerRelease=function(e,i){if(this.wasTriggered){var n=t.audiocontext.currentTime,o=i||0,r=n+o;e&&this.connection!==e&&this.connect(e);var s=this.control.getValueAtTime(r);this.control.cancelScheduledValues(r),1==this.isExponential?this.control.exponentialRampToValueAtTime(this.checkExpInput(s),r):this.control.linearRampToValueAtTime(s,r),r+=this.rTime,1==this.isExponential?(this.control.exponentialRampToValueAtTime(this.checkExpInput(this.rLevel),r),s=this.checkExpInput(this.control.getValueAtTime(r)),this.control.cancelScheduledValues(r),this.control.exponentialRampToValueAtTime(s,r)):(this.control.linearRampToValueAtTime(this.rLevel,r),s=this.control.getValueAtTime(r),this.control.cancelScheduledValues(r),this.control.linearRampToValueAtTime(s,r)),this.wasTriggered=!1}},p5.Env.prototype.ramp=function(e,i,n,o){var r=t.audiocontext.currentTime,s=i||0,a=r+s,u=this.checkExpInput(n),c="undefined"!=typeof o?this.checkExpInput(o):void 0;e&&this.connection!==e&&this.connect(e);var p=this.checkExpInput(this.control.getValueAtTime(a));this.control.cancelScheduledValues(a),u>p?(this.control.setTargetAtTime(u,a,this._rampAttackTC),a+=this._rampAttackTime):p>u&&(this.control.setTargetAtTime(u,a,this._rampDecayTC),a+=this._rampDecayTime),void 0!==c&&(c>u?this.control.setTargetAtTime(c,a,this._rampAttackTC):u>c&&this.control.setTargetAtTime(c,a,this._rampDecayTC))},p5.Env.prototype.connect=function(e){this.connection=e,(e instanceof p5.Oscillator||e instanceof p5.SoundFile||e instanceof p5.AudioIn||e instanceof p5.Reverb||e instanceof p5.Noise||e instanceof p5.Filter||e instanceof p5.Delay)&&(e=e.output.gain),e instanceof AudioParam&&e.setValueAtTime(0,t.audiocontext.currentTime),e instanceof p5.Signal&&e.setValue(0),this.output.connect(e)},p5.Env.prototype.disconnect=function(t){this.output.disconnect()},p5.Env.prototype.add=function(t){var i=new e(t),n=this.mathOps.length,o=this.output;return p5.prototype._mathChain(this,i,n,o,e)},p5.Env.prototype.mult=function(t){var e=new i(t),n=this.mathOps.length,o=this.output;return p5.prototype._mathChain(this,e,n,o,i)},p5.Env.prototype.scale=function(t,e,i,o){var r=new n(t,e,i,o),s=this.mathOps.length,a=this.output;return p5.prototype._mathChain(this,r,s,a,n)},p5.Env.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1);t.audiocontext.currentTime;this.disconnect();try{this.control.dispose(),this.control=null}catch(i){}for(var n=1;no;o++)n[o]=1;var r=t.createBufferSource();return r.buffer=i,r.loop=!0,r}var e=master;p5.Pulse=function(i,n){p5.Oscillator.call(this,i,"sawtooth"),this.w=n||0,this.osc2=new p5.SawOsc(i),this.dNode=e.audiocontext.createDelay(),this.dcOffset=t(),this.dcGain=e.audiocontext.createGain(),this.dcOffset.connect(this.dcGain),this.dcGain.connect(this.output),this.f=i||440;var o=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=o,this.dcGain.gain.value=1.7*(.5-this.w),this.osc2.disconnect(),this.osc2.panner.disconnect(),this.osc2.amp(-1),this.osc2.output.connect(this.dNode),this.dNode.connect(this.output),this.output.gain.value=1,this.output.connect(this.panner)},p5.Pulse.prototype=Object.create(p5.Oscillator.prototype),p5.Pulse.prototype.width=function(t){if("number"==typeof t){if(1>=t&&t>=0){this.w=t;var e=this.w/this.oscillator.frequency.value;this.dNode.delayTime.value=e}this.dcGain.gain.value=1.7*(.5-this.w)}else{t.connect(this.dNode.delayTime);var i=new p5.SignalAdd(-.5);i.setInput(t),i=i.mult(-1),i=i.mult(1.7),i.connect(this.dcGain.gain)}},p5.Pulse.prototype.start=function(i,n){var o=e.audiocontext.currentTime,r=n||0;if(!this.started){var s=i||this.f,a=this.oscillator.type;this.oscillator=e.audiocontext.createOscillator(),this.oscillator.frequency.setValueAtTime(s,o),this.oscillator.type=a,this.oscillator.connect(this.output),this.oscillator.start(r+o),this.osc2.oscillator=e.audiocontext.createOscillator(),this.osc2.oscillator.frequency.setValueAtTime(s,r+o),this.osc2.oscillator.type=a,this.osc2.oscillator.connect(this.osc2.output),this.osc2.start(r+o),this.freqNode=[this.oscillator.frequency,this.osc2.oscillator.frequency],this.dcOffset=t(),this.dcOffset.connect(this.dcGain),this.dcOffset.start(r+o),void 0!==this.mods&&void 0!==this.mods.frequency&&(this.mods.frequency.connect(this.freqNode[0]),this.mods.frequency.connect(this.freqNode[1])),this.started=!0,this.osc2.started=!0}},p5.Pulse.prototype.stop=function(t){if(this.started){var i=t||0,n=e.audiocontext.currentTime;this.oscillator.stop(i+n),this.osc2.oscillator.stop(i+n),this.dcOffset.stop(i+n),this.started=!1,this.osc2.started=!1}},p5.Pulse.prototype.freq=function(t,i,n){if("number"==typeof t){this.f=t;var o=e.audiocontext.currentTime,i=i||0,n=n||0,r=this.oscillator.frequency.value;this.oscillator.frequency.cancelScheduledValues(o),this.oscillator.frequency.setValueAtTime(r,o+n),this.oscillator.frequency.exponentialRampToValueAtTime(t,n+i+o),this.osc2.oscillator.frequency.cancelScheduledValues(o),this.osc2.oscillator.frequency.setValueAtTime(r,o+n),this.osc2.oscillator.frequency.exponentialRampToValueAtTime(t,n+i+o),this.freqMod&&(this.freqMod.output.disconnect(),this.freqMod=null)}else t.output&&(t.output.disconnect(),t.output.connect(this.oscillator.frequency),t.output.connect(this.osc2.oscillator.frequency),this.freqMod=t)}}(master,oscillator);var noise;noise=function(){"use strict";var t=master;p5.Noise=function(t){p5.Oscillator.call(this),delete this.f,delete this.freq,delete this.oscillator,this.buffer=e},p5.Noise.prototype=Object.create(p5.Oscillator.prototype);var e=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),n=i.getChannelData(0),o=0;e>o;o++)n[o]=2*Math.random()-1;return i.type="white",i}(),i=function(){var e,i,n,o,r,s,a,u=2*t.audiocontext.sampleRate,c=t.audiocontext.createBuffer(1,u,t.audiocontext.sampleRate),p=c.getChannelData(0);e=i=n=o=r=s=a=0;for(var h=0;u>h;h++){var l=2*Math.random()-1;e=.99886*e+.0555179*l,i=.99332*i+.0750759*l,n=.969*n+.153852*l,o=.8665*o+.3104856*l,r=.55*r+.5329522*l,s=-.7616*s-.016898*l,p[h]=e+i+n+o+r+s+a+.5362*l,p[h]*=.11,a=.115926*l}return c.type="pink",c}(),n=function(){for(var e=2*t.audiocontext.sampleRate,i=t.audiocontext.createBuffer(1,e,t.audiocontext.sampleRate),n=i.getChannelData(0),o=0,r=0;e>r;r++){var s=2*Math.random()-1;n[r]=(o+.02*s)/1.02,o=n[r],n[r]*=3.5}return i.type="brown",i}();p5.Noise.prototype.setType=function(o){switch(o){case"white":this.buffer=e;break;case"pink":this.buffer=i;break;case"brown":this.buffer=n;break;default:this.buffer=e}if(this.started){var r=t.audiocontext.currentTime;this.stop(r),this.start(r+.01)}},p5.Noise.prototype.getType=function(){return this.buffer.type},p5.Noise.prototype.start=function(){this.started&&this.stop(),this.noise=t.audiocontext.createBufferSource(),this.noise.buffer=this.buffer,this.noise.loop=!0,this.noise.connect(this.output);var e=t.audiocontext.currentTime;this.noise.start(e),this.started=!0},p5.Noise.prototype.stop=function(){var e=t.audiocontext.currentTime;this.noise&&(this.noise.stop(e),this.started=!1)},p5.Noise.prototype.dispose=function(){var e=t.audiocontext.currentTime,i=t.soundArray.indexOf(this);t.soundArray.splice(i,1),this.noise&&(this.noise.disconnect(),this.stop(e)),this.output&&this.output.disconnect(),this.panner&&this.panner.disconnect(),this.output=null,this.panner=null,this.buffer=null,this.noise=null}}(master);var audioin;audioin=function(){"use strict";var t=master;p5.AudioIn=function(){this.input=t.audiocontext.createGain(),this.output=t.audiocontext.createGain(),this.stream=null,this.mediaStream=null,this.currentSource=0,this.enabled=!1,this.amplitude=new p5.Amplitude,this.output.connect(this.amplitude.input),"undefined"==typeof window.MediaStreamTrack?window.alert("This browser does not support MediaStreamTrack"):"function"==typeof window.MediaStreamTrack.getSources&&window.MediaStreamTrack.getSources(this._gotSources),t.soundArray.push(this)},p5.AudioIn.prototype.start=function(e,i){var n=this;if(t.inputSources[n.currentSource]){var o=t.inputSources[n.currentSource].id,r={audio:{optional:[{sourceId:o}]}};window.navigator.getUserMedia(r,this._onStream=function(i){n.stream=i,n.enabled=!0,n.mediaStream=t.audiocontext.createMediaStreamSource(i),n.mediaStream.connect(n.output),e&&e(),n.amplitude.setInput(n.output)},this._onStreamError=function(t){i?i(t):console.error(t)})}else window.navigator.getUserMedia({audio:!0},this._onStream=function(i){n.stream=i,n.enabled=!0,n.mediaStream=t.audiocontext.createMediaStreamSource(i),n.mediaStream.connect(n.output),n.amplitude.setInput(n.output),e&&e()},this._onStreamError=function(t){i?i(t):console.error(t)})},p5.AudioIn.prototype.stop=function(){this.stream&&this.stream.stop()},p5.AudioIn.prototype.connect=function(e){e?e.hasOwnProperty("input")?this.output.connect(e.input):e.hasOwnProperty("analyser")?this.output.connect(e.analyser):this.output.connect(e):this.output.connect(t.input)},p5.AudioIn.prototype.disconnect=function(t){this.output.disconnect(t),this.output.connect(this.amplitude.input)},p5.AudioIn.prototype.getLevel=function(t){return t&&(this.amplitude.smoothing=t),this.amplitude.getLevel()},p5.AudioIn.prototype._gotSources=function(t){for(var e=0;e0?t.inputSources:"This browser does not support MediaStreamTrack.getSources()"},p5.AudioIn.prototype.getSources=function(e){"function"==typeof window.MediaStreamTrack.getSources?window.MediaStreamTrack.getSources(function(i){for(var n=0,o=i.length;o>n;n++){var r=i[n];"audio"===r.kind&&t.inputSources.push(r)}e(t.inputSources)}):console.log("This browser does not support MediaStreamTrack.getSources()")},p5.AudioIn.prototype.setSource=function(e){var i=this;t.inputSources.length>0&&e=t&&(t=1),"number"==typeof t?(i.biquad.frequency.value=t,i.biquad.frequency.cancelScheduledValues(this.ac.currentTime+.01+n),i.biquad.frequency.exponentialRampToValueAtTime(t,this.ac.currentTime+.02+n)):t&&t.connect(this.biquad.frequency),i.biquad.frequency.value},p5.Filter.prototype.res=function(t,e){var i=this,n=e||0;return"number"==typeof t?(i.biquad.Q.value=t,i.biquad.Q.cancelScheduledValues(i.ac.currentTime+.01+n),i.biquad.Q.linearRampToValueAtTime(t,i.ac.currentTime+.02+n)):t&&freq.connect(this.biquad.Q),i.biquad.Q.value},p5.Filter.prototype.setType=function(t){this.biquad.type=t},p5.Filter.prototype.amp=function(e,i,n){var i=i||0,n=n||0,o=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(o),this.output.gain.linearRampToValueAtTime(r,o+n+.001),this.output.gain.linearRampToValueAtTime(e,o+n+i+.001)},p5.Filter.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Filter.prototype.disconnect=function(){this.output.disconnect()},p5.Filter.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.input=void 0,this.output.disconnect(),this.output=void 0,this.biquad.disconnect(),this.biquad=void 0},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)}(master);var delay;delay=function(){"use strict";var t=master;p5.Delay=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this._split=this.ac.createChannelSplitter(2),this._merge=this.ac.createChannelMerger(2),this._leftGain=this.ac.createGain(),this._rightGain=this.ac.createGain(),this.leftDelay=this.ac.createDelay(),this.rightDelay=this.ac.createDelay(),this._leftFilter=new p5.Filter,this._rightFilter=new p5.Filter,this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._leftFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._rightFilter.biquad.frequency.setValueAtTime(1200,this.ac.currentTime),this._leftFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this._rightFilter.biquad.Q.setValueAtTime(.3,this.ac.currentTime),this.input.connect(this._split),this.leftDelay.connect(this._leftGain),this.rightDelay.connect(this._rightGain),this._leftGain.connect(this._leftFilter.input),this._rightGain.connect(this._rightFilter.input),this._merge.connect(this.output),this.output.connect(p5.soundOut.input),this._leftFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this._rightFilter.biquad.gain.setValueAtTime(1,this.ac.currentTime),this.setType(0),this._maxDelay=this.leftDelay.delayTime.maxValue,t.soundArray.push(this)},p5.Delay.prototype.process=function(t,e,i,n){var o=i||0,r=e||0;if(o>=1)throw new Error("Feedback value will force a positive feedback loop.");if(r>=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.setValueAtTime(o,this.ac.currentTime),this._rightGain.gain.setValueAtTime(o,this.ac.currentTime),n&&(this._leftFilter.freq(n),this._rightFilter.freq(n))},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("number"!=typeof t)t.connect(this._leftGain.gain),t.connect(this._rightGain.gain);else{if(t>=1)throw new Error("Feedback value will force a positive feedback loop.");this._leftGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime),this._rightGain.gain.exponentialRampToValueAtTime(t,this.ac.currentTime)}},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._leftFilter.output.connect(this._merge,0,1),this._leftFilter.output.connect(this.leftDelay),this._leftFilter.output.connect(this.rightDelay)}},p5.Delay.prototype.amp=function(e,i,n){var i=i||0,n=n||0,o=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(o),this.output.gain.linearRampToValueAtTime(r,o+n+.001),this.output.gain.linearRampToValueAtTime(e,o+n+i+.001)},p5.Delay.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e)},p5.Delay.prototype.disconnect=function(){this.output.disconnect()},p5.Delay.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.input.disconnect(),this.output.disconnect(),this._split.disconnect(),this._leftFilter.disconnect(),this._rightFilter.disconnect(),this._merge.disconnect(),this._leftGain.disconnect(),this._rightGain.disconnect(),this.leftDelay.disconnect(),this.rightDelay.disconnect(),this.input=void 0,this.output=void 0,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}}(master,filter);var reverb;reverb=function(){"use strict";var t=master,e=errorHandler;p5.Reverb=function(){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse(),this.connect(),t.soundArray.push(this)},p5.Reverb.prototype.process=function(t,e,i,n){t.connect(this.input);var o=!1;e&&(this._seconds=e,o=!0),i&&(this._decay=i),n&&(this._reverse=n),o&&this._buildImpulse()},p5.Reverb.prototype.set=function(t,e,i){var n=!1;t&&(this._seconds=t,n=!0),e&&(this._decay=e),i&&(this._reverse=i),n&&this._buildImpulse()},p5.Reverb.prototype.amp=function(e,i,n){var i=i||0,n=n||0,o=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(o),this.output.gain.linearRampToValueAtTime(r,o+n+.001),this.output.gain.linearRampToValueAtTime(e,o+n+i+.001)},p5.Reverb.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Reverb.prototype.disconnect=function(){this.output.disconnect()},p5.Reverb.prototype._buildImpulse=function(){var t,e,i=this.ac.sampleRate,n=i*this._seconds,o=this._decay,r=this.ac.createBuffer(2,n,i),s=r.getChannelData(0),a=r.getChannelData(1);for(e=0;n>e;e++)t=this.reverse?n-e:e,s[e]=(2*Math.random()-1)*Math.pow(1-t/n,o),a[e]=(2*Math.random()-1)*Math.pow(1-t/n,o);this.convolverNode.buffer=r},p5.Reverb.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.convolverNode&&(this.convolverNode.buffer=null,this.convolverNode=null),"undefined"!=typeof this.output&&(this.output.disconnect(),this.output=null),"undefined"!=typeof this.panner&&(this.panner.disconnect(),this.panner=null)},p5.Convolver=function(e,i,n){this.ac=t.audiocontext,this.convolverNode=this.ac.createConvolver(),this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.convolverNode),this.convolverNode.connect(this.output),e?(this.impulses=[],this._loadBuffer(e,i,n)):(this._seconds=3,this._decay=2,this._reverse=!1,this._buildImpulse()),this.connect(),t.soundArray.push(this)},p5.Convolver.prototype=Object.create(p5.Reverb.prototype),p5.prototype.registerPreloadMethod("createConvolver",p5.prototype),p5.prototype.createConvolver=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS");var n=new p5.Convolver(t,e,i);return n.impulses=[],n},p5.Convolver.prototype._loadBuffer=function(t,i,n){var t=p5.prototype._checkFileFormats(t),o=this,r=(new Error).stack,s=p5.prototype.getAudioContext(),a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer",a.onload=function(){if(200==a.status)s.decodeAudioData(a.response,function(e){var n={},r=t.split("/");n.name=r[r.length-1],n.audioBuffer=e,o.impulses.push(n),o.convolverNode.buffer=n.audioBuffer,i&&i(n)},function(t){var i=new e("decodeAudioData",r,o.url),s="AudioContext error at decodeAudioData for "+o.url;n?(i.msg=s,n(i)):console.error(s+"\n The error stack trace includes: \n"+i.stack)});else{var u=new e("loadConvolver",r,o.url),c="Unable to load "+o.url+". The request status was: "+a.status+" ("+a.statusText+")";n?(u.message=c,n(u)):console.error(c+"\n The error stack trace includes: \n"+u.stack)}},a.onerror=function(t){var i=new e("loadConvolver",r,o.url),s="There was no response from the server at "+o.url+". Check the url and internet connectivity.";n?(i.message=s,n(i)):console.error(s+"\n The error stack trace includes: \n"+i.stack)},a.send()},p5.Convolver.prototype.set=null,p5.Convolver.prototype.process=function(t){t.connect(this.input)},p5.Convolver.prototype.impulses=[],p5.Convolver.prototype.addImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this._loadBuffer(t,e,i)},p5.Convolver.prototype.resetImpulse=function(t,e,i){window.location.origin.indexOf("file://")>-1&&"undefined"===window.cordova&&alert("This sketch may require a server to load external files. Please see http://bit.ly/1qcInwS"),this.impulses=[],this._loadBuffer(t,e,i)},p5.Convolver.prototype.toggleImpulse=function(t){if("number"==typeof t&&tthis._nextTick;){n>this._nextTick+this._threshold&&(this._nextTick=n);var a=this._nextTick;this._nextTick+=1/this.frequency.getValueAtTime(this._nextTick),this.callback(a),this.ticks++}else s===t.State.Stopped&&(this._nextTick=-1,this.ticks=0)},t.Clock.prototype.getStateAtTime=function(t){return this._state.getStateAtTime(t)},t.Clock.prototype.dispose=function(){cancelAnimationFrame(this._loopID),t.TimelineState.prototype.dispose.call(this),this._writable("frequency"),this.frequency.dispose(),this.frequency=null,this._boundLoop=t.noOp,this._nextTick=1/0,this.callback=null,this._state.dispose(),this._state=null},t.Clock}(Tone_core_Tone,Tone_signal_TimelineSignal);var metro;metro=function(){"use strict";var t=master,e=Tone_core_Clock;t.audiocontext;p5.Metro=function(){this.clock=new e({callback:this.ontick.bind(this)}),this.syncedParts=[],this.bpm=120,this._init(),this.tickCallback=function(){}};var i=0,n=0;p5.Metro.prototype.ontick=function(e){var o=e-i,r=e-t.audiocontext.currentTime;if(!(-.02>=o-n)){i=e;for(var s in this.syncedParts){ +var a=this.syncedParts[s];a.incrementStep(r);for(var u in a.phrases){var c=a.phrases[u],p=c.sequence,h=this.metroTicks%p.length;0!==p[h]&&(this.metroTicks=t.parts.length?(t.scoreStep=0,t.onended()):(t.scoreStep=0,t.parts[t.currentPart-1].stop(),t.parts[t.currentPart].start())}var e=master,i=120;p5.prototype.setBPM=function(t,n){i=t;for(var o in e.parts)e.parts[o].setBPM(i,n)},p5.Phrase=function(t,e,i){this.phraseStep=0,this.name=t,this.callback=e,this.sequence=i},p5.Part=function(t,n){this.length=t||0,this.partStep=0,this.phrases=[],this.looping=!1,this.isPlaying=!1,this.onended=function(){this.stop()},this.tatums=n||.0625,this.metro=new p5.Metro,this.metro._init(),this.metro.beatLength(this.tatums),this.metro.setBPM(i),e.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,i){var n;if(3===arguments.length)n=new p5.Phrase(t,e,i);else{if(!(arguments[0]instanceof p5.Phrase))throw"invalid input. addPhrase accepts name, callback, array or a p5.Phrase";n=arguments[0]}this.phrases.push(n),n.sequence.length>this.length&&(this.length=n.sequence.length)},p5.Part.prototype.removePhrase=function(t){for(var e in this.phrases)this.phrases[e].name===t&&this.phrases.split(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 i in this.phrases)this.phrases[i].name===t&&(this.phrases[i].sequence=e)},p5.Part.prototype.incrementStep=function(t){this.partStepr;)n[r++]=t[o],n[r++]=e[o],o++;return n}function e(t,e,i){for(var n=i.length,o=0;n>o;o++)t.setUint8(e+o,i.charCodeAt(o))}var i=master,n=i.audiocontext;p5.SoundRecorder=function(){this.input=n.createGain(),this.output=n.createGain(),this.recording=!1,this.bufferSize=1024,this._channels=2,this._clear(),this._jsNode=n.createScriptProcessor(this.bufferSize,this._channels,2),this._jsNode.onaudioprocess=this._audioprocess.bind(this),this._callback=function(){},this._jsNode.connect(p5.soundOut._silentNode),this.setInput(),i.soundArray.push(this)},p5.SoundRecorder.prototype.setInput=function(t){this.input.disconnect(),this.input=null,this.input=n.createGain(),this.input.connect(this._jsNode),this.input.connect(this.output),t?t.connect(this.input):p5.soundOut.output.connect(this.input)},p5.SoundRecorder.prototype.record=function(t,e,i){this.recording=!0,e&&(this.sampleLimit=Math.round(e*n.sampleRate)),t&&i?this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer),i()}:t&&(this._callback=function(){this.buffer=this._getBuffer(),t.setBuffer(this.buffer)})},p5.SoundRecorder.prototype.stop=function(){this.recording=!1,this._callback(),this._clear()},p5.SoundRecorder.prototype._clear=function(){this._leftBuffers=[],this._rightBuffers=[],this.recordedSamples=0,this.sampleLimit=null},p5.SoundRecorder.prototype._audioprocess=function(t){if(this.recording!==!1&&this.recording===!0)if(this.sampleLimit&&this.recordedSamples>=this.sampleLimit)this.stop();else{var e=t.inputBuffer.getChannelData(0),i=t.inputBuffer.getChannelData(1);this._leftBuffers.push(new Float32Array(e)),this._rightBuffers.push(new Float32Array(i)),this.recordedSamples+=this.bufferSize}},p5.SoundRecorder.prototype._getBuffer=function(){var t=[];return t.push(this._mergeBuffers(this._leftBuffers)),t.push(this._mergeBuffers(this._rightBuffers)),t},p5.SoundRecorder.prototype._mergeBuffers=function(t){for(var e=new Float32Array(this.recordedSamples),i=0,n=t.length,o=0;n>o;o++){var r=t[o];e.set(r,i),i+=r.length}return e},p5.SoundRecorder.prototype.dispose=function(){this._clear();var t=i.soundArray.indexOf(this);i.soundArray.splice(t,1),this._callback=function(){},this.input&&this.input.disconnect(),this.input=null,this._jsNode=null},p5.prototype.saveSound=function(i,n){var o=i.buffer.getChannelData(0),r=i.buffer.getChannelData(1),s=t(o,r),a=new ArrayBuffer(44+2*s.length),u=new DataView(a);e(u,0,"RIFF"),u.setUint32(4,44+2*s.length,!0),e(u,8,"WAVE"),e(u,12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,2,!0),u.setUint32(24,44100,!0),u.setUint32(28,176400,!0),u.setUint16(32,4,!0),u.setUint16(34,16,!0),e(u,36,"data"),u.setUint32(40,2*s.length,!0);for(var c=s.length,p=44,h=1,l=0;c>l;l++)u.setInt16(p,s[l]*(32767*h),!0),p+=2;p5.prototype.writeFile([u],n,"wav")}}(sndcore,master);var peakdetect;peakdetect=function(){"use strict";p5.PeakDetect=function(t,e,i,n){this.framesPerPeak=n||20,this.framesSinceLastPeak=0,this.decayRate=.95,this.threshold=i||.35,this.cutoff=0,this.cutoffMult=1.5,this.energy=0,this.penergy=0,this.currentValue=0,this.isDetected=!1,this.f1=t||40,this.f2=e||2e4,this._onPeak=function(){}},p5.PeakDetect.prototype.update=function(t){var e=this.energy=t.getEnergy(this.f1,this.f2)/255;e>this.cutoff&&e>this.threshold&&e-this.penergy>0?(this._onPeak(),this.isDetected=!0,this.cutoff=e*this.cutoffMult,this.framesSinceLastPeak=0):(this.isDetected=!1,this.framesSinceLastPeak<=this.framesPerPeak?this.framesSinceLastPeak++:(this.cutoff*=this.decayRate,this.cutoff=Math.max(this.cutoff,this.threshold))),this.currentValue=e,this.penergy=e},p5.PeakDetect.prototype.onPeak=function(t,e){var i=this;i._onPeak=function(){t(i.energy,e)}}}(master);var gain;gain=function(){"use strict";var t=master;p5.Gain=function(){this.ac=t.audiocontext,this.input=this.ac.createGain(),this.output=this.ac.createGain(),this.input.gain.value=.5,this.input.connect(this.output),t.soundArray.push(this)},p5.Gain.prototype.setInput=function(t){t.connect(this.input)},p5.Gain.prototype.connect=function(t){var e=t||p5.soundOut.input;this.output.connect(e.input?e.input:e)},p5.Gain.prototype.disconnect=function(){this.output.disconnect()},p5.Gain.prototype.amp=function(e,i,n){var i=i||0,n=n||0,o=t.audiocontext.currentTime,r=this.output.gain.value;this.output.gain.cancelScheduledValues(o),this.output.gain.linearRampToValueAtTime(r,o+n),this.output.gain.linearRampToValueAtTime(e,o+n+i)},p5.Gain.prototype.dispose=function(){var e=t.soundArray.indexOf(this);t.soundArray.splice(e,1),this.output.disconnect(),this.input.disconnect(),this.output=void 0,this.input=void 0}}(master,sndcore);var src_app;src_app=function(){"use strict";var t=sndcore;return t}(sndcore,master,helpers,errorHandler,panner,soundfile,amplitude,fft,signal,oscillator,env,pulse,noise,audioin,filter,delay,reverb,metro,looper,soundRecorder,peakdetect,gain)}); \ No newline at end of file diff --git a/package.json b/package.json index 9ce2efad..63cdd817 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "type": "git", "url": "https://github.com/therewasaguy/p5.sound.js.git" }, - "version": "0.2.17", + "version": "0.3.0", "license": "MIT", "devDependencies": { "grunt": "~0.4.2",