APIdia Launch Partner
Top Description Fields Constructors Methods
javax.sound.midi

public Class ShortMessage

extends MidiMessage
Class Inheritance
Known Direct Subclasses
com.sun.media.sound.FastShortMessage, com.sun.media.sound.SoftShortMessage

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.

Authors
David Rivas, Kara Kytle, Florian Bomers
See Also
SysexMessage, MetaMessage

Field Summary

Modifier and TypeField and Description
public static final int
ACTIVE_SENSING

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

public static final int
CHANNEL_PRESSURE

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

public static final int
CONTINUE

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

public static final int
CONTROL_CHANGE

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

public static final int
END_OF_EXCLUSIVE

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

public static final int
MIDI_TIME_CODE

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

public static final int
NOTE_OFF

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

public static final int
NOTE_ON

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

public static final int
PITCH_BEND

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

public static final int
POLY_PRESSURE

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

public static final int
PROGRAM_CHANGE

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

public static final int
SONG_POSITION_POINTER

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

public static final int
SONG_SELECT

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

public static final int
START

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

public static final int
STOP

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

public static final int
SYSTEM_RESET

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

public static final int
TIMING_CLOCK

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

public static final int
TUNE_REQUEST

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

Inherited from javax.sound.midi.MidiMessage:
datalength

Constructor Summary

AccessConstructor and Description
public
ShortMessage()

Constructs a new ShortMessage.

public
ShortMessage(int
the MIDI status byte
status
)

Constructs a new ShortMessage which represents a MIDI message that takes no data bytes.

public
ShortMessage(int
the MIDI status byte
status
,
int
the first data byte
data1
,
int
the second data byte
data2
)

Constructs a new ShortMessage which represents a MIDI message that takes up to two data bytes.

public
ShortMessage(int
the MIDI command represented by this message
command
,
int
the channel associated with the message
channel
,
int
the first data byte
data1
,
int
the second data byte
data2
)

Constructs a new ShortMessage which represents a channel MIDI message that takes up to two data bytes.

protected
ShortMessage(byte[]
an array of bytes containing the complete message. The message data may be changed using the setMessage method.
data
)

Constructs a new ShortMessage.

Method Summary

Modifier and TypeMethod and Description
public Object

Returns:

a clone of this instance
clone
()

Implements abstract javax.sound.midi.MidiMessage.clone.

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

public int

Returns:

MIDI channel associated with the message
getChannel
()

Obtains the MIDI channel associated with this event.

public int

Returns:

the MIDI command associated with this event
getCommand
()

Obtains the MIDI command associated with this event.

public int

Returns:

the value of the data1 field
getData1
()

Obtains the first data byte in the message.

public int

Returns:

the value of the data2 field
getData2
()

Obtains the second data byte in the message.

protected final int

Returns:

data length in bytes (0, 1, or 2)
getDataLength
(int
status byte value, which must represent a short MIDI message
status
)

Retrieves the number of data bytes associated with a particular status byte value.

public void
setMessage(int
the MIDI status byte
status
)

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

public void
setMessage(int
the MIDI status byte
status
,
int
the first data byte
data1
,
int
the second data byte
data2
)

Sets the parameters for a MIDI message that takes one or two data bytes.

public void
setMessage(int
the MIDI command represented by this message
command
,
int
the channel associated with the message
channel
,
int
the first data byte
data1
,
int
the second data byte
data2
)

Sets the short message parameters for a channel message which takes up to two data bytes.

Inherited from javax.sound.midi.MidiMessage:
getLengthgetMessagegetStatussetMessage

Field Detail

ACTIVE_SENSINGback to summary
public static final int ACTIVE_SENSING

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

See Also
MidiMessage#getStatus
CHANNEL_PRESSUREback to summary
public static final int CHANNEL_PRESSURE

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

CONTINUEback to summary
public static final int CONTINUE

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

See Also
MidiMessage#getStatus
CONTROL_CHANGEback to summary
public static final int CONTROL_CHANGE

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

END_OF_EXCLUSIVEback to summary
public static final int END_OF_EXCLUSIVE

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

See Also
MidiMessage#getStatus
MIDI_TIME_CODEback to summary
public static final int MIDI_TIME_CODE

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

See Also
MidiMessage#getStatus
NOTE_OFFback to summary
public static final int NOTE_OFF

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

NOTE_ONback to summary
public static final int NOTE_ON

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

PITCH_BENDback to summary
public static final int PITCH_BEND

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

POLY_PRESSUREback to summary
public static final int POLY_PRESSURE

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

PROGRAM_CHANGEback to summary
public static final int PROGRAM_CHANGE

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

SONG_POSITION_POINTERback to summary
public static final int SONG_POSITION_POINTER

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

See Also
MidiMessage#getStatus
SONG_SELECTback to summary
public static final int SONG_SELECT

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

See Also
MidiMessage#getStatus
STARTback to summary
public static final int START

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

See Also
MidiMessage#getStatus
STOPback to summary
public static final int STOP

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

See Also
MidiMessage#getStatus
SYSTEM_RESETback to summary
public static final int SYSTEM_RESET

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

See Also
MidiMessage#getStatus
TIMING_CLOCKback to summary
public static final int TIMING_CLOCK

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

See Also
MidiMessage#getStatus
TUNE_REQUESTback to summary
public static final int TUNE_REQUEST

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

See Also
MidiMessage#getStatus

Constructor Detail

ShortMessageback to summary
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
ShortMessageback to summary
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:int

the MIDI status byte

Exceptions
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), getStatus()
ShortMessageback to summary
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:int

the MIDI status byte

data1:int

the first data byte

data2:int

the second data byte

Exceptions
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), getStatus(), getData1(), getData2()
ShortMessageback to summary
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:int

the MIDI command represented by this message

channel:int

the channel associated with the message

data1:int

the first data byte

data2:int

the second data byte

Exceptions
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()
ShortMessageback to summary
protected ShortMessage(byte[] data)

Constructs a new ShortMessage.

Parameters
data:byte[]

an array of bytes containing the complete message. The message data may be changed using the setMessage method.

See Also
setMessage

Method Detail

cloneback to summary
public Object clone()

Implements abstract javax.sound.midi.MidiMessage.clone.

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

Returns:Object

a clone of this instance

Annotations
@Override
getChannelback to summary
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:int

MIDI channel associated with the message

See Also
setMessage(int, int, int, int)
getCommandback to summary
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:int

the MIDI command associated with this event

See Also
setMessage(int, int, int, int)
getData1back to summary
public int getData1()

Obtains the first data byte in the message.

Returns:int

the value of the data1 field

See Also
setMessage(int, int, int)
getData2back to summary
public int getData2()

Obtains the second data byte in the message.

Returns:int

the value of the data2 field

See Also
setMessage(int, int, int)
getDataLengthback to summary
protected final int getDataLength(int status) throws InvalidMidiDataException

Retrieves the number of data bytes associated with a particular status byte value.

Parameters
status:int

status byte value, which must represent a short MIDI message

Returns:int

data length in bytes (0, 1, or 2)

Exceptions
InvalidMidiDataException:
if the status argument does not represent the status byte for any short message
setMessageback to summary
public void setMessage(int status) throws InvalidMidiDataException

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

Parameters
status:int

the MIDI status byte

Exceptions
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)
setMessageback to summary
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:int

the MIDI status byte

data1:int

the first data byte

data2:int

the second data byte

Exceptions
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, int), setMessage(int)
setMessageback to summary
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:int

the MIDI command represented by this message

channel:int

the channel associated with the message

data1:int

the first data byte

data2:int

the second data byte

Exceptions
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