ScMIDI 是一个由 C++11 与 Scratch3 写成的项目。
其可以在 Scratch 程序中播放由 C++ 程序处理过的 MIDI 文件。
该 Scratch 程序通过克隆体缓存技术,可以同时播放大量音符,而保持准确的节奏。即使不开加速模式,也几乎不会延迟。
其他链接
版权
该程序全部遵循 CC-BY-SA 4.0 开源协议(参阅 LICENSE)。
程序使用了如下库/其他代码:
- Qt 5.12:界面
- Midifile:解析 MIDI 数据
- MIDI Music Player:音色映射数据
使用教程
如果你想二次开发、自己构建、查看源码等,请查看 Gitee 仓库。
以下只说使用。
获取程序
C++ 部分
下载 C++ 部分程序,以转换 MIDI 文件为特殊格式。
如果你只想查看现成的少数示例歌曲,则不需要。
访问 Releases 下载已编译版本(build-Windows-xxxxxx.zip
)。
已编译版本的 C++ 部分为 Windows 用户提供,分 32 与 64 位,请根据自己的机器选择。程序解压后就可运行。已编译版本也包含 Scratch 文件,下载打开即可。
Scratch 部分
以下两个方法,本地运行与在线运行。
本地运行
确保你的电脑有 Scratch3 软件。Turbowarp 可,Scratch2 不可。
访问如上的 Release,下载 Scratch 文件(ScMIDI.sb3
)。
用你的 Scratch3 软件打开下载的文件。
在线运行
使用浏览器(IE 不可)访问上方的“稽木世界”网址。运行。
在线的版本稍有不同:预装了更多的歌曲。如果你懒得下载 C++ 部分,那么 Scratch 部分也没必要下载了。
使用
简单地使用 Scratch 部分。
下方是进度条,进度条上方有游标表示当前位置,游标可以拖动。
左下方是暂停键。可以点击暂停、继续。
右下方显示当前时间与总时间。
上方有三个键。
左边两个是切换曲目。上一曲、下一曲。最后一曲的下一曲是第一曲,轮转。
右边是导入键。下面讲。
导入
傻瓜式操作
打开上面说的、下载的 C++ 程序。
- 打开 MIDI:直接将 MIDI 文件拖动到窗口中(仅 V1.1(A) 版支持);或者点击“打开文件”,选择 MIDI 文件。
- 无视中间的一大堆选项。
- 点击下方的“生成”,复制右边文本框中出现的一长串数据。
打开 Scratch 程序。
点击导入键。粘贴。回车或确定。
自动播放。
选项
C++ 程序中,中间的一大堆选项是什么?
不知道,建议不动(不是
将鼠标悬停其上,发现弹出了提示。
看看提示吧!就知道了!
不知道的发 issue 问我!(这种开发者功能是在懒得写文档了!)
错误解决
导入 MIDI 文件经常产生错误。
这些错误有几乎都是 MIDI 文件的错误,比如它们不标准。
导入之前,确保它们能播放。
如果能播放但确实无法导入,建议使用 PsmPlayer 软件(百度可以搜到),将 MIDI 文件转换一下。
以下是教程。我使用的是随便下载的一个版本,可能和别人不同。
- 打开 PsmPlayer ,将 MIDI 文件拖进去。
- 点击“文件”、“转换为MIDI档”、“确定”,保存文件。
将新保存的文件再导入,应该就可以了。
如果以上讲的没有帮到你,可以联系我(建议发 Issue)。 或者你遇到了更严重的问题(比如崩溃、打不开、卡死),请务必联系我。这很可能是我的问题,很可能意味着程序有漏洞。