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
FieldsModifier 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 intMIDI时间码帧消息的状态字节(0xF1,或241)。static final intNote Off消息的命令值(0x80,或128)。static final intNote 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 intMIDI歌曲选择消息的状态字节(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
ConstructorsModifierConstructorDescription构造一个新的ShortMessage。protectedShortMessage(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命令。intgetData1()获取消息中的第一个数据字节。intgetData2()获取消息中的第二个数据字节。protected final intgetDataLength(int status) 检索与特定状态字节值关联的数据字节数。voidsetMessage(int status) 设置不带数据字节的MIDI消息的参数。voidsetMessage(int status, int data1, int data2) 设置一个或两个数据字节的MIDI消息的参数。voidsetMessage(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参数未表示任何短消息的状态字节
-