目次
はじめに
Discordのサーバーにはボイスチャンネル(=ボイスチャットを行うチャンネル)が存在し、またそこでは画面共有を使った配信が出来るとのこと。元々ゲーム配信用に設計されているのでゲームのキャプチャは楽々に出来るのだが、これをDTMのツールであるDAWを表示して作曲配信を行うのはコツがいるようで、その方法を整理してみた。
条件
- 配信先はDiscordで行うことを目的とする
- DAWの設定は極力変更しない
- 配信をする度にDAW側の出力先変更するのは手間
- 設定変えたまま作業を行い、トラブルの原因になるのを防ぐ
- 使うオーディオデバイスは最小限しかない
- マイクはない、勿論ヘッドセットもない
- PC本体の内蔵オーディオデバイスは使っていない
- DTM専用のUSBオーディオインターフェースはある
- DTM専用のUSBオーディオインターフェースはモニタースピーカー/ヘッドホンへの出力のみに使っている
- Loopbackが非対応のオーディオデバイスを使っている
- LoopbackをするとASIOエラーが起きるオーディオデバイスを使っている
対象は、最低限の環境でDTMを行っているがDiscordでDTMの様子を配信したいと言う人に向けている。
必要な物
- オーディオインターフェース、及びそのASIOドライバ
- OBS-Studio
- obs-asio plugin
- VoiceMeeter Banana
- DAW(今回のケースでは相談を受けたFL Studio 20で実施)
出来上がる配線図
結果的には、LoopbackをVoiceMeeterを使って実現する。
DiscordはOBSをキャプチャした際、プレビュー映像出力とモニタリングデバイスから出力されるモニター出力を自動的にキャプチャーする。音が出ないなどのトラブルが起きた場合は大体このモニタリングデバイスへの音声出力設定の場合が多い。
初期セットアップ
オーディオインターフェースとASIOドライバ
ASIOドライバは、オーディオインターフェースの付属、またはサポートから対応する最新版がダウンロード出来ると思われる。今回の検証では YAMAHA AG03 を利用したので、公式サポートよりASIOドライバをダウンロードし、インストールと動作確認を行った。
なお、ASIOドライバがなくても出来るとは思うので、細かい部分は割愛する。
OBS-Studio
今回使う配信ツール、要の1つ目。
最新版をインストールすれば問題ない。また、インストール後に必要なツール・ライブラリが足りないと指示された場合はその指示に従ってインストールを行えば良い。
OBSのインストール方法についての記事は大量にあるので、ここも割愛する。
obs-asio plugin
OBS-StudioでASIOドライバを使うためのプラグイン、要の2つ目。
OBS-Studioのインストール後に、以下のサイトより最新版をダウンロードする。
Github – Andersama / obs-asio release
上記のページ内の注意書きにも書いてあるが、https://www.un4seen.com/download.php?bassasio14 より64bit版の bassasio.dll
のダウンロードと導入が必要。注意書きを適当に日本語訳すると以下の手順となる。
- https://www.un4seen.com/download.php?bassasio14 から
bassasio14.zip
をDL - ZIPを解凍し、中のフォルダで
x64
フォルダを見つける x64
フォルダの中に入っているbassasio.dll
をC:¥Program Files¥obs-studio¥obs-plugin¥64bit
の中に入れる
間違えて32bit版(解凍フォルダ直下のヤツ)の bassasio.dll
を入れてしまう、またはそもそも入れ忘れるとエラーダイアログが出現する。ダイアログ中でも「bassasio.dllが見つからないよ!ダウンロードしてx64版をOBSプラグインフォルダに入れてね!」と書かれている。
フォルダじゃなくて名前で分けて欲しかったと思う。
VoiceMeeter Banana
仮想オーディオインターフェース、要の3つ目。
https://vb-audio.com/Voicemeeter/banana.htm
オーディオインターフェースが1つしかない、チャンネル数が少ない(2in2out)の場合、ドライバが排他的処理のためDAW側にエラーを引き起こす場合がある。これを避けるため、オーディオルーティングを包括的に管理する仮想ミキサーの役割として導入する。
なお、VoiceMeeter Bananaはこの初期セットアップの中では最後に行うこと。
インストール時にドライバ認識のため再起動を促されるため、設定やデータを保存していないと悲惨なことになる。くれぐれも注意すること。
セッティング
使っているDAWの確認
今回は相談を受けたFL Studioを中心に説明する。
FL Studioのオーディオ設定は OPTIONS
→ Audio Settings
→ Input/Output
で確認出来る。初期状態まま設定していない場合、デバイスが「プライマリー サウンド ドライバー」になっていると思われる。
これを「FL Studio ASIO」に変更する。
「FL Studio ASIO」に変更後 Show ASIO Panel
でASIOドライバの設定を確認する。標準設定であれば全て Default〜
となっている。これはWindowsの既定入出力デバイスを指定している状態なので、Windows側で使用するオーディオデバイスを変更すればそれに従う形となる。
以上でDAW側のオーディオ設定は終了。
Windowsの既定オーディオデバイスを変更
コントロールパネルよりWindowsの既定オーディオデバイスを以下に変更する。
変更の仕方は、それぞれを選択した状態で [既定値に設定]ボタン
をクリックすれば良い。
[再生]タブでVoiceMeeter Input (VB-Audio VoiceMeeter VAIO)に設定
[録音]タブでVoiceMeeter Output (VB-Audio VoiceMeeter VAIO)に設定
この設定により、Windowsの音声全てがVoiceMeeterを介して管理する事が可能となる。
VoiceMeeter Bananaの設定
VoceMeeter上でLoopbackをさせるため、細かい説明を抜きにした必要最低限の手順。
- VoiceMeeter Bananaを起動
- 左から並ぶ
Hardware Input 1〜3
は設定しない、そのままにしておく - 画面右上の
Hardware Out
のA1
に、使用中のオーディオインターフェースを指定 Virtual Inputs
のVoicemeeter VAIO
列にあるA1
とB1
をクリックして点灯状態(=ON)にする
(3)のオーディオインターフェース選択は、可能であればインターフェースのASIOドライバを選択する事を推奨する。ない場合はオーディオインターフェースを指定する。
これでLoopbackが完成。
補足
VoiceMeeterがWindowsの音声を全て管理する形になっているので、常駐アプリとして登録設定を行っておくと良い。設定した環境を記憶して起動するので、再設定の手間は省ける。
- VoiceMeeter Bananaを起動
- 画面左上の
Menu
をクリック - 出てきたサブメニューで以下の項目をクリックしてチェックを入れる
System Tray
Run on Windows Startup
OBS-Studioの設定
ここは細かい手順が多い。
設定画面は、画面右下の [設定]ボタン
を押すか、画面左上の ファイル
→ 設定
を押せば出現する。
画面解像度の設定
主に負荷対策として設定する。
Discordの配信画面は初期値は 1280x720
なので、それに合わせた設定にすることを推奨。
映像
→基本キャンバス解像度
を1280x720
にする映像
→出力解像度
を1280x720
にする
音声の設定
画面の基本設定が終わったら、同じ設定画面内の 音声
より音声周りの設定を行う。
グローバル音声デバイス
を全て「無効」にする詳細設定
→モニタリングデバイス
をVoiceMeeter Aux Input
に変更
モニタリングデバイスはOBS-Studioが入力された音声全てをモニタリングする為に必要な設定項目。VoiceMeeter Aux Input
にはデバイスとして存在はしており、かつ出力先として利用できるが、そのデバイスから先は未接続であるため、デスクトップ上では音が出てこない。
ここまで設定が終わった所で、OBS-Studioの設定画面を [OK]ボタン
を押して閉じる。
ソースの追加
OBS-Studioから配信で使う映像・音声を追加していく。
- ソース内で右クリック → 追加 →
画面キャプチャ
を追加- DAWで使うメインモニタを選択
カーソルをキャプチャ
にチェックを入れる- OKを押して追加後、キャプチャ範囲が画面外にはみ出るので
画面キャプチャ
を右クリック →変換
→画面に合わせる
を選択して画面サイズに収める
- ソース内で右クリック → 追加 →
ASIO Input
追加- Device:
FL Studio ASIO
- OBS Channel 1:
FL Studio ASIO 0 in 1
- OBS Channel 2:
FL Studio ASIO 1 in 2
- Sample Rate:
48000Hz
- Bit depth:
32bit float (native)
- Buffer:
256
- Device:
今回はASIOでキャプチャをする設定をしたが、ASIOに拘らなくてもキャプチャはできる。それについては後述の補足事項を見て頂きたい。
オーディオのモニター設定
先述した通り、DiscordはOBS-Studioのモニタリングデバイスから出力される音声をキャプチャする。しかしOBS-Studioのデフォルト設定ではモニタリングデバイスからの出力はOFFになっているので、これをONに切り替える。
- 音量ミキサーに出現した
ASIO input
を右クリックしてオーディオの詳細プロパティ
を選択 音声モニタリング
をモニターと出力
に設定
これでOBS-Studioに入力された音声がモニタリングデバイス経由で出力されるので、Discord側が音声キャプチャ出来るようになる。結構ここで引っかかる人が多い。
Discordの音声設定
音声・ビデオチャット用の音声設定。
通知音などはWindowsの既定デバイスから再生されるので影響はない。
- 左下の
歯車マーク(ユーザー設定)
→音声・ビデオ
を開く - 入出力デバイスを以下に設定する
- 入力デバイス:
VoiceMeeter Aux Output
- 出力デバイス:
VoiceMeeter Aux Input
- 入力デバイス:
先述した通り、VoiceMeeter Aux Output/Input
にはその先の入出力デバイスが設定されていないため、表面上に音は出ない。
動作確認
ここまでで配信の準備は整ったので、DAW側でプロジェクトを再生し、音がOBS-Studioで設定した ASIO input
に入力されているされているかをインジケーターの動きで判断する。
音が乱れていないかを確認をしたい場合は、VoiceMeeter Banana側で以下の設定をする。
Voicemeeter VAIO
のA1
をOFFにするVoicemeeter AUX
のA1
をONにする
先述したモニタリングデバイスの出力先は VoiceMeeter AUX Input
を指定しているため、出力先を自分のオーディオインターフェースにすると音を聞く事が出来る。但し、Voicemeeter VAIO (VoiceMeeter Output)
と同時に聞くと、AUX側が若干遅れているためディレイが掛かった音になって非常に苦痛なのでお勧めしない。
Discordで配信を行う
インストール・設定をしたアプリケーションが全て閉じている状態であれば、以下の順序で起動を行う。
- VoiceMeeter Bananaを起動
- DAWを起動
- Discordを起動
- OBS-Studioを起動
次に、Discordで配信を行う為、いつも使っているサーバーのボイスチャンネルに入る。
- Discordでサーバーを選択
- ボイスチャンネルに入る
- 念のためマイクをミュートにする(画面左下のマイクアイコンをクリック)
[画面ボタン]
を押してOBS-Studioを選択- ボイスチャンネルに参加している自分のアイコンの右隣に
ライブ
と表示されれば完了
DiscordがOBS-Studioを認識し、OBS-Studioのプレビュー画面を配信画面として自動的に設定してくれる。なので、OBS-Studioで [配信ボタン]
をクリックする必要は無い。
補足事項
注意!画面を共有しているので全てが映る
OBS-Studioのソースで 画面キャプチャ
を選んでいるため、指定した画面=ディスプレイのデスクトップが全て映る。うっかり機密情報などを表示しよう物なら大惨事になるので、くれぐれも表示するアプリ・内容には注意すること。
ASIOドライバが無い場合は「音声入力キャプチャ」で代用可能
今回のケースではobs-asioプラグインを用いているが、VoiceMeeter BananaによるLoopbackは出来上がっているので、OBS-Studio内蔵の 音声入力キャプチャ
を用いても同じことは出来る。音声入力キャプチャ
を選択した場合はキャプチャ対象となるオーディオデバイスを VoiceMeeter Output
にすれば良い。
OBS-Studioのモニタリングデバイス設定はVoiceMeeterじゃなくてもOK
Discordは選択した画面・アプリケーションから出力される音声をキャプチャする。OBSの場合は モニタリングデバイス
を Voicemeeter AUX Input
に指定している為、表面上では音声は出力されていないが、内部的に出力はされている状態となるのでキャプチャが可能となる。
つまり、使っていないオーディオデバイスを モニタリングデバイス
に指定すれば良い話。今回は Voicemeeter AUX Input
を利用したが、内蔵のオーディオデバイスに適当なイヤホンを接続してデバイスを有効化させ、そのデバイスをOBS-Studioの モニタリングデバイス
に指定すれば解決する。
この設定のままTwitchやYoutube Liveなどへの配信、ローカルへの録画も可能
詳細は省くが、TwitchやYoutube Liveなどのストリーミングサービスへの配信設定をOBS-Studioに行えば、この画面と音声設定でそのままウェブ配信も出来る。Discord以外で配信をしたい場合は配信先への諸設定を行った上で [配信開始]ボタン
をクリックすれば配信される。配信内容は トランジションボタン
をクリックして プレビュー画面
の内容が 番組
に映ればOK。
「配信はしないが録画はしたい」と言う場合は配信と同じ手順だが、クリックするボタンが [録画開始]ボタン
になる。
以上がOBS-Studioを使ったDiscord上でのDTM配信を行うための設定である。
自分はDTMをまだやった事がないのだけれども、最低限のオーディオルーティング程度であればVoiceMeeterで事足りる。とは言え…VoiceMeeterのルーティングはクセが強いので、パッと理解できるかと言われたらそうでもないと思う。
それなりのチャンネル数を持ったオーディオインターフェースを買ってLoopbackをするのが一番ベストなのかもしれない。金額もそれなりになるから遠い夢の話になってしまうのだろうけれども。