什么是MIDI怎么制作midi

MIDI文件有很多信息构成的指令一些信息,只由1字节构成有些有2个字节,还有一些有3个字节有一类的MIDI信息,甚至可以包含无限的字节数所有的信息有一点是共同的,那就是第一个字节的信息是状态

状态字节的0x80到0xef是 可以在16个MIDI通道的任何一个出现的信息。正因为如此这些是所谓的声音信息。这些状态芓节有8位可以把8个二进制位分成两个 4位,即一个高位和一个低位例如,一个状态字节的0x92可细分成9 (高位 )和2 (低位 )高位表示类型嘚MIDI信息,低位说明信息操作的MIDI通道序号以下是所有可能的高位值,每个代表的声音信息类型:

d =通道演奏压力(可近似认为是音量)

譬如0x92的消息类型是开始发声(即高位是9)。低位2意味着该消息是对MIDI通道2进行的有16个可能的(逻辑的)MIDI通道, 0作为第一

虽然MIDI状态字节计数嘚16个MIDI通道,作为号码为0到F (即15)所有的MIDI设备(包括计算机软件)显示的通道编号,是1至16因此,状态字节发出的MIDI通道0被认为是通道1这の间的差异是因为大部分人计数,是从一开始而不是从零。

第二线、第二间、第三线 = 不同音高的中音鼓(Floor Tom)

第三间 = 军鼓(Snare Drum注意有两种鈈同的军鼓,音色比较相近真正写谱时请尽量选择同一种军鼓)

第四线、第四间、第五线 = 不同音高的中音鼓(Tom)

上加一间带×号 = 脚踏钹(Hi-Hat,其中带圈圈的是长音不带圈圈的是短音)

一个数据字节,值从0到127 (其中127是最响)

后续两个数据字节。这两个字节应结合在一起形成一个14位值。

用来传送一些数据这是具体到一个MIDI设备。此外 sysex可能被用来传递信息,就是特定的装置

可以有任何数量的数据字节。

狀态字节的0xf0和0xff是不属于任何特定通道的这些状态字节是用于给特定设备发送信息,如同步重放设备以同步时间。 这些状态字节是进一步分为两大类状态字节的0xf0到0xf7是所谓的系统公用的信息。状态字节的0xf8到0xff被称为系统的实时信息

某些状态字节是没有界定的,并保留供以後使用举例来说,状态字节的0xf4 0xf5 , 0xf9到0xfd尚未使用如果MIDI设备任何时候收到这样的信息,它应忽略这一消息

以下描述每个信息类型。

就像與MIDI通道0到15之间被显示成1至16许多MIDI设备从1开始显示代号。在另一方面这种做法是从来没有规范,一些设备使用截然不同的标准通用MIDI标准洳下:

实际代号应为列表中的代号减1。

其中 60 代表标准音高(C5)其他数字以半音为单位依次相加或相减

MIDI文件包含一个或更多MIDI块与每个事件嘚时间信息。它支持歌曲、序列和音轨结构拍子和拍号信息。 音轨名字和其他描述信息也可以与MIDI信息一同存储 这个格式支持多条音轨、多个序列。这种格式可以允许用户从一个音轨移向另一个音轨

用于MIDI文件的8位二进制的数据块可以在一个高效率的传输的MIDI二进制文件中,分解可以存储为7位数据或被转换成其他的ASCII或者被翻译为一个文本文件。

1. MIDI序列文件由块组成 每个块4个字节,有32位长度 在苹果机上,數据通过在文件的数据叉或者在上进行传输。 (在Macintosh这个格式的文件类型是" Midi") 块结构允许被忽略跳过

这里定义了块的二种类型: 块和音轨块。 文件头块提供关于整个MIDI文件的最小数量信息 音轨块包含的MIDI数据序列也许包含16条MIDI通道的信息。 使用多个音轨块就可以用多条音轨、多個MIDI序列、谱式和歌曲。 MIDI文件总是以文件头块开始紧随其后的是一个或多个音轨块。

MTrk块类型是存放实际歌曲数据的地方它是MIDI事件(和非MIDI事件)的序列。在MTrk块的有些数字是以叫可变长的数量的形式进行存储的 这些数字首先每个字节用7位,最高位不是有效位 除最后一位之外的所有字节,最高位设为1;最后一个字节最高位设为0 如果数字在0和127之间,它能正确地表示为一个字节 这作为可变长的数量代表的数字的囿些例子:

数字(十六进制) 变长表示法(十六进制)

允许的大数是0FFFFFFF,这是以可变长表示法表示的32位的最大数字 理论上,大数是有可能的但是實际中不必要。

MTrk块的句法: = + = < 经过的时间> 被作为一个可变长的量存储 它代表以下事件之前所要经过的时间。 如果在音轨的第一个事件发生茬音轨的开始或者,如果二个事件同时发生使用Δt的零。 Δt总是存在 Δt的具体,在文件头块上指定

= <sysex evene>|<元event> | < MIDI event> 是所有MIDI通道消息。 使用连续狀态时: 状态位也许在第一个事件以后被省去 在文件的第一个事件必须指定状态。 Δt没有被认为是事件: 它是格式的整体部分

<元event> 指定非MIDI信息。有用对这个格式有这样的句法:

FF 所有阶事件从FF开始,然后有事件类型(总是少于128)然后有作为一个可变长的数量被存放的数据的長度,然后是数据 如果没有数据,长度是0

< sysex event> 使用指定MIDI系统专属消息,或者作为" escape" 指定将被传送的任何任意字节 不幸地是,一些合成器制慥者指定他们的系统专属消息将被作为小包传送 每个小包作为一则整个语法系统专属消息的部分,但是他们被传送的时间是很重要的這样的例子是在CZ传送的字节或者FB-01' s " 系统独家新闻" 中,可以传送部分数据 为了能处理像这样的情况, 两个形式的<sysex event> 被提供了:

在两种情况下 長度被作为一个可变长的数量存放,等于跟随它的字节数不包括本身或消息类型(F0或F7),但是包括跟着的所有字节包括所有在意欲被传送嘚信息末端的F7。 绝大多数的系统专属消息将使用F0格式 例如,被传送的消息F0 43 12 00 07 F7在MIDI文件将被存储为F0 05 43 12 00 07 F7 如上所述,所有信息要求在末端包含F7以便MIDI文件的处理程序知道它读了全部的信息。 对于特别的情况当一则唯一的系统专属信息被分开成多段,分到不同的时间传送时 小包除叻最后一个都以F7结束。 不能在多个小包之间传递任何其他的系统专属信息 例如:

假设字节43 12 00将首先被传送到F0,紧随着200个时间单位的延迟洅紧随着由字节43 12 00 43 12 00组成的数据,再紧随着100各时间单位的延迟再紧随着由字节43 12 00 F7组成的数据,这在MIDI文件是这样的: F0 03 43 12 00 81 48

F7事件也许也使用作为" escape" 传送任哬字节包括实时字节、歌曲名或者MIDI时间代码,在这个规格通常没有被规定

在文件初的文件头块指定在文件中关于数据的一些基本信息。数据部分包含三个16位的字段首先被存放高位字节(当然)。 这里有完整的块的句法:

如上所述块类型是四个ASCII字符' MThd' ; 随后的长度是一个6 (高位優先的32位数字表示法)。 格式是指定文件的整体组织。

格式的只有三种值指定三种格式:

0 文件包含一条唯一的多通道音轨

1 文件包含一个戓更多同时的音轨

2 文件包含一个或更多独立的音轨,相继进行播放

音轨数是文件中音轨块的数量。

分区是在文件的Δt之中1代表的是一秒的多少分之一。

格式0 多通道的音轨,是最容易转换的数据应用格式1 的MIDI文件可以很容易转换成这种格式。声音是最重要的东西格式並不重要。这种转换是非常应该的这可以化繁为简。

MIDI文件有可以表达的节奏和拍号的信息对于0的文件格式,节奏将分散的存储;对于格式1,节奏必须(在0.04版起)一起储存作为第一条音轨。这个规定是合理的

所有的MIDI文件,应指定节奏和拍号如果他们不这样做,拍号假设为4 / 4 节奏和节拍120每分钟。在格式0中 这些元事件应该在开头。在格式1 中这些元事件应包含在第一个音轨中。在格式2 中每一独立的喑轨,应至少包含一条拍号和节奏的信息

不是每个程序,都必须支持每一个元事件元事件最初的定义包括:

这一类事件,必须发生在喑轨的开头在任何非零时间后发生的事件或可传送的MIDI信息之前,用于指定序列的数目序列数对应在这条音轨的序列数。在一个格式0或1 MIDI攵件其中只包含一个序列,这个数字应包含在第一个音轨

任何数量描述任何事情的文字。在音轨开头放上这条音轨的相关的所有信息昰很好的这有助于日后查看。事件也可能发生在其他时间被用来作为歌词。在此事件中文本应用可打印的ASCII字符进行书写

元事件类型01箌0F的是预留给各种类型的文本使用的,但使用的目的各不相同:

载有版权声明作为打印ASCII文本。文本中应包含字符( c )版权所有的时间,版权所有者如果几段音乐是在同一个MIDI文件中,所有的版权声明应放在一起把它放在文件的开头。这个事件应该是第一个事件在时間0放在第一条音轨块。

说明该类型的乐器将用于在这一条音轨中使用

写明歌词。一般来说每个音节将是一行单独的歌词,应该写清时間

通常在一个格式0的音轨或在格式1的第一个音轨。

描述一些在这一点上发生在电影或屏幕或舞台的动作或事件

此事件必须的以便确定嘚结束点。

设定速度以毫秒(ms)为单位,是四分音符的时值

这个事件可以精确的写清楚这条音轨的速度 用每拍所占的时间而不是单位时间內的拍数表示速度,使得依据一个基于时间的同步协议(例如SMPTE时间代码或MIDI时间代码)实现时间的绝对同步成为可能 这种准确性使四分钟咗右的曲子在每分钟的120拍下结束时,时间误差在500 微秒之内

这一事件,如果存在的话将指定某一个特定事件开始的SMPTE时间。它应出现在音軌的开头在任何非零时间后发生的事件或可传送的MIDI信息之前。

因此完整的 6 / 8拍号应该表示为

sf指明乐曲曲调中升号、降号的数目。例如A夶调在五线谱上注了三个升号,那么sf=03又如,F大调五线谱上写有一个降号,那么sf=81 也就是说,升号数目写成0x降号数目写成8x

mf指出曲调昰大调还是小调。大调mf=00小调mf=01

特殊要求,尤其是时序可能会使用此事件类型:第一个字节或字节的数据是一个制造商的ID

作为一个例子, 紦一个MIDI文件摘录如下所示

内容的MIDI流所代表的这个例子,细分在这里:

Δt(十进制) 事件号(十六进制) 其他数据(十进制) 说明

整个格式0 的MIDI文件的内容首先,文件头块:

00 60  一个MIDI时间间隔等于96分之一秒

类似的,可以把这个文件写成1格式

MIDI格式在网络传送中,通常采用7位数据传送方式这样可以大大提高传输速度。

MIDI格式由于体积很小非常便于传送;而且,由于它很有利于创作音乐是很多作曲家在创作初期的首选。

MIDI格式由于其特殊的记录方式受硬件影响较大。

MID格式文件很容易被人误解很多人在电脑上直接播放MID后总会说“MID音质特别差”。这里再佽要强调一遍MID文件不是音频文件,它的作用只相当于一个记录了音乐该如何进行。MIDI回放音色完全取决于声卡之所以在windows系统上播放MID不能取得良好效果是因为系统自带的音色库比较简单。如果需要得到很不错的音色则另需加装专业插件,一块专业声卡也是必不可少的

00 c0 // 基本时间格式,即一个四分音符的tick数tick是MIDI中的最小时间单位

04 02 18 08 // nn dd cc bb 拍号表示为四个数字。nn和dd代表分子和分母分母指的是2的dd次方,例如2代表4,3玳表8cc代表一个四分音符应该占多少个MIDI时间单位,bb代表一个四分音符的时值等价于多少个32分音符 因此,完整的 6 / 8拍号应该表示为 FF 58 04 06 03 24 08这是, 6 / 8拍号( 8等于2的三次方因此,这里是06 03)四分音符是32个MIDI时间间隔(十六进制24即是32),四分音符等于8个三十二分音符

00 00 // sf mf。sf指明乐曲曲调中升號、降号的数目例如,A大调在五线谱上注了三个升号那么sf=03。又如F大调,五线谱上写有一个降号那么sf=81。也就是说升号数目写成0x,降号数目写成8xmf指出曲调是大调还是小调。大调mf=00小调mf=01。

00 90 43 40 // 00:delta_time; 9n:打开n通道发音; xx yy: 第一个数据是音符代号有128个音,对MIDI设备编号为0至127个(其中中央C喑符代号是60)。 第二个数据字节是速度从0到127的一个值。这表明用多少力量弹奏。 一个速度为零的开始发声信息被认为事实上的一个停止发声的信息。此处为以64力度发出67音符

81 10 80 43 40 // 81 10:delta_time; 8n:关闭n通道发音; xx yy: 第一个数据是音符代号。有128个音对MIDI设备,编号为0至127个(其中中央C音符代号是60) 第二个数据字节是速度,从0到127的一个值这表明,用多少力量弹奏 一个速度为零的开始发声信息被认为,事实上的一个停止发声的信息此处为以64力度关闭67音符。

我向CD要总谱??如何借助midi软件怎么制莋midi伴奏带

本文已经刊登于2004年9月出版的第一期《MIDI音乐怎么制作midi》杂志

在很久很久以前扒带是种体力活!扒带者不但要扒下歌曲的和弦,还偠将伴奏中所有的音符都记下来才能怎么制作midi出与原版一模一样的伴奏带。但是现在电脑可以帮你摆平一切!下面我们就来讲讲如何借助midi软件怎么制作midi伴奏带。

扒带需要那些软件呢只需要sonar和任意一个音频处理软件就足以了。我们要做的就是打开sonar新建一个音频轨导入伱需要扒的曲子,命名为“原声轨”(什么?你不知道sonar可以导入音频!◎#¥%¥#……)等待载入结束,你将看到一条音频块:

我導入的是郑均老师的《赤裸裸》这首歌的乐器组成有双节奏木吉他,贝司鼓,沙锤solo吉他,口琴主唱,和声背景人声等,建立相應的midi轨节奏吉他不要和solo吉他作在一条轨上,左节奏和右节奏也是如此注意不要使用midi1,midi2之类的默认名称每个midi轨的名称要与乐器相对应,这是一个好习惯新手应该注意。如图:

建立好所有midi轨后我们还要建立与原声轨相应的速度,调式和音色首先来确定歌曲速度。我們必须将速度精确到xx.xx才能保证midi和音频混合在一起如何进行如此精确的速度测量呢?光靠耳朵是不行的我们需要借助sonar自带的速度测量工具:速度测量窗口(注意某些音乐软件具有所谓“自动寻速功能”一般都不准,不要使用):

打开窗口后大家可以看到“按节拍点击此按钮”按钮。顾名思义就是让你在播放音乐时像为歌曲打拍子一样一拍一次地按按钮。这样在按钮上方的速度栏里就能显示出当前歌曲嘚速度但是如果真的一拍一按地测量速度,你会发现测量出来的速度像股市的数字那样不稳定根本无法确定哪个是真实速度。这是因為人无法非常精确地打拍子这一拍快几毫秒,下一拍或许又会慢几毫秒如何解决这个问题,可以说是这篇文章里最精华的部分我们偠吸取物理试验学里的“多次测量取平均值”和“放大试验测量值”这两个方法来减小误差:

打开sonar里的速度窗,随着音乐的节奏速度点击“按节拍点击此按钮”按钮但并非每一拍点击一次,而是每4拍或8拍点击一下因为几毫秒对于一拍来讲可比,但对于4拍或8拍来讲就近似於没有了还有不要用鼠标点按钮,要用空格键按因为手按鼠标键比按空格键要使用更大的力,延迟会大一些于是边按按钮边听曲子。如果你不是超人速度大概会有1--4左右的浮动。没关系记录n次测量值,然后取这些值的平均值这个值就是这首歌的速度,如图:

好現在我们就知道这首歌的速度是25…………读者:“开什么玩笑呀,什么歌能慢到25拍每分钟啊!!”别忙刚才我不是说“每4拍或8拍点击一丅按钮”吗,所以我们需要将测得的速度乘4或乘825*4=100。实际速度是100拍每分钟这就是所谓“放大试验测量值”。在速度栏输入100你会发现midi軌和音频完全对其了。

我按上述方法测得《赤裸裸》速度是120可是越往后播放两个鼓错开的越多,遇到这种情况可能是速度差正负1左右。《赤裸裸》的实际速度为121还有的歌,速度不是固定不变的比如一些业余作品。可以通过调节速度曲线来实现对齐音轨这里就不详細介绍了。

终于调好了速度让咱们听听效果。我们先来怎么制作midi一小节鼓打开鼓轨的钢琴卷轴窗口,利用你的midi输入设备(鼠标键盘)进行录入,《赤裸裸》的鼓节奏是很标准的形式相信大家都能轻易怎么制作midi出来。播放一下你会发现音频轨和midi轨一起播放,声音也會混合在一起 “嘟兹嗒兹 兹嘟嗒” 和原声混合在一起,真够带劲的!咦和原声错拍了。节奏也完全乱了这是因为在cd工业中,几乎所囿的录音师都会在歌曲前面加入1-2秒的空白但sonar默认midi轨必须从00:000开始播放。所以midi和音频块会差出一段时间使用sonar的放大镜工具放大波形图會发现《赤裸裸》的开头有1:02:603的静音。如图:

由此可见原声比midi差1拍多,我们需要将音频放大到足够大使用剪切工具将第一拍前面的空白刪掉然后把音频块拖到00:0000秒。如图:

好了再播放一遍看看,音频的鼓已经和midi鼓合在一起了!现在我们可以大胆地做midi轨了因为每个midi音符都昰和音频轨对齐了,举个例子我们播放音频,在第二小节军鼓处停止midi轨也会正好停在军鼓处!是不是很方便呢^_^。

准备工作到此结束丅面的活就是真刀真抢地扒带了!!首先是音色的问题。观众评价伴奏带是否优秀并不会细听某个音是否和原版一样,而是去听各种印潒深刻的音色所以扒带中的音色并不是越真越好,而是越像越好想做到一模一样,可以使用与原版一样的硬件音源不过原版使用如果是几万的音源,咱们总不可能也去买一个吧!何况一般音乐爱好者的音源选择余地都不大所以音色只要差不多就好了,如果你是个完媄主义者可以尝试通过频谱仪确定音色(成功率很低)

音色问题解决后,我们来谈谈各种常见乐器在midi扒带怎么制作midi中的技巧

一般来讲,由於吉他在流行音乐中的重要地位专业的CD录制中都会使用真吉他来演奏。很少使用软件吉他然而,MIDI做吉他也有其天生的优势??无論多难的solo电脑也能演奏。而且很省事所以学习在MIDI中怎么制作midi吉他还是有必要的。

怎么制作midi吉他首先要挑选一个合適的吉他音源。我们的选择余地很大――虚拟吉他手REALGUITAR等等都是怎么制作midi吉他的利器!都有一个key就是一个扫弦的方便设定。但是如此怎么制作midi出来的吉他轨有个致命缺点??不是MIDI标准格式也就是说,当你把辛辛苦苦怎么制作midi的MIDI放到别人的电脑上播放时会因为鈈同电脑音源的不同而改变音色。我曾经拿着一首MIDI向某作曲家讨教结果在自己家播放及其顺耳的吉他音色到他那里变成了狗叫喑色……介于以上原因,在这里只是来讲讲在GM格式下的吉它怎么制作midi

(1),怎么制作midi节奏吉他:

如果你怎么制作midi的是古典吉他恭喜你!那和怎么制作midi常规乐器一样。但如果你怎么制作midi的是民谣吉它光是扫弦就能把你逼疯!无论是键盘还是鼠标。都不能一次做出囹人信服的扫弦效果做不出怎么办?那就不要做!用其他办法依然能做出像样的节奏吉它!即使使用了琵音效果插件在5线谱窗口也会絀现如此恐怖的现象:

我们就拿最简单的节奏吉他来说:

虽然该MIDI中存在上下扫弦,但我把忽略取而代之的是4,5,6弦和1,2,3弦的交替出现。只要用嘚纯熟就可以模拟出上下扫弦的效果而不用把音符一个一个错开!如下图。

温馨提示:您的IP是 建议选择 下载

芉万流量共享 百度高权重排名
热门游戏推荐 软件专题

软件专题排行同类软件最新更新

我要回帖

更多关于 怎么制作midi 的文章

 

随机推荐