مقدمة في البرمجة النصية في KONTAKT، الجزء 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!  

آخر مرة ألقينا نظرة على بعض التصريحات باستخدام ... آخر إذا وحدد (). ساعدت هذه لنا لتشغيل البرنامج النصي عندما حدث شيء معين، مثل مذكرة قيد التشغيل. إذا كنت تتذكر بنينا السيناريو الذي دعونا الزناد (أو غير مجازة) بعض الآثار الداخلية عن طريق الضغط على لوحة المفاتيح لدينا ملاحظات MIDI.

وقد تم جزء من هذه السيطرة من خلال استهداف تجاوز آثار استخدام بعض المدمج في المتغيرات، وهي التي كانت ENGINE_PAR_EFFECT_BYPASS $ مجرد إشارة إلى أن المعلمة. في هذا الجزء كانوا في طريقهم ليتعمق في المتغيرات، سواء المدمج في والمعرفة من قبل المستخدم.

ما هو متغير؟

المتغيرات هي بلا شك أهم شيء في أي لغة برمجة، وسيكون من الصعب جدا المضي قدما مع بقية هذه الحلقات دون أن يوضح لهم بمزيد من التفصيل.

A متغير هو جهاز التخزين الذي يحمل قطعة من المعلومات. في أي لحظة يمكنك الرجوع إلى أن قطعة من المعلومات من خلال الرجوع إلى هذا الاسم المتغيرات. التفكير في الأمر وكأنه المختصرة.

يمكنك ملء متغير مع قطعة (الثابتة) ثابت من المعلومات مثل عدد أو اسم أو كائن. بدلا من ذلك يمكنك ملء مع شيء دينامية، مثل القيمة الحالية للمعلمة تغيير ومن ثم يمكن نقلها إلى شيء آخر.

هناك نوعان رئيسيان من متغير. المدمج في ومعرف المستخدم. دعونا ننظر لها!


المدمج في المتغيرات

وقد بنيت لغة البرمجة النصية KONTAKT العديد من المتغيرات التي في كتابي في اللغة. هذه هي أساسا الإشارات إلى المعلمات للوصول للمحرك KONTAKT، وهي أشياء يمكنك التلاعب مع KSP. هيريس مثال جيد. تأثير خفيفة أربعة المعلمات. لا أستطيع الوصول إلى هذه باستخدام المدمج في المتغيرات بالنسبة لهم. وهذه هي:

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

فسوف تلاحظ أن هذه جميعا بادئة معينة من $ ENGINE_PAR_. هذا محجوز للاستخدام بادئة KONTAKT فقط، وكذلك NI_ $، $ CONTROL_PAR_، $ EVENT_PAR_. يوول عندما تأتي لتعريف المتغيرات الخاصة بك تريد أن تبتعد عن استخدام هذه.

هناك أيضا أنواع أخرى من المعلومات حول عقد إجراءات المستخدم، مثل ما تلاحظ كنت تلعب. رأينا واحدة من هذه آخر مرة، $ EVENT_NOTE.

هناك عدد كبير جدا من هنا ولكن لتغطية تجد يوول على قائمة بجميع بنيت في الثوابت والمتغيرات في نهاية الدليل المرجعي KSP. قائلا ان تعطي إساءة لكم مثالا.

هناك متغير يسمى المدمج في PLAYED_VOICES_INST $. هذا يحمل قيمة عدد الأصوات (مذكرات) الصك الحالي هو اللعب. إذا أنا أكتب هذا رد على مذكرة ...

Code example 1


أحصل على هذه الرسالة.

You are playing 6 notes


وأضاف يوول إشعار إيف واحد إلى المتغير كما يكون ذلك ضروريا من 0. واقحام (

يوول ذلك يمكن استخدام المدمج في المتغيرات لجمع المعلومات حول ما هو آت في KONTAKT


المتغيرات التي يحددها المستخدم

يتم تعريف متغيرات المستخدم من قبلك وبسبب KONTAKT ليست مألوفة مع هذه المتغيرات (على عكس المدمج في تلك) يوول تحتاج أولا إلى التصريح عنها. إعلان متغير الذي ينبغي القيام به بين الخاص بك على الحرف الأول ... تنتهي في رد الاتصال. ما لذلك كل شيء؟

يعلن هو طريقة للقول، يا KONTAKT! ايم الذهاب الى جعل متغير جديد، والاستماع حتى تصل!

يتيح ذلك في محاولة! ايم الذهاب الى جعل متغير طبيعي (هناك بضعة أنواع أخرى). ويسبق هذه مع $. أي متغير إلى حد كبير من حالة الأحرف حتى حذار!


يعلن $ myVariable


حتى thats جيدة ولكن ماذا الآن؟ في هذه اللحظة $ myVariable فارغة وأنا طعاما إعطائها قيمة. يتيح ذلك يقول ...


myVariable $: = 2


و: = يعني يساوي. لذلك سوف تبدو وكأنها قانون بلدي هذا.


يعلن $ myVariable

myVariable $: = 2


الآن يعرف ما KONTAKT $ سائل myVariable. يمكن أيضا كتابة I الشيء نفسه في ضربة واحدة من هذا القبيل ...


تعلن myVariable $: = 2


يوول عندما يكون ذلك في بعض الظروف OK انظر لاحقا أننا قد نحتاج لفصل وتعيين إعلان القيم إلى قسمين.


حتى الآن بلدي متغير يحتوي على قيمة أتمكن من طباعة رسالة على الحدث ملاحظة باستخدام.


Code example 2



أحصل على هذه الرسالة.

$myVariable has a value of 2


لاحظ كيف يمكنني استخدام $ myVariable داخل علامات الاقتباس دون أن تظهر ك 2. هذا هو لأنها تعتبر أي شيء داخل الاقتباسات نص عادي.

لذلك، مثال آخر باستخدام قيم الحيوية. هذه المرة ملء إساءة بلدي دولار myVariable مع قيمة

$ myVariable: 1 = $ PLAYED_VOICES_INST


وسوف يعقد الآن $ myVariable المعلومات التي تم جمعها بواسطة $ PLAYED_VOICES_INST وإضافة 1. حتى الآن يمكن أن أفعل هذا.

Code example 3


إشعار إيف تعيين القيمة إلى $ myVariable داخل رد على المذكرة. هذا لأن $ PLAYED_VOICES_INST يمكن جمع البيانات فقط عندما رد علما داخل التي تتعامل مع المعلومات المذكرة.

وأحصل على هذا ...

You are playing 1 notes!


الآن، إيف ضرب واحد فقط علما بذلك "انك تلعب 1 ملاحظات!" هراء نحويا! لذلك دعونا استخدام متغير لدينا للمساعدة في جعل هذا العمل.

إذا باستخدام ... بيان آخر يمكننا معرفة عدد الملاحظات يلعبون وعرض رد ثت ذات الصلة صحيحة نحويا.

يتيح ذلك يقول إذا myVariable $ أكبر من واحد، طباعة الرسالة التي تعبر عن الجمع من المذكرة. إذا كان لا ثم طباعة رسالة باستخدام صيغة المفرد من المذكرة.

وضعنا $ myVariable (التي تتولى الآن عدد من الملاحظات لعبت) داخل الأقواس من البيان إذا. بهذه الطريقة يمكن أن يصل وزنه إذا كان أكبر من (


سوف رمز لنا تبدو هذه.

Example code 4


عندما ألعب للمرء أن يلاحظ أن أحصل على ....

You are playing 1 note!


عندما ألعب أكثر من ملاحظة أن أحصل على ...

You are playing 4 notes!


النجاح!


لذلك نأمل يمكنك أن ترى كيف تعمل هذا المتغير. إعادة استخدام ايم ذلك ثلاث مرات في هذا السيناريو الذي يحفظ الواضح بعض الوقت والحجم. عند كتابة البرامج النصية أكثر تعقيدا قد مرجع هذا عشرات المرات وليس لها سوى قيمة لتعيين مرة واحدة.

قيمة المتغيرات ليس من الضروري أن تكون ثابتة وليس هناك شيء لوقف لكم تغيير قيمة المتغيرات في أي وقت، في الواقع هذا هو أمر شائع جدا. إعطاء بعض الأمثلة السيئة في الدروس في وقت لاحق.


متغير أنواع

حتى الآن التعامل مع المتغيرات [وف] الأساسية. هناك بضعة أنواع مختلفة من المتغير في كل KONTAKT مع البادئة الخاصة به.


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


تغطية جيدة عدد قليل من هذه الدروس في بعض القادمة.

في المرة القادمة تبدو جيدة في بعض التقنيات واجهة. يجب معرفة حول المتغيرات تجعل عملية إنشاء المستخدم يسيطر على الكثير أسهل للفهم. حتى ذلك الحين!

لقد تضمنت الأمثلة التعليمات البرمجية في هذه


روابط سريعة:

مقدمة في البرمجة النصية في KONTAKT، الجزء 1

مقدمة في البرمجة النصية في KONTAKT، الجزء 2

مقدمة في البرمجة النصية في KONTAKT، الجزء 3

مقدمة في البرمجة النصية في KONTAKT، الجزء 4

مقدمة في البرمجة النصية في KONTAKT، الجزء 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!