significantly improve latency

This commit is contained in:
Boof2015
2026-03-21 18:38:21 -04:00
parent dc3604dbb5
commit 78d8be23a3
15 changed files with 1323 additions and 220 deletions
+23 -1
View File
@@ -4,6 +4,7 @@ import { useThemeStore } from '../stores/themeStore'
import type { ScopeKind } from '../../types/scope'
import ScopeModule from './ScopeModule'
import { buildAnalyzerGridTemplateColumns } from '../analyzerLayout'
import { audioRouter } from '../audio/AudioRouter'
export default function Strip(): JSX.Element {
const scopeOrder = useSettingsStore((s) => s.scopeOrder)
@@ -15,7 +16,11 @@ export default function Strip(): JSX.Element {
const gridRef = useRef<HTMLDivElement>(null)
const scopeRefs = useRef<Partial<Record<ScopeKind, HTMLDivElement | null>>>({})
const [handleOffsets, setHandleOffsets] = useState<number[]>([])
const visibleScopes = scopeOrder.filter((k) => !hiddenScopes.has(k))
const visibleScopes = useMemo(
() => scopeOrder.filter((k) => !hiddenScopes.has(k)),
[hiddenScopes, scopeOrder],
)
const visibleScopeKey = useMemo(() => visibleScopes.join('|'), [visibleScopes])
const gridTemplateColumns = useMemo(() => {
return buildAnalyzerGridTemplateColumns(visibleScopes, widthWeights)
}, [visibleScopes, widthWeights])
@@ -40,6 +45,23 @@ export default function Strip(): JSX.Element {
setHandleOffsets(nextOffsets)
}, [visibleScopes])
useEffect(() => {
const visibleScopeSet = new Set(visibleScopes)
audioRouter.setVisualizerConsumerDemand('docked-strip', {
spectrum: visibleScopeSet.has('spectrum'),
oscilloscope: visibleScopeSet.has('oscilloscope'),
vectorscope: visibleScopeSet.has('vectorscope'),
spectrogram: visibleScopeSet.has('spectrogram'),
vumeter: visibleScopeSet.has('vumeter'),
lufsmeter: visibleScopeSet.has('lufsmeter'),
waveform: visibleScopeSet.has('waveform'),
})
return () => {
audioRouter.clearVisualizerConsumerDemand('docked-strip')
}
}, [visibleScopeKey, visibleScopes])
useEffect(() => {
const strip = stripRef.current
if (!strip) return