终于解决了一个困扰多年的问题,虽然都9102年了不知道还有没有人用MIDI格式的BGM……不过旧版的RM仍然有不少人在用,也许有人还会需要解决这个问题于是最后还是决定写下来。MIDI格式也有独特的优势,它的文件一般很小,在编曲优秀的情况下也能发挥出不错的效果,如果希望游戏文件尽量小使用MIDI格式BGM是个不错的选择。
注:本文适用于RMMV之前的版本,由于对MIDI文件的了解并不多可能出现一些用词不准确之类的现象,不过总得来说是一个外行也能掌握的解决方法。ogg格式BGM的循环播放设置方法已有前辈给出详细教程,可用搜索引擎查找。
1. 准备工作
使用过旧版本RM的朋友一定知道,软件自带素材中的BGM并非从头到尾循环,比如很多战斗BGM有一个开头,之后在固定的段落循环。
但是当我们找到其他MIDI音乐素材想要设置循环点的话该怎么做呢?RM的帮助文档其实回答了这个问题:
然而这不免让人感到一头雾水,控制切换的111号又是什么啦?
在解释这些之前,首先我们可以了解一下MIDI文件是什么(来自百x百科):
MIDI(Musical Instrument Digital Interface)乐器数字接口 ,是20 世纪80 年代初为解决电声乐器之间的通信问题而提出的。MIDI是编曲界最广泛的音乐标准格式,可称为“计算机能理解的乐谱”。它用音符的数字控制信号来记录音乐。一首完整的MIDI音乐只有几十KB大,而能包含数十条音乐轨道。几乎所有的现代音乐都是用MIDI加上音色库来制作合成的。MIDI 传输的不是声音信号, 而是音符、控制参数等指令, 它指示MIDI 设备要做什么,怎么做, 如演奏哪个音符、多大音量等。它们被统一表示成MIDI 消息(MIDI Message) 。
所以,MIDI文件的本质是一个乐谱,其中有记录音符的数据,也有记录音色、音量等信息的控制数据,而我们所需的控制循环的记号也是一种控制参数。(不过不理解这些似乎也不太影响后面的操作)
接下来我们需要一个可以编辑MIDI文件的软件工具来帮我们把循环记号写入MIDI文件。我所用的软件是Domino,一个由日本人制作的免费MIDI编辑器,功能比较齐全(Cubase这类的软件没有使用过所以不太清楚如何实现MIDI控制参数的编辑,不过如果没有更高的音乐制作需求用Domino就足够了,而且软件体积很小对电脑负担不大)比较神奇的一件事是我是在黑乐谱相关的贴吧无意间发现的这个软件……
官方下载地址在这边:MIDI音楽編集ソフト「Domino(ドミノ)」 | TAKABO SOFT (目前无需翻墙)
bad piano贴吧已有简易教程和汉化补丁,可以参照此帖:【图片】【简易教程】Domino-神秘而强大的MIDI编辑器【badpiano吧】_百度贴吧
汉化补丁:【图片】【软件】MIDI 编辑软件 Domino 汉化版【badpiano吧】_百度贴吧
感谢以上作者提供的资源。
软件的安装和汉化在此不在赘述。以下的操作使用了汉化版做演示。
2. MIDI文件的编辑
使用Domino打开RM自带BGM的进行观察,可以发现在A1音轨上第六小节处有名为CC:111的控制参量,这就是RM可以识别的循环点位置。那么接下来只要照猫画虎就好了。
在钢琴窗中将光标移动到需要的位置,点击菜单栏中的插入-control change便可以在左侧列表中看到一个新增的休止符,双击休止符可以对该位置的控制参数进行编辑:
其中CC变量一共有128个,其中有控制音量、颤音、效果等功能的变量,我们只要插入CC:111就大功告成……然而,事情并没有那么简单,默认的配置里并没有111号,因此我们需要编辑音源定义文件。简而言之,在Domino中无论是乐器的名称还是控制参数的名称都是由音源定义文件获取的(这里不理解也没有大碍)
接下来就是编辑音源定义文件的过程,建议使用notepad++进行编辑(因为这个编辑器可以识别多种代码,显示更为有条理)。进入Domino目录下的Module文件夹,用notepad++打开ok_GSm.xml,可以搜索Folder Name="[000-127] CC"找到CC变量的定义位置,之后照猫画虎地在列表中加入我们所需的变量就可以了,代码如下:
<CCM ID="111" Name="CC:111">
<Value />
<Data>@CC 111 0</Data>
<Memo>RPG maker loop point</Memo>
</CCM>
(<Memo> </Memo>中间是填写变量说明的地方,可以根据自己的喜好填写。)将修改好的音源定义文件保存,如果为了保险可以另存文件,之后再在首选项中选择刚刚编辑的文件。值得一提的是音源定义文件名和首选项中看到的名称不同,文件最开头的ModuleData Name=“ ”处的引号里才是Domino软件中看到的音源定义文件名称。
之后我们再打开事件属性窗口,就可以看到新定义的CC:111控制参数了,选择该参数并点击确定。
之后导出MIDI文件在RM中播放,就可以发现音乐会在指定的位置循环。
3. 番外篇:如何让MIDI音乐更好听
很多人拒绝MIDI音乐的原因便是音质很差,音色很假……然而,这不是MIDI的问题而是软音源的问题!之前已经提到MIDI文件相当于乐谱,那么乐器是什么呢?在系统中有一套默认的MIDI音源,它的体积不大音色也不是很动听,然而通过替换音源可以让MIDI音乐的体验发生飞跃。
至于替换软音源的方法,可以参考:重新定义MIDI体验—— Coolsoft VirtualMIDISynth 虚拟驱动评测(附下载)-电脑作曲与软音源-中国电子琴在线论坛
其中用到的软件Coolsoft VirtualMIDISynth资源还比较好找,找软音源可以搜索soundfont,个人比较喜欢SGM-V2.01这个音源,音色比较好只是声音有点小……
虽然对于电子、摇滚等特效很多的风格MIDI并不是那么容易制作,不过传统RPG的曲风(比如交响乐、民族调)还是很适合用MIDI制作的。而且对于想要自己制作音乐、注重版权又没有资金购买昂贵的编曲软件的游戏制作者来说,用MIDI制作音乐的成本也很低(不过如果想要制作商业游戏要注意软音源的使用规约)。
那么祝各位能愉快地使用MIDI音乐。
!