make Spectrum and Spectrogram more frequency accurate and detail preserving

This commit is contained in:
Boof2015
2026-08-16 16:43:31 -04:00
parent f6d9719c43
commit 3b302d5526
29 changed files with 1715 additions and 242 deletions
+7
View File
@@ -1,6 +1,7 @@
import type { ScopeSettings } from '../types/settings'
import type { ResolvedSpectrogramTheme } from '../types/theme'
import type { SpectrogramOptions } from '../renderer/visualizers/Spectrogram'
import { nominalFrequencyBoundsForRange } from '../types/frequencyScale'
/**
* Map Prism's spectrogram settings + resolved theme to Spectrogram options.
@@ -10,16 +11,22 @@ export function spectrogramSettingsToOptions(
settings: ScopeSettings['spectrogram'],
theme: ResolvedSpectrogramTheme,
): SpectrogramOptions {
const range = nominalFrequencyBoundsForRange(settings.frequencyRangeMode)
return {
lineColor: theme.mono,
heatColors: theme.heatColors,
backgroundColor: theme.background,
gridColor: theme.guides,
labelColor: theme.labels,
minFrequency: range.minFrequency,
maxFrequency: range.maxFrequency,
fftSize: settings.fftSize,
tiltDbPerOctave: settings.tiltDbPerOctave,
scrollSpeed: settings.scrollSpeed,
contrast: settings.contrast,
clarityMode: settings.clarityMode,
scaleMode: settings.scaleMode,
showGrid: settings.showGrid,
orientation: 'horizontal',
colorScheme: settings.colorScheme,
}