🧭 خلاصه (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 تعداد هشدارها یا خطاها