MIDI音頻格式解析

 因爲網上關於MIDI音頻格式的實例解析較少,spa

而本人這段時間恰好有作相關的應用,code

因此,特別分享MIDI的解析實例,blog

但願對你們有所幫助。同步

 

 1  0x4D , 0x54 , 0x68 , 0x64 ,  // "MThd"
 2  0x00 , 0x00 , 0x00 , 0x06 ,  // 頭塊長度:不包括前4字節和本4字節
 3  0x00 , 0x01 , // 格式;1-多軌,同步
 4  0x00 , 0x03 , // 軌道數 = 3
 5  0x01 , 0xE0 , // 基本時間格式 0x01E0 = 480;
 6  
 7  0x4D , 0x54 , 0x72 , 0x6B ,  // "MTrk"
 8  0x00 , 0x00 , 0x00 , 0x15 ,  // 21 該規長度:不包括前4字節和本4字節
 9  0x00 , // 時間差
10  0xFF , 0x58 , 0x04 , 0x04 , 0x02 , 0x18 , 0x08 , // 其餘功能、節拍、長度四、分子四、分母四、節拍器時鐘2四、一個四分音符包含的32分音符的個數8
11  0x00 , // 時間差
12  0xFF , 0x51 , 0x03 , 0x0C , 0x35 , 0x00 , // 其餘功能、速度、長度3:1個四分音符的微秒數800,000
13  0x84 , 0xE7 , 0x00 , // 時間差:128^2*4+128*103+0 = 78720
14  0xFF , 0x2F , 0x00 ,  // 音軌結束標誌。
15  
16  0x4D , 0x54 , 0x72 , 0x6B , // "MTrk"
17  0x00 , 0x00 , 0x09 , 0xC9 , // 2505 該規長度:
18  0x00 , // 時間差
19  0xFF , 0x03 , 0x07 , // 歌曲標題,音軌名稱,長度7
20  0x54 , 0x72 , 0x61 , 0x63 , 0x6B , 0x20 , 0x31 , // "Track 1"
21  0x00 , // 時間差
22  0xFF , 0x04 , 0x1F , // 樂器名稱,長度31,--"Microsoft GS Wavetable SW Synth"
23  0x4D , 0x69 , 0x63 , 0x72 , 0x6F , 0x73 , 0x6F , 0x66 , 0x74 , 0x20 , 0x47 , 0x53 , 0x20 , 0x57            
24  , 0x61 , 0x76 , 0x65 , 0x74 , 0x61 , 0x62 , 0x6C , 0x65 , 0x20 , 0x53 , 0x57 , 0x20 , 0x53 , 0x79 , 0x6E , 0x74            
25  , 0x68 , 
26  
27  0x00 , // 時間差
28  0xB0 , 0x0A , 0x40 , // 調換控制,控制號10(聲像控制器),(CAKEWALK默認值是64)新值64
29  
30  0x89 , 0x30 , // 時間差=128*9+48=1200us
31  0x90 , 0x40 , 0x50 , // 音符打開,音符號64,速度80  (E5 : MI)
32  
33  0x81 , 0x58 , // 時間差=128*1+88=216us
34  0x80 , 0x40 , 0x40 , // 音符關閉,音符號64,速度64  (E5 : MI)
35  
36  0x18 , // 時間差=24us
37  0x90 , 0x45 , 0x50 , // 音符打開,音符號69,速度80  (A5 : La)
38  
39  0x81 , 0x58 , // 時間差=128*1+88=216us
40  0x80 , 0x45 , 0x40 , // 音符關閉,音符號69,速度64  (A5 : La)
41  
42  0x18 , 
43  0x90 , 0x47 , 0x50 , // 音符打開,音符號71,速度80  (B5 : Si)
44  
45  0x81 , 0x58 , // 時間差=128*1+88=216us
46  0x80 , 0x47 , 0x40 , // 音符關閉,音符號71,速度64  (B5 : Si)
47  
48  0x18 , 
49  0xB0 , 0x40 , 0x7F , // 調換控制,控制號64(延音控制器),新值117
50  
51  0x00 , // 時間差
52  0x90 , 0x48 , 0x64 , // 音符打開,音符號72,速度100 (C6 : Do)
53  
54  0x00 , // 時間差
55  0x90 , 0x45 , 0x50 , // 音符打開,音符號69,速度80 (A5 : La)
56  
57  0x83 , 0x60 , // 時間差=128*3+96=480us
58  0x80 , 0x48 , 0x40 , // 音符關閉,音符號72,速度64 (C6 : Do)
59  
60  0x00 , // 時間差
61  0x80 , 0x45 , 0x40 , // 音符關閉,音符號69,速度64  (A5 : La)
62  
63  0x00 , // 時間差
64  0x90 , 0x4A , 0x64 , // 音符打開,音符號74,速度100  (D6 : RE)
65  
66  0x81 , 0x70 , // 時間差=128*1+102=230us
67  0x80 , 0x4A , 0x40 , // 音符關閉,音符號74,速度64  (D6 : RE)
68  
69  0x00 , // 時間差
70  0x90 , 0x4C , 0x64 , // 音符打開,音符號76,速度100  (E6 : MI)
71  
72  0x81 , 0x70 , // 時間差=128*1+102=230us
73  0x80 , 0x4C , 0x40 , // 音符關閉,音符號76,速度100  (E6 : MI)
74  
75  0x00 ,  
76  0xB0 , 0x40 , 0x7F , // 調換控制,控制號64(延音控制器),新值117
77  
78  0x00 , 
79  0x90 , 0x4A , 0x64 , // 音符打開,音符號74,速度100  (D6 : RE)
相關文章
相關標籤/搜索