动态处理类模块设计文档
本文档覆盖以下模块:limiter_v1、mdrc_v1。
limiter_v1 — 限制器
概述
3 组限制器模块,每组可独立绑定最多 12 路通道,并设置各自的动态参数(Threshold/Attack/Release)。典型应用:按扬声器分组(高音组/中音组/低音组)进行限制保护。
- 分类:
dynamics - UI 组件:
LimiterTuningDialog.vue(专用对话框) - 通道数:20ch 输入/输出
- UI 结构:3 个 Group 标签页(G1 / G2 / G3)
参数
全局参数:
| 参数 ID | 类型 | 范围 | 默认值 | 说明 |
|---|---|---|---|---|
enable |
bool | — | true |
模块整体启用/禁用 |
每组 g(0/½)的参数(共 3 组,每组 16 个参数):
| 参数 ID | 类型 | 范围 | 默认值 | 说明 |
|---|---|---|---|---|
bypass#g |
bool | — | false |
组 g+1 旁路 |
throld#g |
float | -96 ~ 0 dB,步长 0.1 | 0 | 组 g+1 限制阈值 |
attack#g |
float | 1 ~ 3000 ms,步长 1 | 1 | 组 g+1 起音时间 |
release#g |
float | 1 ~ 5000 ms,步长 1 | 3000 | 组 g+1 释放时间 |
inNum#g |
int | 0 ~ 12,步长 1 | 0 | 组 g+1 绑定通道数 |
groupCh#g_0 ~ groupCh#g_11 |
enum | CH20_NAMES | FLH |
组 g+1 各通道绑定(12 个下拉框) |
CH20_NAMES:FLH FRH FLM FRM FLL FRL FLSE FRSE RLH RRH RLM RRM RLL RRL RLSE RRSE RLS RRS CHM SWF
UI 布局
┌────────────────────────────────────────────────────────┐
│ ⏻ limiter_inst · 限制器 × │
├────────────────────────────────────────────────────────┤
│ [G1] [G2] [G3] │
├────────────────────────────────────────────────────────┤
│ G1 Bypass [关] │
│ G1 Threshold ════════════○ [-96~0] [ 0.0] │
│ G1 Attack ○══════════════ [1~3000] [ 1] │
│ G1 Release ═══════════════○ [1~5000] [3000] │
│ G1 通道数 ○══════════════ [0~12] [ 0] │
│ G1-Ch1 [FLH ▼] G1-Ch2 [FRH ▼] G1-Ch3 [FLM ▼] │
│ G1-Ch4 [FRM ▼] ...(共 12 个下拉) │
└────────────────────────────────────────────────────────┘
WebSocket 协议
// 设置 G1 阈值 -6 dB
{ "type": "set_params", "instanceId": "limiter_0", "paramId": "throld#0", "value": -6.0 }
// 设置 G2 绑定通道数 4
{ "type": "set_params", "instanceId": "limiter_0", "paramId": "inNum#1", "value": 4 }
// 设置 G2 第 1 个绑定通道为 SWF
{ "type": "set_params", "instanceId": "limiter_0", "paramId": "groupCh#1_0", "value": "SWF" }
// 旁路 G3
{ "type": "set_params", "instanceId": "limiter_0", "paramId": "bypass#2", "value": true }
DSP 内存布局
| Offset | Size | 说明 |
|---|---|---|
| 0 | 1 B | enable |
| 1 | 3 B | bypass#0..2(uint8 × 3) |
| 4 | 12 B | throld#0..2(float32 × 3) |
| 16 | 12 B | attack#0..2(float32 × 3) |
| 28 | 12 B | release#0..2(float32 × 3) |
| 40 | 12 B | inNum#0..2(int32 × 3) |
| 52 | 144 B | groupCh#g_c(uint8 × 3组 × 12通道) |
| 196 ~ 255 | 60 B | 保留 |
| 总计 | 256 B | binarySize: 256 |
mdrc_v1 — MDRC 多频段动态处理
概述
三频段动态范围控制模块(Multi-Band DRC),通过两个交叉频率(lowF / highF)将信号分为低频/中频/高频三段,每段独立设置动态参数。常用于整体声场响度均衡和动态保护。
- 分类:
dynamics - UI 组件:
MDRCTuningDialog.vue(专用对话框) - 通道数:20ch 输入/输出
- UI 结构:顶部全局栏 + 3 频段标签页(Low / Mid / HIGH)
参数
全局参数:
| 参数 ID | 类型 | 范围 | 默认值 | 说明 |
|---|---|---|---|---|
enable |
bool | — | true |
模块启用/禁用 |
bypass |
bool | — | false |
交叉网络旁路(Xover Bypass) |
lowF |
float | 20 ~ 20000 Hz,步长 1 | 400 | 低/中频分频点 |
highF |
float | 20 ~ 20000 Hz,步长 1 | 7000 | 中/高频分频点 |
每频段 g(0=Low, 1=Mid, 2=HIGH)参数:
| 参数 ID | 类型 | 范围 | 默认值 | 说明 |
|---|---|---|---|---|
flat#g |
bool | — | false |
平坦模式(跳过压缩) |
throld#g |
float | -96 ~ 0 dB,步长 0.1 | 0 | 压缩阈值 |
gainMax#g |
float | 0 ~ 48 dB,步长 0.1 | 0 | 最大增益补偿 |
attack#g |
float | 1 ~ 10000 ms,步长 1 | 3000 | 起音时间 |
release#g |
float | 1 ~ 10000 ms,步长 1 | 8000 | 释放时间 |
levelOff#g |
float | -96 ~ 0 dB,步长 0.1 | 0 | 电平偏置 |
timeOff#g |
int | 1 ~ 480000 smp,步长 1 | 48000 | 时间偏置(样本数) |
UI 布局
┌──────────────────────────────────────────────────────┐
│ ⏻ mdrc_inst · MDRC 多频段动态 × │
├──────────────────────────────────────────────────────┤
│ [Xover 旁路] 低频截止 ══○══ [20~20k] [400] │
│ 高频截止 ═════○ [20~20k] [7000] │
├──────────────────────────────────────────────────────┤
│ [Low] [Mid] [HIGH] │
├──────────────────────────────────────────────────────┤
│ Low FLAT [关→平坦/压缩] │
│ Threshold (dB) ════════════○ [-96~0] [ 0.0] │
│ GainMax (dB) ○════════════ [0~48] [ 0.0] │
│ Attack (ms) ═══════════════○ [1~10000] [3000] │
│ Release (ms) ══════════════○ [1~10000] [8000] │
│ LevelOff (dB) ════════════○ [-96~0] [ 0.0] │
│ TimeOff (smp) ═══════════════○ [1~480k] [48000] │
└──────────────────────────────────────────────────────┘
WebSocket 协议
// 设置低/中频分频点
{ "type": "set_params", "instanceId": "mdrc_0", "paramId": "lowF", "value": 300 }
{ "type": "set_params", "instanceId": "mdrc_0", "paramId": "highF", "value": 6000 }
// 设置 Low 频段阈值
{ "type": "set_params", "instanceId": "mdrc_0", "paramId": "throld#0", "value": -12.0 }
// 设置 Mid 频段 GainMax
{ "type": "set_params", "instanceId": "mdrc_0", "paramId": "gainMax#1", "value": 6.0 }
// 开启 HIGH 频段 FLAT 模式
{ "type": "set_params", "instanceId": "mdrc_0", "paramId": "flat#2", "value": true }
DSP 内存布局
| Offset | Size | 说明 |
|---|---|---|
| 0 | 1 B | enable |
| 1 | 1 B | bypass(uint8) |
| 2 | 4 B | lowF(float32,Hz) |
| 6 | 4 B | highF(float32,Hz) |
| 10 | 3 B | flat#0..2(uint8 × 3) |
| 13 | 12 B | throld#0..2(float32 × 3) |
| 25 | 12 B | gainMax#0..2(float32 × 3) |
| 37 | 12 B | attack#0..2(float32 × 3) |
| 49 | 12 B | release#0..2(float32 × 3) |
| 61 | 12 B | levelOff#0..2(float32 × 3) |
| 73 | 12 B | timeOff#0..2(int32 × 3) |
| 85 ~ 127 | 43 B | 保留 |
| 总计 | 128 B | binarySize: 128 |