import Keyboard, { StyledNaturalKey, StyledAccidentalKey } from '@theoryofnekomata/react-musical-keyboard' import * as React from 'react' import { PedalBoard } from '../components/PedalBoard' import { Activity } from '../components/Activity' import { useMidi, useMidiActivity } from '../hooks/midi' import { RANGES } from '../../../common/config' import { useForm } from '../hooks/form' interface IndexPageProps { params: URLSearchParams } const IndexPage: React.FC = ({ params: search }) => { const { handleAction } = useForm() const { midiAccess, lastStateChangeTimestamp: devicesLoadedTimestamp } = useMidi() const inputDevices = Array.from(midiAccess?.inputs.entries() ?? []) const queryDeviceKey = search.get('queryDeviceKey') || inputDevices?.[0]?.[0] || '' const currentDevice = typeof midiAccess?.inputs !== 'undefined' ? midiAccess.inputs.get(queryDeviceKey) : undefined const { keyChannels, unaCorda, isChannelActive, sustain, sostenuto } = useMidiActivity(currentDevice) const range = search.get('range') || RANGES['A0-C8'] const [startKeyRaw, endKeyRaw] = range.split('|') const startKey = Number(startKeyRaw) const endKey = Number(endKeyRaw) return (
) } export default IndexPage