Hairless Midiserialの使い方


https://projectgus.github.io/hairless-midiserial

Hairless Midiserialは、ArduinoをPCとUSBケーブルで接続して、ArduinoとMIDIアプリケーションをつなぐためのアプリケーションです。SerialからMIDIへ、MIDIからSerialへ変換します。

Hairless Midiserialはここからダウンロードできます。ちょっと下の方に、ダウンロードのリンクがあります。

ダウンロードが完了するとダウンロードフォルダーに、hairless-midiserial-0.4-windows.zip(2020/10/29現在)がダウンロードされます。これを解凍します。フォルダーの中に、hairless-midiserial.exeがあります。インストーラはありません。これをダブルクリックで起動します。左側でシリアルポートを選択、右側でMIDIポートを選択します。ここでは、MIDIの出力先として、Windows内臓のMicrosoft GS Wavetable Synthが選択されています。

File メニューからPreferenceを選択すると、シリアル通信の設定を行うことができます。Baud rate はArduinoのプログラムを書く時に使いますのでメモをしておきます。初期値は115200となっています。その他はいじっていません。

Hairless Midiserialを試してみます。ここではオーソドックスなArduino Unoを使います。Unoに4行4列の計16個のスイッチを取り付け、スイッチを押すとシリアル通信でMIDIイベントをPCに転送し、Hairless MidiserialがシリアルMIDIを普通のMIDIに変換してソフトシンセが鳴ります。出来上がりは写真のようになります。

プログラムをざっくりと記載しておきます。


const int SWP=3
int switch_status=0; //スイッチの状態を保持

void setup() {
// スイッチ読み取りの準備
 pinMode(SWP, INPUT);
// シリアルの速度を設定
  Serial.begin(115200);
}
void loop() {
  int ss=digitalRead(SWP); // スイッチを読み込む
  if(ss!=switch_status){   // スイッチの状態が変わったら
    switch_status=ss;
    if(switch_status==1){  //スイッチが押された
      Serial.write(0x90);  //MIDI Note ON
      Serial.write(0x60);
      Serial.write(0x60);
    } else {               //スイッチが離された
      Serial.write(0x80);  //MIDI Note OFF
      Serial.write(0x60);
      Serial.write(0x60);
    }
  }
}