# Uses of Package
javax.sound.midi

Packages that use javax.sound.midi
Package
Description
javax.sound.midi
Provides interfaces and classes for I/O, sequencing, and synthesis of MIDI (Musical Instrument Digital Interface) data.
javax.sound.midi.spi
Supplies interfaces for service providers to implement when offering new MIDI devices, MIDI file readers and writers, or sound bank readers.

Classes in javax.sound.midi used by javax.sound.midi
Class
Description
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.
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 `InvalidMidiDataException` indicates that inappropriate MIDI data was encountered.
MetaEventListener
The `MetaEventListener` interface should be implemented by classes whose instances need to be notified when a `Sequencer` has processed a `MetaMessage`.
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.
MidiChannel
A `MidiChannel` object represents a single MIDI channel.
MidiDevice
`MidiDevice` is the base interface for all MIDI devices.
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.
MidiUnavailableException
A `MidiUnavailableException` is thrown when a requested MIDI component cannot be opened or created because it is unavailable.
Patch
A `Patch` object represents a location, on a MIDI synthesizer, into which a single instrument is stored (loaded).
Receiver
A `Receiver` receives `MidiEvent` objects and typically does something useful in response, such as interpreting them to generate sound or raw MIDI output.
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
A hardware or software device that plays back a MIDI `sequence` is known as a sequencer.
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.
Soundbank
A `Soundbank` contains a set of `Instruments` that can be loaded into a `Synthesizer`.
SoundbankResource
A `SoundbankResource` represents any audio resource stored in a `Soundbank`.
Synthesizer
A `Synthesizer` generates sound.
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
A `Transmitter` sends `MidiEvent` objects to one or more `Receivers`.
VoiceStatus
A `VoiceStatus` object contains information about the current status of one of the voices produced by a `Synthesizer`.
Classes in javax.sound.midi used by javax.sound.midi.spi
Class
Description
InvalidMidiDataException
An `InvalidMidiDataException` indicates that inappropriate MIDI data was encountered.
MidiDevice
`MidiDevice` is the base interface for all MIDI devices.
MidiDevice.Info
A `MidiDevice.Info` object contains assorted data about a `MidiDevice`, including its name, the company who created it, and descriptive text.
MidiFileFormat
A `MidiFileFormat` object encapsulates a MIDI file's type, as well as its length and timing information.
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.
Soundbank
A `Soundbank` contains a set of `Instruments` that can be loaded into a `Synthesizer`.