


BitMusic是一款可以播放Fc游戏音乐和Midi格式音乐的平台,支持MIDI文件的属性编写,其实小编也不太了解,有兴趣的可以下载研究下。

使用说明
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文件仅以.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音符。
即梦AI
122.5M
1.4.5 最新版
抖音极速版赚点零花钱
126M
33.1.0 红包版
星绘ai绘画软件
214.0M
1.0.3 安卓版
酷狗音乐车机版官方原版
78.4M
5.1.0 免费版
AR Drawing安卓
167.8M
4.8.18 最新版
囧次元app
21.2M
1.5.7.8 官方最新版
TikTok抖音国际版
463.3M
39.2.25 海外版
囧次元app
21.2M
1.5.7.8 官方最新版
OmoFun最新版(Lanerc)
67.1M
1.0.2 安卓版
新趣小视频app
16.4M
2.2.12安卓官方最新版
国外抖音tiktok2025最新版
463.3M
39.2.25 国外版
tiktok国际版国内可用
451.6M
39.3.3 解锁版
网友评论