欢迎来到-年代音乐网!
网站活动:
最热歌曲 : 异地的我们 - 恒恒 每日歌曲 : 阴阳极 - 苗小青      自己骗自己 - 张作甫      珍爱 - 王鹏      如果可以这样爱 - 边永城      金莲开开门 - 华少瑞明     
当前位置: 首页 > MIDI信息 > 硬件 >

玩MIDI音乐或电脑的音乐竟需要什么硬件设备和软件资源?

时间:2018-04-25 17:20来源:网络整理 作者:管理员 点击:

键盘上飞舞的手指≮指舞天堂≯HappyEO演奏与周边软件有声教学的应用

如果光想感受一下光有电脑+网上下载的软件(就像Cakewalk SONAR、Nuendo、Cubase等等,网上很多)就行。


但如果你想做的效果好点就得投入了,midi键盘+midi接口(或者带有midi接口的声卡)+监听耳机(音箱)+编曲能力,这是最基本的了。玩音乐就是烧钱。
而做音乐需要一个很长的过程首先懂得乐理知识,和声学知识,作曲编曲知识,软件操作知识。这些做到了可以从扒带开始做。

并不发声,它传输的只是一组数字信息,这些信息都可以被MIDI兼容设备解释并作出相应的动作,如依指令发出钢琴声或小号声等。但最初各产品的乐器音色排列差别很大,使得同样的MIDI文件在不同的设备上的放音差别很大。例如,作曲者在作曲时使用的是钢琴音色,但是在把乐曲文件拿到其它设备上放音时,出现的却可能是小提琴音。为了解决这种混乱局面,又提出了GM(General MIDI,通用MIDI)标准,它规定了前128种常用乐器音色的编排方式,例如1号钢琴、41号小提琴等等。GM标准还描述了成为GM兼容格式的硬件设备应具有的其它特征,如GM标准音源同时发音数不少于24,MIDI通道为16,第10通道为打击乐声部等等,它实际上是对MIDI规范的补充。GM标准得到了Windwos操作系统的支持,从而使它的应用变得更加广泛。
GS标准是由Roland公司提出,它实际上是在兼容GM标准的基础上,在内部音乐库中新增加了若干音色,甚至包括中国民族乐器音色。XG标准是由Yamaha公司提出,也是基于GM标准提出的,同GS相似/

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

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

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

在每个Midi文件的开头都有如下内容,它们的十六进制代码为:“4d 54 68 64 00 00 00 06 ff ff nn nn dd dd”。

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



以上就是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音符。

因为一个字节有8位,所以剩余的一位如果置1,再联合其他的7位,则可以表示各种信息。我们暂且无视一个音轨到底是全局的还是用于记录音符的。它们归根结底都是用来记录各种事件的,只不过有些应出现在全局音轨比较合乎逻辑而已。既然这样,我们就可以从下面的表来看事件:

下表中,x表示音轨0~F,比如81表示松开第二轨的音符。



下表详细地列出了FF的详细情况,对于字节数由数据决定的情况,表中以“--”表示。

(责任编辑:admin)
数据统计中,请稍等!
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
              
  • 听听小编为您选的歌曲吧