c语言读取midi文件举例子,从MIDI文件获取音符数据

  Nik Reisman - 对不起,但我不同意你......在C#中解析midi,C++是大约400行代码的东西......它没有什么困难,也没有困难。

  在简短的描述解析器将如何工作:

  1)打开midi字节模式

  2)阅读标题块,其中有关于大小,轨道数量和重要文件格式的信息!

  - 有3种格式:0,1,2(类型2实际上是“有价值的”,只有少数这种类型的midi文件,所以如果存在类型2,则不需要读取midi)

  - 如果没有写:"MThd" (0x4D546864),结束错误(这是一个糟糕的MIDI文件)

  3)阅读音轨块

  - 如果没有写:"MTrk" (0x4D54726B)结束,错误(这是一个糟糕的MIDI文件)

  4)阅读midi活动.. - 有很多活动,您可以使用if-else命令阅读所有活动,或者只能阅读您想知道的活动,例如NOTE ON,NOTE OFF - 有时在一些midi文件中不是NOTE NOTE..This事件是chang ed NOTE ON和速度0

  在网站上的一切都很好地解释。如果你以字节模式打开midi文件,你将只有几个方法,一切都只是关于if-else命令,并且你将捕获现在存储的内容。

  理解VARIABLE LENGTH很重要,但在网站上也有解释。这并不难。您也可以在谷歌的许多网站中使用一些图片和示例来解释VARIABLE LENGTH。所以我不认为在这里很难解释它。

  如果你想多一点建议,写信给我,我会试试看。但是解析midi并不像看起来那么困难。如果你有一些问题,请写信给我。