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音符。
小编简评:
下载 Anvil studio 2012(MIDI音乐编辑处理软件) 2.6M /小编简评:Anvil stud
下载 速度超快的MIDI音乐转换软件 Midi Guitar to Rock Band Converter 0.8 绿色版免费版 548KB /小编简评:
下载 MIDI音乐合成软件(SynthFont) 6.0M /小编简评:MIDI音乐合
下载 非常好用的音乐合成软件 SynthFont 5.9M /小编简评:
下载 SynthFont(专业波表MIDI合成工具) 5M /小编简评:
下载 MIDI-TO-MP3 V1.2 汉化版 902KB /小编简评:媒体转换,可
下载 midi音乐合成工具(EnergyXT) 5.7M /小编简评:midi音乐通
下载 音频转midi工具(TS-AudioToMidi Converter) 579KB /小编简评:这是一个将
网友评论