مقدمه ای بر برنامه نویسی در 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 بود که به سادگی یک مرجع به آن پارامتر انجام شد. در این بخش به کاوش عمیق تر به متغیرها، هر دو ساخته شده و تعریف شده توسط کاربر.

یک متغیر چیست؟

متغیرها بدون شک مهم ترین چیز در هر زبان برنامه نویسی است و این امر می تواند بسیار سخت به با بقیه این کارگاه ادامه بدون توضیح آنها را در جزئیات بیشتر است.

متغیر یک دستگاه ذخیره سازی است که دارای یک قطعه از اطلاعات است. در هر نقطه که شما می توانید به آن قطعه از اطلاعات توسط مرجع است که نام متغیر مراجعه کنید. فکر می کنم از آن را مانند یک میانبر.

شما می توانید یک متغیر استاتیک (ثابت) قطعه از اطلاعات مثل نام، شماره و یا یک شی را پر کنید. متناوبا شما می توانید آن را با چیزی پویا را پر کنید، مانند ارزش فعلی یک پارامتر در حال تغییر است که پس از آن می توان به چیز دیگری منتقل شده است.

دو نوع اصلی از متغیر وجود دارد. ساخته شده و تعریف شده توسط کاربر. اجازه می دهد که نگاه!


ساخته شده است در متغیر

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 شمارش است. ampersands (

بنابراین شما با استفاده از ساخته شده است در متغیر برای جمع آوری اطلاعات در مورد آنچه در حال آمدن است به KONTAKT


متغیرهای تعریف شده توسط کاربر

متغیرهای کاربر توسط شما تعریف شده است و به همین دلیل KONTAKT است و با این متغیرها آشنا نیست (بر خلاف ساخته شده است در افراد) 1 خواهید باید به آنها اعلام شده است. اعلام یک متغیر بین init انجام ... پایان در پاسخ به تماس. بنابراین آن چه همه چیز در مورد؟

اعلام راه گفت، هی KONTAKT! من دارم به یک متغیر جدید، تا گوش!

بنابراین اجازه می دهد که امتحان کنید! من دارم به یک متغیر معمولی (چند نوع دیگر وجود دارد). اینها با یک دلار داشته است. هر متغیر است بسیار کوچک یا بزرگ بودن حروف مهم پس مراقب باشید!


اعلام دلار myVariable


سلام خوب اما حالا چه؟ در حال حاضر $ myVariable خالی است به عنوان I havent به آن یک ارزش است. بنابراین اجازه می دهد که می گویند ...


myVariable: = 2


: = به معنی برابر است. بنابراین کد خواهد شد شبیه به این.


اعلام دلار myVariable

myVariable: = 2


در حال حاضر KONTAKT می داند چه $ به معنای myVariable. من نیز می تواند همان چیزی که در یک ضربه مانند این ارسال ...


اعلام $ myVariable: = 2


از کجا این خوب است در برخی شرایط بعد خواهید دید که ما ممکن است نیاز به اعلامیه و تخصیص از ارزش ها را به دو بخش مجزا.


بنابراین در حال حاضر متغیر من دارای یک ارزش می تواند یک پیام را در یک رویداد توجه داشته باشید با استفاده از چاپ می باشد.


Code example 2



من این پیام را دریافت.

$myVariable has a value of 2


توجه کنید که چگونه می توانم دلار myVariable در داخل علامت نقل قول را بدون آن به عنوان 2 تا استفاده کنید. دلیل این است که هر چیزی در داخل نقل قول متن ساده در نظر گرفته شده است.

بنابراین، به عنوان مثال با استفاده از مقادیر پویا. این زمان بیمار من $ myVariable با ارزش را پر کنید

$ myVariable: = $ PLAYED_VOICES_INST 1


دلار های myVariable در حال حاضر خواهد شد اطلاعات جمع آوری شده توسط $ PLAYED_VOICES_INST داده و نگه دارید و اضافه کردن 1. بنابراین در حال حاضر من می توانم این کار را انجام دهند.

Code example 3


مقررات سلام به ارزش به $ myVariable توجه داشته باشید در داخل بازپس. دلیل این است که دلار PLAYED_VOICES_INST تنها می تواند جمع آوری داده ها توجه داشته باشید زمانی که تماس مجدد داخل است که در برخورد با اطلاعات توجه داشته باشید.

و من این ...

You are playing 1 notes!


در حال حاضر، سلام تنها ضربه به یکی توجه داشته باشید به طوری که شما در حال بازی 1 یادداشت! " گرامر مزخرف است! بنابراین استفاده از متغیر ما برای کمک به این کار کنیم.

با استفاده از اگر ... بیانیه دیگری را می توانید پیدا کردن که چگونه بسیاری از یادداشت ها بازی و نمایش پاسخ مربوطه سلام دستوری صحیح است.

بنابراین اجازه می دهد که می گویند اگر دلار myVariable بزرگتر از یک است، با چاپ یک پیام است که بیانگر جمع توجه داشته باشید. اگر آن چاپ یک پیام را با استفاده از منحصر به فرد توجه داشته باشید.

ما را myVariable (که در حال حاضر دارای شماره از یادداشت های انجام شده) داخل براکت از عبارت if است. این راه می تواند وزن اگر بیشتر آن (


کد ما خواهد شد شبیه به این.

Example code 4


وقتی که من بازی یک نکته دریافت می کنم ....

You are playing 1 note!


زمانی که من بازی بیش از یک نکته دریافت می کنم ...

You are playing 4 notes!


با موفقیت انجام شد!


بنابراین امیدوارم که شما می توانید ببینید که چگونه این متغیر در حال کار است. من استفاده مجدد از آن را سه بار در این اسکریپت که به وضوح موجب صرفه جویی در برخی از زمان و اندازه. هنگامی که شما نوشتن اسکریپت های پیچیده تر، شما ممکن است این ده ها بار و تنها مرجع ارزش را به او واگذار.

مقدار متغیر را ندارد به استاتیک و هیچ چیز برای جلوگیری از تغییر یک مقدار متغیر در هر زمان وجود دارد، در واقع این کاملا معمول است. بیمار برخی از نمونه ها در آموزش های بعد را می دهد.


انواع متغیر

تا کنون weve برخورد با متغیرهای اساسی است. انواع مختلفی از متغیر در 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!