播放时间?还是MIDI文件有多长?
解决方案 »
- 深度坐标干嘛的??求一针见血的解释
- 怎么获得父窗口中某个控件,其中的变量?
- 对于敏捷开发与非敏捷开发的思考?盼高人进来解惑
- 如何用sendmessage之类的消息发送,控件其他程序上的list control之类的控件?
- 象这样的控件应该怎样随窗口变化而改变大小,给出源码出来后马上给分(高手请进,挑战自己)
- 在用VC操作EXCEL的时候,怎么保存指定的几个sheet,而不全部保存
- VC中CTreeCtrl和xml文件的互导
- MFC中的线程问题!!
- 怎样在应用程序的任何位置得到CChildFrame?
- 哪位高手给我讲讲CFile类怎么用?我怎么只会用fstream啊!
- ■编译链接错误:evc++ error LNK2019: unresolved external symbol CLSID_Replication referenced in function "private: void __cdecl
- 怎样保存目录列表
文件头:开始4个字节都是MThd在后面是000006在后面就是轨道数目和播放速度四分音符的速度应该是毫秒。
轨道头,前4个字节是字符后四个字节是当前轨道的长度(字节不包括头)。
文件就像如下:
DD DD DD DD 00 00 00 06 DD DD FF FF SS SS
XX XX XX XX 00 00 00 1A 00 FF 21 01 00 00 FF 03 0D 41 6C 74 65 72 6E 61 74 69 76 65 20 33 00 FF 2F 00
XX XX XX XX 00 00 00 00 Midi命令....
XX XX XX XX 00 00 00 00 Midi命令....
...
...
前天刚研究这些,目前正在学习Midi命令.谁有好的midi命令拿来让大家学习一下.
上面是一个文件的例子第一个轨道是小白杨第10个轨道的数据1A就是26个字节的意思。
00 00 00 1A表示当前轨道大小是26字节而不是1703936如果你用Long数据类型读出来就错了。
midi文件中的整形数值最低位在后面很符合书面文字就是&H0000001A=26