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并不像看起来那么困难。如果你有一些问题,请写信给我。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值