خلاصه (Summary)

Audio VST CHOP فایل‌های پلاگین VST3 را بارگذاری می‌کند که می‌توانند صدا تولید کنند (سازها / instruments) یا آن را پردازش کنند (فیلترها). (به بخش مرور کلی VST مراجعه کنید.)

پارامترهای پلاگین می‌توانند به‌صورت دوطرفه (bidirectional) از طریق پارامترهای مربوطه در TouchDesigner یا کنترل‌های GUI پلاگین نمایان و کنترل شوند. برای استفاده کامل از این قابلیت دوطرفه توصیه می‌شود هنگام کنترل پارامترها در TouchDesigner از Binding یا Bind CHOP استفاده شود، نه expression یا CHOP reference.

با Python می‌توان پیام‌های MIDI به پلاگین ارسال کرد. اگر پلاگین خروجی MIDI تولید کند، می‌توانید این پیام‌ها را از طریق callbacks DAT متصل دریافت و پردازش کنید.

بسته به نوع پلاگین، Audio VST CHOP می‌تواند تا ۴ ورودی چندکاناله بگیرد.

(به بخش تست پلاگین‌های VST در TouchDesigner مراجعه کنید تا بدانید کدام پلاگین‌ها به‌خوبی کار می‌کنند. همچنین مجموعه‌ای از VSTهای رایگان و نسخه‌های ارتقایافته و مقرون‌به‌صرفه در این لینک موجود است: https://hy-plugins.com.)

۲ پلاگین رایگان HY-Plugins همراه با TouchDesigner ارائه شده‌اند و از طریق منوی Help > Browse Samples در دسترس هستند. در پوشه Samples یک پوشه VST3 وجود دارد که شامل یک سینتی‌سایزر و یک پلاگین فیلتر هم برای ویندوز و هم macOS است. فایل‌های VST3 ویندوز با عبارت “64 Bit” در نامشان قابل تشخیص هستند.

محل نصب پیش‌فرض پلاگین‌های VST:

  • ویندوز: ‎C:/Program Files/Common Files/VST3

  • مک: ‎/Library/Audio/Plug-Ins/VST3

نکته: می‌توانید با اتصال یک Info DAT به CHOP اطلاعات دقیق پلاگین VST را دریافت کنید.

VST یک علامت تجاری متعلق به Steinberg Media Technologies GmbH است.


پارامترها – صفحه “VST”

  • File (file): مسیر پلاگین VST3. مسیر پیش‌فرض نصب در ویندوز ‎C:/Program Files/Common Files/VST3 و در مک ‎/Library/Audio/Plug-Ins/VST3.

  • Reload (reloadpulse): بارگذاری مجدد پلاگین. باعث پاک شدن تمام پارامترهای یادگرفته‌شده، ریست GUI و داده‌های ذخیره‌شده پلاگین می‌شود. عملاً پلاگین به حالت پیش‌فرض برمی‌گردد.

  • Load Plugin State on Start (loadpluginstate): اگر فعال باشد، وضعیت پلاگین (presetها و دیگر عناصر UI) داخل فایل .toe ذخیره شده و هنگام اجرای TouchDesigner بازیابی می‌شود. (برای پلاگین‌هایی که در این حالت crash می‌کنند باید غیرفعال شود.)

  • Sample Rate (rate): نرخ نمونه‌برداری پلاگین VST3 را تعیین می‌کند.

  • Plugin GUI Always on Top (alwaysontop): اگر فعال باشد، پنجره پلاگین همیشه روی سایر پنجره‌ها باقی می‌ماند.

  • Display Plugin GUI (displaygui): وقتی pulse شود، GUI پلاگین در یک پنجره جداگانه باز می‌شود. تغییر پارامترها در GUI هنگام فعال بودن Learn باعث ایجاد آن پارامتر در Audio VST CHOP می‌شود.

  • Learn Parameters (learnparms): وقتی فعال باشد، پارامترهایی که در پنجره پلاگین تغییر داده می‌شوند، به‌عنوان پارامتر در صفحه Plugin ایجاد می‌شوند.

  • Regular Parameters (regularparms): وقتی فعال باشد، همه پارامترهای پلاگین به صفحه Plugin اضافه می‌شوند.

  • Read-Only Parameters (readonlyparms): اگر فعال باشد، تمام پارامترهای فقط‌خواندنی پلاگین ایجاد می‌شوند. (اگر Regular Parameters فعال باشد این گزینه بی‌اثر خواهد بود.)

  • Clear Learned Parameters (clearlearnedparms): وقتی pulse شود، تمام پارامترهای یادگرفته‌شده حذف می‌شوند. (اگر Regular یا Read-only فعال نباشند، پارامترها کلاً نابود می‌شوند.)

  • Callbacks DAT (callbacks): مرجع به DAT حاوی callbackهای پشتیبانی‌شده توسط Audio VST CHOP.


پارامترها – صفحه “Bus Layout”

  • Custom Bus Layout (custombuslayout): اگر فعال باشد می‌توان layout باس سفارشی تعریف کرد. در غیر این صورت از پیش‌فرض پلاگین استفاده می‌شود.

  • Output Bus Layout (outputbuslayout): انتخاب layout خروجی باس (تعداد کانال‌ها). این پارامتر مستقیماً تعیین می‌کند Audio VST CHOP چند کانال خروجی دارد.

  • Main Input Bus Layout (maininputlayout): انتخاب layout ورودی اصلی باس (تعداد کانال‌ها). ورودی اصلی همیشه اولین ورودی CHOP است و این پارامتر تعداد کانال‌های قابل پذیرش از آن را مشخص می‌کند.

  • Aux Input (aux): ورودی‌های کمکی پلاگین VST.

    • Enable (aux0enable): فعال کردن باس کمکی.

    • Bus Layout (aux0layout): انتخاب layout باس کمکی (تعداد کانال‌ها). (هر ورودی بعد از ورودی اصلی یک ورودی کمکی محسوب می‌شود. همه پلاگین‌ها این ویژگی را ندارند.) اگر دیگر امکان افزودن ورودی کمکی وجود نداشته باشد (علامت +/- ناپدید شود)، یعنی به حداکثر رسیده‌ایم.


پارامترها – صفحه “Playhead”

  • Custom Playhead (customplayhead): اگر فعال باشد می‌توان playhead سفارشی تعریف کرد. در غیر این صورت پلاگین همیشه به‌صورت ترتیبی در زمان جلو می‌رود. (همه پلاگین‌ها از این قابلیت پشتیبانی نمی‌کنند.)

  • Timecode Object/CHOP/DAT (timecodeop): تعیین موقعیت playhead پلاگین. می‌تواند مرجع به:

    • یک CHOP با کانال‌های hour, minute, second, frame

    • یا یک DAT با رشته timecode در اولین سلول

    • یا یک شیء Timecode Class باشد.

  • Tempo (bpm) (tempo): سرعت (بیت در دقیقه) playhead. (همه پلاگین‌ها این قابلیت را ندارند.)

  • Signature (signature): ⊞ – کسر میزان playhead (مثل 4/4 یا 3/4). (همه پلاگین‌ها از تغییر آن پشتیبانی نمی‌کنند.)


پارامترها – صفحه “Common”

  • Time Slice (timeslice): پردازش Time Slice (فاصله بین آخرین cook و cook فعلی).

  • Scope (scope): تعیین می‌کند کدام کانال‌ها تحت تأثیر قرار گیرند. (نگاه کنید به Pattern Matching).

  • Sample Rate Match (srselect): ⊞ مدیریت اختلاف نرخ نمونه‌برداری ورودی‌ها:

    • First (first): نرخ ورودی اول مبنا باشد.

    • Maximum (max): بازنمونه‌برداری به بالاترین نرخ.

    • Minimum (min): بازنمونه‌برداری به پایین‌ترین نرخ.

    • Error (err): اگر نرخ‌ها متفاوت باشند خطا بدهد.

  • Export Method (exportmethod): ⊞ تعیین روش اتصال کانال CHOP به پارامتر.

    • DAT Table by Index (datindex): بر اساس ایندکس در جدول DAT.

    • DAT Table by Name (datname): بر اساس نام در جدول DAT.

    • Channel Name is Path:Parameter (autoname): نام کانال همان مسیر کامل پارامتر مقصد باشد.

  • Export Root (autoexportroot): مسیر root برای روش بالا.

  • Export Table (exporttable): جدولی برای نگهداری اطلاعات اکسپورت (روش DAT Table).


کانال‌های Info CHOP

اطلاعات اضافه برای Audio VST CHOP را می‌توان از طریق یک Info CHOP دریافت کرد.

کانال‌های عمومی Info CHOP:

  • start: شروع بازه CHOP (بر اساس نمونه‌ها).

  • length: تعداد نمونه‌ها.

  • sample_rate: نرخ نمونه‌برداری (فریم در ثانیه).

  • num_channels: تعداد کانال‌ها.

  • time_slice: اگر فعال باشد 1، در غیر این صورت 0.

  • export_sernum: شمار دفعاتی که اتصال‌های اکسپورت به‌روزرسانی شده‌اند.

کانال‌های عمومی Info اپراتور:

  • total_cooks: تعداد دفعات cook شدن از شروع اجرا.

  • cook_time: مدت cook آخر (میلی‌ثانیه).

  • cook_frame: شماره فریم cook آخر نسبت به timeline کامپوننت.

  • cook_abs_frame: شماره فریم cook آخر نسبت به زمان مطلق.

  • cook_start_time: زمان شروع cook (میلی‌ثانیه).

  • cook_end_time: زمان پایان cook (میلی‌ثانیه).

  • cooked_this_frame: اگر در این فریم cook شده باشد 1.

  • warnings: تعداد هشدارها.

  • errors: تعداد خطاها.