Introduction To Scripting in Kontakt, Teil 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!  

So letzte Mal sahen wir uns an einige grundlegende Rückrufe, nämlich "auf init", "on note" und "on release". Wir sahen, wie Platzierung einen einfachen Code zwischen diesen Rückrufe gedruckt einige Nachrichten lassen Sie uns wissen, unseren Code arbeitete.

Dieses Mal wollten etwas bauen! Ich bin sicher, youve alles gesehen Heavyocitys Schaden und Evolve Instrumente. Eine der coolen Dinge, die sie haben, sind Note getriggert FX. Well Im werde Ihnen zeigen, wie Sie ein einfaches Skript, dies zu tun, wie ich ihr etwas, dass die Nutzer gerne tun würde denken, zu bauen. Lets go!


Der Plan!

Heres, was waren nach. Sie laden eine Reihe von Insert-Effekte und Bypass ihnen. Sie ordnen Sie die Bypass-Parameter für jeden Effekt zu einer Notiz. Wenn Sie einen Ton zu treffen, ist die Wirkung entsprechend diesem Sinne aktiv ist, wenn Sie die Taste loslassen der Effekt umgangen!

Um dies zu erreichen, müssen wir zuerst über Aussagen zu lernen.


Statements

Also, was sind Aussagen? Nun Danach lasst Kontakt Entscheidungen über was passiert, wenn Sie etwas tun.

Die if ... else-Anweisung wird in allen Skriptsprachen gefunden. Es ermöglicht Ihrem Skript nur ausgeführt, wenn man etwas Bestimmtes passiert. Nehmen wir unsere einfache Botschaft vom letzten Mal als Beispiel.


on note

Meldung ("Sie spielen eine Note")

enden


Dies wird angezeigt, wenn Sie einen Ton zu treffen, ist es ein Hinweis auf Rückruf, nachdem alle. Können sagen, wir wollen nur diese zu zeigen, bis auf C3 though. Die if-Anweisung ist perfekt dafür.


Wenn

Heres die Struktur des if-Anweisung.


if (definieren einige Parameter hier wie etwas gleich etwas)


{Sie etwas Gescheites, wenn etwas gleich etwas!}


end if


Also das ist ganz einfach! Aber was ist etwas gleich etwas? Nun, es könnte alles sein. In unserem Fall müssen wir die if-Anweisung zu C3 erzählen. Wir können dies tun, indem eine integrierte Variable namens $ EVENT_NOTE (Es gibt auch $ EVENT_VELOCITY auch!). Dies hält den Wert der aktuell gehaltenen Note (n) als MIDI-Noten-Nummer und kann nur innerhalb einer auf Kenntnis oder auf Release Rückruf verwendet werden.

So könnten wir sagen, Wenn $ EVENT_NOTE gleich 60 (C3) ist dann das Skript!. Wie können wir also schreiben, dass. Nun, wie diese!

If statement


Wenn ich Noten zu spielen, dass arent C3, wont Ich sehe nichts als dieses Skript ist spezifisch für C3. Aber wenn ich es tue!

You're Playing C3!


So was ist mit all den anderen Noten? Nun, wir können dies zu einem, wenn erweitern ... else-Anweisung.


If ... Else

Der else-Teil betrifft alles, was nicht auf der Liste. Sie können sich das wie ein Türsteher in einem Club zu denken!


if (die Person attraktiv ist)


Lassen Sie sie in!


sonst


Schicken Sie sie weg!


end if


Nur ein Scherz (Oder bin ich?), Aber das tut es zusammenzufassen! Wir könnten dies.

If...Else Statement


Die falschen Noten haben jetzt eine Botschaft zu!

Try again Bozo!


So was, wenn wir eine Belastung von verschiedenen Nachrichten wollen auf verschiedene Noten? Wir wollen nicht zu haben, um weiter schreiben Lasten von if-Anweisungen für jeden einzelnen. Es gibt jedoch eine weitere handliche Anweisung aufgerufen select ().


Wählen

Wählen ist wie ein vielseitiger Version von if ... else. Dieses Mal, wenn ein Fall, wie auf einer von Fall zu Fall. Heres, wie es funktioniert.

Anstatt zu sagen: $ EVENT_NOTE = 60 innerhalb der Klammern der if-Anweisung, wir legen Sie einfach $ EVENT_NOTE innerhalb der select Klammern gerne so.


Wählen Sie ($ EVENT_NOTE)


End Select


Die Notennummer Wert von $ EVENT_NOTE ist auf den Fall übergeben.

Select

Dies tun genau dasselbe wie unser erstes, wenn beispielsweise. Sie können so viele Fälle angeben, wie Sie möchten.

Select


Sie können auch einen Bereich für den Fall, wie so.

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


Wenn Sie in den Bereichen spielen youll sehen dies.

You're Playing Between C4 and B4!


Natürlich müssen Sie die auf Zettel mit einer am Werk wie dieses Paar.


Wenn Sie eine beliebige Taste loslassen.


Jetzt, da wir wissen, wie das funktioniert, wollten select () zu verwenden, um unsere Effekte auslösen.


Legen Sie einige Effekte!

Ich gehe auf drei Effekte in den Instrument Insert Effects Slots laden. Ive got eine Verzerrung, eine Lo-Fi und einen Phaser. Ich bin nun gehen, um diese Effekte zu umgehen.

Bypass Effects


Ziel Die Auswirkungen

Alles, was in Kontakt automatisiert werden kann, kann durch die KSP genutzt werden. Es gibt eine eingebaute Funktion in der KSP genannt set_engine_par (), die Sie Parameter in der Kontakt-Engine manipulieren. Youll verwenden diese viel!

Wir müssen einige Informationen in den Klammern dieser Funktion übergeben. Dies ist wie folgt:

set_engine_par (,,,,


Lets Herunter gebrochen:

  • Die Parameter wollen wir zB $ ENGINE_PAR_DRIVE auf unserer Verzerrung. ( Youll finden Sie eine Liste aller verfügbaren Parameter in der Kontakt KSP Verweis am Ende.)
  • Der Wert für den Parameter. Dies kann durch ein UI-Steuerelement übergeben werden, oder Sie können einen Wert einzustellen.
  • Der Konzern-Nummer (falls zutreffend). Dies entspricht Gruppe FX. Bei -1, wenn Sie Effekte am Instrument Ebene ausrichten möchten.


    Einige Parameter

    So ist der Parameter Ich möchte Effekt zu umgehen. Dies wird gezielt mit $ ENGINE_PAR_EFFECT_BYPASS. Lasst uns, dass in. setzen

    set_engine_par ($ ENGINE_PAR_EFFECT_BYPASS, , , , )


    Die Werte für Bypass sind 0 und 1 ist auf umgangen. Ich möchte zu aktivieren die Wirkung so Ill gesetzt 0 in den Wert.

    set_engine_par ($ ENGINE_PAR_EFFECT_BYPASS, 0, , , )


    Meine Slots sind auf dem Instrument Pegel so Ill -1 legte in Gruppe.

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


    Meine Verzeichnung ist in Slot 1 so Ill gesetzt 0 in Slot.

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


    Mein Effekt ist ein Insert-Effekt so Ill legte 1 in Generic.

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


    Jetzt habe ich eine fertige Codezeile ich dies in meinen select ()-Anweisung fallen kann.


    Code Example



    Wenn ich C3 traf der erste Effekt-Slot (die Distortion) wird aktiv.

    Distortion becomes active


    Ich muss dies in einem am Release Rückruf so umzukehren, wenn ich meinen Finger von der Taste nehmen Sie die Effekt umgangen wieder. Ich tue dies, indem sie eine 1 in Wert wie so.

    Code Example



    Jetzt kann ich diese Einrichtung für verschiedene Schlüssel mit einem anderen Fall für jeden. Alles, was ich tun müssen, ist erhöhen die Slot-Nummer.

    Code Example


    Heres das Ergebnis des Schlagens D3.

    Phaser becomes active


    Und dann die Verwendung auf Release umgehen den Effekt, wenn ich den Schlüssel, indem Sie 1 in Wert freizugeben.

    Code example


    Ich kann mehr als einen Effekt zur gleichen Zeit zu lösen, das ist ein Bonus!

    Trigger more than one effect at the same time


    Heres ein Beispiel für mein Skript bei der Arbeit.

    [Audio id = "12954"]


    Ich kann dann einen Titel für mein Skript wie wir das letzte Mal gedeckt.

    Script Title


    Ich kann dann gehen und speichern Sie diese als Voreinstellung für eine spätere Verwendung!

    Save script as a preset


    Success! Versuchen Sie, diese für sich selbst. Ive enthalten die Code-Schnipsel in einem

    So haben Sie es. Ein einfaches Skript, mit einem kühlen Ergebnis. Das nächste Mal wohl einen Blick auf einige Interface-Design.


    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!