Releases: jayfunc/BetterLyrics
v1.3.462.0
An English version follows the Chinese
ℹ️ 更新日志
⭐ 新增
-
歌词导出功能:新增支持将歌词导出为
.lrc与.ttml格式文件的功能。 -
双向排版支持(横排/竖排):重构歌词布局逻辑(引入
LyricsLineRendererBase分支体系),全面支持垂直竖排歌词显示,并统一了两种排版方向的滚动、可见性判定与动画管线。 -
图层拖拽与动态排序:引入
LyricsLayerType与LyricsLayerConfig,支持在横排或竖排布局下通过鼠标拖拽调整图层顺序,并提供完整的本地化配置文本。 -
原生对齐与歌手识别:新增“保持原生对齐”设置。支持根据 TTML 内的
agentId自动为不同角色分配对齐方式(如:主唱靠左、和声靠右、合唱居中)。 -
3D 视差倾斜特效(Parallax Tilt):
- 引入
ParallaxTiltControl、ParallaxTiltEffect与EffectRendererBase。 - 为播放页(NowPlayingPage)的专辑封面及相关控件添加了精美的 3D 倾斜与悬停视差特效,支持多图层联动与单层控制开关。
- 引入
-
静态流体背景:为流体背景渲染器新增了“静态模式”可选配置。
-
全新侧边弹窗组件:引入通用组件
FloatSidePanel与SidePanelPlacement枚举,统一了设置页面中的各类弹窗面板,全面支持多方向弹出及点击遮罩层自动关闭。
🪄 调整
- 异步架构现代化重构:引入
Debouncer、AsyncPoller与AppUIThread,统一了全套防抖逻辑与 UI 线程调度方案,彻底移除了老旧的定时器相关实现。 - TTML 规格升级:深度适配
amll-ttml-db技术规范,大幅提升了 TTML 歌词解析、导出、逐字逐素(Syllables)、翻译、正音(Transliterations)及元数据的处理精度。 - 异步加载与容错体验:优化了歌词、字体以及音乐库的异步加载流程,增加了明确的加载状态提示与多重复试机制。
- UI 交互细节优化:
- 为歌词增加了边缘羽化(Edge-feathering)效果独立开关。
- 为
ExternalLinkButton增加了鼠标悬停动画。 - 优化了“关于”页面中的 QQ 群与赞助按钮的交互体验,并增强了鼠标事件处理结构。
🔧 修复
- 流体背景切歌逻辑修正:修复了在切换曲目时,静态模式下的流体背景不会跟随歌曲色彩同步更新的问题。
- TTML 歌曲名解析优化:优化了
musicName标签解析,优先采用第一个非空值作为歌曲标题,防止后续空标签或重复标签覆盖已有数据。 - 核心解析与动画修正:重构了
LyricsContentParser中的EnsureSyllables和EndMs判定逻辑,提升了长音节歌词在NowPlayingCanvas中的动画丝滑度与导出精确度。 - 清理与稳定性增强:移除了代码中冗余的
using引用与命名空间,精简了控制层 ViewModel 中的弹窗状态属性与方法,并修正了部分资源文件及应用清单(Manifest)的配置错误。
⬇️ 下载
-
Microsoft Store
-
侧载
ℹ️ Update Log
⭐ New Features
-
Lyric Export Support: Added support for exporting lyrics as
.lrcand.ttmlformat files. -
Vertical Layout Strategy: Decoupled layout structures by replacing LyricsLayoutManager with
LyricsLineRendererBase. The application now fully supports vertical lyric orientation alongside traditional horizontal displays, aligning scrolling, visibility, and animation pipelines for both modes. -
Drag-and-Drop Layer Reordering: Introduced
LyricsLayerTypeandLyricsLayerConfig, allowing users to reorder presentation layers dynamically via drag-and-drop for both horizontal and vertical layouts. -
Native Alignment via TTML Agent: Added a "Keep Native Alignment" setting to automatically assign line alignments (e.g., primary vocalist left, secondary vocalist right, chorus center) determined by the TTML
agentId. -
3D Parallax Tilt Effects:
- Implemented
ParallaxTiltControl,ParallaxTiltEffect, andEffectRendererBase. - Brought beautiful 3D tilt and hover parallax effects to the NowPlayingPage album art container with customizable multi-layer interaction toggles.
- Implemented
-
Static Fluid Background: Added a static configuration mode option to the fluid background renderer.
-
FloatSidePanel Component: Replaced SwitchPresenter with the new
FloatSidePanelcontrol andSidePanelPlacementinfrastructure, unifying settings popup panels with multi-directional animations and dismiss-on-mask-click behaviors.
🪄 Adjustments
- Modernized Async Architecture: Introduced
Debouncer,AsyncPoller, andAppUIThreadto unify debounce logic and UI thread scheduling codebase-wide; officially cleaned up legacy timer-related code. - TTML Specification Upgrade: Fully adapted to the
amll-ttml-dbspecification, significantly improving TTML lyric parsing, metadata extraction, and export routines for per-word syllables, translations, and transliterations. - Async Loading Experience: Refined asynchronous loading pipelines for lyrics, fonts, and the local music library by adding explicit loading states, optimized retry mechanisms, and supplemental localization assets.
- UI & Interaction Polish:
- Added an independent configuration toggle for lyrics layout edge-feathering effects.
- Added smooth hover animation states to
ExternalLinkButton. - Refined mouse event handling layouts and optimized QQ group and donation button click flows on the About page.
🔧 Fixes
- Static Fluid Background Switch: Fixed a bug where the static fluid background failed to refresh its palette colors when switching tracks.
- TTML musicName Parsing: Optimized
musicNametag parsing to prioritize the first non-empty value, preventing subsequent empty or duplicate tags from erroneously overwriting the active song title. - Parser Animation Smoothness: Refactored
EnsureSyllablesandEndMsprocessing insideLyricsContentParser, correcting long-syllable lyric animations inNowPlayingCanvasand enhancing export precision. - Maintenance & Code Cleanup: Purged redundant namespace imports and using directives, stripped obsolete panel visibility bindings from ViewModels, and resolved minor resource entry and app manifest configuration anomalies.
⬇️ Download
-
Microsoft Store
-
Sideload
- Sideload package is available in the assets
- Installation instructions https://betterlyrics.github.io/get-started/install
v1.3.452.0
v1.3.452.0
An English version follows the Chinese
ℹ️ 更新日志
⭐ 新增
- 数据统计仪表盘与热力图:在数据统计面板(StatsDashboardControl)中新增了类似 GitHub 的贡献热力图,包含完整的数据模型、UI 布局及本地化语言支持。
- 独立统计窗口支持:支持通过菜单项和特定协议(Protocol)将数据统计窗口作为独立窗口打开。
- GIF 播放动态控制:引入
GifHelper.cs并实现IsPlaying附加属性,支持通过数据绑定动态控制 GIF 的播放与暂停。 - 启动与媒体控制选项:新增了在启动时显示或隐藏欢迎屏幕(Splash Screen)的配置选项;新增了当媒体会话为空时自动隐藏窗口的功能。
- 关于页面重构与动态加载:重构了“关于”页面,改为从 CSV 文件动态加载贡献者和赞助者列表,大幅提升可维护性。
- 全新通用组件与转换器:
- 新增
ExternalLinkButton控件,完美适配 Fluent 设计体系并统一了外部链接样式。 - 新增
SafeNumberBox以优雅处理整数与NaN,替换了原有的布局相关数字输入框。 - 扩展了
IntToVisibilityConverter以支持阈值判定,并新增了NaNToZeroConverter。
🪄 调整
- 统计面板与常规 UI 样式统一:统一了数据统计卡片的次要文本颜色以提升视觉呈现效果;重构了设置页面的导航结构,移除了设置页侧边栏中旧版的统计入口;同时统一了卡片控件的样式。
- 歌词检索与界面体验优化:优化了歌词检索过程中的状态提示文本信息;对多个核心场景的 UI 布局和样式进行了微调与改进。
- 精简依赖与模块清理:清理了 AI 插件的相关依赖,并同步更新了子模块(Submodules)、赞助者列表及相关的文档(README/CONTRIBUTING)。
- 应用名称与本地化处理:支持通过包名区分应用名称(AppName);精简并修正了多语言资源文件,新增了“帮助”相关的本地化文本并修复了微小的翻译错误。
🔧 修复
- 调色板异常处理:修复了在获取主题主色调(Accent Colors)时因输入超出范围而导致崩溃的问题,现已支持自动回退至
PaletteGeneratorType.Auto。 - 任务栏挂钩兼容性增强:优化并缓存了任务栏的
AutomationElement,增强了任务栏 Hook 的兼容性。 - 歌词渲染与布局修复:优化了歌词渲染逻辑,修复了在切换时界面布局重新排列(抖动)的问题。
- 稳定性与异常保护:为媒体管理模块引入了异常保护机制,提升了软件运行时的稳定性;修复了曲目年份缺失时的缺省回退值。
⬇️ 下载
-
Microsoft Store
-
侧载
ℹ️ Update Log
⭐ New Features
- Contribution Heatmap & Stats Dashboard: Added a GitHub-style contribution heatmap to the StatsDashboardControl, complete with underlying data models, UI layouts, and localization support.
- Independent Statistics Window: Added support for launching the statistics dashboard as a standalone window via menus and protocol activations.
- Dynamic GIF Playback Control: Introduced
GifHelper.cswith anIsPlayingattached property to dynamically control GIF animation playback via data binding. - Startup & Window Management Options: Added a configuration option to toggle the visibility of the splash screen on startup, and an option to automatically hide the window when the media session is empty.
- Dynamic About Page Restructuring: Refactored the About page to load contributor and donor lists dynamically from CSV files, greatly improving maintainability.
- New Controls & Converters:
- Added
ExternalLinkButtonwith fluent theme adaptation for unified link styles. - Added
SafeNumberBoxto gracefully handle integers andNaNvalues, replacing layout-related NumberBoxes. - Added threshold support in
IntToVisibilityConverterand introducedNaNToZeroConverter.
🪄 Adjustments
- Stats Dashboard & General UI Refinement: Unified the secondary text color across statistics cards to improve data visualization, streamlined the navigation by removing the legacy statistics entry from the settings sidebar, and unified card control styles.
- UX & Layout Optimizations: Improved the status prompt text during lyrics lookup, and optimized UI layouts and styling across several scenes.
- Dependency & Submodule Cleanup: Cleaned up AI plugin dependencies, updated submodules and sponsors, and removed the status table and contributor links from documentation (CONTRIBUTING.md/README.md).
- Application Branding & i18n: Supported package name differentiation for
AppName. Streamlined and corrected multi-language resource files, adding "Help" localization entries and fixing minor translation bugs.
🔧 Fixes
- Palette Helper Fallback: Fixed an issue where retrieving accent colors with an out-of-range input would cause errors; now safely falls back to
PaletteGeneratorType.Auto. - Taskbar Hook & Compatibility: Enhanced taskbar hook compatibility by caching the taskbar
AutomationElement. - Lyrics Rendering & Layouts: Optimized lyrics rendering logic and fixed an issue causing layout rearrangement upon switching.
- Stability & Robustness: Added exception protection for media management to prevent unexpected crashes, and corrected the track year fallback behavior for missing metadata values.
⬇️ Download
-
Microsoft Store
-
Sideload
- Sideload package is available in the assets
- Installation instructions https://betterlyrics.github.io/get-started/install
v1.3.443.0
v1.3.443.0
An English version follows the Chinese
ℹ️ 更新日志
⭐ 新增
- 系统托盘图标颜色切换:支持系统托盘图标在彩色与单色(黑白)之间手动切换,并支持跟随系统主题自动切换。
- 本地化语言支持:新增了意大利语(it)的国际化翻译支持。
🪄 调整
- 调色板算法与代码重构:优化了调色板算法,将相关参数从
bool重构为bool?以提供更灵活的业务逻辑控制;同时替换并新增了多套图标资源,优化了链接导航与代码结构。 - 文件扩展名与 MIME 类型处理优化:引入
MimeMapping依赖库,支持通过MimeUtility.GetMimeMapping动态获取 MIME 类型,移除了冗余的自定义方法;同时强制转换文件扩展名为小写,彻底避免因大小写不一致导致的识别问题。
🔧 修复
- 歌词窗口多项问题修正:修复了切换窗口时歌词窗口内容的闪烁问题,以及靠边停靠(Docked 模式)时歌词窗口位置错乱的问题。
- 崩溃与稳定性修复:修复了在开启多壁纸模式时可能导致应用程序崩溃的严重问题。
- 细节体验优化:修复了主题主色调(Accent Color)的计算器逻辑;修复了专辑封面缓存可能产生空文件名的问题;为曲目年份显示添加了缺省回退值(Fallback)。
⬇️ 下载
-
Microsoft Store
-
侧载
ℹ️ Update Log
⭐ New Features
- System Tray Icon Toggle: Added a toggle for color/monochrome system tray icons with support for automatic switching based on the system theme.
- Localization Support: Added i18n support for the Italian (it) language.
🪄 Adjustments
- Palette Algorithm & Refactoring: Optimized the palette algorithm parameters by refactoring from
booltobool?for improved flexibility. Replaced and added multiple sets of icon resources, optimized link navigation, and refined code structure. - File Handling & MIME Resolution: Optimized file extension handling and MIME type resolution by adding the
MimeMappingpackage dependency to dynamically fetch MIME types usingMimeUtility.GetMimeMapping. Enforced lowercase file extensions to eliminate case-sensitivity bugs and removed the redundant customGetMimeTypemethod.
🔧 Fixes
- Lyrics Window Issues: Fixed lyrics window content flashing when switching windows, and resolved the incorrect lyrics window positioning when in docked mode.
- Crash Fix: Fixed a critical bug where opening multiple wallpaper mode led to an application crash.
- General Enhancements: Fixed the accent color calculator, resolved an issue where the album art cache could generate empty file names, and added a fallback value for the track year display.
⬇️ Download
-
Microsoft Store
-
Sideload
- Sideload package is available in the assets
- Installation instructions https://betterlyrics.github.io/get-started/install
v1.3.436.0
v1.3.436.0
An English version follows the Chinese
ℹ️ 更新日志
⭐ 新增
- 无
🪄 调整
- 专辑封面淡出方向改用开始结束坐标设置
- 调整 Logo
🔧 修复
- 无
⬇️ 下载
- Microsoft Store
- 侧载
ℹ️ Update Log
⭐ New Features
- None
🪄 Adjustments
- Album cover fade-out direction changed to start and end coordinate settings
- Logo adjusted
🔧 Fixes
- None
⬇️ Download
- Microsoft Store
- Sideload
- Sideload package is available in the assets
- Installation instructions https://betterlyrics.github.io/get-started/install
v1.3.432.0
v1.3.432.0
An English version follows the Chinese
ℹ️ 更新日志
⭐ 新增
- 专辑封面淡出可选项
🪄 调整
- 无
🔧 修复
- 尝试修复本地封面匹配逻辑不完整的问题
- 修复播放源页面配置删除按钮显示不完整的问题
- 修复布局编辑器撤销重做功能无法成功应用的问题
⬇️ 下载
- Microsoft Store
- 侧载
ℹ️ Update Log
⭐ New Features
- Album cover fade-out option
🪄 Adjustments
- None
🔧 Fixes
- Attempted to fix incomplete local cover matching logic
- Fixed incomplete display of the delete button in the playback source page configuration
- Fixed inability to successfully apply the undo/redo function in the layout editor
⬇️ Download
- Microsoft Store
- Sideload
- Sideload package is available in the assets
- Installation instructions https://betterlyrics.github.io/get-started/install
v1.3.430.0
v1.3.430.0
An English version follows the Chinese
ℹ️ 更新日志
⭐ 新增
- 无
🪄 调整
- 无
🔧 修复
- 修复歌词切换窗口内容被裁切无法滚动的问题
- 修复布局编辑器画布行间距、列间距最小值未设限的问题
⬇️ 下载
- Microsoft Store
- 侧载
ℹ️ Update Log
⭐ New Features
- None
🪄 Adjustments
- None
🔧 Fixes
- Fixed the issue where the lyrics switching window content was cropped and could not scroll.
- Fixed the issue where the minimum values for row and column spacing on the layout editor canvas were not set.
⬇️ Download
- Microsoft Store
- Sideload
- Sideload package is available in the assets
- Installation instructions https://betterlyrics.github.io/get-started/install
v1.3.428.0
v1.3.428.0
An English version follows the Chinese
ℹ️ 更新日志
⭐ 新增
- 自定义布局编辑器:全新的可视化编辑工具,支持通过拖拽、调整网格等方式自由排版歌词、专辑封面及歌曲信息
- 布局预设系统:引入布局配置机制,支持多种预设模式的快速切换、导入与导出
- 多显示器管理:新增 “移动至显示器” 菜单,支持在多屏环境下快速迁移窗口
🪄 调整
- 任务栏模式重构:优化任务栏挂载逻辑,增强适配,提升稳定性
- UI/UX 改进:重排设置面板,整合专辑封面与歌词样式控制卡片
🔧 修复
- 修复歌词导出时间戳异常的问题(@PiYuanZhouLv)
⬇️ 下载
- Microsoft Store
- 侧载
ℹ️ Update Log
⭐ New Features
- Custom Layout Editor: A brand-new visual editing tool that allows you to freely arrange lyrics, album art, and track information through drag-and-drop and grid adjustments.
- Layout Preset System: Introduces a layout configuration mechanism, supporting quick switching, importing, and exporting of multiple preset modes.
- Multi-Monitor Management: Added a "Move to Monitor" menu for quickly migrating windows across multi-screen setups.
🪄 Adjustments
- Taskbar Mode Refactoring: Optimized taskbar docking logic and enhanced compatibility for improved stability.
- UI/UX Improvements: Reorganized the settings panel, consolidating album art and lyric style control cards.
🔧 Fixes
- Fixed an issue where lyric export timestamps were abnormal (@PiYuanZhouLv).
⬇️ Download
- Microsoft Store
- Sideload
- Sideload package is available in the assets
- Installation instructions https://betterlyrics.github.io/get-started/install
v1.2.398.0
v1.2.398.0
An English version follows the Chinese
ℹ️ 更新日志
⭐ 新增
- 雨滴背景效果
- 可选歌词是否自动换行(禁用自动换行将启用横向滚动功能)
🪄 调整
- 缩小选中歌词行鼠标需要悬浮的矩形区域的大小
🔧 修复
- Windows 10 系统中标题栏边界异常的问题(感谢 @YUZU384 提供的思路及参考实现)
- 双击标题栏后未正确记忆窗口状态的问题
- 播放源名称、图标匹配条件有误的问题
- 歌词行中线部分情况未对齐的问题
⬇️ 下载
- Microsoft Store
- 侧载
ℹ️ Update Log
⭐ New Features
- Raindrop background effect
- Option to enable or disable automatic line wrapping for lyrics (disabling automatic line wrapping will enable horizontal scrolling)
🪄 Adjustments
- Reduced the size of the rectangle where the mouse hovers over the selected lyrics line
🔧 Fixes
- Issue with abnormal title bar boundaries in Windows 10 (thanks to @YUZU384 for the idea and reference implementation)
- Issue with not correctly remembering the window state after double-clicking the title bar
- Issue with incorrect matching conditions for playback source name and icon
- Issue with misalignment of the lyrics line center line in some cases
⬇️ Download
- Microsoft Store
- Sideload
- Sideload package is available in the assets
- Installation instructions https://betterlyrics.github.io/get-started/install
v1.2.385.0
ℹ️ 更新日志 / Update Log
An English version follows the Chinese
⭐ 新增
- 歌词卡片现可支持固定在歌词窗口
🪄 调整
- 优化音乐库播放体验
🔧 修复
- 媒体库变更时歌曲进度重置为 0 的问题
- 壁纸模式下改变桌面壁纸时歌词窗口消失的问题
- 检查更新进度条未显示的问题
⭐ New Features
- Lyric cards can now be pinned to the lyrics window.
🪄 Adjustments
- Optimized music library playback experience.
🔧 Fixes
- Issue where song progress resets to 0 when changing media library settings.
- Issue where the lyrics window disappears when changing desktop wallpaper in wallpaper mode.
- Issue where the update check progress bar is not displayed.
⬇️ 下载 / Download
- 推荐 | Recommended 👉 https://apps.microsoft.com/detail/9P1WCD1P597R
- 下方资产 / Assets below 👇
v1.2.384.0
ℹ️ 更新日志 / Update Log
An English version follows the Chinese
⭐ 新增
- 歌词卡片现可支持固定在歌词窗口
🪄 调整
- 无
🔧 修复
- 壁纸模式多屏幕下位置变动的问题
- 内置播放器/音乐库相关问题
- 应用名检测匹配问题
⭐ New Features
- Lyric cards can now be pinned to the lyrics window.
🪄 Adjustments
- None
🔧 Fixes
- Fixed an issue with wallpaper position changing in multi-screen mode.
- Fixed issues related to the built-in player/music library.
- Fixed application name matching issue.
⬇️ 下载 / Download
- 推荐 | Recommended 👉 https://apps.microsoft.com/detail/9P1WCD1P597R
- 下方资产 / Assets below 👇