叮咚音频黑五来袭:今年软件最划算的折扣,错过再等一年!

Manley 年度最大活动,总裁亲自来华签售

续写传奇性能:Sennheiser MD 421 Kompakt 紧凑版全能麦克风评测

Alctron MP73EQV2 麦克风放大器 / 通道条评测:重现 Neve1073 的传奇声音

Ample Sound 发布「鼓-风雷」音源

体验 Kontakt 4 带来的改革

Jemuillot 添加于 2009-10-25 ·

分享到微信

共有 39 条评论

一直有王道采样器之称的Kontakt升级到了4.01,根据软件版本的要求,主版本号的升级意味着重大的升级。那么,这个本身已处于王道地位的Kontakt究竟有了那些改进,对我们制作音乐和音色有了怎样的好处呢?

在启动Kontakt 4后,首先发现在宽宽的界面上多了一个没见过的按钮,如图1。


 图1:全局脚本按钮,点击放大

这是全局脚本按钮,点击它后,Kontakt 4的主窗口多了一个如图2样子的窗口。


 图2:全局脚本窗口

这个跟我们以前在乐器里看到的脚本窗口是一样的,但他的控制范围提升到了全局。也就是说,处于这里的脚本,能控制所有加载的乐器。

那么,这个具体有什么实用的地方呢?

在以前我用Kontakt 3的时候,喜欢加载很多带奏法切换的乐器,用MIDI键盘弹着玩。由于乐器来自各个厂家,他们的想法不同,因此,奏法切换的思路也有点不同。

比如彼得管弦的Violins用C1~C2来切换奏法,对于61键的MIDI键盘来说,正好处于最左边的八度上,很方便。但黄金管弦的Solo Flute的奏法切换就搞到了C0~B0。
如果我每次都换到Solo Flute这件乐器的时候,还需要按一下MIDI键盘的八度调节按钮,降低一个八度,然后才能控制奏法切换,一点都不方便,而且如果真的在演奏中从彼得管弦的Violins切换到黄金的Solo Flute,真的是忙到团团转。

但由于Kontakt 4提供了全局脚本,这个就变成很容易的事情了。只要写一个脚本,就可以完成这种任务。

首先看看脚本的思路:

  • 首先在Kontakt中先后加载Violins和Solo Flute,根据默认,这两个乐器分别使用通道1和通道2来控制。本例中,通道1是Violins,通道2是Solo Flute。
  • 因此,首先第一个条件就是判断通道。由于Violins的奏法切换在预期范围内,因此,可以简化成??当通道为2的时候才做些特殊的处理。
  • 由于Solo Flute的奏法切换在C1以下的八度,同时考虑到Flute的音符都在B2以上,因此,可以考虑把C2以下的音符,都向下移动一个八度,即弹C2转换为C1,D2转换为D1。这样,MIDI键盘方面就不用专门去按那个八度键了。

有了思路以后,就来看实现,根据以往的一贯做法。我先给出代码,然后简单讲解一下。

在全局脚本的5个空当中随便选一个,根据以前介绍的方法,把如下代码复制到脚本里,点击APPY后,所有通向2号通道的C2以下的音符都会降低八度。

代码

on init

declare $new_note

end on

on midi_in

if (1 = $MIDI_CHANNEL mod 16)

{NOTE ON}
if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON and $MIDI_BYTE_2 > 0 and $MIDI_BYTE_1 < 48)
ignore_midi
$new_note := $MIDI_BYTE_1 - 12
set_midi($MIDI_CHANNEL,$MIDI_COMMAND_NOTE_ON,$new_note,$MIDI_BYTE_2)
end if

{NOTE OFF}
if (($MIDI_COMMAND = $MIDI_COMMAND_NOTE_OFF or ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON and $MIDI_BYTE_2 = 0) ) and $MIDI_BYTE_1 < 48)
ignore_midi
$new_note := $MIDI_BYTE_1 - 12
set_midi($MIDI_CHANNEL,$MIDI_COMMAND_NOTE_OFF,$new_note,$MIDI_BYTE_2)
end if

end if

end on

现在,在MIDI键盘上演奏Solo Flute的时候,可以直接用C1~B1来做奏法切换了。

如果对脚本没兴趣的,可以跳过如下部分不看。笔者建议大家看看,因为确实是很方便的东西。就算你不懂如何写整个代码,但用现成的代码修改还是可以的。

脚本中,首先看到Kontakt 4新增了一个Callback(回调)函数on midi_in (当有MIDI输入)。

以前的版本中,把MIDI IN分割成了on note, on controller等条件,脚本无法访问MIDI IN的所有信息,特别是通道信息。因此以前所有音色都没有办法根据通道做脚本处理。本次Kontakt 4把MIDI IN的所有信息让KSP脚本调用,无疑是一大改革。这也促成了我们本例想要完成的任务。

在接下来的一句:if (1 = $MIDI_CHANNEL mod 16)

是检测输入是否为通道2。

笔者没有眼花,就是通道2。虽然在上述语句中看不到2,但它就是这个意思。
$MIDI_CHANNEL 是Kontakt 4新增的预定义变量,它表示了MIDI IN所属的通道。它由两部分组成?? PORT(端口号) 和 CHANNEL通道号。

如果你对Port完全没有印象,可以按照图3的方法看到Kontakt的MIDI IN配置对话框。


 图3:Kontakt的MIDI IN配置,点击放大

也就是说,Kontakt的$MIDI_CHANNEL其实可以表示信息来自Port A/B/C/D的 1~16个通道。如果你有4个MIDI键盘,那么A~D的端口都可以使用了。

那么一个MIDI_CHANNEL如何记录两个数值呢?如果你是NI公司的人,要怎么办呢?其实很容易就想到了:

  • 1-16表示端口A的16个通道。
  • 17-32表示端口B的16个通道。
  • 依此类推。

恩,但如果考虑到计算机有个运算符,叫“取余数(mod)”。那么,一个数对16取余数后的结果正好是0~15,共计16个数值,正好可以标示16个通道。即:0 = 通道1, 1 = 通道2,…… 15 = 通道16。

所以我说没有眼花。

知道了这些背景知识后,再回头看那个语句,是不是完全明白了呢!

if (1 = $MIDI_CHANNEL mod 16)

直译就是“如果 (1 = $MIDI_CHANNEL 对 16 取余数)”,那么他的作用就是仅当MIDI信息属于通道2时才做特殊事情。

好了,那么下面看看所谓的特殊事情是什么:

if ($MIDI_COMMAND = $MIDI_COMMAND_NOTE_ON and $MIDI_BYTE_2 > 0 and $MIDI_BYTE_1 < 48)

像$MIDI_CHANNEL一样,$MIDI_COMMAND表示了MIDI信息的指令种类,包括$MIDI_COMMAND_NOTE_ON(MIDI音符弹下)等。

而根据$MIDI_COMMAND的不同,$MIDI_BYTE_1和$MIDI_BYTE_2又有不同的含义。其实跟以前GM的规范是一样的。大家可以自行复习一下。

当$MIDI_COMMAND为MIDI音符弹下时,$MIDI_BYTE_1表示弹下的音符,而$MIDI_BYTE_2表示力度。

因此,从这个条件上可以看出,仅当弹下的音符在C2以下时才做具体的事情。跟我们的思路一致。

接下来的ignore_midi是不是跟我们以前见过的ignore_event很想捏?这个就是对应on midi_in的忽略指令。表示不让满足条件的音符生效,即不让演奏C2以下的音符。

接下来的根据之前的知识已经可以完全读懂:

$new_note := $MIDI_BYTE_1 ? 12

让变量$new_note为音符减去12,即降八度。

接下来的一句其实也跟以前的play_note和set_controller如出一辙:

set_midi($MIDI_CHANNEL,$MIDI_COMMAND_NOTE_ON,$new_note,$MIDI_BYTE_2)

这个相当于创建了一个全新的MIDI信息,分别指定通道、MIDI指令类型,音符和力度。

可以看到,音符已经换成了降八度的那个变量了。因此,这就是整个根据特定条件降八度的方案。剩下的部分可以自己琢磨一下了。

如果再增加别的音色,遇到不同音域,也可以在这个代码的基础上修改出来。比如可能希望低音大提琴用高八度的位置演奏等等。

有人说,可以通过修改音色的Group Start来完成,但如果你真的那样做的话,会发现,还是用脚本速度快一些,因为这个是一劳永逸的。对于别的音色,只要复制,修改一下,就完成了,不需要手动修改一个个音色的Group Start。电脑最在行的就是可以帮助你完成重复性工作。

其实全局KSP还有更多其他好处,比如控制器重映射。特别像Chris Hein Guitar这样的音色,他很多控制器不在常用的范围内,就算你的MIDI键盘可以重定义所有推子和旋钮的控制器号,但也无法以不变应万变的。所以,全局脚本就可以帮你完成这个任务。

要特别注意的是,像Chris Hein Guitar这样的音色的控制器定义是在脚本里指定的,无法用Learn的形式重定义,而且多数情况下重定义会导致音色不正常。因为他的脚本多数都是利用这个控制器来做奏法自动衔接的。

这是我目前从现场演奏这个范畴考虑到的全局脚本的作用,相信在其他领域也能发挥重要作用。

而Kontakt 4另一个重大的改进是新增了AET Filter(Authentic Expression Technology,真实表情技术)。

在传统的音色制作中,常常用力度分层来采样。但在分层过度的时候,总会有一点无法衔接的感觉。然后给人一种不自然的感觉。而AET Filter则根据音色的采样,分析采样的频谱来得到采样的频率响应等其他声学特性,然后在这些特性上平滑过渡,因此。从小力度到大力度的过渡就比简单的直接读取采样要真实得多。

我们可以马上来做一个实验,看看如何使用AET Filter。

加载一个乐器,比如弦乐,最好是有力度分层的,比如mp、f、mf之类的,如果找不到就找钢琴吧,一般钢琴都有力度分层的。

全选采样,然后在右键菜单中点击Auto add AET velocity morph(自动添加AET力度融合),如图4。


 图4:自动添加AET力度融合

经过一轮采样分析后,现在再演奏看看,注意力度之间的变化,是不是感觉比原来的过渡性好了很多,没有骤然突变的感觉了。

这个跟采样的Cross fade(渐变)是不一样的,那个仅仅是在调节两个采样间音量的混合比例,而AET是在频谱的层次进行混合。当然比小学生都会计算的音量混合好多了。

如果你展开GROUP Insert FX,就会看到刚才的操作实际上做了什么事情,如图5。


 图5:自动添加的AET滤波器

很美丽吧,事实上AET就是一个音频效果器,根据选定的采样做成融合信息,最后用力度来调节“融合度Morph”,就达到了最终的效果。

事实上,不仅是力度的融合,就连各种奏法甚至不同的乐器之间的融合,也可以完成。

我们马上来做一个合唱“啊啊啊”和合唱“哦哦哦”的频谱级融合看看。

首先加载这两种音色到Kontakt 4,比如我用彼得管弦里头的,如图6,大家如果没有可以找个GM SF2或者9DVD的那个更高级的来玩玩。


 图6:加载两种音色准备做平滑过渡

根据图7的步骤复制第二件乐器“啊”的分组。


  图7:复制“啊”的采样组

然后根据图8的步骤把内容复制到“哦”中。


  图8:把“啊”复制到“哦”中

首先关闭“Edit All Groups”。然后展开Mapping Editor,并激活“Selected Groups Only”,如图9。


  图9:仅编辑选定的采样

选定oooooh的所有采样,然后右键选择Create AET morph layer,如图10。


  图10:创建AET融合层

在弹出的对话框中输入名字,比如“ooh”,然后确定,那些参数的具体含义大家可以参考Kontakt 4的手册,一般来说,不用怎么改动。

然后用同样方法创建Aah的,命名为aah。现在把Aah的音量调到最小,如图11,因为Aah的特性已经被采集,我们接下来要做的是在Ooh的分组中增加AET Filter。


 图11:把Aah分组的音量调到最小

切换到ooh,然后在Group InsertFX中手动添加AET Filter,如图12。


  图12:手动添加AET Filter

点击Edit Morph Map,如图13。


  图13:点击“编辑过渡映射”

在弹出对话框的编辑框内输入ooh --> aah,表示希望是ooh过渡到aah,如图14。


  图14:输入过渡映射的名字

点击做上角的Add按钮,然后按照图15的步骤,把右边的ooh和aah依次通过“?”按钮移动到左边,并确认第5步选择的是articulation morph / multiple layers(技法过渡/复合层)。


  图15:创建过渡

在<no morph map>处点击,并从下拉菜单中选择刚才建立的映射,如图16。


  图16:选择映射

然后在Morph旋钮上右键,选择用MIDI控制器来实时调节过渡,如图17。


 图17:选择用MIDI控制器来调制过渡

他默认用1号控制器,如果想换成别的可以自行修改。
现在,弹下一个音符,然后调节1号控制器,是不是发现效果比单纯过渡的好多了!

总体来说,Kontakt 4在采样器的道路上发展得越来越成熟了,可以说,采样器也能玩出花来。希望通过本文,大家能对Kontakt 4有更深入的了解。

文章出处 http://www.midifan.com/

转载文章请注明出自 Midifan.com

共有 39 条评论

  • 2011-03-14 匿名

    这个是大觉着写的么?

  • 2011-03-14 匿名
    时隔一年多,战场上早就平息了!我再来此好好地观赏!
  • 2011-03-14 匿名
    独角戏唱得太久了!!枯燥了!!
  • 2010-06-26 匿名

    你们吃饭没有?!

  • 2010-06-19 3997516

    kontakt 4 就是占系统资源太大了

    我的电脑一装上kontakt 4  cpu使用率就变长了 百分十五十多 ,而且还在不断增加,这到底是怎么回事啊

     

  • 2010-04-18 匿名
    评论果然强。
    我写的这个应该不是抢手贴,我丝毫没有夸大其实。也甚至提到不足的地方啊~

    不过,得感谢精彩的评论能弥补单调的测评

    匿名发表也能看出是作者来写的吧,懒得再注册一个ID来发表了
  • 2009-11-16 anonymous

    本贴不因作者而火

    因楼下你们而火

  • 2009-11-04 anonymous

    回31搂,有MAC的

  • 2009-10-30 anonymous
    弱弱的问一句,有MAC版本的吗?
  • 2009-10-29 anonymous

    哈哈 真热闹!真好玩!文章好看,评论更精彩!

  • 2009-10-29 anonymous
    不错不错真不错!教材写得真好,评论更有看头.看完这个谁的教材后还可以看狗咬狗,无论是大觉者还是骂大觉者的人都不是什么好鸟,我强烈支持你们继续咬下去!MIDIFAN最有吸引我的地方就是能看见评测里的吵架了,不吵就不精彩啊.
  • 2009-10-29 anonymous

    都在扯个逑蛋啊。一群无聊的人……

    现在都用KONTAKT?,我坚持用GIGA。

  • 2009-10-28 anonymous
    我是来打酱油的……顺便看热闹。哈哈
  • 2009-10-28 anonymous
    24搂的就是大觉者本人,鉴定完毕!
  • 2009-10-28 anonymous
    看完这篇文章才明白玩电脑音乐既要会乐理,还要会电工,还得会编程……
  • 2009-10-28 anonymous

    回22楼,我觉得midifan上的文章是否够专业,能否发表,自有站长把关,Musicboy是公认的专家,既然能给发表那就说明没问题。我从来没觉得midifan上有很枪的文章,几乎所有的评价都还算是客观公正的。至于水平,谁规定的业余爱好者就不能写试用感受?非得是大师来写?汽车网站上的评测,难道都要找专业赛车手来写么?手机评测,难道都要找懂得手机线路的维修员来写么?难道只有弄一堆普通消费者根本看不懂的数据、英文词汇,才叫“专业”?

    任何作者都不是什么专家大师,大家其实都是爱好者而已。这个网站本来就叫“MIDI爱好者”,而不是“MIDI专家”。所有的文章都可能有谬误或者不合理不详尽之处,既然有评论功能,完全可以提出来,大家可以就技术上的问题相互补充讨论,让MIDIFAN成为一个讨论专业的场所,而不是去用脏话辱骂作者。否则这种人的人品确实有点问题!

    其实,我看就是22楼这种人自己最不要脸了,其实这种人心理很简单:觉得大觉者专业很烂还没自己好呢,凭什么他能整天像个专家似的评价各种设备呢?于是就气得要死。不就是这么个心理么?

    你有本事你也写啊,你也投稿啊?你也让商家给你发评测品啊?别在这像只狗一样嚎,那只会让大家当笑料罢了。有本事你直接联系站长啊,直接去联系商家啊,怡生、爱新、声钜……都可以去联系啊,让商家下次千万别再发给大觉者了,直接发给你去写,你好来拯救midifan的读者于水深火热之中啊!哈哈。

  • 2009-10-28 anonymous
    我是看着大觉者的文章入门的,支持大觉者!
  • 2009-10-28 anonymous
    midifan是个行业内很有影响力的网站,在这样的网站首页发布的评测会对消费者有很大的导向作用,所以在这样的网站上发布评测文章必须具备一定的专业水准。 如果自以为是的发表评测放在这么有影响力的网站首页上,给广大消费者造成了不良导向,然后又自称自己只是“一个地方上的业余爱好者”,居然还“问心无愧”。这是多么不要脸的行为啊!
  • 2009-10-28 anonymous
    11楼的,cakewalk的cal脚本现在还有价值吗? “这些工具确实会拉开音乐制作人的差距,细分制作人的分工?”恰恰相反,我认为这些工具最终会被淘汰,问题最终会简单化。 不认识大觉者,看说话,大觉者好同志。攻击大觉者的才是真装B,看看13楼和17楼那俩装B的,就是个垃圾。还什么“写的不好就得骂”“爱装B就一定会有人抽你丫挺!”我看你俩就欠抽!!!
  • 2009-10-28 anonymous
    Kontakt 4.01的新功能真是太强大了!但其中一个操作起来真是太难了!用电脑做音乐的门槛是越来越高了!