Files
XCEngine/docs/api/XCEngine/Audio/Reverbation/Reverbation.md

2.4 KiB
Raw Blame History

Reverbation

命名空间: XCEngine::Audio

类型: class

头文件: XCEngine/Audio/Reverbation.h

描述: 一个基础混响效果器,内部使用 comb filter 和 all-pass filter 结构生成简化空间残响。

角色概述

Reverbation 是当前 IAudioEffect 派生效果器里最接近传统混响器的一种实现。它采用经典的:

  • 多组 comb filter
  • 多组 all-pass filter

来生成基础 reverberation 尾音。

当前实现行为

1. 会真正改写输入样本

ProcessAudio() 会逐帧读取输入样本,经过 comb/all-pass 处理后,把结果写回 buffer。因此它不是参数占位器而是真正参与样本处理的效果器。

2. 当前按“首通道输入 -> 全通道复制输出”工作

实现中每一帧只取:

float input = buffer[i * channels];

也就是只读第一个通道的输入,再把最终 outSample 写回所有通道。

这意味着当前更像是“单声道混响核心 + 多通道镜像输出”,而不是严格意义上的多声道独立混响。

3. 真实参与处理的参数

以下参数当前会影响处理:

  • roomSize
  • damping
  • wetMix
  • dryMix

其中:

  • SetRoomSize() 会更新 comb filter 的 feedback
  • SetDamping() 会更新 comb filter 的阻尼系数

当前未接线或未充分使用的参数

  • width
  • freeze

这两个 setter 当前会保存值,但在已取证的 ProcessAudio() 路径里没有看到实际消费逻辑。

线程语义

  • 当前实现没有内部加锁。
  • 参数修改和样本处理默认不应视为并发安全。

当前实现限制

  • 只读取首通道输入,再复制到所有输出通道。
  • widthfreeze 当前未参与真实处理。
  • 没有看到该类型的直接单元测试。

相关方法

相关文档