Instead of throwing an exception, perhaps the MidiInput object could instead default to a keyboard input when the MIDI device cannot be initialized properly.
This requires a new Source object that will read from the keyboard, and convert the messages to MIDI format.
Instead of throwing an exception, perhaps the
MidiInput
object could instead default to a keyboard input when the MIDI device cannot be initialized properly.This requires a new
Source
object that will read from the keyboard, and convert the messages to MIDI format.