するお問い合わせのスクリプティング入門、第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!  

前回はIF ... ELSEステートメントを使用して、いくつかを見て、()を選択します。これらは特定の何かが再生されている音符のように、起こったとき、私たちはスクリプトを実行することができました。あなたは覚えているのであれば私たちは私たちがトリガー(または非バイパス)私たちの、MIDI鍵盤を押すことによって、いくつかの内蔵エフェクトを聞かせてスクリプトを構築しました。

本研究の一部は、単にそのパラメータへの参照であったいくつかの組み込み変数、すなわち、$ ENGINE_PAR_EFFECT_BYPASSを使用してエフェクトのバイパス制御を標的とすることによって行われていた。この部分で定義された組み込みのとユーザーの両方に、変数を深く掘り下げしようとしていた。

変数とは何ですか?

変数は、疑いもなく、任意のスクリプト言語の中で最も重要なことであり、それはさらに、それらを詳細に説明せずにこれらのワークショップの残りの部分を続行するのはかなり難しいだろう。

変数が一つの情報を保持する記憶装置である。任意の時点では、その変数名を参照することによって情報のその部分を参照することができます。ショートカットのようなものとお考えください。

あなたは、名前、番号、またはオブジェクトのような静的な情報(一定の)作品を使用して変数を埋めることができます。別の方法としては、次に何か他のものに渡すことができます変更するパラメータの現在の値のように、動的な何かでそれを埋めることができます。

変数の2つの主要な種類があります。組み込みおよびユーザ定義されます。貸し付けは、見て!


組み込み変数

するお問い合わせスクリプト言語は、多くの言語に書かれている変数が組み込まれています。これらは主に、すなわち、KONTAKTのエンジンのアクセス可能なパラメータには、KSPで操作できるものへの参照です。良い例がHERESに。 Lo-Fiを、4つのパラメータを持っています。私はそれらの変数の組み込みを使用して、これらにアクセスすることができます。これらは次のとおりである:

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

これらはすべて$ ENGINE_PAR_特定の接頭辞を持っていることをyoullは予告。このプレフィックスは、KONTAKTの使用のために予約されている場合のみ、など$ NI_、$ CONTROL_PAR_、$ EVENT_PAR_です。あなたは独自の変数を定義するために来たときに、これらを使用することの明確な舵取りしたいyoullは。

あなたが遊んでいるものをメモなどのユーザーアクションに関する情報を保持する他の種類もあります。我々は、これらの最後の時間の1、$ EVENT_NOTEを​​見ました。

ここでカバーしかしyoullのKSPリファレンスマニュアルの最後に、定数と変数で構築されたすべてのリストを見つけることがあまりにも多くははるかにありま​​す。病気はあなたの例を与えることが書かれています。

PLAYED_VOICES_INST $と呼ばれる組み込み変数があります。これは、現在の楽器が鳴っているどのように多くの声(音)の値を保持します。私はこの上の音符のコールバックを記述した場合は...

Code example 1


私はこのメッセージを取得します。

You are playing 6 notes


それは0から数えますとyoullの予告Iveは変数に1を追加しました。アンパサンド(

だからyoullのするお問い合わせに来ているかについての情報を収集するための組み込み変数を使用する


ユーザ定義変数

ユーザー変数は、開発者によって定義され、KONTAKTはこれらの変数に精通していないので、(内蔵のものとは違って)youllは最初に宣言する必要がある。変数を宣言すると、コールバックのinit ...の端にあなたの間に行う必要があります。だからそれはすべてに約ある何?

宣言ねえ、KONTAKTを言う方法です!イムは、新しい変数を作るつもりなので、聞いて!

だから、試してみることができます!イムは、(他のいくつかの種類がある)は、通常の変数を作るつもり。これらは$で始まります。すべての変数は非常ので、注意してください大文字と小文字が区別されます!


myVariableに$を宣言


それでいいけど今何厥?現時点では$ myVariableには、私はそれの値として与えられたhaventは空です。そう言うことができます...


myVariableに$ a = 2


:=に等しいことを意味します。だから、私のコードは次のようになります。


myVariableに$を宣言

myVariableに$ a = 2


今やKONTAKTは何$ myVariableの手段を知っている。私はまた、このような1ヒットでも同じことを書くことができます...


myVariableに$を宣言:= 2


これはいくつかの状況でOKですここで我々は二つの部分に値の宣言と代入を分離する必要があることを後で見るyoullは。


だから今、私の変数は、私が使用してノートイベントにメッセージを印刷することができる値を持っています。


Code example 2



私はこのメッセージを取得します。

$myVariable has a value of 2


私はそれが2として表示せずに二重引用符内部のmyVariableに$を使用する方法に注目してください。見積内側に何かがプレインテキストと見なされるためです。

だから、動的な値を使用して、1つ以上の例。今回は病気の値を持つmyVariableに私の$を埋める

myVariableに$:= $ PLAYED_VOICES_INST 1


myVariableに$は$ PLAYED_VOICES_INSTによって収集された情報を保持し、1を追加します。だから今私はこれを行うことができます。

Code example 3


通知には、上の音符のコールバック内myVariableに$に値が割り当てられてアイブ。 $ PLAYED_VOICES_INSTだけノート·データを収集することができるので、これはときにそのノート情報を扱う内部コールバック。

そして、私はこれを取得...

You are playing 1 notes!


さて、ように1音しかヒットアイブ "あなたは1音符を演奏している!"文法的にはナンセンスです!だから、この作品を作るのを助けるように変数を使用してみましょう。

用いて、我々がプレーしているどのように多くのノートを確認したり、関連する応答を表示することができますIF ... ELSEステートメントは、文法的に正しいのthats。

だから$ myVariableに1より大きい場合は言うことができ、メモの複数形を表現したメッセージを印刷します。その当時のノートの単数形を使用して、メッセージを印刷しない場合。

我々は、if文の括弧内に(今演奏されたノートの数を保持している)myVariableに$を置く。そのより大きい場合、この方法は、それは、最大重量を量ることができる(


我々のコードは次のようになります。

Example code 4


私は1つが私が得る注意再生すると....

You are playing 1 note!


私は複数のノートを弾いたときに私が手に...

You are playing 4 notes!


成功!


だからうまくいけば、この変数が機能しているかを見ることができます。イムはそれを明らかにいくつかの時間とサイズを節約し、このスクリプトで3回再利用。あなたは、より複雑なスクリプトを作成する際には、時代のこの数十を参照し、一度だけ値を代入する必要があるかもしれません。

変数の値は静的である必要はありませんし、いつでも変数の値の変更を停止するものがありません、実際にはこれは非常に一般的です。病気以降のチュートリアルでいくつかの例を与える。


変数の型

これまでの基本的な変数を扱っweve。するお問い合わせ、独自の接頭辞を持つそれぞれの変数のいくつかの異なる種類があります。


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


まあ、いくつか来てチュートリアルでこれらのいくつかをカバーしています。

次の時間だけでなく、いくつかのインターフェース技術を見てみましょう。変数について知ることは、ユーザーを作成するプロセスを理解するのはずっと簡単に制御しなければならない。それまで!

私はこの内のサンプル·コードを用意しました


クイックリンク:

するお問い合わせでスクリプトの紹介、パート1

するお問い合わせでのスクリプティング入門、第2回

するお問い合わせでスクリプトの紹介、パート3

するお問い合わせでスクリプトの紹介、パート4

するお問い合わせでのスクリプティング入門、第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!