{"version":3,"file":"bundle.js","mappings":";;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEkD;AACK;AACF;;AAErD,aAAa,iDAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,WAAW,oDAAa;AACxB;AACA;AACA;AACA,WAAW,6DAAiB;AAC5B;AACA;AACA;AACA;AACA,mBAAmB,kEAAY;AAC/B;AACA,OAAO;AACP;AACA,0CAA0C,oDAAa;AACvD;AACA;AACA;AACA;AACA;;AAE2B;AAC3B;;;;;;;;;;;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;;AAEkD;AACgB;AACrC;;AAE7B;AACA,oBAAoB,iDAAU;AAC9B,OAAO,qBAAqB,UAAU,oDAAa,CAAC,gDAAI;AACxD;AACA;AACA,iBAAiB,kEAAY,WAAW,iEAAW,WAAW;AAC9D;AACA,KAAK;AACL;AACA,6BAA6B,SAAS;AACtC;AACA;;AAEuC;AACvC;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEwC;AACxC;;;;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;;AAEsD;;AAEtD,oBAAoB,gEAAgB;AACpC,aAAa,oCAAoC;AACjD;;AAEkC;AAClC;;;;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;;AAEsD;;AAEtD,qBAAqB,gEAAgB;AACrC,aAAa,mCAAmC;AAChD;;AAEmC;AACnC;;;;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;;AAEsD;;AAEtD,kBAAkB,gEAAgB;AAClC,aAAa,0EAA0E;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEgC;AAChC;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;;AAEsD;;AAEtD,aAAa,gEAAgB;AAC7B,aAAa,4EAA4E;AACzF,aAAa,6EAA6E;AAC1F;;AAE2B;AAC3B;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;;AA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","sources":["webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/Icon.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/createLucideIcon.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/defaultAttributes.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/icons/chevron-left.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/icons/chevron-right.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/icons/clipboard.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/icons/copy.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/icons/maximize-2.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/icons/minimize-2.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/icons/minus.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/icons/mouse-pointer.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/icons/pause.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/icons/play.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/icons/plus.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/icons/rotate-ccw.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/icons/save.js","webpack://react-drum-machine/./node_modules/lucide-react/dist/esm/shared/src/utils.js","webpack://react-drum-machine/./src/styles/drum-machine.css?96ba","webpack://react-drum-machine/./src/components/DrumMachine.tsx","webpack://react-drum-machine/external var \"React\"","webpack://react-drum-machine/external var \"ReactDOM\"","webpack://react-drum-machine/webpack/bootstrap","webpack://react-drum-machine/webpack/runtime/compat get default export","webpack://react-drum-machine/webpack/runtime/define property getters","webpack://react-drum-machine/webpack/runtime/hasOwnProperty shorthand","webpack://react-drum-machine/webpack/runtime/make namespace object","webpack://react-drum-machine/./src/index.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props\n })\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronLeft = createLucideIcon(\"ChevronLeft\", [\n [\"path\", { d: \"m15 18-6-6 6-6\", key: \"1wnfg3\" }]\n]);\n\nexport { ChevronLeft as default };\n//# sourceMappingURL=chevron-left.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst ChevronRight = createLucideIcon(\"ChevronRight\", [\n [\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]\n]);\n\nexport { ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Clipboard = createLucideIcon(\"Clipboard\", [\n [\"rect\", { width: \"8\", height: \"4\", x: \"8\", y: \"2\", rx: \"1\", ry: \"1\", key: \"tgr4d6\" }],\n [\n \"path\",\n {\n d: \"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\",\n key: \"116196\"\n }\n ]\n]);\n\nexport { Clipboard as default };\n//# sourceMappingURL=clipboard.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Copy = createLucideIcon(\"Copy\", [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n]);\n\nexport { Copy as default };\n//# sourceMappingURL=copy.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Maximize2 = createLucideIcon(\"Maximize2\", [\n [\"polyline\", { points: \"15 3 21 3 21 9\", key: \"mznyad\" }],\n [\"polyline\", { points: \"9 21 3 21 3 15\", key: \"1avn1i\" }],\n [\"line\", { x1: \"21\", x2: \"14\", y1: \"3\", y2: \"10\", key: \"ota7mn\" }],\n [\"line\", { x1: \"3\", x2: \"10\", y1: \"21\", y2: \"14\", key: \"1atl0r\" }]\n]);\n\nexport { Maximize2 as default };\n//# sourceMappingURL=maximize-2.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Minimize2 = createLucideIcon(\"Minimize2\", [\n [\"polyline\", { points: \"4 14 10 14 10 20\", key: \"11kfnr\" }],\n [\"polyline\", { points: \"20 10 14 10 14 4\", key: \"rlmsce\" }],\n [\"line\", { x1: \"14\", x2: \"21\", y1: \"10\", y2: \"3\", key: \"o5lafz\" }],\n [\"line\", { x1: \"3\", x2: \"10\", y1: \"21\", y2: \"14\", key: \"1atl0r\" }]\n]);\n\nexport { Minimize2 as default };\n//# sourceMappingURL=minimize-2.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Minus = createLucideIcon(\"Minus\", [[\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }]]);\n\nexport { Minus as default };\n//# sourceMappingURL=minus.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst MousePointer = createLucideIcon(\"MousePointer\", [\n [\"path\", { d: \"M12.586 12.586 19 19\", key: \"ea5xo7\" }],\n [\n \"path\",\n {\n d: \"M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z\",\n key: \"277e5u\"\n }\n ]\n]);\n\nexport { MousePointer as default };\n//# sourceMappingURL=mouse-pointer.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Pause = createLucideIcon(\"Pause\", [\n [\"rect\", { x: \"14\", y: \"4\", width: \"4\", height: \"16\", rx: \"1\", key: \"zuxfzm\" }],\n [\"rect\", { x: \"6\", y: \"4\", width: \"4\", height: \"16\", rx: \"1\", key: \"1okwgv\" }]\n]);\n\nexport { Pause as default };\n//# sourceMappingURL=pause.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Play = createLucideIcon(\"Play\", [\n [\"polygon\", { points: \"6 3 20 12 6 21 6 3\", key: \"1oa8hb\" }]\n]);\n\nexport { Play as default };\n//# sourceMappingURL=play.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Plus = createLucideIcon(\"Plus\", [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"M12 5v14\", key: \"s699le\" }]\n]);\n\nexport { Plus as default };\n//# sourceMappingURL=plus.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst RotateCcw = createLucideIcon(\"RotateCcw\", [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }]\n]);\n\nexport { RotateCcw as default };\n//# sourceMappingURL=rotate-ccw.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Save = createLucideIcon(\"Save\", [\n [\n \"path\",\n {\n d: \"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z\",\n key: \"1c8476\"\n }\n ],\n [\"path\", { d: \"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7\", key: \"1ydtos\" }],\n [\"path\", { d: \"M7 3v4a1 1 0 0 0 1 1h7\", key: \"t51u73\" }]\n]);\n\nexport { Save as default };\n//# sourceMappingURL=save.js.map\n","/**\n * @license lucide-react v0.453.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && array.indexOf(className) === index;\n}).join(\" \");\n\nexport { mergeClasses, toKebabCase };\n//# sourceMappingURL=utils.js.map\n","// extracted by mini-css-extract-plugin\nexport {};","import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport { Play, Pause, RotateCcw, Maximize2, Minimize2, Save, ChevronLeft, ChevronRight, Plus, Minus, MousePointer, Copy, Clipboard } from 'lucide-react';\nimport '../styles/drum-machine.css';\n\ninterface DrumSample {\n name: string;\n url: string;\n}\n\nconst drumSamples: DrumSample[] = [\n { name: 'Kick', url: '/wp-content/plugins/react-drum-machine/public/samples/Kick.mp3' },\n { name: 'Snare', url: '/wp-content/plugins/react-drum-machine/public/samples/Snare_1.mp3' },\n { name: 'C-Hihat', url: '/wp-content/plugins/react-drum-machine/public/samples/Hat_Closed_1.mp3' },\n { name: 'O-Hihat', url: '/wp-content/plugins/react-drum-machine/public/samples/Hat_Open_1.mp3' },\n { name: 'Ride', url: '/wp-content/plugins/react-drum-machine/public/samples/rideacoustified.mp3' },\n { name: 'Crash', url: '/wp-content/plugins/react-drum-machine/public/samples/Crash_1.mp3' },\n { name: 'Tom 1', url: '/wp-content/plugins/react-drum-machine/public/samples/MidTom1.mp3' },\n { name: 'Tom 2', url: '/wp-content/plugins/react-drum-machine/public/samples/LowTom1.mp3' },\n { name: 'Tamb', url: '/wp-content/plugins/react-drum-machine/public/samples/Tambourine.mp3' },\n];\n\nconst MAX_BARS = 32;\nconst MAX_UNDO_HISTORY = 50;\n\nconst generateRhythmNotation = (beats: number, subdivision: number) => {\n const result = [];\n for (let i = 1; i <= beats; i++) {\n result.push(i.toString());\n if (subdivision === 4) {\n result.push('e', '+', 'a');\n } else if (subdivision === 3) {\n result.push('+', 'a');\n } else if (subdivision === 2) {\n result.push('+');\n } else if (subdivision > 4) {\n for (let j = 1; j < subdivision; j++) {\n result.push('.');\n }\n }\n }\n return result;\n};\n\nexport default function DrumMachine() {\n const [isPlaying, setIsPlaying] = useState(false);\n const [currentStep, setCurrentStep] = useState(0);\n const [tempo, setTempo] = useState(90);\n const [beatCount, setBeatCount] = useState(4);\n const [subdivision, setSubdivision] = useState(4);\n const [pattern, setPattern] = useState(() => [Array(beatCount * subdivision).fill(null).map(() => Array(9).fill(false))]);\n const [volumes, setVolumes] = useState(Array(9).fill(0.8));\n const [masterVolume, setMasterVolume] = useState(0.8);\n const [currentBar, setCurrentBar] = useState(0);\n const [totalBars, setTotalBars] = useState(1);\n const [selectionMode, setSelectionMode] = useState(false);\n const [selectionStart, setSelectionStart] = useState<[number, number] | null>(null);\n const [selectionEnd, setSelectionEnd] = useState<[number, number] | null>(null);\n const [isDragging, setIsDragging] = useState(false);\n const [copiedPattern, setCopiedPattern] = useState(null);\n const [isFullScreen, setIsFullScreen] = useState(false);\n const [undoHistory, setUndoHistory] = useState([]);\n const [redoHistory, setRedoHistory] = useState([]);\n const [showSubdivisionDialog, setShowSubdivisionDialog] = useState(false);\n const [newSubdivision, setNewSubdivision] = useState(subdivision);\n const [showCopyPasteMenu, setShowCopyPasteMenu] = useState(false);\n const [copyPasteMenuPosition, setCopyPasteMenuPosition] = useState({ x: 0, y: 0 });\n\n const intervalRef = useRef(null);\n const audioContextRef = useRef(null);\n const audioBuffersRef = useRef<{ [key: string]: AudioBuffer }>({});\n const drumMachineRef = useRef(null);\n const gridRef = useRef(null);\n\n const loadAudioSamples = useCallback(async () => {\n if (!audioContextRef.current) {\n audioContextRef.current = new (window.AudioContext || (window as any).webkitAudioContext)();\n }\n\n const context = audioContextRef.current;\n\n for (const sample of drumSamples) {\n if (!audioBuffersRef.current[sample.url]) {\n try {\n const response = await fetch(sample.url);\n const arrayBuffer = await response.arrayBuffer();\n const audioBuffer = await context.decodeAudioData(arrayBuffer);\n audioBuffersRef.current[sample.url] = audioBuffer;\n } catch (error) {\n console.error(`Failed to load audio sample: ${sample.url}`, error);\n }\n }\n }\n }, []);\n\n const playSound = useCallback((index: number, velocity = 1) => {\n if (!audioContextRef.current) {\n audioContextRef.current = new (window.AudioContext || (window as any).webkitAudioContext)();\n }\n\n const audioContext = audioContextRef.current;\n\n if (audioContext && drumSamples[index]) {\n const sample = drumSamples[index];\n const gainNode = audioContext.createGain();\n const panNode = audioContext.createStereoPanner();\n\n gainNode.gain.setValueAtTime(0, audioContext.currentTime);\n gainNode.gain.linearRampToValueAtTime(\n volumes[index] * masterVolume * velocity,\n audioContext.currentTime + 0.01\n );\n gainNode.connect(panNode);\n panNode.connect(audioContext.destination);\n\n const source = audioContext.createBufferSource();\n source.buffer = audioBuffersRef.current[sample.url];\n source.connect(gainNode);\n source.start();\n\n gainNode.gain.exponentialRampToValueAtTime(0.001, audioContext.currentTime + 0.5);\n }\n }, [volumes, masterVolume]);\n\n const togglePlay = useCallback(() => {\n if (isPlaying) {\n if (intervalRef.current) window.clearInterval(intervalRef.current);\n setIsPlaying(false);\n } else {\n const totalSteps = beatCount * subdivision * totalBars;\n const startStep = currentBar * beatCount * subdivision;\n setCurrentStep(startStep);\n const interval = window.setInterval(() => {\n setCurrentStep((prevStep) => {\n const newStep = (prevStep + 1) % totalSteps;\n const currentBarIndex = Math.floor(newStep / (beatCount * subdivision));\n const stepInBar = newStep % (beatCount * subdivision);\n \n setCurrentBar(currentBarIndex);\n \n pattern[currentBarIndex][stepInBar]?.forEach((isActive, index) => {\n if (isActive) {\n playSound(index, 1);\n }\n });\n return newStep;\n });\n }, (60 * 1000) / tempo / subdivision);\n intervalRef.current = interval;\n setIsPlaying(true);\n }\n }, [isPlaying, beatCount, subdivision, totalBars, currentBar, pattern, tempo, playSound]);\n\n const toggleStep = useCallback((step: number, track: number) => {\n setPattern(prevPattern => {\n const newPattern = [...prevPattern];\n newPattern[currentBar] = [...newPattern[currentBar]];\n newPattern[currentBar][step] = [...newPattern[currentBar][step]];\n newPattern[currentBar][step][track] = !newPattern[currentBar][step][track];\n if (newPattern[currentBar][step][track]) {\n playSound(track);\n }\n setUndoHistory(prev => [...prev.slice(-MAX_UNDO_HISTORY), prevPattern]);\n setRedoHistory([]);\n return newPattern;\n });\n }, [currentBar, playSound]);\n\n const handleVolumeChange = useCallback((index: number, value: number) => {\n setVolumes(prevVolumes => {\n const newVolumes = [...prevVolumes];\n newVolumes[index] = value;\n return newVolumes;\n });\n }, []);\n\n const handleMasterVolumeChange = useCallback((value: number) => {\n setMasterVolume(value);\n }, []);\n\n const adaptPattern = useCallback((newBeatCount: number, newSubdivision: number) => {\n const oldSubdivision = subdivision;\n setPattern(prevPattern => {\n return prevPattern.map(bar => {\n const newBar = Array(newBeatCount * newSubdivision).fill(null).map(() => Array(9).fill(false));\n for (let track = 0; track < 9; track++) {\n for (let oldStep = 0; oldStep < bar.length; oldStep++) {\n if (bar[oldStep][track]) {\n const newStep = Math.round(oldStep * (newSubdivision / oldSubdivision));\n if (newStep < newBar.length) {\n newBar[newStep][track] = true;\n }\n }\n }\n }\n return newBar;\n });\n });\n setBeatCount(newBeatCount);\n setSubdivision(newSubdivision);\n setCurrentStep(currentBar * newBeatCount * newSubdivision);\n }, [subdivision, currentBar]);\n\n const handleBeatCountChange = useCallback((value: number) => {\n adaptPattern(value, subdivision);\n setUndoHistory(prev => [...prev.slice(-MAX_UNDO_HISTORY), pattern]);\n setRedoHistory([]);\n }, [adaptPattern, subdivision, pattern]);\n\n const handleSubdivisionChange = useCallback((value: number) => {\n setNewSubdivision(value);\n setShowSubdivisionDialog(true);\n }, []);\n\n const confirmSubdivisionChange = useCallback(() => {\n adaptPattern(beatCount, newSubdivision);\n setUndoHistory(prev => [...prev.slice(-MAX_UNDO_HISTORY), pattern]);\n setRedoHistory([]);\n setShowSubdivisionDialog(false);\n }, [adaptPattern, beatCount, newSubdivision, pattern]);\n\n const cancelSubdivisionChange = useCallback(() => {\n setNewSubdivision(subdivision);\n setShowSubdivisionDialog(false);\n }, [subdivision]);\n\n const addBar = useCallback(() => {\n if (totalBars < MAX_BARS) {\n setPattern(prevPattern => {\n const newPattern = [...prevPattern, Array(beatCount * subdivision).fill(null).map(() => Array(9).fill(false))];\n setUndoHistory(prev => [...prev.slice(-MAX_UNDO_HISTORY), prevPattern]);\n setRedoHistory([]);\n return newPattern;\n });\n setTotalBars(prev => prev + 1);\n }\n }, [totalBars, beatCount, subdivision]);\n\n const removeBar = useCallback(() => {\n if (totalBars > 1) {\n setPattern(prevPattern => {\n const newPattern = prevPattern.slice(0, -1);\n setUndoHistory(prev => [...prev.slice(-MAX_UNDO_HISTORY), prevPattern]);\n setRedoHistory([]);\n return newPattern;\n });\n setTotalBars(prev => prev - 1);\n if (currentBar >= totalBars - 1) {\n setCurrentBar(totalBars - 2);\n }\n }\n }, [totalBars, currentBar]);\n\n const exportToWav = useCallback(async () => {\n if (!audioContextRef.current) {\n audioContextRef.current = new (window.AudioContext || (window as any).webkitAudioContext)();\n }\n const audioContext = audioContextRef.current;\n\n const totalSteps = beatCount * subdivision * totalBars;\n const trackDuration = (totalSteps * 60) / (tempo * subdivision);\n\n const offlineCtx = new OfflineAudioContext(2, audioContext.sampleRate * trackDuration, audioContext.sampleRate);\n\n const trackGains = drumSamples.map((_, index) => {\n const gain = offlineCtx.createGain();\n gain.gain.setValueAtTime(volumes[index] * masterVolume, 0);\n gain.connect(offlineCtx.destination);\n return gain;\n });\n\n for (let bar = 0; bar < totalBars; bar++) {\n for (let step = 0; step < beatCount * subdivision; step++) {\n const time = (bar * beatCount * subdivision + step) * 60 / (tempo * subdivision);\n pattern[bar][step].forEach((isActive, trackIndex) => {\n if (isActive) {\n const source = offlineCtx.createBufferSource();\n source.buffer = audioBuffersRef.current[drumSamples[trackIndex].url];\n source.connect(trackGains[trackIndex]);\n source.start(time);\n }\n });\n }\n }\n\n const renderedBuffer = await offlineCtx.startRendering();\n const wavBlob = await audioBufferToWav(renderedBuffer);\n const url = URL.createObjectURL(wavBlob);\n\n const a = document.createElement('a');\n a.href = url;\n a.download = 'drum-track.wav';\n a.click();\n\n URL.revokeObjectURL(url);\n }, [beatCount, subdivision, totalBars, tempo, pattern, volumes, masterVolume]);\n\n const audioBufferToWav = (buffer: AudioBuffer): Promise => {\n const numOfChan = buffer.numberOfChannels;\n const length = buffer.length * numOfChan * 2 + 44;\n const out = new ArrayBuffer(length);\n const view = new DataView(out);\n const sampleRate = buffer.sampleRate;\n const channels = [];\n let offset = 0;\n let pos = 0;\n\n const setUint16 = (data: number) => {\n view.setUint16(pos, data, true);\n pos += 2;\n };\n\n const setUint32 = (data: number) => {\n view.setUint32(pos, data, true);\n pos += 4;\n };\n\n setUint32(0x46464952);\n setUint32(length - 8);\n \n setUint32(0x45564157);\n setUint32(0x20746d66);\n setUint32(16);\n setUint16(1);\n \n setUint16(numOfChan);\n setUint32(sampleRate);\n setUint32(sampleRate * 2 * numOfChan);\n setUint16(numOfChan * 2);\n setUint16(16);\n setUint32(0x61746164);\n setUint32(length - pos - 4);\n\n for (let i = 0; i < buffer.numberOfChannels; i++) {\n channels.push(buffer.getChannelData(i));\n }\n\n while (pos < length) {\n for (let i = 0; i < numOfChan; i++) {\n let sample = Math.max(-1, Math.min(1, channels[i][offset]));\n sample = (0.5 + sample < 0 ? sample * 32768 : sample * 32767) | 0;\n view.setInt16(pos, sample, true);\n pos += 2;\n }\n offset++;\n }\n\n return Promise.resolve(new Blob([out], { type: 'audio/wav' }));\n };\n\n const toggleSelectionMode = useCallback(() => {\n setSelectionMode(prev => !prev);\n setSelectionStart(null);\n setSelectionEnd(null);\n }, []);\n\n const handleMouseDown = useCallback((step: number, track: number) => {\n if (selectionMode) {\n setSelectionStart([step, track]);\n setSelectionEnd(null);\n setIsDragging(true);\n } else {\n toggleStep(step, track);\n setIsDragging(true);\n }\n }, [selectionMode, toggleStep]);\n\n const handleMouseEnter = useCallback((step: number, track: number) => {\n if (isDragging) {\n if (selectionMode) {\n setSelectionEnd([step, track]);\n } else {\n toggleStep(step, track);\n }\n }\n }, [isDragging, selectionMode, toggleStep]);\n\n const handleMouseUp = useCallback(() => {\n setIsDragging(false);\n if (selectionMode && selectionStart && selectionEnd) {\n const gridRect = gridRef.current?.getBoundingClientRect();\n if (gridRect) {\n const startX = Math.min(selectionStart[0], selectionEnd[0]);\n const endX = Math.max(selectionStart[0], selectionEnd[0]);\n const startY = Math.min(selectionStart[1], selectionEnd[1]);\n const endY = Math.max(selectionStart[1], selectionEnd[1]);\n\n const centerX = gridRect.left + ((startX + endX) / 2) * (gridRect.width / (beatCount * subdivision));\n const centerY = gridRect.top + ((startY + endY) / 2) * (gridRect.height / drumSamples.length);\n\n setCopyPasteMenuPosition({ x: centerX, y: centerY });\n setShowCopyPasteMenu(true);\n }\n }\n }, [selectionMode, selectionStart, selectionEnd, beatCount, subdivision]);\n\n const copySelection = useCallback(() => {\n if (selectionStart && selectionEnd) {\n const [startStep, startTrack] = selectionStart;\n const [endStep, endTrack] = selectionEnd;\n const minStep = Math.min(startStep, endStep);\n const maxStep = Math.max(startStep, endStep);\n const minTrack = Math.min(startTrack, endTrack);\n const maxTrack = Math.max(startTrack, endTrack);\n\n const selectedPattern = pattern[currentBar].slice(minStep, maxStep + 1).map(step =>\n step.slice(minTrack, maxTrack + 1)\n );\n\n setCopiedPattern(selectedPattern);\n setShowCopyPasteMenu(false);\n }\n }, [selectionStart, selectionEnd, pattern, currentBar]);\n\n const pasteSelection = useCallback(() => {\n if (copiedPattern && selectionStart) {\n const [startStep, startTrack] = selectionStart;\n setPattern(prevPattern => {\n const newPattern = [...prevPattern];\n newPattern[currentBar] = [...newPattern[currentBar]];\n\n for (let i = 0; i < copiedPattern.length; i++) {\n for (let j = 0; j < copiedPattern[i].length; j++) {\n const step = startStep + i;\n const track = startTrack + j;\n if (step < newPattern[currentBar].length && track < newPattern[currentBar][step].length) {\n newPattern[currentBar][step] = [...newPattern[currentBar][step]];\n newPattern[currentBar][step][track] = copiedPattern[i][j];\n }\n }\n }\n\n setUndoHistory(prev => [...prev.slice(-MAX_UNDO_HISTORY), prevPattern]);\n setRedoHistory([]);\n return newPattern;\n });\n setShowCopyPasteMenu(false);\n }\n }, [copiedPattern, selectionStart, currentBar]);\n\n const clearSelection = useCallback(() => {\n if (selectionStart && selectionEnd) {\n const [startStep, startTrack] = selectionStart;\n const [endStep, endTrack] = selectionEnd;\n const minStep = Math.min(startStep, endStep);\n const maxStep = Math.max(startStep, endStep);\n const minTrack = Math.min(startTrack, endTrack);\n const maxTrack = Math.max(startTrack, endTrack);\n\n setPattern(prevPattern => {\n const newPattern = [...prevPattern];\n newPattern[currentBar] = [...newPattern[currentBar]];\n\n for (let step = minStep; step <= maxStep; step++) {\n newPattern[currentBar][step] = [...newPattern[currentBar][step]];\n for (let track = minTrack; track <= maxTrack; track++) {\n newPattern[currentBar][step][track] = false;\n }\n }\n\n setUndoHistory(prev => [...prev.slice(-MAX_UNDO_HISTORY), prevPattern]);\n setRedoHistory([]);\n return newPattern;\n });\n setShowCopyPasteMenu(false);\n }\n }, [selectionStart, selectionEnd, currentBar]);\n\n const handleUndo = useCallback(() => {\n if (undoHistory.length > 0) {\n const prevPattern = undoHistory[undoHistory.length - 1];\n setPattern(prevPattern);\n setUndoHistory(prev => prev.slice(0, -1));\n setRedoHistory(prev => [...prev, pattern]);\n }\n }, [undoHistory, pattern]);\n\n const handleRedo = useCallback(() => {\n if (redoHistory.length > 0) {\n const nextPattern = redoHistory[redoHistory.length - 1];\n setPattern(nextPattern);\n setRedoHistory(prev => prev.slice(0, -1));\n setUndoHistory(prev => [...prev, pattern]);\n }\n }, [redoHistory, pattern]);\n\n const toggleFullScreen = useCallback(() => {\n if (!isFullScreen) {\n if (drumMachineRef.current?.requestFullscreen) {\n drumMachineRef.current.requestFullscreen();\n }\n } else {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n }\n }\n setIsFullScreen(!isFullScreen);\n }, [isFullScreen]);\n\n useEffect(() => {\n loadAudioSamples();\n return () => {\n if (intervalRef.current) window.clearInterval(intervalRef.current);\n if (audioContextRef.current) audioContextRef.current.close();\n };\n }, [loadAudioSamples]);\n\n const rhythmNotation = generateRhythmNotation(beatCount, subdivision);\n\n return (\n
\n
\n

Drum Machine-Xmerks

\n
\n\n
\n
\n \n \n \n \n \n \n \n
\n
\n \n {Math.round(masterVolume * 100)}\n \n
\n
\n\n
\n
\n {rhythmNotation.map((label, index) => (\n
{label}
\n ))}\n
\n
\n {drumSamples.map((sound, trackIndex) => (\n
\n
{sound.name}
\n
\n {pattern[currentBar].map((step, stepIndex) => (\n = Math.min(selectionStart[0], selectionEnd[0]) &&\n stepIndex <= Math.max(selectionStart[0], selectionEnd[0]) &&\n trackIndex >= Math.min(selectionStart[1], selectionEnd[1]) &&\n trackIndex <= Math.max(selectionStart[1], selectionEnd[1])\n ? 'dm-step-selected' : ''\n }`}\n onMouseDown={() => handleMouseDown(stepIndex, trackIndex)}\n onMouseEnter={() => handleMouseEnter(stepIndex, trackIndex)}\n onMouseUp={handleMouseUp}\n aria-label={`Toggle ${sound.name} at ${rhythmNotation[stepIndex % rhythmNotation.length]}`}\n />\n ))}\n
\n handleVolumeChange(trackIndex, Number(e.target.value))}\n className=\"dm-volume-slider\"\n />\n
\n ))}\n
\n
\n\n
\n
\n \n {tempo} BPM\n \n
\n
\n handleBeatCountChange(Number(e.target.value))}\n className=\"dm-select\"\n >\n {[1, 2, 3, 4, 5, 6, 7, 8].map((count) => (\n \n ))}\n \n handleSubdivisionChange(Number(e.target.value))}\n className=\"dm-select\"\n >\n {[1, 2, 3, 4, 5, 6, 7, 8].map((count) => (\n \n ))}\n \n
\n
\n \n Bar {currentBar + 1} of {totalBars}\n \n \n \n
\n
\n\n {showCopyPasteMenu && (\n
\n \n \n \n
\n )}\n\n {showSubdivisionDialog && (\n
\n
\n

Change Subdivision

\n

Changing the subdivision will adapt the current pattern. Are you sure you want to continue?

\n
\n \n \n
\n
\n
\n )}\n
\n );\n}","module.exports = React;","module.exports = ReactDOM;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport DrumMachine from './components/DrumMachine';\nimport './styles/drum-machine.css';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('react-drum-machine')\n);"],"names":[],"sourceRoot":""}