脚本介绍,与我们联系,第2部分

In this 5 Part MPVHub Series, Toby Pitman explores the wonderful world of scripting in Native Instruments' Kontakt sampler. In Part 2 you'll build a note trigger FX script!  

所以我们最后一次看着一些基本的回调,即“初始化”,“注意”和“释放”。我们看到了一些简单的代码放置在这些回调印制了一些信息,让我们知道我们的代码工作。

这一次,将要建立的东西!我敢肯定你已看到Heavyocitys损伤和发展仪器。他们有很酷的事情之一是注意触发FX。好了我要去告诉你如何建立一个简单的脚本来做到这一点,因为我觉得它的东西,用户所想,做。让我们去!


该计划!

下面有什么后。你加载了一堆的插入式效果,并绕过它们。然后,您可以映射旁路参数为每个效果的一个音符。当你点击的说明,该说明相对应的效果是积极的,当你释放音符的效果是绕过了!

要做到这一点,我们首先需要了解报表。


报表

那么,什么是报表?那么这些让与我们联系什么要发生,当你做决定。

if ... else语句被发现在所有的脚本语言。它可以让你的脚本来运行,如果发生一些非常具体的。让我们简单的信息,从最后一次作为一个例子。


笔记

消息(你弹奏音符“)

结束


这将显示,如果你打任何说明,这是一个回调后的注意事项。比方说,我们只希望这显示虽然在C3上。 if语句是完美的。


如果

下面的if语句的结构。


(在这里定义一些参数喜欢的事,等于)


{做的很漂亮的东西等于!


如果最后


因此,多数民众赞成很简单!但什么是等于什么?那么它可以是任何东西。在我们的例子中,我们需要告诉if语句关于C3。为此,我们可以使用一个内置的变量名为$ EVENT_NOTE的(也有$ EVENT_VELOCITY太!)。这持有当前持有的附注(s)作为MIDI音符编号的值,并可以仅用于内部上的注释或释放回调。

因此,我们可以说,如果$ EVENT_NOTE是等于60(C3),然后运行该脚本。那么,我们如何写的。好了,这个样子!

If statement


如果我弹奏的arent C3,我不会看到任何东西,因为这的脚本是具体的,以C3。但如果我这样做!

You're Playing C3!


所以所有其他注意事项呢?好了,我们可以扩大与if ... else语句。


IF ... ELSE

涉及到的其他部分是不在名单上的任何东西。你可以认为这就像一个看门人在俱乐部!


(人是有吸引力的)


让他们!


其他


送他们离开!


如果最后


只是在开玩笑(或者我是谁?),但概括起来!我们可以利用这一点。

If...Else Statement


错了音符,现在有一个消息!

Try again Bozo!


因此,如果我们想要一个不同的音符负载不同的消息吗?我们不希望继续写负载的每一个if语句。但还有另一个方便的选择()的声明。


选择

选择就像是一个更通用的版本,IF ... ELSE。这个时候如果是一个案例,一个按个别情况一样。继承人它是如何工作的。

而不是说美元EVENT_NOTE = 60,选择括号中的if语句,我们现在只需插入EVENT_NOTE的括号内像这样。


选择($ EVENT_NOTE)


最终选择


价值$ EVENT_NOTE的音符编号的情况下被传递到。

Select

这将做同样的事情,我们的第一个,如果例如。你能说出许多情况下,只要你喜欢。

Select


您还可以设置一个范围的情况下,像这样。

You can also set a range for the case like so.


当您播放的范围之内,你会看到这一点。

You're Playing Between C4 and B4!


当然,你需要这样的配对上的说明上发布。


当你释放任何票据。


现在,我们知道该怎么做,要使用select()来触发我们的影响。


加载一些效果!

我要加载的仪器插入效果槽的三种效果。香港专业教育学院得到了失真,罗网络连接和移相器。我现在绕过这些影响。

Bypass Effects


目标的影响

可以访问的KSP凡是可以自动化与我们联系。在KSP称为set_engine_par()的,允许您与我们联系发动机内部​​的操作参数,有一个内置的功能。你会使用这个有很多!

我们需要传递一些信息到这个函数的括号中。这是如下:

set_engine_par(,,,,


让我们来分解一下这个命令:

  • 我们要的参数的效应,例如ENGINE_PAR_DRIVE我们的失真。 ( 你会找到所有可用的参数列表与我们联系KSP结束时参考。)
  • 该参数的值。这可以通过一个用户界面控制,或者你可以设定一个值。
  • 组号码(如适用)。这相当于集团外汇。设置为-1,如果你想要的目标在仪表水平的影响。


    设置一些参数

    所以,我要影响的参数是旁路。这是针对使用$ ENGINE_PAR_EFFECT_BYPASS。让我们把它英寸

    set_engine_par($ ENGINE_PAR_EFFECT_BYPASS,


    用于旁路的值是0和1是旁路。我想激活作用,使病患者把0到值。

    set_engine_par(ENGINE_PAR_EFFECT_BYPASS $ 0,


    我的插槽位于仪器的水平,所以我会放-1到组。

    set_engine_par(ENGINE_PAR_EFFECT_BYPASS $,0,-1,


    我的失真是在Slot 1,病得很重填0到插槽。

    set_engine_par($ ENGINE_PAR_EFFECT_BYPASS,0,-1,0,


    我的效果是插入效果,所以我会放1通用。

    set_engine_par(ENGINE_PAR_EFFECT_BYPASS $,0,-1,0,1)


    现在,我有一个完整的代码行到这一点,我可以放弃我的选择()语句。


    Code Example



    当我打C3的影​​响插槽(失真)会变得活跃。

    Distortion becomes active


    我需要扭转的释放回调的关键,当我把我的手指再次绕过效果。为此,我把1到像这样的价值。

    Code Example



    我现在可以设置每一个不同的情况下使用不同的密钥。所有我需要做的是增加的插槽号。

    Code Example


    下面打D3的结果。

    Phaser becomes active


    然后使用上发布的绕过效果,当我把1到价值释放的关键。

    Code example


    我可以同时触发多个效果,这是奖金!

    Trigger more than one effect at the same time


    下面有一个例子,我的脚本在工作。

    [音频ID =“12954”]


    像我们介绍了一次,然后我就可以设置一个标题为我的脚本。

    Script Title


    然后我就可以去保存为预设,以备后用!

    Save script as a preset


    成功了!试一下自己。香港专业教育学院的代码片段在

    所以你有它。一个简单的脚本与一个很酷的结果。下一次,看看在一些界面的设计。


    Quick Links


    Introduction To Scripting in Kontakt, Part 2 (you're reading it!)

    Introduction To Scripting in Kontakt, Part 3

    Introduction To Scripting in Kontakt, Part 4

    Introduction To Scripting in Kontakt, Part 5

For the past 20 years Toby has worked as a professional guitarist, programmer and producer. Clients include Sir Paul McCartney, George Michael, Shirley Bassey, Yusuf Islam, Giles Martin as well as the London 2012 Olympic Ceremonies. He has also worked extensively in TV, Advertising and Film. As well as composing himself he has also ... Read More

Discussion

Want to join the discussion?

Create an account or login to get started!