آشنایی با MIDIbox
MIDIbox یک پروژه متنباز و غیرتجاری است که مجموعهای از راهنماها را برای ساخت رابطهای دستگاههای موسیقی (MIDI) ارائه میدهد. از طریق آموزشهای «خودت انجام بده» (DIY)، کاربران در فرآیند ساخت یک میکروکنترلر پایه راهنمایی میشوند. این میکروکنترلرها میتوانند برای ساخت واحدهای کنترل MIDI سختافزاری برای سینتیسایزرهای مختلف، نرمافزارهای ضبط چندمسیره و سایر دستگاههای MIDI، و همچنین سینتیسایزرهای مستقل، سکوئنسرها و پروژههای دیگر مورد استفاده قرار گیرند.
تاریخچه
پلتفرم سختافزاری MIDIbox ادامهدهنده کارهای قبلی Thorsten Klose در زمینه کنترلرهای MIDI است. طراحیها بر اساس یک محیط استاندارد از ماژولهای قابل استفاده مجدد و قابل تعویض بنا شدهاند. کمی پس از انتشار اولین ماژولها، گروه کوچکی از علاقهمندان شکل گرفت و به یک جامعه توسعهدهنده متنباز پررونق تبدیل شد.
پلتفرم سختافزاری MIDIbox (MBHP)
این پلتفرم بر ماژولهای خوشتعریف و مستندسازیشده مبتنی بر مدارهای کوچک و ساده تمرکز دارد تا مونتاژ توسط علاقهمندان را تسهیل کند. سپس این ماژولها در یک پروژه کامل مونتاژ میشوند. تمام بردها میتوانند به صورت PCBهای تکلایه و بردهای پروتوتایپ که با نرمافزار CAD رایگان طراحی شدهاند، ساخته شوند. تقریباً تمام قطعات از نوع «از سوراخ عبورکننده» (through-hole) هستند تا مونتاژ آسانتر باشد.
اولین پلتفرم سختافزاری MIDIbox (MBHP) بر اساس سیستمعامل متنباز خود، یعنی MIOS (MIDIbox Operating System)، بنا شده بود که برای سرعت و دقت بالا به زبان اسمبلی PIC نوشته شده بود. یک لایه پوشش C، کدنویسی را سادهتر میکند. MIOS به گونهای طراحی و مستند شده است که امکان بازپیکربندی، تطبیق و گسترش آسان توسط علاقهمندان را فراهم میکند.
پلتفرم سختافزاری جدید MIDIBox، یعنی MIOS32، بر روی پردازندههای مبتنی بر ARM مانند LPC1769 از NXP و STM32F407 از STMicroelectronics اجرا میشود و مبتنی بر یک سیستمعامل بیدرنگ (RTOS) مشتق شده از FreeRTOS است. زنجیره ابزار MIOS32 مبتنی بر GCC است و فقط از زبان C استفاده میکند.
ماژولها
در حال حاضر حدود 15 ماژول مجزا در دسترس است:
- ماژولهای میکروکنترلر: Core Module، ماژولهای PIC Programmer (مانند PIC-Burner یا JDM Module)
- ماژولهای ورودی: AIN Module (ورودی آنالوگ 0-5V)، DIN Module (ورودی دیجیتال ON/OFF)
- ماژولهای خروجی: DOUT Module (خروجی دیجیتال، مانند LED ON/OFF)، LCD Module (نمایشگر کریستال مایع)، AOUT Module (خروجی آنالوگ برای کنترلها)
- ماژولهای سکوئنسر: SEQV4 Sequencer V4، SEQV4L Sequencer V4 Lite، SEQV3 Sequencer V3
- ماژولهای صدا: SID Module (برای تراشه MOS Technology SID موجود در Commodore 64)، OPL3 Module (برای تراشههای FM مانند YMF262 و YAC512)، IIC SpeakJet Module (برای تراشه صدای SpeakJet)
- ماژولهای توسعه حافظه: BankStick 32k / 64k Memory module
- ماژولهای MIDI I/O: LTC Module (نشانگرهای LED MIDI + 1 MIDI-Out + 1 Thru)، USB Modules (رابط PC/USB)
- ماژولهای متفرقه: MF Module (برای کنترل Motorfaders)، IIC Modules (برای ارتباط با دستگاههای میکروکنترلر دیگر از طریق I2C)
- ماژول RTP-MIDI: فریمور MIOS32 شامل لینک مستقیم به ماژول RTP-MIDI OEM KissBox از طریق SPI پرسرعت است.
سیستمعامل MIDIbox (MIOS)
سیستمعامل MIDIbox (MIOS) طراحی برنامههای کاربردی کنترلر MIDI انعطافپذیر را تسهیل میکند. MIOS به یک پلتفرم متنباز و غیرتجاری پایبند است که برای تبادل ایدهها و تطبیقهای شخصی که با کنترلرهای تجاری امکانپذیر نیست، اساسی است.
بیشتر کنترلرهای ساخته شده توسط جامعه، بر اساس طرحهای مستندسازیشده موجود هستند و با مجموعه ویژگیهای ارائه شده توسط فریمور موجود آغاز به کار میکنند. کاربران نهایی میتوانند دستگاههای خود را با کد برنامه قابل تعویض ارتقا دهند و آنها را مطابق با برنامه میزبان، سینتیسایزر یا سایر دستگاههای MIDI خود سفارشی کنند. کاربران همچنین میتوانند مطابق با جریان کاری ترجیحی خود سفارشیسازی کنند یا یک پروژه جدید از ابتدا طراحی کنند.
کد منبع برنامه، شماتیک ماژولها و طرحبندی PCB به صورت رایگان برای استفاده غیرتجاری به عنوان الگو برای اصلاحات و بهبودها در دسترس هستند. بنابراین MIOS و پلتفرم سختافزار، ورود آسان به توسعه میکروکنترلر برای علاقهمندان را فراهم میکنند و در عین حال امکان برنامههای کاربردی فراتر از حوزه بازار اصلی و تجاری MIDI را ممکن میسازند.
MIOS تا نسخه 1.8 تحت مجوز GPL منتشر شد. نسخههای بعدی برای استفاده تجاری نیاز به اجازه Thorsten Klose دارند.
مشخصات فنی
سیستمعامل شامل یک هسته است که قلابهای کاربر را به رویدادهای سختافزاری و نرمافزاری و توابعی برای تعامل با ماژولهای پلتفرم سختافزار ارائه میدهد. یک ماژول هسته با میکروکنترلر PIC18F452 میتواند:
- تا 128 ورودی دیجیتال
- تا 128 خروجی دیجیتال
- تا 64 ورودی آنالوگ
- LCDهای کاراکتری و گرافیکی
- تا 8 BankStick (EEPROMهای I2C)
- یک ورودی و یک خروجی MIDI، یا یک پورت COM سریال RS-232 را مدیریت کند.
درایورهای پسزمینه برای وظایف کنترلی زیر در دسترس هستند:
- پردازش MIDI I/O
- بوتلودر
- تبدیل آنالوگ تا 64 پتانسیومتر، فیدر یا منابع آنالوگ دیگر با وضوح 10 بیت
- مدیریت موتور برای حداکثر 8 فیدر متحرک موتوری با وضوح 10 بیت
- مدیریت حداکثر 64 انکودر چرخشی
- مدیریت حداکثر 128 دکمه، سنسور لمسی یا دستگاههای ورودی دیجیتال مشابه
- مدیریت حداکثر 128 LED، رله، مبدل دیجیتال به آنالوگ یا دستگاههای خروجی مشابه. در حالت مالتیپلکس، تعداد نامحدودی LED، حلقههای LED و ارقام LED قابل راهاندازی هستند.
- خواندن/نوشتن از/به EEPROM، Flash و BankStick
- اتصال ماژولهای هسته PIC18F از طریق MIDIbox Link
کل سیستمعامل به زبان اسمبلی نوشته شده و برای سرعت بهینهسازی شده است. MIOS در حال حاضر از 8 کیلوبایت حافظه برنامه و 640 بایت RAM استفاده میکند.
فقط 75 میکروثانیه برای خواندن 128 پین ورودی دیجیتال و نوشتن در 128 پین خروجی لازم است. 16 انکودر چرخشی در عرض 100 میکروثانیه مدیریت میشوند. ورودیهای آنالوگ در پسزمینه هر 200 میکروثانیه اسکن میشوند؛ تغییراتی بزرگتر از یک محدوده حداقل قابل تعریف، یک قلاب کاربر را فعال میکنند.
حداکثر 256 رویداد MIDI میتوانند توابع اختصاصی را فعال کنند؛ پردازش لیست رویدادها حدود 300 میکروثانیه طول میکشد. رویدادهای MIDI همچنین میتوانند توسط یک روتین کاربر برای تجزیه sysex یا کارهای مشابه پردازش شوند. یک تایمر کاربر برای کد زمانبندی شده در دسترس است.
پشتیبانی از زبانهای سطح بالا غیر از C امکانپذیر است.
سختافزار MIOS
سختافزار MIOS حول مفهوم پلتفرم سختافزاری MIDIBox (MBHP) سازماندهی شده است. MBHPها مادربردهای بسیار پرکاربردی هستند که بالاترین تعداد اتصالات ممکن را برای یک پردازنده معین ارائه میدهند. چهار نسخه از MBHP در حال حاضر در دسترس است:
- MBHP برای پردازندههای 8 بیتی PIC16F877 و PIC18F452. این دو تراشه از نظر پین سازگار هستند، اما PCB نیاز به تغییر سادهای بین دو تراشه دارد.
- MBHP برای پردازنده ARM7 سه بیتی LPC1769
- MBHP برای پردازنده Cortex M4 سه بیتی STM32F407
هنگامی که یک پروژه به ورودی/خروجی کمتری نسبت به آنچه در یک MBHP معین در دسترس است نیاز دارد، مفهوم MIDIBox اجازه ایجاد یک PCB سادهشده اختصاصی برای آن پروژه را میدهد. این رویکرد در Sammich MIDIBox SID و Sammich MIDIBox FM استفاده شده است. این دو کیت شامل طراحی اصلی MBHP هستند، اما با یک PCB سادهشده که به اتصال با تراشه SID یا تراشه YMF262 اختصاص دارد.
در مورد MBHP STM32F407، CPU بر روی یک ماژول که به عنوان یک برد دختر (daughterboard) استفاده میشود، نصب شده است. این برد توسط ST ساخته شده و به عنوان یک برد توسعه (که توسط ST به نام STM32F4 Discovery فروخته میشود) عرضه میگردد. کاربر نهایی نیازی به سروکار داشتن با قطعات SMD ندارد، زیرا برد دختر بر روی کانکتورهای استاندارد 0.1 اینچی نصب میشود.
راه حلهای کامل
در حال حاضر 11 پروژه کاملاً مستندسازی شده در دسترس است، و همچنین تعداد زیادی پروژه کاربر که توسط جامعه ایجاد شدهاند. پروژههای رسمی به شرح زیر هستند:
- MIDIbox SEQ V3: سکوئنسر لایو استپ و مورف 16 ترک + آرپژاتور پیشرفته
- MIDIbox SID V1: سینتیسایزر قابل کنترل با MIDI سختافزاری مبتنی بر تراشه صدای MOS Technology SID (MOS6581) که در Commodore 64/128 عرضه میشد.
- MIDIbox FM V1: سینتیسایزر سختافزاری مبتنی بر تراشه صدای Yamaha YMF262 (که به OPL3 نیز معروف است) برای تولید صداهای FM معروف از کارتهای صدای Soundblaster (سازگار) اوایل دهه 90.
- MIDI Merger V1: دو ورودی MIDI مجزا را به یک خروجی واحد ادغام میکند.
- MIDI Router V1: MIDIboxهای مختلف را به یک پورت MIDI واحد مسیریابی میکند.
- MIDI Processor: قابلیتهای اساسی برای دریافت و ارسال رویدادهای MIDI را فراهم میکند.
- MIDIbox CV: خروجیهای CV و گیت را برای راهاندازی دستگاههای کنترلشونده با ولتاژ مانند سینتیسایزرهای ماژولار آنالوگ ارائه میدهد.
- MIDIbox 64: کنترلر MIDI کامل با 64 کانال.
- MIDIbox 64E V2: نسخه توسعهیافته MIDIbox 64.
- MIDIO128 V2: رابط MIDIO128 برای راهاندازی حداکثر 128 پین خروجی دیجیتال و واکنش به حداکثر 128 پین ورودی دیجیتال از طریق MIDI استفاده میشود.
- MIDIbox LC V1: جایگزینی برای MIDIbox 64/64E.
- MIDImon V2: رویدادهایی را که از طریق کابل MIDI منتقل میشوند، به شکلی قابل خواندن گزارش میدهد.
جستارهای وابسته
- فهرست نرمافزارهای موسیقی
منابع
پیوندهای خارجی
- وبسایت پروژه MIDIbox
- ویکی MIDIbox
- انجمنهای MIDIbox
- وبسایت پروژههای DIY برای علاقهمندان به سختافزار MIDI (غیرتجاری)
- The Protodeck: کنترلر midibox طراحی شده برای تعامل با Ableton Live که توسط Protofuse استفاده میشود.
خودت انجام بده
- نرمافزار میکروکنترلر
- سختافزار موسیقی متنباز
- سختافزار موسیقی الکترونیک DIY
- MIDI