Publish 2018.02.26
MIDI端子を使った通信の方法は以前の記事で解説しましたが、その際にHairless MIDIというソフトを使う方法を軽く紹介しました。同じ記事を英語版のブログでも書いてるんですが、そこでHairless MIDIの使い方を教えてくれとのメッセージが来たので、この方法も紹介しておきます。
arduinoでMIDIを扱う場合は定番のソフトで、使っている人は多いみたいなのですが、以前使おうとしても全く上手く行かなくて諦めてました。どうやらarduino公式のMIDIライブラリを使う場合は少しコードに修正が必要だったみたいです。僕が書いているコードも全てMIDIライブラリを使用しています。
とりあえずWindowsで動作確認したのでWindows用の手順になります。OSはWindows10です。
ではまずコードの修正から。
Hairless MIDIの公式サイトのFAQにも書いてありますが、僕はコード内でMIDIライブラリを使用しているので、修正が必要です。
修正といっても、1行追加するだけです。
現状、void setup内は下のようになってます。
setup() {
MIDI.begin(10);
}
MIDI.beginで数字を引用せずに、更に以下の1文を追加します。
void setup() {
MIDI.begin();
Serial.begin(38400); // Do not forget to select the same baudrate (38400) with Hairless MIDI.
}
ボーレートを指定しているだけです。
MIDIライブラリを使用していてボーレートを指定していない場合は31250bpsになるんですが、Hairless
MIDIでは31250は指定できないので上手く通信できません。
とりあえず近めの38400bpsにしたら正常に動きました。他のボーレートでも上手く動くのかな?
続いて、ソフトの使い方を。
まずは、公式サイトからダウンロードしてください。
http://projectgus.github.io/hairless-midiserial/
https://www.tobias-erichsen.de/software/loopmidi.html
Windowsの場合は上の2つのソフトが必要です。
まずLoop MIDIを起動します。
左下の+ボタンで新しいポートを作成します。
作成できたらウィンドウを閉じても大丈夫です。
ウィンドウを閉じてもバックグラウンドで実行されてます。
続いてHairless MIDIを起動します。
まず、FileからPreferencesを開きます。
Baud rateを先ほどコードで指定した38400にしてOKを押します。
他は触らなくて大丈夫です。
Arduinoを繋いでください。
Serial portでarduinoを選択して、MIDI outでloopMIDIを選択します。
arduinoからMIDI信号を送るとメッセージが表れるはずです。
もし、エラーメッセージだったり、送っているはずの信号以外のメッセージが出た場合は、arduinoのリセットボタンを押してみたり、左上のチェックを外して再度チェックを入れてみてください。
Hairless MIDIを使うと何がいいかというと、左上のチェックボックスを外せばそのままarduino
IDEからコードを書き込めます。つまり、USBケーブルの抜き差しが一切無しでarduinoのコードのデバッグが出来るんです。ケーブルの抜き差しは意外とストレスになるので。
これでDAW側でMIDIデバイスを選択すれば完了です。
とりあえずEZdrummer2での設定を。
Settingからaudio MIDI setupを開いてください。
こんな感じでloop MIDIがMIDIデバイスとして検出されます。
また、MENUからMIDIチャンネルをanyにして、
以上、HairlessMIDIとLoopMIDIの使い方でした。