Improved LUFS meter

This commit is contained in:
Boof2015
2026-05-05 16:47:59 -04:00
parent 4a900bc7c7
commit 98ebe3fc8f
12 changed files with 449 additions and 103 deletions
+7
View File
@@ -1,9 +1,16 @@
export type LUFSMeterMode = 'bar'
export type LUFSMeterReadout = 'integrated' | 'shortTerm' | 'momentary'
export const LUFS_METER_MODES: readonly LUFSMeterMode[] = ['bar']
export const LUFS_METER_READOUTS: readonly LUFSMeterReadout[] = ['integrated', 'shortTerm', 'momentary']
export const DEFAULT_LUFS_METER_MODE: LUFSMeterMode = 'bar'
export const DEFAULT_LUFS_METER_READOUT: LUFSMeterReadout = 'shortTerm'
export function isLUFSMeterMode(value: unknown): value is LUFSMeterMode {
return typeof value === 'string' && LUFS_METER_MODES.includes(value as LUFSMeterMode)
}
export function isLUFSMeterReadout(value: unknown): value is LUFSMeterReadout {
return typeof value === 'string' && LUFS_METER_READOUTS.includes(value as LUFSMeterReadout)
}
+1 -1
View File
@@ -51,7 +51,7 @@ export const SCOPE_LABELS: Record<ScopeKind, string> = {
vectorscope: 'Vectorscope',
spectrogram: 'Spectrogram',
vumeter: 'VU Meter',
lufsmeter: 'LUFS Meter',
lufsmeter: 'Loudness Meter',
waveform: 'Waveform',
nowPlaying: 'Now Playing',
}
+3 -2
View File
@@ -1,7 +1,7 @@
import type { VectorscopeMode } from '../renderer/visualizers/Vectorscope'
import type { SpectrogramClarityMode, SpectrogramScaleMode } from './spectrogram'
import type { VUMeterMode, VUMeterOrientation } from './vumeter'
import type { LUFSMeterMode } from './lufsmeter'
import { DEFAULT_LUFS_METER_READOUT, type LUFSMeterMode, type LUFSMeterReadout } from './lufsmeter'
import { DEFAULT_WAVEFORM_MODE, type WaveformMode } from './waveform'
import { DEFAULT_SPECTRUM_PEAK_INFO_MODE, type SpectrumPeakInfoMode } from './spectrum'
@@ -44,6 +44,7 @@ export interface ScopeSettings {
}
lufsmeter: {
mode: LUFSMeterMode
readout: LUFSMeterReadout
}
waveform: {
mode: WaveformMode
@@ -66,7 +67,7 @@ export const DEFAULT_SCOPE_SETTINGS: ScopeSettings = {
vectorscope: { mode: 'lissajous', multiband: false, showGrid: true, persistence: 0.10, lineWidth: 1.5 },
spectrogram: { fftSize: 2048, scrollSpeed: 2, clarityMode: 'sharper', scaleMode: 'log', colorScheme: 'heat' },
vumeter: { mode: 'bar', orientation: 'horizontal' },
lufsmeter: { mode: 'bar' },
lufsmeter: { mode: 'bar', readout: DEFAULT_LUFS_METER_READOUT },
waveform: { mode: DEFAULT_WAVEFORM_MODE, scrollSpeed: 1, multiband: false },
nowPlaying: {
showCoverArt: true,