Skip to content

Releases: xixifu018/LyricDisplay

v1.2.0

Choose a tag to compare

@xixifu018 xixifu018 released this 18 Oct 11:45

洛雪音乐(LX Music)歌词显示方案,包含两个独立实现。

本次更新:逐字歌词 + 窗口置顶/置底

逐字歌词(跟着人声一个字一个字亮)

洛雪 /lyric-all 返回的 lxlyric 是字级时间轴(AWLRC),现在优先用它:

  • 已唱的字亮白、未唱的字变灰,正在唱的那个字是白→灰的柔和过渡(整字硬切会有打字机感,之前取满一个字宽的渐变又会让当前字发黑)
  • 中文按单字切、拉丁文按整词切,上游怎么切就怎么显示
  • 没有字级时间轴的歌自动回退到普通 LRC 逐行显示

窗口层级三档(互斥)

  • 窗口置顶(默认,盖住其它窗口)
  • 正常(两个开关都关,随激活顺序排)
  • 窗口置底(让其它窗口盖住;这是原「壁纸模式」改名而来,它从来没并入壁纸)

三个入口都能切:托盘菜单两项、全局热键(置顶 Ctrl+Alt+T / 置底 Ctrl+Alt+B,可在设置面板改)、设置面板「锁定」页的互斥开关。

与「锁定」是两件正交的事:锁定管能不能点,层级管被谁遮挡,可以任意组合。

修复:切到纯音乐后,歌词还停在上一首

洛雪切歌时 /status 先变、/lyric-all 后变,旧代码会把上一首的歌词当成新歌的缓存住。现在取回歌词后会校验归属(标题相似度、原文是否完全相同、当前行是否来自旧歌词),不匹配就丢弃并在下一轮重取;重试仍失败则清空,宁可显示歌名也不显示错的歌词。同时给轮询加了串行保护,避免重叠线程互相覆盖缓存。

设置面板

  • 说明文字改为 11px 小字,不再被正文样式覆盖
  • 修掉「说明文字最后一行被裁掉」的问题(按真实宽度重算折行高度)

使用前提

  • LX Music 需开启开放 API:设置 → 基本设置 → 开放 API(默认端口 23330)
  • 频谱功能需要系统正在播放音频

下载

  • LyricDisplay.exe — 双击运行,首次运行在同目录生成 settings.json
  • 插件请从源码安装,见 插件说明

已知限制

  • 仅支持 Windows(依赖 WASAPI 与 PyQt5)
  • 窗口位置、字体等设置保存在 exe 同目录的 settings.json
  • 锁定状态不持久化:每次启动都是未锁定,避免"锁着启动、不知道怎么解锁"
  • 桌面图标仍盖不住「置底」的浮窗(图标在更深的窗口分支,z 序跨不过去)
  • 旧配置键 wallpaper_mode / hotkey_wallpaper 会在首次读取时自动迁移

v1.1.0

Choose a tag to compare

@xixifu018 xixifu018 released this 12 Oct 14:23

洛雪音乐(LX Music)歌词显示方案,包含两个独立实现。

本次更新:窗口锁定防误触

开着浮窗打游戏时鼠标容易扫过窗口造成误触(issue #1),现在可以锁定:

  • 锁定后点击穿透 —— 窗口加 Qt.WindowTransparentForInput,鼠标消息不再投递给本窗口,点击与拖动直接落到下面的程序;拖动、双击换边、右键菜单、点封面同时失效
  • 三种解锁方式,互为保险,不会出现"锁死"的死局:
    • 鼠标悬浮 N 秒(1~10 秒可配)
    • 全局热键(默认锁定 Ctrl+Alt+L / 解锁 Ctrl+Alt+U,可在设置面板改)
    • 托盘图标右键菜单(兜底出口)
  • 热键冲突实时检测:区分「可用」「当前已在用(本程序自己的)」「已被系统或其他程序占用」三态;两个框填成同一组合会直接拦下(否则锁定键会永远失效)
  • 单实例限制:同时只允许跑一个,重复启动会提示后自行退出;从源码跑和跑 exe 也互斥
  • 设置面板拆成三页:外观 / 功能 / 锁定,高度按最高的一页自动算出,切换页签窗口大小不变

使用前提

  • LX Music 需开启开放 API:设置 → 基本设置 → 开放 API(默认端口 23330)
  • 频谱功能需要系统正在播放音频

下载

  • LyricDisplay.exe — 双击运行,首次运行在同目录生成 settings.json
  • 插件请从源码安装,见 插件说明

已知限制

  • 仅支持 Windows(依赖 WASAPI 与 PyQt5)
  • 窗口位置、字体等设置保存在 exe 同目录的 settings.json
  • 锁定状态不持久化:每次启动都是未锁定,避免"锁着启动、不知道怎么解锁"
  • 解锁热键若与别的程序冲突,悬浮与托盘仍可用

v1.0.0

Choose a tag to compare

@xixifu018 xixifu018 released this 09 Oct 14:56

洛雪音乐(LX Music)歌词显示方案,包含两个独立实现。

LyricDisplay — PyQt5 桌面浮窗

  • 无边框置顶浮窗,拖动靠近屏幕边缘自动吸附(顶部/底部,双击切换)
  • 单行 / 双行歌词模式,切句带升起 / 滚动动画
  • 真实音频频谱:WASAPI 回环捕获 + FFT,48 根七彩频谱条 + 峰值亮点
  • 圆形旋转封面,点击封面切换播放 / 暂停
  • 可视化设置面板:字号、文字/背景颜色、透明度、封面与频谱开关
  • 打包为单文件 exe,无需安装 Python

plugins/dsh-whalegirl-lyric — DSH Web GUI 插件

  • 鲸鱼娘形象 + 会话气泡歌词,可拖动到任意位置
  • 三种形态:默认收起 / 展开控制区 / 收成胶囊
  • SSE 推送即时响应切歌(官方推荐做法),轮询提供进度基准
  • 歌曲封面同源代理、超长歌曲名滚动、播放控制

使用前提

  • LX Music 需开启开放 API:设置 → 基本设置 → 开放 API(默认端口 23330)
  • 频谱功能需要系统正在播放音频

下载

  • LyricDisplay.exe — 双击运行,首次运行在同目录生成 settings.json
  • 插件请从源码安装,见 插件说明

已知限制

  • 仅支持 Windows(依赖 WASAPI 与 PyQt5)
  • 窗口位置、字体等设置保存在 exe 同目录的 settings.json