我试图用Lua读取。mid文件,然后将其解析为包含所有注释的表(即{" a ", " b# ", "Cb"等}),但我无法正确读取文件。我用io。打开and file:lines(),但将相同的行写入另一个MIDI文件会导致MIDI文件失效。
是否有更简单的方法来读取和解析一个。mid文件与Lua?
标准的MIDI文件格式是二进制,而不是文本。所以你根本不能指望把它读成"行"。相反,您需要使用read
函数来获取字节并检查它们。您最好找到一个用于MIDI文件的C库并将其绑定到Lua。
。MID文件(大概是标准MIDI格式)是二进制文件,而不是文本文件。用file:lines()
读取它们是行不通的。你需要用file:read("*a")
把整个东西读成一个"字符串"(Lua字符串可以保存任意字节的数据);这将把整个文件读入单个字符串。您还需要确保以二进制模式打开文件(对于不同的平台)。
似乎有一个叫做MIDI的框架。用于解析MIDI数据。不过,我不确定它处理MIDI文件的效果如何。