用于频谱显示器的攻击释放包络跟随器

Attack Release Envelope Follower for Spectrum Displayer

我正在使用 C# 设计频谱分析仪,所有音频 input/output 进程都正常工作,但在显示频谱时,我希望谐波根据启动和释放时间衰减 in/out我已经分配的(在 BlueCat 的 FreqAnalyst 频谱分析仪中执行类似攻击和释放参数的操作)。 musicdsp.com上的post我翻了一遍,没法实现,我估计也是没看懂。任何帮助将不胜感激。

当处理频率时,缓冲区填充过程比实时采样花费更多时间,因为 FFT(快速傅立叶变换)以块为单位进行计算。

因此,如果有人想在频域中修改信号,请不要忘记考虑 FFT 大小。

musicdsp.org版本攻击和释放系数:

attack_coef = exp(log(0.01)/( attack_in_ms * samplerate * 0.001));
release_coef = exp(log(0.01)/( release_in_ms * samplerate * 0.001));

我的攻击和释放系数版本:

attack_coef = exp(log(0.01) * fftSize /( attack_in_ms * samplerate * 0.001));
release_coef = exp(log(0.01) * fftSize /( release_in_ms * samplerate * 0.001));

参见:https://www.musicdsp.org/en/latest/Analysis/136-envelope-follower-with-different-attack-and-release.html#id1