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