>> Blog Top

Hairless MIDIをarduino MIDIライブラリと併用

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の使い方でした。


>> Blog Top