回答編集履歴

2

さらに追記

2021/05/05 00:36

投稿

thkana
thkana

スコア7703

test CHANGED
@@ -30,4 +30,4 @@
30
30
 
31
31
  ```
32
32
 
33
- MIDIライブラリがSerialを使ってMIDI通信しようとしているのに、`Serial.beign(115200);`でシリアルポートを横取り?しちゃよろしくないのでは。
33
+ MIDIライブラリがSerialを使ってMIDI通信しようとしているのに、`Serial.beign(115200);`でシリアルポートを横取り?しちゃよろしくないのでは(CDCだとボーレート設定は関係ないかも)

1

追記

2021/05/05 00:36

投稿

thkana
thkana

スコア7703

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