🧭 خلاصه (Summary)

Logic CHOP ورودی‌های CHOP را به کانال‌های باینری (0 یا 1) تبدیل می‌کند (یعنی روشن = 1، خاموش = 0)
و سپس آن‌ها را با استفاده از عملیات منطقی (AND, OR, XOR, NOT, …) ترکیب می‌کند.

🔹 این نود می‌تواند برای ساخت کنترل‌های منطقی، تریگرها، و سوئیچ‌ها در پروژه‌های تعاملی استفاده شود.

⚠️ نکته:
Logic CHOP اکنون توسط ابزارهای پیشرفته‌تر مثل CHOP Execute DAT یا Text DAT جایگزین شده است.
این ابزارها مستقیماً هنگام تغییر CHOP اسکریپت اجرا می‌کنند (مثلاً اجرای پایتون در پاسخ به تغییرات).


⚙️ عملکرد کلی

  • با یک ورودی CHOP:
    می‌توان مقادیر را وارونه (invert) کرد، یا چند کانال را در یک کانال ترکیب نمود با عملگرهایی مانند OR / AND.

  • با چند ورودی CHOP:
    می‌توان کانال‌های مشابه در ورودی‌های مختلف را با عملگرهای منطقی ترکیب کرد
    و نتیجه را در قالب یک CHOP خروجی گرفت.

برای عملیات ریاضی (جمع، ضرب، تقسیم…) از Math CHOP استفاده کنید.


⚙️ پارامترها – صفحه Logic (Parameters – Logic Page)


🔹 Convert Input (convert)

تعیین می‌کند ورودی‌ها چطور به مقادیر باینری (0 یا 1) تبدیل شوند:

گزینهتوضیح
Off When Zero (nonzero)مقدار 0 → خروجی 0، هر مقدار غیرصفر → خروجی 1
Off When Zero or Less (pos)مقدار ≤ 0 → خروجی 0، مقدار مثبت → خروجی 1
Off When Outside Bounds (bound)اگر مقدار خارج از بازه‌ی تعیین‌شده باشد → 0
On When Value Changed (valchange)زمانی که مقدار کانال تغییر کند → 1
On When Channel Name Changed (namechange)زمانی که نام کانال تغییر کند → 1

🔹 Channel Pre OP (preop)

عملیاتی که روی هر نمونه (sample) از کانال انجام می‌شود پس از تبدیل به باینری:

گزینهتوضیح
Off (off)بدون تغییر
Invert (invert)0 ↔ 1
Toggle (toggle)هر بار تغییر از 0→1، حالت را بین 0 و 1 عوض می‌کند
Radio Button (radio)فقط یکی از کانال‌های ورودی می‌تواند روشن باشد (بقیه خاموش می‌شوند)
Last Two On (radio2)تا دو کانال هم‌زمان روشن می‌مانند؛ مفید برای blending در انیمیشن
Rising Edge (rise)فقط در لحظه‌ای که از 0→1 می‌رود، برای یک sample روشن می‌شود
Falling Edge (fall)فقط در لحظه‌ای که از 1→0 می‌رود، برای یک sample روشن می‌شود

🔹 Combine Channels (chanop)

ترکیب کانال‌های داخل هر CHOP با هم:

گزینهتوضیح
Offبدون ترکیب
Andهمه باید روشن باشند تا نتیجه روشن شود
Orاگر یکی روشن باشد، نتیجه روشن می‌شود
Exclusive Or (xor)فقط یکی روشن باشد (نه بیشتر)
Not And (nand)معکوس AND
Not Or (nor)معکوس OR
Equivalence (eqv)وقتی همه یا خاموش‌اند یا همه روشن‌اند
Lowest Index On (lowest)شماره‌ی پایین‌ترین کانال روشن
Highest Index On (highest)شماره‌ی بالاترین کانال روشن

🔹 Combine CHOPs (chopop)

ترکیب کانال‌های بین CHOPهای مختلف (ورودی 1، 2، 3 و …):

گزینهتوضیح
Offبدون ترکیب
Andروشن اگر همه روشن باشند
Orروشن اگر حداقل یکی روشن باشد
Exclusive Or (xor)فقط یکی روشن (نه بیشتر)
Not And (nand)خاموش اگر همه روشن باشند
Not Or (nor)خاموش اگر حداقل یکی روشن باشد
Equivalence (eqv)روشن اگر همه ورودی‌ها برابر باشند
Lowest Index On (lowest)شماره‌ی اولین ورودی روشن (در غیر این صورت -1)
Highest Index On (highest)شماره‌ی آخرین ورودی روشن (در غیر این صورت -1)

🔹 Match By (match)

تعیین نحوه‌ی همسان‌سازی کانال‌ها بین ورودی‌ها:

  • Channel Number (index) — بر اساس شماره‌ی کانال

  • Channel Name (name) — بر اساس نام کانال


🔹 Align (align)

تنظیم نحوه‌ی هم‌تراز کردن فریم‌های ورودی‌ها که زمان شروع متفاوت دارند.
گزینه‌ها شامل:

  • Automatic (auto)

  • Shift to Minimum / Maximum / First Interval

  • Trim / Stretch / Extend (برای هم‌راستاسازی بازه‌ها)


🔹 Bounds (bound)

(وقتی Convert Input = Off When Outside Bounds باشد)
مشخص می‌کند مقادیر کمتر از boundmin یا بیشتر از boundmax خاموش (0) شوند.


⚙️ پارامترهای مشترک – صفحه Common (Parameters – Common Page)

  • Time Slice (timeslice): اجرای نود در بازه‌ی زمانی بین دو cook.

  • Scope (scope): تعیین کانال‌های هدف از طریق pattern.

  • Sample Rate Match (srselect): همگام‌سازی نرخ نمونه‌گیری بین ورودی‌ها.

  • Export Method (exportmethod): انتخاب روش export داده‌ها (به DAT یا مسیر پارامتر).

  • Export Root (autoexportroot): مسیر پایه برای exportها.

  • Export Table (exporttable): DAT ذخیره‌ی اطلاعات export.


🔌 ورودی‌ها (Operator Inputs)

Input 0: CHOP یا CHOPهایی که باید عملیات منطقی روی آن‌ها انجام شود.


📊 کانال‌های اطلاعات (Info CHOP Channels)

اطلاعات اضافی از طریق Info CHOP قابل دسترسی است.

🔹 Common CHOP Info Channels

پارامترتوضیح
startشروع بازه در نمونه‌ها
lengthتعداد نمونه‌ها
sample_rateنرخ نمونه‌برداری
num_channelsتعداد کانال‌ها
time_sliceفعال بودن Time Slice
export_sernumشمار به‌روزرسانی export

🔹 Common Operator Info Channels

پارامترتوضیح
total_cooksتعداد cook از زمان اجرا
cook_timeمدت cook آخر (ms)
cook_frame / cook_abs_frameشماره فریم cook
cook_start_time / cook_end_timeزمان شروع و پایان cook
cooked_this_frameآیا در این فریم cook شده
warnings / errorsتعداد هشدارها یا خطاها