Introduction to Scripting In Kontakt, Teil 3

In this 5 Part MPVHub Series, Toby Pitman explores the wonderful world of scripting in Native Instruments' Kontakt sampler. Part 3 goes deeper into variables. Read the next part on The Hub tomorrow!  

Das letzte Mal sahen wir uns an einigen Aussagen mit if ... else und wählen Sie (). Dies half uns, ein Skript, wenn etwas Bestimmtes, passiert wie ein gespielten Note laufen. Wenn Sie sich erinnern wir ein Skript, das uns Trigger (oder un-Bypass) einige interne Effekte, indem Sie über unsere MIDI-Keyboard können gebaut.

Ein Teil davon wurde durch Targeting die Bypass-Steuerung der Effekte mit einigen eingebauten Variablen, nämlich $ ENGINE_PAR_EFFECT_BYPASS die war einfach ein Verweis auf diesen Parameter durchgeführt. In diesem Teil gingen tiefer in Variablen, definiert sowohl integrierte und benutzerfreundliche vertiefen.

Was ist eine Variable?

Variablen sind, ohne das Wichtigste in jeder Skriptsprache zu zweifeln, und es wäre sehr schwierig, mit dem Rest dieser Workshops ohne zu erklären, ihnen näher gehen.

Eine Variable ist ein Speichergerät, das eine Information enthält. An jedem Punkt können Sie mit diesem Stück von Informationen durch Verweis auf diese Variablen verweisen. Denken Sie daran, wie eine Verknüpfung.

Sie können eine Variable mit einer statischen (konstant) Stück von Informationen wie Name, Nummer oder ein Objekt zu füllen. Alternativ können Sie es mit etwas dynamischer zu füllen, wie der aktuelle Wert eines sich ändernden Parameter, dann können, um etwas anderes weitergegeben werden.

Es gibt zwei Haupttypen von Variablen. Built-In und Benutzerdefiniert. Werfen wir einen Blick!


Built-in Variablen

Der Kontakt Scripting Language hat viele in Variablen, die in der Sprache geschrieben sind, gebaut. Dies sind vor allem Hinweise auf die zugänglichen Parameter der KONTAKT-Engine, nämlich Dinge, die Sie mit der KSP zu manipulieren. Heres ein gutes Beispiel. Die Lo-Fi-Effekt hat vier Parameter. Ich kann diese mithilfe der eingebauten Variablen für sie zuzugreifen. Diese sind:

  • $ENGINE_PAR_BITS
  • $ENGINE_PAR_FREQUENCY
  • $ENGINE_PAR_NOISELEVEL
  • $ENGINE_PAR_NOISECOLOR

Youll Hinweis, dass diese alle haben eine bestimmte Präfix $ ENGINE_PAR_. Dieses Präfix wird für Kontakt Verwendung reserviert nur, wie sind $ NI_, $ CONTROL_PAR_, $ EVENT_PAR_. Wenn Sie Ihre eigenen Variablen definieren gekommen youll wollen meiden die diese benutzen.

Es gibt auch andere Arten, die Informationen über Aktionen des Benutzers, wie das, was Noten Sie spielen zu halten. Wir sahen eine dieser letzten Zeit, $ EVENT_NOTE.

Es gibt viel zu viele um sie hier decken, aber youll finden Sie eine Liste aller Konstanten und Variablen am Ende des KSP Reference Manual gebaut. Zu sagen, dass Ill Ihnen ein Beispiel geben.

Es gibt eine eingebaute Variable namens $ PLAYED_VOICES_INST. Diese enthält den Wert, wie viele Stimmen (Noten) der aktuelle Instrument spielt. Wenn ich schreibe diese auf Hinweis Rückruf ...

Code example 1


Ich bekomme diese Meldung.

You are playing 6 notes


Youll Ankündigung Ive hinzugefügt ein, um die Variable, wie es von 0 zählt. Die Zeichen (

So youll werden mithilfe der integrierten Variablen, um Informationen über das, was in Kontakt kommen zu sammeln


Benutzerdefinierte Variablen

Benutzervariablen werden von Ihnen definierten und weil Kontakt nicht vertraut ist mit diesen Variablen (im Gegensatz zu den eingebauten sind) youll ersten müssen sie erklären. Die Deklaration einer Variable muss zwischen Ihrer init getan werden ... end auf Rückruf. Also was ist es?

Erklären, ist eine Art zu sagen, Hey Kontakt! Ich gehe um eine neue Variable zu machen, so listen up!.

Also laßt uns versuchen! Ich gehe auf eine normale Variable zu machen (es gibt ein paar andere Typen). Diese werden mit einem $ voraus. Jede Variable ist sehr case sensitive also Vorsicht!


erkläre $ myVariable


Also das ist gut, aber was nun? Im Moment $ myVariable ist leer, als ich havent ihm einen Wert. So können sagen ...


$ MyVariable: = 2


Die: = bedeutet gleich. Also mein Code sieht wie folgt aus.


erkläre $ myVariable

$ MyVariable: = 2


Jetzt Kontakt weiß, was $ myVariable Mittel. Ich könnte auch schreiben Sie die gleiche Sache in ein hit like this ...


erkläre $ myVariable: = 2


Wo dies OK in einigen Fällen ist youll später sehen, dass wir brauchen, um die Deklaration und Zuweisung von Werten in zwei Teile zu trennen.


So, jetzt meine Variable hat einen Wert ich eine Nachricht auf einen Zettel Ereignis mithilfe konnte drucken.


Code example 2



Ich bekomme diese Meldung.

$myVariable has a value of 2


Beachten Sie, wie kann ich $ myVariable innerhalb der Anführungszeichen, ohne dass es zeigt sich als 2 zu verwenden. Dies liegt daran, irgendetwas in Zitaten wird als Klartext.

Also, ein weiteres Beispiel mit dynamischen Werten. Dieses Mal Ill füllen my $ myVariable mit dem Wert des

$ MyVariable: = $ PLAYED_VOICES_INST 1


$ MyVariable wird nun halten Sie die Informationen von $ PLAYED_VOICES_INST gesammelt und fügen Sie 1. So, jetzt könnte ich dies tun.

Code example 3


Unsere Ive zugeordnet den Wert auf $ myVariable im on note Rückruf. Dies liegt daran, $ PLAYED_VOICES_INST nur sammeln können die Noten-Daten, wenn sie innerhalb Rückrufe, die sich mit Notizen.

Und ich bekomme ...

You are playing 1 notes!


Nun, Ive traf nur eine Note so "Du spielst 1 Noten!" grammatisch Unsinn! So verwenden wir unsere variablen dazu beitragen, dass diese Arbeit.

Mit eine if ... else-Anweisung wir herausfinden können, wie viele Noten spielen und zeigt eine entsprechende Reaktion das ist grammatikalisch korrekt.

So können sagen, Wenn $ myVariable größer als eins ist, drucken Sie eine Nachricht, die den Plural von note ausdrückt. Wenn ihr nicht drucken Sie dann eine Nachricht mit dem Singular beachten.

Wir haben $ myVariable (die nunmehr die Anzahl der gespielten Noten) innerhalb der Klammern der if-Anweisung. Auf diese Weise kann es abzuwägen, ob seine größere (


Unser Code sieht wie folgt aus.

Example code 4


Wenn ich spiele man beachten, ich ....

You are playing 1 note!


wenn ich mehr als eine Note zu spielen bekomme ich ...

You are playing 4 notes!


Erfolg!


So hoffentlich können Sie sehen, wie diese Variable funktioniert. Im Wiederverwendung es dreimal in diesem Skript die offensichtlich spart etwas Zeit und Größe. Wenn Sie komplexere Skripte schreiben Sie vielleicht Referenz Dieser zig mal und haben nur den Wert einmal zuweisen.

Eine Variable Wert nicht statisch sein und es gibt nichts zu stoppen Sie Änderung einer Variablen Wert jederzeit, in der Tat ist dies durchaus üblich. Ich gebe einige Beispiele in späteren Tutorials.


Variable Types

Bisher weve behandelt Basisvariablen. Es gibt ein paar verschiedene Arten von Variablen in Kontakt mit jeweils eigener Präfix.


  • @myText = A String Variable. Holds “Text information”
  • const $myVariable = Sets a constant value e.g. 12
  • polyphonic $myVariable = Holds a value for each polyphonic event.
  • %myArray[] = Holds multiple values in a list
  • !myArray[] = Holds multiple text strings in a list


Nun decken ein paar von diesen in einigen kommenden Tutorials.

Das nächste Mal auch an einigen Interface-Techniken zu suchen. Wissenswertes zu Variablen sollte der Prozess der Schaffung Benutzer steuert viel einfacher zu verstehen. Bis dahin!

Ich habe die Code-Beispiele in diesem enthalten


Nützliche Links:

Introduction To Scripting in Kontakt, Teil 1

Introduction To Scripting in Kontakt, Teil 2

Introduction To Scripting in Kontakt, Teil 3

Introduction To Scripting in Kontakt, Teil 4

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