public class ShortMessage extends MidiMessage
ShortMessage
包含一个MIDI消息,其状态字节后面最多有两个数据字节。
符合这一标准的MIDI消息的类型是信道语音,信道模式,系统常用和系统实时 - 换句话说,除了系统独占和元事件之外的所有内容。
ShortMessage
课程提供了获取和设置MIDI消息内容的方法。
一些ShortMessage
方法具有整数参数,您可以通过该参数指定MIDI状态或数据字节。 如果你知道数值,你可以直接表达。 对于系统常见和系统实时消息,你可以经常使用的相应字段ShortMessage
,如SYSTEM_RESET
。 对于通道消息,状态字节的高4位由命令值指定,低4位由MIDI通道号指定。 要转换在Java的符号字节的形式传入的MIDI数据字节,则可以使用conversion code在给定
类的描述。 MidiMessage
SysexMessage
, MetaMessage
Modifier and Type | Field and Description |
---|---|
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
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)。
|
data, length
Modifier | Constructor and Description |
---|---|
|
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消息,最多可以占用两个数据字节。
|
Modifier and Type | Method and Description |
---|---|
Object |
clone()
创建与该对象相同的类和新内容相同的新对象。
|
int |
getChannel()
获取与此事件关联的MIDI通道。
|
int |
getCommand()
获取与此事件相关联的MIDI命令。
|
int |
getData1()
获取消息中的第一个数据字节。
|
int |
getData2()
获取消息中的第二个数据字节。
|
protected 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)
设置通道消息的短消息参数,最多可以包含两个数据字节。
|
getLength, getMessage, getStatus, setMessage
public static final int MIDI_TIME_CODE
public static final int SONG_POSITION_POINTER
public static final int SONG_SELECT
public static final int TUNE_REQUEST
public static final int END_OF_EXCLUSIVE
public static final int TIMING_CLOCK
public static final int START
public static final int CONTINUE
public static final int STOP
public static final int ACTIVE_SENSING
public static final int SYSTEM_RESET
public static final int NOTE_OFF
public static final int NOTE_ON
public static final int POLY_PRESSURE
public static final int CONTROL_CHANGE
public static final int PROGRAM_CHANGE
public static final int CHANNEL_PRESSURE
public static final int PITCH_BEND
public ShortMessage()
ShortMessage
。
保证新消息的内容指定有效的MIDI消息。
随后,您可以使用setMessage
方法之一设置消息的内容。
setMessage(int)
public ShortMessage(int status) throws InvalidMidiDataException
ShortMessage
,它代表一个没有数据字节的MIDI消息。
消息的内容可以通过使用setMessage
之一来更改。
status
- MIDI状态字节
InvalidMidiDataException
- 如果
status
没有为不需要数据字节的消息指定有效的MIDI状态字节
setMessage(int)
,
setMessage(int, int, int)
,
setMessage(int, int, int, int)
,
MidiMessage.getStatus()
public ShortMessage(int status, int data1, int data2) throws InvalidMidiDataException
ShortMessage
,它代表一个最多可容纳两个数据字节的MIDI消息。
如果消息只有一个数据字节,则忽略第二个数据字节。
如果消息没有任何数据字节,则两个数据字节都将被忽略。
可以使用setMessage
方法之一来更改消息的内容。
status
- MIDI状态字节
data1
- 第一个数据字节
data2
- 第二个数据字节
InvalidMidiDataException
- 如果属于该消息的状态字节或所有数据字节未指定有效的MIDI消息
setMessage(int)
,
setMessage(int, int, int)
,
setMessage(int, int, int, int)
,
MidiMessage.getStatus()
,
getData1()
,
getData2()
public ShortMessage(int command, int channel, int data1, int data2) throws InvalidMidiDataException
ShortMessage
,它代表一个通道MIDI消息,最多可以占用两个数据字节。
如果消息只有一个数据字节,则忽略第二个数据字节。
如果消息没有任何数据字节,则两个数据字节都将被忽略。
可以使用setMessage
方法之一来更改消息的内容。
command
- 此消息表示的MIDI命令
channel
- 与消息相关
channel
的通道
data1
- 第一个数据字节
data2
- 第二个数据字节
InvalidMidiDataException
- 如果命令值,通道值或属于该消息的所有数据字节未指定有效的MIDI消息
setMessage(int)
,
setMessage(int, int, int)
,
setMessage(int, int, int, int)
,
getCommand()
,
getChannel()
,
getData1()
,
getData2()
protected ShortMessage(byte[] data)
ShortMessage
。
data
- 包含完整消息的字节数组。
消息数据可以使用setMessage
方法更改。
setMessage(int)
public void setMessage(int status) throws InvalidMidiDataException
status
- MIDI状态字节
InvalidMidiDataException
- 如果
status
没有为不需要数据字节的消息指定有效的MIDI状态字节。
setMessage(int, int, int)
,
setMessage(int, int, int, int)
public void setMessage(int status, int data1, int data2) throws InvalidMidiDataException
status
- MIDI状态字节
data1
- 第一个数据字节
data2
- 第二个数据字节
InvalidMidiDataException
- 如果状态字节或属于该消息的所有数据字节未指定有效的MIDI消息。
setMessage(int, int, int, int)
,
setMessage(int)
public void setMessage(int command, int channel, int data1, int data2) throws InvalidMidiDataException
command
- 此消息表示的MIDI命令
channel
- 与消息相关
channel
的通道
data1
- 第一个数据字节
data2
- 第二个数据字节
InvalidMidiDataException
- 如果属于该消息的状态字节或所有数据字节,则不指定有效的MIDI消息
setMessage(int, int, int)
,
setMessage(int)
,
getCommand()
,
getChannel()
,
getData1()
,
getData2()
public int getChannel()
setMessage(int, int, int, int)
public int getCommand()
setMessage(int, int, int, int)
public int getData1()
data1
字段的值
setMessage(int, int, int)
public int getData2()
data2
字段
setMessage(int, int, int)
public Object clone()
clone
在类别
MidiMessage
Cloneable
protected final int getDataLength(int status) throws InvalidMidiDataException
status
- 状态字节值,它必须表示一个短的MIDI消息
InvalidMidiDataException
- if the
status
argument does not represent the status byte for any short message