Provides interfaces and classes for I/O, sequencing, and synthesis of MIDI (Musical Instrument Digital Interface) data.

Related Documentation

For overviews, tutorials, examples, and guides, please see:


ControllerEventListener The ControllerEventListener interface should be implemented by classes whose instances need to be notified when a Sequencer has processed a requested type of MIDI control-change event. 
MetaEventListener The MetaEventListener interface should be implemented by classes whose instances need to be notified when a Sequencer has processed a MetaMessage
MidiChannel A MidiChannel object represents a single MIDI channel. 
MidiDevice MidiDevice is the base interface for all MIDI devices. 
Receiver A Receiver receives MidiEvent objects and typically does something useful in response, such as interpreting them to generate sound or raw MIDI output. 
Sequencer A hardware or software device that plays back a MIDI sequence is known as a sequencer
Soundbank A Soundbank contains a set of Instruments that can be loaded into a Synthesizer
Synthesizer A Synthesizer generates sound. 
Transmitter A Transmitter sends MidiEvent objects to one or more Receivers


Instrument An instrument is a sound-synthesis algorithm with certain parameter settings, usually designed to emulate a specific real-world musical instrument or to achieve a specific sort of sound effect. 
MetaMessage A MetaMessage is a MidiMessage that is not meaningful to synthesizers, but that can be stored in a MIDI file and interpreted by a sequencer program. 
MidiDevice.Info A MidiDevice.Info object contains assorted data about a MidiDevice, including its name, the company who created it, and descriptive text. 
MidiEvent MIDI events contain a MIDI message and a corresponding time-stamp expressed in ticks, and can represent the MIDI event information stored in a MIDI file or a Sequence object. 
MidiFileFormat A MidiFileFormat object encapsulates a MIDI file's type, as well as its length and timing information. 
MidiMessage MidiMessage is the base class for MIDI messages. 
MidiSystem The MidiSystem class provides access to the installed MIDI system resources, including devices such as synthesizers, sequencers, and MIDI input and output ports. 
Patch A Patch object represents a location, on a MIDI synthesizer, into which a single instrument is stored (loaded). 
Sequence A Sequence is a data structure containing musical information (often an entire song or composition) that can be played back by a Sequencer object. 
Sequencer.SyncMode A SyncMode object represents one of the ways in which a MIDI sequencer's notion of time can be synchronized with a master or slave device. 
ShortMessage A ShortMessage contains a MIDI message that has at most two data bytes following its status byte. 
SoundbankResource A SoundbankResource represents any audio resource stored in a Soundbank
SysexMessage A SysexMessage object represents a MIDI system exclusive message. 
Track A MIDI track is an independent stream of MIDI events (time-stamped MIDI data) that can be stored along with other tracks in a standard MIDI file. 
VoiceStatus A VoiceStatus object contains information about the current status of one of the voices produced by a Synthesizer


InvalidMidiDataException An InvalidMidiDataException indicates that inappropriate MIDI data was encountered. 
MidiUnavailableException A MidiUnavailableException is thrown when a requested MIDI component cannot be opened or created because it is unavailable.