用Lua读取和解析.MID文件?

时间:2011-07-13 02:24:50

标签: parsing file-io lua midi

我正在尝试使用Lua读取.MID文件,然后将其解析为包含所有注释的表(即{“A”,“B#”,“Cb”等}}但我无法设法正确读取文件。我使用io.open和file:lines()但是将这些相同的行写入另一个midi文件会导致一个不工作的midi文件。

有没有更简单的方法来使用Lua读取和解析.MID文件?

3 个答案:

答案 0 :(得分:4)

Standard MIDI File格式是二进制格式,而不是文本格式。所以你不能指望把它读成“线”。相反,您需要使用read函数来获取字节并检查它们。你可能最好找一个MIDI文件的C库并将它绑定到Lua。

答案 1 :(得分:4)

.MID文件(可能是标准MIDI格式)是二进制文件,而不是文本。用file:lines()阅读它们是行不通的。您需要使用file:read("*a")将整个内容读入“字符串”(Lua字符串可以容纳任意字节的数据);这会将整个文件读入一个字符串。您还需要确保以二进制模式打开文件(对于有所不同的平台)。

答案 2 :(得分:4)

似乎有一个名为MIDI.lua的框架用于解析MIDI数据。但不确定它处理MIDI文件的效果如何。