Skip to content

Releases: GaBoron/SPW-Lyrics

v1.2.0

Choose a tag to compare

@GaBoron GaBoron released this 19 Oct 12:15

主要更新

  • 新增“歌曲元数据编辑”窗口,可读取和修改本地歌曲信息、内嵌歌词,多值标签支持逐行填写。支持 MP3、FLAC、M4A、MP4、OGG、WAV 和 AIFF。
  • 支持从手动搜索结果、本地文件导入歌词,并转换为 TTML、LRC、增强 LRC 或 SPL 后写入歌曲。原始 TTML 保留注音、自定义标签及其他扩展信息。
  • 新增歌词增删、逐句与逐字时间和文本编辑,以及翻译、音译、主唱(左)、对唱(右)和背景人声设置;保留完整原文编辑,预览同步显示左右声部。
  • 支持 Ctrl 点选、Shift 连选及 Ctrl+A 全选,批量调整延迟、主唱/对唱、背景人声或删除歌词。

体验改进

  • 自动识别同时间戳的译文及可识别的音译;生成、转换 TTML 时自动换行缩进,保留逐字文本中的空格。
  • 修改先进入草稿,支持 Ctrl+S 写入、F5 重新读取和未保存修改提醒。元数据窗口快捷键默认未绑定,可在 SPW 中自行设置;底部提供 AMLL TTML TOOL 高级编辑入口。
  • 保存前后校验标签,写入失败时回退原文件,并保留未编辑的标签及封面。事务文件使用系统临时目录并在结束后清理,不在歌曲目录留下备份;兼容允许写入但禁止替换文件的播放器占用情况。

问题修复

  • 修复嵌套背景人声未独立解析的问题。

维护与文档

  • 统一内嵌歌词标签读取,元数据编辑与本地 TTML 加载共用标签兼容处理。
  • 将歌词转换、结构编辑、文件提交及窗口状态划分为独立模块,继续复用宿主 Compose/Skiko;共享窗口支持关闭前处理未保存的草稿。
  • 更新元数据编辑、格式兼容、文件写入、快捷键和安装说明。

安装方式

  • 下载 spw-lyrics-1.2.0.spmod,在 SPW 创意工坊中直接导入,不要解压。
  • 需要 SPW 1.19.0 / Workshop API dev23 / JVM 25;旧版可直接覆盖升级。SPW 1.18 用户继续使用 v0.4.0。

v1.1.2

Choose a tag to compare

@GaBoron GaBoron released this 18 Oct 06:51

问题修复

  • 修复 Linux 打开手动搜索或批量窗口时出现 UnsatisfiedLinkError / RenderNodeContext_nMake 的问题。窗口统一复用 SPW 自带的 Compose/Skiko,不再修改原生库加载路径。
  • 修复 QQ 音乐间歇搜索无结果的问题,例如 Shed a Light。现在同时检查 HTTP 与业务状态,主请求失败或没有候选时回退兼容接口;兼容两种返回格式,处理分组歌曲、重复及无效条目,保留候选数量限制,取消后不再发起回退请求。
  • 修复 AMLL 索引中存在歌曲、手动搜索却找不到的问题,例如 Be What You Wanna Be。结果先按输入关键词排序,再限制数量,手动检索不再被当前歌曲的外部 ID 锁定;保留全部歌名和专辑别名,支持部分词、单字及括号内关键词,并合并指向同一份 TTML 的重复结果。自动匹配仍执行原有安全校验,外部 ID 按所属平台匹配。

索引更新

  • AMLL 索引有效期由 24 小时缩短为 6 小时,刷新失败后的重试间隔由 1 小时缩短为 5 分钟。
  • 有可用缓存时先返回本地搜索结果,在后台刷新索引;没有可用缓存时才等待下载。并发搜索共用一次刷新,停用插件时取消后台任务并关闭相关资源。

安装与维护

  • Windows 和 Linux 使用同一个 spw-lyrics-1.1.2.spmod 安装包,需要 SPW 1.19.0。移除重复的 Compose/Skiko、Windows DLL 和 ICU 数据,减小安装包体积。
  • 构建时排除旧版遗留的原生资源,移除已不需要的同名依赖重命名处理。
  • 将 QQ 请求解析和 AMLL 索引检索拆为独立模块;同步 README 的平台、版本、安装与兼容性说明,以及构建环境、运行时、搜索、索引刷新和窗口崩溃排查文档。

升级时请完全退出 SPW,导入新的 .spmod 安装包后重新启动,以替换已加载的渲染运行时。

v1.1.1

Choose a tag to compare

@GaBoron GaBoron released this 18 Oct 01:48
  • 修复同时启用 AMLL into SPW 和 SPW Lyrics 时,TTML 接收成功后停止向 SPW 输出歌词,导致灵动词岛等插件读取错误的问题。现在保留原始 TTML 直传,同时持续提供 SPW 可读的歌词时间轴和翻译。(关联 Issue #12)
  • 更新使用说明、常见问题、开发文档及相关注释,明确两路歌词同时输出,以及接收状态对 SPW 歌词输出的影响。
  • 安装包为 spw-lyrics-1.1.1.spmod,需要 SPW 1.19.0。

v1.1.0

Choose a tag to compare

@GaBoron GaBoron released this 17 Oct 18:14

主要更新

  • 新增与 AMLL into SPW 的原始 TTML 互通。支持协议 1 的接收器启用后,直接传递未经修改的完整 XML,保留来源中的逐字时间、演唱者、背景人声、翻译、音译与注音;只有确认接收成功才跳过当次普通歌词输出。(Issue #12)
  • 本地同名和内嵌 TTML、内容为 TTML 的同名 .lrc、原始缓存命中、自动获取、手动选择与后台质量升级共用输出分流。保存单曲延迟时单独传递偏移,不修改 XML,也不重复叠加 SPW 全局偏移。(Issue #12)

体验改进

  • 后台检测接收器、协议、权限和注册变化,兼容两个插件的启用顺序;后启用或恢复权限时重新提供当前歌曲。接收器缺失、禁用、拒收或调用异常时恢复普通歌词,协商期间也保留普通输出。(Issue #12)
  • 使用宿主歌曲 ID、路径和选择代次校验,防止切歌或重新选择后的迟到结果覆盖当前歌词。“切回本地歌词”、恢复自动匹配、更换为普通歌词和停用插件时撤回外部结果;本地 TTML 被原生接收后不会误触发在线补词。(Issue #12)

维护与文档

  • TTML 缓存保留原始 XML 和解析文档,按需生成 SPL,保留普通播放器的恢复路径。缺少原始 XML 的旧 TTML 缓存会重新获取,手动选择与其他格式缓存继续保留。(Issue #12)
  • 分离原生接收器适配与歌词输出协调,通信仅使用 JVM 平台 MBeanServer 和 JDK 类型,无需引入对方 JAR 或启动网络服务。(Issue #12)
  • 安装包统一使用可直接导入的 .spmod 后缀;同步版本、下载文件名、使用说明、常见问题及开发说明,补充互通、缓存恢复、本地歌词优先级和偏移范围说明。

安装方式

  • 适用于 Windows x64 / SPW 1.19.0 / Workshop API dev23,使用宿主 JVM 25。
  • 下载 spw-lyrics-1.1.0.spmod,在 SPW“设置 → 创意工坊”中直接导入,不要解压;安装后重启 SPW。
  • SPW 1.18 用户请继续使用 v0.4.0。

已知限制

  • AMLL into SPW 自行读取的本地 TTML 优先于接口提供的结果,顺序为同名 .ttml、内嵌 TTML、同名 .lrc 中的 TTML、接口 TTML。接口传递的单曲偏移只作用于接口 TTML;需要使用在线选择时,请先移走优先的本地 TTML。

完整变化

v1.0.0

Choose a tag to compare

@GaBoron GaBoron released this 17 Oct 16:33
d85f4f0

主要更新

  • 面向 SPW 1.19.0 / Workshop API dev23,使用宿主 JVM 25,不再兼容旧版创意工坊接口。自动刷新适配新版歌词加载器,按当前歌曲 ID 请求重载,由宿主拒绝切歌后过期的刷新请求。(Issue #4;PR #8)
  • 手动搜索和批量处理窗口统一改用 Kotlin Compose Desktop,移除独立 WinUI/.NET 组件及其通信桥。两个窗口支持缩放、分别记住位置,手动搜索提供排序、预览和键盘操作,批量窗口支持重新读取曲库、选择范围、暂停、继续、停止及失败项重试。(Issue #10;PR #8)
  • 新增单曲歌词延迟,支持 -60000 到 60000 毫秒,逐行和逐字时间同步调整;预览随输入更新,保存后请求刷新,重启后保留。适用于插件在线歌词和转换后的本地 TTML,不修改原始时间轴。(Issue #11;PR #8)
  • 本地 TTML 在歌词加载阶段直接转换,支持同名 .ttml、内容为 TTML 的同名 .lrc 和音频内嵌歌词,无需等待在线搜索;普通本地歌词继续交给 SPW,转换失败保留原有加载流程。(Issue #5;PR #8)

行为调整

  • 移除 Apple Music 源,保留 AMLL TTML DB、QQ 音乐、酷狗音乐和网易云音乐。取消跨来源补充翻译与音译,仅使用所选歌词来源附带的内容,同时移除歌词首行的来源标识。(Issue #7;PR #8)
  • 在线歌词统一过滤词曲、制作人员信息和开头的歌名署名页;普通文本歌词保留来源自带的翻译。(PR #8)
  • “打开歌词搜索”默认快捷键仍为 Ctrl+Shift+M,自定义、冲突处理和全局绑定改由 SPW 管理,取消原插件内的快捷键开关。需要授予曲库读取和快捷键权限。(Issue #4;PR #8)
  • 更新歌词缓存格式,旧歌词缓存会重新生成,仍有效的手动匹配记录继续保留;原 Apple Music 手动选择需要改选其他来源。(PR #8)

问题修复

  • 修复网易云逐字歌词带 BOM 时可能丢失首句的问题;逐字结果没有有效歌词时,回退到同一来源的逐行结果。(Issue #6;PR #8)
  • 加强切歌后的歌曲身份校验,避免手动应用、切换策略或保存延迟误改其他歌曲;批处理任务固定各自的任务代次,避免旧任务干扰新任务。(PR #8)

维护与文档

  • 曲库读取、歌曲时长和当前歌曲信息改用宿主公开接口,曲库 ID 仅用于当前会话关联,移除 SQLite 依赖和本地时长探测。清理旧快捷键、旧 UI、翻译对齐、旧刷新回退、图标生成与对应构建残留。(Issue #4、#7、#10;PR #8)
  • 构建对齐 JDK/JVM 25、Kotlin / Compose compiler 2.4.20、Compose 1.12.1、Gradle 9.8.0 和 Workshop API/打包插件 dev23;加入本地歌词标签读取依赖,打包 Compose/Skiko 并独立加载渲染资源,处理依赖包重名并复用宿主 Kotlin 运行时。(PR #8)
  • 重新整理 README、使用说明、常见问题和开发说明,补充版本兼容性、权限、延迟与本地 TTML 操作,以及标签读取和在线查询的数据范围。(PR #8)

安装方式

  • 仅适用于 Windows x64 / SPW 1.19.0。从本 Release 下载 spw-lyrics-1.0.0.spmod,在 SPW“设置 → 创意工坊”中直接导入,不要解压;安装后重启 SPW。
  • 安装包包含插件依赖,无需额外安装 Java 或 .NET。
  • SPW 1.18 用户请继续使用 v0.4.0。

已知限制

  • 自动刷新仍依赖宿主内部接口。当前已完成本机 SPW 1.19 接口签名核对和隔离调用检查,真实宿主的完整交互场景仍需验证;若歌词已缓存却没有更换,可先切歌重试并反馈 SPW 版本。(Issue #4;PR #8)

完整变化

v0.4.0

Choose a tag to compare

@GaBoron GaBoron released this 15 Sep 13:11

主要更新

  • 新增歌词库批量处理窗口:可勾选歌曲批量搜索、替换与补充翻译,并显示总体/单曲进度和当前阶段。
  • 自动歌词会在最多 10 秒内先应用当前最佳结果,后台继续完成其余来源并在有更高优先结果时再次替换;逐字与逐词统一按卡拉 OK 级别优先,来源顺序为 AMLL、Apple Music、QQ、酷狗、网易云。
  • 手动搜索窗口支持快捷键启动、记住窗口位置,并优化自动填充与候选匹配。

体验改进

  • 优化多来源并发、翻译补充和缓存更新,已有翻译时不再进行无效翻译检索;可撤销跨来源补充的翻译。
  • Apple Music 改用可用的 LyricsPlus Apple 路由,避免旧查询接口超时,并保留逐字、翻译、音译与背景声数据。

问题修复

  • 修复手动应用歌词后误报自动获取失败、渐进二次应用不生效,以及高优先歌词仍等待超时的问题。

安装方式

  • 已安装旧版可直接在 SPW 的“设置 → 创意工坊”中导入本 ZIP 覆盖安装,无需解压。

v0.3.0

Choose a tag to compare

@GaBoron GaBoron released this 19 Aug 13:11

主要更新

  • 新增 Ctrl+Shift+M 手动搜索快捷键:让 SPW 保持在前台即可打开手动搜索窗口;窗口已打开时再次按下会回到现有窗口。
  • 插件设置新增“通过快捷键开启”开关,默认开启,可随时启用或停用快捷键监听。

问题修复

  • 改进跨来源翻译对齐:主歌词与翻译的分行方式不一致时,也会按时间关系合并,减少翻译错位、缺失或对应错误。
  • 修复 AMLL 索引缓存刷新不可靠的问题;索引过期或更新失败后会按策略重新获取,避免长期使用旧索引或频繁重复下载。

安装方式

  • 下载 spw-lyrics-0.3.0.zip,不要解压,随后在 SPW 的“设置 → 创意工坊”中使用本地安装或导入模组入口选择该文件。
  • 已安装 0.2.0 时可直接覆盖安装。

v0.2.0

Choose a tag to compare

@GaBoron GaBoron released this 11 Aug 13:24

主要更新

  • “自动替换歌词”新增三种行为:始终优先使用插件歌词、仅在本地无歌词时补充、仅手动选择时替换。
  • 新增 Apple Music 歌词来源,优先级位于 AMLL TTML DB 之后;支持自由关键词搜索、不同地区的曲名和歌手别名,并将繁体歌词转换为简体。
  • 调整多来源选择策略:先检查所有来源的逐字歌词,再考虑逐行和普通歌词;AMLL 或 Apple Music 主歌词缺少翻译时,可从 QQ 音乐、酷狗音乐或网易云音乐补充。

体验改进

  • 手动搜索会显示实际解析后的歌词类型,并可一键清除单曲手动锁定、恢复自动匹配。
  • 缓存按“歌词”和“手动匹配”分类,使用可读的“歌手 - 曲名”文件名,便于按歌曲清理。
  • 改进 Apple Music 歌词的网络连接和匹配容错,同时保持对 Live、Remix、伴奏等版本冲突的防误配检查。

问题修复

  • 恢复网易云音乐搜索与歌词获取,并保留逐字、逐行、翻译和音译数据。
  • 修正 QQ 音乐、酷狗音乐和网易云音乐候选的逐字/逐行类型显示。

安装方式

  • 下载 spw-lyrics-0.2.0.zip,不要解压,随后在 SPW 的“设置 → 创意工坊”中使用本地安装或导入模组入口选择该文件。
  • 可以直接覆盖安装 0.1.0。首次运行时旧版歌词缓存和手动匹配记录会自动清理,之后按新的可读目录结构重新建立。

v0.1.0

Choose a tag to compare

@GaBoron GaBoron released this 10 Aug 12:54

✨ 首个公开版本

SPW Lyrics 会在播放歌曲时自动寻找更完整的歌词,并尽量保留逐字时间轴、翻译、音译、对唱和背景歌词。

  • 🔎 按 AMLL TTML DB、QQ 音乐、酷狗音乐、网易云音乐的顺序自动搜索
  • 🎯 综合歌名、歌手、专辑和歌曲时长进行匹配,减少错误版本
  • 🎤 支持逐字、逐行、普通歌词,以及翻译、音译和多行同时播放
  • 🖱️ 提供 WinUI 手动搜索窗口,可预览候选、指定来源或切回本地歌词
  • 💾 缓存已经找到或手动选择的歌词;未匹配成功的歌曲下次播放会重试

📥 安装方法

  1. 下载下方的 spw-lyrics-0.1.0.zip,不要解压。
  2. 打开 SPW 的“设置 → 创意工坊”。
  3. 使用本地安装或导入模组的入口选择 ZIP。
  4. 如果插件没有立即出现,请重启一次 SPW。

ZIP 已包含全部运行组件,普通用户不需要另外安装 Java 或 .NET。

⚠️ 兼容性

已在 SPW 1.16.2 Steam 版、Windows x64 上测试。SPW 创意工坊接口仍处于试验阶段,后续 SPW 更新可能影响兼容性。