{"version":3,"sources":["Globals.js","reducers/samplesReducer.js","actions/setVolumeAction.js","reducers/setVolumeReducer.js","actions/setDrumPadGridAction.js","actions/setSelectionMenuAction.js","actions/toggleMetronomeIsPlayingAction.js","actions/shouldMetronomeRestartAction.js","reducers/rootReducer.js","actions/setSampleAction.js","reducers/volumeOffSetsReducer.js","reducers/setDrumPadGridReducer.js","reducers/setSelectionMenuReducer.js","reducers/isMetronomeReducer.js","reducers/metronomeTemposReducer.js","actions/setMetronomeTempoAction.js","reducers/isMetronomePlayingReducer.js","reducers/shouldMetronomeRestartReducer.js","store.js","DrumPadGrid.js","Selection.js","SelectVolume.js","Metronome.js","SelectionLeft.js","Reset.js","Stop.js","SelectionRight.js","VolumeContainer.js","wavFiles.js","metronomeTempos.js","SelectionMenu.js","DisplayMiddle.js","DrumMachine.js","App.js","serviceWorker.js","index.js"],"names":["padsArray","initialPadVolumes","forEach","pad","sessionStorage","hasOwnProperty","setItem","initialIsMetronome","initialMetronomeTempos","initialSamples","getUrls","urls","key","getItem","setVolumeAction","volume","type","DEFAULTVOLUME","setDrumPadGridAction","drumPadGrid","setSelectionMenuAction","selectionMenu","toggleMetronomeIsPlayingAction","metronomeIsPlaying","shouldMetronomeRestartAction","restartMetronome","combineReducers","samplesUrls","state","action","sample","volumeOffSets","getVolumeOffSets","metronomeStatuses","getIsMetronomeStatuses","metronomeTempos","parseInt","getMetronomeTempos","tempo","metronomePlayingStates","initMetronomeIsPlaying","shouldMetronomeRestart","restartMetronomes","initRestartMetronome","store","createStore","rootReducer","DrumPadGrid","props","playSample","bind","metronome","getVolume","handleKeyPress","this","audioFileText","document","getElementById","src","slice","innerHTML","replace","sound","audioFile","thisVolume","currentTime","play","setTimeout","soundDuration","Math","floor","duration","keyDuration","newSound","Audio","newSoundDuration","e","includes","keyCode","String","fromCharCode","focus","self","refreshMetronome","setInterval","pause","clearInterval","addEventListener","removeEventListener","rowOfPads","keys","map","item","index","id","className","onClick","icon","faSyncAlt","round","React","Component","connect","dispatch","Selection","handleClick","SelectVolume","Metronome","SelectionLeft","Reset","clear","Stop","SelectionRight","VolumeContainer","handleVolumeChange","target","value","faVolumeUp","min","max","onChange","faVolumeDown","wavFiles","volumeSelectionMenuItems","SelectionMenu","fileStringArray","padSelectingFor","handleMouseOver","handleMouseOut","makeMenuToolTipText","handleBackNav","backToDrumPad","handleEscKey","join","split","setState","event","menuToolTip","createElement","setAttribute","textContent","appendChild","parentNode","removeChild","tabIndex","menuScrollTip","prevProps","substring","length","setMetronomeTempoAction","makeSelectionMenu","menuItems","resultItems","unshift","onMouseEnter","onMouseLeave","makeSelectionMenuItem","Object","filter","push","tempos","keyItems","setSampleAction","DisplayMiddle","showVolumeToolTip","handleMouseOverOut","willShow","DrumMachine","App","href","rel","alt","data-recalc-dims","Boolean","window","location","hostname","match","ReactDOM","render","navigator","serviceWorker","ready","then","registration","unregister","catch","error","console","message"],"mappings":"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,eAAeG,UAAY,sF,+BAInD,OACE,yBAAKkC,GAAG,oBACN,yBAAKA,GAAG,4BACN,kBAAC,IAAD,CAAiBA,GAAG,eAAeG,KAAMoB,IAAatB,UAAU,gBAElE,yBAAKD,GAAG,0BACN,2BAAOA,GAAG,SAAS9E,KAAK,QAAQsG,IAAI,IAAIC,IAAI,MAAMH,MAAO9D,KAAKN,MAAMjC,OAAQyG,SAAUlE,KAAK4D,sBAE7F,yBAAKpB,GAAG,8BACN,kBAAC,IAAD,CAAiBA,GAAG,iBAAiBG,KAAMwB,IAAc1B,UAAU,qB,GAzB/CK,IAAMC,YAgCrBC,eAtCS,SAAC1E,GAAD,sBAAiBA,MAEd,SAAC2E,GAAD,MAAe,CACxCzF,gBAAiB,SAACC,GAAD,OAAYwF,EAASzF,EAAgBC,QAmCzCuF,CAA6CW,G,QChD/CS,EAAW,CACtB,gBAAiB,CACf,MAAS,CACP,CACE,aAAc,CACZ,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,0BAEF,SAAY,CACV,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,yBAEF,WAAY,CACV,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,0BAIN,QAAW,CACT,CACE,gBAAiB,CACf,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,wBAGJ,qBACA,qBACA,qBACA,0BACA,0BACA,0BACA,4BACA,4BACA,4BACA,4BACA,4BACA,6BAEF,UAAW,CACT,CACE,SAAY,CACV,sBACA,sBACA,sBACA,sBACA,sBACA,uBAEF,YAAa,CACX,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,0BAEF,kBAAmB,CACjB,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,qBACA,qBACA,qBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,mBACA,mBACA,mBACA,sBAIN,OAAU,CACR,CACE,SAAY,CACV,wBACA,wBACA,wBACA,yBAEF,WAAY,CACV,wBACA,wBACA,wBACA,wBACA,wBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,uBACA,uBACA,uBACA,uBACA,uBACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,2BAEF,WAAY,CACV,wBACA,wBACA,wBACA,wBACA,wBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,uBACA,uBACA,uBACA,uBACA,uBACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,2BAEF,WAAY,CACV,wBACA,wBACA,wBACA,wBACA,wBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,uBACA,uBACA,uBACA,uBACA,uBACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,2BAEF,oBAAqB,CACnB,kCACA,kCACA,kCACA,kCACA,kCACA,iCACA,iCACA,iCACA,iCACA,iCACA,iCACA,iCACA,iCACA,kCAEF,mBAAoB,CAClB,uBACA,uBACA,uBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,wBAEF,YAAa,CACX,uBACA,uBACA,uBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,yBACA,yBACA,yBACA,yBACA,yBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,wBAEF,iBAAkB,CAChB,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,wBACA,4BAKR,YAAa,CACX,eAAgB,CACd,4BACA,4BACA,2BACA,2BACA,2BACA,2BACA,0BACA,2BACA,2BACA,2BACA,2BACA,0BACA,2BAEF,eAAgB,CACd,0BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,2BACA,2BACA,4BACA,4BACA,2BACA,2BACA,2BACA,2BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,2BAEF,eAAgB,CACd,4BACA,4BACA,4BACA,2BACA,2BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,2BAEF,kBAAmB,CACjB,wBACA,uBACA,uBACA,uBACA,sBACA,sBACA,sBACA,sBACA,sBACA,uBACA,uBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,wBAEF,kBAAmB,CACjB,uBACA,uBACA,uBACA,sBACA,sBACA,sBACA,uBACA,uBACA,qBACA,qBACA,qBACA,qBACA,sBACA,sBACA,sBACA,qBACA,qBACA,qBACA,qBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,uBAEF,iBAAkB,CAChB,2BACA,2BACA,4BACA,4BACA,4BACA,4BACA,2BACA,2BACA,4BACA,4BACA,0BACA,0BACA,0BACA,2BAEF,iBAAkB,CAChB,2BACA,2BACA,2BACA,4BACA,4BACA,2BACA,2BACA,0BACA,0BACA,0BACA,2BAEF,iBAAkB,CAChB,4BACA,4BACA,2BACA,2BACA,0BACA,0BACA,0BACA,2BAEF,kBAAmB,CACjB,qBACA,sBACA,uBACA,uBACA,qBACA,qBACA,qBACA,qBACA,wBAEF,uBAAwB,CACtB,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,2BACA,2BACA,2BACA,2BACA,2BACA,2BACA,2BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,2BACA,2BACA,2BACA,2BACA,2BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,8BACA,+BAEF,sBAAuB,CACrB,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,2BACA,2BACA,2BACA,2BACA,2BACA,2BACA,2BACA,2BACA,2BACA,2BACA,2BACA,2BACA,2BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,4BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,2BACA,2BACA,2BACA,2BACA,2BACA,2BACA,2BACA,0BACA,0BACA,0BACA,0BACA,0BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,6BACA,8BAEF,iBAAkB,CAChB,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,oBACA,sBACA,sBACA,sBACA,uBACA,uBACA,uBACA,qBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEF,gBAAiB,CACf,4BACA,4BACA,4BACA,2BACA,2BACA,2BACA,4BACA,4BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,2BAEF,gBAAiB,CACf,2BACA,2BACA,4BACA,4BACA,yBACA,yBACA,yBACA,0BACA,2BACA,2BACA,0BACA,0BACA,0BACA,0BACA,2BAEF,gBAAiB,CACf,2BACA,2BACA,0BACA,2BACA,2BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,2BAEF,gBAAiB,CACf,yBACA,4BACA,4BACA,6BACA,6BACA,0BACA,2BACA,2BACA,2BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,2BAEF,cAAe,CACb,4BACA,4BACA,2BACA,2BACA,2BACA,0BACA,2BACA,2BACA,2BACA,0BACA,0BACA,0BAEF,cAAe,CACb,0BACA,0BACA,2BACA,4BACA,4BACA,4BACA,2BACA,2BACA,0BACA,0BACA,0BACA,2BAEF,kBAAmB,CACjB,yBACA,2BACA,2BACA,2BACA,2BACA,yBACA,0BACA,0BACA,0BACA,2BACA,2BACA,yBACA,4BACA,0BACA,0BACA,wBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,0BAEF,kBAAmB,CACjB,yBACA,2BACA,2BACA,yBACA,0BACA,0BACA,yBACA,yBACA,0BACA,0BACA,wBACA,yBACA,yBACA,yBACA,yBACA,yBACA,0BAEF,kBAAmB,CACjB,2BACA,2BACA,2BACA,2BACA,2BACA,yBACA,wBACA,yBACA,yBACA,wBACA,wBACA,yBACA,yBACA,yBACA,yBACA,yBACA,0BAEF,kBAAmB,CACjB,yBACA,2BACA,2BACA,yBACA,0BACA,0BACA,yBACA,yBACA,0BACA,0BACA,wBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,0BAEF,kBAAmB,CACjB,0BACA,0BACA,0BACA,yBACA,2BACA,2BACA,yBACA,0BACA,2BACA,yBACA,yBACA,0BACA,0BACA,wBACA,uBACA,yBACA,yBACA,yBACA,0BAEF,kBAAmB,CACjB,yBACA,2BACA,2BACA,2BACA,2BACA,0BACA,0BACA,yBACA,yBACA,0BACA,0BACA,wBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,0BAEF,kBAAmB,CACjB,2BACA,2BACA,2BACA,2BACA,2BACA,2BACA,0BACA,0BACA,2BACA,2BACA,2BACA,0BACA,0BACA,8BACA,8BACA,0BACA,wBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,yBACA,0BAEF,kBAAmB,CACjB,wBACA,yBACA,2BACA,2BACA,2BACA,0BACA,0BACA,yBACA,yBACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,0BACA,6BACA,6BACA,6BACA,0BACA,0BACA,yBACA,yBACA,yBACA,yBACA,yBACA,4BC1gCOvF,EAAkB,CAC7B,iBAAkB,SAClB,iBAAkB,SAClB,iBAAkB,SAClB,iBAAkB,SAClB,gBAAiB,SACjB,gBAAiB,SACjB,gBAAiB,SACjB,gBAAiB,SACjB,gBAAiB,SACjB,gBAAiB,SACjB,gBAAiB,SACjB,gBAAiB,SACjB,gBAAiB,SACjB,gBAAiB,SACjB,gBAAiB,SACjB,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,WAAY,SACZ,eAAgB,SAChB,eAAgB,SAChB,eAAgB,SAChB,eAAgB,SAChB,eAAgB,SAChB,eAAgB,SAChB,e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","file":"static/js/main.918fd14d.chunk.js","sourcesContent":["export const padsArray = ['Q','W','E','A','S','D','Z','X','C'];\n\nexport const resetDefaults = () => {\n initialSamples();\n initialPadVolumes();\n initialIsMetronome();\n initialMetronomeTempos();\n};\n\nexport const initialPadVolumes = () => {\n padsArray.forEach(pad => {\n if (!sessionStorage.hasOwnProperty(pad + \"volume\")) {\n sessionStorage.setItem(pad + \"volume\",\"+0\");\n }\n });\n};\n\nexport const initialIsMetronome = () => {\n padsArray.forEach(pad => {\n if (!sessionStorage.hasOwnProperty(pad + \"isMetronome\")) {\n sessionStorage.setItem(pad + \"isMetronome\",false);\n }\n });\n};\n\nexport const initialMetronomeTempos = () => {\n padsArray.forEach(pad => {\n if (!sessionStorage.hasOwnProperty(pad + \"metronomeTempo\")) {\n sessionStorage.setItem(pad + \"metronomeTempo\",652);\n }\n });\n};\n\nexport const initialSamples = () => {\n if (!sessionStorage.hasOwnProperty(padsArray[0])) {\n sessionStorage.setItem(padsArray[0],\"Assorted-Hits/Cymbals/CYCdh_Crash-01.wav\");\n }\n if (!sessionStorage.hasOwnProperty(padsArray[1])) {\n sessionStorage.setItem(padsArray[1],\"Assorted-Hits/Cymbals/CYCdh_MultiCrash-01.wav\");\n }\n if (!sessionStorage.hasOwnProperty(padsArray[2])) {\n sessionStorage.setItem(padsArray[2],\"Assorted-Hits/Cymbals/CYCdh_MultiCrashHi-01.wav\");\n }\n if (!sessionStorage.hasOwnProperty(padsArray[3])) {\n sessionStorage.setItem(padsArray[3],\"Assorted-Hits/Cymbals/CYCdh_MultiCrashLo-01.wav\");\n }\n if (!sessionStorage.hasOwnProperty(padsArray[4])) {\n sessionStorage.setItem(padsArray[4],\"Assorted-Hits/Snares/Ludwig-A/CYCdh_LudFlamA-05.wav\");\n }\n if (!sessionStorage.hasOwnProperty(padsArray[5])) {\n sessionStorage.setItem(padsArray[5],\"Assorted-Hits/Snares/Ludwig-A/CYCdh_LudRimA-07.wav\");\n }\n if (!sessionStorage.hasOwnProperty(padsArray[6])) {\n sessionStorage.setItem(padsArray[6],\"Assorted-Hits/Kicks/Loose-Kick/CYCdh_LooseKick-08.wav\");\n }\n if (!sessionStorage.hasOwnProperty(padsArray[7])) {\n sessionStorage.setItem(padsArray[7],\"Assorted-Hits/Snares/Ludwig-A/CYCdh_LudSnrA-05.wav\");\n }\n if (!sessionStorage.hasOwnProperty(padsArray[8])) {\n sessionStorage.setItem(padsArray[8],\"Assorted-Hits/Snares/Ludwig-A/CYCdh_LudSnrOffA-08.wav\");\n }\n};\n","import { padsArray,initialSamples } from \"../Globals\";\nimport { SETSAMPLE } from \"../actions/setSampleAction.js\";\n\nconst getUrls = () => {\n const urls = {};\n padsArray.forEach(key => {\n urls[key] = sessionStorage.getItem(key);\n });\n return urls;\n}\n\nexport default (state, action) => {\n if (!state) {\n initialSamples();\n state = getUrls();\n }\n\n switch (action.type) {\n case SETSAMPLE:\n state[action.key] = action.sample;\n return state;\n default:\n state = getUrls();\n return state;\n }\n};\n","export const CHANGEVOLUME = \"CHANGEVOLUME\";\n\nexport const setVolumeAction = (volume) => {\n return {\n type: CHANGEVOLUME,\n volume: volume,\n };\n};\n","import { CHANGEVOLUME } from \"../actions/setVolumeAction.js\";\n\nlet DEFAULTVOLUME = 30;\n\nif (!sessionStorage.hasOwnProperty('volume')) {\n sessionStorage.setItem('volume','30');\n} else {\n DEFAULTVOLUME = sessionStorage.getItem('volume');\n}\n\nexport default (state = DEFAULTVOLUME, action) => {\n switch (action.type) {\n case CHANGEVOLUME:\n return action.volume;\n default:\n return state;\n }\n}\n","export const DRUMPADGRID = \"DRUMPADGRID\";\n\nexport const setDrumPadGridAction = (drumPadGrid) => {\n return {\n type: DRUMPADGRID,\n drumPadGrid: drumPadGrid,\n }\n}\n","export const SELECTIONMENU = \"SELECTIONMENU\";\n\nexport const setSelectionMenuAction = (selectionMenu) => {\n return {\n type: SELECTIONMENU,\n selectionMenu: selectionMenu,\n }\n}\n","export const TOGGLEMETRONOME = \"TOGGLEMETRONOME\";\n\nexport const toggleMetronomeIsPlayingAction = (key,metronomeIsPlaying) => {\n return {\n type: TOGGLEMETRONOME,\n key: key,\n metronomeIsPlaying: metronomeIsPlaying,\n };\n};\n","export const RESTARTMETRONOME = \"RESTARTMETRONOME\";\n\nexport const shouldMetronomeRestartAction = (key,restartMetronome) => {\n return {\n type: RESTARTMETRONOME,\n key: key,\n restartMetronome: restartMetronome,\n };\n};\n","import { combineReducers } from \"redux\";\nimport samplesReducer from \"./samplesReducer\";\nimport volumeOffSetsReducer from \"./volumeOffSetsReducer\";\nimport setVolumeReducer from \"./setVolumeReducer\";\nimport setDrumPadGridReducer from \"./setDrumPadGridReducer\";\nimport setSelectionMenuReducer from \"./setSelectionMenuReducer\";\nimport isMetronomeReducer from \"./isMetronomeReducer\";\nimport metronomeTemposReducer from \"./metronomeTemposReducer\";\nimport isMetronomePlayingReducer from \"./isMetronomePlayingReducer\";\nimport shouldMetronomeRestartReducer from \"./shouldMetronomeRestartReducer\";\n\nexport default combineReducers({\n samplesUrls: samplesReducer,\n volumeOffSets: volumeOffSetsReducer,\n volume: setVolumeReducer,\n drumPadGrid: setDrumPadGridReducer,\n selectionMenu: setSelectionMenuReducer,\n metronomeStatuses: isMetronomeReducer,\n metronomeTempos: metronomeTemposReducer,\n metronomePlayingStates: isMetronomePlayingReducer,\n shouldMetronomeRestart: shouldMetronomeRestartReducer,\n});\n","export const SETSAMPLE = \"SETSAMPLE\";\n\nexport const setSampleAction = (key,sample) => {\n return {\n type: SETSAMPLE,\n key: key,\n sample: sample,\n };\n};\n","import { padsArray,initialPadVolumes } from \"../Globals\";\n\nconst getVolumeOffSets = () => {\n const volumeOffSets = {};\n padsArray.forEach(key => {\n volumeOffSets[key + 'volume'] = sessionStorage.getItem(key + 'volume');\n });\n return volumeOffSets;\n}\n\nexport default (state, action) => {\n if (!state) {\n initialPadVolumes();\n state = getVolumeOffSets();\n }\n\n switch (action.type) {\n default:\n return state;\n }\n};\n","import { DRUMPADGRID } from \"../actions/setDrumPadGridAction.js\";\n\nexport default (state = 'drumPadGrid', action) => {\n switch(action.type) {\n case DRUMPADGRID:\n return action.drumPadGrid;\n default:\n return state;\n }\n}\n","import { SELECTIONMENU } from \"../actions/setSelectionMenuAction\";\n\nexport default (state = 'pads', action) => {\n switch(action.type) {\n case SELECTIONMENU:\n return action.selectionMenu;\n default:\n return state;\n }\n}\n","import { padsArray,initialIsMetronome } from \"../Globals\";\n\nconst getIsMetronomeStatuses = () => {\n const metronomeStatuses = {};\n padsArray.forEach(key => {\n metronomeStatuses[key + 'isMetronome'] = sessionStorage.getItem(key + 'isMetronome');\n });\n return metronomeStatuses;\n}\n\nexport default (state, action) => {\n initialIsMetronome();\n\n switch (action.type) {\n default:\n return getIsMetronomeStatuses();\n }\n};\n","import { SETMETRONOMETEMPO } from \"../actions/setMetronomeTempoAction.js\";\nimport { padsArray,initialMetronomeTempos } from \"../Globals\";\n\nconst getMetronomeTempos = () => {\n const metronomeTempos = {};\n padsArray.forEach(key => {\n metronomeTempos[key + 'metronomeTempo'] = parseInt(sessionStorage.getItem(key + 'metronomeTempo'));\n });\n return metronomeTempos;\n}\n\nexport default (state, action) => {\n if (!state) {\n initialMetronomeTempos();\n state = getMetronomeTempos();\n }\n\n switch (action.type) {\n case SETMETRONOMETEMPO:\n state[action.key + 'metronomeTempo'] = action.tempo;\n return state;\n default:\n return state;\n }\n};\n","export const SETMETRONOMETEMPO = \"SETMETRONOMETEMPO\";\n\nexport const setMetronomeTempoAction = (key,tempo) => {\n return {\n type: SETMETRONOMETEMPO,\n key: key,\n tempo: tempo,\n };\n};\n","import { padsArray } from \"../Globals\";\nimport { TOGGLEMETRONOME } from \"../actions/toggleMetronomeIsPlayingAction.js\";\n\nconst initMetronomeIsPlaying = () => {\n const metronomePlayingStates = {};\n padsArray.forEach(key => {\n metronomePlayingStates[key + 'metronomeIsPlaying'] = false;\n });\n return metronomePlayingStates;\n};\n\nexport default (state, action) => {\n if (!state) {\n state = initMetronomeIsPlaying();\n }\n\n switch (action.type) {\n case TOGGLEMETRONOME:\n state[action.key + 'metronomeIsPlaying'] = action.metronomeIsPlaying;\n return state;\n default:\n return state;\n }\n}\n","import { padsArray } from \"../Globals\";\nimport { RESTARTMETRONOME } from \"../actions/shouldMetronomeRestartAction.js\";\n\nconst initRestartMetronome = () => {\n const restartMetronomes = {};\n padsArray.forEach(key => {\n restartMetronomes[key + 'restartMetronome'] = false;\n });\n return restartMetronomes;\n};\n\nexport default (state, action) => {\n if (!state) {\n state = initRestartMetronome();\n }\n\n switch (action.type) {\n case RESTARTMETRONOME:\n state[action.key + 'restartMetronome'] = action.restartMetronome;\n return state;\n default:\n return state;\n }\n}\n","import { createStore } from \"redux\";\nimport rootReducer from \"./reducers/rootReducer\";\n\nconst store = createStore(rootReducer);\n\nexport default store;\n","import React from 'react';\nimport { connect } from \"react-redux\";\nimport { padsArray } from \"./Globals\";\n\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSyncAlt } from \"@fortawesome/free-solid-svg-icons\";\n\nimport './DrumPadGrid.css';\n\nimport { toggleMetronomeIsPlayingAction } from \"./actions/toggleMetronomeIsPlayingAction\";\nimport { shouldMetronomeRestartAction } from \"./actions/shouldMetronomeRestartAction\";\n\nconst mapStateToProps = (state) => ({ ...state });\n\nconst mapDispatchToProps = (dispatch) => ({\n toggleMetronomeIsPlayingAction: (key,metronomeIsPlaying) => dispatch(toggleMetronomeIsPlayingAction(key,metronomeIsPlaying)),\n shouldMetronomeRestartAction: (key,restartMetronome) => dispatch(shouldMetronomeRestartAction(key,restartMetronome)),\n});\n\nclass DrumPadGrid extends React.Component {\n constructor(props) {\n super(props);\n this.playSample = this.playSample.bind(this);\n this.metronome = this.metronome.bind(this);\n this.getVolume = this.getVolume.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n };\n\n playSample(key) {\n if (this.props.metronomeStatuses[key + 'isMetronome'] === 'false') {\n const audioFileText = document.getElementById(key).src.slice(36);\n document.getElementById('display-top').innerHTML = \"
\" + key +\": \" + audioFileText.replace(/\\//g,\" \").replace(/-/g,\"‑\") + \"
\";\n const keyDuration = 1000;\n const sound = document.getElementById(key);\n const audioFile = this.props.samplesUrls[key];\n const thisVolume = this.getVolume(key);\n if (sound.currentTime === 0) {\n sound.volume = thisVolume;\n sound.play();\n setTimeout(function(){\n const soundDuration = Math.floor(sound.duration);\n if (soundDuration > (keyDuration / 1000)) {\n sound.currentTime = soundDuration;\n }\n }, keyDuration);\n } else {\n const newSound = new Audio('https://trentpalmer.org/drumsamples/' + audioFile);\n newSound.volume = thisVolume;\n newSound.play();\n setTimeout(function(){\n const newSoundDuration = Math.floor(newSound.duration);\n if (newSoundDuration > (keyDuration / 1000)) {\n newSound.currentTime = newSoundDuration;\n }\n }, keyDuration);\n }\n } else {\n if (this.props.metronomePlayingStates[key + 'metronomeIsPlaying'] === false) {\n this.props.toggleMetronomeIsPlayingAction(key,true);\n this.metronome(key);\n } else {\n this.props.toggleMetronomeIsPlayingAction(key,false);\n }\n }\n };\n\n handleKeyPress(e) {\n if ([81,87,69,65,83,68,90,88,67].includes(e.keyCode)) {\n this.playSample(String.fromCharCode(e.keyCode));\n } else if (e.keyCode === 86){\n document.getElementById('volume').focus();\n }\n };\n\n getVolume(key) {\n const machineVolume = parseInt(sessionStorage.getItem('volume'));\n const padVolumeOffSet = parseInt(sessionStorage.getItem(key + 'volume'));\n const thisVolume = (machineVolume + padVolumeOffSet) / 100;\n return thisVolume > 1 ? 1 : thisVolume < 0 ? 0 : thisVolume;\n };\n\n metronome(key) {\n const audioFileText = document.getElementById(key).src.slice(36);\n document.getElementById('display-top').innerHTML = \"\" + key +\": \" + audioFileText.replace(/\\//g,\" \").replace(/-/g,\"‑\") + \"
\";\n const keyDuration = this.props.metronomeTempos[key+'metronomeTempo'];\n const sound = document.getElementById(key);\n sound.volume = this.getVolume(key);\n sound.play();\n const self = this;\n let refreshMetronome = setInterval(function(){\n sound.pause();\n sound.currentTime = 0;\n sound.volume = self.getVolume(key);\n sound.play();\n if (self.props.shouldMetronomeRestart[key + 'restartMetronome']) {\n self.props.shouldMetronomeRestartAction(key,false);\n clearInterval(refreshMetronome);\n self.metronome(key);\n }\n if (keyDuration !== self.props.metronomeTempos[key+'metronomeTempo']) {\n clearInterval(refreshMetronome);\n self.metronome(key);\n }\n if (self.props.metronomePlayingStates[key + 'metronomeIsPlaying'] === false) {\n clearInterval(refreshMetronome);\n }\n },keyDuration);\n };\n\n componentDidMount() {\n document.addEventListener(\"keydown\", this.handleKeyPress, false);\n };\n\n componentWillUnmount() {\n document.removeEventListener(\"keydown\", this.handleKeyPress, false);\n };\n\n render() {\n const rowOfPads = (keys) => {\n return keys.map((item,index) => {\n return{item}
;\n } else if (this.props.metronomeStatuses[item + 'isMetronome'] === 'true' && this.props.metronomePlayingStates[item + 'metronomeIsPlaying'] === false) {\n return{item + ' '}
{tempo + ' '}
select
a sound
select
a volume
metronome
\nRESET
\nSTOP
\npress \"V\" to focus Volume so you can adjust with arrow keys
';\n };\n\n render() {\n return (\n