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); } } }