東坡下載:內容最豐富最安全的下載站!

幫助|文件類型庫|最新更新|下載分類|排行榜

首頁安卓軟件影音圖像 → BitMusic app 0.1 安卓最新版
BitMusic app0.1 安卓最新版

BitMusic app

更新:2017-05-17 18:45

大小:46KB

下載地址
更多安卓版 >
更多IOS版 >
更多PC版 >
二維碼

掃描二維碼安裝到手機

好玩50%(10票)
坑爹50%(10票)

同一開發(fā)者

BitMusic app截圖BitMusic app截圖BitMusic app截圖BitMusic app截圖
  • 分類:影音圖像
  • 大。46KB
  • 語言:中文
  • 版本:0.1 安卓最新版
  • 時間:2017-05-17 18:45
  • 星級:
  • 官網(wǎng):暫無
  • 廠商
  • 平臺:Android

BitMusic是一款可以播放Fc游戲音樂和Midi格式音樂的平臺,支持MIDI文件的屬性編寫,其實小編也不太了解,有興趣的可以下載研究下。

BitMusic app怎么用

使用說明

BitMusic的Musiccode格式是我自己設計的,有四個屬性,其語法格式如下:

{波形0~3,響度0~1000,頻率0.0~200000.0,延遲時間毫秒}

某一屬性不改變可簡寫成-1,如:

{1,1,1,1}{1,1,2,2}可簡寫成{1,1,1,1}{-1,-1,2,2}

如果僅僅延遲可簡寫成{延遲時間毫秒},如:

{0,0,0,50}可簡寫成{50}

原理介紹

編寫B(tài)itMusic的靈感是來自Fc游戲音樂和Midi格式的音樂。BitMusic能用來干什么?目前我也不知道(滑稽),或許只是拿它玩玩吧。

MIDI文件格式分析

MIDI文件屬于二進制文件,這種文件一般都有如下基本結構:文件頭+數(shù)據(jù)描述

文件頭一般包括文件的類型,因為Midi文件僅以.mid為擴展名的就有0類和1類兩種,而大家熟悉的位圖文件的格式就更多了,所以才會出現(xiàn)文件頭這種東西。

而數(shù)據(jù)描述部份是主體,我們現(xiàn)在來一起分析它的結構:

在每個Midi文件的開頭都有如下內容,它們的十六進制代碼為:“4d54686400000006ffffnnnndddd”。

前四個是ASCII字符“MThd”是用來鑒別是否Midi文件,而隨后的四個字節(jié)是指明文件頭描述部分的字節(jié)數(shù),它總是6,所以一定是“00000006”,以下是剩余部分的含義:

以上就是 MIDI 文件頭了,后面的所有內容都是真正做事的,我們先來看看它的構成。

MIDI 的數(shù)據(jù)是由若干個格式相同的子數(shù)據(jù)構成的,這些子數(shù)據(jù)在多音軌的格式中記錄了一個軌道的所有信 息。多加一個音軌,就簡單地把數(shù)據(jù)追加在前一音軌的后面就可以了,不過不要忘記更改文件頭中的 nn nn(軌道數(shù))。

先看全局音軌。全局音軌包括歌曲的附加信息(比如標題和版權)、歌曲速度和系統(tǒng)碼(Sysx)等內容。

不管是全局音軌還是含有音符的音軌,都以“4D 54 72 6B”開頭,它其實是 ASCII 字符“MTrk”,其后跟 著一個 4 個字節(jié)的整數(shù),它標志了該軌道的字節(jié)數(shù),這不包括前面的 4 個字節(jié)和本身的 4 個字節(jié)。這一點, 我們可以在后面的例子中去理解。

接著就是記錄數(shù)據(jù)的地方了,每一個數(shù)據(jù)有著相同的結構:時間差+事件。

所謂時間差,指的是前一個事件到該事件的時間數(shù),它的單位是 tick(MIDI 的最小時間單位)。它的構成比 較特殊,這里要用二進制來說明。

一個字節(jié)有 8 位,如果僅使用 7 位,它可以表示 0~127 這 128 個數(shù),而剩下的一位,則用來作為標志。如 果要表示的數(shù)在以上范圍,則這個標志為 0,這時,一個 7 位的字節(jié)可以表示 0~127tick。如果要表示的數(shù) 超出了這個范圍(比如 240),則把標志設置成 1,然后記錄下高 7 位,剩下的留給下一個字節(jié),在該例中 240 可以分解成 128*1+112,這里的 1 就是第一個字節(jié)要記錄的,加上標志位,應該為 10000001,即十六

進制的 81;而 112 是下一個字節(jié)記錄的,它的十六進制為 70:所以要表示 240 這個時間,要寫成 81 70。 同理,如果要表示 65535tick,則可以先計算出 65535=1282*3+1281*127+1280*127,然后得出結果:83 FF 7F。 由此,我們反過來也可以知道如何確定時間差:只要標志位為 0,則表示結束讀取時間差。比如 82 C0 03 表示 1282*2+1281*64+1280*3=40963,如果基本時間為 120,則有 341:043 個四分音符。

以這種方式記錄整數(shù)的字節(jié)稱為動態(tài)字節(jié),它根據(jù)記錄的整數(shù)改變自身的長度,這在后面還要用到,所以 必須熟練計算。

看完了這么麻煩的東西,我們再來看個更麻煩的東西:事件。在這些標準的解釋后面,我們會通過一些例子 來進一步掌握這些內容。

事件大體上可以分為音符、控制器和系統(tǒng)信息這幾個種類。對于這些事件,都有統(tǒng)一的表達結構:種類+參數(shù)。

對于一個音符,由于它的有效范圍是 0~127,所以直接用 00~7F 作為“種類”,可以認為是個音符,比如 3C 表示中央 C。而一個音符的最重要的參數(shù)是力度(也叫速度:velocity)。比如,3C 64 表示一個力度為十 進制100的中央C音符。

應用信息

  • 包名:com.sf.BitMusic
  • 名稱:BitMusic
  • 版本:0.1
  • 版本號:1
  • MD5:7bd86e3a11b0431b1ae84007f3e73d41

網(wǎng)友評論

熱門評論
最新評論
發(fā)表評論 查看所有評論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數(shù): 0/500 (您的評論需要經過審核才能顯示)

推薦軟件

下載排行