2006-5-11 14:46:44 来源:http://www.gtp.cn 作者:网络 次数:
音色是构成乐音的基本要素之一。在传统音乐的创作过程中,从作曲家、指挥家、演奏家到录音 师,各人的关注点不尽相同,但对音色的苛求他们都是毫不含糊的。在这里,音色的基本性质主 要取决于发音的乐器。因此,对具有不相同音色的乐器的选择和雕琢,就成为那些环节中颇费心 思而又需要优先解决的问题。 到了MIDI音乐似乎就大不一样了。打开一个作曲软件或菜单屏,找到它的音色选择清单,竟有如 此众多的音色供选择!顷刻间能让你惊叹不已。鼠标轻轻一点,手到擒来,竟是如此的轻松便 捷!然而,也常常会有让人困惑以至奈何不得的时刻:明明选用了某种音色,发出的却是另类声 音;音色已选用了,软件的音色表中却“看”不出来;音源中上好的音色一大串,到软件的音色 表选择栏中却偏偏对不着号;兴高采烈地扛回家一台新音源(或合成器),汗流浃背也找不着软 件中的音色清单却让人兴致全无…… 音色表究竟出了什么问题?音乐软件出了什么“错”?即便找来某些电脑DIY“高手”也一时难 于下手……。其实,我们完全可以自己动手“排错解难”,并同时体验一回当“准软件工程师” 的乐趣。本文将为你提供这一途径。 (一) 音色参数文件的作用无论是音色表的神奇,还是它的无奈,其实都不是音色表本身的功和 过,真正起作用的是隐藏在它身后的软件程序文件组中的音色参数文件。该文件决定了音色表及 相关的音色栏目中的列表显示内容,决定了在MIDI制作中与音色相关的一系列因素和软硬件的响 应。音色表只是一个向我们展示音色参数的窗口,为人们提供了一个与机器友好交流的操作界 面。 音色参数文件的功能主要表现在以下几个方面: 1. 标识MIDI乐器,选择音源设备: 这是音色参数文件的第一项功能。当前,投放市场上的音 源、合成器等发音设备,生产厂家不少,型号众多,产品更新换代的频率也越来越高。MIDI制作 室和MIDI音乐制作人所使用的音源类设备各异,不同的设备的音色数据设置具有不同的个性特 点。一般的MIDI音乐软件中都存放了与许多常见的发音设备相对应的音色参数文件,它们对这些 不同音源的音色数据一一作好了定义,用户可以根据自己当前使用设备的厂家和型号,从软件的 音色表中挑选出对应的音源或合成器的音色组,从而使软件和硬件的配套和协调精确、高效。 2. 指定音轨使用的音色: 这是音色参数文件更为重要的功能。按照GM的规范,MIDI音源应当具 有128个标准音色。它们的名称和排列都是固化了的。实际上,绝大多数音源和合成器产品中存 有的音色远远超出了这个数。GS规格和XG规格把128个音色当作其中的一个组——基本音色库的 音色,在此基础上新增了若干个扩展音色库,理论上可以达到16384个,每个音色库当中又可以 有128个音色位。目前这些音源中的实际音色总数已经是用千位来计算了。但遗憾的是,GS和XG 的扩展音色的排列、音色命名和数据格式都有相当的差异。就是同规格、同厂家的产品,不同型 号乐器中预置音色的数量和状态也会有所不同。此外,还有一些非GM、GS和XG规格的产品,他们 本身强调的就是个性,音色数据更是千差万别。 解决MIDI技术中普遍存在的这种多元化现象,音色参数表即担当此任。它依据各种不同的MIDI乐 器(音源或合成器)的音色拥有量、音色命名、排列方式和音色数据格式,按照音乐软件数据接 口读数和转换—的要求,对应地编写进音色参数文件。它让你在操作界面上,只需要与简单明了 的音色名称打交道。用户端只要在音色表中挑选出相应的MIDI音源设备音色组,然后就可以轻松 自如地“点”取该设备中的任意音色了。 2. 指定音轨使用的音色: 这是音色参数文件更为重要的功能。按照GM的规范,MIDI音源应当具 有128个标准音色。它们的名称和排列都是固化了的。实际上,绝大多数音源和合成器产品中存 有的音色远远超出了这个数。GS规格和XG规格把128个音色当作其中的一个组——基本音色库的 音色,在此基础上新增了若干个扩展音色库,理论上可以达到16384个,每个音色库当中又可以 有128个音色位。目前这些音源中的实际音色总数已经是用千位来计算了。但遗憾的是,GS和XG 的扩展音色的排列、音色命名和数据格式都有相当的差异。就是同规格、同厂家的产品,不同型 号乐器中预置音色的数量和状态也会有所不同。此外,还有一些非GM、GS和XG规格的产品,他们 本身强调的就是个性,音色数据更是千差万别。 解决MIDI技术中普遍存在的这种多元化现象,音色参数表即担当此任。它依据各种不同的MIDI乐 器(音源或合成器)的音色拥有量、音色命名、排列方式和音色数据格式,按照音乐软件数据接 口读数和转换—的要求,对应地编写进音色参数文件。它让你在操作界面上,只需要与简单明了 的音色名称打交道。用户端只要在音色表中挑选出相应的MIDI音源设备音色组,然后就可以轻松 自如地“点”取该设备中的任意音色了。 4. 指定MIDI控制器名称: 这是有些软件的音色数据表的“兼职”功能。MIDI控制器是制作中使 用最频繁的技术手段之一,它对音乐的表现力起决定的作用,给软件作这种指定显得尤为重要。 充分发掘音源或合成器的MIDI控制器功效,是提高MIDI音乐质量的重要途径。【图5 Cakewalk控 制器名称】 在整个MIDI制作链中,音色参数文件充当了用户、计算机和音源设备三者之间的翻译密码册,成 为他们互相沟通的桥梁。 (二) 音色参数文件的编辑思路 音色参数文件是为MIDI音乐软件即时提供音色显示、音色选项、音色编码以及与音色相关的软件 操作环境的参数文件,它是程序文件组的补充和扩展。因此,它的数据编写方式和功效是由其所 属的MIDI音乐软件所规定了的。 1. 音色参数文件的构架: MIDI音乐软件中的音色参数文件,一般都由固定扩展名(后缀)的同 一种类型的文件组成。由于MIDI音源设备的种类繁杂,且还在日益增多,为便于管理和使用,通 常都是按MIDI乐器的生产厂家,分列为各个不同的音色参数文件。目前的许多综合音源,一台之 中就有数千种音色,因此也有的干脆就按不同的MIDI乐器产品分列。它们用MIDI乐器生产厂家或 乐器名称命名文件,由此组成一个音色参数文件组。 比如Musicator的音色参数文件均以mod为扩展名,其3.0中文版的安装文件中就含有 SC55inst.mod、MU90.mod、MU100.mod、VL70m.mod、JV1080.mod、XP80.mod等20余个音色参数文 件。有的音色软件将音色参数文件分为几类,不同类型的参数文件在软件中分担着不同的职能。 比如XGworks中的音色参数文件就分为两类,混合音色表参数文件MixerVcelist.ini和事件表显 示分列文件组文件。 音色参数文件内部数据呈结构化和模块化组合,类似于常见的高级计算机语言。采用列表式或赋 值式语句,显得相当简洁、通俗,让人一目了然。每个文件至少有一个音色指定模块(段落), 有扩充音色库的音源设备,除了有指定基本库的音色模块外,以下还有分别定义其它音色库音色 的数据块。也有的采用分级嵌套的方式编写数据。数据模块(段落)内,每行定义一种音色(也 称乐器),其中必须指定该音色的库号选择MSB、库号选择LSB和程序号Program ,以及音色名 称,或许还有相应的代码。 有的软件采取多音源多项目集成的方式编写,在一个音色参数文件内把同数据类型同厂家的MIDI 乐器都列入其中。由于音色等内容庞杂,且又有不少是相互通用的部分,因此,采用类似于C语 言中的定义和调用函数的方式写入数据,比如Cakewalke音色参数文件,它虽然文件较大,但编 写效率高,调用起来比较方便。 2. 音色参数文件的调用: 音色参数文件的使用一般无需用户直接参与,在软件的启动过程中, 它将会自动地寻找音色参数文件,将它们读入并作好设置。但有的软件对缺省方式以外的音色参 数文件的选择和调用,需要用户按操作要求自己动手。Cakewalk中要改变当前的音色选项,必须 首先能从程序文件认出所需要的音色参数文件,或者另外给出一个新的参数文件,然后分导入音 色参数文件和选用音源设备(乐器)两步完成音色调用。 Cakewalk 音色参数文件的导入步骤是:进入Tools...(工具)/Instruments(乐器)菜单,先 后点击Define(定义)、Import(导入)按钮,弹出的对话框将会把程序目录下的所有音色参数 文件列出来供你挑选,你可以从中点取所需要导入的文件。【图6 进入Tools/Instruments,先 后点击Define、Import,选音色参数文件】 接下来,在Improt Instrument Definitions(引 入乐器定义)对话框中选取所需的一个或多个音源设备。【图7 选取一个或多个音源设备】 而后,再回到Tools/Instrument菜单,在Assign Instrument(指定乐器)对话框中,将左侧 Port / channel栏中的每一个通道与右侧Uses框中的所需音源设备连结起来。【图8将通道与音 源设备连结起来】 它为我们提供了使用音源的灵活多样性:既可以让所有的通道使用同一音源,还可以让不同的通 道使用不同的音源。导入和调用操作也可以到Cakewalke的音轨窗中,从双击Patch(音色)栏开 始。 3. 为什么要编辑音色参数文件: 音色参数文件一般都是由软件设计者或MIDI乐器厂家编写,或 附在程序文件中,或通过其它途径(如Internet网)发放。既然如此,为什么还需要我们考虑文 件编写的问题呢? 在实际应用中,光会使用现成的音色表(音色参数文件)是远远不够的。事实上,随着电脑科技 的飞速发展,电子乐器的更新换代日益加快。音源和合成器新产品投放市场,与对应于它们的音 色参数文件的发布往往是不同步的,音色参数文件一般都滞后于设备的发布,其时差甚至相当 大。更何况一种新音源和合成器产品面向的又是种类繁多的MIDI音乐软件,这就意味着等待着他 们的是将要去分别编写对应于这许多不同软件的不同格式的音色参数文件。无论是对MIDI乐器厂 家,还是软件开发设计商而言,这都是一个难以周全应对的情况。 对音乐人来说,买来新乐器后,一般都要被迫放弃MIDI音乐软件中使用音色的常规操作,重新回 到手控音源面板上的旋纽的原始操作中去。要知道,用户对这个新乐器的使用效率,就等于他投 资购置它的效益!面对这种厂商的“无暇”顾及的“小事”,为什么不可以考虑自己动手去解决 呢? 即便是现成的音色参数文件,在音色操作中,我们也会经常为自己不习惯或不喜欢原有的设计而 叹息。比如,有些对英文不大熟悉的人就很不喜欢那种没有音色号和库号,尽用英文显示音色 (乐器)名称的音色选择对话窗。对此,我们也完全可以动手,在音色参数文件中,加上所希望 有的音色标号,或直接把音色显示名称由英文改用中文。 还可以根据制作音乐的风格和自己的爱好,对音色参数文件中原有的音色重新分组或重新建组, 形成个人化的音色选项单。例如Roland的SC88-pro和YAMAHA的MU128等音源中含有中国民乐音 色,但它们都夹杂在128个基本音色下的数十个音色库之当中,调用时寻找起来很不方便。我们 可以把所有的中国民乐音色集中编为一个组。打开音色列表,只要挑选中国民乐组音色,一个民 族乐队就尽展眼前。【图9 新增Musicator中国民乐音色组】 4. 编辑音色参数文件的方式: 如前所述,我们完全有理由把音色参数文件看作是一种简单明 了、易懂易编的普通文件。音色参数文件后缀不尽相同,但一般都是ASCII码文本类文件。凡是 文档编辑软件,都可以将它们打开。如Windows附件应用程序中的记事本、写字板工具、文字处 理系统Micorosoft Word和WPS等等,可以在这些编辑器中修改或编写音色参数文件。要把它们当 作“文本文件”类型读入。 文件内容只能采取文本编辑方式编写,不可作字体、颜色、版式等其他版式编辑。编好后的文件 也一律要用“文本方式”存储,最好使用记事本编辑器编写。保存后的文件如果是txt文件,则 必须把它的后缀txt改成与你所选用的软件中的音色参数文件的后缀。 对英文不熟悉或不感兴趣者,可以在音色表标题、分组标题和音色名称中直接输入中文。在中文 Windows环境下,软件的音色表中将全部以中文显示。 每种类型的MIDI音乐软件都有它特有的音色参数文件,不仅文件的扩展名不同,文件的大小、数 量不同,文件内部的层次结构和语句书写的格式都可能有些区别。虽然其结构比较简单,但它们 的法则是严格的。只有按照它们的各自的规格编写,才能保证编写的数据能在软件中得到正确的 体现和响应。 (三) Musicator音色参数文件的编辑 Musicator是专业音乐工作者较喜爱的MIDI音乐软件。它的音色参数文件由若干个以音源名称为 主文件名(前缀),以mod为扩展名(后缀)的文件组成。按Musicator自带文件的规范,一台综 合音源设备中的普通音色和鼓组音色需要分列为两个音色参数文件。 1. 文件结构和语句格式:Musicator的音色参数文件内部结构比较简明单一,共有三类不同功能 的语句,每句书写一行。 一是音色表标识语句。它处在文件开头的第一行,可以由任意的字符(字母、数字、中文均可) 组成,一般都把这个文件所编写音色的音源设备名称作为该句的内容。这一行的字符将原样显示 在音色表上部的乐器名称下拉选择框中,供人们选择音源设备。 二是音色定义语句。每行(句)定义一种音色,这是文件中最多也是最重要的语句。每行的书写 分为两个部分。第一部分是库号和程序号,其中又可以包含三个数字:第一个数字是音色库号选 择MSB的值,数值范围是0-127;第二个数字是库号选择LSB的值,数值由1-128,如果不用设置 MSB和LSB,则可记作-1;第三个数字表示音色程序号program(音色号),数值由0-127,它与 通常人们所认定的音色号(N)是N-1的关系。第二部分是音色名称说明文字,可以用字母、数 字,也可以用中文。以上每个数字和部分之间用一个空格符分隔。【图10 音色定义语句】 三是音色分组标题和标识语句。从文件的第二行开始,凡是与音色定义语句的格式不相同的字符 行,均一律视之为分组标题语句。可以使用任意字符,标题行中的字符将会在软件音色窗的乐器 组窗中显示出来。作为标识,从当前标题行至下一个标题行之间的所有定义的音色,都将归属于 这个分组之中,音色表显示在右边的音色栏内。 下例是XP-80的音色参数文件的内容: XP-80 Presets ---- 音色表名称 Preset Bank A ---- 分组标题 81 0 0 64Voice Piano 81 0 1 Bright Piano ---- 音色定义 81 0 2 Classique ---- 音色定义 ……………… Preset Bank B ---- 分组标题 81 1 0 Dist Gtr 1 ---- 音色定义 81 1 1 Dist Gtr 2 ---- 音色定义 81 1 2 R&R Chunk ---- 音色定义 ……………… 在最后一行的“音色定义”中,前部分的“81”是MSB,“1”是LSB,“2”是音色号;后部分的 “R&R Chunk”是音色名称。其它“音色定义”行与此相同。 2. 例说新增普通音色组: 了解了Musicator音色参数文件的结构后,就可以在原有的文件中随 意增减音色和音色组。 在编辑文件之前,一定要读清楚所用音源或合成器的技术说明书,弄清楚音色库的数据结构和相 关数值,准确了解其音色组、鼓组各音色的MSB、LSB和Program值以及音色名称。这些都应当是 举手之劳了。剩下的就是用一个文档编辑软件(如记事本)新建或者打开一个参数文件,按以上 格式照本输入,最后存为一个以MOD为扩展名的文本类文件就可以了。也可以直接用中文输入音 色表标题、分组标题和音色名称。 例如,拥有一台SC88Pro音源,为了提高效率,避免在做民乐时费时去搜寻民乐音色,计划把散 落在各个音色库中的所有民乐音色集中到一块,新编一个中国民乐组。可以按以下步骤操作: 第一步,用“记事本”(Notepad.exe)打开Musicator安装目录下的SC88Pro音源的音色文件 SC88Pro.mod。读取文件操作中,应当在“打开文件”对话框的文件类型中选择“所有类型”, 否则在文件列表栏中看不到这个文件。 第二步,在SC88Pro.mod文件的最后,加上一行分组标题“China Instruments”或“中国民 乐”。再到文件中分别找出所有的中国民乐音色,并把它们把一一拷贝到这个分组标题之下。 第三步,存储文件,即告结束。如果被修改的文件是“只读”属性不能直接“存储”,就要先在 这个文件的属性选项中,取消“只读”属性。 修订后的SC88Pro.mod文件如下: SC-88Pro Piano 0 -1 0 Piano 1 0 -1 0 Piano 1w 16 -1 0 European Pf 以上是原文件 …… ───┘ China Instruments ───┐ 16 -1 72 Di 以下是新增的段落 9 -1 105 San Xian 32 -1 105 PiPa 1 -1 107 Gu Zheng 8 -1 110 Ev Hu 9 -1 110 Gao Hu 32 -1 111 Suona 1 33 -1 111 Suona 2 在一个音色参数文件中,可以一表一音源,也可以一表一类音源,或者数种、数类音源都组合在 一个文件中,只要符合编写格式,分类清晰可辩,把不同音源设备用分组标题指明即可, Musicator约定俗成的分置文件原则是可以打破的。 新建的或修改后音色参数文件,只要放在Musicator安装目录下,软件启动时就会自动读入。使 用Musicator 2.0及以下版本时须注意,它的音色表最多只能读入10个音色参数文件。因此, 应当把那些用不上的音源或合成器的音色参数文件删除。 (四) Cakewalk音色参数文件的编辑 Cakewalk是至今为止使用者和为其撰文著书最多的音乐软件,笔者在这里再进一步揭开其音色参 数文件的神秘面纱。 Cakewalk的音色参数文件以ins为后缀(扩展名),主文件名一般用厂商或MIDI乐器品牌的名 称,一个文件中含有这个厂商或品牌的一系列MIDI乐器。这个文件主要是为软件提供有关音色的 参数,但还包含有MIDI控制器的作用参数。Cakewalk的安装文件中自带有许多个这样的参数文 件。 1. 四个模块的结构和功能: 在ins文件内,一般可分为4个大的模块:音色名称(Patch Names)模块、音符名称(Note Names)模块,控制器名称(Controller Names)模块和乐器定 义(Instrument Definitions)模块,每个部分的起始处,用英文句点加上模块的英文标题开 头。后面紧跟的是该模块的参数。 各模块之间,以“;----------------”分割。其中的分号相当于汇编语言中的分号或DOS命令 中的“REM”,表明该行中此标号后的字符在软件读数时,将会被忽略,它仅起注释作用,为编 写或阅读参数文件者作参照。 文件中的四个模块分述如下: ① Patch Names(音色名称): 这第一个模块的作用,是定义所有的音色库及其所包含的音色 名称。其中,以音色库为单位又可以分为若干个音色定义段落。每个音色库段落的第一行是加方 括号的音色库名称。从第二行开始,均是定义各个音色名称的语句,每句采用赋值式的结构。它 的格式是:“音色号=音色名称”。音色号取值0-127,音色名称可以是任意字符及组合。在这 里,音色号的值=常规音色号 - 1。例如: 21=22 Acordion 等号右边的 Acordion(手风琴)是音色名称, Acordion音色在GM中列为22号音色,它的前面照 常标为“22”,它们将会显示在音轨窗的Patch(音色)栏中。【图11 等号右边音色名称显示在 Patch栏中】 等号左边,赋值音色号=22-1,因而记作“21”,它是供软件读入的音色号值。 在当前编辑的音色参数表中即将要定义的所有音源设备的所有音色库及其音色,都应当以音色库 为单位,在Patch Names块内,照以上格式定义,并且最好以单个设备为线索顺序编写,以便于 最后的调用。 以下是YAMAHA.ins的音色名称模块中开头的一部分段落: -------------------------------------------------------- Patch Names ---- 模块名称 [MU80-90R Bank 0] ---- 音色库标识 0=01 GrandPno ---- 音色定义 1=02 BritePno 2=03 E.Grand 3=04 HnkyTonk ………… [MU80-90R Bank 1 (KSP)] ---- 音色库标识 0=01 GrndPnoK ---- 音色定义 1=02 BritPnoK 2=03 ElGrPnoK ………… [MU80-90R Bank 100] ………… ② Note Names(音符名称): 由于多数音源设备的鼓组和音效音色是按照“程序号定音色组、 音符号区分单个音色”的原则排列,因此,鼓组及音效组的音色仅仅在Patch Names模块中定义 是不够的,还必须在指明程序号后,再指明其各个音色所在的音位(键位),这就是Note Names 模块要实现的目的。 在Note Names中,对应于上一个模块中定义的鼓组音色组,分别将每个音色组列为一个段落,再 对它的每个音符(键位)的音色予以命名。如: 60=Bongo H 其中,“60”是中央C的MIDI音符号,“Bongo H” 是打击乐器音色名称(高音邦戈鼓)。 一个音色组段落内的语句是,首先以方括号列出以上定义的这个鼓组的名称,再用“音符号=音 色名称”的格式,以音符号为序,分别赋予每个音位相应的音色名。这里指定的打击乐名称在鼓 组音轨的钢琴卷帘窗中,将会按键盘排序予以标出。【图12 打击乐名称在钢琴卷帘窗键盘上标 出】 鼓组的划分一般都是以某种特定的音乐风格为线索,集合一整套打击类乐器的音色。因而在这许 多不同的组合中,有许多常用的音色(乐器)是相同的。为了减少“音符名称”定义中的大量重 复,可以在其中(第二行)加上一个“Based On=××××××”语句,用作基本音位音色的缺 省指定。也就是只需定义本段落中特有的音位的音色名称,其它与已经定义了的“××××× ×”鼓组音色相同部分的定义语句就可以省略。例如: Note Names ---- 模块名称 [MU80-90R Analog Kit] ---- 鼓组名称 BasedOn=MU80-90R Standard Kit -- 缺省指定 28=Reverse Cymbal ----指定键位音色名 30=Hi Q 31=SD Rock H 33=Bass Drum M 35=BD Analog L ………… [MU80-90R Standard Kit] -- 缺省指向的鼓组 13=Surdo Mute 14=Surdo Open 15=Hi Q 16=Whip Slap 17=Scratch H ………… 在这里,等号左侧的音符号供软件识别键盘,等号右侧的音色名称将会原样显示在钢琴卷帘窗中 对应的键盘上。 音效组键位音色的定义与鼓组相同。 ③ Controller Names(控制器名称): MIDI控制器的编号和名命在GM、GS和XG的产品中有些区 别,其他规格的产品差别就更大。在Cakewalke中,可以根据产品的实际对MIDI控制器在软件中 的使用作出定义。这项功能附加给了Cakewalk音色参数表的第三大模块。这里的格式与前面部分 相同,每种MIDI乐器编写一个段落,首行用方括号列出“音源设备名称+Controllers”,从第二 行开始,用“控制器号=控制名称”的格式,将该乐器所使用的所有控制器一一列出。控制器名 称中的字符,将会在钢琴卷帘窗的控制器选项下拉菜单和MIDI事件窗的第一数据栏中显示出来。 【图13 控制器名称在钢琴卷帘窗的控制器选项下拉菜单中显示】【图14 控制器名称在MIDI事件 窗的第一数据栏中显示】 ④ Instrument Definitions(乐器定义): 如果说,前三大模块是建造所有MIDI乐器的各个组 件的话,那么,最后的Instrument Definitions模块,就是对这个音色参数文件所含的各个乐器 的音色表单元构件的总装了。 这里以每一种MIDI乐器为一个段落,同样以方括号指定音色表名称,这个音色表名将会出现在 Cakewalk导入音色文件时的选单中。下面就分别指定在这个乐器音色单中需要从前面调用已经定 义了的MIDI控制器、音色库及其音色、键位音色等段落。 控制器指定句是“Control=已定义的一个控制器段落名称”。控制器指定一般只有一句,因为一 种乐器只有一种控制器模式。例如 Roland SC-55 音源的指定句为: Control=Roland GS Controllers 音色库指定句的格式为“Patch[x]=已定义的一个音色库音色段落名称”。一句指定一个音色 库,直到指定了该MIDI乐器的所有音色库为止。 这里的x值,就是让软件识别的音色库号编码。 例如 Patch[2]=Roland SC-88 Map Capital Tones 指定的数值x和音色库名称,将以“x-音色库名”的形式,出现在音轨窗的音色库栏(Bank) 中,同时也会在从音轨窗弹出的音轨性质(Track Preperties)对话框的音色库选择栏中显示。 例如,有“Patch[1]=MU80-90R Bank1(KSP)”,一经选用,则软件中的上述两处显示为“1- MU80-90R Bank1(KSP)”。【图15 x+音色库名称显示于音轨窗的Bank栏】【图16 x+音色库名称 显示于从音轨窗弹出的Track Preperties框的Bank栏】 如果这种乐器是鼓组或效果组,它们的单个音色是按键位(音符)分配的,就还要写上指名在 “音符名称”(Note Names)模块中定义键位音色段落的语句,格式是: key[x, 程序号]=已定义的一个键位音色段落名称 其中x的值与上面的库号x值相同。例如: Key[2, 32]=Roland SC-88 Jazz Set 【图15 x+音色库名称显示于音轨窗的Bank栏】【图16 x+音色库名称显示于从音轨窗弹出的 Track Preperties框的Bank栏】 2. 关于Patch[x]中x的值: Patch[x]中x的值既然是音色库号的编码,按说大家不会感到陌生。 但是说到这个“x”,人们却往往感到满头雾水,不得其解。打开一个现成的MIDI文件,普通音 色的库号值x人们对它是一目了然的--不就是原本的音色库号么。但鼓组和音效等音色的值有如 8192、16256等却不知从何而来。要正确编写Cakewalk的参数表,就必须弄清楚这个x的正解。 【图17 音色库号等于16256……?】 在计算机语言中,记数的基本单位是一个二进制的“位”,每8位组成一个“字节”。PC机的字 长为16位,即由两个字节组成,其中处在高位的字节称MSB,低位字节称LSB。在MIDI通讯中沿用 此法。 我们知道,音色的选择是要由MSB、LSB和程序号(音色号)三个值共同来决定的。虽然,通常把 LSB称作音色库号,但音色库的定位是由MSB和LSB两个座标共同作用的结果。由于MSB和LSB的有 效数据位都各是7位,MSB和LSB共能形成14位二进制数值,换算成十进制数,MSB和LSB各能计满 128,那么,理论上他们可以有128×128=16384个定位,也就是能够标出16384个音色库号。这么 多的库号从0开始按线性列举,不就出了0 - 16383的编号么? 在这里,Patch[x]中x的值,就是MSB与LSB两值相交,并且换算成十进制数的结果。忽略不同进 制数值的计算,可简单表述为:x=128MSB+LSB 。 当MSB=0时,x的值就是LSB的值。比如XG音源中一般音色的MSB=0,Patch的方括号中就可以直接 写入库号LSB的值。 当MSB≠0时,x的值就会出现大于127的现象。例如,XG音源的鼓组的MSB=127,LSB=0,则 x=128MSB+LSB= 128×127+0=16256;SFX库的MSB=64,LSB=0,则x=8192。 无论什么音源,只要你从它的数据手册中找到它的库号选择MSB和LSB,据此就能正确地写出它的 音色库号编码x,并把它编入参数文件中。 3. 例说增设鼓组音色: 从以上对Cakewalk音色参数文件结构的分析中可知,要在一个音色参数 文件中修改或增减相关的数据,必须同时在几个不同的大模块中进行。不仅要分别按照各部分的 格式要求编写,而且还要将前后相互关联起来。 普通音色和鼓组音色的编辑,后者比前者多了一个键位定义步骤。下面,以在YAMAHA音色参数文 件的MU100音源鼓组音色表中增加一个YAMAHA128音源的中国鼓组(China kit)为例,具体说明 有关的操作方法。 ① 用记事本,用读入“所有类型文件”方式,打开YAMAHA.ins 。【图18 记事本用读入“所有 类型文件”方式打开ins文件】 ② 在Patch Names 模块中定义音色组。先找到 [MU100 SFX Kits]段落。由于MU128音源中国鼓 组的MSB与MU100的SFX鼓组相同,所以,只需在这个段落中增加一行“China kit”鼓组音色库的 定义就可。 [MU100 SFX Kits] 0=1 SFX 1 1=2 SFX 2 …… 34=35 China Kit 中国打击乐 ------ 新增加的定义行 新增鼓组将会出现在选项中。【图19 新增鼓组将会出现在选项中】 ③ 在Note Names模块中,插入一个“China kit”音色组的键位音色定义段落。 在MU128音源中国鼓组中,仅有以下19个键分配了鼓音色采样,其他键都不发声,所以不用写入 作基本音位音色缺省指定的“Based On=”语句: ………… [MU100 Small Latin Kit] ………… [MU100 China Kit] ---- 新插入段落 36=Bangu 板鼓 37=Dagu Mute 大鼓闷音 38=Dagu Heavy 大鼓 39=Paigu High 高音排鼓 40=Paigu Middle 中音排鼓 41=Paigu Low 低音排鼓 52=Zhong cha Mute 镲闷音 53=Zhong cha Open 镲 54=Zhong luo Mute 大锣闷音 55=Zhong luo Open 大锣 56=Xiao luo Open 小锣 57=Xiao luo Mute 小锣闷音 58=Xiao cha Open 铙钹 68=Bang zi 梆子 69=Muyu High 高音木鱼 70=Muyu Mid-High 中高音木鱼 71=Muyu Mid 中音木鱼 72=Muyu Mid-Low 中低音木鱼 73=Muyu Low 低音木鱼 [MU100 Standard Kit (Basic)] ………… 步骤②中和这里的等号右边的乐器名称,可以只写中文,它们在中文环境下,将会在相应窗口直 接以中文显示出来。【图20 新增鼓组将会以中文显示】 ④ 在Instrument Definitions模块的[Yamaha MU100R Drum Kits]音色表单指定模块中,增加鼓 组音色库和键位音色的指定语句。 由于中国打击乐组所在的MU100 SFX Kits鼓组在表中原先已经有了指定句“Patch[16128] =MU100 SFX Kits”,因此只要加入键位音色指定语句就行了: [Yamaha MU100R Drum Kits] ………… Key[16128,34]=MU100 China Kit ----新增行 ………… ⑤ 保存文件。最好存为一个新的ins文件,或将原文件备份。 ⑥ 启动Cakewalk,重新引入这个新的音色参数文件,并选用Yamaha MU100R Drum Kits乐器。 (参照“音色参数文件的编辑思路”有关部分操作。) 这时,我们就能够快速高效地利用原有的音色参数文件来为特有的MU128音源服务了。如果把以 上几处“MU100……”改为“MU128……”,则软件中的显示就与你的音源完全一致了。 要添加普通乐器的音色,只需要在两个模块中操作:先在Patch Names 模块中添加定义新增音色 库及其所包含的各个音色的段落,然后到Instrument Definitions模块中插入调用前面添加的音 色库的语句就告完成。 这些插入的段落和语句,必须准确地参照乐器说明书中的相关参数,严格地按规格编写。如果是 对原有音色参数文件作修改,应当在动手之前先对原文件作一个备份。 (五) XGworks音色参数文件的编辑 在Musicator和Cakewalk中,每种乐器的音色参数只有一个文件。XGworks1.0的音色参数文件有 两个,一个主参数文件(混合音色文件)MixerVceList.ini和一个用近似乐器名称命名、后缀为 ini的辅助文件,前者起决定作用,后者仅作用于XGworks的MIDI事件表。软件中,前一类文件只 有一个,它囊括了所有的音源设备数据,后一类文件有一组。 1. 主参数文件的层次和格式: 主参数文件MixerVceList.ini相对于前两个软件而言,要显得复 杂许多。它采取的是分层定义,层层嵌套调用的结构编写。整个文件分列为若干个数据段落块, 这些段落地就象是一座学校大楼内的每个房间一样,其中有校长办公室、副校长办公室、各系主 任办公室、各班级教室等等,他们虽然都各自占有一室,但他们相互之间是分级指向,分层隶属 的关系。在每一个数据段落块中,前四行是标识本段落层级、功能、指向和大小等属性的说明语 句,第五行以后,才是音色数据。 每个数据段落都以方括号标题开头,段落间空一行。段落的前四句都是以赋值的形式,在等号后 用数码指代相应的内容。 这四个说明语句的性质及其值所指代的意义是: “size”指明本段落所定义的项目的数量,也就是数据语句的行数。 “box”指明本段落在文件中所处的层级,从0开始计数。第一层(最高层)为“0”,第二层是 “1”,第三层是“2”。这里的层级与XGworks软件中音色列表中的目录(Category)相关,第 一层中定义的MIDI乐器(组)清单将出现在音色列表的目录1栏目中,第二层中的音色组名将出 现在目录2栏,第三层中的具体音色名称,出现在右边的音色栏中。【图21 box对应的三层目 录】 “type”项说明本段落的功能作用:“0”是定义音色分组名称,以及该音色组中的音色所占用 程序号的范围;“1”是指定音色表及其音色库号选择MSB的值;“2”是指定每个具体音色名 称、程序号,以及库号选择LSB,“3”是仅仅指定分组名及库号选择LSB。通常有四种类型。 “next”项指明与它将要调用的下一层段落的层级(box)的编号。如果没有向下层调用的段 落,该值为“0”。例如: [Vce-list] ---- 音色表定义段落 size=7 ---- 共定义7种音色表 box=0 ---- 第一层(目录1) type=1 ---- 确定音色表及其MSB next=1 ---- 调用box=1层级的段落定义 0=0,Melody ---- MSB=0的Melody音色表 1=64,SFX ---- MSB=64的SFX音色表 ………… 6=97, VL2 ---- MSB=97的VL2音色表 数据语句的等号左边是序号,右边是指定(赋值)的内容。 各种不同类型段落的数据赋值格式如下: ① 指定音色表及其MSB的段落(type=1): 序号=库号选择MSB,音色表名称(见上例) ② 指定音色组以及各组占用程序号的范围的段落(type=0): 序号=起始程序号,末尾程序号,音色组名称。 例如: 0=0,7,Piano 1=8,15,Parcussion 2=16,23,Organ 3=24,31,Guitar 以上最后一行指定的是第4个音色组,其中的音色从程序号24开始,至31号结束,音色组的名称 是Guitar(吉他)。 ③ 指定具体音色及其LSB、程序号的段落(type=2): 序号=程序号,库号选择LSB,音色名称 例如: 0=40,0,Violin 1=40,8,Slow Violin 2=40,40,Unison 3=40,64,Cadenza 4=41,0,Viola 5=41,40,Viola Double 以上最后一行指定的是第6个音色,其中的程序号是41,LSB是40,音色名称是Viola Double 。 ④ 指定分组及其LSB的段落(type=3): 序号=序号选择LSB,分组名称 例如: 0=0,MIC 1=1,GUITAR 2=2,KEY BOARD 3=3,AUDIO 4=18,STEREO KEYBOARD 以上第一行指定的是第1个分组,其中的LSB是0,分组的名称是MIC(麦克风)。 2. 辅助参数文件的内容: XGworks音色参数的另一类文件我们且称之为辅助音色参数文件,它 是供MIDI事件表在程序号栏内显示音色名称用的。【图22 MIDI事件表中的辅助音色名称】 它以不同MSB的音色表为单位,分别建立文件。一般在前面的主参数文件的第一个段落中定义了 几种音色表单,就应当相应地有几个辅助音色名称显示文件。 这个文件分为两个部分,其中也由若干个用方括号命名的段落组成。两个部分之间空一行。第一 部分只有一个段落,括号中的段落标题就是该音色表的标题,其中指定了该音色表0号音色库中 的基本音色名称,通常有128个。格式是: 程序号=音色名称 第二部分是分库定义音色。它对应于第一部分定义了的若干种基本音色,由同样数量的段落组 成。每个段落的标题就是前面的基本音色名称,它为这个音色的每个不同库号内的变化音色命 名。格式是: 库号LSB=音色名称。 例如: [Grand Piano] 0=Grand Piano 1=Grand Piano KSP 18=Mellow Grand Piano 40=Piano strings 41=Dream ………… [Bright Piano] 0=Bright Piano 1=Bright Piano KSP 3=Stereo Bright Piano 20=Resonant Bright Piano ………… 3. 例说编辑步骤: 如果需要修改或添加,增加一个MIDI乐器音色表,步骤如下: 第一步,用文档编辑器打开MixerVceList.ini文件,在box=0的第一层段落中增写一行音色表定 义。如果仅仅是修改或增减音色表中的音色分组或具体音色,免去这一步。 第二步,建立一个新的音色分组定义段落。或到相应的段落中去修改乐器组定义,它的box=1, type=0 。 第三步,按音色分组,分别建立相应的具体音色定义段落。它的box=2, type=2 。若是增加部 分音色,只要在原有的音色定义段中加上新的音色定义行。在以上操作中,凡是增减了定义语句 行,都要给该段落前面的说明语句size的值作相应增减。 第四步,新建一个与第一步定义的音色表名称对应的辅助音色参数文件,或到相应的辅助参数文 件中作修改,确保MIDI事件表能同步反映新增的音色。 以下举一个增列MU128音源的民乐音色组的例子: 首先,用文档编辑软件打开XGworks1.0安装目录下的主参数文件MixerVceList.ini。因为是对软 件原有的XG音色表作增补,跳过第一步直接进入第二步,修改Melody音色表。 在[Melody]段落中,将size加1改为17,并增写一个中国乐器音色组及其使用程序号区段定义 行: 16=15,111,China Ins. 再在[Sound Effects]段后,增写一个新的[China Ins]音色组的音色LSB、程序号和音色名称指 定段落: [China Ins.] size=10 box=2 type=2 next=0 0=15, 98, Yang Qin 扬琴 1=72, 96, Bang Di 梆笛 2=73, 96, Qu Di 曲笛 3=105, 99, Pi Pa 琵琶 4=107, 98, Zheng 筝 5=109, 96, Sheng 笙 6=110, 96, Er Hu 二胡 7=110, 97, Ban Hu 板胡 8=110, 98, Jing Hu 京胡 9=111, 98, Suo Na 唢呐 其中的音色名称,也可以直接使用中文。 为让新编入的中国民乐音色名在MIDI事件表中显示,最后将以上音色各自按照音色库号的归属, 一一加到辅助文件Melody.ini第二部分的相应音色段落中去。至此,XGworks的音色参数才算编 辑完成。 编辑XGworks 3.0的音色参数,还要涉及xgeditor.ini等文件,其它与此大同小异。 这些插入的段落和语句,必须准确地参照乐器说明书中的相关参数,严格地按规格编写。如果是 对原有音色参数文件作修改,应当在动手之前先对原文件作一个备份。
标签:
更多评论 >>