🧭 خلاصه (Summary)

MIDI In CHOP رویدادهای MIDI را از دستگاه‌ها و فایل‌ها می‌خواند: رویدادهای نت (Note)، کنترلر (Controller)، تغییر برنامه (Program Change)، پیام‌های سیستم‌اکسکلوسیو (SysEx) و رویدادهای زمانی (Timing).
(همچنین نگاه کنید به: MIDI In Map CHOP)

این CHOP می‌تواند رویدادهای MIDI را از دستگاه‌های متصل، سینت داخلی سیستم، یا فایل‌های MIDI بخواند. رویدادهای پشتیبانی‌شده:

  • Note On / Note Off

  • Polyphonic Aftertouch

  • Channel Pressure

  • Program Change

  • Control Change (کنترلرهای MIDI)

  • Pitch Wheel

  • رویدادهای زمانی (از جمله پالس بیت)، پیام‌های Bar، Start/Stop/Continue، Song Position Pointer

  • System Exclusive (SysEx)

رویدادهای ورودی که روی کانال‌های مختلف MIDI می‌آیند می‌توانند روی کانال‌های جداگانه CHOP ضبط شوند. هر تعداد MIDI CHOP می‌توانند به یک یا چند منبع گوش دهند.
می‌توان TouchDesigner را طوری تنظیم کرد که رویدادهای Start/Stop/Continue تایم‌لاین و Beat Dialog را کنترل کنند.

گزینه‌ی Simplified Output برای هر نوع رویداد دریافتی به‌صورت خودکار کانال می‌سازد؛ بنابراین لازم نیست الگوی نام/کانال/ایندکس را از قبل تعیین کنید.

نکته: مقادیر ورودی‌های MIDI داخل فایل .toe ذخیره و هنگام بازگشایی بازیابی می‌شوند. ممکن است وضعیت فیزیکی کنترلرها هنگام اجرای مجدد تغییر کرده باشد و با حرکت کنترلرها «پرش مقدار» دیده شود. (اجتناب‌ناپذیر است.)

همچنین ببینید: MIDI In DAT، MIDI Event DAT، MIDI In Map CHOP، MIDI Out CHOP.


⚙️ پارامترها – صفحه Source

  • Active (active) – روشن/خاموش کردن دریافت MIDI.

  • MIDI Source (source) – ⊞ منبع MIDI:

    • Device: دریافت زنده از دستگاه.

    • File: خواندن از فایل MIDI.

  • Device Table (device) – مسیر DAT جدولیِ دستگاه‌های MIDI.

  • Device ID (id) – شناسه‌ی دستگاه انتخابی.

  • MIDI File (file) – مسیر فایل MIDI (از دیسک یا URL با http://).

  • Read Entire MIDI File (entire) – اگر روشن باشد، کل فایل خوانده می‌شود؛ در غیر این صورت بازه‌ی Start/End (صفحه Channel) تعیین‌کننده است.

  • Reset Channels (resetchannels / pulse) – پاک‌کردن همه کانال‌ها و توقف افزودن کانال جدید تا خاموش‌شدن این حالت. (Pulse = فوری)

  • Reset Values (resetvalues / pulse) – صفرکردن فوری همه‌ی مقادیر کانال‌ها و توقف به‌روزرسانی تا خاموش‌شدن.

  • Simplified Output (simplified) – ایجاد خودکار کانال‌ها هنگام تشخیص سیگنال از دستگاه.

  • Preserve Pulses (preservepulses) – کش‌دادن پالس‌های سریع روی چند نمونه‌ی خروجی برای جلوگیری از روی‌هم‌افتادن در نرخ تایم‌لاین.

  • 1 Based Index (onebased) – یک‌مبنایی کردن ایندکس‌ها (به‌جای ۰مبنایی).

  • MIDI Channels (channel) – تعیین کانال‌های MIDI (۱ تا ۱۶) با پشتیبانی از محدوده‌ها/فاصله‌ها (مثل "1 4 6", "1-7 12", "1-5:2").

    • اگر Channel Prefix خالی باشد، جریان چند کاناله‌ی MIDI در یک مجموعه کانال CHOP ادغام می‌شوند.

  • Channel Prefix (prefix) – اگر مقدار‌گذاری شود (مثلاً "ch")، برای هر کانال MIDI، کانال‌های CHOP جداگانه ساخته می‌شود.


🎙️ پارامترها – صفحه Record (وقتی Simplified Output خاموش است)

  • Record Method (recordtype) – ⊞ روش ضبط:

    • Single Frame – تنها مقدار «فعلی» رویدادها؛ سابقه نگه نمی‌دارد. فقط هنگام ورود رویداد cook می‌کند.

    • Current Frame – مانند بالا، اما قاب CHOP همیشه روی فریم جاری است (هر فریم recook).

    • Current Time Slice – قاب CHOP برابر Time Slice جاری.

    • Full Length – تمام طول تایم‌لاین ضبط می‌شود.

  • Record (record) – دکمه‌ی شروع/توقف ضبط در کانال‌ها.


🎼 پارامترها – صفحه Note (وقتی Simplified Output خاموش است)

  • Note Name (notename) – نام پایه‌ی کانال نت‌ها (مثلاً "n"). خالی = نادیده‌گرفتن نت‌ها.

    • اگر Note Output = Separate Channels باشد، برای هر نت در Note Scope یک کانال ساخته می‌شود.

  • Note Scope (notesc ope) – محدوده/لیست نت‌ها (مثل "50-60", "64 65 66 70-80").

  • Note Output (notemeth) – ⊞ نحوه‌ی خروجی چندنتی:

    • One Multiplexed Channel – یک کانال برای همه‌ی نت‌ها؛ مقدار کانال = شماره‌ی آخرین نت فعال.

    • Separate Channels – برای هر شماره نت، یک کانال جدا.

  • Velocity (velocity) – ⊞ نحوه‌ی ضبط سرعت ضربه (ولاسیتی):

    • Off – ضبط نمی‌شود.

    • Note Amplitude – به‌عنوان دامنه‌ی نت در همان کانال (فقط وقتی Note Output = Separate Channels).

    • Separate Channels – کانال‌های سرعت جداگانه.

  • Velocity Name (velname) – نام پایه‌ی کانال‌های Velocity (مثلاً "v"). خالی = عدم ایجاد.

  • Aftertouch Name (aftername) – نام پایه‌ی کانال‌های Poly Aftertouch برای هر نت در Scope. خالی = عدم ایجاد.

  • Pressure Name (pressname) – نام کانال Channel Pressure (برای همه کانال‌های انتخابی). خالی = عدم ایجاد.

  • Normalize (notenorm) – ⊞ نرمال‌سازی مقادیر نت/کنترلر:

    • None – 7بیت: ۰–۱۲۷ / 14بیت: ۰–۱۶۳۸۳

    • 0 to 1 – نرمال به ۰ تا ۱

  • Pitch Wheel Name (pitchname) – نام کانال Pitch Wheel (خروجی بین −۱ تا +۱). برای ایجاد، مثلاً "p".


🎚️ پارامترها – صفحه Control (وقتی Simplified Output خاموش است)

  • Controller Name (controlname) – نام پایه‌ی کانال‌های Control Change (به‌صورت name + index، ۰–۱۲۷). خالی = نادیده.

  • Controller Type (controltype) – ⊞ انتخاب نوع کنترلر یا حالت By Index Only برای تعیین دستی اندیس‌ها. شامل انواع رایج (Bank Select، Mod Wheel، Volume، Pan، Expression، Sustain، …).

  • Controller Index (controlind) – تعیین اندیس/محدوده‌ی کنترلرها (مثلاً "1-10", "2 34 70", "1-32 70-80:2").

  • Controller Format (format) – ⊞ 7بیت یا 14بیت (جفت دو پیام 7بیتی برای 14بیت).

  • Normalize (norm) – ⊞ نرمال‌سازی:

    • None – (۷بیت: ۰–۱۲۷ / ۱۴بیت: ۰–۱۶۳۸۳)

    • 0 to 1 – ۰ تا ۱

    • -1 to 1 – −۱ تا +۱

    • On/Off – تبدیل به ۰/۱ (≥۶۴ → ۱، <۶۴ → ۰)

  • Unwrap (unwrap) – پیوسته‌سازی مقادیر برای جلوگیری از پرش بین مین/مکس (برای ناب/Knob).

  • Program Change (progname) – نام کانال برنامه (Program Change). خالی = عدم ایجاد.


⏱️ پارامترها – صفحه Timer (وقتی Simplified Output خاموش است)

  • Timer Pulse Name (pulsename) – ضبط پالس تایمر.

  • Timer Ramp Name (rampname) – ضبط رمپ تایمر.

  • Timer Period (timerperiod) – ضبط دوره‌ی تایمر.

  • Timer Start (timerstart) – ضبط استارت تایمر.

  • Ticks per Beat (ticks) – تیک در هر بیت (روی خروجی‌های تایمر/بار اثر دارد).

  • Bar Ramp Name (barname) – موقعیت جاری Bar.

  • Bar Period (barperiod) – رویدادهای دوره‌ی Bar.

  • Bar Start (barstart) – رویداد شروع Bar.

  • Bar Message (barmsg) – دریافت پیام‌های Bar (قرار دادن V برای مقدار کانال).

  • Song Pos Name (songpos) – دریافت پیام Song Position.


📨 پارامترها – صفحه Sys (System Exclusive) (وقتی Simplified Output خاموش است)

  • System Exclusive (sysex) – مجموعه‌ی هندلرهای پیام‌های SysEx.

    • Channel Name (sysex0name) – نام کانال برای یک پیام SysEx خاص.

    • Message (sysex0msg) – محتوای پیام SysEx؛ قرار دادن V در پیام برای مقدار کانال.


📺 پارامترها – صفحه Chan

مشابه صفحه‌ی Channel در ژنراتورها، با چند نکته‌ی خاص برای MIDI In:

  • Start / End (start/end) – تعیین بازه‌ی ضبط/خواندن (برای فایل MIDI نیز).

    • واحدها با Start Unit/End Unit تنظیم می‌شوند: Samples / Frames / Seconds.

    • مثال: برای طول ۱۰۰ سمپل → Units = Samples، Start=0، End=99.

  • Sample Rate (rate) – نرخ نمونه‌برداری CHOP (نمونه بر ثانیه).

    اگر نرخ خیلی پایین باشد، ممکن است رویدادهای سریع از دست بروند. برای اطمینان، نرخ‌های بالاتر (مثلاً ۶۰۰) استفاده کنید.

  • Extend Left/Right – ⊞ شرایط Extend: Hold / Slope / Cycle / Mirror / Default Value.

  • Default Value (defval) – مقدار پیش‌فرض برای حالت Default Value.


⚙️ پارامترها – صفحه Common

  • Time Slice (timeslice) – پردازش فقط بازه‌ی بین آخرین cook تا cook فعلی.

  • Scope (scope) – محدوده‌ی کانال‌هایی که تحت‌تأثیر قرار می‌گیرند (الگوی نام).

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

  • Export Method / Root / Table – تنظیمات ارسال (Export) کانال‌ها به پارامترها یا DAT.


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

  • Input 0: — (این CHOP منبع خارجی رویداد نمی‌گیرد؛ مستقیماً به دستگاه/فایل MIDI گوش می‌دهد.)


📊 Info CHOP Channels

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 در آن فریم (ms)

  • cooked_this_frame – آیا در همین فریم cook شده؟ (۱/۰)

  • warnings / errors – تعداد هشدار/خطا