The main class Midi wraps most common MIDI API calls (like enumerating the MIDI devices and sending or receiving MIDI messages) and has been implemented as static methods. These methods might be used to implement your own native MIDI communication. So there is NO need to create an instance of the Midi class!
The other two main objects, which might be even more useful, are the MidiInputDevice and MidiOutputDevice which are real classes and make use of the Midi methods internally. With the MidiShortMessage and MidiSysExMessage classes you might create (encode, pack) or read (decode, unpack) any Midi data or system-exclusive message. Alltogether they handle effective communication with MIDI ports (like sending and reveiving any kind of message). Those classes need to be instantiated before their use.
For more information about MIDI see here: Musical Instrument Digital Interface (MIDI).
This class represents the general Win32 MIDI Functions and Constants.
Requires: winmm.dll - Microsoft Multimedia Win32 library.
Represents a wrapper for the Windows Multimedia MIDIHDR structure.
Represents MIDI input device capabilities as returned by the MIDI_InGetDevCaps(Int32, MIDI_INCAPS) method.
Represents MIDI output device capabilities as returned by the MIDI_OutGetDevCaps(Int32, MIDI_OUTCAPS) method.
This class handles all communication with a Midi input device.
EventArgs class to be passed as the second parameter of a MessageReceived or MessageReceived event handler.
This class handles all communication with a Midi output device.
This class represents a Midi short (data) message as for example received in a MIM_DATA message of a MIDIINPROC.
This class represents a Midi system-exclusive message as for example received in a MIM_LONGDATA message of a MIDIINPROC or as being used with the MIDI_OutLongMsg(IntPtr, IntPtr) and returned back in the MIDIOUTPROC with the MOM_DONE message.
Represents the Windows Multimedia MMTIME structure.
Represents the general callback delegate for handling Midi Input messages.
Definition of the MessageReceived and MessageReceived event handler.
Represents the general callback delegate for handling Midi Output messages.
Defines constants for controller types.
Type of the MIDI output device, to be used with the technology flag field.
General list of Midi Error Codes.
General Midi Flags.
Flag of the MIDI_HEADER flags property.
Defines constants representing the special Midi ManufacturerID within a system-exclusive message (see Manufacturer for details).
Midi Message Types.
Types of Midi message event that has occurred with the MidiInputDevice resp. MidiOutputDevice class.
Defines constants representing MIDI message types.
Defines constants representing the Midi Time Code (MTC) type used by the MidiTimeCode status given in a StatusType member (also see TimeCodeType and TimeCodeValue).
Defines constants representing the 12 Note of the chromatic scale.
Defines constants for Midi message status.
Defines constants representing the Midi timing format used by the MIDI_TIME structure.