我正在尝试用Lua读取一个.MID文件,然后将其解析为一个包含所有音符的表格(例如 {"A", "B#", "Cb"等),但我无法正确读取该文件。我使用io.open和file:lines(),但是将这些相同的行写入另一个midi文件会导致不起作用的midi文件。
有没有更简单的方法在Lua中读取和解析.MID文件呢?
标准MIDI文件格式是二进制的,而非文本。因此你不能指望将其视为“行”来读取。相反,你需要使用read
函数来获取字节并检查它们。你最好找到一个C库用于MIDI文件,并将其绑定到Lua。
.MID文件(可能是标准MIDI格式)是二进制的,而不是文本。使用file:lines()
读取它们将不起作用。相反,您需要使用file:read("*a")
将整个内容读入“字符串”中(Lua字符串可以容纳任意字节的数据)。您还需要确保以二进制模式打开文件(对于这种情况有所区别的平台)。