Releases: SounDoer/PLVS
Releases · SounDoer/PLVS
Dev build 0.4.0-dev.7bd16c1
Unofficial development build — for testing only, not an official release.
- Branch:
main - Commit: 7bd16c1
This Pre-release is rolling: every dev build overwrites it, so it
always holds the latest build only.
v0.4.0
Added
- Loudness: replace reference line with over-reference gradient on M/ST curves
- UI: add Focus View controls
- Layout: lower panel drag-resize minimums to reduce stuck feeling
- Release: auto-append bilingual install guide to GitHub Release notes
Changed
- UI: unify Devices toolbar picker with other popover buttons
Fixed
- Settings: allow free editing of the loudness reference input
- UI: keep Focus View controls visible during popovers
- UI: allow Focus View frameless window controls
安装
Windows
- 安装版:下载
PLVS_0.4.0_x64-setup.exe,双击运行。 - 便携版:下载
PLVS-v0.4.0-x64-portable.exe,直接运行,无需安装。 - 首次运行时 SmartScreen 可能拦截(未代码签名),点击「更多信息」→「仍要运行」。
macOS (Apple Silicon)
- 下载
PLVS-v0.4.0-aarch64.dmg,打开后将 PLVS 拖到「应用程序」。 - 首次打开若被 Gatekeeper 拦截(未签名),在终端执行:
xattr -cr /Applications/PLVS.appInstallation
Windows
- Installer: Download
PLVS_0.4.0_x64-setup.exeand double-click to run. - Portable: Download
PLVS-v0.4.0-x64-portable.exeand run directly — no installation required. - SmartScreen may warn on first launch (unsigned build). Click "More info" → "Run anyway".
macOS (Apple Silicon)
- Download
PLVS-v0.4.0-aarch64.dmg, open it and drag PLVS to Applications. - If Gatekeeper blocks the app on first open (unsigned build), run in Terminal:
xattr -cr /Applications/PLVS.appv0.3.7
Added
- Presets: settings-managed view snapshots
- Presets: toolbar popover for preset management (moved out of Settings)
Changed
- Presets: remove Presets block from SettingsPanel (moved to toolbar)
- UI: update icon tooltips
Fixed
- Presets: clarify rename and active row layout
- UI: restore missing PresetsPopoverContent import in App.jsx
- UI: improve presets popover accessibility
- Engine: reduce retained history memory
v0.3.6
Added
- Window: persist window geometry on move/resize
- Window: inject persisted state pre-paint and restore window bounds
- Window: add window-bounds clamp helper with tests
- Persistence: select plugin-store backend under Tauri
- Persistence: add sync-cache plugin-store backend
- Persistence: clean up legacy storage keys on boot
- Persistence: add one-shot legacy-key cleanup helper
- Persistence: add settings/workspace domain stores and exportAll/resetAll
- Persistence: add createDomainStore factory
- Persistence: add localStorage backend
Changed
- Persistence: single-source panelControls in workspace state
- Persistence: move theme/referenceLufs/channelLabelOverrides to settings domain
- Persistence: move closeAction/windowPinned to settings domain
- Workspace: remove focusId from the state model
- Layout: remove vestigial ratio layout (PanelSet, useLayoutDrag)
Fixed
- Engine: bound UI frame backlog with ack-based backpressure
- Panel: stabilize updatePanelControls to stop render loop on Start
- Window: restore bounds in physical pixels to stop HiDPI growth
- Window: store windowBounds under its own Rust-owned key
v0.3.5
Added
- Waveform: sub-block precision with pixel-decimated envelope rendering
- Waveform: column-indexed hover dBFS with window-based time label
- Waveform: absolute-anchored pixel-width decimation for scroll stability
- Spectrogram: absolute-anchored column-range mapping for anti-flicker
- Loudness: drag-reorder and reset for stats popover
- Loudness: configurable stats metric ordering via panel controls
Changed
- Waveform: grow envelope from the right like loudness history
- Spectrogram: emit exactly W columns (1:1 pixel) to fully anchor scroll
- Workspace: make all panel bodies non-selectable at the leaf shell
Fixed
- Vectorscope: hide center dot until capture starts
- Loudness: restore m max / st max / dialogue stats in snapshot mode
- Loudness: prevent text selection while dragging stat rows
- Spectrogram: derive bandCount from newest snap, not oldest visible
- Shell: make app chrome non-selectable at the shell inner container
v0.3.4
Added
- Spectrum: M/S + L/R channel overlay with dual-curve display
- Spectrum: peak-hold filled-area rendering (replaces dashed line)
- Spectrum: peak-hold toggle chip in panel header
- Spectrum: combined / L/R / M/S view toggle in panel header
- Spectrum: color-coded hover dB rows in overlay mode
- Spectrum: secondary curve legend and 2-row hover tooltip
Fixed
- Timeline: stabilize initial history viewport
- Workspace: show panel header chip in fullscreen overlay
- CI: resolve clippy errors on Windows
v0.3.3
Added
- Spectrum: multi-resolution PSD bank with crossfaded crossovers
- Spectrum: single-size STFT analyzer producing per-bin PSD
- Spectrum: log-frequency render grid
- Spectrum: drive display from multi-resolution bank with 4.5 dB/oct slope
- Spectrum: calibrate display offset to 0 dBFS reference
- Spectrum: timed peak-hold default (1.5s hold, 8 dB/s fall)
- Spectrum: show note name in spectrum and spectrogram hover
Fixed
- Audio: reset meters on format restart
- Loudness: tighten value-to-unit gap in stats rows
- Spectrogram: reuse live-frame grid centers for visual ticks
- Spectrum: remove octave smoothing + level fudge for honest, consistent dB
- Spectrum: reference display so full-scale sine reads ~0 dBFS
- Spectrum: pivot display slope at 1 kHz to avoid inflating the curve
v0.3.2
Fixed
- Prevent split resize overflow in layout
- Remove refs lint warnings in hooks
- Unify max stats on frame payload in loudness panel
- Reset Silero VAD state on dialogue gating toggle
- Portal hover tips outside scroll containers for better UX
- Reduce stats value size in loudness panel
Changed
- Documentation updates for dialogue-gated loudness feature and acknowledgements
v0.3.1
Added
- Dialogue-gated loudness metering with VAD speech sidechain
- Four dialogue metric rows: Coverage, Range, Avg. Offset, Active Now (with live speaking indicator)
- Hover hints on loudness stats panel rows and picker options
- Unified stats label/unit/hint registry as single source
- HoverTip component for consistent tooltips across the app
Changed
- Consolidated plvs.ui persistence into one adapter
- Extracted two-timeline reconciliation into resolveSnapshot
- Unified displayed text casing across the app
Fixed
- Clipped descenders and tight row gap in loudness stats
- Idle channel labels unified to L/R across all panels
- Stats/Layers popover sized to content so labels don't wrap
- Dialogue rows placed after Avg. Dynamics, not mid-list
- Empty placeholder unified to '-' for dialogue coverage/offset
- Build compatibility with tauri-utils (pinned time crate)
Removed
- Dialogue singing-counts-as-speech footnote hint
- Unwired meter-health and footnote dead code
v0.3.0
Added
- Auto channel layout detection with loudness weights for 5.0, 5.1, 7.0, 7.1 surround formats
- Channel label overrides in Settings for custom channel naming
- Refreshable update checks with manual refresh button
- Global keyboard shortcut for Clear action with customizable combo
- Keyboard shortcuts section in Settings
- ShortcutCapture key-recording control for recording custom shortcuts
Changed
- Removed manual Channel layout setting (now auto-detected from audio stream)
- Settings panel layout improvements (labels and controls on same line for dropdowns)
- Removed Settings title from panel header for cleaner UI
Fixed
- Channel labels for quad/LCR/5.0 layouts in auto mode
- Global hotkey now freed while recording a new combo
- Clear combos now reject collisions with in-app shortcuts