import useEvent from '@src/useEvent.mjs'; import useFrame from '@src/useFrame.mjs'; import { getAudioContext } from '@strudel/webaudio'; import { midi2note } from '@strudel/core'; import { useState, useRef, useEffect } from 'react'; import Claviature from '@components/Claviature'; let Button = (props) => )} {animatable && ( )} {buttons.map((f, i) => ( ))} {claviature && ( { const f = 440 * 2 ** ((note - 69) / 12); handleChangeFrequency(f); cancelAnimationFrame(frameRef.current); startOsc(f); }} options={{ range: ['A1', 'A5'], scaleY: 0.75, scaleX: 0.86, colorize: activeNote ? [{ keys: [activeNote], color: '#eab308' }] : [], labels: activeNote ? { [activeNote]: activeNote } : {}, }} /> )} ); }