Package Summary Overview Summary

### class:ShortMessage [NONE]
- All Implemented Interfaces: Cloneable
      public class ShortMessage
      extends MidiMessage
A `ShortMessage` contains a MIDI message that has at most two data bytes following its status byte. The types of MIDI message that satisfy this criterion are channel voice, channel mode, system common, and system real-time--in other words, everything except system exclusive and meta-events. The `ShortMessage` class provides methods for getting and setting the contents of the MIDI message. A number of `ShortMessage` methods have integer parameters by which you specify a MIDI status or data byte. If you know the numeric value, you can express it directly. For system common and system real-time messages, you can often use the corresponding fields of `ShortMessage`, such as `SYSTEM_RESET`. For channel messages, the upper four bits of the status byte are specified by a command value and the lower four bits are specified by a MIDI channel number. To convert incoming MIDI data bytes that are in the form of Java's signed bytes, you can use the conversion code given in the `MidiMessage` class description. See Also: `SysexMessage`, `MetaMessage`

### field:MIDI_TIME_CODE [NONE]
- #### MIDI_TIME_CODE
      public static final int MIDI_TIME_CODE
Status byte for MIDI Time Code Quarter Frame message (0xF1, or 241). See Also: `MidiMessage.getStatus()`, Constant Field Values

### field:SONG_POSITION_POINTER [NONE]
- #### SONG_POSITION_POINTER
      public static final int SONG_POSITION_POINTER
Status byte for Song Position Pointer message (0xF2, or 242). See Also: `MidiMessage.getStatus()`, Constant Field Values

### field:SONG_SELECT [NONE]
- #### SONG_SELECT
      public static final int SONG_SELECT
Status byte for MIDI Song Select message (0xF3, or 243). See Also: `MidiMessage.getStatus()`, Constant Field Values

### field:TUNE_REQUEST [NONE]
- #### TUNE_REQUEST
      public static final int TUNE_REQUEST
Status byte for Tune Request message (0xF6, or 246). See Also: `MidiMessage.getStatus()`, Constant Field Values

### field:END_OF_EXCLUSIVE [NONE]
- #### END_OF_EXCLUSIVE
      public static final int END_OF_EXCLUSIVE
Status byte for End of System Exclusive message (0xF7, or 247). See Also: `MidiMessage.getStatus()`, Constant Field Values

### field:TIMING_CLOCK [NONE]
- #### TIMING_CLOCK
      public static final int TIMING_CLOCK
Status byte for Timing Clock message (0xF8, or 248). See Also: `MidiMessage.getStatus()`, Constant Field Values

### field:START [NONE]
- #### START
      public static final int START
Status byte for Start message (0xFA, or 250). See Also: `MidiMessage.getStatus()`, Constant Field Values

### field:CONTINUE [NONE]
- #### CONTINUE
      public static final int CONTINUE
Status byte for Continue message (0xFB, or 251). See Also: `MidiMessage.getStatus()`, Constant Field Values

### field:STOP [NONE]
- #### STOP
      public static final int STOP
Status byte for Stop message (0xFC, or 252). See Also: `MidiMessage.getStatus()`, Constant Field Values

### field:ACTIVE_SENSING [NONE]
- #### ACTIVE_SENSING
      public static final int ACTIVE_SENSING
Status byte for Active Sensing message (0xFE, or 254). See Also: `MidiMessage.getStatus()`, Constant Field Values

### field:SYSTEM_RESET [NONE]
- #### SYSTEM_RESET
      public static final int SYSTEM_RESET
Status byte for System Reset message (0xFF, or 255). See Also: `MidiMessage.getStatus()`, Constant Field Values

### field:NOTE_OFF [NONE]
- #### NOTE_OFF
      public static final int NOTE_OFF
Command value for Note Off message (0x80, or 128). See Also: Constant Field Values

### field:NOTE_ON [NONE]
- #### NOTE_ON
      public static final int NOTE_ON
Command value for Note On message (0x90, or 144). See Also: Constant Field Values

### field:POLY_PRESSURE [NONE]
- #### POLY_PRESSURE
      public static final int POLY_PRESSURE
Command value for Polyphonic Key Pressure (Aftertouch) message (0xA0, or 160). See Also: Constant Field Values

### field:CONTROL_CHANGE [NONE]
- #### CONTROL_CHANGE
      public static final int CONTROL_CHANGE
Command value for Control Change message (0xB0, or 176). See Also: Constant Field Values

### field:PROGRAM_CHANGE [NONE]
- #### PROGRAM_CHANGE
      public static final int PROGRAM_CHANGE
Command value for Program Change message (0xC0, or 192). See Also: Constant Field Values

### field:CHANNEL_PRESSURE [NONE]
- #### CHANNEL_PRESSURE
      public static final int CHANNEL_PRESSURE
Command value for Channel Pressure (Aftertouch) message (0xD0, or 208). See Also: Constant Field Values

### field:PITCH_BEND [NONE]
- #### PITCH_BEND
      public static final int PITCH_BEND
Command value for Pitch Bend message (0xE0, or 224). See Also: Constant Field Values

### constructor:ShortMessage() [NONE]
- #### ShortMessage
      public ShortMessage()
Constructs a new `ShortMessage`. The contents of the new message are guaranteed to specify a valid MIDI message. Subsequently, you may set the contents of the message using one of the `setMessage` methods. See Also: `setMessage(int)`

### constructor:ShortMessage(int) [NONE]
- #### ShortMessage
      public ShortMessage(int status)
                   throws InvalidMidiDataException
Constructs a new `ShortMessage` which represents a MIDI message that takes no data bytes. The contents of the message can be changed by using one of the `setMessage` methods. Parameters: `status` - the MIDI status byte Throws: `InvalidMidiDataException` - if `status` does not specify a valid MIDI status byte for a message that requires no data bytes Since: 1.7 See Also: `setMessage(int)`, `setMessage(int, int, int)` , `setMessage(int, int, int, int)` , `MidiMessage.getStatus()`

### constructor:ShortMessage(int, int, int) [NONE]
- #### ShortMessage
      public ShortMessage(int status,
                          int data1,
                          int data2)
                   throws InvalidMidiDataException
Constructs a new `ShortMessage` which represents a MIDI message that takes up to two data bytes. If the message only takes one data byte, the second data byte is ignored. If the message does not take any data bytes, both data bytes are ignored. The contents of the message can be changed by using one of the `setMessage` methods. Parameters: `status` - the MIDI status byte `data1` - the first data byte `data2` - the second data byte Throws: `InvalidMidiDataException` - if the status byte or all data bytes belonging to the message do not specify a valid MIDI message Since: 1.7 See Also: `setMessage(int)`, `setMessage(int, int, int)` , `setMessage(int, int, int, int)` , `MidiMessage.getStatus()`, `getData1()`, `getData2()`

### constructor:ShortMessage(int, int, int, int) [NONE]
- #### ShortMessage
      public ShortMessage(int command,
                          int channel,
                          int data1,
                          int data2)
                   throws InvalidMidiDataException
Constructs a new `ShortMessage` which represents a channel MIDI message that takes up to two data bytes. If the message only takes one data byte, the second data byte is ignored. If the message does not take any data bytes, both data bytes are ignored. The contents of the message can be changed by using one of the `setMessage` methods. Parameters: `command` - the MIDI command represented by this message `channel` - the channel associated with the message `data1` - the first data byte `data2` - the second data byte Throws: `InvalidMidiDataException` - if the command value, channel value or all data bytes belonging to the message do not specify a valid MIDI message Since: 1.7 See Also: `setMessage(int)`, `setMessage(int, int, int)` , `setMessage(int, int, int, int)` , `getCommand()`, `getChannel()`, `getData1()`, `getData2()`

### constructor:ShortMessage(byte[]) [NONE]
- #### ShortMessage
      protected ShortMessage(byte[] data)
Constructs a new `ShortMessage`. Parameters: `data` - an array of bytes containing the complete message. The message data may be changed using the `setMessage` method. See Also: `setMessage(int)`

### method:setMessage(int) [NONE]
- #### setMessage
      public void setMessage(int status)
                      throws InvalidMidiDataException
Sets the parameters for a MIDI message that takes no data bytes. Parameters: `status` - the MIDI status byte Throws: `InvalidMidiDataException` - if `status` does not specify a valid MIDI status byte for a message that requires no data bytes See Also: `setMessage(int, int, int)` , `setMessage(int, int, int, int)`

### method:setMessage(int, int, int) [NONE]
- #### setMessage
      public void setMessage(int status,
                             int data1,
                             int data2)
                      throws InvalidMidiDataException
Sets the parameters for a MIDI message that takes one or two data bytes. If the message takes only one data byte, the second data byte is ignored; if the message does not take any data bytes, both data bytes are ignored. Parameters: `status` - the MIDI status byte `data1` - the first data byte `data2` - the second data byte Throws: `InvalidMidiDataException` - if the the status byte, or all data bytes belonging to the message, do not specify a valid MIDI message See Also: `setMessage(int, int, int, int)` , `setMessage(int)`

### method:setMessage(int, int, int, int) [NONE]
- #### setMessage
      public void setMessage(int command,
                             int channel,
                             int data1,
                             int data2)
                      throws InvalidMidiDataException
Sets the short message parameters for a channel message which takes up to two data bytes. If the message only takes one data byte, the second data byte is ignored; if the message does not take any data bytes, both data bytes are ignored. Parameters: `command` - the MIDI command represented by this message `channel` - the channel associated with the message `data1` - the first data byte `data2` - the second data byte Throws: `InvalidMidiDataException` - if the status byte or all data bytes belonging to the message, do not specify a valid MIDI message See Also: `setMessage(int, int, int)` , `setMessage(int)`, `getCommand()`, `getChannel()`, `getData1()`, `getData2()`

### method:getChannel() [NONE]
- #### getChannel
      public int getChannel()
Obtains the MIDI channel associated with this event. This method assumes that the event is a MIDI channel message; if not, the return value will not be meaningful. Returns: MIDI channel associated with the message See Also: `setMessage(int, int, int, int)`

### method:getCommand() [NONE]
- #### getCommand
      public int getCommand()
Obtains the MIDI command associated with this event. This method assumes that the event is a MIDI channel message; if not, the return value will not be meaningful. Returns: the MIDI command associated with this event See Also: `setMessage(int, int, int, int)`

### method:getData1() [NONE]
- #### getData1
      public int getData1()
Obtains the first data byte in the message. Returns: the value of the `data1` field See Also: `setMessage(int, int, int)`

### method:getData2() [NONE]
- #### getData2
      public int getData2()
Obtains the second data byte in the message. Returns: the value of the `data2` field See Also: `setMessage(int, int, int)`

### method:clone() [NONE]
- #### clone
      public Object clone()
Creates a new object of the same class and with the same contents as this object. Specified by: `clone` in class `MidiMessage` Returns: a clone of this instance See Also: `Cloneable`

### method:getDataLength(int) [NONE]
- #### getDataLength
      protected final int getDataLength(int status)
                                 throws InvalidMidiDataException
Retrieves the number of data bytes associated with a particular status byte value. Parameters: `status` - status byte value, which must represent a short MIDI message Returns: data length in bytes (0, 1, or 2) Throws: `InvalidMidiDataException` - if the `status` argument does not represent the status byte for any short message