public class

ShortMessage

extends MidiMessage
java.lang.Object
   ↳ javax.sound.midi.MidiMessage
     ↳ javax.sound.midi.ShortMessage
Known Direct Subclasses

Class Overview

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.

Summary

Constants
int ACTIVE_SENSING Status byte for Active Sensing message (0xFE, or 254).
int CHANNEL_PRESSURE Command value for Channel Pressure (Aftertouch) message (0xD0, or 208)
int CONTINUE Status byte for Continue message (0xFB, or 251).
int CONTROL_CHANGE Command value for Control Change message (0xB0, or 176)
int END_OF_EXCLUSIVE Status byte for End of System Exclusive message (0xF7, or 247).
int MIDI_TIME_CODE Status byte for MIDI Time Code Quarter Frame message (0xF1, or 241).
int NOTE_OFF Command value for Note Off message (0x80, or 128)
int NOTE_ON Command value for Note On message (0x90, or 144)
int PITCH_BEND Command value for Pitch Bend message (0xE0, or 224)
int POLY_PRESSURE Command value for Polyphonic Key Pressure (Aftertouch) message (0xA0, or 160)
int PROGRAM_CHANGE Command value for Program Change message (0xC0, or 192)
int SONG_POSITION_POINTER Status byte for Song Position Pointer message (0xF2, or 242).
int SONG_SELECT Status byte for MIDI Song Select message (0xF3, or 243).
int START Status byte for Start message (0xFA, or 250).
int STOP Status byte for Stop message (0xFC, or 252).
int SYSTEM_RESET Status byte for System Reset message (0xFF, or 255).
int TIMING_CLOCK Status byte for Timing Clock messagem (0xF8, or 248).
int TUNE_REQUEST Status byte for Tune Request message (0xF6, or 246).
[Expand]
Inherited Fields
From class javax.sound.midi.MidiMessage
Public Constructors
ShortMessage()
Constructs a new ShortMessage.
Protected Constructors
ShortMessage(byte[] data)
Constructs a new ShortMessage.
Public Methods
Object clone()
Creates a new object of the same class and with the same contents as this object.
int getChannel()
Obtains the MIDI channel associated with this event.
int getCommand()
Obtains the MIDI command associated with this event.
int getData1()
Obtains the first data byte in the message.
int getData2()
Obtains the second data byte in the message.
void setMessage(int command, int channel, int data1, int data2)
Sets the short message parameters for a channel message which takes up to two data bytes.
void setMessage(int status, int data1, int data2)
Sets the parameters for a MIDI message that takes one or two data bytes.
void setMessage(int status)
Sets the parameters for a MIDI message that takes no data bytes.
Protected Methods
final int getDataLength(int status)
Retrieves the number of data bytes associated with a particular status byte value.
[Expand]
Inherited Methods
From class javax.sound.midi.MidiMessage
From class java.lang.Object

Constants

public static final int ACTIVE_SENSING

Status byte for Active Sensing message (0xFE, or 254).

See Also
Constant Value: 254 (0x000000fe)

public static final int CHANNEL_PRESSURE

Command value for Channel Pressure (Aftertouch) message (0xD0, or 208)

Constant Value: 208 (0x000000d0)

public static final int CONTINUE

Status byte for Continue message (0xFB, or 251).

See Also
Constant Value: 251 (0x000000fb)

public static final int CONTROL_CHANGE

Command value for Control Change message (0xB0, or 176)

Constant Value: 176 (0x000000b0)

public static final int END_OF_EXCLUSIVE

Status byte for End of System Exclusive message (0xF7, or 247).

See Also
Constant Value: 247 (0x000000f7)

public static final int MIDI_TIME_CODE

Status byte for MIDI Time Code Quarter Frame message (0xF1, or 241).

See Also
Constant Value: 241 (0x000000f1)

public static final int NOTE_OFF

Command value for Note Off message (0x80, or 128)

Constant Value: 128 (0x00000080)

public static final int NOTE_ON

Command value for Note On message (0x90, or 144)

Constant Value: 144 (0x00000090)

public static final int PITCH_BEND

Command value for Pitch Bend message (0xE0, or 224)

Constant Value: 224 (0x000000e0)

public static final int POLY_PRESSURE

Command value for Polyphonic Key Pressure (Aftertouch) message (0xA0, or 160)

Constant Value: 160 (0x000000a0)

public static final int PROGRAM_CHANGE

Command value for Program Change message (0xC0, or 192)

Constant Value: 192 (0x000000c0)

public static final int SONG_POSITION_POINTER

Status byte for Song Position Pointer message (0xF2, or 242).

See Also
Constant Value: 242 (0x000000f2)

public static final int SONG_SELECT

Status byte for MIDI Song Select message (0xF3, or 243).

See Also
Constant Value: 243 (0x000000f3)

public static final int START

Status byte for Start message (0xFA, or 250).

See Also
Constant Value: 250 (0x000000fa)

public static final int STOP

Status byte for Stop message (0xFC, or 252).

See Also
Constant Value: 252 (0x000000fc)

public static final int SYSTEM_RESET

Status byte for System Reset message (0xFF, or 255).

See Also
Constant Value: 255 (0x000000ff)

public static final int TIMING_CLOCK

Status byte for Timing Clock messagem (0xF8, or 248).

See Also
Constant Value: 248 (0x000000f8)

public static final int TUNE_REQUEST

Status byte for Tune Request message (0xF6, or 246).

See Also
Constant Value: 246 (0x000000f6)

Public Constructors

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.

Protected Constructors

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.

Public Methods

public Object clone ()

Creates a new object of the same class and with the same contents as this object.

Returns
  • a clone of this instance.

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.

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.

public int getData1 ()

Obtains the first data byte in the message.

Returns
  • the value of the data1 field

public int getData2 ()

Obtains the second data byte in the message.

Returns
  • the value of the data2 field

public void setMessage (int command, int channel, int data1, int data2)

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
if the status byte or all data bytes belonging to the message, do not specify a valid MIDI message
InvalidMidiDataException

public void setMessage (int status, int data1, int data2)

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
if the the status byte, or all data bytes belonging to the message, do not specify a valid MIDI message.
InvalidMidiDataException

public void setMessage (int status)

Sets the parameters for a MIDI message that takes no data bytes.

Parameters
status the MIDI status byte
Throws
if status does not specify a valid MIDI status byte for a message that requires no data bytes.
InvalidMidiDataException

Protected Methods

protected final int getDataLength (int status)

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
if the status argument does not represent the status byte for any short message
InvalidMidiDataException