开发者逆向解析 Score Perfect 文件格式,构建 MusicXML 转换器
来源标题:Score Perfect to MusicXML Converter
一位开发者通过逆向工程解析了 Score Perfect(SPP)乐谱软件的文件格式,并据此开发出 MusicXML 转换器。由于 SPP 正式版不接受有效许可证密钥、鼠标输入被屏蔽,他改用运行在 Wine 下的 AI 生成自动化脚本操作界面来批量生成测试文件。他还发现 SPP 5 完全无法导入 MusicXML,SPP 6 和 7 则只能导入音符。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
)。它展示了 SPP 支持的每一种对象,并附有名称。这成了我参考的对象,用于识别小节线、力度记号、演奏法记号、琶音、滑音、八度记号和排练记号。 完整版的 SPP 不接受(有效的)许可证密钥。我仍然可以通过忽略弹窗在一定程度上使用它们。鼠标输入被阻止了,但键盘命令仍然有效。 我之前手工创建了许多测试文件,每个都有细微的变化,以找出特定数据存储在文件格式中的位置。这一次,我使用 AI 生成的自动化脚本,让 SPP 在 Wine 下运行。花了一些实验才搞对,但之后我可以编写脚本操作屏幕上的音乐键盘和所有按钮,生成更多的测试文件。我也可以扫描这些文件以查找差异,这加快了进程。 另一种研究数据存储方式的方法是创建包含我感兴趣功能的 MusicXML 文件,将它们导入 SPP,以 SPP 格式保存并分析结果。不幸的是,在 SPP 5 中导入完全无法工作,而 SPP 6 和 7 只导入了音符。 在某个时候,我认识了大部分标签,但并不总是清楚每个标签的作用。为了调查,我在 SPP 中对原始乐谱截图,添加或删除单个标签,再截一张图并比较两者。我也可以更改标签参数,看看特定值有什么效果。例如,我为同一首歌创建了六个版本,每个版本使用不同的谱号,以找出哪个值对应哪个谱号。
<section id=正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。