MIDI格式的問題 |
答題得分者是:ikk
|
piggyafang
一般會員 發表:2 回覆:2 積分:0 註冊:2008-10-13 發送簡訊給我 |
各位版友好,有一個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應該為四分音符的二倍,請問是哪邊出問題了? 先謝謝回應的版友了。 |
ikk
尊榮會員 發表:4 回覆:413 積分:768 註冊:2003-06-30 發送簡訊給我 |
|
piggyafang
一般會員 發表:2 回覆:2 積分:0 註冊:2008-10-13 發送簡訊給我 |
各位版友好,問題已經找到答案了。
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 謝謝。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |