Download Latest Version Lyrimuse v1.10.0 -- macOS Desktop Lyrics for Apple Music _ Spotify source code.zip (31.8 MB) Google Add to Preferred Sources
Home / v1.2.0
Name Modified Size InfoDownloads / Week
Parent folder
appcast.xml 2026-08-03 961 Bytes
Lyrimuse-v1.2.0-macos.zip 2026-08-03 8.7 MB
Lyrimuse-v1.2.0-macos.zip.sha256 2026-08-03 92 Bytes
Lyrimuse v1.2.0 source code.tar.gz 2026-08-03 1.8 MB
Lyrimuse v1.2.0 source code.zip 2026-08-03 1.9 MB
README.md 2026-08-03 14.2 kB
Totals: 6 Items   12.4 MB 0

Lyrimuse v1.2.0 — New playback sources (NetEase, Spotify, auto-detect), full-lyrics window, Notch cover-art background, Last.fm overhaul, sync/reliability fixes

Added

  • NetEase Cloud Music and Spotify as new playback sources, alongside Apple Music and QQ Music (4 total). An "auto-detect" option is also available: instead of picking one fixed player, it follows whichever app macOS currently considers the Now Playing focus.
  • Playback control buttons and global hotkeys (play/pause/next/previous) now actually work for QQ Music and NetEase Music — they used to silently always control Apple Music regardless of the selected player.
  • A new "Lyrics Window" — a real title-barred, resizable window showing the full lyric sheet for the current track with auto-scroll to the current line (word-level karaoke highlighting included), unlike the existing borderless one-line overlays. Includes a pseudo-fullscreen toggle, an always-on-top toggle, and a "back to current line" button. Openable from the menu bar, Settings, or a configurable hotkey.
  • The Notch/Dynamic-Island lyrics card gained a fourth style, "Follow Cover Art" — background is the current track's blurred, dimmed album art instead of a flat color.
  • Last.fm is now a fully first-class account: merged into a single API Key/Secret setup (previously two separate credential sets for reading vs. writing), promoted out of the collapsed "Labs" section into the main Accounts list, given its own onboarding step, and the browser authorization step now returns to the app automatically instead of requiring a manual "I've authorized, continue" click.
  • Manual lyric search results now stream in as each of the 5 sources answers, instead of waiting for all of them (or a 20s timeout); each candidate now also shows its matched title/artist/album and a cover thumbnail, so a mismatched pressing/live version/compilation is visible before picking it. A universal cover-art fallback (via iTunes Search) now fills in candidates from sources that don't carry their own artwork.
  • "Auto-launch the other app" (Lyrimuse <-> current player) is now a configurable, bidirectional companion-launch feature, off by default.
  • A network-down indicator for lyric search: if enough recent requests failed outright, the search sheet now shows "network seems down" with a retry button instead of a bare "nothing found".
  • A one-time "press and hold to drag" hint the first time the floating overlay is unlocked.
  • Diagnostics export button shown when the background collector service fails to start, plus a short in-app explanation of why.

Changed

  • Canonical artist-name resolution now tries MusicBrainz first, before the existing per-track NetEase/QQ matching — fixes the same artist showing under inconsistent names across different tracks (e.g. some tracks by "Crowd Lu" resolving to 卢广仲, others not).
  • Player-related settings (player selection, Automation permission, background service toggle, launch coordination) moved out of General into their own dedicated tab.
  • The Settings "外观"/"歌词展示" sections now explain which display mode each setting actually affects, and the "歌词在线匹配" sub-sections now correctly hide when that toggle is off (previously stayed interactive with no visible effect).
  • Toggling several settings in quick succession (in the Lyrics/Accounts tabs) now triggers a single debounced collector restart instead of one restart per toggle.
  • Menu bar dropdown reorganized: window-opening items ("Lyrics Manager", "Lyrics Window") separated from app-info items ("Check for Updates", "About") with a divider.
  • Various copy trims and simplifications across Last.fm settings, the shortcut recorder, and general UI text (dropped trailing periods app-wide).

Fixed

  • The lyrics time-offset adjustment (menu bar "提前"/"延后") wasn't visibly updating — the menu title and reset button read from a mismatched cache key and always showed zero, even though the offset was actually being applied.
  • Word-level karaoke fill could stall partway through a word and jump to the next one once a lyrics time-offset was set — the fill-progress calculation wasn't applying the same offset used to decide which word is current, so the two disagreed. Affects the floating overlay, Notch lyrics, and the new Lyrics Window.
  • The floating overlay and Notch lyrics "show" toggles didn't persist — turning either off, then quitting and reopening the app, would silently turn it back on (and could visually cover the menu bar, since the Notch window sits above menu-bar level).
  • QQ Music's lyric-sync timing drift/jitter fix (word-level fill smoothing) extended and hardened; a duration-match scoring bug that could rank a worse lyric candidate above a better one (from a stray trailing blank line, or an overly strict tier cutoff) is fixed.
  • Global hotkeys and the onboarding "next" button could each leave the app in an inconsistent state: hotkeys for the floating overlay would silently spawn it even when only the Notch style was enabled; onboarding let you finish without granting Music.app automation permission with no warning.
  • Playback-control buttons/hotkeys triggering the macOS automation permission prompt from a background thread (a known hang risk) — moved to a safe async check with an audible failure beep instead of silent no-ops.
  • Auto-detect mode with Apple Music selected no longer doubles per-poll latency (was synchronously chaining a second AppleScript call every cycle; now refreshes a cached high-precision reading in the background).
  • Album/artist filters in Lyrics Manager no longer show traditional- and simplified-Chinese spellings of the same name as separate duplicate entries.
  • Deleting a lyrics entry in Lyrics Manager could get silently resurrected the next time the background collector restarted — it deleted the exported .lrc file after restarting the collector instead of before, so the collector's own startup import could see the file still on disk and re-add the entry.
  • Cover art could show a wrong, mismatched cover for tracks NetEase Music's catalog has no entry for at all (rights-withdrawn artists) — the QQ Music fallback had no album awareness and could land on a random compilation instead of the actual release. Now tries Apple Music's more album-aware lookup first (already queried for the "open in Apple Music" link, so no extra network cost), and QQ's own fallback is now album-scored too.
  • A YRC word-timing parsing bug could leak raw timestamp digits into displayed lyrics as literal text, for lines containing a malformed timestamp tuple missing its third field — surfaced by a real track's cached data. A related, narrower bug (word text with a literal "(" in it, e.g. a spoken "(oh)", getting silently dropped) is fixed too.
  • A handful of smaller reliability fixes: a background-service install/uninstall race; a thread leak in the manual lyric search process; and the floating overlay's height/width could be clamped against the wrong screen in a multi-monitor setup.

新增

  • 新增网易云音乐、Spotify 两个播放源,加上原有的 Apple Music、QQ 音乐,共 4 个;另新增"自动识别"选项——不用手动指定固定播放器,跟随 macOS 当前系统级 Now Playing 焦点自动切换。
  • 播放控制按钮和全局快捷键(播放/暂停、上一首、下一首)现在对 QQ 音乐、网易 云音乐也能真正生效——此前不管选的是哪个播放器,一直在悄悄控制 Apple Music。
  • 新增"歌词窗口"——一个正经的、带标题栏、可缩放的独立窗口,展示当前歌曲的 完整歌词列表并跟随播放自动滚动高亮当前行(含逐字高亮),跟悬浮歌词/灵动 岛那种只显示一句的无边框浮层完全不同。附带伪全屏、置顶两个工具栏开关,以 及"回到当前播放"按钮。可从菜单栏、设置页或自定义快捷键打开。
  • 灵动岛歌词新增第 4 种风格"跟随封面"——背景改用当前歌曲专辑封面的模糊压 暗效果,不再是纯色。
  • Last.fm 账号全面升级为一等公民:读写凭证合并成一套 API Key/Secret(此前 要分别配置两套),从折叠的"实验室功能"区移到常驻可见的"账号"列表,新增 专属引导步骤,网页授权完成后会自动跳回 App,不再需要手动点"我已完成授 权,继续"。
  • "歌词管理"里的联网搜索候选歌词,现在五个源谁先答复就先流式展示出来,不 用等全部返回或超时;每个候选还会显示匹配到的标题/歌手/专辑和封面缩略 图,方便识别选错版本(不同录音版本/现场版/精选集)的候选;新增通用封面 兜底(走 iTunes 搜索),补齐原本没有封面字段的来源。
  • "自动联动启动"(Lyrimuse 与当前播放器互相唤起)现在是可配置的双向开关, 默认关闭。
  • 联网搜索歌词新增"网络似乎不通"提示——最近请求大面积失败时,弹窗会给出这 个提示和重试按钮,而不是笼统地显示"没找到候选"。
  • 首次解锁悬浮歌词位置时,新增一次性的"长按即可拖动"提示。
  • 后台常驻服务启用失败时,新增"导出诊断信息"按钮和简短的失败原因说明。

优化

  • 歌手名归一化现在优先走 MusicBrainz 解析,再退回原有的逐曲网易云/QQ 匹 配——修复了同一个歌手在不同歌曲下显示成不一致名字的问题(比如部分"Crowd Lu"标注的歌曲能正确解析成"卢广仲",另一些却不能)。
  • 播放器相关设置(选择播放器、Apple Music 自动化权限、后台服务开关、启动 联动)从"通用"里拆分出来,独立成一个设置页。
  • 设置页"外观"/"歌词展示"两个分组现在会说明每项设置具体影响哪种展示形 式;"歌词在线匹配"关闭后,下面依赖它的子分组现在会正确跟着隐藏(此前 关闭开关后这些子项仍可正常交互,调了却毫无效果)。
  • 在"歌词"/"账号连接"设置页连续快速切换多个开关,现在只会触发一次合并后 的后台服务重启,不再是每切一次开关就重启一次。
  • 菜单栏下拉菜单重新分组:"打开歌词管理""打开歌词窗口"这类窗口入口,跟 "检查更新""关于"这类了解 App 本身的入口之间加了分隔线。
  • Last.fm 设置文案、快捷键录制控件等多处文字精简(全局去掉了说明性文字结 尾多余的句号)。

修复

  • 修复歌词时间轴校准(菜单栏"提前"/"延后")没有可见反馈的问题——菜单标题 和"重置"按钮实际读取的是一个拼错的缓存 key,永远显示成"未校准",尽管校 准值本身其实已经生效。
  • 修复设置了歌词时间轴偏移后,逐字歌词填色会在唱到一半时卡住、然后跳到下 一个字的问题——填色进度的时间基准没有加上跟"判断当前字"用的同一份偏移 量,两者对不上。影响悬浮歌词、灵动岛歌词,以及新增的"歌词窗口"。
  • 修复悬浮歌词、灵动岛歌词的"显示"开关不会持久化的问题——关闭其中任意一 个后退出重开 App,会被无声地重新打开(灵动岛因为窗口层级高于系统菜单 栏,重新出现时还会挡住菜单栏图标)。
  • 巩固了 QQ 音乐歌词同步计时抖动的修复(逐字填色平滑);修复歌词候选时长 匹配打分的一个 bug——一行多余的空白结尾行、或者过严的档位分界,都可能让 更差的候选排到更好的候选前面。
  • 修复全局快捷键和引导流程各自的一处状态不一致:只开启了灵动岛歌词、关闭 了悬浮歌词时,悬浮歌词的快捷键依然会把它凭空创建出来并常驻显示;引导流 程此前可以在没有真正拿到 Apple Music 自动化权限的情况下直接走完,没有任 何提示。
  • 修复播放控制按钮/快捷键触发 Apple Music 自动化权限弹窗时,可能在后台线 程发起(有据可查的潜在卡死风险)的问题——改成安全的异步检查,检查未通过 时用提示音代替静默无反应。
  • 修复"自动识别"模式下选中 Apple Music 时,每次轮询耗时翻倍的问题(原来会 同步再等一次 AppleScript 调用;现改为后台缓存刷新更高精度的读数)。
  • 修复"歌词管理"的专辑/歌手筛选下拉框,把同一个名字的繁体、简体写法当成两 条重复条目分别显示的问题。
  • 修复"歌词管理"里删除一条歌词记录,可能在后台采集器下次重启时被悄悄复活 的问题——原来是先重启采集器、再删已导出的 .lrc 文件,顺序反了,采集器 启动时读到磁盘上文件还在,会重新把这条记录导入回去。
  • 修复网易云音乐曲库整个查不到某个歌手(版权下架)时,封面可能显示成完全 不相关的精选集/合辑封面的问题——QQ 音乐兜底那一步原来没有专辑感知,可能 随手选中一个不对版的合辑。现在优先改用 Apple Music 的专辑感知匹配(本来 就已经在为"在 Apple Music 打开"这个跳转链接查一遍,不产生额外网络开销), QQ 音乐这条兜底路径本身也补上了按专辑打分。
  • 修复逐字歌词解析在遇到缺失第三段标记的畸形时间戳元组时,会把裸时间戳数 字当成文字原样显示出来的问题——由真实缓存歌词数据发现;顺带修复一个更 小范围的相关问题(词文字里含字面"("时,比如口白"(oh)",会被静默丢字)。
  • 若干可靠性小修复:修复后台服务安装/卸载的一处竞态;修复联网搜索候选歌词 子进程的一处线程泄漏;修复悬浮歌词的高度/宽度在多屏环境下可能被夹到错误 屏幕范围的问题。

Full Changelog: https://github.com/Yudaotor/lyrimuse/compare/v1.1.0...v1.2.0

Source: README.md, updated 2026-08-03