import { FAMILY_LABELS, type FilterFamily, type FilterSpec } from '../model/filters' export interface ControlsProps { sigma: number setSigma: (v: number) => void sampleRateHz: number setSampleRateHz: (v: number) => void spec: FilterSpec setSpec: (v: FilterSpec) => void dither: boolean setDither: (v: boolean) => void } function formatHz(hz: number): string { return hz >= 1000 ? `${(hz / 1000).toFixed(hz >= 10000 ? 0 : 1)} kHz` : `${Math.round(hz)} Hz` } /** A slider that is linear in log10 of its value. */ function LogSlider(props: { label: string value: number min: number max: number display: string onChange: (v: number) => void }) { const lo = Math.log10(props.min) const hi = Math.log10(props.max) return (