OK. I used that software to extract the data from the midi download, and it is as I expected. The Midi class does not support other than HardwareSerial instances.Modifying the class so that it has an overloaded constructor that takes a NewSoftSerial instance would be easy. Implementing that method, and setting a field that indicated whether to use the hardware instance or software instance would be easy.Modifying all the methods to use the hardware or software instance would not be hard, but there are a lot of them.I'd take on the challenge, not that it is much of a challenge, but I don't have an Midi hardware to test the class with, or much interest in music with the Arduino. Hopefully, someone who does will take this on.