Roland の GS 音源(SC-55 / SC-88 / SC-88Pro / SC-8850 など)を USB-MIDI インターフェースで接続すると、当時のデータを当時の音で鳴らせます。このアプリが本来想定している使い方です。
USB-MIDI インターフェースを Mac に挿し、その MIDI OUT を音源の MIDI IN へつなぎます。Retro MIDI Player の画面上部にある MIDI PORT A / MIDI PORT B の一覧に機器名が現れるので、それぞれに割り当ててください。iPhone/iPadの場合は給電付きUSB-HUBでないと、USB-MIDIハブが必要とする電力が供給できない or 足りない場合がありますのでご注意ください。(iPhoneは必須のようです。Macbookは自力で供給できるので必ずしもPD対応USB-Hubを通す必要はなさそうです。iPadは機種によりけりです)
iPhone + 給電USB-HUB+USB-MIDI-HUBC
iPhone + 給電USB-HUB+USB-MIDI-HUB (2)
iPad + 給電USB-HUB+USB-MIDI-HUB
iPad + 給電USB-HUB+USB-MIDI-HUB
SC-88 のように MIDI 入力を2つ持つ機器では、Port A と Port B の両方をつなぐと32パートを同時に鳴らせます。16パートまでの曲であれば Port A だけで足ります。SC-55 のように入力が1つしかない機器では、Port A に実機を割り当て Port B には内蔵音源やユーザー定義音源を割り当てることで、32パートの曲でも後半のパートが無音になりません。
macOSではネットワーク見えにしたMIDIポートを認識・設定・接続できます。そうしたOSがサポートする設定もLinuxマシンにUSB接続で繋いだSC-88VLをRTP-MIDIライクなOSSを入れてネットワーク見えにして接続して鳴らすことができることは常用して確認していますが、少し難易度が高いのとプロトコルサポートが中途半端で安定しなかったのでサポート対象外です。
ソフト的なものではなくハードウェア製品でネットワーク見えにしたい方は、iConnectivity社が出しているようなMIDI機器をLAN見えにできる製品をお使いください。下図のmacOS純正(=Apple純正)のAudio MIDI設定>画面上部ウィンドウメニューからMIDIスタジオ>🌎っぽいマーク押してMIDIネットワーク設定により、RTPセッションの接続ができるかと思います。
なお、Mobile版はmacOSと違って上記のようにOSが正式に対応している仕組みが実装されていないため、実験的にexperimentalオプションとしてVer.1.2.4からアプリが直接RTP-MIDIに対応して接続できるようにしています。
ただしLinuxで動くOSSベースのもの+アルファ程度の環境で調整したため、完全に対応できているかわからないため製品によってはならない可能性があることをご承知おきください。小型のRaspberry PiにLinuxをのせてMIDIやFM音源などをRTP-MIDI見えにするのも面白いという方は参考程度に以下をご参照ください。
参考までにテスト環境の仕組みはこうです:
MIDIFlex4
↓ Linux既存のUSB-MIDI/ALSAドライバ
ALSA raw MIDIポート
↓
独自Pythonスクリプト retro_rtp_midi.py (接続不安定なのでジャーナリングとか・・・)
↓
RTP-MIDI / Bonjour
Python側が独自に実装しているのは、次の部分です。
RTP-MIDIのIN/OKハンドシェイク
RTP-MIDIパケットのデコード
MIDI/SysExの復元
A/Bの経路振り分け
ALSAポートの名前解決
libasound.so.2経由のMIDI書き込み
Avahi/Bonjour広告
macOSでもAppleのMIDI設定を毎回するのは面倒なので、実はmacOS専用ミニアプリでやっとります。
要望があれば実装しますが・・・😅
RTP-MIDI LAN接続.app
├─ Bonjourでerisを検索
├─ erisへRTP-MIDI接続
└─ macOSに仮想Core MIDIポートを作成
↓
Retro MIDI Player
└─ macOSのCore MIDIポート一覧を表示
メニューバーの「使用音源」から、お使いの機種を選んでください。初期設定は「その他音源」で、この状態では音色マップの切り替えを送りません。選ぶまでは実機のマップが切り替わらないため、曲によっては本来と違う音色で鳴ります。音そのものは鳴ります。
この設定は2つの役割を持ちます。ひとつは実機へ送る音色マップの上限を決めること。たとえば SC-88 をお使いの場合、SC-88Pro 向けと判定された曲は SC-88 の音色マップで再生します。もうひとつは、どの音源向けか判定できなかった曲をどの音色マップで扱うかを決めることです。
曲データがどの音源向けに作られたかを推定し、再生の直前に実機の音色マップ(SC-55 MAP / SC-88 MAP など)を切り替えます。
切り替わると、実機側の表示もパートごとに点灯します。どこにどう出るかは機種によって違います。
上位機種向けのデータを下位機種で鳴らすと、その機種に存在しないバンクを指定したパートが Piano 1 などに落ちることがあります。これは実機の仕様です。
YAMAHAのXG音源でMU2000のようにGS互換モードを持っていると、55/88/88pro/8850map切り替え判定で送信するmap切り替えエクスクルーシブ命令によりTG-300Bモード(GS互換モード)になるかと思います。(作者のMU2000 EXではそのように動いてます)
XG専用データならXGモードを維持しつつ鳴るようですが、XG音色指定がなかったりGMオンリーなどデータによってはTG-300B固定になるかもしれません。
*作者のMU2000 w(EX化パッチ版)with PLG150-VLで確認できる範囲のものは、バージョンアップの機会にXGで鳴らしたい場合も考えて切り替えが起きない指定も可能なようにしようとは考えています。(T.B.D)
割り当てた機器が見つからないときは、一時的に内蔵音源で鳴ります。保存した割り当ては残っているので、接続し直せば元に戻ります。このとき、ポート選択で「内蔵音源」を選び直さないでください。保存した割り当てが上書きされ、接続し直しても戻らなくなります。
再生している最中に機器を接続した場合、その演奏の間は送信先が切り替わりません。いったん停止してから再生し直してください。