Re: [問題] 有關MIDI格式的問題

看板C_and_CPP (C/C++)作者時間16年前 (2009/09/09 22:53), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《Breedlove (呵...)》之銘言: : 各位版友好,有一個MIDI格式的問題想請教 : 在MIDI的格式中 90 3C 50 81 40 (16進位) : 90表示Note ON在Channel 0,3C代表彈奏中央C (Do),50代表力道,81 40則代表 : Delta time,以81 40(16進位)來講的話是193(10進位)個tick。 : 小弟自已打了一小段MIDI,在第一小節為一個全音符,第二小節有一個二分音符,二 : 個四分音符。 : 可是我用C去讀的時候發現全音符後接的Delta time為88 0,二分音符後接的Delta time : 為84 0,四分音符後接的Delta time為82 0,照理說全音符的Delta time應該為二分音符 : 的二倍,二分音符的Delta time應該為四分音符的二倍,請問是哪邊出問題了? : 先謝謝回應的版友了。 MIDI格式的delta time是像下面這樣轉換的↓ 88 00 (hex) = 10001000 00000000 (bin) = 1000 0000000 (bin) = 1024 (dec) 每個byte最前面的1 bit只是代表 「這是不是最後一個byte」 如果是1就代表「接下來的byte也是delta time」 如果是0就是「這個byte就是delta time的結尾了」 在計算中要把它去掉 只用剩下的7bits串起來以得知實際的delta time 以你的例子來說 全音符是1024 tick 二分是512 tick 四分是 256tick 詳細的說明看這裡 http://253.ccarh.org/handout/vlv/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.13.219 ※ 編輯: holymars 來自: 114.32.13.219 (09/09 22:53) ※ 編輯: holymars 來自: 114.32.13.219 (09/09 23:25)

09/09 23:51, , 1F
ㄋ怎ㄇ連咪底也會 = ="
09/09 23:51, 1F

09/10 00:08, , 2F
最近剛好用到
09/10 00:08, 2F

09/10 00:08, , 3F
快幫我測一下18033篇的問題XD
09/10 00:08, 3F

09/10 13:22, , 4F
非常謝謝!
09/10 13:22, 4F
文章代碼(AID): #1Afy5KBU (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Afy5KBU (C_and_CPP)