配信用マイクのミュートとDAWの再生停止を連動させる方法の研究 OBSの外部コントロール/MIDIコントローラー

※ 当サイトではアフィリエイト広告を利用しています

歌ってみたMIXやパラミックスの生配信や動画制作を行っていると需要がある(かもしれない)「DAWを再生している時はトーク用マイクがミュート、停止するとトーク用マイクがオン」という動作。簡単そうでかなり難しい連携なのですが、実現するとスピーカーから音を出しながらの配信やオンラインレッスンが可能になります。

良い方法を研究しているのですが、その記録です。参考になれば幸いです。

マイクのスイッチを切れば良いのでは?なぜ連動が必要?

その通り。Sennheiser e 835 SSHURE SM 58S等、マイクにスイッチがある機種をトーク用マイクに使用する場合は、DAW再生ごとにマイクのスイッチを切れば良いのです。

しかしこの方法、やってみるとわかりますが相当に面倒なのです。DAWを使用したMIX配信等の場合は、DAWの再生・停止の回数は数百回に達することもあるでしょう。その都度マイクのスイッチを手動でON/OFFするのは相当に面倒です。挫折します。

もちろんDAWのモニタリングイヤホンを使用すればマイクをONのまま配信できるので解決しますが、長時間になるとかなり疲れます。また、そもそもスピーカーで聞く音イヤホン等で聞く音は異なりますから、音について語る配信でスピーカー/イヤホンの音を区別しないことは望ましくありません。

ということで、DAWの再生停止に「連動」してマイクがON/OFFする設定を求めるようになりました。長い長い道の始まりです。

LEVEL1 OBSのホットキー機能を使う

メリット:無料でできる(ソフトウェア・PC内部のみで完結)
デメリット:DAWのARAを使用した場合やプラグイン使用時に再生/停止とミュートON/OFFの関係がひっくり返ってしまうことがあり、気づきにくい

まずは無料でできる方法。配信用ソフトOBSに元々備えられているホットキー機能(OBS機能のキーボードへの割当)を使用します。OBSのシェアはかなり高いので実用性が高い方法。ちょっと不便なこともありますが、我慢すればほとんどの場合はこの方法で事足りるでしょう。

OBSの[設定]から[ホットキー]を開きます

OBSの設定をひらく
ホットキー機能を表示する

ホットキー機能では、OBSの各種機能にキーボードの任意のキーを割り当てることが可能です。

例えば、一番上にある[配信開始]は、OBSメイン画面上の配信開始ボタンです。[配信開始]を選択した状態で割り当てたいキーを押すと、ホットキー割当が完了します。以下の画像では、[Shiftキー+S]で配信開始、[Shiftキー+コマンドキー]で配信終了という設定になりました。単独のキーでも、組み合わせでも設定可能です。

任意のキーを機能に割り当てることができる

この機能を活用して、OBS上のマイク入力のミュートON/OFFを切り替えます

下にスクロールするとマイクの項目に[ミュート][ミュート解除]があります。それぞれに[Spaceキー]を割り当てることでDAWの再生停止OBSのマイク入力ON/OFFが連動します。(※DAWの再生停止をスペースキーで行っている場合)

ミュートとミュート解除の双方にスペースキーを割り当てる

欠点は、DAWにおいてスペースキーを使わずに再生停止操作をした場合に、ミュートON/OFFがひっくり返ってしまいます。「スペースキーでDAW再生(=マイクミュート)>DAWの停止ボタンで停止」という操作をすると、マイクミュートが解除されず、ミュートされたままの状態でトークをすることになってしまうということです。

この状態はDAWでMelodyneVOCALOID EditorなどARA機能経由の再生停止をしている場合に発生しやすく、ARA機能上でスペースキーを押しても再生・停止しない場合にひっくり返ってしまいますOBSの画面ではミュート表示が切り替わるので気づくことができますが、ワンオペ配信中はOBS画面を見ていられないことが多く、現実的には見逃してしまいます。

対策としてはDAWMIDIコントロール信号出力を受けて点灯・消灯するランプのようなものがあれば良いかもしれません。

知りうる限り、既製品で実現できそうな方法は以下のPunchlight MIDIを介してランプを点灯させる方法のみです。ただしちょっと値段が高いので、自宅配信でマイクミュートの利便性向上のために導入するにはコストパフォーマンスが悪い気がします。苦笑

created by Rinker
¥46,200 (2024/05/01 22:00:43時点 楽天市場調べ-詳細)

なお、上記[ミュート][ミュート解除]コマンドは、OBSにおけるそれぞれの音声入力に表示されます。マイク入力以外でもデスクトップ音声に対しても動作させることが可能です。逆に言えば、マイク入力を作成(設定)していない場合は表示されませんので、マイク入力を作成してからホットキー設定を行いましょう。

余談。
この方法を使用する上で心配なのは、DAWを操作する場合はDAWがフォアグラウンド(前面)となるため、OBSがバックグラウンドとなった場合にホットキーが動作するのか、ということでしょう。

結論的に言えば筆者の環境ではバックグラウンド時もホットキーは動作しています。つまり、スペースキーを押すとDAWの再生・停止とOBSのマイクON/OFFが同時に動作するということです。

LEVEL2 フィジカルコントローラーのMIDI信号でOBSをリモートコントロールする

メリット:ハードウェアを使用するため操作がわかりやすく、ARA機能やプラグイン使用など、何がフォアグラウンドになっているかに関わらず正確にミュート操作ができる
デメリット:フィジカルコントローラー(ハードウェアの再生/停止ボタン)が必要

音楽制作系以外の人にはいきなり意味不明だと思いますが、音楽制作機器や照明機器で使われるデジタルデータの伝送規格としてMIDI(Musical Instrument Digital Interface)があります。フィジカルコントローラーとはDAWソフト用のハードウェアリモートコントローラーを指しますが、フィジカルコントローラーを操作すると多くのモデルでは操作情報がMIDI信号として出力されます

一方で、OBSにはMIDI信号を受けて動作するプラグインが存在します。これらを組み合わせることで、DAW用のフィジカルコントローラーを用いてOBSをリモートコントロールすることができるようになります。以下のようなUSB接続のフィジカルコントローラーの再生・停止ボタンの操作をOBSで受け取る、ということです。

created by Rinker
Solid State Logic
¥107,250 (2024/05/01 22:00:44時点 Amazon調べ-詳細)

OBSは標準状態ではMIDI信号を受け取ることができないため、プラグインを使用します。

まず試してみたのはこちらの「OBS MIDI Settings」。無料プラグインです。

インストールすると、OBSの[ツール]メニューに[OBS MIDI Settings]が現れます。

プラグインを有効にするとOBS MIDI Setteingsが現れる

起動すると以下のような画面となります。

タブ構成となっており、最も左のタブ[Devices]で使用するフィジカルコントローラー(MIDI機器)を選択します。同時に、画面下の[Enable(有効)]がチェックされていることを確認してください。

画像では、筆者の使用しているオーディオインターフェースTASCAM US-20×20とフィジカルコントローラーPresonus faderportが表示されています。

OBS MIDI Settingsのdevices画面

続いては[Configure-(デバイス名)]タブに移動し、MIDI信号のマッピング(割当)を行います。

[Action]で[ミュートの切り替え]、[Audio Source]で[マイク]を選択します。何をリモートコントロールするか決める設定であり、[マイク]入力の[ミュート切り替え]を操作しますという意味です。設定したら[Add Mapping(マッピングを追加)]を選択します。

マッピングを追加する

すると設定したマッピングが表示されます。ただしこの段階では操作対象が決まっただけであり、MIDI信号と紐づけされていないので、外部コントロールはできません。信号の紐づけを行いましょう。

左側の[Listen One]を押したあとに、フィジカルコントローラーの再生ボタンを押してみましょう。すると、入力されてきたMIDI信号の学習をします。本来はMIDIの知識がないと設定できないのですが、Listen機能を使うことでボタンを押すだけで信号の中身を勝手に学習してくれます。

※というより、Listen機能を使わないと信号の内容が設定できないようです、、、(;´∀`)

参考までに筆者のPresonus Faderport再生キーを押したところ、その中身は「MIDI Chは1、CC(Control Change)の15番を用いており、その値は4」ということが学習されました。以下の画面で確認できます。

最後に[Save Edits]を選択することで紐づけが保存されます。これで「MIDI Ch1でCC15番が値14」で入力された場合に、「ミュートの切り替えが行われる」ということになりました。

Listen機能を使えばMIDIがわからなくても設定できる

ここで少々問題があり、フィジカルコントローラーから出力されるMIDI信号がもうちょっと難しいのです。

具体的には、再生ボタン押した時の値は[Ch1 CC:15 14]と[Ch1 CC:47 68]の2種類が出力されており、さらに離した時には[Ch1 CC:47 4]が出力されていました。再生ボタンを押す=押して離すという行為で3つの信号が出力されています。この内容は[Listen One]ではなく[Listen Many]を使用することで解析できます。なお、[Listen One][Listen Many]スイッチは双方ともラッチボタンなので、使わない時はもう一度押してオフにする必要があります。

[Ch1 CC:15 14]はアンラッチ動作(押した状態のまま固定されない=オフに戻る)の信号で、[Ch1 CC:47 68]/[Ch1 CC:47 4]はラッチ動作(押した状態で固定され、もう一度押すと解除される)になっているようです。つまり、ミュートされたままの状態を作るにはラッチ動作が必要であり、[Listen Many]を使う方が良いようです。

以下は[Listen Many]をオンにしてフィジカルコントローラーの再生ボタンを押す・離す動作をした時の動画です。

ボタンを離すと値が[4]に戻ってしまうので、再生ボタンを押したままの状態=値[68]が表示されている状態で、[Listen Many]を押してListen機能を終了します。これで[Ch1 CC:47 68]が記録されるので、保存しましょう。

再生ボタンを押しっぱなしにしてListen Manyを解除する

まだ続きます。

お気づきかもしれませんが、フィジカルコントローラーの場合は再生ボタンと停止ボタンが別。つまり、上記のままでは「再生ボタンを押した時にマイクがミュートされ、停止ボタンを押してもミュートされたまま」という状態なのです。

再生ボタンでミュート、停止ボタンでミュート解除」という動作にしたいので、マッピングを追加します。

先程と同じように[Add Mapping]で[ミュートの切り替え]コマンドを追加し、[Listen Many]で停止ボタンの動作を記憶させましょう

なおこの工程においてバグがあり、うまくマッピングが増やせない場合(Add Mappingを選択しても増えない)場合があります。この場合は先程設定したマッピングを一旦削除し、何もない状態から[ミュートの切り替え]マッピングを2つ作ってしまう(細かい設定をするより先に行を作ってしまう)ことでバグを回避できます。

先に行を作るとバグを回避できる

[Listen Many]を使って、それぞれ再生ボタンを押した時と停止ボタンを押した時のMIDI信号を記憶させましょう。

以下は再生ボタンと停止ボタンを交互に押した時の動作です。

これでDAWの再生停止とOBSのマイクミュートをフィジカルコントローラーから同時にコントロールできるようになりました!

ちなみに、LEVEL1のスペースキーによるミュートON/OFFと共存できます。もしスペースキーでミュートON/OFFが逆転してしまっても、フィジカルコントローラーの停止ボタンを押せば解決できるということになります(^o^)

なお、OBS MIDI Settingsは古いうえにバグも多いので、問題がある場合はobs midi mgを使ってみてください。こちらの方が新しく、M1 Macにも対応しています。(筆者のMacはIntel Macですww)