回答編集履歴
2
さらに追記
answer
CHANGED
@@ -14,4 +14,4 @@
|
|
14
14
|
MIDI.begin();
|
15
15
|
Serial.begin(115200);
|
16
16
|
```
|
17
|
-
MIDIライブラリがSerialを使ってMIDI通信しようとしているのに、`Serial.beign(115200);`でシリアルポートを横取り?しちゃよろしくないのでは。
|
17
|
+
MIDIライブラリがSerialを使ってMIDI通信しようとしているのに、`Serial.beign(115200);`でシリアルポートを横取り?しちゃよろしくないのでは(CDCだとボーレート設定は関係ないかも)。
|
1
追記
answer
CHANGED
@@ -1,2 +1,17 @@
|
|
1
1
|
PCからみたArduino Leonardoのシリアルは、USBのCDCつまり仮想シリアルです。MIDIライブラリが仮想でないシリアル(UARTのTX/RX端子)を使う前提のものであるならその構成ではMIDIに信号が得られないのかもしれません。
|
2
|
-
使っているMIDIライブラリの仕様を確認してみてください。
|
2
|
+
使っているMIDIライブラリの仕様を確認してみてください。
|
3
|
+
|
4
|
+
---
|
5
|
+
(そういえばMIDI機器とヤマハのMIDI-USBコンバータが押し入れの奥にあったはず...と思ったけど見つからない)
|
6
|
+
|
7
|
+
MIDI Libralyのソースを覗くと、serialMIDI.h中に
|
8
|
+
` // Leonardo, Due and other USB boards use Serial1 by default.`
|
9
|
+
という文言が見えますね。Serial1はD0/D1のところの(物理)UARTですから...
|
10
|
+
ライブラリのExampleを見ると、AltPinSerialというのがあって、SoftwareSerialを割り当てている例がありますからそれを参考にMIDIをSerialに割当てなおしてみてはいかがでしょう。(しかしSoftwareSerialが31.5KbpsのMIDIでまともに使えるのか?)
|
11
|
+
|
12
|
+
それと、
|
13
|
+
```Arduino
|
14
|
+
MIDI.begin();
|
15
|
+
Serial.begin(115200);
|
16
|
+
```
|
17
|
+
MIDIライブラリがSerialを使ってMIDI通信しようとしているのに、`Serial.beign(115200);`でシリアルポートを横取り?しちゃよろしくないのでは。
|