MIDIboxは、楽器デバイスインターフェース( MIDI )の構築方法に関する一連のガイドを提供する非営利のオープンソースプロジェクトです。一連のDIYチュートリアルを通して、ユーザーは基本的なマイクロコントローラーの構築プロセスをガイドされます。このマイクロコントローラーは、様々なシンセサイザー、マルチトラックレコーディングソフトウェア、その他のMIDIデバイス用のハードウェアMIDIコントロールユニットの構築にも使用できます。また、スタンドアロンのシンセサイザー、シーケンサー、その他のプロジェクトにも使用できます。


MIDIboxハードウェアプラットフォームは、Thorsten KloseによるMIDIコントローラーに関する初期の取り組みの延長線上にある。[ 1 ] [ 2 ]設計は、再利用可能かつ交換可能なモジュールの標準化された環境に基づいている。最初のモジュールがリリースされて間もなく、熱心な愛好家の小さなグループが結成され、活発なオープンソース開発コミュニティへと成長した。


このプラットフォームは、小型でシンプルな回路をベースにした、明確に定義され、ドキュメント化されたモジュールに重点を置いており、アマチュアでも組み立てることができます。これらのモジュールは、完成したプロジェクトに組み立てられます。すべての基板は、フリーウェアのCADプログラムで設計された単層PCBまたはプロトタイプ基板として作成できます。ほぼすべての部品はスルーホール型で、組み立てが容易です。
最初のMIDIboxハードウェアプラットフォーム(MBHP)は、 PICアセンブリ言語で記述された独自のオープンソースオペレーティングシステムであるMIOS(MIDIboxオペレーティングシステム)をベースにしており、速度と精度を実現しています。Cラッパーレイヤーにより、コーディングが簡素化されています。MIOSは、愛好家や愛好家が簡単に再構成、適応、拡張できるように設計され、ドキュメント化されています。
新しいMIDIBoxハードウェアプラットフォームであるMIOS32は、NXPのARMベースプロセッサLPC1769とSTMicroelectronicsのSTM32F407上で動作し、 FreeRTOSから派生したリアルタイムオペレーティングシステム(RTOS)に基づいています。[ 3 ] MIOS32のツールチェーンはGCCに基づいており、C言語のみを使用します。
現在、約 15 個の個別のモジュールが利用可能です。


.jpg/440px-MIDIbox_USB_GM5_Module_-_GM5_USB-MIDI_adapter_(photo_by_gracial23).jpg)
MIDIboxオペレーティングシステム(MIOS)は、柔軟なMIDIコントローラーアプリケーションの設計を容易にします。MIOSは、商用コントローラーでは不可能なアイデアの交換や個人的なカスタマイズの基盤として、非商用のオープンプラットフォームを採用しています。
コミュニティによって構築されたコントローラーのほとんどは、既存のドキュメント化された設計に基づいており、既存のファームウェアが提供する機能セットから動作します。エンドユーザーは、交換可能なプログラムコードを使用してデバイスを拡張し、ホストアプリケーション、シンセサイザー、その他のMIDIデバイスに合わせてカスタマイズできます。また、ユーザーは好みのワークフローに合わせてカスタマイズしたり、ゼロから新しいプロジェクトを設計したりすることもできます。
アプリケーションのソースコード、モジュール回路図、PCBレイアウトは、非商用利用の場合、変更や改良のためのテンプレートとして無料でご利用いただけます。MIOSとハードウェアプラットフォームは、趣味のマイクロコントローラ開発への容易な参入を可能にするだけでなく、商用の主流MIDI市場の範囲を超えたアプリケーションの開発も可能にします。
MIOSはバージョン1.8までGPLライセンスでした。それ以降のバージョンでは、商用利用にはThorsten Kloseの許可が必要になりました。[ 6 ]
オペレーティングシステムは、ハードウェアおよびソフトウェアイベントへのユーザーフックと、ハードウェアプラットフォームモジュールとのインタラクション機能を提供するカーネルで構成されています。PIC18F452マイクロコントローラを搭載した1つのコアモジュールで、
バックグラウンド ドライバーは、次の制御タスクに使用できます。
オペレーティングシステム全体はアセンブリ言語で記述されており、速度が最適化されています。MIOSは現在、8KBのプログラムメモリと640バイトのRAMを使用しています。
128個のデジタル入力ピンの読み取りと128個の出力ピンへの書き込みには、わずか75μsしかかかりません。16個のロータリーエンコーダは100μs以内に処理されます。アナログ入力は200μsごとにバックグラウンドでスキャンされ、定義可能な最小範囲を超える変化はユーザーフックをトリガーします。
最大256個のMIDIイベントで専用関数をトリガーできます。イベントリストの処理には約300μSかかります。MIDIイベントは、SysEx解析などのユーザールーチンで処理することもできます。時間トリガーコードにはユーザータイマーが利用可能です。
C 以外の高級言語のサポートも可能です。
MIOSハードウェアは、MIDIBoxハードウェアプラットフォーム(MBHP)のコンセプトに基づいて構築されています。MBHPは非常に汎用性の高いマザーボードで、特定のプロセッサに対して最大限の接続数を提供します。現在、MBHPには4つのバージョンがあります。
プロジェクトに必要なI/Oが特定のMBHPで利用可能なI/Oよりも少ない場合、MIDIBoxのコンセプトにより、そのプロジェクト専用の簡素化されたPCBを作成できます。これは、Sammich MIDIBox SID [ 7 ]とSammich MIDIBox FMで採用されているアプローチです。これら2つのキットには、オリジナルのMBHP設計が含まれていますが、SIDチップまたはYMF262チップとの接続専用の簡素化されたPCBが搭載されています。
STM32F407 MBHPの場合、CPUはST社が開発ボード(STM32F4 Discovery)として販売しているドーターボードとして使用されるモジュールに搭載されています。[ 8 ]ドーターボードは標準の0.1インチコネクタに取り付けられているため、最終ユーザーはSMD部品を扱う必要がありません。[ 9 ]
現時点では、完全にドキュメント化されたプロジェクトが11件公開されており、コミュニティによって生成された多数のユーザープロジェクトも存在します。公式プロジェクトは以下の通りです。
16トラックのライブステップ&モーフシーケンサー + 高度なアルペジエーター
Commodore 64/128 に同梱されていた MOS Technology SID (MOS6581) サウンド チップをベースにしたハードウェア MIDI 制御可能なシンセサイザー
ヤマハYMF262サウンドチップ(OPL3とも呼ばれる)をベースにしたハードウェアシンセサイザーで、90年代初頭のSoundblaster(互換)サウンドカードで知られる有名なFMサウンドを生成します。
2つの別々のMIDI入力を1つの出力に結合します
さまざまなMIDIボックスを単一のMIDIポートにルーティングします
MIDIイベントを受信および送信するための基本機能を提供します
アナログモジュラーシンセサイザーなどの電圧制御デバイスを駆動するためのCVおよびゲート出力を提供します。
本格的な64チャンネルMIDIコントローラー
MIDIbox 64の拡張バージョン
MIDIO128インターフェースは、最大128個のデジタル出力ピンを駆動し、MIDI経由で最大128個のデジタル入力ピンに反応するために使用されます。
MIDIbox 64/64Eの代替品
MIDIケーブルを介して送信されるイベントを読み取り可能な形式で報告します。