javax.sound.midi

Class MetaMessage

  • All Implemented Interfaces:
    Cloneable

    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, 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:
    MetaEventListener
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      static int META
      Status byte for MetaMessage (0xFF, or 255), which is used in MIDI files.

        

      • Fields inherited from class javax.sound.midi.MidiMessage

        data, length
    • Constructor Summary

      Constructors 
      Modifier Constructor and 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.

        

    • Field Detail

      • META

        public static final int META
        Status byte for MetaMessage (0xFF, or 255), which is used in MIDI files. It has the same value as SYSTEM_RESET, which is used in the real-time "MIDI wire" protocol.
        See Also:
        MidiMessage.getStatus(), Constant Field Values
    • Constructor Detail

      • MetaMessage

        public MetaMessage()
        Constructs a new MetaMessage. The contents of the message are not set here; use setMessage to set them subsequently.
      • MetaMessage

        public MetaMessage(int type,
                   byte[] data,
                   int length)
                    throws InvalidMidiDataException
        Constructs a new MetaMessage and sets the message parameters. The contents of the message can be changed by using the setMessage 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 the data byte array; it should be non-negative and less than or equal to data.length
        Throws:
        InvalidMidiDataException - 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 new MetaMessage.
        Parameters:
        data - an array of bytes containing the complete message. The message data may be changed using the setMessage method.
        See Also:
        setMessage(int, byte[], int)
    • Method Detail

      • setMessage

        public void setMessage(int type,
                      byte[] data,
                      int length)
                        throws InvalidMidiDataException
        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 to getStatus return 0xFF for all meta-messages.

        The type argument should be a valid value for the byte that follows the status byte in the MetaMessage. The data argument should contain all the subsequent bytes of the MetaMessage. In other words, the byte that specifies the type of MetaMessage 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 the data byte array
        Throws:
        InvalidMidiDataException - if the parameter values do not specify a valid MIDI meta message
        InvalidMidiDataException
      • getType

        public int getType()
        Obtains the type of the MetaMessage.
        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:
        MidiMessage.getLength()
      • clone

        public Object clone()
        Creates a new object of the same class and with the same contents as this object.
        Specified by:
        clone in class MidiMessage
        Returns:
        a clone of this instance
        See Also:
        Cloneable

Traduction non disponible

Les API Java ne sont pas encore traduites en français sur l'infobrol. Seule la version anglaise est disponible pour l'instant.

Version en cache

21/11/2024 18:07:29 Cette version de la page est en cache (à la date du 21/11/2024 18:07:29) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.

Document créé le 30/08/2006, dernière modification le 04/03/2020
Source du document imprimé : https://www.gaudry.be/java-api-rf-javax/sound/midi/MetaMessage.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : https://docs.oracle.com, MetaMessage

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut