Module  java.desktop
软件包  javax.sound.midi

Class ShortMessage

  • All Implemented Interfaces:
    Cloneable


    public class ShortMessage
    extends MidiMessage
    A ShortMessage包含一个MIDI消息,其状态字节后面最多有两个数据字节。 符合这一标准的MIDI消息的类型是信道语音,信道模式,系统常用和系统实时 - 换句话说,除了系统独占和元事件之外的所有内容。 ShortMessage课程提供了获取和设置MIDI消息内容的方法。

    许多ShortMessage方法具有整数参数,您可以通过该参数指定MIDI状态或数据字节。 如果你知道数值,你可以直接表达。 对于系统通用和系统实时信息,可以经常使用ShortMessage相应的字段,如SYSTEM_RESET 对于通道消息,状态字节的高4位由命令值指定,低4位由MIDI通道号指定。 要转换在Java的符号字节的形式传入的MIDI数据字节,则可以使用conversion code在给定MidiMessage类的描述。

    另请参见:
    SysexMessageMetaMessage
    • Field Summary

      Fields  
      Modifier and Type Field 描述
      static int ACTIVE_SENSING
      Active Sensing消息的状态字节(0xFE或254)。
      static int CHANNEL_PRESSURE
      通道压力(触发)消息(0xD0或208)的命令值。
      static int CONTINUE
      继续消息的状态字节(0xFB或251)。
      static int CONTROL_CHANGE
      控制更改消息(0xB0或176)的命令值。
      static int END_OF_EXCLUSIVE
      系统专用消息结束(0xF7或247)的状态字节。
      static int MIDI_TIME_CODE
      MIDI时间码四分之一帧消息(0xF1或241)的状态字节。
      static int NOTE_OFF
      注释消息(0x80或128)的命令值。
      static int NOTE_ON
      注释消息(0x90或144)的命令值。
      static int PITCH_BEND
      Pitch Bend消息的命令值(0xE0或224)。
      static int POLY_PRESSURE
      复音键压力(触发后)消息(0xA0或160)的指令值。
      static int PROGRAM_CHANGE
      程序更改消息的指令值(0xC0或192)。
      static int SONG_POSITION_POINTER
      歌曲位置指针讯息的状态字节(0xF2或242)。
      static int SONG_SELECT
      MIDI乐曲的状态字节选择信息(0xF3或243)。
      static int START
      开始消息的状态字节(0xFA或250)。
      static int STOP
      停止消息的状态字节(0xFC或252)。
      static int SYSTEM_RESET
      系统复位消息的状态字节(0xFF或255)。
      static int TIMING_CLOCK
      定时时钟消息的状态字节(0xF8或248)。
      static int TUNE_REQUEST
      Tune请求消息的状态字节(0xF6或246)。
    • 构造方法摘要

      构造方法  
      Modifier Constructor 描述
        ShortMessage​()
      构造新的 ShortMessage
      protected ShortMessage​(byte[] data)
      构造一个新的 ShortMessage
        ShortMessage​(int status)
      构造一个新的 ShortMessage ,它表示一个没有数据字节的MIDI消息。
        ShortMessage​(int status, int data1, int data2)
      构造一个新的 ShortMessage ,它表示一个最多可容纳两个数据字节的MIDI消息。
        ShortMessage​(int command, int channel, int data1, int data2)
      构造一个新的 ShortMessage ,它表示一个通道MIDI消息,最多可以占用两个数据字节。
    • 构造方法详细信息

      • ShortMessage

        public ShortMessage​()
        构造新的ShortMessage 保证新消息的内容指定有效的MIDI消息。 随后,您可以使用setMessage之一来设置消息的内容。
        另请参见:
        setMessage(int)
      • ShortMessage

        public ShortMessage​(int status,
                            int data1,
                            int data2)
                     throws InvalidMidiDataException
        构造一个新的ShortMessage ,它代表一个最多需要两个数据字节的MIDI消息。 如果消息只有一个数据字节,则忽略第二个数据字节。 如果消息没有任何数据字节,则两个数据字节都将被忽略。 可以使用setMessage方法之一更改消息的内容。
        参数
        status - MIDI状态字节
        data1 - 第一个数据字节
        data2 - 第二个数据字节
        异常
        InvalidMidiDataException - 如果属于该消息的状态字节或所有数据字节未指定有效的MIDI消息
        从以下版本开始:
        1.7
        另请参见:
        setMessage(int)setMessage(int, int, int)setMessage(int, int, int, int)MidiMessage.getStatus()getData1()getData2()
      • ShortMessage

        public ShortMessage​(int command,
                            int channel,
                            int data1,
                            int data2)
                     throws InvalidMidiDataException
        构造一个新的ShortMessage ,它表示一个通道MIDI消息,最多可以包含两个数据字节。 如果消息只有一个数据字节,则忽略第二个数据字节。 如果消息没有任何数据字节,则两个数据字节都将被忽略。 消息的内容可以通过使用setMessage之一来更改。
        参数
        command - 此消息表示的MIDI命令
        channel - 与消息相关联的通道
        data1 - 第一个数据字节
        data2 - 第二个数据字节
        异常
        InvalidMidiDataException - 如果命令值,通道值或属于该消息的所有数据字节未指定有效的MIDI消息
        从以下版本开始:
        1.7
        另请参见:
        setMessage(int)setMessage(int, int, int)setMessage(int, int, int, int)getCommand()getChannel()getData1()getData2()
      • ShortMessage

        protected ShortMessage​(byte[] data)
        构造新的 ShortMessage
        参数
        data - 包含完整消息的字节数组。 可以使用setMessage方法更改消息数据。
        另请参见:
        setMessage(int)
    • 方法详细信息

      • setMessage

        public void setMessage​(int status,
                               int data1,
                               int data2)
                        throws InvalidMidiDataException
        设置一个需要一个或两个数据字节的MIDI消息的参数。 如果消息只有一个数据字节,则忽略第二个数据字节; 如果消息没有任何数据字节,则两个数据字节都将被忽略。
        参数
        status - MIDI状态字节
        data1 - 第一个数据字节
        data2 - 第二个数据字节
        异常
        InvalidMidiDataException - 如果状态字节或属于该消息的所有数据字节未指定有效的MIDI消息
        另请参见:
        setMessage(int, int, int, int)setMessage(int)
      • setMessage

        public void setMessage​(int command,
                               int channel,
                               int data1,
                               int data2)
                        throws InvalidMidiDataException
        设置通道消息的短消息参数,最多可以包含两个数据字节。 如果消息只需要一个数据字节,则忽略第二个数据字节; 如果消息没有任何数据字节,则两个数据字节都将被忽略。
        参数
        command - 由此消息表示的MIDI命令
        channel - 与消息相关联的通道
        data1 - 第一个数据字节
        data2 - 第二个数据字节
        异常
        InvalidMidiDataException - 如果属于该消息的状态字节或所有数据字节,则不指定有效的MIDI消息
        另请参见:
        setMessage(int, int, int)setMessage(int)getCommand()getChannel()getData1()getData2()
      • getChannel

        public int getChannel​()
        获取与此事件关联的MIDI通道。 该方法假设事件是MIDI通道消息; 如果没有,返回值将不会有意义。
        结果
        MIDI通道与消息相关联
        另请参见:
        setMessage(int, int, int, int)
      • getCommand

        public int getCommand​()
        获取与此事件相关联的MIDI命令。 该方法假设事件是MIDI通道消息; 如果没有,返回值将不会有意义。
        结果
        与此事件关联的MIDI命令
        另请参见:
        setMessage(int, int, int, int)
      • getData1

        public int getData1​()
        获取消息中的第一个数据字节。
        结果
        该值为 data1字段
        另请参见:
        setMessage(int, int, int)
      • getData2

        public int getData2​()
        获取消息中的第二个数据字节。
        结果
        该值为 data2字段
        另请参见:
        setMessage(int, int, int)
      • clone

        public Object clone​()
        创建与该对象相同的类和新内容相同的新对象。
        Specified by:
        cloneMidiMessage
        结果
        这个实例的一个克隆
        另请参见:
        Cloneable
      • getDataLength

        protected final int getDataLength​(int status)
                                   throws InvalidMidiDataException
        检索与特定状态字节值相关联的数据字节数。
        参数
        status - 状态字节值,它必须表示一个短的MIDI消息
        结果
        数据长度(以字节为单位)(0,1或2)
        异常
        InvalidMidiDataException - if the status argument does not represent the status byte for any short message