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


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

MIDIbox ハードウェア プラットフォーム (MBHP)

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

- SEQV4L シーケンサー V4 Lite
- SEQV3 シーケンサー V3

サウンドモジュール
- MOS テクノロジー SID用の SID モジュール( Commodore 64に搭載)
- FMチップYMF262およびYAC512用OPL3モジュール
- SpeakJet サウンドチップ用 IIC SpeakJet モジュール
メモリ拡張モジュール
- BankStick 32k / 64k メモリモジュール
MIDI I/Oモジュール
- LTC モジュール MIDI LED インジケーター + 1 MIDI 出力 + 1 スルー (+ 1 オプションの COM ポート)
- USBモジュール PC/USBインターフェース
その他のモジュール
- モーターフェーダーを制御するMFモジュール
- I2C経由で他の(マイクロコントローラ)デバイスと通信するためのIICモジュール
RTP-MIDIモジュール
- MIOS32ファームウェアには、高速SPI経由でKissBox OEM RTP-MIDIモジュールへの直接リンクが含まれています[ 4 ] [ 5 ]
.jpg/440px-MIDIbox_USB_GM5_Module_-_GM5_USB-MIDI_adapter_(photo_by_gracial23).jpg)
MIDIbox オペレーティングシステム (MIOS)
MIDIboxオペレーティングシステム(MIOS)は、柔軟なMIDIコントローラーアプリケーションの設計を容易にします。MIOSは、商用コントローラーでは不可能なアイデアの交換や個人的なカスタマイズの基盤として、非商用のオープンプラットフォームを採用しています。
コミュニティによって構築されたコントローラーのほとんどは、既存のドキュメント化された設計に基づいており、既存のファームウェアが提供する機能セットから動作します。エンドユーザーは、交換可能なプログラムコードを使用してデバイスを拡張し、ホストアプリケーション、シンセサイザー、その他のMIDIデバイスに合わせてカスタマイズできます。また、ユーザーは好みのワークフローに合わせてカスタマイズしたり、ゼロから新しいプロジェクトを設計したりすることもできます。
アプリケーションのソースコード、モジュール回路図、PCBレイアウトは、非商用利用の場合、変更や改良のためのテンプレートとして無料でご利用いただけます。MIOSとハードウェアプラットフォームは、趣味のマイクロコントローラ開発への容易な参入を可能にするだけでなく、商用の主流MIDI市場の範囲を超えたアプリケーションの開発も可能にします。
MIOSはバージョン1.8までGPLライセンスでした。それ以降のバージョンでは、商用利用にはThorsten Kloseの許可が必要になりました。[ 6 ]
仕様
オペレーティングシステムは、ハードウェアおよびソフトウェアイベントへのユーザーフックと、ハードウェアプラットフォームモジュールとのインタラクション機能を提供するカーネルで構成されています。PIC18F452マイクロコントローラを搭載した1つのコアモジュールで、
- 最大128のデジタル入力
- 最大128個のデジタル出力
- 最大64個のアナログ入力
- 文字とグラフィックのLCD
- 最大 8 個の BankSticks ( I2C EEPROM )
- MIDI入力1つとMIDI出力1つ、またはRS-232シリアルCOMポート1つ
バックグラウンド ドライバーは、次の制御タスクに使用できます。
- MIDI I/O処理
- ブートストラップローダー
- 10ビット解像度で最大64個のポット、フェーダー、またはその他のアナログソースをアナログ変換
- 10 ビット解像度で最大 8 個の電動ムービング フェーダーを制御
- 最大64個のロータリーエンコーダーを処理
- 最大128個のボタン、タッチセンサー、または同様のデジタル入力デバイスを処理
- 最大128個のLED、リレー、デジタル-アナログコンバータ、または類似の出力デバイスを制御できます。マルチプレックスモードでは、ほぼ無制限の数のLED、LEDリング、LED数字を駆動できます。
- EEPROM、フラッシュ、バンクスティックの読み取り/書き込み
- MIDIbox Link経由でPIC18F Coreモジュールをリンクする
オペレーティングシステム全体はアセンブリ言語で記述されており、速度が最適化されています。MIOSは現在、8KBのプログラムメモリと640バイトのRAMを使用しています。
128個のデジタル入力ピンの読み取りと128個の出力ピンへの書き込みには、わずか75μsしかかかりません。16個のロータリーエンコーダは100μs以内に処理されます。アナログ入力は200μsごとにバックグラウンドでスキャンされ、定義可能な最小範囲を超える変化はユーザーフックをトリガーします。
最大256個のMIDIイベントで専用関数をトリガーできます。イベントリストの処理には約300μSかかります。MIDIイベントは、SysEx解析などのユーザールーチンで処理することもできます。時間トリガーコードにはユーザータイマーが利用可能です。
C 以外の高級言語のサポートも可能です。
MIOSハードウェア
MIOSハードウェアは、MIDIBoxハードウェアプラットフォーム(MBHP)のコンセプトに基づいて構築されています。MBHPは非常に汎用性の高いマザーボードで、特定のプロセッサに対して最大限の接続数を提供します。現在、MBHPには4つのバージョンがあります。
- PIC16F877およびPIC18F452(8ビットプロセッサ)用のMBHP。2つのチップはピン互換性がありますが、PCBは2つのチップ間で簡単な変更が必要です。
- LPC1769(32ビットARM7プロセッサ)用MBHP
- STM32F407(32ビットCortex M4プロセッサ)用MBHP
プロジェクトに必要な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件公開されており、コミュニティによって生成された多数のユーザープロジェクトも存在します。公式プロジェクトは以下の通りです。
- MIDIボックスSEQ V3:
16トラックのライブステップ&モーフシーケンサー + 高度なアルペジエーター
- MIDIボックス SID V1:
Commodore 64/128 に同梱されていた MOS Technology SID (MOS6581) サウンド チップをベースにしたハードウェア MIDI 制御可能なシンセサイザー
- MIDIボックスFM V1:
ヤマハYMF262サウンドチップ(OPL3とも呼ばれる)をベースにしたハードウェアシンセサイザーで、90年代初頭のSoundblaster(互換)サウンドカードで知られる有名なFMサウンドを生成します。
- MIDI マージャー V1:
2つの別々のMIDI入力を1つの出力に結合します
- MIDIルーターV1:
さまざまなMIDIボックスを単一のMIDIポートにルーティングします
- MIDIプロセッサ:
MIDIイベントを受信および送信するための基本機能を提供します
- MIDIボックスCV
アナログモジュラーシンセサイザーなどの電圧制御デバイスを駆動するためのCVおよびゲート出力を提供します。
- MIDIボックス64:
本格的な64チャンネルMIDIコントローラー
- MIDIボックス64E V2:
MIDIbox 64の拡張バージョン
- MIDIO128 V2:
MIDIO128インターフェースは、最大128個のデジタル出力ピンを駆動し、MIDI経由で最大128個のデジタル入力ピンに反応するために使用されます。
- MIDIボックスLC V1:
MIDIbox 64/64Eの代替品
- MIDIモンV2:
MIDIケーブルを介して送信されるイベントを読み取り可能な形式で報告します。
参照
参考文献
- ^「Thorsten Klose」、SynthDIY
- ^トルステン・クローゼのウェブサイト、「MIDIBOX.org」、uCApps.de
- ^ 「IoT拡張機能を備えた組み込みシステム向けの市場をリードするRTOS(リアルタイムオペレーティングシステム)」 FreeRTOS 。 2017年3月9日閲覧。
- ^ 「MIDIboxがRTP-MIDIに移行… - 設計コンセプト - MIDIboxフォーラム」 . Midibox.org . 2017年3月9日閲覧。
- ^ “KissBox the Network Answer” . www.kissbox.nl . 2013年4月9日時点のオリジナルよりアーカイブ。 2022年1月17日閲覧。
- ^ 「MIOS8 変更ログ」 . UCApps.de . 2017年3月9日閲覧。
- ^ 「MidiBox SammichSID | Vintage Synth Explorer」 . Vintagesynth.com . 2017年3月9日閲覧。
- ^ 「STM32F4DISCOVERY - STM32F407VG MCU搭載ディスカバリーキット * 新注文コード - STMicroelectronics」 St.com 2017年3月9日閲覧。
- ^ “BEB DigitalAudio ホームページ” . Beb.digitalaudio.free.fr 。2017 年 3 月 9 日に取得。
外部リンク
- MIDIboxプロジェクトのウェブサイト
- MIDIbox ウィキ
- MIDIboxフォーラム
- ucapps.de (MIDI ハードウェア オタク向けの非営利 DIY プロジェクトの Web サイト)
- Protodeck: Protofuseが使用するAbleton Liveとのインタラクション用に設計されたMIDIボックスコントローラー