!function(n,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("jQuery")):"function"==typeof define&&define.amd?define(["jQuery"],e):"object"==typeof exports?exports.Notone=e(require("jQuery")):n.Notone=e(n.jQuery)}(this,function(__WEBPACK_EXTERNAL_MODULE_2__){return function(n){function e(i){if(t[i])return t[i].exports;var o=t[i]={exports:{},id:i,loaded:!1};return n[i].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var t={};return e.m=n,e.c=t,e.p="",e(0)}([function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(2), __webpack_require__(7), __webpack_require__(1), __webpack_require__(13), __webpack_require__(12), __webpack_require__(14)], __WEBPACK_AMD_DEFINE_RESULT__ = function ($, Core, Util, GUI, Drawer, Meter) {\n\n var Notone = {};\n\n /**\n * the drawer if it exists\n */\n Notone.drawer = null;\n\n /**\n * all of the GUIs\n * @type {Object}\n */\n Notone.guis = {};\n\n /**\n * the default configutation \n * @type {Object}\n * @private\n */\n Notone._defaultConfig = {\n "expandInDrawer" : false,\n "expandChildren" : false,\n "hideDrawer" : false,\n "search" : false,\n "drawer" : true,\n "container" : "body",\n };\n\n /**\n * the configured options\n * @private\n */\n Notone._options = {};\n\n /**\n * configuration\n * @param {Object} obj \n */\n Notone.config = function(obj){\n Core.config(obj);\n Notone._options = Util.defaultArg(obj, Notone._defaultConfig);\n };\n\n /**\n * Create a new Tone object of the Constructor type\n * automatically adds it to the tracked objects\n * with the given name (or the class\' name)\n * if no name is given.\n * @param {function} Constr\n * @param {string=} name\n * @return {Object} an instance of the constructor\n */\n Notone.create = function(Constr, name, parameters){\n var tone = new Constr();\n Notone.add(tone, name, parameters);\n return tone;\n };\n\n /**\n * Adds an insteance of a tone object to the list of tracked\n * objects\n * @param {Tone} tone the tone object to track\n * @param {string=} name the name the object should be remembered as.\n */\n Notone.add = function(tone, name, parameters){\n Core.add(tone, name, parameters);\n\n //get the description\n var GUIConstr = GUI;\n if (tone.toString() === "Meter"){\n GUIConstr = Meter;\n } \n var gui = new GUIConstr(tone, {\n "name" : name,\n "container" : Notone._options.container,\n "parameters" : parameters,\n "expanded" : Notone._options.expandChildren,\n });\n\n if (Notone._options.drawer){\n if (Notone.drawer === null){\n Notone.drawer = new Drawer(Notone._options);\n }\n Notone.drawer.add(gui);\n }\n Notone.guis[name] = gui;\n return gui;\n };\n\n /**\n * set the attributes from a JSON object\n * @param {JSON} json \n */\n Notone.load = function(json){\n Core.load(json);\n };\n\n /**\n * Save the current configuration to local storage\n * or a file.\n */\n Notone.save = function(){\n Core.save();\n };\n\n /**\n * get the GUI object from the name\n * @param {string} name\n */\n Notone.get = function(name){\n return Notone.guis[name];\n };\n\n return Notone;\n}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/*****************\n ** WEBPACK FOOTER\n ** ./GUI/Main.js\n ** module id = 0\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///./GUI/Main.js?')},function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\n var Util = {};\n\n //borrowed from underscore.js\n Util.isUndef = function(val){\n return val === void 0;\n };\n\n Util.isFunction = function(val){\n return typeof val === "function";\n };\n\n Util.isObject = function(val){\n return typeof val === "object";\n };\n\n Util.isArray = function(val){\n return Array.isArray(val);\n };\n\n Util.isString = function(val){\n return typeof val === "string";\n };\n\n Util.isNumber = function(val){\n return isFinite(val);\n };\n\n /**\n * if a the given is undefined, use the fallback. \n * if both given and fallback are objects, given\n * will be augmented with whatever properties it\'s\n * missing which are in fallback\n *\n * Borrowed from Tone.js\n * \n * @param {*} given \n * @param {*} fallback \n * @return {*} \n */\n Util.defaultArg = function(given, fallback){\n if (typeof given === "object" && typeof fallback === "object" && \n !Array.isArray(given) && !(given instanceof jQuery)){\n var ret = {};\n //make a deep copy of the given object\n for (var givenProp in given) {\n ret[givenProp] = Util.defaultArg(given[givenProp], given[givenProp]);\n }\n for (var prop in fallback) {\n ret[prop] = Util.defaultArg(given[prop], fallback[prop]);\n }\n return ret;\n } else {\n return Util.isUndef(given) ? fallback : given;\n }\n };\n\n /**\n * extend the child with the parent\n * @param {function} Child \n * @param {function} Parent \n */\n Util.extend = function(Child, Parent){\n function TempConstructor(){}\n TempConstructor.prototype = Parent.prototype;\n Child.prototype = new TempConstructor();\n /** @override */\n Child.prototype.constructor = Child;\n Child.prototype.superConstructor = Parent;\n };\n\n return Util;\n}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n/*****************\n ** WEBPACK FOOTER\n ** ./Core/Util.js\n ** module id = 1\n ** module chunks = 0 1\n **/\n//# sourceURL=webpack:///./Core/Util.js?')},function(module,exports,__webpack_require__){eval('module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n/*****************\n ** WEBPACK FOOTER\n ** external "jQuery"\n ** module id = 2\n ** module chunks = 0\n **/\n//# sourceURL=webpack:///external_%22jQuery%22?')},function(module,exports,__webpack_require__){eval('var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(10), __webpack_require__(2), __webpack_require__(30), __webpack_require__(26)], __WEBPACK_AMD_DEFINE_RESULT__ = function (MicroEvent, $, parameterStyle, TypeDefs) {\n\n var Parameter = function(param, name, type, desc){\n\n this.param = param;\n\n this.name = name;\n\n this.element = $("