Class MetaMessage
java.lang.Object
javax.sound.midi.MidiMessage
javax.sound.midi.MetaMessage
- All Implemented Interfaces:
Cloneable
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, a
ShortMessage
with the status value 0xFF
represents a system
reset message. In MIDI files, this same status value denotes a
MetaMessage
. 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 of
MetaMessage
.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Status byte forMetaMessage
(0xFF, or 255), which is used in MIDI files.Fields declared in class MidiMessage
data, length
-
Constructor Summary
ConstructorsModifierConstructorDescriptionConstructs a newMetaMessage
.protected
MetaMessage
(byte[] data) Constructs a newMetaMessage
.MetaMessage
(int type, byte[] data, int length) Constructs a newMetaMessage
and sets the message parameters. -
Method Summary
Modifier and TypeMethodDescriptionclone()
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 theMetaMessage
.void
setMessage
(int type, byte[] data, int length) Sets the message parameters for aMetaMessage
.Methods declared in class MidiMessage
getLength, getMessage, getStatus, setMessage
Modifier and TypeMethodDescriptionint
Obtains the total length of the MIDI message in bytes.byte[]
Obtains the MIDI message data.int
Obtains the status byte for the MIDI message.protected void
setMessage
(byte[] data, int length) Sets the data for the MIDI message.Methods declared in class Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Modifier and TypeMethodDescriptionboolean
Indicates whether some other object is "equal to" this one.protected void
finalize()
Deprecated, for removal: This API element is subject to removal in a future version.Finalization is deprecated and subject to removal in a future release.final Class
<?> getClass()
Returns the runtime class of thisObject
.int
hashCode()
Returns a hash code value for this object.final void
notify()
Wakes up a single thread that is waiting on this object's monitor.final void
Wakes up all threads that are waiting on this object's monitor.toString()
Returns a string representation of the object.final void
wait()
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.final void
wait
(long timeoutMillis) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.final void
wait
(long timeoutMillis, int nanos) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
-
Field Details
-
META
public static final int METAStatus byte forMetaMessage
(0xFF, or 255), which is used in MIDI files. It has the same value asShortMessage.SYSTEM_RESET
, which is used in the real-time "MIDI wire" protocol.- See Also:
-
-
Constructor Details
-
MetaMessage
public MetaMessage()Constructs a newMetaMessage
. The contents of the message are not set here; usesetMessage
to set them subsequently. -
MetaMessage
Constructs a newMetaMessage
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 messagelength
- an amount of bytes in thedata
byte array; it should be non-negative and less than or equal todata.length
- Throws:
InvalidMidiDataException
- if the parameter values do not specify a valid MIDI meta message- Since:
- 1.7
- See Also:
-
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:
-
-
Method Details
-
setMessage
Sets the message parameters for aMetaMessage
. 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.The
type
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 messagelength
- the number of bytes in thedata
byte array- Throws:
InvalidMidiDataException
- if the parameter values do not specify a valid MIDI meta message
-
getType
public int getType()Obtains the type of theMetaMessage
.- Returns:
- an integer representing the
MetaMessage
type
-
getData
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:
-
clone
Creates a new object of the same class and with the same contents as this object.- Specified by:
clone
in classMidiMessage
- Returns:
- a clone of this instance
- See Also:
-