东坡下载:内容最丰富最安全的下载站!

帮助|文件类型库|最新更新|下载分类|排行榜

首页安卓软件影音图像 → BitMusic app 0.1 安卓最新版
BitMusic app0.1 安卓最新版

BitMusic app

更新:2017-05-17 18:45

大小:46KB

下载地址
更多安卓版 >
更多IOS版 >
更多PC版 >
二维码

扫描二维码安装到手机

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

同一开发者

BitMusic app截图BitMusic app截图BitMusic app截图BitMusic app截图
  • 分类:影音图像
  • 大小:46KB
  • 语言:中文
  • 版本:0.1 安卓最新版
  • 时间:2017-05-17 18:45
  • 星级:
  • 官网:暂无
  • 厂商
  • 平台: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}

原理介绍

编写BitMusic的灵感是来自Fc游戏音乐和Midi格式的音乐。BitMusic能用来干什么?目前我也不知道(滑稽),或许只是拿它玩玩吧。

MIDI文件格式分析

MIDI文件属于二进制文件,这种文件一般都有如下基本结构:文件头+数据描述

文件头一般包括文件的类型,因为Midi文件仅以.mid为扩展名的就有0类和1类两种,而大家熟悉的位图文件的格式就更多了,所以才会出现文件头这种东西。

而数据描述部份是主体,我们现在来一起分析它的结构:

在每个Midi文件的开头都有如下内容,它们的十六进制代码为:“4d54686400000006ffffnnnndddd”。

前四个是ASCII字符“MThd”是用来鉴别是否Midi文件,而随后的四个字节是指明文件头描述部分的字节数,它总是6,所以一定是“00000006”,以下是剩余部分的含义:

以上就是 MIDI 文件头了,后面的所有内容都是真正做事的,我们先来看看它的构成。

MIDI 的数据是由若干个格式相同的子数据构成的,这些子数据在多音轨的格式中记录了一个轨道的所有信 息。多加一个音轨,就简单地把数据追加在前一音轨的后面就可以了,不过不要忘记更改文件头中的 nn nn(轨道数)。

先看全局音轨。全局音轨包括歌曲的附加信息(比如标题和版权)、歌曲速度和系统码(Sysx)等内容。

不管是全局音轨还是含有音符的音轨,都以“4D 54 72 6B”开头,它其实是 ASCII 字符“MTrk”,其后跟 着一个 4 个字节的整数,它标志了该轨道的字节数,这不包括前面的 4 个字节和本身的 4 个字节。这一点, 我们可以在后面的例子中去理解。

接着就是记录数据的地方了,每一个数据有着相同的结构:时间差+事件。

所谓时间差,指的是前一个事件到该事件的时间数,它的单位是 tick(MIDI 的最小时间单位)。它的构成比 较特殊,这里要用二进制来说明。

一个字节有 8 位,如果仅使用 7 位,它可以表示 0~127 这 128 个数,而剩下的一位,则用来作为标志。如 果要表示的数在以上范围,则这个标志为 0,这时,一个 7 位的字节可以表示 0~127tick。如果要表示的数 超出了这个范围(比如 240),则把标志设置成 1,然后记录下高 7 位,剩下的留给下一个字节,在该例中 240 可以分解成 128*1+112,这里的 1 就是第一个字节要记录的,加上标志位,应该为 10000001,即十六

进制的 81;而 112 是下一个字节记录的,它的十六进制为 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 个四分音符。

以这种方式记录整数的字节称为动态字节,它根据记录的整数改变自身的长度,这在后面还要用到,所以 必须熟练计算。

看完了这么麻烦的东西,我们再来看个更麻烦的东西:事件。在这些标准的解释后面,我们会通过一些例子 来进一步掌握这些内容。

事件大体上可以分为音符、控制器和系统信息这几个种类。对于这些事件,都有统一的表达结构:种类+参数。

对于一个音符,由于它的有效范围是 0~127,所以直接用 00~7F 作为“种类”,可以认为是个音符,比如 3C 表示中央 C。而一个音符的最重要的参数是力度(也叫速度:velocity)。比如,3C 64 表示一个力度为十 进制100的中央C音符。

应用信息

  • 包名:com.sf.BitMusic
  • 名称:BitMusic
  • 版本:0.1
  • 版本号:1
  • MD5:7bd86e3a11b0431b1ae84007f3e73d41

网友评论

热门评论
最新评论
昵称:
表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
字数: 0/500 (您的评论需要经过审核才能显示)

推荐软件

下载排行