ムライボックス (1)
「ムライボックス」とは、ゲームミュージック作家として知られる「村井聖夜」さんが 2012 年 5 月ごろに発案した「MIDI チャネルごとに分離し、別々のポートに出力するデバイスで、その際にチャネル番号を強制的に 1 ch に書き換えるもの」のことです。
機能を簡単に言い表しづらいので、「ムライボックス」という通称が付きました。
Google で「ムライボックス」を検索すると、「マックス むらい」さんの情報ばかり出てきますが、twitter で「ムライボックス」を検索すると必要な情報が出てきます。
下にその一部を引用します。
これはほしい RT @nao_denha: それそれw RT @mu_station: 正確には、MIDIチャンネル別に分離した信号を強制的に1chにしてパラアウトするMIDI Box、なぜ存在しない…
— sweacco (@sweacco) 2012年5月15日
@mu_station @sweacco これはイケますぜ。”ムライボックス”と呼びますw
— 原田直樹 12/2,3シンセサミット (@nao_denha) 2012年5月15日
通称ムライボックス(MIDI1ch変換&ch別パラボックス)のプログラム、昨夜一応書き終えました。まだデバッグ前なので動かないかもだけど、週末までにテストしたい。
— (〃ゞ)っ™ (@mu_station) 2012年5月29日
勝手に呼んだ名前が通称になって光栄ですw>ムライボックス
— 原田直樹 12/2,3シンセサミット (@nao_denha) 2012年5月30日
説明しようっ(タイムボカン風味で)ムライボックスとは、見た目は4アウトのMIDI-THRUボックスだけど、MIDI−IN に入った、5,6,7,8chのデータを、それぞれ、4本のMIDIアウトに、MIDI−CH1にコンバートして、出力するのだ。続く
— 武田 元彦 (@mmtakeda55) 2013年6月28日
ムライボックスとは…
— 原田直樹 12/2,3シンセサミット (@nao_denha) 2017年10月12日
複数チャンネルで入って来たMIDIチャンネルを各アウト全て1チャンネルに変換して出力する機械。受信ch1固定の機器をシステムに組み入れるのに便利。
ムライボックス自体は 2012 年の話題なのですが、最近 twitter ユーザー名「sweacco」さんが UART 1 個と GPIO および外部に設けた OR ゲートで多出力を得る方法を考案されて ATtiny2313 を使って実現されています。
以下に sweacco さんの tweet を引用します。
ORゲートのICを使えば、MIDIデータと送信先のゲート開閉をUART+GPIO数個で実現できるのではないか。というのが、今回ムライボックスを作ってみようと思ったきっかけだったりする。SYNCなどの全振りは全部のゲートを開けてしまえば一斉送信できる。
— sweacco (@sweacco) 2017年9月17日
久々のムライボックス、ATtiny2313AにMIDI信号を入れるとパースして、1chに変換して出しつつ、元のチャンネルに対応したGPIOだけLowにできた。10chは全ポートをLow。UART出力とGPIOのORを取れば、特定のMIDI outだけに出せるはず。 pic.twitter.com/uX8J9NVQBS
— sweacco (@sweacco) 2017年9月22日
動いたぞムライボックス。一点だけ、10chを全出力に出そうとして、この信号も1chに変えてしまっていたのを直したら完了 pic.twitter.com/DEBX8CFQmu
— sweacco (@sweacco) 2017年10月10日
これらの tweet をヒントに、従来通りに出力ポートの数だけ UART を用意する方法 (仮に「富豪版」と呼びます) と、sweacco さん風の 1 UART 版 (仮に「エコノミー版」と呼びます) を実現してみました。
「富豪版」は Cypress PSoC5LP 版 (11 ポート出力) のみですが、「エコノミー版」については内部に PLD 相当のモジュールを持ち、外部に追加の回路が必要ない
- PSoC5LP Prototyping Kit (CY8CKIT-059) (16 ポート)
- PSoc4200 Prototyping Kit (CY8CKIT-049-42xx) (16 ポート)
- PIC16F18325 (4 ポート)
- PIC16F18313 (2 ポート、外部回路追加で 2 ポート増加)
用のプログラムと、外部ロジック回路を併用する、
- Arduino (7 ポート)
- NucleoF401RE (7 ポート)
用のプログラムとを作りました。
Arduino / Nucleo 版では、ハードウェア的には SparkFun の MIDI シールドに機能的にコンパチな回路にムライボックスに必要な外部ロジック回路を組み合わせた「ムライシールド (仮称、未公認)」を作成して併用しています。