blog

M-VAVE SMC-Mixer(KORG nanoKONTROL2によく似た形状のワイヤレス対応のMIDIコントコーラー)をAliExpressで購入したので、Windows 11へBluetooth MIDIで接続し、Sh4derJockeyのMIDIコントローラーとしてワイヤレスで利用できるようにしました。

Windowsでは専用のBLE-MIDI接続ソフトが必要だったほか、配布されているSinco Connectorだけでは必要なDLLが不足してクラッシュする問題にも遭遇しました。本記事では、実際に接続できた手順とトラブルシューティングをまとめます。

SMC-MixerをUSER/CCモードにする

SMC-Mixerの電源を入れ、SHIFTを押しながら右側のボタンを押します。

SHIFTを押している間に右側のボタンが点灯すれば、USER/CCモードです。左側が点灯する場合はDAWモードです。

Sh4derJockeyではフェーダーやノブを通常のMIDI CCとして扱いたいため、USER/CCモードを使用します。

Sinco Connectorをインストールする

WindowsでBLE-MIDIを利用するため、M-VAVE公式ダウンロードページから「Sinco Connector」をインストールします。

SMC-MixerのBTボタンを長押しすると、青いランプが点滅してBluetooth接続待ちになります。Sinco Connectorを起動し、一覧からSMC-Mixerを選んで接続します。

接続に成功すると、本体の青いランプが点滅から点灯に変わります。

Sinco ConnectorがConnectingの直後にクラッシュする問題

私の環境では、Sinco ConnectorでConnectingと表示された直後にアプリが終了しました。Windowsのイベントログには、次の例外が記録されていました。

BTMidiConnector.exe
System.DllNotFoundException
BMIDI.GetPortIndexByName(...)

Sinco Connectorの実行ファイルを調べると、問題のメソッドは次のDLLを呼び出していました。

bmidilib2.dll!BMIDI_GetPortIndexByName

しかし、Sinco Connectorのインストーラーだけでは、bmidilib2.dllとBomeのバスドライバーbomebus.sysがインストールされていませんでした。

そこで、Bome BMIDI Virtual MIDI SDK公式ページから「BMIDI 2.1.0.44 Stand-Alone Installer」をダウンロードし、管理者としてインストールしました。

インストール後はPCを再起動し、さらにSinco Connectorも再起動します。BMIDI Driverを導入しても、起動中のSinco Connectorには反映されません。私の環境でも、Sinco Connectorを再起動することでMIDIメッセージが転送されるようになりました。

非公式サイトからDLL単体を入手するのではなく、署名済みドライバーを含むBome公式インストーラーを利用するのが安全です。

Sh4derJockeyから見えるMIDIポート名を確認する

デバイスマネージャーではSMC-Mixer (Bluetooth MIDI IN)と表示されましたが、Sh4derJockeyが利用するWinMM上の名前は異なっていました。

Windows MIDI Servicesのmidi1enumで確認できます。

midi1enum

私の環境では、次の入力ポートが表示されました。

0 : Default App Loopback (A)
1 : Default App Loopback (B)
2 : SMC-Mixer-bt

したがって、Sh4derJockeyにはSMC-Mixer-btを指定します。

Sh4derJockeyのconfig.yamlを設定する

MIDIデバイス名はpipeline.yamlではなく、プロジェクト直下のconfig.yamlへ記述します。

midi_devices:
  - "SMC-Mixer-bt"

pipeline.yamlmidi_devicesを書いても、Sh4derJockeyからは読み込まれません。

診断ログを表示しながら起動する場合は、-vvを付けます。

Set-Location "D:\VJ\draw_tokyo3\draw_tokyo3"
& "D:\VJ\sh4der-jockey\target\release\sh4der-jockey.exe" -vv

接続に成功すると、次のログが表示されます。

Connecting to input port: SMC-Mixer-bt

このバージョンのSh4derJockeyではRUST_LOG=infoではなく、-vvでInfoログを有効にします。

MIDI入力を確認する

Sh4derJockeyでbindできない場合は、先にmidi1monitorでMIDI入力だけを確認できます。

midi1monitor

一覧からSMC-Mixer-btを選び、フェーダーを動かします。Control Changeが表示されれば、SMC-MixerからWinMMポートまでの接続は正常です。

ポートは表示されるのに何も受信できない場合は、Sinco Connectorを再起動してから接続し直します。私の環境では、この再起動が最後の解決手順になりました。

Sh4derJockeyでbindする

Sh4derJockeyでは、GUIのbindボタンを押し続けながらSMC-Mixerのフェーダーやボタンを操作し、その後にマウスボタンを離します。

bindを一度クリックしてからコントローラーを操作する方式ではない点に注意が必要です。

毎回の起動順

最終的に、次の順番で安定して利用できました。

  1. SMC-Mixerの電源を入れる
  2. USER/CCモードを確認する
  3. Sinco Connectorを起動してSMC-Mixerへ接続する
  4. 本体の青いBTランプが点灯したことを確認する
  5. Sh4derJockeyを起動する

途中で入力できなくなった場合は、Sh4derJockeyより先にSinco Connectorを再起動します。

まとめ

Windows 11でM-VAVE SMC-MixerをSh4derJockeyからワイヤレス利用するには、Sinco Connectorに加えてBome BMIDI Driverが必要でした。

また、Sh4derJockeyに設定するデバイス名はデバイスマネージャーの表示名ではなく、WinMM上のSMC-Mixer-btでした。MIDIデバイス名をconfig.yamlへ記述し、Sinco Connector、Sh4derJockeyの順に起動することで、フェーダー、ノブ、ボタンをBluetooth MIDI経由でbindできるようになりました。