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