-
Notifications
You must be signed in to change notification settings - Fork 7
PacketProtocol.md
Shirasawa edited this page Jan 11, 2022
·
14 revisions
一个包有两部分组成:
- 包ID (int8)
- 包内容
Field Name | Field Type | Notes |
---|---|---|
ID | int32 | 用于记录本次事件 |
包体 | ... | 真正的封包内容 |
设置当前工程状态信息
Field Name | Field Type | Notes |
---|---|---|
BPM | double | |
timeInSeconds | double | |
isPlaying | boolean | |
timeSigNumerator | uint8 | |
timeSigDenominator | uint8 | |
sampleRate | uint16 |
导航栏读取
Field Name | Field Type | Notes |
---|---|---|
类型 | int8 | 类型如下表 |
路径 | string | 表示客户端当前要读取的路径 |
客户端收到回复:
Field Name | Field Type | Notes |
---|---|---|
目录数量 | int32 | |
n个目录... | string[] | |
文件数量 | int32 | |
n个文件... | string[] |
导航栏类型:
- 收藏
- 插件
新增轨道
Field Name | Field Type | Notes |
---|---|---|
轨道名 | string | |
颜色 | string | |
序号 | uint8 | 表示在哪个轨道前面添加轨道 |
VST标识 | string | 如为空则不加载 |
刷新全局信息 (轨道/BPM等)
Field Name | Field Type | Notes |
---|
发送midi信息
Field Name | Field Type | Notes |
---|---|---|
轨道下标 | uint8 | |
byte1 | uint8 | 看JUCE的定义 |
byte2 | uint8 | 看JUCE的定义 |
byte3 | uint8 | 看JUCE的定义 |
与 Serverbound#0 一致
当前工程状态信息
Field Name | Field Type | Notes |
---|---|---|
端序 | int16 | 直接为 1 (short int) |
PPQ | uint16 | |
BPM | double | |
timeInSeconds | double | |
startTime | int64 | |
isPlaying | boolean | |
timeSigNumerator | uint8 | |
timeSigDenominator | uint8 | |
sampleRate | uint16 |
同步轨道信息
Field Name | Field Type | Notes |
---|---|---|
轨道数 | uint8 | 接下来会有这么多个轨道 |
UUID | string | |
名字 | string | |
颜色 | string | |
音量 | uint8 | |
是否静音 | boolean | |
是否独奏 | boolean |
某些轨道的midi数据
Field Name | Field Type | Notes |
---|---|---|
轨道数 | uint8 | 接下来会有这么多个轨道 |
UUID | string | |
MidiOn的数量 | uint16 | 接下来会有这么多个MidiOn |
音符 | uint8 | 1~127 |
力度 | uint8 | 1~127 |
时间 | uint32 | PPQ时间 |
结束时间 | uint32 | 相对于上面那个时间的PPQ时间 |