javax.sound.midi APIs, a null reference parameter to methods is incorrect unless explicitly documented on the method as having a meaningful interpretation. Usage to the contrary is incorrect coding and may result in a run time exception either immediately or at some later time. NullPointerException is an example of typical and acceptable run time exception for such cases.| Class | Description | 
|---|---|
| ControllerEventListener | The  ControllerEventListenerinterface should be implemented by classes whose instances need to be notified when aSequencerhas processed a requested type of MIDI control-change event. | 
| 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. | 
| InvalidMidiDataException | An  InvalidMidiDataExceptionindicates that inappropriate MIDI data was encountered. | 
| MetaEventListener | The  MetaEventListenerinterface should be implemented by classes whose instances need to be notified when aSequencerhas processed aMetaMessage. | 
| MetaMessage | A  MetaMessageis aMidiMessagethat is not meaningful to synthesizers, but that can be stored in a MIDI file and interpreted by a sequencer program. | 
| MidiChannel | A  MidiChannelobject represents a single MIDI channel. | 
| MidiDevice | MidiDeviceis the base interface for all MIDI devices. | 
| MidiDevice.Info | A  MidiDevice.Infoobject contains assorted data about aMidiDevice, including its name, the company who created it, and descriptive text. | 
| MidiDeviceReceiver | MidiDeviceReceiveris aReceiverwhich represents a MIDI input connector of aMidiDevice(seeMidiDevice.getReceiver()). | 
| MidiDeviceTransmitter | MidiDeviceTransmitteris aTransmitterwhich represents a MIDI input connector of aMidiDevice(seeMidiDevice.getTransmitter()). | 
| 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  Sequenceobject. | 
| MidiFileFormat | A  MidiFileFormatobject encapsulates a MIDI file's type, as well as its length and timing information. | 
| MidiMessage | MidiMessageis the base class for MIDI messages. | 
| MidiSystem | The  MidiSystemclass provides access to the installed MIDI system resources, including devices such as synthesizers, sequencers, and MIDI input and output ports. | 
| MidiUnavailableException | A  MidiUnavailableExceptionis thrown when a requested MIDI component cannot be opened or created because it is unavailable. | 
| Patch | A  Patchobject represents a location, on a MIDI synthesizer, into which a single instrument is stored (loaded). | 
| Receiver | A  ReceiverreceivesMidiEventobjects and typically does something useful in response, such as interpreting them to generate sound or raw MIDI output. | 
| Sequence | A  Sequenceis a data structure containing musical information (often an entire song or composition) that can be played back by aSequencerobject. | 
| Sequencer | A hardware or software device that plays back a MIDI  sequenceis known as a sequencer. | 
| Sequencer.SyncMode | A  SyncModeobject 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  ShortMessagecontains a MIDI message that has at most two data bytes following its status byte. | 
| Soundbank | A  Soundbankcontains a set ofInstrumentsthat can be loaded into aSynthesizer. | 
| SoundbankResource | A  SoundbankResourcerepresents any audio resource stored in aSoundbank. | 
| Synthesizer | A  Synthesizergenerates sound. | 
| SysexMessage | A  SysexMessageobject 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. | 
| Transmitter | |
| VoiceStatus | A  VoiceStatusobject contains information about the current status of one of the voices produced by aSynthesizer. | 
    © 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
    https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/sound/midi/package-summary.html