Introduction aux scripts Dans Kontakt, Partie 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!  

La dernière fois que nous avons examiné certains états en utilisant if ... else et select (). Ceux-ci nous a permis d'exécuter un script quand quelque chose de spécifique qui s'est passé, comme une note jouée. Si vous vous souvenez, nous avons construit un scénario qui nous déclencheur (ou non-bypass) des effets internes en appuyant notes sur le clavier MIDI.

Une partie de cela a été fait en ciblant le contrôle de contournement des effets en utilisant certains variables intégrées, à savoir $ ENGINE_PAR_EFFECT_BYPASS qui était tout simplement une référence à ce paramètre. Dans cette partie allait se plonger plus profondément dans les variables, à la fois intégré et défini par l'utilisateur.

Qu'est-ce qu'une variable?

Les variables sont sans doute la chose la plus importante dans tout langage de script et il serait très difficile de procéder avec le reste de ces ateliers sans les expliquer en détail.

Une variable est un dispositif de stockage qui contient un élément d'information. A tout moment, vous pouvez vous référer à cet élément d'information en faisant référence à ce nom des variables. Pensez-y comme un raccourci.

Vous pouvez remplir une variable avec un statique (constante) élément d'information comme un nom, un numéro ou un objet. Sinon, vous pouvez le remplir avec quelque chose de dynamique, comme la valeur actuelle d'un paramètre change qui peuvent ensuite être transmises à autre chose.

Il existe deux principaux types de variable. Built-In et défini par l'utilisateur. Permet de jeter un coup d'oeil!


Variables intégrées

Le langage de script Kontakt a beaucoup construit dans les variables qui sont écrites dans la langue. Ce sont notamment des références aux paramètres accessibles du moteur Kontakt, à savoir des choses que vous pouvez manipuler avec la KSP. Heres un bon exemple. L'effet Lo-Fi dispose de quatre paramètres. Je ne peux y accéder en utilisant le haut dans des variables pour eux. Il s'agit de:

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

Vous aurez remarquez que ces tous ont un certain préfixe de ENGINE_PAR_ $. Ce préfixe est réservé pour une utilisation Kontakt seulement, comme le sont NI_ $, $ CONTROL_PAR_, EVENT_PAR_ $. Quand vous venez de définir vos propres variables youll voulez rester à l'écart de l'utilisation de celles-ci.

Il existe également d'autres types qui contiennent des informations sur les actions des utilisateurs, comme ce que les notes que vous jouez. Nous avons vu un de ces dernière fois, EVENT_NOTE $.

Il ya beaucoup trop nombreux pour couvrir ici, mais youll trouver une liste de tous construits dans les constantes et les variables à la fin du manuel de référence KSP. Dire que Ill vous donner un exemple.

Il est une variable intégrée appelée $ PLAYED_VOICES_INST. Il en va de la valeur du nombre de voix (notes) de l'instrument est jouée. Si j'écris ce rappel note sur ...

Code example 1


Je reçois ce message.

You are playing 6 notes


Vous aurez préavis Ive a ajouté un à la variable car il compte de 0. Les esperluettes (

Alors le youll soit en utilisant des variables intégrées à recueillir des informations sur ce qui s'en vient dans Kontakt


Variables définies par l'utilisateur

Les variables utilisateur sont définies par vous et parce que Kontakt n'est pas familier avec ces variables (à la différence du haut-uns) youll devez d'abord les déclarer. Déclarer une variable qui doit être fait entre votre sur init ... fin le rappel. Ainsi quel est-il?

Déclarer est une façon de dire, Hey Kontakt! Im va faire une nouvelle variable, alors écoutez!.

Permet donc essayer! Im va faire une variable normale (il ya quelques autres types). Celles-ci sont précédées d'un $. Toute variable est très sensible à la casse, alors attention!


déclare $ myVariable


Donc c'est bien, mais maintenant? À l'heure actuelle $ maVariable est vide car je nai pas donné une valeur. Donc disons que ...


$ MaVariable: = 2


L': = signifie égal à. Donc, mon code ressemble à ceci.


déclare $ myVariable

$ MaVariable: = 2


Maintenant Kontakt sait ce moyen $ mavariable. Je pourrais aussi écrire la même chose en un coup comme ça ...


déclare $ maVariable: = 2


Si cela est correct dans certaines circonstances, vous verrez plus tard que nous pouvons avoir besoin de séparer la déclaration et l'attribution des valeurs en deux parties.


Alors maintenant, ma variable a une valeur je pouvais imprimer un message sur un événement de note à l'aide.


Code example 2



Je reçois ce message.

$myVariable has a value of 2


Remarquez comment je peux utiliser $ myVariable l'intérieur des guillemets, sans les montrer en tant 2. Ceci est parce que tout l'intérieur de citations est considéré comme texte brut.

Donc, un autre exemple à l'aide des valeurs dynamiques. Cette fois Ill remplir mon myVariable $ avec la valeur de

$ MaVariable: = $ 1 PLAYED_VOICES_INST


$ MyVariable détiendra désormais les informations recueillies par $ PLAYED_VOICES_INST et ajouter 1. Alors maintenant, je pouvais le faire.

Code example 3


Avis Ive affecté la valeur de $ myVariable à l'intérieur du rappel note sur. C'est parce que $ PLAYED_VOICES_INST ne peut recueillir les données de note lors de rappels à l'intérieur qui traitent de la note d'information.

Et je me procurer cette ...

You are playing 1 notes!


Maintenant, Ive a seulement frappé une note ainsi "Vous jouez une note!" est grammaticalement non-sens! Nous allons donc utiliser notre variable pour aider à faire ce travail.

L'utilisation d'un si ... else nous pouvons savoir combien de notes sont la lecture et afficher une réponse pertinente des thats grammaticalement correct.

Donc disons que si $ maVariable est supérieur à un, imprimer un message qui exprime le pluriel de note. Si ce n'est pas alors imprimer un message en utilisant le singulier de la note.

Nous mettons $ myVariable (qui détient désormais le nombre de notes jouées) à l'intérieur des parenthèses de l'instruction if. De cette façon, il peut peser jusqu'à sa plus grande si (


Notre code ressemblera à ceci.

Example code 4


Quand je joue une seule note je reçois ....

You are playing 1 note!


quand je joue plus d'une note je reçois ...

You are playing 4 notes!


Succès!


Donc j'espère que vous pourrez voir comment cette variable fonctionne. Im réutilisation trois fois dans ce script qui permet d'économiser évidemment un certain temps et la taille. Lorsque vous écrivez des scripts plus complexes, vous pouvez référencer ces dizaines de fois et seulement pour affecter la valeur une fois.

Une valeur de variables ne doivent pas être statique et il n'ya rien pour vous empêcher de changer une valeur des variables à tout moment, en fait, c'est assez fréquent. Ill vous donner quelques exemples de travaux dirigés plus tard.


Types de variables

Jusqu'à présent, weve traitées avec des variables de base. Il ya quelques différents types de variables dans Kontakt chacune avec son propre préfixe.


  • @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


Eh bien couvrir quelques-uns d'entre eux dans quelques tutoriels à venir.

La prochaine fois, regardez bien certaines techniques d'interface. Connaître les variables devrait rendre le processus de création d'utilisateur contrôle beaucoup plus facile à comprendre. Jusque-là!

J'ai inclus les exemples de code de ce


Liens rapides:

Introduction Pour Scripting dans Kontakt, Partie 1

Introduction Pour Scripting dans Kontakt, Partie 2

Introduction Pour Scripting dans Kontakt, Partie 3

Introduction Pour Scripting dans Kontakt, Partie 4

Introduction Pour Scripting dans Kontakt, Partie 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!