Thanks for getting back to me so quickly qubits-us.
I'm sorry, I should have mentioned that I'm using the Arduino MIDI library and so I need to create a MIDI object.
#include <MIDI.h>
#if defined(ARDUINO_SAM_DUE) || defined(SAMD_SERIES) || defined(_VARIANT_ARDUINO_ZERO_)
/* example not relevant for this hardware (SoftwareSerial not supported) */
MIDI_CREATE_DEFAULT_INSTANCE();
int rxPin = 0;
#else
#include <SoftwareSerial.h>
using Transport = MIDI_NAMESPACE::SerialMIDI<SoftwareSerial>;
int rxPin = 15;
int txPin = 14;
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
Transport serialMIDI(mySerial);
MIDI_NAMESPACE::MidiInterface<Transport> MIDI((Transport&)serialMIDI);
#endif
This means I can use functions such as...
MIDI.sendNoteOn(42, 127, 1);
...in my code.
I have confirmed that SoftwareSerial is being instantiated but I still cannot receive MIDI data.
If you're using those pins then you don't create a SoftwareSerial anything. Those are hardware serial pins. You use Serial3 where you had Serial before and you're done.
You said you originally had it set up using the regular Serial interface. How did that work? However that worked, just go in and find the word Serial and replace with Serial3.
To clarify..
SoftwareSerial is used when the board does not have enough HardwareSerials available..
It uses software to emulate hardware that is not there..
the mega has 4 hardware uart ready to scream..
software serial is like a whimper..
~q
SoftwareSerial has nothing to do with Midi. The MIDI library needs a serial port and if you're using an UNO and only have one then your only option is to use Soft Serial. But it sucks.
It's the examples that are all written with SoftwareSerial and I don't understand why.