java.lang.Object
javax.sound.midi.MidiMessage
javax.sound.midi.ShortMessage
- 所有已实现的接口:
-
Cloneable
ShortMessage
包含一个MIDI消息,其状态字节后最多有两个数据字节。满足此条件的MIDI消息类型包括通道音频、通道模式、系统通用和系统实时--换句话说,除了系统专用和元事件之外的所有内容。 ShortMessage
类提供了获取和设置MIDI消息内容的方法。
ShortMessage
的许多方法具有整数参数,您可以通过这些参数指定MIDI状态或数据字节。如果您知道数值,可以直接表示它。对于系统通用和系统实时消息,您通常可以使用ShortMessage
的相应字段,例如SYSTEM_RESET
。对于通道消息,状态字节的高四位由命令值指定,低四位由MIDI通道号指定。要转换以Java有符号字节形式的传入MIDI数据字节,您可以使用MidiMessage类描述中给出的转换代码。
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
活动感应消息的状态字节(0xFE,或254)。static final int
通道压力(Aftertouch)消息的命令值(0xD0,或208)。static final int
继续消息的状态字节(0xFB,或251)。static final int
控制变化消息的命令值(0xB0,或176)。static final int
系统专用消息结束的状态字节(0xF7,或247)。static final int
MIDI时间码帧消息的状态字节(0xF1,或241)。static final int
Note Off消息的命令值(0x80,或128)。static final int
Note On消息的命令值(0x90,或144)。static final int
弯音消息的命令值(0xE0,或224)。static final int
多音键压力(Aftertouch)消息的命令值(0xA0,或160)。static final int
程序更改消息的命令值(0xC0,或192)。static final int
歌曲位置指针消息的状态字节(0xF2,或242)。static final int
MIDI歌曲选择消息的状态字节(0xF3,或243)。static final int
开始消息的状态字节(0xFA,或250)。static final int
停止消息的状态字节(0xFC,或252)。static final int
系统复位消息的状态字节(0xFF,或255)。static final int
时间同步消息的状态字节(0xF8,或248)。static final int
调音请求消息的状态字节(0xF6,或246)。Fields declared in class javax.sound.midi.MidiMessage
data, length
-
Constructor Summary
ModifierConstructorDescription构造一个新的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消息。 -
Method Summary
Modifier and TypeMethodDescriptionclone()
创建一个与此对象相同类和相同内容的新对象。int
获取与此事件关联的MIDI通道。int
获取与此事件关联的MIDI命令。int
getData1()
获取消息中的第一个数据字节。int
getData2()
获取消息中的第二个数据字节。protected final int
getDataLength
(int status) 检索与特定状态字节值关联的数据字节数。void
setMessage
(int status) 设置不带数据字节的MIDI消息的参数。void
setMessage
(int status, int data1, int data2) 设置一个或两个数据字节的MIDI消息的参数。void
setMessage
(int command, int channel, int data1, int data2) 设置最多包含两个数据字节的通道消息的短消息参数。Methods declared in class javax.sound.midi.MidiMessage
getLength, getMessage, getStatus, setMessage
-
Field Details
-
MIDI_TIME_CODE
public static final int MIDI_TIME_CODEMIDI时间码帧消息的状态字节(0xF1,或241)。- 参见:
-
SONG_POSITION_POINTER
public static final int SONG_POSITION_POINTER歌曲位置指针消息的状态字节(0xF2,或242)。- 参见:
-
SONG_SELECT
public static final int SONG_SELECTMIDI歌曲选择消息的状态字节(0xF3,或243)。- 参见:
-
TUNE_REQUEST
public static final int TUNE_REQUEST调音请求消息的状态字节(0xF6,或246)。- 参见:
-
END_OF_EXCLUSIVE
public static final int END_OF_EXCLUSIVE系统专用消息结束的状态字节(0xF7,或247)。- 参见:
-
TIMING_CLOCK
public static final int TIMING_CLOCK时间同步消息的状态字节(0xF8,或248)。- 参见:
-
START
public static final int START开始消息的状态字节(0xFA,或250)。- 参见:
-
CONTINUE
public static final int CONTINUE继续消息的状态字节(0xFB,或251)。- 参见:
-
STOP
public static final int STOP停止消息的状态字节(0xFC,或252)。- 参见:
-
ACTIVE_SENSING
public static final int ACTIVE_SENSING活动感应消息的状态字节(0xFE,或254)。- 参见:
-
SYSTEM_RESET
public static final int SYSTEM_RESET系统复位消息的状态字节(0xFF,或255)。- 参见:
-
NOTE_OFF
public static final int NOTE_OFFNote Off消息的命令值(0x80,或128)。- 参见:
-
NOTE_ON
public static final int NOTE_ONNote On消息的命令值(0x90,或144)。- 参见:
-
POLY_PRESSURE
public static final int POLY_PRESSURE多音键压力(Aftertouch)消息的命令值(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通道压力(Aftertouch)消息的命令值(0xD0,或208)。- 参见:
-
PITCH_BEND
public static final int PITCH_BEND弯音消息的命令值(0xE0,或224)。- 参见:
-
-
Constructor Details
-
ShortMessage
public ShortMessage()构造一个新的ShortMessage
。新消息的内容保证指定为有效的MIDI消息。随后,您可以使用setMessage
方法设置消息的内容之一。- 参见:
-
ShortMessage
构造一个新的ShortMessage
,表示不带数据字节的MIDI消息。可以通过其中一个setMessage
方法来更改消息的内容。- 参数:
-
status
- MIDI状态字节 - 抛出:
-
InvalidMidiDataException
- 如果status
未指定不需要数据字节的消息的有效MIDI状态字节 - 自版本:
- 1.7
- 参见:
-
ShortMessage
构造一个新的ShortMessage
,表示最多包含两个数据字节的MIDI消息。如果消息只包含一个数据字节,则忽略第二个数据字节。如果消息不包含任何数据字节,则两个数据字节都将被忽略。可以通过其中一个setMessage
方法来更改消息的内容。- 参数:
-
status
- MIDI状态字节 -
data1
- 第一个数据字节 -
data2
- 第二个数据字节 - 抛出:
-
InvalidMidiDataException
- 如果状态字节或消息的所有数据字节未指定有效的MIDI消息 - 自版本:
- 1.7
- 参见:
-
ShortMessage
构造一个新的ShortMessage
,表示最多包含两个数据字节的通道MIDI消息。如果消息只包含一个数据字节,则忽略第二个数据字节。如果消息不包含任何数据字节,则两个数据字节都将被忽略。可以通过其中一个setMessage
方法来更改消息的内容。- 参数:
-
command
- 此消息表示的MIDI命令 -
channel
- 与消息关联的通道 -
data1
- 第一个数据字节 -
data2
- 第二个数据字节 - 抛出:
-
InvalidMidiDataException
- 如果命令值、通道值或消息的所有数据字节未指定有效的MIDI消息 - 自版本:
- 1.7
- 参见:
-
ShortMessage
protected ShortMessage(byte[] data) 构造一个新的ShortMessage
。- 参数:
-
data
- 包含完整消息的字节数组。可以使用setMessage
方法更改消息数据。 - 参见:
-
-
Method Details
-
setMessage
设置不带数据字节的MIDI消息的参数。- 参数:
-
status
- MIDI状态字节 - 抛出:
-
InvalidMidiDataException
- 如果status
未指定需要数据字节的消息的有效MIDI状态字节 - 参见:
-
setMessage
设置一个或两个数据字节的MIDI消息的参数。如果消息只包含一个数据字节,则忽略第二个数据字节;如果消息不包含任何数据字节,则两个数据字节都将被忽略。- 参数:
-
status
- MIDI状态字节 -
data1
- 第一个数据字节 -
data2
- 第二个数据字节 - 抛出:
-
InvalidMidiDataException
- 如果状态字节或消息的所有数据字节未指定有效的MIDI消息 - 参见:
-
setMessage
public void setMessage(int command, int channel, int data1, int data2) throws InvalidMidiDataException 设置最多包含两个数据字节的通道消息的短消息参数。如果消息只包含一个数据字节,则忽略第二个数据字节;如果消息不包含任何数据字节,则两个数据字节都将被忽略。- 参数:
-
command
- 此消息表示的MIDI命令 -
channel
- 与消息关联的通道 -
data1
- 第一个数据字节 -
data2
- 第二个数据字节 - 抛出:
-
InvalidMidiDataException
- 如果状态字节或消息的所有数据字节未指定有效的MIDI消息 - 参见:
-
getChannel
public int getChannel()获取与此事件关联的MIDI通道。此方法假定事件是MIDI通道消息;如果不是,则返回值将没有意义。- 返回:
- 与消息关联的MIDI通道
- 参见:
-
getCommand
public int getCommand()获取与此事件关联的MIDI命令。此方法假定事件是MIDI通道消息;如果不是,则返回值将没有意义。- 返回:
- 与此事件关联的MIDI命令
- 参见:
-
getData1
public int getData1()获取消息中的第一个数据字节。- 返回:
-
data1
字段的值 - 参见:
-
getData2
public int getData2()获取消息中的第二个数据字节。- 返回:
-
data2
字段的值 - 参见:
-
clone
创建一个与此对象相同类和内容的新对象。- 指定者:
-
clone
在类MidiMessage
中 - 返回:
- 此实例的克隆
- 参见:
-
getDataLength
检索与特定状态字节值关联的数据字节数量。- 参数:
-
status
- 状态字节值,必须表示短MIDI消息 - 返回:
- 字节中的数据长度(0、1或2)
- 抛出:
-
InvalidMidiDataException
- 如果status
参数未表示任何短消息的状态字节
-