DJ配信における、MIDIコン同期でのNowPlaying表示について
はじめに
こんにちは。mikipedia(@mikipedia_asr)です。
環境の変化やら体力減ったりやらで、DJしたり現場に遊びに行くことがめっきり減ってきてしまっていた最近、配信DJという新しいアクティビティの台頭でDJ熱が再燃してきはじめている今日このごろです。
同じような30代の隠居DJ、案外結構いるんじゃないでしょうか。
この記事では、DJでプレー中の楽曲をリアルタイムに配信画面に乗せる方法について、調べた内容を備忘録的にまとめてみます。同じことが出来ないか考えている方の参考になれば幸いです。
この記事の方法で達成できること:
1.今流れている曲のみ配信画面に表示する(Cueトラックは見せない)
2.DJの操作以外に、配信画面を切り替えるための独自操作を行わない
3.応答性よく、楽曲の切り替わりと合わせた切り替えを行う
サンプルはこんなかんじ。
(この記事の内容をベースにアレンジも加えてます)
この記事の方法が適用できる環境:
・Windows環境
・Traktor(MIDIコン次第では、rekordbox performanceモードでも多分可能)
・OBSとTraktorを同じPCで実行
※ その他の環境でも参考にしていただける部分はあると思います
※ OBSの基本的な使い方や、配信設定などについてはこの記事では省略します。
1.トラック表示のOBSへの取り込み
TraktorとOBSを立ち上げ、OBS側で画面キャプチャソースを2つ追加して、Traktorの各デッキのトラック表示部分を配信画面に取り込み、2つ重ねて配置します。
プレー時に位置ずれをおこさないように、Traktorの画面は最大化した状態でキャプチャします。
画面キャプチャソースの頂点と辺にある8つの■部分をAlt + ドラッグすることで、ソースのトリミングができます。
画面キャプチャソースのフィルタに「カラーキー」を追加、色を選択からPick Screen Colorでトラック名表示部分の背景色を指定することで、トラック表示の背景色を透明にして文字を浮かせることができます。
この場合、ジャケット表示部分にもカラーキーが適用されてしまうため、ジャケットの同色部分の色が抜けてしまうことがあります。
色ソースを追加して、ジャケット部分と同じ大きさに調整してトラック名表示部分の後ろに配置し、色ソースの色をトラック名表示部分と同じ色にすることで回避できます。
2.トラック表示の切り替え
OBSの設定画面→ホットキーから、各画面キャプチャ部分の表示非表示の切り替えをショートカット登録します。
設定例:
これで、キーボードショートカットでデッキAとデッキBの楽曲の表示切り替えができるようになりました。
あとはMIDIコンの操作をトリガーとしてキーボード入力を自動的に送れるようになれば良いわけですが。。。
3.MIDI信号のルーティングを変更するための準備
MIDIコンでDJプレーを行いながら、そのMIDIコン操作の信号を横取りしてトラック表示を切り替え(=自動的にキーボードショートカットを叩き)たいわけですが、通常、MIDIコンとDJソフトウェアは直接信号をやりとりしているので、信号を横取りすることができません。
これらを解決するために、下記の2つのフリーソフトを導入します。
① MIDI信号を変換してキーボード出力を行うためのソフト(Bome's MIDI Translator Classic)
※ 起動時にドネーションを求めるウィンドウが出ますが、個人利用に限り無料で利用可能です。
② TraktorとBome’s MIDI Translator Classicの橋渡しをするために必要となる、仮想のMIDIポートを作成するソフト(LOOP MIDI)
上記を使って、最終的なルーティングは下記のとおりになります。
ルーティングについては基本的に各ソフトのMIDI IN/OUTを図のとおりに設定するだけなので、詳しい解説は省略。。。
Traktorではなく、rekordboxのperformanceモードでも同様のことができるかと思いますが、XDJ-R1で試したところ、Pioneer製だからなのか、ジョグコントロール部分についてMIDIでなく独自の規格でrekordboxと通信しているらしく、MIDIアサイン設定がうまく行かなかったため苦戦して諦めました。頑張ればできるかも。(performanceモードの試用期間きれるので多分もうやらない)
4.Bome's MIDI Translator Classicの設定
事前設定として、Bome's MIDI Traslator Classic(以下BMT)のMIDI入力を「MIDIコントローラー名」、MIDI出力を「LOOP MIDIの仮想MIDIポート名」に設定します。また、BMTに入力された信号がそのまま出力に流れるように、OptionsメニューのMIDI Thruをチェックしておきます。
次に、MIDIコンの信号を受け取ってキーボード出力を吐くための設定を行います。
「Add a new translator」ボタンから新規トランスレーターを作成し、Incomingにトラック名表示の切り替えのトリガーに使いたいMIDI信号を登録します。Capture MIDIのチェックボックスを入れた状態でMIDIコンを触れば、MIDIコンがいま出力しているMIDI信号を取り出すことができます。OutgoingにはKey Stroke Emulationを設定し、OBS側で設定したキーボードショートカットを登録します。
これを、デッキAとデッキBの2つ分作成します。
自分はロングミックスが多いので、チャンネルフェーダーを下げきったときのMIDI出力をトリガーに、トラック名表示が自動的に切り替わるように設定しています。それぞれのプレイスタイルや切り替えタイミングの好みによって、クロスフェーダーを振り切ったときのMIDI出力だったり、再生ボタンを押したときだったりで、カスタマイズしてみると良いでしょう。
設定のポイントとして、チャンネルフェーダーなどは細かな操作解像度を表現するために、128段階の2種類の信号を組み合わせる(MSB/LSB)ことによって16384段階の信号として送られてきている場合があります。
BMTではどちらかの信号しかトリガーにできないので、MSBの方を指定するようにするのが良いです。送られてくるMIDI信号はコントローラーによって違うので、ここで具体的に説明するのは難しいですが、Capture MIDIの結果を見ながら推測していくといいでしょう。どのボタン/フェーダーからどんなMIDI信号が出力されているかは、MIDIコンの取扱説明書の付録あたりに書いてあるので、合わせて確認するのも有用です。
5.実際に試してみる
ここまでの準備ができたら、BMT、Traktor、OBSを起動して実際に試してみます。
プレー中は、OBSのキーボードショートカットの入力を認識させるために、OBSの画面をアクティブにしておく必要があります。
Traktorを最大化表示しつつ、画面右下あたりにOBSウィンドウを小さく表示しておくのがよいでしょう。
6.さらに...
MIDI to OBS を導入することでキーボードショートカットを経由せずにOBSの操作ができるかも。うまくハマればOBSのウィンドウをアクティブにしておく必要もなくなったり、OBSでもっと複雑な制御ができるかもしれませんが、まだ試してません。気になる方はどうぞ!
7.最後に
なにか記事に間違いや不足があれば @mikipedia_asr までご連絡ください!