Class ShortMessage
- All Implemented Interfaces:
Cloneable
public class ShortMessage extends MidiMessage
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:
Field Summary
Modifier and Type | Field | Description |
---|---|---|
static final int |
ACTIVE_SENSING |
Status byte for Active Sensing message (0xFE, or 254). |
static final int |
CHANNEL_PRESSURE |
Command value for Channel Pressure (Aftertouch) message (0xD0, or 208). |
static final int |
CONTINUE |
Status byte for Continue message (0xFB, or 251). |
static final int |
CONTROL_CHANGE |
Command value for Control Change message (0xB0, or 176). |
static final int |
END_OF_EXCLUSIVE |
Status byte for End of System Exclusive message (0xF7, or 247). |
static final int |
MIDI_TIME_CODE |
Status byte for MIDI Time Code Quarter Frame message (0xF1, or 241). |
static final int |
NOTE_OFF |
Command value for Note Off message (0x80, or 128). |
static final int |
NOTE_ON |
Command value for Note On message (0x90, or 144). |
static final int |
PITCH_BEND |
Command value for Pitch Bend message (0xE0, or 224). |
static final int |
POLY_PRESSURE |
Command value for Polyphonic Key Pressure (Aftertouch) message (0xA0, or 160). |
static final int |
PROGRAM_CHANGE |
Command value for Program Change message (0xC0, or 192). |
static final int |
SONG_POSITION_POINTER |
Status byte for Song Position Pointer message (0xF2, or 242). |
static final int |
SONG_SELECT |
Status byte for MIDI Song Select message (0xF3, or 243). |
static final int |
START |
Status byte for Start message (0xFA, or 250). |
static final int |
STOP |
Status byte for Stop message (0xFC, or 252). |
static final int |
SYSTEM_RESET |
Status byte for System Reset message (0xFF, or 255). |
static final int |
TIMING_CLOCK |
Status byte for Timing Clock message (0xF8, or 248). |
static final int |
TUNE_REQUEST |
Status byte for Tune Request message (0xF6, or 246). |
Fields declared in class javax.sound.midi.MidiMessage
data, length
Constructor Summary
Modifier | Constructor | Description |
---|---|---|
Constructs a new ShortMessage . |
||
protected |
Constructs a new ShortMessage . |
|
Constructs a new ShortMessage which represents a MIDI message that takes no data bytes. |
||
Constructs a new ShortMessage which represents a MIDI message that takes up to two data bytes. |
||
Constructs a new ShortMessage which represents a channel MIDI message that takes up to two data bytes. |
Method Summary
Modifier and Type | Method | Description |
---|---|---|
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. |
protected final int |
getDataLength |
Retrieves the number of data bytes associated with a particular status byte value. |
void |
setMessage |
Sets the parameters for a MIDI message that takes no data bytes. |
void |
setMessage |
Sets the parameters for a MIDI message that takes one or two data bytes. |
void |
setMessage |
Sets the short message parameters for a channel message which takes up to two data bytes. |
Methods declared in class javax.sound.midi.MidiMessage
getLength, getMessage, getStatus, setMessage
Field Details
MIDI_TIME_CODE
public static final int MIDI_TIME_CODE
- See Also:
SONG_POSITION_POINTER
public static final int SONG_POSITION_POINTER
- See Also:
SONG_SELECT
public static final int SONG_SELECT
- See Also:
TUNE_REQUEST
public static final int TUNE_REQUEST
- See Also:
END_OF_EXCLUSIVE
public static final int END_OF_EXCLUSIVE
- See Also:
TIMING_CLOCK
public static final int TIMING_CLOCK
- See Also:
START
public static final int START
- See Also:
CONTINUE
public static final int CONTINUE
- See Also:
STOP
public static final int STOP
- See Also:
ACTIVE_SENSING
public static final int ACTIVE_SENSING
- See Also:
SYSTEM_RESET
public static final int SYSTEM_RESET
- See Also:
NOTE_OFF
public static final int NOTE_OFF
- See Also:
NOTE_ON
public static final int NOTE_ON
- See Also:
POLY_PRESSURE
public static final int POLY_PRESSURE
- See Also:
CONTROL_CHANGE
public static final int CONTROL_CHANGE
- See Also:
PROGRAM_CHANGE
public static final int PROGRAM_CHANGE
- See Also:
CHANNEL_PRESSURE
public static final int CHANNEL_PRESSURE
- See Also:
PITCH_BEND
public static final int PITCH_BEND
- See Also:
Constructor Details
ShortMessage
public ShortMessage()
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:
ShortMessage
public ShortMessage(int status) throws InvalidMidiDataException
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
- ifstatus
does not specify a valid MIDI status byte for a message that requires no data bytes - Since:
- 1.7
- See Also:
ShortMessage
public ShortMessage(int status, int data1, int data2) throws InvalidMidiDataException
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:
ShortMessage
public ShortMessage(int command, int channel, int data1, int data2) throws InvalidMidiDataException
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:
ShortMessage
protected ShortMessage(byte[] data)
ShortMessage
.- Parameters:
-
data
- an array of bytes containing the complete message. The message data may be changed using thesetMessage
method. - See Also:
Method Details
setMessage
public void setMessage(int status) throws InvalidMidiDataException
- Parameters:
-
status
- the MIDI status byte - Throws:
-
InvalidMidiDataException
- ifstatus
does not specify a valid MIDI status byte for a message that requires no data bytes - See Also:
setMessage
public void setMessage(int status, int data1, int data2) throws InvalidMidiDataException
- 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 - See Also:
setMessage
public void setMessage(int command, int channel, int data1, int data2) throws InvalidMidiDataException
- 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:
getChannel
public int getChannel()
- Returns:
- MIDI channel associated with the message
- See Also:
getCommand
public int getCommand()
- Returns:
- the MIDI command associated with this event
- See Also:
getData1
public int getData1()
- Returns:
- the value of the
data1
field - See Also:
getData2
public int getData2()
- Returns:
- the value of the
data2
field - See Also:
clone
public Object clone()
- Specified by:
-
clone
in classMidiMessage
- Returns:
- a clone of this instance
- See Also:
getDataLength
protected final int getDataLength(int status) throws InvalidMidiDataException
- Parameters:
-
status
- status byte value, which must represent a short MIDI message - Returns:
- data length in bytes (0, 1, or 2)
- Throws:
-
InvalidMidiDataException
- if thestatus
argument does not represent the status byte for any short message
© 1993, 2021, 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/17/docs/api/java.desktop/javax/sound/midi/ShortMessage.html