void startDemo()}
icon={Disc3}
label="Demo"
title="Built-in demo track (synthesized techno)"
/>
void startMic()}
icon={Mic}
label="Mic"
title="Live microphone / line-in"
/>
fileInputRef.current?.click()}
icon={FileAudio}
label="File"
title="Play an audio file (loops)"
/>
{source === 'demo' && (
DEMO
setDemoBpm(v)}
className="w-24"
aria-label="Demo track tempo"
/>
{demoBpm}
)}
{
const file = e.target.files?.[0]
if (file) void startFile(file)
e.target.value = ''
}}
/>
)
}
function BpmReadout() {
const bpm = useAvaStore((s) => s.stats?.beat.bpm ?? 0)
return (