更新:2017-05-17 18:45
大。46KB
下載地址掃描二維碼安裝到手機(jī)
BitMusic是一款可以播放Fc游戲音樂和Midi格式音樂的平臺(tái),支持MIDI文件的屬性編寫,其實(shí)小編也不太了解,有興趣的可以下載研究下。
使用說明
BitMusic的Musiccode格式是我自己設(shè)計(jì)的,有四個(gè)屬性,其語法格式如下:
{波形0~3,響度0~1000,頻率0.0~200000.0,延遲時(shí)間毫秒}
某一屬性不改變可簡寫成-1,如:
{1,1,1,1}{1,1,2,2}可簡寫成{1,1,1,1}{-1,-1,2,2}
如果僅僅延遲可簡寫成{延遲時(shí)間毫秒},如:
{0,0,0,50}可簡寫成{50}
編寫B(tài)itMusic的靈感是來自Fc游戲音樂和Midi格式的音樂。BitMusic能用來干什么?目前我也不知道(滑稽),或許只是拿它玩玩吧。
MIDI文件屬于二進(jìn)制文件,這種文件一般都有如下基本結(jié)構(gòu):文件頭+數(shù)據(jù)描述
文件頭一般包括文件的類型,因?yàn)镸idi文件僅以.mid為擴(kuò)展名的就有0類和1類兩種,而大家熟悉的位圖文件的格式就更多了,所以才會(huì)出現(xiàn)文件頭這種東西。
而數(shù)據(jù)描述部份是主體,我們現(xiàn)在來一起分析它的結(jié)構(gòu):
在每個(gè)Midi文件的開頭都有如下內(nèi)容,它們的十六進(jìn)制代碼為:“4d54686400000006ffffnnnndddd”。
前四個(gè)是ASCII字符“MThd”是用來鑒別是否Midi文件,而隨后的四個(gè)字節(jié)是指明文件頭描述部分的字節(jié)數(shù),它總是6,所以一定是“00000006”,以下是剩余部分的含義:
以上就是 MIDI 文件頭了,后面的所有內(nèi)容都是真正做事的,我們先來看看它的構(gòu)成。
MIDI 的數(shù)據(jù)是由若干個(gè)格式相同的子數(shù)據(jù)構(gòu)成的,這些子數(shù)據(jù)在多音軌的格式中記錄了一個(gè)軌道的所有信 息。多加一個(gè)音軌,就簡單地把數(shù)據(jù)追加在前一音軌的后面就可以了,不過不要忘記更改文件頭中的 nn nn(軌道數(shù))。
先看全局音軌。全局音軌包括歌曲的附加信息(比如標(biāo)題和版權(quán))、歌曲速度和系統(tǒng)碼(Sysx)等內(nèi)容。
不管是全局音軌還是含有音符的音軌,都以“4D 54 72 6B”開頭,它其實(shí)是 ASCII 字符“MTrk”,其后跟 著一個(gè) 4 個(gè)字節(jié)的整數(shù),它標(biāo)志了該軌道的字節(jié)數(shù),這不包括前面的 4 個(gè)字節(jié)和本身的 4 個(gè)字節(jié)。這一點(diǎn), 我們可以在后面的例子中去理解。
接著就是記錄數(shù)據(jù)的地方了,每一個(gè)數(shù)據(jù)有著相同的結(jié)構(gòu):時(shí)間差+事件。
所謂時(shí)間差,指的是前一個(gè)事件到該事件的時(shí)間數(shù),它的單位是 tick(MIDI 的最小時(shí)間單位)。它的構(gòu)成比 較特殊,這里要用二進(jìn)制來說明。
一個(gè)字節(jié)有 8 位,如果僅使用 7 位,它可以表示 0~127 這 128 個(gè)數(shù),而剩下的一位,則用來作為標(biāo)志。如 果要表示的數(shù)在以上范圍,則這個(gè)標(biāo)志為 0,這時(shí),一個(gè) 7 位的字節(jié)可以表示 0~127tick。如果要表示的數(shù) 超出了這個(gè)范圍(比如 240),則把標(biāo)志設(shè)置成 1,然后記錄下高 7 位,剩下的留給下一個(gè)字節(jié),在該例中 240 可以分解成 128*1+112,這里的 1 就是第一個(gè)字節(jié)要記錄的,加上標(biāo)志位,應(yīng)該為 10000001,即十六
進(jìn)制的 81;而 112 是下一個(gè)字節(jié)記錄的,它的十六進(jìn)制為 70:所以要表示 240 這個(gè)時(shí)間,要寫成 81 70。 同理,如果要表示 65535tick,則可以先計(jì)算出 65535=1282*3+1281*127+1280*127,然后得出結(jié)果:83 FF 7F。 由此,我們反過來也可以知道如何確定時(shí)間差:只要標(biāo)志位為 0,則表示結(jié)束讀取時(shí)間差。比如 82 C0 03 表示 1282*2+1281*64+1280*3=40963,如果基本時(shí)間為 120,則有 341:043 個(gè)四分音符。
以這種方式記錄整數(shù)的字節(jié)稱為動(dòng)態(tài)字節(jié),它根據(jù)記錄的整數(shù)改變自身的長度,這在后面還要用到,所以 必須熟練計(jì)算。
看完了這么麻煩的東西,我們再來看個(gè)更麻煩的東西:事件。在這些標(biāo)準(zhǔn)的解釋后面,我們會(huì)通過一些例子 來進(jìn)一步掌握這些內(nèi)容。
事件大體上可以分為音符、控制器和系統(tǒng)信息這幾個(gè)種類。對(duì)于這些事件,都有統(tǒng)一的表達(dá)結(jié)構(gòu):種類+參數(shù)。
對(duì)于一個(gè)音符,由于它的有效范圍是 0~127,所以直接用 00~7F 作為“種類”,可以認(rèn)為是個(gè)音符,比如 3C 表示中央 C。而一個(gè)音符的最重要的參數(shù)是力度(也叫速度:velocity)。比如,3C 64 表示一個(gè)力度為十 進(jìn)制100的中央C音符。
小編簡評(píng):
下載 Anvil studio 2012(MIDI音樂編輯處理軟件) 2.6M /小編簡評(píng):Anvil stud
下載 速度超快的MIDI音樂轉(zhuǎn)換軟件 Midi Guitar to Rock Band Converter 0.8 綠色版免費(fèi)版 548KB /小編簡評(píng):
下載 MIDI音樂合成軟件(SynthFont) 6.0M /小編簡評(píng):MIDI音樂合
下載 非常好用的音樂合成軟件 SynthFont 5.9M /小編簡評(píng):
下載 SynthFont(專業(yè)波表MIDI合成工具) 5M /小編簡評(píng):
下載 MIDI-TO-MP3 V1.2 漢化版 902KB /小編簡評(píng):媒體轉(zhuǎn)換,可
下載 midi音樂合成工具(EnergyXT) 5.7M /小編簡評(píng):midi音樂通
下載 音頻轉(zhuǎn)midi工具(TS-AudioToMidi Converter) 579KB /小編簡評(píng):這是一個(gè)將
網(wǎng)友評(píng)論