-
Notifications
You must be signed in to change notification settings - Fork 10
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时间 |