From 391ca131bd4bbcc496ec6075f038c97abc13c90a Mon Sep 17 00:00:00 2001 From: Andy Harman Date: Tue, 28 Jul 2020 18:50:12 +0100 Subject: [PATCH 1/3] Only create AudioContext when necessary --- dist/NexusUI.js | 379 ++++++++++++++++++--------------- dist/NexusUI.map | 2 +- dist/NexusUI.min.js | 12 +- dist/NexusUI.min.map | 2 +- lib/interfaces/meter.js | 90 ++++---- lib/interfaces/oscilloscope.js | 45 ++-- lib/interfaces/spectrogram.js | 50 +++-- lib/main.js | 163 ++++++++------ 8 files changed, 416 insertions(+), 327 deletions(-) diff --git a/dist/NexusUI.js b/dist/NexusUI.js index 59260f8b..db2f59c0 100644 --- a/dist/NexusUI.js +++ b/dist/NexusUI.js @@ -80,7 +80,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.context = context; exports.clock = clock; Object.defineProperty(exports, "__esModule", { - value: true + value: true }); "use strict"; @@ -104,114 +104,150 @@ return /******/ (function(modules) { // webpackBootstrap var Interval = _interopRequire(__webpack_require__(29)); + var DefaultContext = window.AudioContext || window.webkitAudioContext; + + function unlockAudioContext(audioContext) { + var events = ["touchstart", "touchend", "mousedown", "keydown"]; + + function unlock() { + events.forEach(function (eventName) { + return document.body.removeEventListener(eventName, unlock); + }); + if (audioContext.state === "suspended") { + console.log("Audio context - unlocked ..."); + audioContext.resume(); + } + } + + if (audioContext.state === "suspended") { + console.log("Audio context - suspended until user interaction ..."); + events.forEach(function (eventName) { + document.body.addEventListener(eventName, unlock, false); + }); + } + } + /** NexusUI => created as Nexus */ var NexusUI = (function () { - function NexusUI(context) { - _classCallCheck(this, NexusUI); + function NexusUI(context) { + _classCallCheck(this, NexusUI); - for (var key in Interfaces) { - this[key] = Interfaces[key]; - } + for (var key in Interfaces) { + this[key] = Interfaces[key]; + } - for (var key in math) { - this[key] = math[key]; - } + for (var key in math) { + this[key] = math[key]; + } - var Core = { - Rack: Rack - }; + var Core = { + Rack: Rack + }; - var Models = { - Counter: Counter, - Radio: Radio, - Drunk: Drunk, - Sequence: Sequence, - Matrix: Matrix - }; + var Models = { + Counter: Counter, + Radio: Radio, + Drunk: Drunk, + Sequence: Sequence, + Matrix: Matrix + }; - for (var key in Models) { - this[key] = Models[key]; - } + for (var key in Models) { + this[key] = Models[key]; + } - for (var key in Core) { - this[key] = Core[key]; - } + for (var key in Core) { + this[key] = Core[key]; + } - var DefaultContext = window.AudioContext || window.webkitAudioContext; - this._context = context || new DefaultContext(); + this._context = context; - this.tune = new Tune(); - this.note = this.tune.note.bind(this.tune); + this.tune = new Tune(); + this.note = this.tune.note.bind(this.tune); - this.clock = new WAAClock(this._context); - this.clock.start(); - this.Interval = Interval; + this._clock = null; + this.Interval = Interval; - this.colors = { - accent: "#2bb", - fill: "#eee", - light: "#fff", - dark: "#333", - mediumLight: "#ccc", - mediumDark: "#666" - }; + this.colors = { + accent: "#2bb", + fill: "#eee", + light: "#fff", + dark: "#333", + mediumLight: "#ccc", + mediumDark: "#666" + }; - this.transform = Transform; - this.add = Transform.add; + this.transform = Transform; + this.add = Transform.add; - this.Add = {}; - for (var key in Interfaces) { - this.Add[key] = Transform.add.bind(this, key); - } + this.Add = {}; + for (var key in Interfaces) { + this.Add[key] = Transform.add.bind(this, key); + } - /* create default component size */ - /* jshint ignore:start */ - var existingStylesheets = document.getElementsByTagName("style"); - var defaultSizeDeclaration = "[nexus-ui]{height:5000px;width:5000px}"; - var defaultStyleNode = document.createElement("style"); - defaultStyleNode.type = "text/css"; - defaultStyleNode.innerHTML = defaultSizeDeclaration; - if (existingStylesheets.length > 0) { - var parent = existingStylesheets[0].parentNode; - parent.insertBefore(defaultStyleNode, existingStylesheets[0]); - } else { - document.write(""); - } - /* jshint ignore:end */ - } - - _createClass(NexusUI, { - context: { - get: function () { - return this._context; - }, - set: function (ctx) { - this.clock.stop(); - this._context = ctx; - this.clock = new WAAClock(this.context); - this.clock.start(); - } - } - }); + /* create default component size */ + /* jshint ignore:start */ + var existingStylesheets = document.getElementsByTagName("style"); + var defaultSizeDeclaration = "[nexus-ui]{height:5000px;width:5000px}"; + var defaultStyleNode = document.createElement("style"); + defaultStyleNode.type = "text/css"; + defaultStyleNode.innerHTML = defaultSizeDeclaration; + if (existingStylesheets.length > 0) { + var parent = existingStylesheets[0].parentNode; + parent.insertBefore(defaultStyleNode, existingStylesheets[0]); + } else { + document.write(""); + } + /* jshint ignore:end */ + } + + _createClass(NexusUI, { + context: { + get: function () { + if (!this._context) { + this.context = new DefaultContext(); + } + return this._context; + }, + set: function (ctx) { + if (this._clock) { + this._clock.stop(); + this._clock = null; + } + + this._context = ctx; + unlockAudioContext(ctx); + } + }, + clock: { + get: function () { + if (!this._clock) { + this._clock = new WAAClock(this.context); + this._clock.start(); + } + return this._clock; + } + } + }); - return NexusUI; + return NexusUI; })(); var Nexus = new NexusUI(); function colors() { - return Nexus.colors; + return Nexus.colors; } function context() { - return Nexus.context; + return Nexus.context; } function clock() { - return Nexus.clock; + return Nexus.clock; } exports["default"] = Nexus; @@ -7761,11 +7797,8 @@ return /******/ (function(modules) { // webpackBootstrap var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; var dom = __webpack_require__(7); - //let math = require('../util/math'); var Interface = __webpack_require__(6); - var context = __webpack_require__(1).context; - /** * Spectrogram * @@ -7775,11 +7808,13 @@ return /******/ (function(modules) { // webpackBootstrap * * @example * var spectrogram = new Nexus.Spectrogram('#target') + * spectrogram.connect(myWebAudioNode) * * @example * var spectrogram = new Nexus.Spectrogram('#target',{ * 'size': [300,150] * }) + * spectrogram.connect(myWebAudioNode) * * @output *   @@ -7791,7 +7826,7 @@ return /******/ (function(modules) { // webpackBootstrap function Spectrogram() { _classCallCheck(this, Spectrogram); - var options = ["scale", "value"]; + var options = []; var defaults = { size: [300, 150] @@ -7799,16 +7834,11 @@ return /******/ (function(modules) { // webpackBootstrap _get(Object.getPrototypeOf(Spectrogram.prototype), "constructor", this).call(this, arguments, options, defaults); - this.context = context(); // jshint ignore:line - - this.analyser = this.context.createAnalyser(); - this.analyser.fftSize = 2048; - this.bufferLength = this.analyser.frequencyBinCount; - this.dataArray = new Uint8Array(this.bufferLength); - - this.active = true; - - this.source = false; + this.analyser = null; + this.bufferLength = 0; + this.dataArray = null; + this.active = false; + this.source = null; this.init(); } @@ -7838,7 +7868,9 @@ return /******/ (function(modules) { // webpackBootstrap requestAnimationFrame(this.render.bind(this)); } - this.analyser.getByteFrequencyData(this.dataArray); + if (this.analyser) { + this.analyser.getByteFrequencyData(this.dataArray); + } this.canvas.context.fillStyle = this.colors.fill; this.canvas.context.fillRect(0, 0, this.canvas.element.width, this.canvas.element.height); @@ -7868,18 +7900,26 @@ return /******/ (function(modules) { // webpackBootstrap connect: { /** - Equivalent to "patching in" an audio node to visualize. NOTE: You cannot connect audio nodes across two different audio contexts. NexusUI runs its audio analysis on its own audio context, Nexus.context. If the audio node you are visualizing is created on a different audio context, you will need to tell NexusUI to use that context instead: i.e. Nexus.context = YourAudioContextName. For example, in ToneJS projects, the line would be: Nexus.context = Tone.context . We recommend that you write that line of code only once at the beginning of your project. + Equivalent to "patching in" an audio node to visualize. @param node {AudioNode} The audio node to visualize - @example Nexus.context = Tone.context // or another audio context you have created - spectrogram.connect( Tone.Master ); + @example spectrogram.connect( Tone.Master ); */ value: function connect(node) { if (this.source) { this.disconnect(); } + + this.analyser = node.context.createAnalyser(); + this.analyser.fftSize = 2048; + this.bufferLength = this.analyser.frequencyBinCount; + this.dataArray = new Uint8Array(this.bufferLength); + + this.active = true; + this.source = node; this.source.connect(this.analyser); + this.render(); } }, @@ -7890,13 +7930,20 @@ return /******/ (function(modules) { // webpackBootstrap */ value: function disconnect() { - this.source.disconnect(this.analyser); + if (this.source) { + this.source.disconnect(this.analyser); + } + + this.analyser = null; + this.bufferLength = 0; + this.dataArray = null; + this.active = false; this.source = null; } }, click: { value: function click() { - this.active = !this.active; + this.active = !this.active && this.source; this.render(); } }, @@ -7930,8 +7977,6 @@ return /******/ (function(modules) { // webpackBootstrap var math = __webpack_require__(5); var Interface = __webpack_require__(6); - var context = __webpack_require__(1).context; - /** * Meter * @@ -7941,11 +7986,13 @@ return /******/ (function(modules) { // webpackBootstrap * * @example * var meter = new Nexus.Meter('#target') + * meter.connect(myWebAudioNode) * * @example - * var meter = new Nexus.Meter('#target',{ + * var meter = new Nexus.Meter('#target', { * size: [75,75] * }) + * meter.connect(myWebAudioNode) * * @output *   @@ -7957,7 +8004,7 @@ return /******/ (function(modules) { // webpackBootstrap function Meter() { _classCallCheck(this, Meter); - var options = ["scale", "value"]; + var options = []; var defaults = { size: [30, 100] @@ -7965,37 +8012,13 @@ return /******/ (function(modules) { // webpackBootstrap _get(Object.getPrototypeOf(Meter.prototype), "constructor", this).call(this, arguments, options, defaults); - this.context = context(); // jshint ignore:line - this.channels = 2; - - this.splitter = this.context.createChannelSplitter(this.channels); - + this.splitter = null; this.analysers = []; - - for (var i = 0; i < this.channels; i++) { - var analyser = this.context.createAnalyser(); - this.splitter.connect(analyser, i); - analyser.fftSize = 1024; - analyser.smoothingTimeConstant = 1; - this.analysers.push(analyser); - } - this.bufferLength = this.analysers[0].frequencyBinCount; - this.dataArray = new Float32Array(this.bufferLength); - - /* - // add linear gradient - var grd = canvasCtx.createLinearGradient(0, 0, 0, canvas.height); - // light blue - grd.addColorStop(0, '#000'); - grd.addColorStop(0.2, '#bbb'); - grd.addColorStop(0.4, '#d18'); - // dark blue - grd.addColorStop(1, '#d18'); - canvasCtx.fillStyle = grd; */ - - this.active = true; - + this.bufferLength = 0; + this.dataArray = null; + this.active = false; + this.source = null; this.db = -Infinity; this.init(); @@ -8070,32 +8093,40 @@ return /******/ (function(modules) { // webpackBootstrap connect: { /** - Equivalent to "patching in" an audio node to visualize. NOTE: You cannot connect audio nodes across two different audio contexts. NexusUI runs its audio analysis on its own audio context, Nexus.context. If the audio node you are visualizing is created on a different audio context, you will need to tell NexusUI to use that context instead: i.e. Nexus.context = YourAudioContextName. For example, in ToneJS projects, the line would be: Nexus.context = Tone.context . We recommend that you write that line of code only once at the beginning of your project. + Equivalent to "patching in" an audio node to visualize. @param node {AudioNode} The audio node to visualize @param channels {number} (optional) The number of channels in the source node to watch. If not specified, the interface will look for a .channelCount property on the input node. If it does not exist, the interface will default to 1 channel. - @example Nexus.context = Tone.context // or another audio context you have created - meter.connect( Tone.Master, 2 ); + @example meter.connect( Tone.Master, 2 ); */ value: function connect(node, channels) { if (this.source) { this.disconnect(); } - //this.dummy.disconnect(this.splitter); - if (channels) { - this.channels = channels; - } else if (node.channelCount) { - this.channels = node.channelCount; - } else { - this.channels = 2; + this.channels = channels || node.channelCount || 2; + + this.splitter = node.context.createChannelSplitter(this.channels); + + this.analysers = []; + for (var i = 0; i < this.channels; i++) { + var analyser = node.context.createAnalyser(); + analyser.fftSize = 1024; + analyser.smoothingTimeConstant = 1; + this.splitter.connect(analyser, i); + this.analysers.push(analyser); } + this.bufferLength = this.analysers[0].frequencyBinCount; + this.dataArray = new Float32Array(this.bufferLength); + + this.active = true; + this.meterWidth = this.canvas.element.width / this.channels; this.source = node; this.source.connect(this.splitter); - // this.render(); + this.render(); } }, disconnect: { @@ -8105,15 +8136,21 @@ return /******/ (function(modules) { // webpackBootstrap */ value: function disconnect() { - this.source.disconnect(this.splitter); - this.source = false; - // this.dummy.connect(this.splitter); - this.meterWidth = this.canvas.element.width / this.channels; + if (this.source) { + this.source.disconnect(this.splitter); + } + + this.splitter = null; + this.analysers = []; + this.bufferLength = 0; + this.dataArray = null; + this.active = false; + this.source = null; } }, click: { value: function click() { - this.active = !this.active; + this.active = !this.active && this.source; this.render(); } }, @@ -8146,8 +8183,6 @@ return /******/ (function(modules) { // webpackBootstrap var dom = __webpack_require__(7); var Interface = __webpack_require__(6); - var context = __webpack_require__(1).context; - /** * Oscilloscope * @@ -8157,11 +8192,13 @@ return /******/ (function(modules) { // webpackBootstrap * * @example * var oscilloscope = new Nexus.Oscilloscope('#target') + * oscilloscope.connect(myWebAudioNode) * * @example * var oscilloscope = new Nexus.Oscilloscope('#target',{ * 'size': [300,150] * }) + * oscilloscope.connect(myWebAudioNode) * * @output *   @@ -8173,7 +8210,7 @@ return /******/ (function(modules) { // webpackBootstrap function Oscilloscope() { _classCallCheck(this, Oscilloscope); - var options = ["scale", "value"]; + var options = []; var defaults = { size: [300, 150] @@ -8181,17 +8218,13 @@ return /******/ (function(modules) { // webpackBootstrap _get(Object.getPrototypeOf(Oscilloscope.prototype), "constructor", this).call(this, arguments, options, defaults); - this.context = context(); // jshint ignore:line + this.analyser = null; + this.bufferLength = 0; + this.dataArray = null; - this.analyser = this.context.createAnalyser(); - this.analyser.fftSize = 2048; - this.bufferLength = this.analyser.frequencyBinCount; - this.dataArray = new Uint8Array(this.bufferLength); - this.analyser.getByteTimeDomainData(this.dataArray); + this.active = false; - this.active = true; - - this.source = false; + this.source = null; this.init(); @@ -8223,7 +8256,9 @@ return /******/ (function(modules) { // webpackBootstrap requestAnimationFrame(this.render.bind(this)); } - this.analyser.getByteTimeDomainData(this.dataArray); + if (this.analyser) { + this.analyser.getByteTimeDomainData(this.dataArray); + } this.canvas.context.fillStyle = this.colors.fill; this.canvas.context.fillRect(0, 0, this.canvas.element.width, this.canvas.element.height); @@ -8260,10 +8295,9 @@ return /******/ (function(modules) { // webpackBootstrap connect: { /** - Equivalent to "patching in" an audio node to visualize. NOTE: You cannot connect audio nodes across two different audio contexts. NexusUI runs its audio analysis on its own audio context, Nexus.context. If the audio node you are visualizing is created on a different audio context, you will need to tell NexusUI to use that context instead: i.e. Nexus.context = YourAudioContextName. For example, in ToneJS projects, the line would be: Nexus.context = Tone.context . We recommend that you write that line of code only once at the beginning of your project. + Equivalent to "patching in" an audio node to visualize. @param node {AudioNode} The audio node to visualize - @example Nexus.context = Tone.context // or another audio context you have created - oscilloscope.connect( Tone.Master ); + @example oscilloscope.connect( Tone.Master ); */ value: function connect(node) { @@ -8271,6 +8305,14 @@ return /******/ (function(modules) { // webpackBootstrap this.disconnect(); } + this.analyser = node.context.createAnalyser(); + this.analyser.fftSize = 2048; + this.bufferLength = this.analyser.frequencyBinCount; + this.dataArray = new Uint8Array(this.bufferLength); + this.analyser.getByteTimeDomainData(this.dataArray); + + this.active = true; + this.source = node; this.source.connect(this.analyser); @@ -8286,13 +8328,18 @@ return /******/ (function(modules) { // webpackBootstrap value: function disconnect() { if (this.source) { this.source.disconnect(this.analyser); - this.source = null; } + + this.analyser = null; + this.bufferLength = 0; + this.dataArray = null; + this.active = false; + this.source = null; } }, click: { value: function click() { - this.active = !this.active; + this.active = !this.active && this.source; this.render(); } }, diff --git a/dist/NexusUI.map b/dist/NexusUI.map index 8dc40e2f..8be4a18c 100644 --- a/dist/NexusUI.map +++ b/dist/NexusUI.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 2790276aa6c8b9080f1a","webpack:///./index.js","webpack:///./lib/main.js","webpack:///./lib/interfaces/index.js","webpack:///./lib/interfaces/position.js","webpack:///./lib/util/svg.js","webpack:///./lib/util/math.js","webpack:///./lib/core/interface.js","webpack:///./lib/util/dom.js","webpack:///./lib/util/util.js","webpack:///./lib/util/touch.js","webpack:///./~/events/events.js","webpack:///./lib/models/step.js","webpack:///./lib/util/interaction.js","webpack:///./lib/models/toggle.js","webpack:///./lib/interfaces/slider.js","webpack:///./lib/interfaces/toggle.js","webpack:///./lib/interfaces/button.js","webpack:///./lib/components/buttontemplate.js","webpack:///./lib/interfaces/textbutton.js","webpack:///./lib/interfaces/radiobutton.js","webpack:///./lib/interfaces/number.js","webpack:///./lib/interfaces/select.js","webpack:///./lib/interfaces/dial.js","webpack:///./lib/interfaces/piano.js","webpack:///./lib/interfaces/sequencer.js","webpack:///./lib/models/matrix.js","webpack:///./lib/models/sequence.js","webpack:///./lib/models/drunk.js","webpack:///./lib/models/counter.js","webpack:///./lib/time/interval.js","webpack:///./lib/interfaces/pan2d.js","webpack:///./lib/interfaces/tilt.js","webpack:///./lib/interfaces/multislider.js","webpack:///./lib/interfaces/pan.js","webpack:///./lib/interfaces/envelope.js","webpack:///./lib/interfaces/spectrogram.js","webpack:///./lib/interfaces/meter.js","webpack:///./lib/interfaces/oscilloscope.js","webpack:///./lib/core/rack.js","webpack:///./lib/util/transform.js","webpack:///./lib/tuning/tuning.js","webpack:///./lib/models/radio.js","webpack:///./~/waaclock/index.js","webpack:///./~/waaclock/lib/WAAClock.js","webpack:///./~/process/browser.js"],"names":[],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,gBAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAG;AACH,qBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;AC7SA,aAAY,CAAC;;;;;;AAEb,KAAI,IAAI,GAAG,mBAAO,CAAC,CAAc,CAAC,CAAC;;;;;;;;;;;KAWd,IAAI;AAEZ,YAFQ,IAAI,GAEyB;SAApC,GAAG,gCAAG,CAAC;SAAC,GAAG,gCAAG,CAAC;SAAC,IAAI,gCAAG,CAAC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A;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAAyC;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,IAAG;AACH;AACA;;AAEA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAkC,iCAAiC;AACnE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC,eAAe;AACpD;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,I;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,E;;;;;;;ACzOA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAqC;;AAErC;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU","file":"./dist/NexusUI.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Nexus\"] = factory();\n\telse\n\t\troot[\"Nexus\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 2790276aa6c8b9080f1a","'use strict';\r\n\r\nimport NexusUI from './lib/main';\r\n\r\nexport default NexusUI;\r\n\n\n\n// WEBPACK FOOTER //\n// ./~/jshint-loader!./index.js","'use strict';\r\n\r\nimport Interfaces from './interfaces/';\r\nimport math from './util/math';\r\nimport Rack from './core/rack';\r\nimport Tune from './tuning/tuning';\r\nimport * as Transform from './util/transform';\r\n\r\nlet Counter = require('./models/counter');\r\nlet Radio = require('./models/radio');\r\nlet Drunk = require('./models/drunk');\r\nlet Sequence = require('./models/sequence');\r\nlet Matrix = require('./models/matrix');\r\n\r\nimport WAAClock from 'waaclock';\r\nimport Interval from './time/interval';\r\n\r\n\r\n/**\r\nNexusUI => created as Nexus\r\n*/\r\n\r\nclass NexusUI {\r\n\r\n constructor(context) {\r\n\r\n for (let key in Interfaces) {\r\n this[key] = Interfaces[key];\r\n }\r\n\r\n for (let key in math) {\r\n this[key] = math[key];\r\n }\r\n\r\n let Core = {\r\n 'Rack': Rack\r\n };\r\n\r\n let Models = {\r\n 'Counter': Counter,\r\n 'Radio': Radio,\r\n 'Drunk': Drunk,\r\n 'Sequence': Sequence,\r\n 'Matrix': Matrix\r\n };\r\n\r\n for (let key in Models) {\r\n this[key] = Models[key];\r\n }\r\n\r\n for (let key in Core) {\r\n this[key] = Core[key];\r\n }\r\n\r\n let DefaultContext = window.AudioContext || window.webkitAudioContext;\r\n this._context = context || new DefaultContext();\r\n\r\n this.tune = new Tune();\r\n this.note = this.tune.note.bind(this.tune);\r\n\r\n this.clock = new WAAClock(this._context);\r\n this.clock.start();\r\n this.Interval = Interval;\r\n\r\n this.colors = {\r\n accent: '#2bb',\r\n fill: '#eee',\r\n light: '#fff',\r\n dark: '#333',\r\n mediumLight: '#ccc',\r\n mediumDark: '#666'\r\n };\r\n\r\n this.transform = Transform;\r\n this.add = Transform.add;\r\n\r\n\r\n this.Add = {};\r\n for (let key in Interfaces) {\r\n this.Add[key] = Transform.add.bind(this,key);\r\n }\r\n\r\n\r\n\r\n\r\n /* create default component size */\r\n /* jshint ignore:start */\r\n var existingStylesheets = document.getElementsByTagName(\"style\");\r\n var defaultSizeDeclaration = '[nexus-ui]{height:5000px;width:5000px}';\r\n var defaultStyleNode = document.createElement('style');\r\n defaultStyleNode.type = 'text/css';\r\n defaultStyleNode.innerHTML = defaultSizeDeclaration;\r\n if (existingStylesheets.length > 0) {\r\n var parent = existingStylesheets[0].parentNode\r\n parent.insertBefore( defaultStyleNode, existingStylesheets[0])\r\n } else {\r\n document.write('")}return _createClass(NexusUI,{context:{get:function(){return this._context},set:function(ctx){this.clock.stop(),this._context=ctx,this.clock=new WAAClock(this.context),this.clock.start()}}}),NexusUI}(),Nexus=new NexusUI;exports.default=Nexus},function(module,exports,__webpack_require__){"use strict";module.exports={Position:__webpack_require__(3),Slider:__webpack_require__(14),Toggle:__webpack_require__(15),Button:__webpack_require__(16),TextButton:__webpack_require__(18),RadioButton:__webpack_require__(19),Number:__webpack_require__(20),Select:__webpack_require__(21),Dial:__webpack_require__(22),Piano:__webpack_require__(23),Sequencer:__webpack_require__(24),Pan2D:__webpack_require__(30),Tilt:__webpack_require__(31),Multislider:__webpack_require__(32),Pan:__webpack_require__(33),Envelope:__webpack_require__(34),Spectrogram:__webpack_require__(35),Meter:__webpack_require__(36),Oscilloscope:__webpack_require__(37)}},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc&&desc.writable)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(subClass.__proto__=superClass)},_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},svg=__webpack_require__(4),Interface=__webpack_require__(6),Step=__webpack_require__(11),Interaction=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(12)),Position=function(_Interface){function Position(){_classCallCheck(this,Position);var options=["value"],defaults={size:[200,200],mode:"absolute",minX:0,maxX:1,stepX:0,x:.5,minY:0,maxY:1,stepY:0,y:.5};_get(Object.getPrototypeOf(Position.prototype),"constructor",this).call(this,arguments,options,defaults),this._x=new Step(this.settings.minX,this.settings.maxX,this.settings.stepX,this.settings.x),this._y=new Step(this.settings.minY,this.settings.maxY,this.settings.stepY,this.settings.y),this.position={x:new Interaction.Handle(this.settings.mode,"horizontal",[0,this.width],[this.height,0]),y:new Interaction.Handle(this.settings.mode,"vertical",[0,this.width],[this.height,0])},this.position.x.value=this._x.normalized,this.position.y.value=this._y.normalized,this.init(),this.render()}return _inherits(Position,_Interface),_createClass(Position,{buildInterface:{value:function(){this.knob=svg.create("circle"),this.element.appendChild(this.knob)}},sizeInterface:{value:function(){this.position.x.resize([0,this.width],[this.height,0]),this.position.y.resize([0,this.width],[this.height,0]),this._minDimension=Math.min(this.width,this.height),this.knobRadius={off:5*~~(this._minDimension/100)+5},this.knobRadius.on=2*this.knobRadius.off,this.knob.setAttribute("cx",this.width/2),this.knob.setAttribute("cy",this.height/2),this.knob.setAttribute("r",this.knobRadius.off)}},colorInterface:{value:function(){this.element.style.backgroundColor=this.colors.fill,this.knob.setAttribute("fill",this.colors.accent)}},render:{value:function(){this.clicked?this.knob.setAttribute("r",this.knobRadius.on):this.knob.setAttribute("r",this.knobRadius.off),this.knobCoordinates={x:this._x.normalized*this.width,y:this.height-this._y.normalized*this.height},this.knob.setAttribute("cx",this.knobCoordinates.x),this.knob.setAttribute("cy",this.knobCoordinates.y)}},click:{value:function(){this.position.x.anchor=this.mouse,this.position.y.anchor=this.mouse,this.move()}},move:{value:function(){this.clicked&&(this.position.x.update(this.mouse),this.position.y.update(this.mouse),this._x.updateNormal(this.position.x.value),this._y.updateNormal(this.position.y.value),this.emit("change",{x:this._x.value,y:this._y.value}),this.render())}},release:{value:function(){this.render()}},x:{get:function(){return this._x.value},set:function(value){this._x.update(value),this.emit("change",{x:this._x.value,y:this._y.value}),this.render()}},y:{get:function(){return this._y.value},set:function(value){this._y.update(value),this.emit("change",{x:this._x.value,y:this._y.value}),this.render()}},normalized:{get:function(){return{x:this._x.normalized,y:this._y.normalized}}},minX:{get:function(){return this._x.min},set:function(v){this._x.min=v,this.render()}},minY:{get:function(){return this._y.min},set:function(v){this._y.min=v,this.render()}},maxX:{get:function(){return this._x.max},set:function(v){this._x.max=v,this.render()}},maxY:{get:function(){return this._y.max},set:function(v){this._y.max=v,this.render()}},stepX:{get:function(){return this._x.step},set:function(v){this._x.step=v,this.render()}},stepY:{get:function(){return this._y.step},set:function(v){this._y.step=v,this.render()}},mode:{get:function(){return this.position.x.mode},set:function(v){this.position.x.mode=v,this.position.y.mode=v}}}),Position}(Interface);module.exports=Position},function(module,exports,__webpack_require__){"use strict";var math=__webpack_require__(5);module.exports={create:function(type){return document.createElementNS("http://www.w3.org/2000/svg",type)},arc:function(x,y,radius,startAngle,endAngle){var start=math.toCartesian(radius,endAngle),end=math.toCartesian(radius,startAngle),largeArcFlag=endAngle-startAngle<=180?"0":"1";return["M",start.x+x,start.y+y,"A",radius,radius,0,largeArcFlag,0,end.x+x,end.y+y].join(" ")},radialGradient:function(defs,numberOfStops){var id="gradient"+math.ri(1e11),stops=[],gradient=document.createElementNS("http://www.w3.org/2000/svg","radialGradient");gradient.setAttribute("id",id),gradient.setAttribute("cx","50%"),gradient.setAttribute("cy","50%"),gradient.setAttribute("r","50%"),defs.appendChild(gradient);for(var i=0;i=max&&(input=min),input},exports.average=function(data){for(var total=0,i=0;i=1){var key=options.splice(0,1)[0];settings[key]=setting}}return this.parent=dom.parseElement(settings.target),this.parent&&this.parent instanceof HTMLElement&&!settings.component&&(this.parent.hasAttribute("nexus-ui")||this.parent.setAttribute("nexus-ui","")),settings.size&&Array.isArray(settings.size)&&settings.snapWithParent?(this.width=settings.size[0],this.height=settings.size[1],this.parent.style.width=this.width+"px",this.parent.style.height=this.height+"px"):settings.snapWithParent&&!settings.component?(this.width=parseFloat(window.getComputedStyle(this.parent,null).getPropertyValue("width").replace("px","")),this.height=parseFloat(window.getComputedStyle(this.parent,null).getPropertyValue("height").replace("px","")),5e3==this.width&&(this.width=settings.defaultSize[0],this.parent.style.width=this.parent.width=this.width+"px"),5e3==this.height&&(this.height=settings.defaultSize[1],this.parent.style.height=this.parent.height=this.height+"px")):(settings.size=settings.defaultSize,this.width=settings.size[0],this.height=settings.size[1]),settings.event?this.event=this.on("change",settings.event):this.event=!1,settings}},init:{value:function(){this.buildFrame(),this.buildInterface(),this.sizeInterface(),this.attachListeners(),this.colorInterface(),this.finalTouches()}},buildFrame:{value:function(){this.element=svg.create("svg"),this.element.setAttribute("width",this.width),this.element.setAttribute("height",this.height),this.parent.appendChild(this.element)}},buildInterface:{value:function(){}},sizeInterface:{value:function(){}},colorInterface:{value:function(){}},attachListeners:{value:function(){var _this=this;this.interactionTarget=this.interactionTarget||this.element,touch.exists&&(this.interactionTarget.addEventListener("touchstart",function(evt){return _this.preTouch(evt)}),this.interactionTarget.addEventListener("touchmove",function(evt){return _this.preTouchMove(evt)}),this.interactionTarget.addEventListener("touchend",function(evt){return _this.preTouchRelease(evt)})),this.boundPreMove=function(evt){return _this.preMove(evt)},this.boundPreRelease=function(evt){return _this.preRelease(evt)},this.interactionTarget.addEventListener("mousedown",function(evt){return _this.preClick(evt)})}},finalTouches:{value:function(){this.element.style.cursor="pointer"}},preClick:{value:function(e){this.element instanceof HTMLElement&&(this.width=window.getComputedStyle(this.element,null).getPropertyValue("width").replace("px","")),this.offset=dom.findPosition(this.element),this.mouse=dom.locateMouse(e,this.offset),this.clicked=!0,this.click(),this.moveEvent=document.addEventListener("mousemove",this.boundPreMove),this.releaseEvent=document.addEventListener("mouseup",this.boundPreRelease),this.emit("click"),e.preventDefault(),e.stopPropagation()}},preMove:{value:function(e){var _this=this;this.wait||(this.mouse=dom.locateMouse(e,this.offset),this.move(),this.wait=!0,setTimeout(function(){_this.wait=!1},25)),e.preventDefault(),e.stopPropagation()}},preRelease:{value:function(e){this.mouse=dom.locateMouse(e,this.offset),this.clicked=!1,this.release(),this.emit("release"),document.removeEventListener("mousemove",this.boundPreMove),document.removeEventListener("mouseup",this.boundPreRelease),e.preventDefault(),e.stopPropagation()}},click:{value:function(){}},move:{value:function(){}},release:{value:function(){}},preTouch:{value:function(e){this.element instanceof HTMLElement&&(this.width=window.getComputedStyle(this.element,null).getPropertyValue("width").replace("px","")),this.offset=dom.findPosition(this.element),this.mouse=dom.locateTouch(e,this.offset),this.clicked=!0,this.touch(e),this.emit("click"),e.preventDefault(),e.stopPropagation()}},preTouchMove:{value:function(e){this.clicked&&(this.mouse=dom.locateTouch(e,this.offset),this.touchMove(),e.preventDefault(),e.stopPropagation())}},preTouchRelease:{value:function(e){this.mouse=dom.locateTouch(e,this.offset),this.clicked=!1,this.touchRelease(),this.emit("release"),e.preventDefault(),e.stopPropagation()}},touch:{value:function(){this.click()}},touchMove:{value:function(){this.move()}},touchRelease:{value:function(){this.release()}},resize:{value:function(width,height){this.width=width,this.height=height,this.parent.style.width=this.width+"px",this.parent.style.height=this.height+"px",this.element.setAttribute("width",this.width),this.element.setAttribute("height",this.height),this.sizeInterface()}},empty:{value:function(){for(;this.element.lastChild;)this.element.removeChild(this.element.lastChild)}},destroy:{value:function(){this.empty(),this.parent.removeChild(this.element),this.removeAllListeners(),this.instrument&&delete this.instrument[this.id],this.customDestroy()}},customDestroy:{value:function(){}},colorize:{value:function(type,color){this.colors[type]=color,this.colorInterface()}}}),Interface}(EventEmitter);module.exports=Interface},function(module,exports){"use strict";exports.findPosition=function(el){var viewportOffset=el.getBoundingClientRect();return{top:viewportOffset.top+window.scrollY,left:viewportOffset.left+window.scrollX}},exports.parseElement=function(parent){return"string"==typeof parent&&(parent=document.getElementById(parent.replace("#",""))),parent instanceof HTMLElement||parent instanceof SVGElement?parent:"No valid parent argument"},exports.locateMouse=function(e,offset){return{x:e.pageX-offset.left,y:e.pageY-offset.top}},exports.locateTouch=function(e,offset){return{x:!!e.targetTouches.length&&e.targetTouches[0].pageX-offset.left,y:!!e.targetTouches.length&&e.targetTouches[0].pageY-offset.top}},exports.SmartCanvas=function(parent){var _this=this;this.element=document.createElement("canvas"),this.context=this.element.getContext("2d"),parent.appendChild(this.element),this.resize=function(w,h){_this.element.width=2*w,_this.element.height=2*h,_this.element.style.width=w+"px",_this.element.style.height=h+"px"}}},function(module,exports){"use strict";exports.isObject=function(obj){return"object"==typeof obj&&!Array.isArray(obj)&&null!==obj&&obj instanceof SVGElement==!1&&obj instanceof HTMLElement==!1},exports.setInputFilter=function(textbox,inputFilter){["input","keydown","keyup","mousedown","mouseup","select","contextmenu","drop"].forEach(function(event){textbox.addEventListener(event,function(){inputFilter(this.value)?(this.oldValue=this.value,this.oldSelectionStart=this.selectionStart,this.oldSelectionEnd=this.selectionEnd):this.hasOwnProperty("oldValue")?(this.value=this.oldValue,this.setSelectionRange(this.oldSelectionStart,this.oldSelectionEnd)):this.value=""})})}},function(module,exports){"use strict";exports.exists="ontouchstart"in document.documentElement},function(module,exports){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if((er=arguments[1])instanceof Error)throw er;var err=new Error('Uncaught, unspecified "error" event. ('+er+")");throw err.context=er,err}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:args=Array.prototype.slice.call(arguments,1),handler.apply(this,args)}else if(isObject(handler))for(args=Array.prototype.slice.call(arguments,1),listeners=handler.slice(),len=listeners.length,i=0;i0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),"function"==typeof console.trace&&console.trace()),this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit("removeListener",type,listener);else if(isObject(list)){for(i=length;i-- >0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(position<0)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else if(listeners)for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){return this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.prototype.listenerCount=function(type){if(this._events){var evlistener=this._events[type];if(isFunction(evlistener))return 1;if(evlistener)return evlistener.length}return 0},EventEmitter.listenerCount=function(emitter,type){return emitter.listenerCount(type)}},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},math=__webpack_require__(5),Step=function(){function Step(){var min=void 0===arguments[0]?0:arguments[0],max=void 0===arguments[1]?1:arguments[1],step=void 0===arguments[2]?0:arguments[2],value=void 0===arguments[3]?0:arguments[3];_classCallCheck(this,Step),this.min=min,this.max=max,this.step=step,this.value=value,this.changed=!1,this.oldValue=!1,this.update(this.value)}return _createClass(Step,{update:{value:function(value){return this.step?this.value=math.clip(Math.round((value-this.min)/this.step)*this.step+this.min,this.min,this.max):this.value=math.clip(value,this.min,this.max),this.oldValue!==this.value?(this.oldValue=this.value,this.changed=!0):this.changed=!1,this.value}},updateNormal:{value:function(value){return this.value=math.scale(value,0,1,this.min,this.max),this.update(this.value)}},normalized:{get:function(){return math.normalize(this.value,this.min,this.max)}}}),Step}();module.exports=Step},function(module,exports,__webpack_require__){"use strict";var _interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj},_createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(exports,"__esModule",{value:!0});var math=_interopRequire(__webpack_require__(5)),ToggleModel=_interopRequire(__webpack_require__(13));exports.Handle=function(){function Handle(){var mode=void 0===arguments[0]?"absolute":arguments[0],direction=void 0===arguments[1]?"vertical":arguments[1],xbound=void 0===arguments[2]?[0,100]:arguments[2],ybound=void 0===arguments[3]?[0,100]:arguments[3];_classCallCheck(this,Handle),this.mode=mode,this.direction=direction,this.previous=0,this.value=0,this.sensitivity=1,this.resize(xbound,ybound)}return _createClass(Handle,{resize:{value:function(xbound,ybound){this.boundary={min:{x:xbound[0],y:ybound[0]},max:{x:xbound[1],y:ybound[1]},center:{x:(xbound[1]-xbound[0])/2+xbound[0],y:(ybound[1]-ybound[0])/2+ybound[0]}}}},anchor:{set:function(mouse){this._anchor=this.convertPositionToValue(mouse)},get:function(){return this._anchor}},update:{value:function(mouse){if("relative"===this.mode){var increment=this.convertPositionToValue(mouse)-this.anchor;Math.abs(increment)>.5&&(increment=0),this.anchor=mouse,this.value=this.value+increment*this.sensitivity}else this.value=this.convertPositionToValue(mouse);this.value=math.clip(this.value,0,1)}},convertPositionToValue:{value:function(current){switch(this.direction){case"radial":var position=math.toPolar(current.x-this.boundary.center.x,current.y-this.boundary.center.y);return position=position.angle/(2*Math.PI),position=(position-.25+1)%1;case"vertical":return math.scale(current.y,this.boundary.min.y,this.boundary.max.y,0,1);case"horizontal":return math.scale(current.x,this.boundary.min.x,this.boundary.max.x,0,1)}}}}),Handle}(),exports.Button=function(){function Button(){var mode=void 0===arguments[0]?"button":arguments[0];_classCallCheck(this,Button),this.mode=mode,this.state=new ToggleModel,this.paintbrush=!1}return _createClass(Button,{click:{value:function(){switch(this.mode){case"impulse":this.state.on(),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(this.state.off.bind(this),30),this.emit("change",this.state);break;case"button":this.turnOn(),this.emit("change",this.state);break;case"aftertouch":this.position={x:math.clip(this.mouse.x/this.width,0,1),y:math.clip(1-this.mouse.y/this.height,0,1)},this.turnOn(),this.emit("change",{state:this.state,x:this.position.x,y:this.position.y});break;case"toggle":this.flip(),this.emit("change",this.state)}}},move:{value:function(){"aftertouch"===this.mode&&(this.position={x:math.clip(this.mouse.x/this.width,0,1),y:math.clip(1-this.mouse.y/this.height,0,1)},this.emit("change",{state:this.state,x:this.position.x,y:this.position.y}),this.render())}},release:{value:function(){switch(this.mode){case"button":this.turnOff(),this.emit("change",this.state);break;case"aftertouch":this.turnOff(),this.position={x:this.mouse.x/this.width,y:1-this.mouse.y/this.height},this.emit("change",{state:this.state,x:this.position.x,y:this.position.y})}}}}),Button}()},function(module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},Toggle=function(){function Toggle(state){_classCallCheck(this,Toggle),this.state=state||!1}return _createClass(Toggle,{flip:{value:function(state){this.state=state||!1===state?state:!this.state}},on:{value:function(){this.state=!0}},off:{value:function(){this.state=!1} -}}),Toggle}();module.exports=Toggle},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc&&desc.writable)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(subClass.__proto__=superClass)},_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},svg=__webpack_require__(4),Interface=__webpack_require__(6),Step=__webpack_require__(11),Interaction=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(12)),Slider=function(_Interface){function Slider(){_classCallCheck(this,Slider);var options=["min","max","value"],defaults={size:[120,20],mode:"relative",min:0,max:1,step:0,value:0};_get(Object.getPrototypeOf(Slider.prototype),"constructor",this).call(this,arguments,options,defaults),this.orientation="vertical",this._value=new Step(this.settings.min,this.settings.max,this.settings.step,this.settings.value),this.position=new Interaction.Handle(this.settings.mode,this.orientation,[0,this.width],[this.height,0]),this.position.value=this._value.normalized,this.init(),this.position.direction=this.orientation,this.emit("change",this.value)}return _inherits(Slider,_Interface),_createClass(Slider,{buildInterface:{value:function(){this.bar=svg.create("rect"),this.fillbar=svg.create("rect"),this.knob=svg.create("circle"),this.element.appendChild(this.bar),this.element.appendChild(this.fillbar),this.element.appendChild(this.knob)}},sizeInterface:{value:function(){this.widththis.height?"horizontal":"vertical";for(var buttonWidth=this.width/("vertical"===orientation?1:this._numberOfButtons),buttonHeight=this.height/("vertical"===orientation?this._numberOfButtons:1),i=0;i=0&&index=0;i--)this.element.remove(i);for(var i=0;i2&&(angle=this.previousAngle>3?2*Math.PI:0),this.previousAngle=angle;var realValue=angle/(2*Math.PI);this.value=this._value.updateNormal(realValue),"relative"===this.mode&&(this.position.value=realValue),this.emit("change",this._value.value),this.render()}}},release:{value:function(){}},value:{get:function(){return this._value.value},set:function(v){this._value.update(v),this.position.value=this._value.normalized,this.emit("change",this._value.value),this.render()}},min:{get:function(){return this._value.min},set:function(v){this._value.min=v}},max:{get:function(){return this._value.max},set:function(v){this._value.max=v}},step:{get:function(){return this._value.step},set:function(v){this._value.step=v}},mode:{get:function(){return this.position.mode},set:function(v){this.position.mode=v}},normalized:{get:function(){return this._value.normalized},set:function(v){this._value.updateNormal(v),this.emit("change",this.value)}}}),Dial}(Interface);module.exports=Dial},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc&&desc.writable)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(subClass.__proto__=superClass)},_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},svg=__webpack_require__(4),Interface=__webpack_require__(6),ButtonTemplate=__webpack_require__(17),touch=__webpack_require__(9),PianoKey=function(_ButtonTemplate){function PianoKey(){_classCallCheck(this,PianoKey);var options=["value","note","color"],defaults={size:[80,80],target:!1,mode:"button",value:0};_get(Object.getPrototypeOf(PianoKey.prototype),"constructor",this).call(this,arguments,options,defaults),this.note=this.settings.note,this.color=this.settings.color,this.colors={w:"#fff",b:"#666"},this.init(),this.render()}return _inherits(PianoKey,_ButtonTemplate),_createClass(PianoKey,{buildFrame:{value:function(){this.element=svg.create("svg"),this.element.setAttribute("width",this.width),this.element.setAttribute("height",this.height),this.parent.appendChild(this.element)}},buildInterface:{value:function(){var _this=this;this.pad=svg.create("rect"),this.element.appendChild(this.pad),this.interactionTarget=this.pad,touch.exists||(this.click=function(){_this.piano.interacting=!0,_this.piano.paintbrush=!_this.state,_this.down(_this.piano.paintbrush)},this.pad.addEventListener("mouseover",function(){_this.piano.interacting&&_this.down(_this.piano.paintbrush)}),this.move=function(){_this.piano.interacting&&_this.bend()},this.release=function(){_this.piano.interacting=!1},this.pad.addEventListener("mouseup",function(){_this.piano.interacting&&_this.up()}),this.pad.addEventListener("mouseout",function(){_this.piano.interacting&&_this.up()}))}},sizeInterface:{value:function(){this.pad.setAttribute("x",.5),this.pad.setAttribute("y",.5),this.width>2?this.pad.setAttribute("width",this.width-1):this.pad.setAttribute("width",this.width),this.height,this.pad.setAttribute("height",this.height),this.pad.setAttribute("rx",0),this.pad.setAttribute("ry",0)}},render:{value:function(){this.state?this.pad.setAttribute("fill",this.colors.accent):this.pad.setAttribute("fill",this.colors[this.color])}}}),PianoKey}(ButtonTemplate),Piano=function(_Interface){function Piano(){_classCallCheck(this,Piano);var options=["value"],defaults={size:[500,125],lowNote:24,highNote:60,mode:"button"};_get(Object.getPrototypeOf(Piano.prototype),"constructor",this).call(this,arguments,options,defaults),this.keyPattern=["w","b","w","b","w","w","b","w","b","w","b","w"],this.paintbrush=!1,this.mode=this.settings.mode,this.range={low:this.settings.lowNote,high:this.settings.highNote},this.range.size=this.range.high-this.range.low+1,this.keys=[],this.toggleTo=!1,this.init(),this.render()}return _inherits(Piano,_Interface),_createClass(Piano,{buildFrame:{value:function(){this.element=document.createElement("div"),this.element.style.position="relative",this.element.style.borderRadius="0px",this.element.style.display="block",this.element.style.width="100%",this.element.style.height="100%",this.parent.appendChild(this.element)}},buildInterface:{value:function(){this.keys=[];for(var i=0;i=this.range.high?keyX+=1:"w"===this.keyPattern[scaleIndex]&&"w"===this.keyPattern[nextScaleIndex]?keyX+=1:keyX+=.5}for(var keysWide=keyX,buttonWidth=(this.width-2)/keysWide,buttonHeight=(this.height-2)/2,i=0;i2?this.pad.setAttribute("width",this.width-this.paddingColumn):this.pad.setAttribute("width",this.width),this.height>2?this.pad.setAttribute("height",this.height-this.paddingRow):this.pad.setAttribute("height",this.height),this.pad.setAttribute("fill",this.matrix.colors.fill)}},render:{value:function(){this.state?this.pad.setAttribute("fill",this.matrix.colors.accent):this.pad.setAttribute("fill",this.matrix.colors.fill)}}}),MatrixCell}(ButtonTemplate),Sequencer=function(_Interface){function Sequencer(){_classCallCheck(this,Sequencer);var options=["value"],defaults={size:[400,200],mode:"toggle",rows:5,columns:10};_get(Object.getPrototypeOf(Sequencer.prototype),"constructor",this).call(this,arguments,options,defaults),this.active=-1,this.mode=this.settings.mode,this.interval=new Interval(200,function(){},!1),this.matrix=new MatrixModel(this.settings.rows,this.settings.columns),this.matrix.ui=this,this.stepper=new CounterModel(0,this.columns),this.paddingRow=this.settings.paddingRow,this.paddingColumn=this.settings.paddingColumn,this.init()}return _inherits(Sequencer,_Interface),_createClass(Sequencer,{buildFrame:{value:function(){this.element=document.createElement("div"),this.element.style.position="relative",this.element.style.display="block",this.element.style.width="100%",this.element.style.height="100%",this.parent.appendChild(this.element),touch.exists&&this.addTouchListeners()}},buildInterface:{value:function(){this.cells=[];for(var i=0;i0?_this.cells[i].turnOn():_this.cells[i].turnOff())})}},keyChange:{value:function(note,on){var cell=this.matrix.locate(note);this.matrix.pattern[cell.row][cell.column]=on;var data={row:cell.row,column:cell.column,state:on};this.emit("change",data)}},render:{value:function(){var _this=this;this.stepper.value>=0&&this.matrix.iterate(function(r,c,i){c===_this.stepper.value?(_this.cells[i].pad.setAttribute("stroke",_this.colors.mediumLight),_this.cells[i].pad.setAttribute("stroke-width","1"),_this.cells[i].pad.setAttribute("stroke-opacity","1")):_this.cells[i].pad.setAttribute("stroke","none")})}},start:{value:function(ms){this.interval.event=this.next.bind(this),ms&&this.interval.ms(ms),this.interval.start()}},stop:{value:function(){this.interval.stop()}},next:{value:function(){this.stepper.next(),this.emit("step",this.matrix.column(this.stepper.value).reverse()),this.render()}},addTouchListeners:{value:function(){var _this=this;this.preClick=this.preMove=this.preRelease=function(){},this.click=this.move=this.release=function(){},this.preTouch=this.preTouchMove=this.preTouchRelease=function(){},this.touch=this.touchMove=this.touchRelease=function(){},this.currentElement=!1,this.element.addEventListener("touchstart",function(e){var element=document.elementFromPoint(e.targetTouches[0].clientX,e.targetTouches[0].clientY),cell=_this.cells[element.index];_this.paintbrush=!cell.state,cell.down(_this.paintbrush),_this.currentElement=element.index,e.preventDefault(),e.stopPropagation()}),this.element.addEventListener("touchmove",function(e){var element=document.elementFromPoint(e.targetTouches[0].clientX,e.targetTouches[0].clientY),cell=_this.cells[element.index];if(element.index!==_this.currentElement){if(_this.currentElement>=0){_this.cells[_this.currentElement].up()}cell.down(_this.paintbrush)}else cell.bend();_this.currentElement=element.index,e.preventDefault(),e.stopPropagation()}),this.element.addEventListener("touchend",function(e){_this.cells[_this.currentElement].up(),_this.interacting=!1,_this.currentElement=!1,e.preventDefault(),e.stopPropagation()})}},rows:{get:function(){return this.matrix.rows},set:function(v){this.matrix.rows=v,this.empty(),this.buildInterface(),this.update()}},columns:{get:function(){return this.matrix.columns},set:function(v){this.matrix.columns=v,this.stepper.max=v,this.empty(),this.buildInterface(),this.update()}}}),Sequencer}(Interface);module.exports=Sequencer},function(module,exports,__webpack_require__){"use strict";var _interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj},_createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},math=_interopRequire(__webpack_require__(5)),Sequence=_interopRequire(__webpack_require__(26)),Matrix=function(){function Matrix(rows,columns){var _this=this;_classCallCheck(this,Matrix),this.pattern=[],this.create(rows,columns),this.toggle={cell:function(column,row){return _this.pattern[row][column]=!_this.pattern[row][column],_this.ui&&_this.ui.update(),_this.pattern[row][column]},all:function(){_this.iterate(function(r,c){_this.toggle.cell(c,r)}),_this.ui&&_this.ui.update()},row:function(row){for(var i=0;i<_this.columns;i++)_this.toggle.cell(i,row);_this.ui&&_this.ui.update()},column:function(column){for(var i=0;i<_this.rows;i++)_this.toggle.cell(column,i);_this.ui&&_this.ui.update()}},this.set={cell:function(column,row,value){_this.pattern[row][column]=value,_this.ui&&_this.ui.update()},all:function(values){_this.pattern=values,_this.ui&&_this.ui.update()},row:function(row,values){_this.pattern[row]=values,_this.ui&&_this.ui.update()},column:function(column,values){_this.pattern.forEach(function(row,i){_this.pattern[i][column]=values[i]}),_this.ui&&_this.ui.update()}},this.rotate={all:function(amount){amount||0===amount||(amount=1),(amount%=_this.pattern[0].length)<0&&(amount=_this.pattern[0].length+amount);for(var i=0;i<_this.rows;i++){var cut=_this.pattern[i].splice(_this.pattern[i].length-amount,amount);_this.pattern[i]=cut.concat(_this.pattern[i])}_this.ui&&_this.ui.update()},row:function(row,amount){amount||0===amount||(amount=1),(amount%=_this.pattern[0].length)<0&&(amount=_this.pattern[0].length+amount);var cut=_this.pattern[row].splice(_this.pattern[row].length-amount,amount);_this.pattern[row]=cut.concat(_this.pattern[row]),_this.ui&&_this.ui.update()},column:function(column,amount){amount||0===amount||(amount=1),(amount%=_this.pattern.length)<0&&(amount=_this.pattern.length+amount);var proxy=[];_this.pattern.forEach(function(row){proxy.push(row[column])});var cut=proxy.splice(proxy.length-amount,amount);proxy=cut.concat(proxy),_this.pattern.forEach(function(row,i){row[column]=proxy[i]}),_this.ui&&_this.ui.update()}},this.populate={all:function(odds){var oddsSequence=new Sequence(odds);_this.iterate(function(r,c){_this.pattern[r][c]=math.coin(oddsSequence.next())}),_this.ui&&_this.ui.update()},row:function(){var row=void 0===arguments[0]?0:arguments[0],odds=void 0===arguments[1]?1:arguments[1],oddsSequence=new Sequence(odds);_this.pattern[row].forEach(function(cell,i){_this.pattern[row][i]=math.coin(oddsSequence.next())}),_this.ui&&_this.ui.update()},column:function(){var column=void 0===arguments[0]?0:arguments[0],odds=void 0===arguments[1]?1:arguments[1],oddsSequence=new Sequence(odds);_this.pattern.forEach(function(row,i){_this.pattern[i][column]=math.coin(oddsSequence.next())}),_this.ui&&_this.ui.update()}},this.erase={all:function(){_this.set.all(0)},row:function(row){_this.set.row(row,0)},column:function(column){_this.set.column(column,0)}}}return _createClass(Matrix,{create:{value:function(rows,columns){var _this=this;this.pattern=[];for(var row=0;rowthis.max&&(this.loop?this.value=this.min:this.value=this.max-this.increment),this.value=this.max&&(this.value=this.min),this.value}},down:{value:function(){return this.value--,this.valuethis._numberOfSliders?vs.slice(0,this._numberOfSliders):vs.concat(Array(this._numberOfSliders-vs.length).fill(0)),this.candycane=this.settings.candycane,this.sliderWidth=this.width/this.values.length,this.smoothing=this.settings.smoothing,this.init(),this.render()}return _inherits(Multislider,_Interface),_createClass(Multislider,{buildInterface:{value:function(){"line"==this._mode?(this.line=svg.create("polyline"),this.line.setAttribute("stroke-width",2),this.line.setAttribute("fill","none"),this.element.appendChild(this.line),this.fill=svg.create("polyline"),this.fill.setAttribute("fill-opacity","0.2"),this.element.appendChild(this.fill),this.nodes=[],this.values.forEach(function(value,index){var node=svg.create("circle");node.setAttribute("cx",this.getX(index)),node.setAttribute("cy",this.getY(value)),this.element.appendChild(node),this.nodes.push(node)}.bind(this))):(this.bars=[],this.caps=[],this.values.forEach(function(value,index){var bar=svg.create("rect"),x=this.getBarX(index),y=this.getY(value);bar.setAttribute("x",x-.1),bar.setAttribute("y",y),bar.setAttribute("width",this.sliderWidth+.2),bar.setAttribute("height",this.height),bar.setAttribute("opacity",1-(index%this.candycane+1)/(this.candycane+1)),this.element.appendChild(bar),this.bars.push(bar);var cap=svg.create("rect");cap.setAttribute("x",x-.1),cap.setAttribute("y",y),cap.setAttribute("width",this.sliderWidth+.2),cap.setAttribute("height",5),this.element.appendChild(cap),this.caps.push(cap)}.bind(this)))}},getBarX:{value:function(index){return this.getX(index)-this.sliderWidth/2}},getX:{value:function(index){return index*this.sliderWidth+this.sliderWidth/2}},getY:{value:function(value){return math.scale(value,this._min,this._max,this.height,0)}},getValueFromY:{value:function(y){var scaleAdjusted=math.scale(y,this.height,0,this._min,this._max);return this.adjustValueToStep(scaleAdjusted)}},getIndexFromX:{value:function(x){return math.clip(Math.floor(x/this.width*this.values.length),0,this.values.length-1)}},adjustValueToStep:{value:function(value){if(!this._step)return value;var offset=value%this._step;return value-=value%this._step,offset>this._step/2&&(value+=this._step),value}},adjustAllValues:{value:function(){this.values.forEach(function(value,index){value=this.adjustValueToStep(value),this.values[index]=math.clip(value,this._min,this._max)}.bind(this))}},getNormalizedValues:{value:function(){this.normalizedValues=[],this.values.forEach(function(value){this.normalizedValues.push(math.scale(value,this._min,this._max,0,1))}.bind(this))}},colorInterface:{value:function(){var _this=this;this.element.style.backgroundColor=this.colors.fill,"line"==this._mode?(this.line.setAttribute("stroke",this.colors.accent),this.fill.setAttribute("fill",this.colors.accent),this.nodes.forEach(function(node){node.setAttribute("fill",_this.colors.accent)})):(this.bars.forEach(function(bar){bar.setAttribute("fill",_this.colors.accent)}),this.caps.forEach(function(cap){cap.setAttribute("fill",_this.colors.accent)}))}},sizeInterface:{value:function(){this.sliderWidth=this.width/this.values.length,"line"==this._mode&&this.nodes.forEach(function(node){var r=2+~~(Math.min(this.width,this.height)/50);r=Math.min(this.sliderWidth,r),node.setAttribute("r",r)}.bind(this)),this.render()}},render:{value:function(){var _this=this;"line"==this._mode?function(){var data="0 "+_this.getY(_this.values[0])+", ";_this.values.forEach(function(value,index){var x=_this.getX(index),y=_this.getY(value);data+=x+" "+y+", ",_this.nodes[index].setAttribute("cx",_this.getX(index)),_this.nodes[index].setAttribute("cy",_this.getY(value))}),data+=_this.width+" "+_this.getY(_this.values[_this.values.length-1]),_this.line.setAttribute("points",data),data+=", "+_this.width+" "+_this.height+", ",data+="0 "+_this.height,_this.fill.setAttribute("points",data)}():this.values.forEach(function(value,index){_this.bars[index].setAttribute("y",_this.getY(value)),_this.caps[index].setAttribute("y",_this.getY(value))})}},click:{value:function(){this.hasMoved=!1,this.previousSlider=!1,this.move()}},move:{value:function(){if(this.clicked){if(this.mouse.x=math.clip(this.mouse.x,0,this.width),this.mouse.y=math.clip(this.mouse.y,0,this.height),this.hasMoved=!0,this.selectedSlider=this.getIndexFromX(this.mouse.x),this.values[this.selectedSlider]=this.getValueFromY(this.mouse.y),!1!==this.previousSlider){var distance=Math.abs(this.previousSlider-this.selectedSlider);if(distance>1)for(var low=Math.min(this.previousSlider,this.selectedSlider),high=Math.max(this.previousSlider,this.selectedSlider),lowValue=this.values[low],highValue=this.values[high],_i=low;_i0)for(var i=1;i<=this.smoothing;i++){var downCenter=this.selectedSlider-i,upCenter=this.selectedSlider+i;if(downCenter>=1){var downLowerNeighbor=downCenter-1>=0?downCenter-1:0,downUpperNeighbor=downCenter+1;this.values[downCenter]=(this.values[downLowerNeighbor]+this.values[downUpperNeighbor])/2,this.values[downCenter]=this.adjustValueToStep(this.values[downCenter])}if(upCenter=0){var prevIndex=this.envelope.nodes.indexOf(this)-1,nextIndex=this.envelope.nodes.indexOf(this)+1,prevNode=this.envelope.nodes[prevIndex],nextNode=this.envelope.nodes[nextIndex],lowX=prevIndex>=0?prevNode.x:0;lowX=lowXthis.xMax?this.xMax:highX,this.xhighX&&(this.x=highX),this.ythis.yMax&&(this.y=this.yMax)}this.location=this.getCoordinates(),this.element.setAttribute("cx",this.location.x),this.element.setAttribute("cy",this.location.y)},this.getCoordinates=function(){return{x:this.x*this.envelope.width,y:(1-this.y)*this.envelope.height}},this.move(this.x,this.y,!0),this.resize(),this.destroy=function(){this.envelope.element.removeChild(this.element),this.envelope.nodes.splice(this.envelope.nodes.indexOf(this),1)}},Envelope=function(_Interface){function Envelope(){_classCallCheck(this,Envelope);var options=["value"],defaults={size:[300,150],noNewPoints:!1,points:[{x:.1,y:.4},{x:.35,y:.6},{x:.65,y:.2},{x:.9,y:.4}]};_get(Object.getPrototypeOf(Envelope.prototype),"constructor",this).call(this,arguments,options,defaults),this.points=this.settings.points,this.nodes=[],this.selected=!1,this.init()}return _inherits(Envelope,_Interface),_createClass(Envelope,{buildInterface:{value:function(){var _this=this;this.points.forEach(function(point){var node=new Point(point,_this);_this.nodes.push(node)}),this.sortPoints(),this.line=svg.create("polyline"),this.line.setAttribute("stroke-width",2),this.line.setAttribute("fill","none"),this.element.appendChild(this.line),this.fill=svg.create("polyline"),this.fill.setAttribute("fill-opacity","0.2"),this.element.appendChild(this.fill)}},sizeInterface:{value:function(){for(var i=0;inodes[i].x)}return!this.settings.noNewPoints&&nearestDist>.07&&(nearestIndex=this.getIndexFromX(this.mouse.x/this.width),this.nodes.splice(nearestIndex,0,new Point({x:this.mouse.x/this.width,y:1-this.mouse.y/this.height},this)),this.hasMoved=!0),nearestIndex}},getIndexFromX:{value:function(x){var _this=this,index=0;return this.nodes.forEach(function(node,i){_this.nodes[i].x<=x&&(index=i+1)}),index}},scaleNode:{value:function(i){var clippedX=math.clip(this.nodes[i].x,0,1),clippedY=math.clip(this.nodes[i].y,0,1);this.nodes[i].move(clippedX,clippedY)}},sortPoints:{value:function(){this.nodes.sort(function(a,b){return a.x>b.x})}},addPoint:{value:function(x,y){var index=this.nodes.length;this.sortPoints();for(var i=0;i=this.nodes.length&&(nextIndex=this.nodes.length-1);var priorPoint=this.nodes[priorIndex],nextPoint=this.nodes[nextIndex],loc=math.scale(x,priorPoint.x,nextPoint.x,0,1),value=math.interp(loc,priorPoint.y,nextPoint.y);return this.emit("scan",value),value}},movePoint:{value:function(index,x,y){this.nodes[index].move(x,y),this.scaleNode(index),this.calculatePoints(),this.emit("change",this.points),this.render()}},adjustPoint:{value:function(index,xOffset,yOffset){this.nodes[index].move(this.nodes[index].x+xOffset,this.nodes[index].y+yOffset),this.scaleNode(index),this.calculatePoints(),this.emit("change",this.points),this.render()}},destroyPoint:{value:function(index){this.nodes[index].destroy(),this.calculatePoints(),this.emit("change",this.points),this.render()}},setPoints:{value:function(allPoints){for(var _this=this;this.nodes.length;)this.nodes[0].destroy();allPoints.forEach(function(point){_this.addPoint(point.x,point.y)}),this.calculatePoints(),this.emit("change",this.points),this.render()}}}),Envelope}(Interface);module.exports=Envelope},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc&&desc.writable)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(subClass.__proto__=superClass)},_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},dom=__webpack_require__(7),Interface=__webpack_require__(6),context=__webpack_require__(1).context,Spectrogram=function(_Interface){function Spectrogram(){_classCallCheck(this,Spectrogram);var options=["scale","value"],defaults={size:[300,150]};_get(Object.getPrototypeOf(Spectrogram.prototype),"constructor",this).call(this,arguments,options,defaults),this.context=context(),this.analyser=this.context.createAnalyser(),this.analyser.fftSize=2048,this.bufferLength=this.analyser.frequencyBinCount,this.dataArray=new Uint8Array(this.bufferLength),this.active=!0,this.source=!1,this.init()}return _inherits(Spectrogram,_Interface),_createClass(Spectrogram,{buildFrame:{value:function(){this.canvas=new dom.SmartCanvas(this.parent),this.element=this.canvas.element}},sizeInterface:{value:function(){this.canvas.resize(this.width,this.height)}},colorInterface:{value:function(){this.canvas.element.style.backgroundColor=this.colors.fill}},render:{value:function(){if(this.active&&requestAnimationFrame(this.render.bind(this)),this.analyser.getByteFrequencyData(this.dataArray),this.canvas.context.fillStyle=this.colors.fill,this.canvas.context.fillRect(0,0,this.canvas.element.width,this.canvas.element.height),this.source&&this.dataArray)for(var barWidth=this.canvas.element.width/this.bufferLength,barHeight=void 0,x=0,definition=this.canvas.element.width/50,i=0;i-200&&this.db!==-1/0?this.db-=1:this.db=-1/0;if(this.db>-70){var linear=math.normalize(this.db,-70,5),exp=linear*linear,y=math.scale(exp,0,1,this.element.height,0);this.canvas.context.fillStyle=this.colors.accent,this.canvas.context.fillRect(this.meterWidth*i,y,this.meterWidth,this.canvas.element.height-y)}}}},connect:{value:function(node,channels){this.source&&this.disconnect(),channels?this.channels=channels:node.channelCount?this.channels=node.channelCount:this.channels=2,this.meterWidth=this.canvas.element.width/this.channels,this.source=node,this.source.connect(this.splitter)}},disconnect:{value:function(){this.source.disconnect(this.splitter),this.source=!1,this.meterWidth=this.canvas.element.width/this.channels}},click:{value:function(){this.active=!this.active,this.render()}},customDestroy:{value:function(){this.active=!1}}}),Meter}(Interface);module.exports=Meter},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc&&desc.writable)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(subClass.__proto__=superClass)},_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},dom=__webpack_require__(7),Interface=__webpack_require__(6),context=__webpack_require__(1).context,Oscilloscope=function(_Interface){function Oscilloscope(){_classCallCheck(this,Oscilloscope);var options=["scale","value"],defaults={size:[300,150]};_get(Object.getPrototypeOf(Oscilloscope.prototype),"constructor",this).call(this,arguments,options,defaults),this.context=context(),this.analyser=this.context.createAnalyser(),this.analyser.fftSize=2048,this.bufferLength=this.analyser.frequencyBinCount,this.dataArray=new Uint8Array(this.bufferLength),this.analyser.getByteTimeDomainData(this.dataArray),this.active=!0,this.source=!1,this.init(),this.render()}return _inherits(Oscilloscope,_Interface),_createClass(Oscilloscope,{buildFrame:{value:function(){this.canvas=new dom.SmartCanvas(this.parent),this.element=this.canvas.element}},sizeInterface:{value:function(){this.canvas.resize(this.width,this.height)}},colorInterface:{value:function(){this.canvas.element.style.backgroundColor=this.colors.fill}},render:{value:function(){if(this.active&&requestAnimationFrame(this.render.bind(this)),this.analyser.getByteTimeDomainData(this.dataArray),this.canvas.context.fillStyle=this.colors.fill,this.canvas.context.fillRect(0,0,this.canvas.element.width,this.canvas.element.height),this.canvas.context.lineWidth=~~(this.height/100+2),this.canvas.context.strokeStyle=this.colors.accent,this.canvas.context.beginPath(),this.source)for(var sliceWidth=1*this.canvas.element.width/this.bufferLength,x=0,i=0;i0;)this.meta.contents.appendChild(this.meta.parent.childNodes[0]);this.meta.contents.style.padding="0px",this.meta.contents.style.boxSizing="border-box",this.meta.title&&(this.meta.titleBar=document.createElement("div"),this.meta.titleBar.innerHTML=this.meta.title,this.meta.titleBar.style.fontFamily="arial",this.meta.titleBar.style.position="relative",this.meta.titleBar.style.color="#888",this.meta.titleBar.style.padding="7px",this.meta.titleBar.style.fontSize="12px",this.meta.button=document.createElement("div"),this.meta.button.style.position="absolute",this.meta.button.style.top="5px",this.meta.button.style.right="5px",this.meta.button.innerHTML="-",this.meta.button.style.padding="0px 5px 2px",this.meta.button.style.lineHeight="12px",this.meta.button.style.fontSize="15px",this.meta.button.style.cursor="pointer",this.meta.button.addEventListener("mouseover",function(){_this.meta.button.style.backgroundColor=_this.meta.colors.mediumDark}),this.meta.button.addEventListener("mouseleave",function(){_this.meta.button.style.backgroundColor=_this.meta.colors.mediumLight}),this.meta.button.addEventListener("click",function(){_this.meta.open?_this.hide():_this.show()}),this.meta.titleBar.appendChild(this.meta.button),this.meta.parent.appendChild(this.meta.titleBar)),this.meta.parent.appendChild(this.meta.contents);var ui=transform.section(this.meta.target,this.meta.attribute);for(var key in ui)this[key]=ui[key]}},colorInterface:{value:function(){this.meta.title&&(this.meta.button.style.backgroundColor=this.meta.colors.mediumLight,this.meta.button.style.border="solid 0px "+this.meta.colors.fill,this.meta.parent.style.border="solid 1px "+this.meta.colors.mediumLight,this.meta.parent.style.backgroundColor=this.meta.colors.light,this.meta.titleBar.style.backgroundColor=this.meta.colors.fill)}},show:{value:function(){this.meta.contents.style.display="block",this.meta.open=!0}},hide:{value:function(){this.meta.contents.style.display="none",this.meta.open=!1}},colorize:{value:function(type,color){for(var key in this)this[key].colorize&&this[key].colorize(type,color);this.meta.colors[type]=color,this.colorInterface()}},empty:{value:function(){for(var key in this)this[key].destroy&&this[key].destroy()}}}),Rack}();module.exports=Rack},function(module,exports,__webpack_require__){"use strict";var _interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj};Object.defineProperty(exports,"__esModule",{value:!0});var dom=_interopRequire(__webpack_require__(7)),Interfaces=_interopRequire(__webpack_require__(2)),createInterfaceID=function(widget,interfaceIDs){var type=widget.type;return interfaceIDs[type]?interfaceIDs[type]++:interfaceIDs[type]=1,type+interfaceIDs[type]},element=function(element,type,options){options=options||{};for(var i=0;i1?_len-1:0),_key=1;_key<_len;_key++)onVals[_key-1]=arguments[_key];var length=void 0===arguments[0]?3:arguments[0];_classCallCheck(this,Radio),length<0&&(length=1),this.length=length,this.onVals=onVals,this.array=new Array(length).fill(0),onVals.length>0&&this.on.apply(this,onVals)}return _createClass(Radio,{select:{value:function(value){return this.array.fill(0),this.array[value]=1,this.array}},flip:{value:function(){for(var _len=arguments.length,values=Array(_len),_key=0;_key<_len;_key++)values[_key]=arguments[_key];var a=this.array;return values.length>0?values.forEach(function(v){v>a.length-1?console.warn("Warning: AnonRadio["+v+"] does not exist"):a[v]=a[v]?0:1}):a.forEach(function(v,i,arr){arr[i]=v?0:1}),a}},on:{value:function(){for(var _len=arguments.length,values=Array(_len),_key=0;_key<_len;_key++)values[_key]=arguments[_key];var a=this.array;return values.length>0?values.forEach(function(v){v>a.length-1?console.warn("Warning: AnonRadio["+v+"] exceeds size of object"):(1===a[v]&&console.warn("Warning: AnonRadio["+v+"] was already on."),a[v]=1)}):a.fill(1),a}},off:{value:function(){for(var _len=arguments.length,values=Array(_len),_key=0;_key<_len;_key++)values[_key]=arguments[_key];var a=this.array;return values.length>0?values.forEach(function(v){a[v]=0}):a.fill(0),a}}}),Radio}();module.exports=Radio},function(module,exports,__webpack_require__){var WAAClock=__webpack_require__(43);module.exports=WAAClock,"undefined"!=typeof window&&(window.WAAClock=WAAClock)},function(module,exports,__webpack_require__){(function(process){var CLOCK_DEFAULTS={toleranceLate:.1,toleranceEarly:.001},Event=function(clock,deadline,func){this.clock=clock,this.func=func,this._cleared=!1,this.toleranceLate=clock.toleranceLate,this.toleranceEarly=clock.toleranceEarly,this._latestTime=null,this._earliestTime=null,this.deadline=null,this.repeatTime=null,this.schedule(deadline)};Event.prototype.clear=function(){return this.clock._removeEvent(this),this._cleared=!0,this},Event.prototype.repeat=function(time){if(0===time)throw new Error("delay cannot be 0");return this.repeatTime=time,this.clock._hasEvent(this)||this.schedule(this.deadline+this.repeatTime),this},Event.prototype.tolerance=function(values){return"number"==typeof values.late&&(this.toleranceLate=values.late),"number"==typeof values.early&&(this.toleranceEarly=values.early),this._refreshEarlyLateDates(),this.clock._hasEvent(this)&&(this.clock._removeEvent(this),this.clock._insertEvent(this)),this},Event.prototype.isRepeated=function(){return null!==this.repeatTime},Event.prototype.schedule=function(deadline){this._cleared=!1,this.deadline=deadline,this._refreshEarlyLateDates(),this.clock.context.currentTime>=this._earliestTime?this._execute():this.clock._hasEvent(this)?(this.clock._removeEvent(this), -this.clock._insertEvent(this)):this.clock._insertEvent(this)},Event.prototype.timeStretch=function(tRef,ratio){this.isRepeated()&&(this.repeatTime=this.repeatTime*ratio);var deadline=tRef+ratio*(this.deadline-tRef);if(this.isRepeated())for(;this.clock.context.currentTime>=deadline-this.toleranceEarly;)deadline+=this.repeatTime;this.schedule(deadline)},Event.prototype._execute=function(){!1!==this.clock._started&&(this.clock._removeEvent(this),this.clock.context.currentTime1)for(var i=1;i0){existingStylesheets[0].parentNode.insertBefore(defaultStyleNode,existingStylesheets[0])}else document.write("")}return _createClass(NexusUI,{context:{get:function(){return this._context||(this.context=new DefaultContext),this._context},set:function(ctx){this._clock&&(this._clock.stop(),this._clock=null),this._context=ctx,unlockAudioContext(ctx)}},clock:{get:function(){return this._clock||(this._clock=new WAAClock(this.context),this._clock.start()),this._clock}}}),NexusUI}(),Nexus=new NexusUI;exports.default=Nexus},function(module,exports,__webpack_require__){"use strict";module.exports={Position:__webpack_require__(3),Slider:__webpack_require__(14),Toggle:__webpack_require__(15),Button:__webpack_require__(16),TextButton:__webpack_require__(18),RadioButton:__webpack_require__(19),Number:__webpack_require__(20),Select:__webpack_require__(21),Dial:__webpack_require__(22),Piano:__webpack_require__(23),Sequencer:__webpack_require__(24),Pan2D:__webpack_require__(30),Tilt:__webpack_require__(31),Multislider:__webpack_require__(32),Pan:__webpack_require__(33),Envelope:__webpack_require__(34),Spectrogram:__webpack_require__(35),Meter:__webpack_require__(36),Oscilloscope:__webpack_require__(37)}},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc&&desc.writable)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(subClass.__proto__=superClass)},_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},svg=__webpack_require__(4),Interface=__webpack_require__(6),Step=__webpack_require__(11),Interaction=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(12)),Position=function(_Interface){function Position(){_classCallCheck(this,Position);var options=["value"],defaults={size:[200,200],mode:"absolute",minX:0,maxX:1,stepX:0,x:.5,minY:0,maxY:1,stepY:0,y:.5};_get(Object.getPrototypeOf(Position.prototype),"constructor",this).call(this,arguments,options,defaults),this._x=new Step(this.settings.minX,this.settings.maxX,this.settings.stepX,this.settings.x),this._y=new Step(this.settings.minY,this.settings.maxY,this.settings.stepY,this.settings.y),this.position={x:new Interaction.Handle(this.settings.mode,"horizontal",[0,this.width],[this.height,0]),y:new Interaction.Handle(this.settings.mode,"vertical",[0,this.width],[this.height,0])},this.position.x.value=this._x.normalized,this.position.y.value=this._y.normalized,this.init(),this.render()}return _inherits(Position,_Interface),_createClass(Position,{buildInterface:{value:function(){this.knob=svg.create("circle"),this.element.appendChild(this.knob)}},sizeInterface:{value:function(){this.position.x.resize([0,this.width],[this.height,0]),this.position.y.resize([0,this.width],[this.height,0]),this._minDimension=Math.min(this.width,this.height),this.knobRadius={off:5*~~(this._minDimension/100)+5},this.knobRadius.on=2*this.knobRadius.off,this.knob.setAttribute("cx",this.width/2),this.knob.setAttribute("cy",this.height/2),this.knob.setAttribute("r",this.knobRadius.off)}},colorInterface:{value:function(){this.element.style.backgroundColor=this.colors.fill,this.knob.setAttribute("fill",this.colors.accent)}},render:{value:function(){this.clicked?this.knob.setAttribute("r",this.knobRadius.on):this.knob.setAttribute("r",this.knobRadius.off),this.knobCoordinates={x:this._x.normalized*this.width,y:this.height-this._y.normalized*this.height},this.knob.setAttribute("cx",this.knobCoordinates.x),this.knob.setAttribute("cy",this.knobCoordinates.y)}},click:{value:function(){this.position.x.anchor=this.mouse,this.position.y.anchor=this.mouse,this.move()}},move:{value:function(){this.clicked&&(this.position.x.update(this.mouse),this.position.y.update(this.mouse),this._x.updateNormal(this.position.x.value),this._y.updateNormal(this.position.y.value),this.emit("change",{x:this._x.value,y:this._y.value}),this.render())}},release:{value:function(){this.render()}},x:{get:function(){return this._x.value},set:function(value){this._x.update(value),this.emit("change",{x:this._x.value,y:this._y.value}),this.render()}},y:{get:function(){return this._y.value},set:function(value){this._y.update(value),this.emit("change",{x:this._x.value,y:this._y.value}),this.render()}},normalized:{get:function(){return{x:this._x.normalized,y:this._y.normalized}}},minX:{get:function(){return this._x.min},set:function(v){this._x.min=v,this.render()}},minY:{get:function(){return this._y.min},set:function(v){this._y.min=v,this.render()}},maxX:{get:function(){return this._x.max},set:function(v){this._x.max=v,this.render()}},maxY:{get:function(){return this._y.max},set:function(v){this._y.max=v,this.render()}},stepX:{get:function(){return this._x.step},set:function(v){this._x.step=v,this.render()}},stepY:{get:function(){return this._y.step},set:function(v){this._y.step=v,this.render()}},mode:{get:function(){return this.position.x.mode},set:function(v){this.position.x.mode=v,this.position.y.mode=v}}}),Position}(Interface);module.exports=Position},function(module,exports,__webpack_require__){"use strict";var math=__webpack_require__(5);module.exports={create:function(type){return document.createElementNS("http://www.w3.org/2000/svg",type)},arc:function(x,y,radius,startAngle,endAngle){var start=math.toCartesian(radius,endAngle),end=math.toCartesian(radius,startAngle),largeArcFlag=endAngle-startAngle<=180?"0":"1";return["M",start.x+x,start.y+y,"A",radius,radius,0,largeArcFlag,0,end.x+x,end.y+y].join(" ")},radialGradient:function(defs,numberOfStops){var id="gradient"+math.ri(1e11),stops=[],gradient=document.createElementNS("http://www.w3.org/2000/svg","radialGradient");gradient.setAttribute("id",id),gradient.setAttribute("cx","50%"),gradient.setAttribute("cy","50%"),gradient.setAttribute("r","50%"),defs.appendChild(gradient);for(var i=0;i=max&&(input=min),input},exports.average=function(data){for(var total=0,i=0;i=1){var key=options.splice(0,1)[0];settings[key]=setting}}return this.parent=dom.parseElement(settings.target),this.parent&&this.parent instanceof HTMLElement&&!settings.component&&(this.parent.hasAttribute("nexus-ui")||this.parent.setAttribute("nexus-ui","")),settings.size&&Array.isArray(settings.size)&&settings.snapWithParent?(this.width=settings.size[0],this.height=settings.size[1],this.parent.style.width=this.width+"px",this.parent.style.height=this.height+"px"):settings.snapWithParent&&!settings.component?(this.width=parseFloat(window.getComputedStyle(this.parent,null).getPropertyValue("width").replace("px","")),this.height=parseFloat(window.getComputedStyle(this.parent,null).getPropertyValue("height").replace("px","")),5e3==this.width&&(this.width=settings.defaultSize[0],this.parent.style.width=this.parent.width=this.width+"px"),5e3==this.height&&(this.height=settings.defaultSize[1],this.parent.style.height=this.parent.height=this.height+"px")):(settings.size=settings.defaultSize,this.width=settings.size[0],this.height=settings.size[1]),settings.event?this.event=this.on("change",settings.event):this.event=!1,settings}},init:{value:function(){this.buildFrame(),this.buildInterface(),this.sizeInterface(),this.attachListeners(),this.colorInterface(),this.finalTouches()}},buildFrame:{value:function(){this.element=svg.create("svg"),this.element.setAttribute("width",this.width),this.element.setAttribute("height",this.height),this.parent.appendChild(this.element)}},buildInterface:{value:function(){}},sizeInterface:{value:function(){}},colorInterface:{value:function(){}},attachListeners:{value:function(){var _this=this;this.interactionTarget=this.interactionTarget||this.element,touch.exists&&(this.interactionTarget.addEventListener("touchstart",function(evt){return _this.preTouch(evt)}),this.interactionTarget.addEventListener("touchmove",function(evt){return _this.preTouchMove(evt)}),this.interactionTarget.addEventListener("touchend",function(evt){return _this.preTouchRelease(evt)})),this.boundPreMove=function(evt){return _this.preMove(evt)},this.boundPreRelease=function(evt){return _this.preRelease(evt)},this.interactionTarget.addEventListener("mousedown",function(evt){return _this.preClick(evt)})}},finalTouches:{value:function(){this.element.style.cursor="pointer"}},preClick:{value:function(e){this.element instanceof HTMLElement&&(this.width=window.getComputedStyle(this.element,null).getPropertyValue("width").replace("px","")),this.offset=dom.findPosition(this.element),this.mouse=dom.locateMouse(e,this.offset),this.clicked=!0,this.click(),this.moveEvent=document.addEventListener("mousemove",this.boundPreMove),this.releaseEvent=document.addEventListener("mouseup",this.boundPreRelease),this.emit("click"),e.preventDefault(),e.stopPropagation()}},preMove:{value:function(e){var _this=this;this.wait||(this.mouse=dom.locateMouse(e,this.offset),this.move(),this.wait=!0,setTimeout(function(){_this.wait=!1},25)),e.preventDefault(),e.stopPropagation()}},preRelease:{value:function(e){this.mouse=dom.locateMouse(e,this.offset),this.clicked=!1,this.release(),this.emit("release"),document.removeEventListener("mousemove",this.boundPreMove),document.removeEventListener("mouseup",this.boundPreRelease),e.preventDefault(),e.stopPropagation()}},click:{value:function(){}},move:{value:function(){}},release:{value:function(){}},preTouch:{value:function(e){this.element instanceof HTMLElement&&(this.width=window.getComputedStyle(this.element,null).getPropertyValue("width").replace("px","")),this.offset=dom.findPosition(this.element),this.mouse=dom.locateTouch(e,this.offset),this.clicked=!0,this.touch(e),this.emit("click"),e.preventDefault(),e.stopPropagation()}},preTouchMove:{value:function(e){this.clicked&&(this.mouse=dom.locateTouch(e,this.offset),this.touchMove(),e.preventDefault(),e.stopPropagation())}},preTouchRelease:{value:function(e){this.mouse=dom.locateTouch(e,this.offset),this.clicked=!1,this.touchRelease(),this.emit("release"),e.preventDefault(),e.stopPropagation()}},touch:{value:function(){this.click()}},touchMove:{value:function(){this.move()}},touchRelease:{value:function(){this.release()}},resize:{value:function(width,height){this.width=width,this.height=height,this.parent.style.width=this.width+"px",this.parent.style.height=this.height+"px",this.element.setAttribute("width",this.width),this.element.setAttribute("height",this.height),this.sizeInterface()}},empty:{value:function(){for(;this.element.lastChild;)this.element.removeChild(this.element.lastChild)}},destroy:{value:function(){this.empty(),this.parent.removeChild(this.element),this.removeAllListeners(),this.instrument&&delete this.instrument[this.id],this.customDestroy()}},customDestroy:{value:function(){}},colorize:{value:function(type,color){this.colors[type]=color,this.colorInterface()}}}),Interface}(EventEmitter);module.exports=Interface},function(module,exports){"use strict";exports.findPosition=function(el){var viewportOffset=el.getBoundingClientRect();return{top:viewportOffset.top+window.scrollY,left:viewportOffset.left+window.scrollX}},exports.parseElement=function(parent){return"string"==typeof parent&&(parent=document.getElementById(parent.replace("#",""))),parent instanceof HTMLElement||parent instanceof SVGElement?parent:"No valid parent argument"},exports.locateMouse=function(e,offset){return{x:e.pageX-offset.left,y:e.pageY-offset.top}},exports.locateTouch=function(e,offset){return{x:!!e.targetTouches.length&&e.targetTouches[0].pageX-offset.left,y:!!e.targetTouches.length&&e.targetTouches[0].pageY-offset.top}},exports.SmartCanvas=function(parent){var _this=this;this.element=document.createElement("canvas"),this.context=this.element.getContext("2d"),parent.appendChild(this.element),this.resize=function(w,h){_this.element.width=2*w,_this.element.height=2*h,_this.element.style.width=w+"px",_this.element.style.height=h+"px"}}},function(module,exports){"use strict";exports.isObject=function(obj){return"object"==typeof obj&&!Array.isArray(obj)&&null!==obj&&obj instanceof SVGElement==!1&&obj instanceof HTMLElement==!1},exports.setInputFilter=function(textbox,inputFilter){["input","keydown","keyup","mousedown","mouseup","select","contextmenu","drop"].forEach(function(event){textbox.addEventListener(event,function(){inputFilter(this.value)?(this.oldValue=this.value,this.oldSelectionStart=this.selectionStart,this.oldSelectionEnd=this.selectionEnd):this.hasOwnProperty("oldValue")?(this.value=this.oldValue,this.setSelectionRange(this.oldSelectionStart,this.oldSelectionEnd)):this.value=""})})}},function(module,exports){"use strict";exports.exists="ontouchstart"in document.documentElement},function(module,exports){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if((er=arguments[1])instanceof Error)throw er;var err=new Error('Uncaught, unspecified "error" event. ('+er+")");throw err.context=er,err}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:args=Array.prototype.slice.call(arguments,1),handler.apply(this,args)}else if(isObject(handler))for(args=Array.prototype.slice.call(arguments,1),listeners=handler.slice(),len=listeners.length,i=0;i0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),"function"==typeof console.trace&&console.trace()),this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit("removeListener",type,listener);else if(isObject(list)){for(i=length;i-- >0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(position<0)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else if(listeners)for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){return this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.prototype.listenerCount=function(type){if(this._events){var evlistener=this._events[type];if(isFunction(evlistener))return 1;if(evlistener)return evlistener.length}return 0},EventEmitter.listenerCount=function(emitter,type){return emitter.listenerCount(type)}},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},math=__webpack_require__(5),Step=function(){function Step(){var min=void 0===arguments[0]?0:arguments[0],max=void 0===arguments[1]?1:arguments[1],step=void 0===arguments[2]?0:arguments[2],value=void 0===arguments[3]?0:arguments[3];_classCallCheck(this,Step),this.min=min,this.max=max,this.step=step,this.value=value,this.changed=!1,this.oldValue=!1,this.update(this.value)}return _createClass(Step,{update:{value:function(value){return this.step?this.value=math.clip(Math.round((value-this.min)/this.step)*this.step+this.min,this.min,this.max):this.value=math.clip(value,this.min,this.max),this.oldValue!==this.value?(this.oldValue=this.value,this.changed=!0):this.changed=!1,this.value}},updateNormal:{value:function(value){return this.value=math.scale(value,0,1,this.min,this.max),this.update(this.value)}},normalized:{get:function(){return math.normalize(this.value,this.min,this.max)}}}),Step}();module.exports=Step},function(module,exports,__webpack_require__){"use strict";var _interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj},_createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(exports,"__esModule",{value:!0});var math=_interopRequire(__webpack_require__(5)),ToggleModel=_interopRequire(__webpack_require__(13));exports.Handle=function(){function Handle(){var mode=void 0===arguments[0]?"absolute":arguments[0],direction=void 0===arguments[1]?"vertical":arguments[1],xbound=void 0===arguments[2]?[0,100]:arguments[2],ybound=void 0===arguments[3]?[0,100]:arguments[3];_classCallCheck(this,Handle),this.mode=mode,this.direction=direction,this.previous=0,this.value=0,this.sensitivity=1,this.resize(xbound,ybound)}return _createClass(Handle,{resize:{value:function(xbound,ybound){this.boundary={min:{x:xbound[0],y:ybound[0]},max:{x:xbound[1],y:ybound[1]},center:{x:(xbound[1]-xbound[0])/2+xbound[0],y:(ybound[1]-ybound[0])/2+ybound[0]}}}},anchor:{set:function(mouse){this._anchor=this.convertPositionToValue(mouse)},get:function(){return this._anchor}},update:{value:function(mouse){if("relative"===this.mode){var increment=this.convertPositionToValue(mouse)-this.anchor;Math.abs(increment)>.5&&(increment=0),this.anchor=mouse,this.value=this.value+increment*this.sensitivity}else this.value=this.convertPositionToValue(mouse);this.value=math.clip(this.value,0,1)}},convertPositionToValue:{value:function(current){switch(this.direction){case"radial":var position=math.toPolar(current.x-this.boundary.center.x,current.y-this.boundary.center.y);return position=position.angle/(2*Math.PI),position=(position-.25+1)%1;case"vertical":return math.scale(current.y,this.boundary.min.y,this.boundary.max.y,0,1);case"horizontal":return math.scale(current.x,this.boundary.min.x,this.boundary.max.x,0,1)}}}}),Handle}(),exports.Button=function(){function Button(){var mode=void 0===arguments[0]?"button":arguments[0];_classCallCheck(this,Button),this.mode=mode,this.state=new ToggleModel,this.paintbrush=!1}return _createClass(Button,{click:{value:function(){switch(this.mode){case"impulse":this.state.on(),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(this.state.off.bind(this),30),this.emit("change",this.state);break;case"button":this.turnOn(),this.emit("change",this.state);break;case"aftertouch":this.position={x:math.clip(this.mouse.x/this.width,0,1),y:math.clip(1-this.mouse.y/this.height,0,1)},this.turnOn(),this.emit("change",{state:this.state,x:this.position.x,y:this.position.y});break;case"toggle":this.flip(),this.emit("change",this.state)}}},move:{value:function(){"aftertouch"===this.mode&&(this.position={x:math.clip(this.mouse.x/this.width,0,1),y:math.clip(1-this.mouse.y/this.height,0,1)},this.emit("change",{state:this.state,x:this.position.x,y:this.position.y}),this.render())}},release:{value:function(){switch(this.mode){case"button":this.turnOff(),this.emit("change",this.state);break;case"aftertouch":this.turnOff(),this.position={x:this.mouse.x/this.width,y:1-this.mouse.y/this.height},this.emit("change",{state:this.state,x:this.position.x,y:this.position.y})}}}}),Button}()},function(module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)} +Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},Toggle=function(){function Toggle(state){_classCallCheck(this,Toggle),this.state=state||!1}return _createClass(Toggle,{flip:{value:function(state){this.state=state||!1===state?state:!this.state}},on:{value:function(){this.state=!0}},off:{value:function(){this.state=!1}}}),Toggle}();module.exports=Toggle},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc&&desc.writable)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(subClass.__proto__=superClass)},_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},svg=__webpack_require__(4),Interface=__webpack_require__(6),Step=__webpack_require__(11),Interaction=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(12)),Slider=function(_Interface){function Slider(){_classCallCheck(this,Slider);var options=["min","max","value"],defaults={size:[120,20],mode:"relative",min:0,max:1,step:0,value:0};_get(Object.getPrototypeOf(Slider.prototype),"constructor",this).call(this,arguments,options,defaults),this.orientation="vertical",this._value=new Step(this.settings.min,this.settings.max,this.settings.step,this.settings.value),this.position=new Interaction.Handle(this.settings.mode,this.orientation,[0,this.width],[this.height,0]),this.position.value=this._value.normalized,this.init(),this.position.direction=this.orientation,this.emit("change",this.value)}return _inherits(Slider,_Interface),_createClass(Slider,{buildInterface:{value:function(){this.bar=svg.create("rect"),this.fillbar=svg.create("rect"),this.knob=svg.create("circle"),this.element.appendChild(this.bar),this.element.appendChild(this.fillbar),this.element.appendChild(this.knob)}},sizeInterface:{value:function(){this.widththis.height?"horizontal":"vertical";for(var buttonWidth=this.width/("vertical"===orientation?1:this._numberOfButtons),buttonHeight=this.height/("vertical"===orientation?this._numberOfButtons:1),i=0;i=0&&index=0;i--)this.element.remove(i);for(var i=0;i2&&(angle=this.previousAngle>3?2*Math.PI:0),this.previousAngle=angle;var realValue=angle/(2*Math.PI);this.value=this._value.updateNormal(realValue),"relative"===this.mode&&(this.position.value=realValue),this.emit("change",this._value.value),this.render()}}},release:{value:function(){}},value:{get:function(){return this._value.value},set:function(v){this._value.update(v),this.position.value=this._value.normalized,this.emit("change",this._value.value),this.render()}},min:{get:function(){return this._value.min},set:function(v){this._value.min=v}},max:{get:function(){return this._value.max},set:function(v){this._value.max=v}},step:{get:function(){return this._value.step},set:function(v){this._value.step=v}},mode:{get:function(){return this.position.mode},set:function(v){this.position.mode=v}},normalized:{get:function(){return this._value.normalized},set:function(v){this._value.updateNormal(v),this.emit("change",this.value)}}}),Dial}(Interface);module.exports=Dial},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc&&desc.writable)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(subClass.__proto__=superClass)},_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},svg=__webpack_require__(4),Interface=__webpack_require__(6),ButtonTemplate=__webpack_require__(17),touch=__webpack_require__(9),PianoKey=function(_ButtonTemplate){function PianoKey(){_classCallCheck(this,PianoKey);var options=["value","note","color"],defaults={size:[80,80],target:!1,mode:"button",value:0};_get(Object.getPrototypeOf(PianoKey.prototype),"constructor",this).call(this,arguments,options,defaults),this.note=this.settings.note,this.color=this.settings.color,this.colors={w:"#fff",b:"#666"},this.init(),this.render()}return _inherits(PianoKey,_ButtonTemplate),_createClass(PianoKey,{buildFrame:{value:function(){this.element=svg.create("svg"),this.element.setAttribute("width",this.width),this.element.setAttribute("height",this.height),this.parent.appendChild(this.element)}},buildInterface:{value:function(){var _this=this;this.pad=svg.create("rect"),this.element.appendChild(this.pad),this.interactionTarget=this.pad,touch.exists||(this.click=function(){_this.piano.interacting=!0,_this.piano.paintbrush=!_this.state,_this.down(_this.piano.paintbrush)},this.pad.addEventListener("mouseover",function(){_this.piano.interacting&&_this.down(_this.piano.paintbrush)}),this.move=function(){_this.piano.interacting&&_this.bend()},this.release=function(){_this.piano.interacting=!1},this.pad.addEventListener("mouseup",function(){_this.piano.interacting&&_this.up()}),this.pad.addEventListener("mouseout",function(){_this.piano.interacting&&_this.up()}))}},sizeInterface:{value:function(){this.pad.setAttribute("x",.5),this.pad.setAttribute("y",.5),this.width>2?this.pad.setAttribute("width",this.width-1):this.pad.setAttribute("width",this.width),this.height,this.pad.setAttribute("height",this.height),this.pad.setAttribute("rx",0),this.pad.setAttribute("ry",0)}},render:{value:function(){this.state?this.pad.setAttribute("fill",this.colors.accent):this.pad.setAttribute("fill",this.colors[this.color])}}}),PianoKey}(ButtonTemplate),Piano=function(_Interface){function Piano(){_classCallCheck(this,Piano);var options=["value"],defaults={size:[500,125],lowNote:24,highNote:60,mode:"button"};_get(Object.getPrototypeOf(Piano.prototype),"constructor",this).call(this,arguments,options,defaults),this.keyPattern=["w","b","w","b","w","w","b","w","b","w","b","w"],this.paintbrush=!1,this.mode=this.settings.mode,this.range={low:this.settings.lowNote,high:this.settings.highNote},this.range.size=this.range.high-this.range.low+1,this.keys=[],this.toggleTo=!1,this.init(),this.render()}return _inherits(Piano,_Interface),_createClass(Piano,{buildFrame:{value:function(){this.element=document.createElement("div"),this.element.style.position="relative",this.element.style.borderRadius="0px",this.element.style.display="block",this.element.style.width="100%",this.element.style.height="100%",this.parent.appendChild(this.element)}},buildInterface:{value:function(){this.keys=[];for(var i=0;i=this.range.high?keyX+=1:"w"===this.keyPattern[scaleIndex]&&"w"===this.keyPattern[nextScaleIndex]?keyX+=1:keyX+=.5}for(var keysWide=keyX,buttonWidth=(this.width-2)/keysWide,buttonHeight=(this.height-2)/2,i=0;i2?this.pad.setAttribute("width",this.width-this.paddingColumn):this.pad.setAttribute("width",this.width),this.height>2?this.pad.setAttribute("height",this.height-this.paddingRow):this.pad.setAttribute("height",this.height),this.pad.setAttribute("fill",this.matrix.colors.fill)}},render:{value:function(){this.state?this.pad.setAttribute("fill",this.matrix.colors.accent):this.pad.setAttribute("fill",this.matrix.colors.fill)}}}),MatrixCell}(ButtonTemplate),Sequencer=function(_Interface){function Sequencer(){_classCallCheck(this,Sequencer);var options=["value"],defaults={size:[400,200],mode:"toggle",rows:5,columns:10};_get(Object.getPrototypeOf(Sequencer.prototype),"constructor",this).call(this,arguments,options,defaults),this.active=-1,this.mode=this.settings.mode,this.interval=new Interval(200,function(){},!1),this.matrix=new MatrixModel(this.settings.rows,this.settings.columns),this.matrix.ui=this,this.stepper=new CounterModel(0,this.columns),this.paddingRow=this.settings.paddingRow,this.paddingColumn=this.settings.paddingColumn,this.init()}return _inherits(Sequencer,_Interface),_createClass(Sequencer,{buildFrame:{value:function(){this.element=document.createElement("div"),this.element.style.position="relative",this.element.style.display="block",this.element.style.width="100%",this.element.style.height="100%",this.parent.appendChild(this.element),touch.exists&&this.addTouchListeners()}},buildInterface:{value:function(){this.cells=[];for(var i=0;i0?_this.cells[i].turnOn():_this.cells[i].turnOff())})}},keyChange:{value:function(note,on){var cell=this.matrix.locate(note);this.matrix.pattern[cell.row][cell.column]=on;var data={row:cell.row,column:cell.column,state:on};this.emit("change",data)}},render:{value:function(){var _this=this;this.stepper.value>=0&&this.matrix.iterate(function(r,c,i){c===_this.stepper.value?(_this.cells[i].pad.setAttribute("stroke",_this.colors.mediumLight),_this.cells[i].pad.setAttribute("stroke-width","1"),_this.cells[i].pad.setAttribute("stroke-opacity","1")):_this.cells[i].pad.setAttribute("stroke","none")})}},start:{value:function(ms){this.interval.event=this.next.bind(this),ms&&this.interval.ms(ms),this.interval.start()}},stop:{value:function(){this.interval.stop()}},next:{value:function(){this.stepper.next(),this.emit("step",this.matrix.column(this.stepper.value).reverse()),this.render()}},addTouchListeners:{value:function(){var _this=this;this.preClick=this.preMove=this.preRelease=function(){},this.click=this.move=this.release=function(){},this.preTouch=this.preTouchMove=this.preTouchRelease=function(){},this.touch=this.touchMove=this.touchRelease=function(){},this.currentElement=!1,this.element.addEventListener("touchstart",function(e){var element=document.elementFromPoint(e.targetTouches[0].clientX,e.targetTouches[0].clientY),cell=_this.cells[element.index];_this.paintbrush=!cell.state,cell.down(_this.paintbrush),_this.currentElement=element.index,e.preventDefault(),e.stopPropagation()}),this.element.addEventListener("touchmove",function(e){var element=document.elementFromPoint(e.targetTouches[0].clientX,e.targetTouches[0].clientY),cell=_this.cells[element.index];if(element.index!==_this.currentElement){if(_this.currentElement>=0){_this.cells[_this.currentElement].up()}cell.down(_this.paintbrush)}else cell.bend();_this.currentElement=element.index,e.preventDefault(),e.stopPropagation()}),this.element.addEventListener("touchend",function(e){_this.cells[_this.currentElement].up(),_this.interacting=!1,_this.currentElement=!1,e.preventDefault(),e.stopPropagation()})}},rows:{get:function(){return this.matrix.rows},set:function(v){this.matrix.rows=v,this.empty(),this.buildInterface(),this.update()}},columns:{get:function(){return this.matrix.columns},set:function(v){this.matrix.columns=v,this.stepper.max=v,this.empty(),this.buildInterface(),this.update()}}}),Sequencer}(Interface);module.exports=Sequencer},function(module,exports,__webpack_require__){"use strict";var _interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj},_createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},math=_interopRequire(__webpack_require__(5)),Sequence=_interopRequire(__webpack_require__(26)),Matrix=function(){function Matrix(rows,columns){var _this=this;_classCallCheck(this,Matrix),this.pattern=[],this.create(rows,columns),this.toggle={cell:function(column,row){return _this.pattern[row][column]=!_this.pattern[row][column],_this.ui&&_this.ui.update(),_this.pattern[row][column]},all:function(){_this.iterate(function(r,c){_this.toggle.cell(c,r)}),_this.ui&&_this.ui.update()},row:function(row){for(var i=0;i<_this.columns;i++)_this.toggle.cell(i,row);_this.ui&&_this.ui.update()},column:function(column){for(var i=0;i<_this.rows;i++)_this.toggle.cell(column,i);_this.ui&&_this.ui.update()}},this.set={cell:function(column,row,value){_this.pattern[row][column]=value,_this.ui&&_this.ui.update()},all:function(values){_this.pattern=values,_this.ui&&_this.ui.update()},row:function(row,values){_this.pattern[row]=values,_this.ui&&_this.ui.update()},column:function(column,values){_this.pattern.forEach(function(row,i){_this.pattern[i][column]=values[i]}),_this.ui&&_this.ui.update()}},this.rotate={all:function(amount){amount||0===amount||(amount=1),(amount%=_this.pattern[0].length)<0&&(amount=_this.pattern[0].length+amount);for(var i=0;i<_this.rows;i++){var cut=_this.pattern[i].splice(_this.pattern[i].length-amount,amount);_this.pattern[i]=cut.concat(_this.pattern[i])}_this.ui&&_this.ui.update()},row:function(row,amount){amount||0===amount||(amount=1),(amount%=_this.pattern[0].length)<0&&(amount=_this.pattern[0].length+amount);var cut=_this.pattern[row].splice(_this.pattern[row].length-amount,amount);_this.pattern[row]=cut.concat(_this.pattern[row]),_this.ui&&_this.ui.update()},column:function(column,amount){amount||0===amount||(amount=1),(amount%=_this.pattern.length)<0&&(amount=_this.pattern.length+amount);var proxy=[];_this.pattern.forEach(function(row){proxy.push(row[column])});var cut=proxy.splice(proxy.length-amount,amount);proxy=cut.concat(proxy),_this.pattern.forEach(function(row,i){row[column]=proxy[i]}),_this.ui&&_this.ui.update()}},this.populate={all:function(odds){var oddsSequence=new Sequence(odds);_this.iterate(function(r,c){_this.pattern[r][c]=math.coin(oddsSequence.next())}),_this.ui&&_this.ui.update()},row:function(){var row=void 0===arguments[0]?0:arguments[0],odds=void 0===arguments[1]?1:arguments[1],oddsSequence=new Sequence(odds);_this.pattern[row].forEach(function(cell,i){_this.pattern[row][i]=math.coin(oddsSequence.next())}),_this.ui&&_this.ui.update()},column:function(){var column=void 0===arguments[0]?0:arguments[0],odds=void 0===arguments[1]?1:arguments[1],oddsSequence=new Sequence(odds);_this.pattern.forEach(function(row,i){_this.pattern[i][column]=math.coin(oddsSequence.next())}),_this.ui&&_this.ui.update()}},this.erase={all:function(){_this.set.all(0)},row:function(row){_this.set.row(row,0)},column:function(column){_this.set.column(column,0)}}}return _createClass(Matrix,{create:{value:function(rows,columns){var _this=this;this.pattern=[];for(var row=0;rowthis.max&&(this.loop?this.value=this.min:this.value=this.max-this.increment),this.value=this.max&&(this.value=this.min),this.value}},down:{value:function(){return this.value--,this.valuethis._numberOfSliders?vs.slice(0,this._numberOfSliders):vs.concat(Array(this._numberOfSliders-vs.length).fill(0)),this.candycane=this.settings.candycane,this.sliderWidth=this.width/this.values.length,this.smoothing=this.settings.smoothing,this.init(),this.render()}return _inherits(Multislider,_Interface),_createClass(Multislider,{buildInterface:{value:function(){"line"==this._mode?(this.line=svg.create("polyline"),this.line.setAttribute("stroke-width",2),this.line.setAttribute("fill","none"),this.element.appendChild(this.line),this.fill=svg.create("polyline"),this.fill.setAttribute("fill-opacity","0.2"),this.element.appendChild(this.fill),this.nodes=[],this.values.forEach(function(value,index){var node=svg.create("circle");node.setAttribute("cx",this.getX(index)),node.setAttribute("cy",this.getY(value)),this.element.appendChild(node),this.nodes.push(node)}.bind(this))):(this.bars=[],this.caps=[],this.values.forEach(function(value,index){var bar=svg.create("rect"),x=this.getBarX(index),y=this.getY(value);bar.setAttribute("x",x-.1),bar.setAttribute("y",y),bar.setAttribute("width",this.sliderWidth+.2),bar.setAttribute("height",this.height),bar.setAttribute("opacity",1-(index%this.candycane+1)/(this.candycane+1)),this.element.appendChild(bar),this.bars.push(bar);var cap=svg.create("rect");cap.setAttribute("x",x-.1),cap.setAttribute("y",y),cap.setAttribute("width",this.sliderWidth+.2),cap.setAttribute("height",5),this.element.appendChild(cap),this.caps.push(cap)}.bind(this)))}},getBarX:{value:function(index){return this.getX(index)-this.sliderWidth/2}},getX:{value:function(index){return index*this.sliderWidth+this.sliderWidth/2}},getY:{value:function(value){return math.scale(value,this._min,this._max,this.height,0)}},getValueFromY:{value:function(y){var scaleAdjusted=math.scale(y,this.height,0,this._min,this._max);return this.adjustValueToStep(scaleAdjusted)}},getIndexFromX:{value:function(x){return math.clip(Math.floor(x/this.width*this.values.length),0,this.values.length-1)}},adjustValueToStep:{value:function(value){if(!this._step)return value;var offset=value%this._step;return value-=value%this._step,offset>this._step/2&&(value+=this._step),value}},adjustAllValues:{value:function(){this.values.forEach(function(value,index){value=this.adjustValueToStep(value),this.values[index]=math.clip(value,this._min,this._max)}.bind(this))}},getNormalizedValues:{value:function(){this.normalizedValues=[],this.values.forEach(function(value){this.normalizedValues.push(math.scale(value,this._min,this._max,0,1))}.bind(this))}},colorInterface:{value:function(){var _this=this;this.element.style.backgroundColor=this.colors.fill,"line"==this._mode?(this.line.setAttribute("stroke",this.colors.accent),this.fill.setAttribute("fill",this.colors.accent),this.nodes.forEach(function(node){node.setAttribute("fill",_this.colors.accent)})):(this.bars.forEach(function(bar){bar.setAttribute("fill",_this.colors.accent)}),this.caps.forEach(function(cap){cap.setAttribute("fill",_this.colors.accent)}))}},sizeInterface:{value:function(){this.sliderWidth=this.width/this.values.length,"line"==this._mode&&this.nodes.forEach(function(node){var r=2+~~(Math.min(this.width,this.height)/50);r=Math.min(this.sliderWidth,r),node.setAttribute("r",r)}.bind(this)),this.render()}},render:{value:function(){var _this=this;"line"==this._mode?function(){var data="0 "+_this.getY(_this.values[0])+", ";_this.values.forEach(function(value,index){var x=_this.getX(index),y=_this.getY(value);data+=x+" "+y+", ",_this.nodes[index].setAttribute("cx",_this.getX(index)),_this.nodes[index].setAttribute("cy",_this.getY(value))}),data+=_this.width+" "+_this.getY(_this.values[_this.values.length-1]),_this.line.setAttribute("points",data),data+=", "+_this.width+" "+_this.height+", ",data+="0 "+_this.height,_this.fill.setAttribute("points",data)}():this.values.forEach(function(value,index){_this.bars[index].setAttribute("y",_this.getY(value)),_this.caps[index].setAttribute("y",_this.getY(value))})}},click:{value:function(){this.hasMoved=!1,this.previousSlider=!1,this.move()}},move:{value:function(){if(this.clicked){if(this.mouse.x=math.clip(this.mouse.x,0,this.width),this.mouse.y=math.clip(this.mouse.y,0,this.height),this.hasMoved=!0,this.selectedSlider=this.getIndexFromX(this.mouse.x),this.values[this.selectedSlider]=this.getValueFromY(this.mouse.y),!1!==this.previousSlider){var distance=Math.abs(this.previousSlider-this.selectedSlider);if(distance>1)for(var low=Math.min(this.previousSlider,this.selectedSlider),high=Math.max(this.previousSlider,this.selectedSlider),lowValue=this.values[low],highValue=this.values[high],_i=low;_i0)for(var i=1;i<=this.smoothing;i++){var downCenter=this.selectedSlider-i,upCenter=this.selectedSlider+i;if(downCenter>=1){var downLowerNeighbor=downCenter-1>=0?downCenter-1:0,downUpperNeighbor=downCenter+1;this.values[downCenter]=(this.values[downLowerNeighbor]+this.values[downUpperNeighbor])/2,this.values[downCenter]=this.adjustValueToStep(this.values[downCenter])}if(upCenter=0){var prevIndex=this.envelope.nodes.indexOf(this)-1,nextIndex=this.envelope.nodes.indexOf(this)+1,prevNode=this.envelope.nodes[prevIndex],nextNode=this.envelope.nodes[nextIndex],lowX=prevIndex>=0?prevNode.x:0;lowX=lowXthis.xMax?this.xMax:highX,this.xhighX&&(this.x=highX),this.ythis.yMax&&(this.y=this.yMax)}this.location=this.getCoordinates(),this.element.setAttribute("cx",this.location.x),this.element.setAttribute("cy",this.location.y)},this.getCoordinates=function(){return{x:this.x*this.envelope.width,y:(1-this.y)*this.envelope.height}},this.move(this.x,this.y,!0),this.resize(),this.destroy=function(){this.envelope.element.removeChild(this.element),this.envelope.nodes.splice(this.envelope.nodes.indexOf(this),1)}},Envelope=function(_Interface){function Envelope(){_classCallCheck(this,Envelope);var options=["value"],defaults={size:[300,150],noNewPoints:!1,points:[{x:.1,y:.4},{x:.35,y:.6},{x:.65,y:.2},{x:.9,y:.4}]};_get(Object.getPrototypeOf(Envelope.prototype),"constructor",this).call(this,arguments,options,defaults),this.points=this.settings.points,this.nodes=[],this.selected=!1,this.init()}return _inherits(Envelope,_Interface),_createClass(Envelope,{buildInterface:{value:function(){var _this=this;this.points.forEach(function(point){var node=new Point(point,_this);_this.nodes.push(node)}),this.sortPoints(),this.line=svg.create("polyline"),this.line.setAttribute("stroke-width",2),this.line.setAttribute("fill","none"),this.element.appendChild(this.line),this.fill=svg.create("polyline"),this.fill.setAttribute("fill-opacity","0.2"),this.element.appendChild(this.fill)}},sizeInterface:{value:function(){for(var i=0;inodes[i].x)}return!this.settings.noNewPoints&&nearestDist>.07&&(nearestIndex=this.getIndexFromX(this.mouse.x/this.width),this.nodes.splice(nearestIndex,0,new Point({x:this.mouse.x/this.width,y:1-this.mouse.y/this.height},this)),this.hasMoved=!0),nearestIndex}},getIndexFromX:{value:function(x){var _this=this,index=0;return this.nodes.forEach(function(node,i){_this.nodes[i].x<=x&&(index=i+1)}),index}},scaleNode:{value:function(i){var clippedX=math.clip(this.nodes[i].x,0,1),clippedY=math.clip(this.nodes[i].y,0,1);this.nodes[i].move(clippedX,clippedY)}},sortPoints:{value:function(){this.nodes.sort(function(a,b){return a.x>b.x})}},addPoint:{value:function(x,y){var index=this.nodes.length;this.sortPoints();for(var i=0;i=this.nodes.length&&(nextIndex=this.nodes.length-1);var priorPoint=this.nodes[priorIndex],nextPoint=this.nodes[nextIndex],loc=math.scale(x,priorPoint.x,nextPoint.x,0,1),value=math.interp(loc,priorPoint.y,nextPoint.y);return this.emit("scan",value),value}},movePoint:{value:function(index,x,y){this.nodes[index].move(x,y),this.scaleNode(index),this.calculatePoints(),this.emit("change",this.points),this.render()}},adjustPoint:{value:function(index,xOffset,yOffset){this.nodes[index].move(this.nodes[index].x+xOffset,this.nodes[index].y+yOffset),this.scaleNode(index),this.calculatePoints(),this.emit("change",this.points),this.render()}},destroyPoint:{value:function(index){this.nodes[index].destroy(),this.calculatePoints(),this.emit("change",this.points),this.render()}},setPoints:{value:function(allPoints){for(var _this=this;this.nodes.length;)this.nodes[0].destroy();allPoints.forEach(function(point){_this.addPoint(point.x,point.y)}),this.calculatePoints(),this.emit("change",this.points),this.render()}}}),Envelope}(Interface);module.exports=Envelope},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc&&desc.writable)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(subClass.__proto__=superClass)},_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},dom=__webpack_require__(7),Interface=__webpack_require__(6),Spectrogram=function(_Interface){function Spectrogram(){_classCallCheck(this,Spectrogram);var options=[],defaults={size:[300,150]};_get(Object.getPrototypeOf(Spectrogram.prototype),"constructor",this).call(this,arguments,options,defaults),this.analyser=null,this.bufferLength=0,this.dataArray=null,this.active=!1,this.source=null,this.init()}return _inherits(Spectrogram,_Interface),_createClass(Spectrogram,{buildFrame:{value:function(){this.canvas=new dom.SmartCanvas(this.parent),this.element=this.canvas.element}},sizeInterface:{value:function(){this.canvas.resize(this.width,this.height)}},colorInterface:{value:function(){this.canvas.element.style.backgroundColor=this.colors.fill}},render:{value:function(){if(this.active&&requestAnimationFrame(this.render.bind(this)),this.analyser&&this.analyser.getByteFrequencyData(this.dataArray),this.canvas.context.fillStyle=this.colors.fill,this.canvas.context.fillRect(0,0,this.canvas.element.width,this.canvas.element.height),this.source&&this.dataArray)for(var barWidth=this.canvas.element.width/this.bufferLength,barHeight=void 0,x=0,definition=this.canvas.element.width/50,i=0;i-200&&this.db!==-1/0?this.db-=1:this.db=-1/0;if(this.db>-70){var linear=math.normalize(this.db,-70,5),exp=linear*linear,y=math.scale(exp,0,1,this.element.height,0);this.canvas.context.fillStyle=this.colors.accent,this.canvas.context.fillRect(this.meterWidth*i,y,this.meterWidth,this.canvas.element.height-y)}}}},connect:{value:function(node,channels){this.source&&this.disconnect(),this.channels=channels||node.channelCount||2,this.splitter=node.context.createChannelSplitter(this.channels),this.analysers=[];for(var i=0;i0;)this.meta.contents.appendChild(this.meta.parent.childNodes[0]);this.meta.contents.style.padding="0px",this.meta.contents.style.boxSizing="border-box",this.meta.title&&(this.meta.titleBar=document.createElement("div"),this.meta.titleBar.innerHTML=this.meta.title,this.meta.titleBar.style.fontFamily="arial",this.meta.titleBar.style.position="relative",this.meta.titleBar.style.color="#888",this.meta.titleBar.style.padding="7px",this.meta.titleBar.style.fontSize="12px",this.meta.button=document.createElement("div"),this.meta.button.style.position="absolute",this.meta.button.style.top="5px",this.meta.button.style.right="5px",this.meta.button.innerHTML="-",this.meta.button.style.padding="0px 5px 2px",this.meta.button.style.lineHeight="12px",this.meta.button.style.fontSize="15px",this.meta.button.style.cursor="pointer",this.meta.button.addEventListener("mouseover",function(){_this.meta.button.style.backgroundColor=_this.meta.colors.mediumDark}),this.meta.button.addEventListener("mouseleave",function(){_this.meta.button.style.backgroundColor=_this.meta.colors.mediumLight}),this.meta.button.addEventListener("click",function(){_this.meta.open?_this.hide():_this.show()}),this.meta.titleBar.appendChild(this.meta.button),this.meta.parent.appendChild(this.meta.titleBar)),this.meta.parent.appendChild(this.meta.contents);var ui=transform.section(this.meta.target,this.meta.attribute);for(var key in ui)this[key]=ui[key]}},colorInterface:{value:function(){this.meta.title&&(this.meta.button.style.backgroundColor=this.meta.colors.mediumLight,this.meta.button.style.border="solid 0px "+this.meta.colors.fill,this.meta.parent.style.border="solid 1px "+this.meta.colors.mediumLight,this.meta.parent.style.backgroundColor=this.meta.colors.light,this.meta.titleBar.style.backgroundColor=this.meta.colors.fill)}},show:{value:function(){this.meta.contents.style.display="block",this.meta.open=!0}},hide:{value:function(){this.meta.contents.style.display="none",this.meta.open=!1}},colorize:{value:function(type,color){for(var key in this)this[key].colorize&&this[key].colorize(type,color);this.meta.colors[type]=color,this.colorInterface()}},empty:{value:function(){for(var key in this)this[key].destroy&&this[key].destroy()}}}),Rack}();module.exports=Rack},function(module,exports,__webpack_require__){"use strict";var _interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj};Object.defineProperty(exports,"__esModule",{value:!0});var dom=_interopRequire(__webpack_require__(7)),Interfaces=_interopRequire(__webpack_require__(2)),createInterfaceID=function(widget,interfaceIDs){var type=widget.type;return interfaceIDs[type]?interfaceIDs[type]++:interfaceIDs[type]=1,type+interfaceIDs[type]},element=function(element,type,options){options=options||{};for(var i=0;i1?_len-1:0),_key=1;_key<_len;_key++)onVals[_key-1]=arguments[_key];var length=void 0===arguments[0]?3:arguments[0];_classCallCheck(this,Radio),length<0&&(length=1),this.length=length,this.onVals=onVals,this.array=new Array(length).fill(0),onVals.length>0&&this.on.apply(this,onVals)}return _createClass(Radio,{select:{value:function(value){return this.array.fill(0),this.array[value]=1,this.array}},flip:{value:function(){for(var _len=arguments.length,values=Array(_len),_key=0;_key<_len;_key++)values[_key]=arguments[_key];var a=this.array;return values.length>0?values.forEach(function(v){v>a.length-1?console.warn("Warning: AnonRadio["+v+"] does not exist"):a[v]=a[v]?0:1}):a.forEach(function(v,i,arr){arr[i]=v?0:1}),a}},on:{value:function(){for(var _len=arguments.length,values=Array(_len),_key=0;_key<_len;_key++)values[_key]=arguments[_key];var a=this.array;return values.length>0?values.forEach(function(v){v>a.length-1?console.warn("Warning: AnonRadio["+v+"] exceeds size of object"):(1===a[v]&&console.warn("Warning: AnonRadio["+v+"] was already on."),a[v]=1)}):a.fill(1),a}},off:{value:function(){for(var _len=arguments.length,values=Array(_len),_key=0;_key<_len;_key++)values[_key]=arguments[_key];var a=this.array;return values.length>0?values.forEach(function(v){a[v]=0}):a.fill(0),a}}}),Radio}();module.exports=Radio},function(module,exports,__webpack_require__){var WAAClock=__webpack_require__(43);module.exports=WAAClock,"undefined"!=typeof window&&(window.WAAClock=WAAClock)},function(module,exports,__webpack_require__){(function(process){var CLOCK_DEFAULTS={toleranceLate:.1,toleranceEarly:.001},Event=function(clock,deadline,func){this.clock=clock,this.func=func,this._cleared=!1,this.toleranceLate=clock.toleranceLate,this.toleranceEarly=clock.toleranceEarly,this._latestTime=null,this._earliestTime=null,this.deadline=null,this.repeatTime=null,this.schedule(deadline)} +;Event.prototype.clear=function(){return this.clock._removeEvent(this),this._cleared=!0,this},Event.prototype.repeat=function(time){if(0===time)throw new Error("delay cannot be 0");return this.repeatTime=time,this.clock._hasEvent(this)||this.schedule(this.deadline+this.repeatTime),this},Event.prototype.tolerance=function(values){return"number"==typeof values.late&&(this.toleranceLate=values.late),"number"==typeof values.early&&(this.toleranceEarly=values.early),this._refreshEarlyLateDates(),this.clock._hasEvent(this)&&(this.clock._removeEvent(this),this.clock._insertEvent(this)),this},Event.prototype.isRepeated=function(){return null!==this.repeatTime},Event.prototype.schedule=function(deadline){this._cleared=!1,this.deadline=deadline,this._refreshEarlyLateDates(),this.clock.context.currentTime>=this._earliestTime?this._execute():this.clock._hasEvent(this)?(this.clock._removeEvent(this),this.clock._insertEvent(this)):this.clock._insertEvent(this)},Event.prototype.timeStretch=function(tRef,ratio){this.isRepeated()&&(this.repeatTime=this.repeatTime*ratio);var deadline=tRef+ratio*(this.deadline-tRef);if(this.isRepeated())for(;this.clock.context.currentTime>=deadline-this.toleranceEarly;)deadline+=this.repeatTime;this.schedule(deadline)},Event.prototype._execute=function(){!1!==this.clock._started&&(this.clock._removeEvent(this),this.clock.context.currentTime1)for(var i=1;i document.body.removeEventListener(eventName, unlock)); + if (audioContext.state === 'suspended') { + console.log('Audio context - unlocked ...'); + audioContext.resume(); + } + } + + if (audioContext.state === 'suspended') { + console.log('Audio context - suspended until user interaction ...'); + events.forEach(eventName => { + document.body.addEventListener(eventName, unlock, false); + }); + } +} /** NexusUI => created as Nexus @@ -22,97 +42,106 @@ NexusUI => created as Nexus class NexusUI { - constructor(context) { + constructor(context) { - for (let key in Interfaces) { - this[key] = Interfaces[key]; - } - - for (let key in math) { - this[key] = math[key]; - } + for (let key in Interfaces) { + this[key] = Interfaces[key]; + } - let Core = { - 'Rack': Rack - }; + for (let key in math) { + this[key] = math[key]; + } - let Models = { - 'Counter': Counter, - 'Radio': Radio, - 'Drunk': Drunk, - 'Sequence': Sequence, - 'Matrix': Matrix - }; + let Core = { + 'Rack': Rack + }; - for (let key in Models) { - this[key] = Models[key]; - } + let Models = { + 'Counter': Counter, + 'Radio': Radio, + 'Drunk': Drunk, + 'Sequence': Sequence, + 'Matrix': Matrix + }; - for (let key in Core) { - this[key] = Core[key]; - } + for (let key in Models) { + this[key] = Models[key]; + } - let DefaultContext = window.AudioContext || window.webkitAudioContext; - this._context = context || new DefaultContext(); + for (let key in Core) { + this[key] = Core[key]; + } - this.tune = new Tune(); - this.note = this.tune.note.bind(this.tune); + this._context = context; - this.clock = new WAAClock(this._context); - this.clock.start(); - this.Interval = Interval; + this.tune = new Tune(); + this.note = this.tune.note.bind(this.tune); - this.colors = { - accent: '#2bb', - fill: '#eee', - light: '#fff', - dark: '#333', - mediumLight: '#ccc', - mediumDark: '#666' - }; + this._clock = null; + this.Interval = Interval; - this.transform = Transform; - this.add = Transform.add; + this.colors = { + accent: '#2bb', + fill: '#eee', + light: '#fff', + dark: '#333', + mediumLight: '#ccc', + mediumDark: '#666' + }; + this.transform = Transform; + this.add = Transform.add; - this.Add = {}; - for (let key in Interfaces) { - this.Add[key] = Transform.add.bind(this,key); - } + this.Add = {}; + for (let key in Interfaces) { + this.Add[key] = Transform.add.bind(this, key); + } - /* create default component size */ - /* jshint ignore:start */ - var existingStylesheets = document.getElementsByTagName("style"); - var defaultSizeDeclaration = '[nexus-ui]{height:5000px;width:5000px}'; - var defaultStyleNode = document.createElement('style'); - defaultStyleNode.type = 'text/css'; - defaultStyleNode.innerHTML = defaultSizeDeclaration; - if (existingStylesheets.length > 0) { - var parent = existingStylesheets[0].parentNode - parent.insertBefore( defaultStyleNode, existingStylesheets[0]) - } else { - document.write('")}return _createClass(NexusUI,{context:{get:function(){return this._context||(this.context=new DefaultContext),this._context},set:function(ctx){this._clock&&(this._clock.stop(),this._clock=null),this._context=ctx,unlockAudioContext(ctx)}},clock:{get:function(){return this._clock||(this._clock=new WAAClock(this.context),this._clock.start()),this._clock}}}),NexusUI}(),Nexus=new NexusUI;exports.default=Nexus},function(module,exports,__webpack_require__){"use strict";module.exports={Position:__webpack_require__(3),Slider:__webpack_require__(14),Toggle:__webpack_require__(15),Button:__webpack_require__(16),TextButton:__webpack_require__(18),RadioButton:__webpack_require__(19),Number:__webpack_require__(20),Select:__webpack_require__(21),Dial:__webpack_require__(22),Piano:__webpack_require__(23),Sequencer:__webpack_require__(24),Pan2D:__webpack_require__(30),Tilt:__webpack_require__(31),Multislider:__webpack_require__(32),Pan:__webpack_require__(33),Envelope:__webpack_require__(34),Spectrogram:__webpack_require__(35),Meter:__webpack_require__(36),Oscilloscope:__webpack_require__(37)}},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc&&desc.writable)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(subClass.__proto__=superClass)},_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},svg=__webpack_require__(4),Interface=__webpack_require__(6),Step=__webpack_require__(11),Interaction=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(12)),Position=function(_Interface){function Position(){_classCallCheck(this,Position);var options=["value"],defaults={size:[200,200],mode:"absolute",minX:0,maxX:1,stepX:0,x:.5,minY:0,maxY:1,stepY:0,y:.5};_get(Object.getPrototypeOf(Position.prototype),"constructor",this).call(this,arguments,options,defaults),this._x=new Step(this.settings.minX,this.settings.maxX,this.settings.stepX,this.settings.x),this._y=new Step(this.settings.minY,this.settings.maxY,this.settings.stepY,this.settings.y),this.position={x:new Interaction.Handle(this.settings.mode,"horizontal",[0,this.width],[this.height,0]),y:new Interaction.Handle(this.settings.mode,"vertical",[0,this.width],[this.height,0])},this.position.x.value=this._x.normalized,this.position.y.value=this._y.normalized,this.init(),this.render()}return _inherits(Position,_Interface),_createClass(Position,{buildInterface:{value:function(){this.knob=svg.create("circle"),this.element.appendChild(this.knob)}},sizeInterface:{value:function(){this.position.x.resize([0,this.width],[this.height,0]),this.position.y.resize([0,this.width],[this.height,0]),this._minDimension=Math.min(this.width,this.height),this.knobRadius={off:5*~~(this._minDimension/100)+5},this.knobRadius.on=2*this.knobRadius.off,this.knob.setAttribute("cx",this.width/2),this.knob.setAttribute("cy",this.height/2),this.knob.setAttribute("r",this.knobRadius.off)}},colorInterface:{value:function(){this.element.style.backgroundColor=this.colors.fill,this.knob.setAttribute("fill",this.colors.accent)}},render:{value:function(){this.clicked?this.knob.setAttribute("r",this.knobRadius.on):this.knob.setAttribute("r",this.knobRadius.off),this.knobCoordinates={x:this._x.normalized*this.width,y:this.height-this._y.normalized*this.height},this.knob.setAttribute("cx",this.knobCoordinates.x),this.knob.setAttribute("cy",this.knobCoordinates.y)}},click:{value:function(){this.position.x.anchor=this.mouse,this.position.y.anchor=this.mouse,this.move()}},move:{value:function(){this.clicked&&(this.position.x.update(this.mouse),this.position.y.update(this.mouse),this._x.updateNormal(this.position.x.value),this._y.updateNormal(this.position.y.value),this.emit("change",{x:this._x.value,y:this._y.value}),this.render())}},release:{value:function(){this.render()}},x:{get:function(){return this._x.value},set:function(value){this._x.update(value),this.emit("change",{x:this._x.value,y:this._y.value}),this.render()}},y:{get:function(){return this._y.value},set:function(value){this._y.update(value),this.emit("change",{x:this._x.value,y:this._y.value}),this.render()}},normalized:{get:function(){return{x:this._x.normalized,y:this._y.normalized}}},minX:{get:function(){return this._x.min},set:function(v){this._x.min=v,this.render()}},minY:{get:function(){return this._y.min},set:function(v){this._y.min=v,this.render()}},maxX:{get:function(){return this._x.max},set:function(v){this._x.max=v,this.render()}},maxY:{get:function(){return this._y.max},set:function(v){this._y.max=v,this.render()}},stepX:{get:function(){return this._x.step},set:function(v){this._x.step=v,this.render()}},stepY:{get:function(){return this._y.step},set:function(v){this._y.step=v,this.render()}},mode:{get:function(){return this.position.x.mode},set:function(v){this.position.x.mode=v,this.position.y.mode=v}}}),Position}(Interface);module.exports=Position},function(module,exports,__webpack_require__){"use strict";var math=__webpack_require__(5);module.exports={create:function(type){return document.createElementNS("http://www.w3.org/2000/svg",type)},arc:function(x,y,radius,startAngle,endAngle){var start=math.toCartesian(radius,endAngle),end=math.toCartesian(radius,startAngle),largeArcFlag=endAngle-startAngle<=180?"0":"1";return["M",start.x+x,start.y+y,"A",radius,radius,0,largeArcFlag,0,end.x+x,end.y+y].join(" ")},radialGradient:function(defs,numberOfStops){var id="gradient"+math.ri(1e11),stops=[],gradient=document.createElementNS("http://www.w3.org/2000/svg","radialGradient");gradient.setAttribute("id",id),gradient.setAttribute("cx","50%"),gradient.setAttribute("cy","50%"),gradient.setAttribute("r","50%"),defs.appendChild(gradient);for(var i=0;i=max&&(input=min),input},exports.average=function(data){for(var total=0,i=0;i=1){var key=options.splice(0,1)[0];settings[key]=setting}}return this.parent=dom.parseElement(settings.target),this.parent&&this.parent instanceof HTMLElement&&!settings.component&&(this.parent.hasAttribute("nexus-ui")||this.parent.setAttribute("nexus-ui","")),settings.size&&Array.isArray(settings.size)&&settings.snapWithParent?(this.width=settings.size[0],this.height=settings.size[1],this.parent.style.width=this.width+"px",this.parent.style.height=this.height+"px"):settings.snapWithParent&&!settings.component?(this.width=parseFloat(window.getComputedStyle(this.parent,null).getPropertyValue("width").replace("px","")),this.height=parseFloat(window.getComputedStyle(this.parent,null).getPropertyValue("height").replace("px","")),5e3==this.width&&(this.width=settings.defaultSize[0],this.parent.style.width=this.parent.width=this.width+"px"),5e3==this.height&&(this.height=settings.defaultSize[1],this.parent.style.height=this.parent.height=this.height+"px")):(settings.size=settings.defaultSize,this.width=settings.size[0],this.height=settings.size[1]),settings.event?this.event=this.on("change",settings.event):this.event=!1,settings}},init:{value:function(){this.buildFrame(),this.buildInterface(),this.sizeInterface(),this.attachListeners(),this.colorInterface(),this.finalTouches()}},buildFrame:{value:function(){this.element=svg.create("svg"),this.element.setAttribute("width",this.width),this.element.setAttribute("height",this.height),this.parent.appendChild(this.element)}},buildInterface:{value:function(){}},sizeInterface:{value:function(){}},colorInterface:{value:function(){}},attachListeners:{value:function(){var _this=this;this.interactionTarget=this.interactionTarget||this.element,touch.exists&&(this.interactionTarget.addEventListener("touchstart",function(evt){return _this.preTouch(evt)}),this.interactionTarget.addEventListener("touchmove",function(evt){return _this.preTouchMove(evt)}),this.interactionTarget.addEventListener("touchend",function(evt){return _this.preTouchRelease(evt)})),this.boundPreMove=function(evt){return _this.preMove(evt)},this.boundPreRelease=function(evt){return _this.preRelease(evt)},this.interactionTarget.addEventListener("mousedown",function(evt){return _this.preClick(evt)})}},finalTouches:{value:function(){this.element.style.cursor="pointer"}},preClick:{value:function(e){this.element instanceof HTMLElement&&(this.width=window.getComputedStyle(this.element,null).getPropertyValue("width").replace("px","")),this.offset=dom.findPosition(this.element),this.mouse=dom.locateMouse(e,this.offset),this.clicked=!0,this.click(),this.moveEvent=document.addEventListener("mousemove",this.boundPreMove),this.releaseEvent=document.addEventListener("mouseup",this.boundPreRelease),this.emit("click"),e.preventDefault(),e.stopPropagation()}},preMove:{value:function(e){var _this=this;this.wait||(this.mouse=dom.locateMouse(e,this.offset),this.move(),this.wait=!0,setTimeout(function(){_this.wait=!1},25)),e.preventDefault(),e.stopPropagation()}},preRelease:{value:function(e){this.mouse=dom.locateMouse(e,this.offset),this.clicked=!1,this.release(),this.emit("release"),document.removeEventListener("mousemove",this.boundPreMove),document.removeEventListener("mouseup",this.boundPreRelease),e.preventDefault(),e.stopPropagation()}},click:{value:function(){}},move:{value:function(){}},release:{value:function(){}},preTouch:{value:function(e){this.element instanceof HTMLElement&&(this.width=window.getComputedStyle(this.element,null).getPropertyValue("width").replace("px","")),this.offset=dom.findPosition(this.element),this.mouse=dom.locateTouch(e,this.offset),this.clicked=!0,this.touch(e),this.emit("click"),e.preventDefault(),e.stopPropagation()}},preTouchMove:{value:function(e){this.clicked&&(this.mouse=dom.locateTouch(e,this.offset),this.touchMove(),e.preventDefault(),e.stopPropagation())}},preTouchRelease:{value:function(e){this.mouse=dom.locateTouch(e,this.offset),this.clicked=!1,this.touchRelease(),this.emit("release"),e.preventDefault(),e.stopPropagation()}},touch:{value:function(){this.click()}},touchMove:{value:function(){this.move()}},touchRelease:{value:function(){this.release()}},resize:{value:function(width,height){this.width=width,this.height=height,this.parent.style.width=this.width+"px",this.parent.style.height=this.height+"px",this.element.setAttribute("width",this.width),this.element.setAttribute("height",this.height),this.sizeInterface()}},empty:{value:function(){for(;this.element.lastChild;)this.element.removeChild(this.element.lastChild)}},destroy:{value:function(){this.empty(),this.parent.removeChild(this.element),this.removeAllListeners(),this.instrument&&delete this.instrument[this.id],this.customDestroy()}},customDestroy:{value:function(){}},colorize:{value:function(type,color){this.colors[type]=color,this.colorInterface()}}}),Interface}(EventEmitter);module.exports=Interface},function(module,exports){"use strict";exports.findPosition=function(el){var viewportOffset=el.getBoundingClientRect();return{top:viewportOffset.top+window.scrollY,left:viewportOffset.left+window.scrollX}},exports.parseElement=function(parent){return"string"==typeof parent&&(parent=document.getElementById(parent.replace("#",""))),parent instanceof HTMLElement||parent instanceof SVGElement?parent:"No valid parent argument"},exports.locateMouse=function(e,offset){return{x:e.pageX-offset.left,y:e.pageY-offset.top}},exports.locateTouch=function(e,offset){return{x:!!e.targetTouches.length&&e.targetTouches[0].pageX-offset.left,y:!!e.targetTouches.length&&e.targetTouches[0].pageY-offset.top}},exports.SmartCanvas=function(parent){var _this=this;this.element=document.createElement("canvas"),this.context=this.element.getContext("2d"),parent.appendChild(this.element),this.resize=function(w,h){_this.element.width=2*w,_this.element.height=2*h,_this.element.style.width=w+"px",_this.element.style.height=h+"px"}}},function(module,exports){"use strict";exports.isObject=function(obj){return"object"==typeof obj&&!Array.isArray(obj)&&null!==obj&&obj instanceof SVGElement==!1&&obj instanceof HTMLElement==!1},exports.setInputFilter=function(textbox,inputFilter){["input","keydown","keyup","mousedown","mouseup","select","contextmenu","drop"].forEach(function(event){textbox.addEventListener(event,function(){inputFilter(this.value)?(this.oldValue=this.value,this.oldSelectionStart=this.selectionStart,this.oldSelectionEnd=this.selectionEnd):this.hasOwnProperty("oldValue")?(this.value=this.oldValue,this.setSelectionRange(this.oldSelectionStart,this.oldSelectionEnd)):this.value=""})})}},function(module,exports){"use strict";exports.exists="ontouchstart"in document.documentElement},function(module,exports){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if((er=arguments[1])instanceof Error)throw er;var err=new Error('Uncaught, unspecified "error" event. ('+er+")");throw err.context=er,err}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:args=Array.prototype.slice.call(arguments,1),handler.apply(this,args)}else if(isObject(handler))for(args=Array.prototype.slice.call(arguments,1),listeners=handler.slice(),len=listeners.length,i=0;i0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),"function"==typeof console.trace&&console.trace()),this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit("removeListener",type,listener);else if(isObject(list)){for(i=length;i-- >0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(position<0)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else if(listeners)for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){return this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.prototype.listenerCount=function(type){if(this._events){var evlistener=this._events[type];if(isFunction(evlistener))return 1;if(evlistener)return evlistener.length}return 0},EventEmitter.listenerCount=function(emitter,type){return emitter.listenerCount(type)}},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},math=__webpack_require__(5),Step=function(){function Step(){var min=void 0===arguments[0]?0:arguments[0],max=void 0===arguments[1]?1:arguments[1],step=void 0===arguments[2]?0:arguments[2],value=void 0===arguments[3]?0:arguments[3];_classCallCheck(this,Step),this.min=min,this.max=max,this.step=step,this.value=value,this.changed=!1,this.oldValue=!1,this.update(this.value)}return _createClass(Step,{update:{value:function(value){return this.step?this.value=math.clip(Math.round((value-this.min)/this.step)*this.step+this.min,this.min,this.max):this.value=math.clip(value,this.min,this.max),this.oldValue!==this.value?(this.oldValue=this.value,this.changed=!0):this.changed=!1,this.value}},updateNormal:{value:function(value){return this.value=math.scale(value,0,1,this.min,this.max),this.update(this.value)}},normalized:{get:function(){return math.normalize(this.value,this.min,this.max)}}}),Step}();module.exports=Step},function(module,exports,__webpack_require__){"use strict";var _interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj},_createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(exports,"__esModule",{value:!0});var math=_interopRequire(__webpack_require__(5)),ToggleModel=_interopRequire(__webpack_require__(13));exports.Handle=function(){function Handle(){var mode=void 0===arguments[0]?"absolute":arguments[0],direction=void 0===arguments[1]?"vertical":arguments[1],xbound=void 0===arguments[2]?[0,100]:arguments[2],ybound=void 0===arguments[3]?[0,100]:arguments[3];_classCallCheck(this,Handle),this.mode=mode,this.direction=direction,this.previous=0,this.value=0,this.sensitivity=1,this.resize(xbound,ybound)}return _createClass(Handle,{resize:{value:function(xbound,ybound){this.boundary={min:{x:xbound[0],y:ybound[0]},max:{x:xbound[1],y:ybound[1]},center:{x:(xbound[1]-xbound[0])/2+xbound[0],y:(ybound[1]-ybound[0])/2+ybound[0]}}}},anchor:{set:function(mouse){this._anchor=this.convertPositionToValue(mouse)},get:function(){return this._anchor}},update:{value:function(mouse){if("relative"===this.mode){var increment=this.convertPositionToValue(mouse)-this.anchor;Math.abs(increment)>.5&&(increment=0),this.anchor=mouse,this.value=this.value+increment*this.sensitivity}else this.value=this.convertPositionToValue(mouse);this.value=math.clip(this.value,0,1)}},convertPositionToValue:{value:function(current){switch(this.direction){case"radial":var position=math.toPolar(current.x-this.boundary.center.x,current.y-this.boundary.center.y);return position=position.angle/(2*Math.PI),position=(position-.25+1)%1;case"vertical":return math.scale(current.y,this.boundary.min.y,this.boundary.max.y,0,1);case"horizontal":return math.scale(current.x,this.boundary.min.x,this.boundary.max.x,0,1)}}}}),Handle}(),exports.Button=function(){function Button(){var mode=void 0===arguments[0]?"button":arguments[0];_classCallCheck(this,Button),this.mode=mode,this.state=new ToggleModel,this.paintbrush=!1}return _createClass(Button,{click:{value:function(){switch(this.mode){case"impulse":this.state.on(),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(this.state.off.bind(this),30),this.emit("change",this.state);break;case"button":this.turnOn(),this.emit("change",this.state);break;case"aftertouch":this.position={x:math.clip(this.mouse.x/this.width,0,1),y:math.clip(1-this.mouse.y/this.height,0,1)},this.turnOn(),this.emit("change",{state:this.state,x:this.position.x,y:this.position.y});break;case"toggle":this.flip(),this.emit("change",this.state)}}},move:{value:function(){"aftertouch"===this.mode&&(this.position={x:math.clip(this.mouse.x/this.width,0,1),y:math.clip(1-this.mouse.y/this.height,0,1)},this.emit("change",{state:this.state,x:this.position.x,y:this.position.y}),this.render())}},release:{value:function(){switch(this.mode){case"button":this.turnOff(),this.emit("change",this.state);break;case"aftertouch":this.turnOff(),this.position={x:this.mouse.x/this.width,y:1-this.mouse.y/this.height},this.emit("change",{state:this.state,x:this.position.x,y:this.position.y})}}}}),Button}()},function(module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)} +!function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory():"function"==typeof define&&define.amd?define([],factory):"object"==typeof exports?exports.Nexus=factory():root.Nexus=factory()}(this,function(){return function(modules){function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId]={exports:{},id:moduleId,loaded:!1};return modules[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}var installedModules={};return __webpack_require__.m=modules,__webpack_require__.c=installedModules,__webpack_require__.p="",__webpack_require__(0)}([function(module,exports,__webpack_require__){"use strict";var NexusUI=function(obj){return obj&&obj.__esModule?obj.default:obj}(__webpack_require__(1));module.exports=NexusUI},function(module,exports,__webpack_require__){"use strict";function unlockAudioContext(audioContext){function unlock(){events.forEach(function(eventName){return document.body.removeEventListener(eventName,unlock)}),"suspended"===audioContext.state&&(console.log("Audio context - unlocked ..."),audioContext.resume())}var events=["touchstart","touchend","mousedown","keydown"];"suspended"===audioContext.state&&(console.log("Audio context - suspended until user interaction ..."),events.forEach(function(eventName){document.body.addEventListener(eventName,unlock,!1)}))}function colors(){return Nexus.colors}function context(){return Nexus.context}function clock(){return Nexus.clock}var _interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj},_createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")};exports.colors=colors,exports.context=context,exports.clock=clock,Object.defineProperty(exports,"__esModule",{value:!0});var Interfaces=_interopRequire(__webpack_require__(2)),math=_interopRequire(__webpack_require__(5)),Rack=_interopRequire(__webpack_require__(38)),Tune=_interopRequire(__webpack_require__(40)),Transform=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(39)),Counter=__webpack_require__(28),Radio=__webpack_require__(41),Drunk=__webpack_require__(27),Sequence=__webpack_require__(26),Matrix=__webpack_require__(25),WAAClock=_interopRequire(__webpack_require__(42)),Interval=_interopRequire(__webpack_require__(29)),DefaultContext=window.AudioContext||window.webkitAudioContext,NexusUI=function(){function NexusUI(context){_classCallCheck(this,NexusUI);for(var key in Interfaces)this[key]=Interfaces[key];for(var key in math)this[key]=math[key];var Core={Rack:Rack},Models={Counter:Counter,Radio:Radio,Drunk:Drunk,Sequence:Sequence,Matrix:Matrix};for(var key in Models)this[key]=Models[key];for(var key in Core)this[key]=Core[key];this._context=context,this.tune=new Tune,this.note=this.tune.note.bind(this.tune),this._clock=null,this.Interval=Interval,this.colors={accent:"#2bb",fill:"#eee",light:"#fff",dark:"#333",mediumLight:"#ccc",mediumDark:"#666"},this.transform=Transform,this.add=Transform.add,this.Add={};for(var key in Interfaces)this.Add[key]=Transform.add.bind(this,key);var existingStylesheets=document.getElementsByTagName("style"),defaultStyleNode=document.createElement("style");if(defaultStyleNode.type="text/css",defaultStyleNode.innerHTML="[nexus-ui]{height:5000px;width:5000px}",existingStylesheets.length>0){existingStylesheets[0].parentNode.insertBefore(defaultStyleNode,existingStylesheets[0])}else document.write("")}return _createClass(NexusUI,{context:{get:function(){return this._context||(this._context=new DefaultContext),this._context},set:function(ctx){this._clock&&(this._clock.stop(),this._clock=null),this._context=ctx,unlockAudioContext(ctx)}},clock:{get:function(){return this._clock||(this._clock=new WAAClock(this.context),this._clock.start()),this._clock}}}),NexusUI}(),Nexus=new NexusUI;exports.default=Nexus},function(module,exports,__webpack_require__){"use strict";module.exports={Position:__webpack_require__(3),Slider:__webpack_require__(14),Toggle:__webpack_require__(15),Button:__webpack_require__(16),TextButton:__webpack_require__(18),RadioButton:__webpack_require__(19),Number:__webpack_require__(20),Select:__webpack_require__(21),Dial:__webpack_require__(22),Piano:__webpack_require__(23),Sequencer:__webpack_require__(24),Pan2D:__webpack_require__(30),Tilt:__webpack_require__(31),Multislider:__webpack_require__(32),Pan:__webpack_require__(33),Envelope:__webpack_require__(34),Spectrogram:__webpack_require__(35),Meter:__webpack_require__(36),Oscilloscope:__webpack_require__(37)}},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc&&desc.writable)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(subClass.__proto__=superClass)},_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},svg=__webpack_require__(4),Interface=__webpack_require__(6),Step=__webpack_require__(11),Interaction=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(12)),Position=function(_Interface){function Position(){_classCallCheck(this,Position);var options=["value"],defaults={size:[200,200],mode:"absolute",minX:0,maxX:1,stepX:0,x:.5,minY:0,maxY:1,stepY:0,y:.5};_get(Object.getPrototypeOf(Position.prototype),"constructor",this).call(this,arguments,options,defaults),this._x=new Step(this.settings.minX,this.settings.maxX,this.settings.stepX,this.settings.x),this._y=new Step(this.settings.minY,this.settings.maxY,this.settings.stepY,this.settings.y),this.position={x:new Interaction.Handle(this.settings.mode,"horizontal",[0,this.width],[this.height,0]),y:new Interaction.Handle(this.settings.mode,"vertical",[0,this.width],[this.height,0])},this.position.x.value=this._x.normalized,this.position.y.value=this._y.normalized,this.init(),this.render()}return _inherits(Position,_Interface),_createClass(Position,{buildInterface:{value:function(){this.knob=svg.create("circle"),this.element.appendChild(this.knob)}},sizeInterface:{value:function(){this.position.x.resize([0,this.width],[this.height,0]),this.position.y.resize([0,this.width],[this.height,0]),this._minDimension=Math.min(this.width,this.height),this.knobRadius={off:5*~~(this._minDimension/100)+5},this.knobRadius.on=2*this.knobRadius.off,this.knob.setAttribute("cx",this.width/2),this.knob.setAttribute("cy",this.height/2),this.knob.setAttribute("r",this.knobRadius.off)}},colorInterface:{value:function(){this.element.style.backgroundColor=this.colors.fill,this.knob.setAttribute("fill",this.colors.accent)}},render:{value:function(){this.clicked?this.knob.setAttribute("r",this.knobRadius.on):this.knob.setAttribute("r",this.knobRadius.off),this.knobCoordinates={x:this._x.normalized*this.width,y:this.height-this._y.normalized*this.height},this.knob.setAttribute("cx",this.knobCoordinates.x),this.knob.setAttribute("cy",this.knobCoordinates.y)}},click:{value:function(){this.position.x.anchor=this.mouse,this.position.y.anchor=this.mouse,this.move()}},move:{value:function(){this.clicked&&(this.position.x.update(this.mouse),this.position.y.update(this.mouse),this._x.updateNormal(this.position.x.value),this._y.updateNormal(this.position.y.value),this.emit("change",{x:this._x.value,y:this._y.value}),this.render())}},release:{value:function(){this.render()}},x:{get:function(){return this._x.value},set:function(value){this._x.update(value),this.emit("change",{x:this._x.value,y:this._y.value}),this.render()}},y:{get:function(){return this._y.value},set:function(value){this._y.update(value),this.emit("change",{x:this._x.value,y:this._y.value}),this.render()}},normalized:{get:function(){return{x:this._x.normalized,y:this._y.normalized}}},minX:{get:function(){return this._x.min},set:function(v){this._x.min=v,this.render()}},minY:{get:function(){return this._y.min},set:function(v){this._y.min=v,this.render()}},maxX:{get:function(){return this._x.max},set:function(v){this._x.max=v,this.render()}},maxY:{get:function(){return this._y.max},set:function(v){this._y.max=v,this.render()}},stepX:{get:function(){return this._x.step},set:function(v){this._x.step=v,this.render()}},stepY:{get:function(){return this._y.step},set:function(v){this._y.step=v,this.render()}},mode:{get:function(){return this.position.x.mode},set:function(v){this.position.x.mode=v,this.position.y.mode=v}}}),Position}(Interface);module.exports=Position},function(module,exports,__webpack_require__){"use strict";var math=__webpack_require__(5);module.exports={create:function(type){return document.createElementNS("http://www.w3.org/2000/svg",type)},arc:function(x,y,radius,startAngle,endAngle){var start=math.toCartesian(radius,endAngle),end=math.toCartesian(radius,startAngle),largeArcFlag=endAngle-startAngle<=180?"0":"1";return["M",start.x+x,start.y+y,"A",radius,radius,0,largeArcFlag,0,end.x+x,end.y+y].join(" ")},radialGradient:function(defs,numberOfStops){var id="gradient"+math.ri(1e11),stops=[],gradient=document.createElementNS("http://www.w3.org/2000/svg","radialGradient");gradient.setAttribute("id",id),gradient.setAttribute("cx","50%"),gradient.setAttribute("cy","50%"),gradient.setAttribute("r","50%"),defs.appendChild(gradient);for(var i=0;i=max&&(input=min),input},exports.average=function(data){for(var total=0,i=0;i=1){var key=options.splice(0,1)[0];settings[key]=setting}}return this.parent=dom.parseElement(settings.target),this.parent&&this.parent instanceof HTMLElement&&!settings.component&&(this.parent.hasAttribute("nexus-ui")||this.parent.setAttribute("nexus-ui","")),settings.size&&Array.isArray(settings.size)&&settings.snapWithParent?(this.width=settings.size[0],this.height=settings.size[1],this.parent.style.width=this.width+"px",this.parent.style.height=this.height+"px"):settings.snapWithParent&&!settings.component?(this.width=parseFloat(window.getComputedStyle(this.parent,null).getPropertyValue("width").replace("px","")),this.height=parseFloat(window.getComputedStyle(this.parent,null).getPropertyValue("height").replace("px","")),5e3==this.width&&(this.width=settings.defaultSize[0],this.parent.style.width=this.parent.width=this.width+"px"),5e3==this.height&&(this.height=settings.defaultSize[1],this.parent.style.height=this.parent.height=this.height+"px")):(settings.size=settings.defaultSize,this.width=settings.size[0],this.height=settings.size[1]),settings.event?this.event=this.on("change",settings.event):this.event=!1,settings}},init:{value:function(){this.buildFrame(),this.buildInterface(),this.sizeInterface(),this.attachListeners(),this.colorInterface(),this.finalTouches()}},buildFrame:{value:function(){this.element=svg.create("svg"),this.element.setAttribute("width",this.width),this.element.setAttribute("height",this.height),this.parent.appendChild(this.element)}},buildInterface:{value:function(){}},sizeInterface:{value:function(){}},colorInterface:{value:function(){}},attachListeners:{value:function(){var _this=this;this.interactionTarget=this.interactionTarget||this.element,touch.exists&&(this.interactionTarget.addEventListener("touchstart",function(evt){return _this.preTouch(evt)}),this.interactionTarget.addEventListener("touchmove",function(evt){return _this.preTouchMove(evt)}),this.interactionTarget.addEventListener("touchend",function(evt){return _this.preTouchRelease(evt)})),this.boundPreMove=function(evt){return _this.preMove(evt)},this.boundPreRelease=function(evt){return _this.preRelease(evt)},this.interactionTarget.addEventListener("mousedown",function(evt){return _this.preClick(evt)})}},finalTouches:{value:function(){this.element.style.cursor="pointer"}},preClick:{value:function(e){this.element instanceof HTMLElement&&(this.width=window.getComputedStyle(this.element,null).getPropertyValue("width").replace("px","")),this.offset=dom.findPosition(this.element),this.mouse=dom.locateMouse(e,this.offset),this.clicked=!0,this.click(),this.moveEvent=document.addEventListener("mousemove",this.boundPreMove),this.releaseEvent=document.addEventListener("mouseup",this.boundPreRelease),this.emit("click"),e.preventDefault(),e.stopPropagation()}},preMove:{value:function(e){var _this=this;this.wait||(this.mouse=dom.locateMouse(e,this.offset),this.move(),this.wait=!0,setTimeout(function(){_this.wait=!1},25)),e.preventDefault(),e.stopPropagation()}},preRelease:{value:function(e){this.mouse=dom.locateMouse(e,this.offset),this.clicked=!1,this.release(),this.emit("release"),document.removeEventListener("mousemove",this.boundPreMove),document.removeEventListener("mouseup",this.boundPreRelease),e.preventDefault(),e.stopPropagation()}},click:{value:function(){}},move:{value:function(){}},release:{value:function(){}},preTouch:{value:function(e){this.element instanceof HTMLElement&&(this.width=window.getComputedStyle(this.element,null).getPropertyValue("width").replace("px","")),this.offset=dom.findPosition(this.element),this.mouse=dom.locateTouch(e,this.offset),this.clicked=!0,this.touch(e),this.emit("click"),e.preventDefault(),e.stopPropagation()}},preTouchMove:{value:function(e){this.clicked&&(this.mouse=dom.locateTouch(e,this.offset),this.touchMove(),e.preventDefault(),e.stopPropagation())}},preTouchRelease:{value:function(e){this.mouse=dom.locateTouch(e,this.offset),this.clicked=!1,this.touchRelease(),this.emit("release"),e.preventDefault(),e.stopPropagation()}},touch:{value:function(){this.click()}},touchMove:{value:function(){this.move()}},touchRelease:{value:function(){this.release()}},resize:{value:function(width,height){this.width=width,this.height=height,this.parent.style.width=this.width+"px",this.parent.style.height=this.height+"px",this.element.setAttribute("width",this.width),this.element.setAttribute("height",this.height),this.sizeInterface()}},empty:{value:function(){for(;this.element.lastChild;)this.element.removeChild(this.element.lastChild)}},destroy:{value:function(){this.empty(),this.parent.removeChild(this.element),this.removeAllListeners(),this.instrument&&delete this.instrument[this.id],this.customDestroy()}},customDestroy:{value:function(){}},colorize:{value:function(type,color){this.colors[type]=color,this.colorInterface()}}}),Interface}(EventEmitter);module.exports=Interface},function(module,exports){"use strict";exports.findPosition=function(el){var viewportOffset=el.getBoundingClientRect();return{top:viewportOffset.top+window.scrollY,left:viewportOffset.left+window.scrollX}},exports.parseElement=function(parent){return"string"==typeof parent&&(parent=document.getElementById(parent.replace("#",""))),parent instanceof HTMLElement||parent instanceof SVGElement?parent:"No valid parent argument"},exports.locateMouse=function(e,offset){return{x:e.pageX-offset.left,y:e.pageY-offset.top}},exports.locateTouch=function(e,offset){return{x:!!e.targetTouches.length&&e.targetTouches[0].pageX-offset.left,y:!!e.targetTouches.length&&e.targetTouches[0].pageY-offset.top}},exports.SmartCanvas=function(parent){var _this=this;this.element=document.createElement("canvas"),this.context=this.element.getContext("2d"),parent.appendChild(this.element),this.resize=function(w,h){_this.element.width=2*w,_this.element.height=2*h,_this.element.style.width=w+"px",_this.element.style.height=h+"px"}}},function(module,exports){"use strict";exports.isObject=function(obj){return"object"==typeof obj&&!Array.isArray(obj)&&null!==obj&&obj instanceof SVGElement==!1&&obj instanceof HTMLElement==!1},exports.setInputFilter=function(textbox,inputFilter){["input","keydown","keyup","mousedown","mouseup","select","contextmenu","drop"].forEach(function(event){textbox.addEventListener(event,function(){inputFilter(this.value)?(this.oldValue=this.value,this.oldSelectionStart=this.selectionStart,this.oldSelectionEnd=this.selectionEnd):this.hasOwnProperty("oldValue")?(this.value=this.oldValue,this.setSelectionRange(this.oldSelectionStart,this.oldSelectionEnd)):this.value=""})})}},function(module,exports){"use strict";exports.exists="ontouchstart"in document.documentElement},function(module,exports){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if((er=arguments[1])instanceof Error)throw er;var err=new Error('Uncaught, unspecified "error" event. ('+er+")");throw err.context=er,err}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:args=Array.prototype.slice.call(arguments,1),handler.apply(this,args)}else if(isObject(handler))for(args=Array.prototype.slice.call(arguments,1),listeners=handler.slice(),len=listeners.length,i=0;i0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),"function"==typeof console.trace&&console.trace()),this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit("removeListener",type,listener);else if(isObject(list)){for(i=length;i-- >0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(position<0)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else if(listeners)for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){return this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.prototype.listenerCount=function(type){if(this._events){var evlistener=this._events[type];if(isFunction(evlistener))return 1;if(evlistener)return evlistener.length}return 0},EventEmitter.listenerCount=function(emitter,type){return emitter.listenerCount(type)}},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},math=__webpack_require__(5),Step=function(){function Step(){var min=void 0===arguments[0]?0:arguments[0],max=void 0===arguments[1]?1:arguments[1],step=void 0===arguments[2]?0:arguments[2],value=void 0===arguments[3]?0:arguments[3];_classCallCheck(this,Step),this.min=min,this.max=max,this.step=step,this.value=value,this.changed=!1,this.oldValue=!1,this.update(this.value)}return _createClass(Step,{update:{value:function(value){return this.step?this.value=math.clip(Math.round((value-this.min)/this.step)*this.step+this.min,this.min,this.max):this.value=math.clip(value,this.min,this.max),this.oldValue!==this.value?(this.oldValue=this.value,this.changed=!0):this.changed=!1,this.value}},updateNormal:{value:function(value){return this.value=math.scale(value,0,1,this.min,this.max),this.update(this.value)}},normalized:{get:function(){return math.normalize(this.value,this.min,this.max)}}}),Step}();module.exports=Step},function(module,exports,__webpack_require__){"use strict";var _interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj},_createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(exports,"__esModule",{value:!0});var math=_interopRequire(__webpack_require__(5)),ToggleModel=_interopRequire(__webpack_require__(13));exports.Handle=function(){function Handle(){var mode=void 0===arguments[0]?"absolute":arguments[0],direction=void 0===arguments[1]?"vertical":arguments[1],xbound=void 0===arguments[2]?[0,100]:arguments[2],ybound=void 0===arguments[3]?[0,100]:arguments[3];_classCallCheck(this,Handle),this.mode=mode,this.direction=direction,this.previous=0,this.value=0,this.sensitivity=1,this.resize(xbound,ybound)}return _createClass(Handle,{resize:{value:function(xbound,ybound){this.boundary={min:{x:xbound[0],y:ybound[0]},max:{x:xbound[1],y:ybound[1]},center:{x:(xbound[1]-xbound[0])/2+xbound[0],y:(ybound[1]-ybound[0])/2+ybound[0]}}}},anchor:{set:function(mouse){this._anchor=this.convertPositionToValue(mouse)},get:function(){return this._anchor}},update:{value:function(mouse){if("relative"===this.mode){var increment=this.convertPositionToValue(mouse)-this.anchor;Math.abs(increment)>.5&&(increment=0),this.anchor=mouse,this.value=this.value+increment*this.sensitivity}else this.value=this.convertPositionToValue(mouse);this.value=math.clip(this.value,0,1)}},convertPositionToValue:{value:function(current){switch(this.direction){case"radial":var position=math.toPolar(current.x-this.boundary.center.x,current.y-this.boundary.center.y);return position=position.angle/(2*Math.PI),position=(position-.25+1)%1;case"vertical":return math.scale(current.y,this.boundary.min.y,this.boundary.max.y,0,1);case"horizontal":return math.scale(current.x,this.boundary.min.x,this.boundary.max.x,0,1)}}}}),Handle}(),exports.Button=function(){function Button(){var mode=void 0===arguments[0]?"button":arguments[0];_classCallCheck(this,Button),this.mode=mode,this.state=new ToggleModel,this.paintbrush=!1}return _createClass(Button,{click:{value:function(){switch(this.mode){case"impulse":this.state.on(),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(this.state.off.bind(this),30),this.emit("change",this.state);break;case"button":this.turnOn(),this.emit("change",this.state);break;case"aftertouch":this.position={x:math.clip(this.mouse.x/this.width,0,1),y:math.clip(1-this.mouse.y/this.height,0,1)},this.turnOn(),this.emit("change",{state:this.state,x:this.position.x,y:this.position.y});break;case"toggle":this.flip(),this.emit("change",this.state)}}},move:{value:function(){"aftertouch"===this.mode&&(this.position={x:math.clip(this.mouse.x/this.width,0,1),y:math.clip(1-this.mouse.y/this.height,0,1)},this.emit("change",{state:this.state,x:this.position.x,y:this.position.y}),this.render())}},release:{value:function(){switch(this.mode){case"button":this.turnOff(),this.emit("change",this.state);break;case"aftertouch":this.turnOff(),this.position={x:this.mouse.x/this.width,y:1-this.mouse.y/this.height},this.emit("change",{state:this.state,x:this.position.x,y:this.position.y})}}}}),Button}()},function(module,exports){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)} Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},Toggle=function(){function Toggle(state){_classCallCheck(this,Toggle),this.state=state||!1}return _createClass(Toggle,{flip:{value:function(state){this.state=state||!1===state?state:!this.state}},on:{value:function(){this.state=!0}},off:{value:function(){this.state=!1}}}),Toggle}();module.exports=Toggle},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc&&desc.writable)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(subClass.__proto__=superClass)},_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},svg=__webpack_require__(4),Interface=__webpack_require__(6),Step=__webpack_require__(11),Interaction=function(obj){return obj&&obj.__esModule?obj:{default:obj}}(__webpack_require__(12)),Slider=function(_Interface){function Slider(){_classCallCheck(this,Slider);var options=["min","max","value"],defaults={size:[120,20],mode:"relative",min:0,max:1,step:0,value:0};_get(Object.getPrototypeOf(Slider.prototype),"constructor",this).call(this,arguments,options,defaults),this.orientation="vertical",this._value=new Step(this.settings.min,this.settings.max,this.settings.step,this.settings.value),this.position=new Interaction.Handle(this.settings.mode,this.orientation,[0,this.width],[this.height,0]),this.position.value=this._value.normalized,this.init(),this.position.direction=this.orientation,this.emit("change",this.value)}return _inherits(Slider,_Interface),_createClass(Slider,{buildInterface:{value:function(){this.bar=svg.create("rect"),this.fillbar=svg.create("rect"),this.knob=svg.create("circle"),this.element.appendChild(this.bar),this.element.appendChild(this.fillbar),this.element.appendChild(this.knob)}},sizeInterface:{value:function(){this.widththis.height?"horizontal":"vertical";for(var buttonWidth=this.width/("vertical"===orientation?1:this._numberOfButtons),buttonHeight=this.height/("vertical"===orientation?this._numberOfButtons:1),i=0;i=0&&index=0;i--)this.element.remove(i);for(var i=0;i2&&(angle=this.previousAngle>3?2*Math.PI:0),this.previousAngle=angle;var realValue=angle/(2*Math.PI);this.value=this._value.updateNormal(realValue),"relative"===this.mode&&(this.position.value=realValue),this.emit("change",this._value.value),this.render()}}},release:{value:function(){}},value:{get:function(){return this._value.value},set:function(v){this._value.update(v),this.position.value=this._value.normalized,this.emit("change",this._value.value),this.render()}},min:{get:function(){return this._value.min},set:function(v){this._value.min=v}},max:{get:function(){return this._value.max},set:function(v){this._value.max=v}},step:{get:function(){return this._value.step},set:function(v){this._value.step=v}},mode:{get:function(){return this.position.mode},set:function(v){this.position.mode=v}},normalized:{get:function(){return this._value.normalized},set:function(v){this._value.updateNormal(v),this.emit("change",this.value)}}}),Dial}(Interface);module.exports=Dial},function(module,exports,__webpack_require__){"use strict";var _createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_get=function get(object,property,receiver){var desc=Object.getOwnPropertyDescriptor(object,property);if(void 0===desc){var parent=Object.getPrototypeOf(object);return null===parent?void 0:get(parent,property,receiver)}if("value"in desc&&desc.writable)return desc.value;var getter=desc.get;if(void 0!==getter)return getter.call(receiver)},_inherits=function(subClass,superClass){if("function"!=typeof superClass&&null!==superClass)throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:!1,writable:!0,configurable:!0}}),superClass&&(subClass.__proto__=superClass)},_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},svg=__webpack_require__(4),Interface=__webpack_require__(6),ButtonTemplate=__webpack_require__(17),touch=__webpack_require__(9),PianoKey=function(_ButtonTemplate){function PianoKey(){_classCallCheck(this,PianoKey);var options=["value","note","color"],defaults={size:[80,80],target:!1,mode:"button",value:0};_get(Object.getPrototypeOf(PianoKey.prototype),"constructor",this).call(this,arguments,options,defaults),this.note=this.settings.note,this.color=this.settings.color,this.colors={w:"#fff",b:"#666"},this.init(),this.render()}return _inherits(PianoKey,_ButtonTemplate),_createClass(PianoKey,{buildFrame:{value:function(){this.element=svg.create("svg"),this.element.setAttribute("width",this.width),this.element.setAttribute("height",this.height),this.parent.appendChild(this.element)}},buildInterface:{value:function(){var _this=this;this.pad=svg.create("rect"),this.element.appendChild(this.pad),this.interactionTarget=this.pad,touch.exists||(this.click=function(){_this.piano.interacting=!0,_this.piano.paintbrush=!_this.state,_this.down(_this.piano.paintbrush)},this.pad.addEventListener("mouseover",function(){_this.piano.interacting&&_this.down(_this.piano.paintbrush)}),this.move=function(){_this.piano.interacting&&_this.bend()},this.release=function(){_this.piano.interacting=!1},this.pad.addEventListener("mouseup",function(){_this.piano.interacting&&_this.up()}),this.pad.addEventListener("mouseout",function(){_this.piano.interacting&&_this.up()}))}},sizeInterface:{value:function(){this.pad.setAttribute("x",.5),this.pad.setAttribute("y",.5),this.width>2?this.pad.setAttribute("width",this.width-1):this.pad.setAttribute("width",this.width),this.height,this.pad.setAttribute("height",this.height),this.pad.setAttribute("rx",0),this.pad.setAttribute("ry",0)}},render:{value:function(){this.state?this.pad.setAttribute("fill",this.colors.accent):this.pad.setAttribute("fill",this.colors[this.color])}}}),PianoKey}(ButtonTemplate),Piano=function(_Interface){function Piano(){_classCallCheck(this,Piano);var options=["value"],defaults={size:[500,125],lowNote:24,highNote:60,mode:"button"};_get(Object.getPrototypeOf(Piano.prototype),"constructor",this).call(this,arguments,options,defaults),this.keyPattern=["w","b","w","b","w","w","b","w","b","w","b","w"],this.paintbrush=!1,this.mode=this.settings.mode,this.range={low:this.settings.lowNote,high:this.settings.highNote},this.range.size=this.range.high-this.range.low+1,this.keys=[],this.toggleTo=!1,this.init(),this.render()}return _inherits(Piano,_Interface),_createClass(Piano,{buildFrame:{value:function(){this.element=document.createElement("div"),this.element.style.position="relative",this.element.style.borderRadius="0px",this.element.style.display="block",this.element.style.width="100%",this.element.style.height="100%",this.parent.appendChild(this.element)}},buildInterface:{value:function(){this.keys=[];for(var i=0;i=this.range.high?keyX+=1:"w"===this.keyPattern[scaleIndex]&&"w"===this.keyPattern[nextScaleIndex]?keyX+=1:keyX+=.5}for(var keysWide=keyX,buttonWidth=(this.width-2)/keysWide,buttonHeight=(this.height-2)/2,i=0;i2?this.pad.setAttribute("width",this.width-this.paddingColumn):this.pad.setAttribute("width",this.width),this.height>2?this.pad.setAttribute("height",this.height-this.paddingRow):this.pad.setAttribute("height",this.height),this.pad.setAttribute("fill",this.matrix.colors.fill)}},render:{value:function(){this.state?this.pad.setAttribute("fill",this.matrix.colors.accent):this.pad.setAttribute("fill",this.matrix.colors.fill)}}}),MatrixCell}(ButtonTemplate),Sequencer=function(_Interface){function Sequencer(){_classCallCheck(this,Sequencer);var options=["value"],defaults={size:[400,200],mode:"toggle",rows:5,columns:10};_get(Object.getPrototypeOf(Sequencer.prototype),"constructor",this).call(this,arguments,options,defaults),this.active=-1,this.mode=this.settings.mode,this.interval=new Interval(200,function(){},!1),this.matrix=new MatrixModel(this.settings.rows,this.settings.columns),this.matrix.ui=this,this.stepper=new CounterModel(0,this.columns),this.paddingRow=this.settings.paddingRow,this.paddingColumn=this.settings.paddingColumn,this.init()}return _inherits(Sequencer,_Interface),_createClass(Sequencer,{buildFrame:{value:function(){this.element=document.createElement("div"),this.element.style.position="relative",this.element.style.display="block",this.element.style.width="100%",this.element.style.height="100%",this.parent.appendChild(this.element),touch.exists&&this.addTouchListeners()}},buildInterface:{value:function(){this.cells=[];for(var i=0;i0?_this.cells[i].turnOn():_this.cells[i].turnOff())})}},keyChange:{value:function(note,on){var cell=this.matrix.locate(note);this.matrix.pattern[cell.row][cell.column]=on;var data={row:cell.row,column:cell.column,state:on};this.emit("change",data)}},render:{value:function(){var _this=this;this.stepper.value>=0&&this.matrix.iterate(function(r,c,i){c===_this.stepper.value?(_this.cells[i].pad.setAttribute("stroke",_this.colors.mediumLight),_this.cells[i].pad.setAttribute("stroke-width","1"),_this.cells[i].pad.setAttribute("stroke-opacity","1")):_this.cells[i].pad.setAttribute("stroke","none")})}},start:{value:function(ms){this.interval.event=this.next.bind(this),ms&&this.interval.ms(ms),this.interval.start()}},stop:{value:function(){this.interval.stop()}},next:{value:function(){this.stepper.next(),this.emit("step",this.matrix.column(this.stepper.value).reverse()),this.render()}},addTouchListeners:{value:function(){var _this=this;this.preClick=this.preMove=this.preRelease=function(){},this.click=this.move=this.release=function(){},this.preTouch=this.preTouchMove=this.preTouchRelease=function(){},this.touch=this.touchMove=this.touchRelease=function(){},this.currentElement=!1,this.element.addEventListener("touchstart",function(e){var element=document.elementFromPoint(e.targetTouches[0].clientX,e.targetTouches[0].clientY),cell=_this.cells[element.index];_this.paintbrush=!cell.state,cell.down(_this.paintbrush),_this.currentElement=element.index,e.preventDefault(),e.stopPropagation()}),this.element.addEventListener("touchmove",function(e){var element=document.elementFromPoint(e.targetTouches[0].clientX,e.targetTouches[0].clientY),cell=_this.cells[element.index];if(element.index!==_this.currentElement){if(_this.currentElement>=0){_this.cells[_this.currentElement].up()}cell.down(_this.paintbrush)}else cell.bend();_this.currentElement=element.index,e.preventDefault(),e.stopPropagation()}),this.element.addEventListener("touchend",function(e){_this.cells[_this.currentElement].up(),_this.interacting=!1,_this.currentElement=!1,e.preventDefault(),e.stopPropagation()})}},rows:{get:function(){return this.matrix.rows},set:function(v){this.matrix.rows=v,this.empty(),this.buildInterface(),this.update()}},columns:{get:function(){return this.matrix.columns},set:function(v){this.matrix.columns=v,this.stepper.max=v,this.empty(),this.buildInterface(),this.update()}}}),Sequencer}(Interface);module.exports=Sequencer},function(module,exports,__webpack_require__){"use strict";var _interopRequire=function(obj){return obj&&obj.__esModule?obj.default:obj},_createClass=function(){function defineProperties(target,props){for(var key in props){var prop=props[key];prop.configurable=!0,prop.value&&(prop.writable=!0)}Object.defineProperties(target,props)}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),_classCallCheck=function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")},math=_interopRequire(__webpack_require__(5)),Sequence=_interopRequire(__webpack_require__(26)),Matrix=function(){function Matrix(rows,columns){var _this=this;_classCallCheck(this,Matrix),this.pattern=[],this.create(rows,columns),this.toggle={cell:function(column,row){return _this.pattern[row][column]=!_this.pattern[row][column],_this.ui&&_this.ui.update(),_this.pattern[row][column]},all:function(){_this.iterate(function(r,c){_this.toggle.cell(c,r)}),_this.ui&&_this.ui.update()},row:function(row){for(var i=0;i<_this.columns;i++)_this.toggle.cell(i,row);_this.ui&&_this.ui.update()},column:function(column){for(var i=0;i<_this.rows;i++)_this.toggle.cell(column,i);_this.ui&&_this.ui.update()}},this.set={cell:function(column,row,value){_this.pattern[row][column]=value,_this.ui&&_this.ui.update()},all:function(values){_this.pattern=values,_this.ui&&_this.ui.update()},row:function(row,values){_this.pattern[row]=values,_this.ui&&_this.ui.update()},column:function(column,values){_this.pattern.forEach(function(row,i){_this.pattern[i][column]=values[i]}),_this.ui&&_this.ui.update()}},this.rotate={all:function(amount){amount||0===amount||(amount=1),(amount%=_this.pattern[0].length)<0&&(amount=_this.pattern[0].length+amount);for(var i=0;i<_this.rows;i++){var cut=_this.pattern[i].splice(_this.pattern[i].length-amount,amount);_this.pattern[i]=cut.concat(_this.pattern[i])}_this.ui&&_this.ui.update()},row:function(row,amount){amount||0===amount||(amount=1),(amount%=_this.pattern[0].length)<0&&(amount=_this.pattern[0].length+amount);var cut=_this.pattern[row].splice(_this.pattern[row].length-amount,amount);_this.pattern[row]=cut.concat(_this.pattern[row]),_this.ui&&_this.ui.update()},column:function(column,amount){amount||0===amount||(amount=1),(amount%=_this.pattern.length)<0&&(amount=_this.pattern.length+amount);var proxy=[];_this.pattern.forEach(function(row){proxy.push(row[column])});var cut=proxy.splice(proxy.length-amount,amount);proxy=cut.concat(proxy),_this.pattern.forEach(function(row,i){row[column]=proxy[i]}),_this.ui&&_this.ui.update()}},this.populate={all:function(odds){var oddsSequence=new Sequence(odds);_this.iterate(function(r,c){_this.pattern[r][c]=math.coin(oddsSequence.next())}),_this.ui&&_this.ui.update()},row:function(){var row=void 0===arguments[0]?0:arguments[0],odds=void 0===arguments[1]?1:arguments[1],oddsSequence=new Sequence(odds);_this.pattern[row].forEach(function(cell,i){_this.pattern[row][i]=math.coin(oddsSequence.next())}),_this.ui&&_this.ui.update()},column:function(){var column=void 0===arguments[0]?0:arguments[0],odds=void 0===arguments[1]?1:arguments[1],oddsSequence=new Sequence(odds);_this.pattern.forEach(function(row,i){_this.pattern[i][column]=math.coin(oddsSequence.next())}),_this.ui&&_this.ui.update()}},this.erase={all:function(){_this.set.all(0)},row:function(row){_this.set.row(row,0)},column:function(column){_this.set.column(column,0)}}}return _createClass(Matrix,{create:{value:function(rows,columns){var _this=this;this.pattern=[];for(var row=0;rowthis.max&&(this.loop?this.value=this.min:this.value=this.max-this.increment),this.value=this.max&&(this.value=this.min),this.value}},down:{value:function(){return this.value--,this.valuethis._numberOfSliders?vs.slice(0,this._numberOfSliders):vs.concat(Array(this._numberOfSliders-vs.length).fill(0)),this.candycane=this.settings.candycane,this.sliderWidth=this.width/this.values.length,this.smoothing=this.settings.smoothing,this.init(),this.render()}return _inherits(Multislider,_Interface),_createClass(Multislider,{buildInterface:{value:function(){"line"==this._mode?(this.line=svg.create("polyline"),this.line.setAttribute("stroke-width",2),this.line.setAttribute("fill","none"),this.element.appendChild(this.line),this.fill=svg.create("polyline"),this.fill.setAttribute("fill-opacity","0.2"),this.element.appendChild(this.fill),this.nodes=[],this.values.forEach(function(value,index){var node=svg.create("circle");node.setAttribute("cx",this.getX(index)),node.setAttribute("cy",this.getY(value)),this.element.appendChild(node),this.nodes.push(node)}.bind(this))):(this.bars=[],this.caps=[],this.values.forEach(function(value,index){var bar=svg.create("rect"),x=this.getBarX(index),y=this.getY(value);bar.setAttribute("x",x-.1),bar.setAttribute("y",y),bar.setAttribute("width",this.sliderWidth+.2),bar.setAttribute("height",this.height),bar.setAttribute("opacity",1-(index%this.candycane+1)/(this.candycane+1)),this.element.appendChild(bar),this.bars.push(bar);var cap=svg.create("rect");cap.setAttribute("x",x-.1),cap.setAttribute("y",y),cap.setAttribute("width",this.sliderWidth+.2),cap.setAttribute("height",5),this.element.appendChild(cap),this.caps.push(cap)}.bind(this)))}},getBarX:{value:function(index){return this.getX(index)-this.sliderWidth/2}},getX:{value:function(index){return index*this.sliderWidth+this.sliderWidth/2}},getY:{value:function(value){return math.scale(value,this._min,this._max,this.height,0)}},getValueFromY:{value:function(y){var scaleAdjusted=math.scale(y,this.height,0,this._min,this._max);return this.adjustValueToStep(scaleAdjusted)}},getIndexFromX:{value:function(x){return math.clip(Math.floor(x/this.width*this.values.length),0,this.values.length-1)}},adjustValueToStep:{value:function(value){if(!this._step)return value;var offset=value%this._step;return value-=value%this._step,offset>this._step/2&&(value+=this._step),value}},adjustAllValues:{value:function(){this.values.forEach(function(value,index){value=this.adjustValueToStep(value),this.values[index]=math.clip(value,this._min,this._max)}.bind(this))}},getNormalizedValues:{value:function(){this.normalizedValues=[],this.values.forEach(function(value){this.normalizedValues.push(math.scale(value,this._min,this._max,0,1))}.bind(this))}},colorInterface:{value:function(){var _this=this;this.element.style.backgroundColor=this.colors.fill,"line"==this._mode?(this.line.setAttribute("stroke",this.colors.accent),this.fill.setAttribute("fill",this.colors.accent),this.nodes.forEach(function(node){node.setAttribute("fill",_this.colors.accent)})):(this.bars.forEach(function(bar){bar.setAttribute("fill",_this.colors.accent)}),this.caps.forEach(function(cap){cap.setAttribute("fill",_this.colors.accent)}))}},sizeInterface:{value:function(){this.sliderWidth=this.width/this.values.length,"line"==this._mode&&this.nodes.forEach(function(node){var r=2+~~(Math.min(this.width,this.height)/50);r=Math.min(this.sliderWidth,r),node.setAttribute("r",r)}.bind(this)),this.render()}},render:{value:function(){var _this=this;"line"==this._mode?function(){var data="0 "+_this.getY(_this.values[0])+", ";_this.values.forEach(function(value,index){var x=_this.getX(index),y=_this.getY(value);data+=x+" "+y+", ",_this.nodes[index].setAttribute("cx",_this.getX(index)),_this.nodes[index].setAttribute("cy",_this.getY(value))}),data+=_this.width+" "+_this.getY(_this.values[_this.values.length-1]),_this.line.setAttribute("points",data),data+=", "+_this.width+" "+_this.height+", ",data+="0 "+_this.height,_this.fill.setAttribute("points",data)}():this.values.forEach(function(value,index){_this.bars[index].setAttribute("y",_this.getY(value)),_this.caps[index].setAttribute("y",_this.getY(value))})}},click:{value:function(){this.hasMoved=!1,this.previousSlider=!1,this.move()}},move:{value:function(){if(this.clicked){if(this.mouse.x=math.clip(this.mouse.x,0,this.width),this.mouse.y=math.clip(this.mouse.y,0,this.height),this.hasMoved=!0,this.selectedSlider=this.getIndexFromX(this.mouse.x),this.values[this.selectedSlider]=this.getValueFromY(this.mouse.y),!1!==this.previousSlider){var distance=Math.abs(this.previousSlider-this.selectedSlider);if(distance>1)for(var low=Math.min(this.previousSlider,this.selectedSlider),high=Math.max(this.previousSlider,this.selectedSlider),lowValue=this.values[low],highValue=this.values[high],_i=low;_i0)for(var i=1;i<=this.smoothing;i++){var downCenter=this.selectedSlider-i,upCenter=this.selectedSlider+i;if(downCenter>=1){var downLowerNeighbor=downCenter-1>=0?downCenter-1:0,downUpperNeighbor=downCenter+1;this.values[downCenter]=(this.values[downLowerNeighbor]+this.values[downUpperNeighbor])/2,this.values[downCenter]=this.adjustValueToStep(this.values[downCenter])}if(upCenter