その2です。
MIDIコントローラについて知っておく
MIDIの細かい仕様まで理解する必要はありませんが、MIDIコントローラを操作した場合、コンピュータにどういう信号が送出されているかは知っておく必要があります。
ほとんどのDJ用MIDIコントローラの場合、ボタンやノブを操作すると送出されるのは
- ノート信号(いわゆる鍵盤を押した時に相当する信号)
- コントロールチェンジ信号(汎用のパラメータ変更に使える信号)
です。手持ちのコントローラのどの部分を操作するとどういう信号が出るのか、ということは事前にチェックしておかなくてはなりません。コントローラの取扱説明書に書いてある場合もありますが、情報がない場合は自分で実際に調べてみるのが早いです。
MIDIコントローラの信号を調べる
実際の調べ方です。
- コントローラを接続した上でPreferencesのMIDI Controlを開きます。
- 対象になるコントローラの”Input”をオンにします。
- 上段のController欄にある”MIDI Learn Editor”を開きます。
これは、従来のDeckadanceにもついていたキーアサイン用の機能です。使い勝手も大体一緒です。ポイントは、キーアサインの結果をスクリプトとして出力できるということです。つまり、調べたいボタンやノブに何か適当な機能を割りつけた状態でスクリプトを出力すると、そのスクリプトに信号の中身が出力されているというわけです。具体的には
- どれか適当な機能をダブルクリックします。
- MIDIコントローラの信号を調べたいボタンなどを押します。
- ボタンに機能が割り付けられるので、”Export Script”でスクリプトファイルを出力します。
ファイルを開いてみると、ノート情報であればこういう記述の行が見つかると思います。
【例】
if(status == 0x90 && data == 0x12) {
set(hogehoge, isDown);
return;
}
強調しましたがdata==0x12のところが重要です。これはノート信号の例ですが、0x12の信号を受信した時に何らかの処理を行う、という内容になっています。
勘の良い方はここまで見ると何となく分かってしまうのではないかと思いますが、信号の種類分こういったif文を用意すれば自作のスクリプトが作れます。
Launchpadなんかはボタンだらけなので調べるのに根気が要りましたが、こんな要領で全ボタンからどんな信号が出るかを調べました。