模块  java.desktop
软件包  javax.sound.midi

Class ShortMessage

  • 实现的所有接口
    Cloneable

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

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

    另请参见:
    SysexMessageMetaMessage
    • 字段汇总

      字段  
      变量和类型 字段 描述
      static int ACTIVE_SENSING
      Active Sensing消息的状态字节(0xFE或254)。
      static int CHANNEL_PRESSURE
      通道压力(触后)消息的命令值(0xD0或208)。
      static int CONTINUE
      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
      Note Off消息的命令值(0x80或128)。
      static int NOTE_ON
      Note On消息的命令值(0x90或144)。
      static int PITCH_BEND
      Pitch Bend消息的命令值(0xE0或224)。
      static int POLY_PRESSURE
      Polyphonic Key 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
      调谐请求消息的状态字节(0xF6或246)。
    • 构造方法摘要

      构造方法  
      变量 构造器 描述
        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消息。
    • 字段详细信息

      • NOTE_OFF

        public static final int NOTE_OFF
        Note Off消息的命令值(0x80或128)。
        另请参见:
        常数字段值
      • NOTE_ON

        public static final int NOTE_ON
        Note On消息的命令值(0x90或144)。
        另请参见:
        常数字段值
      • POLY_PRESSURE

        public static final int POLY_PRESSURE
        Polyphonic Key Pressure(触后)消息的命令值(0xA0或160)。
        另请参见:
        常数字段值
      • CONTROL_CHANGE

        public static final int CONTROL_CHANGE
        控制变更消息的命令值(0xB0或176)。
        另请参见:
        常数字段值
      • PROGRAM_CHANGE

        public static final int PROGRAM_CHANGE
        程序变更消息的命令值(0xC0或192)。
        另请参见:
        常数字段值
      • CHANNEL_PRESSURE

        public static final int CHANNEL_PRESSURE
        通道压力(触后)消息的命令值(0xD0或208)。
        另请参见:
        常数字段值
      • PITCH_BEND

        public static final int PITCH_BEND
        Pitch Bend消息的命令值(0xE0或224)。
        另请参见:
        常数字段值
    • 构造方法详细信息

      • ShortMessage

        public ShortMessage()
        构造一个新的ShortMessage 保证新消息的内容指定有效的MIDI消息。 随后,您可以使用setMessage方法之一设置消息的内容。
        另请参见:
        setMessage(int)
      • 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