{"version":3,"sources":["webpack:///./src/components/ToggleButton.vue?f8fb","webpack:///./src/components/ToggleButton.vue","webpack:///src/components/ToggleButton.vue","webpack:///src/components/Chord.vue","webpack:///./src/components/Chord.vue?09b1","webpack:///./src/components/Chord.vue","webpack:///src/components/Palette.vue","webpack:///./src/components/Palette.vue?7db2","webpack:///./src/components/Palette.vue","webpack:///src/components/Timeline.vue","webpack:///./src/components/Timeline.vue?c896","webpack:///./src/components/Timeline.vue","webpack:///src/components/Player.vue","webpack:///./src/components/Player.vue?ab6d","webpack:///./src/components/Player.vue","webpack:///src/App.vue","webpack:///./src/App.vue?af03","webpack:///./src/App.vue","webpack:///./src/lib/music/modes.js","webpack:///./src/lib/music/chords.js","webpack:///./src/lib/music/instruments.js","webpack:///./src/lib/music/styles.js","webpack:///./src/lib/music/utilities.js","webpack:///./src/lib/music/index.js","webpack:///./src/lib/music/constants.js","webpack:///./src/main.js"],"names":["components_ToggleButton","render","_vm","this","_h","$createElement","_c","_self","staticClass","class","value","color","attrs","type","disabled","on","click","onClick","icon","_e","_v","_s","text","staticRenderFns","src_components_ToggleButton","__webpack_require__","normalizeComponent","name","props","computed","colorClass","methods","$emit","components_Chord","components","ToggleButton","data","chord","placeholder","displaySwapped","roman","$music","utilities","renderAccidentals","prefix","constants","degree","qualityText","absolute","rootName","majorKeys","$store","state","tonic","notes","replace","showAbsolute","absoluteChordNames","nameSwapOnHover","changed","recompute","remove","selectortype_template_index_0_src_components_Chord","mode","join","palette","mouseenter","$event","mouseleave","input","model","callback","$$v","$set","expression","quality","domProps","innerHTML","_m","_l","index","seventh","key","directives","rawName","voicing","modifiers","number","min","max","change","target","composing","_n","blur","$forceUpdate","src_components_Chord","Chord_normalizeComponent","ssrContext","Palette","_this","collapsed","diatonicChords","Mode","modes","map","formula","element","Chord","cloneChord","clone","collapsableModeName","Draggable","vuedraggable_default","a","components_Palette","modeIndex","indexOf","options","group","pull","put","sort","id","src_components_Palette","Palette_normalizeComponent","Timeline","chords","slice","position","removeChord","splice","findIndex","obj","watch","val","components_Timeline","filter","playing","src_components_Timeline","Timeline_normalizeComponent","Player","volume","bpm","looping","beat","currentChord","toBeStopped","play","playNext","loop","stop","nextIndex","length","Style","styles","playEnd","duration","beats","playChord","setTimeout","mounted","_this2","window","addEventListener","event","code","preventDefault","commit","components_Player","__r","role","spin","src_components_Player","Player_normalizeComponent","App","project","tonicName","timeline","timelinePositionChanged","$refs","tonicChanged","VSelect","vue_select_default","selectortype_template_index_0_src_App","checked","Array","isArray","_i","$$a","$$el","$$c","$$i","concat","$$selectedVal","prototype","call","o","selected","_value","multiple","ref","timelinePosition","href","src_App","App_normalizeComponent","modes_Mode","classCallCheck_default","majorIntervals","chords_Chord","arguments","undefined","sub","noCompute","Math","random","toString","substr","b","i","intNotation","note","intTriad","intSeventh","arrEq","qualities","ignoreVoicing","toRoot","residuum","push","apply","0","1","2","3","4","5","6","7","8","9","10","11","12","instruments_Instruments","ac","AudioContext","lib_default","instrument","gain","then","piano","drums","bass","styles_Style","nextChord","styles_PianoChordStyle","forEach","instruments","styles_JazzStyle","currentTime","bassNote","styles_PopClaveStyle","music","tonics","C","C#","Db","D","D#","Eb","E","F","F#","Gb","G","G#","Ab","A","A#","Bb","B","Instruments","Note","music_notes","circularAt","array","str","vue_esm","use","vuex_esm","store","Store","mutations","setTonic","setBpm","setAbsoluteChordNames","setNameSwapOnHover","index_es","add","free_solid_svg_icons_index_es","component","vue_fontawesome","config","productionTip","Object","defineProperty","el","router","router_default","template"],"mappings":"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","file":"static/js/app.a0f50e1103b215e4f57a.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"btn btn-sm float-left\",class:_vm.value ? (\"btn-\" + _vm.color) : (\"btn-outline-\" + _vm.color),attrs:{\"type\":\"button\",\"disabled\":_vm.disabled},on:{\"click\":_vm.onClick}},[(_vm.icon)?_c('font-awesome-icon',{attrs:{\"icon\":_vm.icon}}):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.text)+\"\\n\")],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-05f39262\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/ToggleButton.vue\n// module id = null\n// module chunks = ","var normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ToggleButton.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ToggleButton.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-05f39262\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./ToggleButton.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ToggleButton.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/ToggleButton.vue","\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/Chord.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.placeholder)?_c('div',{staticClass:\"card my-1 chord\",class:[\n ['bg', _vm.chord.mode.color, 'lightest'].join('-'),\n !_vm.palette ? 'timeline' : '' ],on:{\"mouseenter\":function($event){_vm.displaySwapped = true},\"mouseleave\":function($event){_vm.displaySwapped = false}}},[(_vm.playing)?_c('div',{staticClass:\"card-status bg-primary\"}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-body\",class:_vm.palette ? 'p-1' : 'p-3'},[(!_vm.palette)?_c('div',{staticClass:\"d-flex justify-content-between mb-2\"},[_c('toggle-button',{attrs:{\"color\":'primary',\"text\":'7'},on:{\"input\":_vm.changed},model:{value:(_vm.chord.seventh),callback:function ($$v) {_vm.$set(_vm.chord, \"seventh\", $$v)},expression:\"chord.seventh\"}}),_vm._v(\" \"),(_vm.chord.quality === 4)?_c('toggle-button',{attrs:{\"color\":'primary',\"text\":'sub'},on:{\"input\":_vm.changed},model:{value:(_vm.chord.sub),callback:function ($$v) {_vm.$set(_vm.chord, \"sub\", $$v)},expression:\"chord.sub\"}}):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-sm btn-outline-danger remove\",on:{\"click\":function($event){_vm.remove()}}},[_c('font-awesome-icon',{attrs:{\"icon\":\"trash\"}})],1)],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"text-center\"},[(_vm.showAbsolute)?_c('strong',{staticClass:\"roman\",class:['text', _vm.chord.mode.color].join('-'),domProps:{\"innerHTML\":_vm._s(_vm.absolute)}}):_c('strong',{staticClass:\"roman\",class:['text', _vm.chord.mode.color].join('-'),domProps:{\"innerHTML\":_vm._s(_vm.roman)}})]),_vm._v(\" \"),(!_vm.palette)?_c('div',{staticClass:\"d-flex align-items-start flex-column mt-2\"},[_vm._m(0),_vm._v(\" \"),_vm._l((4),function(index){return (_vm.chord.seventh || index <= 3)?_c('div',{key:index,staticClass:\"d-flex flex-row mt-1\"},[_c('div',{staticClass:\"mr-2\"},[_vm._v(_vm._s((2 * (index - 1)) + 1)+\": \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.chord.voicing[index - 1][0]),expression:\"chord.voicing[index - 1][0]\",modifiers:{\"number\":true}}],staticClass:\"form-control form-control-sm w-7\",attrs:{\"type\":\"number\",\"min\":\"1\",\"max\":\"8\"},domProps:{\"value\":(_vm.chord.voicing[index - 1][0])},on:{\"change\":_vm.changed,\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.chord.voicing[index - 1], 0, _vm._n($event.target.value))},\"blur\":function($event){_vm.$forceUpdate()}}})]):_vm._e()})],2):_vm._e()])]):_c('div',{staticClass:\"card chord placeholder\"},[_c('div',{staticClass:\"card-body d-flex justify-content-center align-items-center text-green\"},[_c('font-awesome-icon',{attrs:{\"icon\":\"plus-circle\"}})],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('strong',[_vm._v(\"Voicing:\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-0981c4e1\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Chord.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0981c4e1\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Chord.vue\")\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0981c4e1\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=1!./Chord.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Chord.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Chord.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0981c4e1\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Chord.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-0981c4e1\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Chord.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/Palette.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"my-2\"},[_vm._l((_vm.$music.Mode.modes),function(mode,modeIndex){return (!_vm.collapsed || [0, 5].indexOf(modeIndex) !== -1)?_c('div',{key:mode.name,staticClass:\"row\",class:['bg', mode.color, 'lighter'].join('-')},[_c('div',{staticClass:\"col-3 d-flex align-items-center justify-content-center\"},[_c('span',{staticClass:\"mode-name tag w-75\",class:['tag', mode.color].join('-')},[_vm._v(\"\\n \"+_vm._s(_vm.collapsableModeName(mode, modeIndex))+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"col-9\"},[_c('draggable',{staticClass:\"d-flex h-100 justify-content-between\",attrs:{\"options\":{ group: { name: 'chords', pull: 'clone', put: false }, sort: false },\"clone\":_vm.cloneChord},model:{value:(_vm.diatonicChords[modeIndex]),callback:function ($$v) {_vm.$set(_vm.diatonicChords, modeIndex, $$v)},expression:\"diatonicChords[modeIndex]\"}},_vm._l((_vm.diatonicChords[modeIndex]),function(chord,index){return (chord !== null)?_c('chord',{key:chord.id,staticClass:\"mx-2\",attrs:{\"palette\":true},model:{value:(_vm.diatonicChords[modeIndex][index]),callback:function ($$v) {_vm.$set(_vm.diatonicChords[modeIndex], index, $$v)},expression:\"diatonicChords[modeIndex][index]\"}}):_vm._e()}))],1)]):_vm._e()}),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-secondary btn-sm w-100 mt-2\",on:{\"click\":function($event){_vm.collapsed = !_vm.collapsed}}},[(_vm.collapsed)?_c('font-awesome-icon',{attrs:{\"icon\":\"chevron-down\"}}):_c('font-awesome-icon',{attrs:{\"icon\":\"chevron-up\"}})],1)],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-22528ad8\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Palette.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-22528ad8\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Palette.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Palette.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Palette.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-22528ad8\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Palette.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-22528ad8\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Palette.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/Timeline.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex justify-content-start h-100\"},[_c('draggable',{staticClass:\"timeline d-flex justify-content-start h-100\",attrs:{\"options\":{ group: 'chords', filter: '.placeholder' }},model:{value:(_vm.chords),callback:function ($$v) {_vm.chords=$$v},expression:\"chords\"}},[_vm._l((_vm.chords),function(chord,index){return (chord !== null)?_c('chord',{key:chord.id,staticClass:\"mx-2\",attrs:{\"playing\":_vm.position === index},on:{\"remove\":_vm.removeChord},model:{value:(_vm.chords[index]),callback:function ($$v) {_vm.$set(_vm.chords, index, $$v)},expression:\"chords[index]\"}}):_vm._e()}),_vm._v(\" \"),_c('chord',{staticClass:\"mx-2 placeholder\",attrs:{\"placeholder\":true}})],2)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-219fc4c2\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Timeline.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-219fc4c2\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Timeline.vue\")\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-219fc4c2\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=1!./Timeline.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Timeline.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Timeline.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-219fc4c2\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-219fc4c2\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Timeline.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/Player.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col d-flex justify-content-start\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.bpm),expression:\"bpm\",modifiers:{\"number\":true}}],staticClass:\"custom-range mr-2\",attrs:{\"type\":\"range\",\"min\":\"80\",\"max\":\"180\"},domProps:{\"value\":(_vm.bpm)},on:{\"__r\":function($event){_vm.bpm=_vm._n($event.target.value)},\"blur\":function($event){_vm.$forceUpdate()}}}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.bpm),expression:\"bpm\",modifiers:{\"number\":true}}],staticClass:\"form-control form-control-sm w-9\",attrs:{\"type\":\"number\",\"min\":\"1\",\"max\":\"999\"},domProps:{\"value\":(_vm.bpm)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.bpm=_vm._n($event.target.value)},\"blur\":function($event){_vm.$forceUpdate()}}}),_vm._v(\" \"),_c('label',{staticClass:\"tag my-auto ml-2\"},[_vm._v(\"BPM\")])]),_vm._v(\" \"),_c('div',{staticClass:\"col d-flex justify-content-center mx-auto my-auto\"},[_c('div',{staticClass:\"btn-group\",attrs:{\"role\":\"group\"}},[_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\",\"disabled\":_vm.playing || _vm.toBeStopped || !_vm.chords.length},on:{\"click\":_vm.play}},[_c('font-awesome-icon',{attrs:{\"icon\":\"play\"}})],1),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\",\"disabled\":_vm.playing || _vm.toBeStopped || !_vm.chords.length},on:{\"click\":_vm.loop}},[_c('font-awesome-icon',{attrs:{\"icon\":\"undo-alt\"}})],1),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"type\":\"button\",\"disabled\":!_vm.playing || _vm.toBeStopped},on:{\"click\":_vm.stop}},[(_vm.toBeStopped)?_c('font-awesome-icon',{attrs:{\"icon\":\"circle-notch\",\"spin\":\"\"}}):_c('font-awesome-icon',{attrs:{\"icon\":\"stop\"}})],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"col d-flex justify-content-end hidden\"},[_c('label',{staticClass:\"tag my-auto mr-2\"},[_vm._v(\"Volume\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.volume),expression:\"volume\",modifiers:{\"number\":true}}],staticClass:\"custom-range\",attrs:{\"type\":\"range\",\"min\":\"0\",\"max\":\"100\"},domProps:{\"value\":(_vm.volume)},on:{\"__r\":function($event){_vm.volume=_vm._n($event.target.value)},\"blur\":function($event){_vm.$forceUpdate()}}})])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-377202bf\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Player.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-377202bf\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Player.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Player.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Player.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-377202bf\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Player.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-377202bf\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Player.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"page\",attrs:{\"id\":\"app\"}},[_c('div',{staticClass:\"page-main d-none d-lg-block\"},[_c('nav',{staticClass:\"navbar navbar-light bg-light\"},[_c('span',{staticClass:\"navbar-brand mb-0 h1\"},[_vm._v(\"Harmony Playground\")]),_vm._v(\" \"),_c('form',{staticClass:\"form-inline\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"custom-switch mx-5\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.absoluteChordNames),expression:\"absoluteChordNames\"}],staticClass:\"custom-switch-input\",attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.absoluteChordNames)?_vm._i(_vm.absoluteChordNames,null)>-1:(_vm.absoluteChordNames)},on:{\"change\":function($event){var $$a=_vm.absoluteChordNames,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.absoluteChordNames=$$a.concat([$$v]))}else{$$i>-1&&(_vm.absoluteChordNames=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.absoluteChordNames=$$c}}}}),_vm._v(\" \"),_c('span',{staticClass:\"custom-switch-indicator\"}),_vm._v(\" \"),_c('span',{staticClass:\"custom-switch-description\"},[_vm._v(\"Show absolute chord names\")])]),_vm._v(\" \"),_c('label',{staticClass:\"custom-switch mx-5\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.nameSwapOnHover),expression:\"nameSwapOnHover\"}],staticClass:\"custom-switch-input\",attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.nameSwapOnHover)?_vm._i(_vm.nameSwapOnHover,null)>-1:(_vm.nameSwapOnHover)},on:{\"change\":function($event){var $$a=_vm.nameSwapOnHover,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.nameSwapOnHover=$$a.concat([$$v]))}else{$$i>-1&&(_vm.nameSwapOnHover=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.nameSwapOnHover=$$c}}}}),_vm._v(\" \"),_c('span',{staticClass:\"custom-switch-indicator\"}),_vm._v(\" \"),_c('span',{staticClass:\"custom-switch-description\"},[_vm._v(\"Switch absolute/relative chord names on\\n hover\")])]),_vm._v(\" \"),_c('span',{staticClass:\"mx-5\"},[_vm._v(\"Tonic:\")]),_vm._v(\" \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.project.tonicName),expression:\"project.tonicName\"}],staticClass:\"form-control custom-select\",on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.project, \"tonicName\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])},_vm.tonicChanged]}},_vm._l((_vm.$music.constants.majorKeys),function(key){return _c('option',{key:key.name},[_vm._v(\"\\n \"+_vm._s(key.name)+\"\\n \")])}))])])]),_vm._v(\" \"),_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-9\"},[_c('palette',{ref:\"palette\"})],1),_vm._v(\" \"),_c('div',{staticClass:\"col-3\"},[_c('div',{staticClass:\"card\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"card-body text-justify\"},[_c('ol',[_c('li',[_vm._v(\"Click \"),_c('font-awesome-icon',{attrs:{\"icon\":\"play\"}}),_vm._v(\" in the\\n \"),_c('strong',[_vm._v(\"Player\")]),_vm._v(\" panel on the bottom to listen to the chord\\n progression visible on the \"),_c('strong',[_vm._v(\"Timeline\")]),_vm._v(\".\")],1),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_vm._m(2),_vm._v(\" \"),_c('li',[_vm._v(\"Expand \"),_c('font-awesome-icon',{attrs:{\"icon\":\"chevron-down\"}}),_vm._v(\" the\\n \"),_c('strong',[_vm._v(\"Palette\")]),_vm._v(\" in order to see more chords from different modes.\")],1)])])])])]),_vm._v(\" \"),_c('timeline',{ref:\"timeline\",model:{value:(_vm.project.timeline),callback:function ($$v) {_vm.$set(_vm.project, \"timeline\", $$v)},expression:\"project.timeline\"}}),_vm._v(\" \"),_c('player',{ref:\"player\",staticClass:\"mb-2\",attrs:{\"chords\":_vm.project.timeline},on:{\"timelinePosition\":_vm.timelinePositionChanged}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"page-main d-block d-lg-none\"},[_vm._v(\"\\n Sorry, small devices are not yet supported. Until then, please use your computer or a tablet\\n in landscape mode.\\n \")]),_vm._v(\" \"),_vm._m(3)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(\"Getting started\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',[_vm._v(\"Click \"),_c('strong',[_vm._v(\"7\")]),_vm._v(\" to add a seventh to a chord. The chord name will\\n change accordingly.\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',[_vm._v(\"Drag chords from the \"),_c('strong',[_vm._v(\"Palette\")]),_vm._v(\" on the left to the\\n \"),_c('strong',[_vm._v(\"Timeline\")]),_vm._v(\".\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',{staticClass:\"footer\"},[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row align-items-center flex-row\"},[_c('div',{staticClass:\"col-12 col-lg-auto mt-3 mt-lg-0 text-center\"},[_vm._v(\"\\n Krystian Chachuła 2018 \"),_c('a',{staticClass:\"ml-2\",attrs:{\"href\":\"https://git.sr.ht/~krystianch/harmony-playground\"}},[_vm._v(\"source code\")])])])])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-6e684010\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = null\n// module chunks = ","var normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6e684010\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = null\n// module chunks = ","export default class Mode {\n static majorIntervals = [2, 2, 1, 2, 2, 2, 1];\n\n constructor(name, formula, color) {\n this.name = name;\n this.formula = formula;\n this.color = color;\n }\n}\n\nMode.modes = [\n new Mode('Ionian', [0, 0, 0, 0, 0, 0, 0], 'gray'),\n new Mode('Dorian', [0, 0, -1, 0, 0, 0, -1], 'orange'),\n new Mode('Phrygian', [0, -1, -1, 0, 0, -1, -1], 'cyan'),\n new Mode('Lydian', [0, 0, 0, 1, 0, 0, 0], 'yellow'),\n new Mode('Mixolydian', [0, 0, 0, 0, 0, 0, -1], 'green'),\n new Mode('Aeolian', [0, 0, -1, 0, 0, -1, -1], 'red'),\n new Mode('Locrian', [0, -1, -1, 0, -1, -1, -1], 'purple'),\n];\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/music/modes.js","import Mode from './modes';\n\nexport default class Chord {\n static qualities = {\n 0: '',\n 1: 'm',\n 2: '+',\n 3: '°',\n 4: '7',\n 5: 'M7',\n 6: 'mM7',\n 7: 'm7',\n 8: '+M7',\n 9: '+7',\n 10: 'Ø7',\n 11: '°7',\n 12: '7♭5',\n };\n\n static arrEq(a, b) {\n for (let i = 0; i < a.length; i += 1) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n constructor(\n mode,\n degree,\n seventh = false,\n voicing = [[3], [3], [3], [3]],\n sub = false,\n beats = 4, noCompute = false) {\n this.id = `_${Math.random().toString(36).substr(2, 9)}`;\n this.mode = mode;\n this.degree = degree;\n this.seventh = seventh;\n this.voicing = voicing.map(element => element.slice());\n this.sub = sub;\n this.beats = beats;\n\n if (noCompute === false) {\n this.recompute();\n }\n }\n\n recompute() {\n // Compute chord quality\n const intNotation = this.notes(0, true).map((note, index, notes) => note - notes[0]);\n const intTriad = intNotation.slice(0, 3);\n const intSeventh = intNotation[3];\n\n if (Chord.arrEq(intTriad, [0, 4, 7])) {\n if (this.seventh === false) {\n this.quality = 0;\n } else if (intSeventh === 10) {\n this.quality = 4;\n } else if (intSeventh === 11) {\n this.quality = 5;\n }\n } else if (Chord.arrEq(intTriad, [0, 3, 7])) {\n if (this.seventh === false) {\n this.quality = 1;\n } else if (intSeventh === 10) {\n this.quality = 6;\n } else if (intSeventh === 11) {\n this.quality = 7;\n }\n } else if (Chord.arrEq(intTriad, [0, 4, 8])) {\n if (this.seventh === false) {\n this.quality = 2;\n } else if (intSeventh === 10) {\n this.quality = 8;\n } else if (intSeventh === 11) {\n this.quality = 9;\n }\n } else if (Chord.arrEq(intTriad, [0, 3, 6])) {\n if (this.seventh === false) {\n this.quality = 3;\n } else if (intSeventh === 10) {\n this.quality = 10;\n } else if (intSeventh === 11) {\n this.quality = 11;\n }\n } else if (Chord.arrEq(intTriad, [0, 4, 6]) && intSeventh === 10) {\n this.quality = 12;\n }\n\n // Compute roman numeral alias\n this.qualityText = `${Chord.qualities[this.quality]}`;\n\n this.prefix = '';\n if (this.sub && this.seventh) {\n this.prefix += 'sub';\n }\n if (this.mode.formula[this.degree - 1] === -1) {\n this.prefix += 'b';\n } else if (this.mode.formula[this.degree - 1] === 1) {\n this.prefix += '#';\n }\n }\n\n clone() {\n const chord = new Chord(\n this.mode,\n this.degree,\n this.seventh,\n this.voicing,\n this.sub,\n this.beats,\n true,\n );\n chord.quality = this.quality;\n chord.qualityText = this.qualityText;\n chord.prefix = this.prefix;\n return chord;\n }\n\n notes(tonic = 0, ignoreVoicing = false) {\n let notes = [];\n\n let note = tonic;\n const toRoot = this.degree - 1;\n let residuum = 0;\n\n for (let i = 0; i < (toRoot + 7); i += 1) {\n if (i === toRoot) {\n notes.push(note);\n } else if (i === (toRoot + 2)) {\n notes.push(note);\n } else if (i === (toRoot + 4)) {\n notes.push(note);\n } else if (i === (toRoot + 6) && this.seventh) {\n notes.push(note);\n }\n\n note += Mode.majorIntervals[i % 7] + this.mode.formula[(i + 1) % 7] + residuum;\n residuum = -this.mode.formula[(i + 1) % 7];\n }\n\n // Voice the chord\n if (!ignoreVoicing) {\n // eslint-disable-next-line prefer-spread\n notes = [].concat.apply(\n [],\n notes.map((obj, index) => obj + 24 + (12 * this.voicing[index])),\n );\n }\n\n // Substutute\n if (!ignoreVoicing && this.sub && this.seventh) {\n notes = notes.map(obj => obj - 6);\n }\n\n return notes;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/music/chords.js","import Soundfont from 'soundfont-player';\n\nexport default class Instruments {}\n\nInstruments.ac = new AudioContext();\n\nSoundfont.instrument(Instruments.ac, './static/sf/acoustic_grand_piano-mp3.js', { gain: 1 })\n .then((instrument) => {\n Instruments.piano = instrument;\n });\n\nSoundfont.instrument(Instruments.ac, './static/sf/steel_drums-mp3.js', { gain: 0.1 })\n .then((instrument) => {\n Instruments.drums = instrument;\n });\n\nSoundfont.instrument(Instruments.ac, './static/sf/acoustic_bass-mp3.js', { gain: 2 })\n .then((instrument) => {\n Instruments.bass = instrument;\n });\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/music/instruments.js","import Instruments from './instruments';\n\nexport default class Style {\n // eslint-disable-next-line no-unused-vars\n static playChord(chord, tonic, bpm, nextChord) {}\n\n // eslint-disable-next-line no-unused-vars\n static playEnd(chord, tonic) {}\n}\n\nclass PianoChordStyle extends Style {\n static name() {\n return 'Piano Chords';\n }\n\n static playChord(chord, tonic) {\n // const duration = (60.0 * chord.beats) / bpm;\n chord.notes(tonic).forEach((note) => {\n Instruments.piano.play(note);\n });\n }\n\n // eslint-disable-next-line no-unused-vars\n static playEnd(chord, tonic) {}\n}\n\nclass JazzStyle extends Style {\n static name() {\n return 'Jazz';\n }\n\n static bassNote(note) {\n return 36 + ((note - 36) % 12);\n }\n\n static playChord(chord, tonic, bpm, nextChord) {\n const duration = (60.0 * chord.beats) / bpm;\n const BASE = 35;\n const SNARE = 40;\n const RIDE = 51;\n const HAT = 44;\n\n Instruments.drums.play(BASE, Instruments.ac.currentTime);\n Instruments.drums.play(RIDE, Instruments.ac.currentTime);\n\n Instruments.drums.play(HAT, Instruments.ac.currentTime + (3 * (duration / 12)));\n Instruments.drums.play(SNARE, Instruments.ac.currentTime + (3 * (duration / 12)));\n Instruments.drums.play(RIDE, Instruments.ac.currentTime + (3 * (duration / 12)));\n\n Instruments.drums.play(SNARE, Instruments.ac.currentTime + (5 * (duration / 12)));\n Instruments.drums.play(RIDE, Instruments.ac.currentTime + (5 * (duration / 12)));\n\n Instruments.drums.play(RIDE, Instruments.ac.currentTime + (6 * (duration / 12)));\n\n Instruments.drums.play(BASE, Instruments.ac.currentTime + (8 * (duration / 12)));\n\n Instruments.drums.play(HAT, Instruments.ac.currentTime + (9 * (duration / 12)));\n Instruments.drums.play(SNARE, Instruments.ac.currentTime + (9 * (duration / 12)));\n Instruments.drums.play(RIDE, Instruments.ac.currentTime + (9 * (duration / 12)));\n\n Instruments.drums.play(SNARE, Instruments.ac.currentTime + (11 * (duration / 12)));\n Instruments.drums.play(RIDE, Instruments.ac.currentTime + (11 * (duration / 12)));\n\n Instruments.bass.play(\n this.bassNote(chord.notes(tonic)[0] - (2 * 12)),\n Instruments.ac.currentTime,\n { duration: (duration / 4) - 0.1 },\n );\n Instruments.bass.play(\n this.bassNote(chord.notes(tonic)[1] - (2 * 12)),\n Instruments.ac.currentTime + (duration / 4),\n { duration: (duration / 4) - 0.1 },\n );\n Instruments.bass.play(\n this.bassNote(chord.notes(tonic)[2] - (2 * 12)),\n Instruments.ac.currentTime + (2 * (duration / 4)),\n { duration: (duration / 4) - 0.1 },\n );\n Instruments.bass.play(\n this.bassNote(nextChord.notes(tonic)[0] -\n ((2 * 12) + (nextChord.notes(tonic)[0] > chord.notes(tonic)[2] ? -1 : 1))),\n Instruments.ac.currentTime + (3 * (duration / 4)),\n { duration: (duration / 4) - 0.1 },\n );\n\n chord.notes(tonic).forEach((note) => {\n Instruments.piano.play(note);\n });\n }\n\n static playEnd(chord, tonic) {\n const BASE = 35;\n const RIDE = 51;\n\n Instruments.drums.play(BASE, Instruments.ac.currentTime);\n Instruments.drums.play(RIDE, Instruments.ac.currentTime);\n\n Instruments.bass.play(\n this.bassNote(chord.notes(tonic)[0] - (2 * 12)),\n Instruments.ac.currentTime,\n );\n }\n}\n\nclass PopClaveStyle extends Style {\n // eslint-disable-next-line no-unused-vars\n static playChord(chord, tonic, bpm, nextChord) {\n const duration = (60.0 * chord.beats) / bpm;\n\n Instruments.piano.play(\n chord.notes(tonic)[0],\n Instruments.ac.currentTime,\n { duration: duration / 8 },\n );\n Instruments.piano.play(\n chord.notes(tonic)[2],\n Instruments.ac.currentTime,\n { duration: duration / 8 },\n );\n\n Instruments.piano.play(\n chord.notes(tonic)[0],\n Instruments.ac.currentTime + (3 * (duration / 8)),\n { duration: duration / 8 },\n );\n Instruments.piano.play(\n chord.notes(tonic)[1],\n Instruments.ac.currentTime + (3 * (duration / 8)),\n { duration: duration / 8 },\n );\n Instruments.piano.play(\n chord.notes(tonic)[2],\n Instruments.ac.currentTime + (3 * (duration / 8)),\n { duration: duration / 8 },\n );\n\n Instruments.piano.play(\n chord.notes(tonic)[0],\n Instruments.ac.currentTime + (6 * (duration / 8)),\n { duration: duration / 8 },\n );\n Instruments.piano.play(\n chord.notes(tonic)[2],\n Instruments.ac.currentTime + (6 * (duration / 8)),\n { duration: duration / 8 },\n );\n }\n\n // eslint-disable-next-line no-unused-vars\n static playEnd(chord, tonic) {\n Instruments.piano.play(\n chord.notes(tonic)[0],\n Instruments.ac.currentTime,\n );\n Instruments.piano.play(\n chord.notes(tonic)[2],\n Instruments.ac.currentTime,\n );\n }\n}\n\nStyle.styles = [PianoChordStyle, JazzStyle, PopClaveStyle];\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/music/styles.js","export default {\n circularAt(array, index) {\n return array[index % array.length];\n },\n renderAccidentals(str) {\n return str\n .replace('sub', '\\x01')\n\n .replace('b', '♭').replace('#', '♯')\n\n .replace('\\x01', 'sub');\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/music/utilities.js","import Chord from './chords';\nimport constants from './constants';\nimport Instruments from './instruments';\nimport Mode from './modes';\nimport Note from './notes';\nimport Style from './styles';\nimport utilities from './utilities';\n\nexport default {\n Chord,\n constants,\n Instruments,\n Mode,\n Note,\n Style,\n utilities,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/music/index.js","export default {\n roman: ['0', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII'],\n tonics: [\n { name: 'Cb', number: 23 },\n { name: 'C', number: 24 },\n { name: 'C#', number: 25 },\n { name: 'Db', number: 25 },\n { name: 'D', number: 26 },\n { name: 'Eb', number: 27 },\n { name: 'E', number: 28 },\n { name: 'F', number: 29 },\n { name: 'F#', number: 30 },\n { name: 'Gb', number: 30 },\n { name: 'G', number: 31 },\n { name: 'Ab', number: 32 },\n { name: 'A', number: 33 },\n { name: 'Bb', number: 34 },\n { name: 'B', number: 35 },\n ],\n\n notes: {\n C: 0,\n 'C#': 1,\n Db: 1,\n D: 2,\n 'D#': 3,\n Eb: 3,\n E: 4,\n F: 5,\n 'F#': 6,\n Gb: 6,\n G: 7,\n 'G#': 8,\n Ab: 8,\n A: 9,\n 'A#': 10,\n Bb: 10,\n B: 11,\n },\n\n majorKeys: [\n { name: 'C', notes: ['C', 'D', 'E', 'F', 'G', 'A', 'B'] },\n { name: 'Db', notes: ['Db', 'Eb', 'F', 'Gb', 'Ab', 'Bb', 'C'] },\n { name: 'D', notes: ['D', 'E', 'F#', 'G', 'A', 'B', 'C#'] },\n { name: 'Eb', notes: ['Eb', 'F', 'G', 'Ab', 'Bb', 'C', 'D'] },\n { name: 'E', notes: ['E', 'F#', 'G#', 'A', 'B', 'C#', 'D#'] },\n { name: 'F', notes: ['F', 'G', 'A', 'Bb', 'C', 'D', 'E'] },\n { name: 'F#', notes: ['F#', 'G#', 'A#', 'B', 'C#', 'D#', 'E#'] },\n { name: 'G', notes: ['G', 'A', 'B', 'C', 'D', 'E', 'F#'] },\n { name: 'Ab', notes: ['Ab', 'Bb', 'C', 'Db', 'Eb', 'F', 'G'] },\n { name: 'A', notes: ['A', 'B', 'C#', 'D', 'E', 'F#', 'G#'] },\n { name: 'Bb', notes: ['Bb', 'C', 'D', 'Eb', 'F', 'G', 'A'] },\n { name: 'B', notes: ['B', 'C#', 'D#', 'E', 'F#', 'G#', 'A#'] },\n ],\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/lib/music/constants.js","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport {\n faChevronDown,\n faChevronUp,\n faCircleNotch,\n faPlay,\n faPlusCircle,\n faStop,\n faTrash,\n faUndoAlt,\n} from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';\nimport 'tabler-ui/dist/assets/css/tabler.css';\nimport Vue from 'vue';\nimport Vuex from 'vuex';\nimport App from './App';\nimport router from './router';\nimport music from './lib/music/index';\n\nVue.use(Vuex);\n\nconst store = new Vuex.Store({\n state: {\n tonic: 0,\n bpm: 132,\n absoluteChordNames: false,\n nameSwapOnHover: true,\n },\n mutations: {\n setTonic(state, tonic) {\n state.tonic = tonic;\n },\n setBpm(state, bpm) {\n state.bpm = bpm;\n },\n setAbsoluteChordNames(state, absoluteChordNames) {\n state.absoluteChordNames = absoluteChordNames;\n },\n setNameSwapOnHover(state, nameSwapOnHover) {\n state.nameSwapOnHover = nameSwapOnHover;\n },\n },\n});\n\nlibrary.add(\n faTrash, faPlusCircle, faPlay, faStop, faUndoAlt, faChevronDown, faChevronUp, faCircleNotch,\n);\n\nVue.component('font-awesome-icon', FontAwesomeIcon);\nVue.config.productionTip = false;\n\nObject.defineProperty(Vue.prototype, '$music', { value: music });\n\n/* eslint-disable no-new */\nnew Vue({\n el: '#app',\n router,\n store,\n components: { App },\n template: '',\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js"],"sourceRoot":""}