🧭 خلاصه (Summary)
Limit CHOP برای محدود کردن (Limit) یا کوانتایز کردن (Quantize) مقادیر کانالهای ورودی استفاده میشود.
این نود میتواند:
مقدار هر کانال را بین حداقل و حداکثر مشخصشده نگه دارد (limit)
یا مقادیر و زمان نمونهها را به پلههای مشخصی “اسنپ” کند (quantize)
🔹 Limit: باعث میشود تمام مقادیر داخل یک بازه بمانند (مثلاً بین 0 تا 1).
روشهای مختلفی برای محدودسازی در پارامتر Type وجود دارد (مثل Loop، Clamp یا Zigzag).
🔹 Quantize: مقادیر را به نزدیکترین مقدار مجاز (step) گرد میکند — با روشهای مختلف:
Floor (پایین)، Ceiling (بالا) یا Round (گرد کردن).
🔹 Quantize Index: شبیه “کوانتایز زمانی” است؛ کانال را در شاخصهای کوانتایز شده نمونهبرداری میکند و مقدار را تا مرحله بعد نگه میدارد — مانند عملکرد Sample & Hold در صدا یا سیگنال.
⚙️ پارامترها – صفحه Limit (Parameters – Limit Page)
🔹 Type (type)
نوع محدودسازی را انتخاب میکند. روشهایی مثل:
Loop
Clamp
Zigzag
در همهی حالتها مقدار در بازهی Min تا کمتر از Max باقی میماند.
🔹 Minimum (min)
حداقل مقداری که خروجی میتواند داشته باشد.
🔹 Maximum (max)
حداکثر مقداری که خروجی میتواند داشته باشد.
🔹 Positive Only (positive)
قدر مطلق کانال را میگیرد؛ یعنی همهی مقادیر منفی را مثبت میکند.
🔹 Normalize (norm)
کانال را اسکیل و افست میکند تا در بازهی -1 تا +1 قرار گیرد.
⚠️ توجه: این گزینه با Time Slicing سازگار نیست.
🔹 Fix Underflows (underflow)
اعداد بسیار کوچک (زیر حد دقت ممیز شناور) را به صفر گرد میکند.
⚙️ پارامترها – صفحه Quantize (Parameters – Quantize Page)
🔹 Quantize Value (quantvalue)
روش کوانتایز مقدار را تعیین میکند:
| گزینه | توضیح |
|---|---|
| Off | هیچ کوانتایزی انجام نمیشود. |
| Ceiling | مقدار را به نزدیکترین پلهی بالاتر گرد میکند. |
| Floor | مقدار را به نزدیکترین پلهی پایینتر گرد میکند. |
| Round | مقدار را به نزدیکترین پله (بالا یا پایین) گرد میکند. |
🔹 Value Step (vstep)
فاصلهی بین پلههای کوانتایز مقدار (step size).
🔹 Value Offset (voffset)
افست افقی برای پلهها — برای زمانی که نمیخواهید پلهها از صفر شروع شوند.
🔹 Quantize Index (quantindex)
تعیین میکند کوانتایز شاخص (index) نسبت به کجا محاسبه شود:
| گزینه | توضیح |
|---|---|
| Off | خاموش |
| Relative to Start (relstart) | نسبت به شروع CHOP |
| Relative to Zero (relzero) | نسبت به شاخص صفر (نمونه 0) |
🔹 Step (istep)
فاصلهی بین شاخصهای کوانتایز (در واحد ثانیه، فریم یا نمونه).
🔹 Step Unit (istepunit)
واحد اندازهگیری برای گامهای زمانی (seconds / frames / samples).
🔹 Offset (ioffset)
مقدار جابجایی (offset) برای شاخصهای کوانتایز.
🔹 Offset Unit (ioffsetunit)
واحد افست زمانی (مانند ثانیه یا فریم).
⚙️ پارامترهای مشترک – صفحه Common (Parameters – Common Page)
Time Slice (timeslice): اگر فعال باشد، CHOP فقط بازهی زمانی بین فریمهای cook را محاسبه میکند.
Scope (scope): تعیین اینکه کدام کانالها تحت تأثیر قرار بگیرند (با استفاده از الگوهای Pattern Matching).
Sample Rate Match (srselect): همگامسازی نرخ نمونه بین ورودیها.
Export Method (exportmethod): تعیین روش اتصال خروجیها به پارامترها (با DAT یا مسیر پارامتر).
Export Root (autoexportroot): مسیر ریشه برای export با نام کانال.
Export Table (exporttable): DAT جدول اتصال exportها.
🔌 ورودیها (Operator Inputs)
Input 0: CHOP ورودی که قرار است محدود یا کوانتایز شود.
📊 کانالهای اطلاعات (Info CHOP Channels)
اطلاعات اضافی از طریق Info CHOP قابل دریافت است.
🔹 Common CHOP Info Channels
| پارامتر | توضیح |
|---|---|
| start | نقطه شروع بازه CHOP (بر حسب نمونه) |
| length | تعداد نمونهها |
| sample_rate | نرخ نمونهگیری (فریم در ثانیه) |
| num_channels | تعداد کانالها |
| time_slice | آیا Time Slice فعال است (1/0) |
| export_sernum | تعداد دفعات بهروزرسانی اتصالهای export |
🔹 Common Operator Info Channels
| پارامتر | توضیح |
|---|---|
| total_cooks | تعداد دفعات cook از آغاز |
| cook_time | زمان cook آخر (میلیثانیه) |
| cook_frame / cook_abs_frame | شماره فریم cook (نسبت به timeline و زمان مطلق) |
| cook_start_time / cook_end_time | زمان شروع و پایان cook (ms) |
| cooked_this_frame | آیا در این فریم cook شده (1/0) |
| warnings / errors | هشدارها و خطاهای موجود در اپراتور |
