MetaMessage (Java SE 15 & JDK 15) (original) (raw)
All Implemented Interfaces:
[Cloneable](../../../../java.base/java/lang/Cloneable.html "interface in java.lang")
public class MetaMessage extends MidiMessage
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. (See the discussion in the MidiMessage
class description.) The Standard MIDI Files specification defines various types of meta-events, such as sequence number, lyric, cue point, and set tempo. There are also meta-events for such information as lyrics, copyrights, tempo indications, time and key signatures, markers, etc. For more information, see the Standard MIDI Files 1.0 specification, which is part of the Complete MIDI 1.0 Detailed Specification published by the MIDI Manufacturer's Association (http://www.midi.org).
When data is being transported using MIDI wire protocol, aShortMessage with the status value 0xFF
represents a system reset message. In MIDI files, this same status value denotes aMetaMessage
. The types of meta-message are distinguished from each other by the first byte that follows the status byte 0xFF
. The subsequent bytes are data bytes. As with system exclusive messages, there are an arbitrary number of data bytes, depending on the type ofMetaMessage
.
See Also:
Field Summary
Fields
Modifier and Type | Field | Description |
---|---|---|
static int | META | Status byte for MetaMessage (0xFF, or 255), which is used in MIDI files. |
Constructor Summary
Constructors
Modifier | Constructor | Description |
---|---|---|
MetaMessage() | Constructs a new MetaMessage. | |
protected | MetaMessage(byte[] data) | Constructs a new MetaMessage. |
MetaMessage(int type, byte[] data, int length) | Constructs a new MetaMessage and sets the message parameters. |
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. |
byte[] | getData() | Obtains a copy of the data for the meta message. |
int | getType() | Obtains the type of the MetaMessage. |
void | setMessage(int type, byte[] data, int length) | Sets the message parameters for a MetaMessage. |
Field Details
META
public static final int META
Status byte forMetaMessage
(0xFF, or 255), which is used in MIDI files. It has the same value as ShortMessage.SYSTEM_RESET, which is used in the real-time "MIDI wire" protocol.
See Also:
MidiMessage.getStatus(), Constant Field ValuesConstructor Details
MetaMessage
public MetaMessage()
Constructs a newMetaMessage
. The contents of the message are not set here; use setMessage to set them subsequently.MetaMessage
Constructs a new
MetaMessage
and sets the message parameters. The contents of the message can be changed by using thesetMessage
method.
Parameters:
type
- meta-message type (must be less than 128)
data
- the data bytes in the MIDI message
length
- an amount of bytes in thedata
byte array; it should be non-negative and less than or equal todata.length
Throws:
[InvalidMidiDataException](InvalidMidiDataException.html "class in javax.sound.midi")
- if the parameter values do not specify a valid MIDI meta message
Since:
1.7
See Also:
setMessage(int, byte[], int), getType(), getData()MetaMessage
protected MetaMessage(byte[] data)
Constructs a newMetaMessage
.
Parameters:
data
- an array of bytes containing the complete message. The message data may be changed using thesetMessage
method.
See Also:
setMessage(int, byte[], int)Method Details
setMessage
Sets the message parameters for a
MetaMessage
. Since only one status byte value,0xFF
, is allowed for meta-messages, it does not need to be specified here. Calls togetStatus return0xFF
for all meta-messages.
Thetype
argument should be a valid value for the byte that follows the status byte in theMetaMessage
. Thedata
argument should contain all the subsequent bytes of theMetaMessage
. In other words, the byte that specifies the type ofMetaMessage
is not considered a data byte.
Parameters:
type
- meta-message type (must be less than 128)
data
- the data bytes in the MIDI message
length
- the number of bytes in thedata
byte array
Throws:
[InvalidMidiDataException](InvalidMidiDataException.html "class in javax.sound.midi")
- if the parameter values do not specify a valid MIDI meta messagegetType
public int getType()
Obtains the type of theMetaMessage
.
Returns:
an integer representing theMetaMessage
typegetData
public byte[] getData()
Obtains a copy of the data for the meta message. The returned array of bytes does not include the status byte or the message length data. The length of the data for the meta message is the length of the array. Note that the length of the entire message includes the status byte and the meta message type byte, and therefore may be longer than the returned array.
Returns:
array containing the meta message data
See Also:
MidiMessage.getLength()clone
Creates a new object of the same class and with the same contents as this object.
Specified by:
[clone](MidiMessage.html#clone%28%29)
in class[MidiMessage](MidiMessage.html "class in javax.sound.midi")
Returns:
a clone of this instance
See Also:
Cloneable