- java.lang.Object
-
- javax.sound.midi.MidiMessage
-
- javax.sound.midi.ShortMessage
-
- 实现的所有接口
-
Cloneable
public class ShortMessage extends MidiMessage
AShortMessage包含一条MIDI消息,其状态字节后最多有两个数据字节。 满足此标准的MIDI消息类型是频道语音,频道模式,系统通用和系统实时 - 换句话说,除了系统独占和元事件之外的所有内容。ShortMessage类提供了获取和设置MIDI消息内容的方法。许多
ShortMessage方法都有整数参数,您可以通过这些参数指定MIDI状态或数据字节。 如果您知道数值,则可以直接表达。 对于系统通用和系统实时消息,您可以经常使用ShortMessage的相应字段,例如SYSTEM_RESET。 对于通道消息,状态字节的高4位由命令值指定,低4位由MIDI通道号指定。 要转换在Java的符号字节的形式传入的MIDI数据字节,则可以使用conversion code在给定的MidiMessage类的描述。- 另请参见:
-
SysexMessage,MetaMessage
-
-
字段汇总
字段 变量和类型 字段 描述 static intACTIVE_SENSINGActive Sensing消息的状态字节(0xFE或254)。static intCHANNEL_PRESSURE通道压力(触后)消息的命令值(0xD0或208)。static intCONTINUEContinue消息的状态字节(0xFB或251)。static intCONTROL_CHANGE控制变更消息的命令值(0xB0或176)。static intEND_OF_EXCLUSIVE系统独占消息的状态字节(0xF7或247)。static intMIDI_TIME_CODEMIDI时间码四分之一帧消息的状态字节(0xF1或241)。static intNOTE_OFFNote Off消息的命令值(0x80或128)。static intNOTE_ONNote On消息的命令值(0x90或144)。static intPITCH_BENDPitch Bend消息的命令值(0xE0或224)。static intPOLY_PRESSUREPolyphonic Key Pressure(触后)消息的命令值(0xA0或160)。static intPROGRAM_CHANGE程序变更消息的命令值(0xC0或192)。static intSONG_POSITION_POINTER乐曲位置指针消息的状态字节(0xF2或242)。static intSONG_SELECTMIDI乐曲选择信息的状态字节(0xF3或243)。static intSTART开始消息的状态字节(0xFA或250)。static intSTOP停止消息的状态字节(0xFC或252)。static intSYSTEM_RESET系统复位消息的状态字节(0xFF或255)。static intTIMING_CLOCK定时时钟消息的状态字节(0xF8或248)。static intTUNE_REQUEST调谐请求消息的状态字节(0xF6或246)。-
声明的属性在类 javax.sound.midi.MidiMessage
data, length
-
-
构造方法摘要
构造方法 变量 构造器 描述 ShortMessage()构造一个新的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消息。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 Objectclone()创建与此对象具有相同类并具有相同内容的新对象。intgetChannel()获得与此事件关联的MIDI通道。intgetCommand()获得与此事件关联的MIDI命令。intgetData1()获取消息中的第一个数据字节。intgetData2()获取消息中的第二个数据字节。protected intgetDataLength(int status)检索与特定状态字节值关联的数据字节数。voidsetMessage(int status)设置不带数据字节的MIDI消息的参数。voidsetMessage(int status, int data1, int data2)设置需要一个或两个数据字节的MIDI消息的参数。voidsetMessage(int command, int channel, int data1, int data2)设置最多需要两个数据字节的通道消息的短消息参数。-
声明方法的类 javax.sound.midi.MidiMessage
getLength, getMessage, getStatus, setMessage
-
-
-
-
字段详细信息
-
MIDI_TIME_CODE
public static final int MIDI_TIME_CODE
MIDI时间码四分之一帧消息的状态字节(0xF1或241)。- 另请参见:
-
MidiMessage.getStatus(), 常数字段值
-
SONG_POSITION_POINTER
public static final int SONG_POSITION_POINTER
乐曲位置指针消息的状态字节(0xF2或242)。- 另请参见:
-
MidiMessage.getStatus(), 常数字段值
-
SONG_SELECT
public static final int SONG_SELECT
MIDI乐曲选择信息的状态字节(0xF3或243)。- 另请参见:
-
MidiMessage.getStatus(), 常数字段值
-
TUNE_REQUEST
public static final int TUNE_REQUEST
调谐请求消息的状态字节(0xF6或246)。- 另请参见:
-
MidiMessage.getStatus(), 常数字段值
-
END_OF_EXCLUSIVE
public static final int END_OF_EXCLUSIVE
系统独占消息的状态字节(0xF7或247)。- 另请参见:
-
MidiMessage.getStatus(), 常数字段值
-
TIMING_CLOCK
public static final int TIMING_CLOCK
定时时钟消息的状态字节(0xF8或248)。- 另请参见:
-
MidiMessage.getStatus(), 常数字段值
-
START
public static final int START
开始消息的状态字节(0xFA或250)。- 另请参见:
-
MidiMessage.getStatus(), 常数字段值
-
CONTINUE
public static final int CONTINUE
Continue消息的状态字节(0xFB或251)。- 另请参见:
-
MidiMessage.getStatus(), 常数字段值
-
STOP
public static final int STOP
停止消息的状态字节(0xFC或252)。- 另请参见:
-
MidiMessage.getStatus(), 常数字段值
-
ACTIVE_SENSING
public static final int ACTIVE_SENSING
Active Sensing消息的状态字节(0xFE或254)。- 另请参见:
-
MidiMessage.getStatus(), 常数字段值
-
SYSTEM_RESET
public static final int SYSTEM_RESET
系统复位消息的状态字节(0xFF或255)。- 另请参见:
-
MidiMessage.getStatus(), 常数字段值
-
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 status) throws InvalidMidiDataException构造一个新的ShortMessage,它表示不带数据字节的MIDI消息。 可以使用setMessage方法之一更改消息的内容。- 参数
-
status- MIDI状态字节 - 异常
-
InvalidMidiDataException- 如果status没有为不需要数据字节的消息指定有效的MIDI状态字节 - 从以下版本开始:
- 1.7
- 另请参见:
-
setMessage(int),setMessage(int, int, int),setMessage(int, int, int, int),MidiMessage.getStatus()
-
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) throws InvalidMidiDataException设置不带数据字节的MIDI消息的参数。- 参数
-
status- MIDI状态字节 - 异常
-
InvalidMidiDataException- 如果status没有为不需要数据字节的消息指定有效的MIDI状态字节 - 另请参见:
-
setMessage(int, int, int),setMessage(int, int, int, 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:
-
clone类MidiMessage - 结果
- 这个实例的克隆
- 另请参见:
-
Cloneable
-
getDataLength
protected final int getDataLength(int status) throws InvalidMidiDataException检索与特定状态字节值关联的数据字节数。- 参数
-
status- 状态字节值,必须表示短MIDI消息 - 结果
- 数据长度,以字节为单位(0,1或2)
- 异常
-
InvalidMidiDataException- if thestatusargument does not represent the status byte for any short message
-
-