浏览代码

Fix ladder filter resonance when input turns off

dds
PaulStoffregen 3 年前
父节点
当前提交
f902f747d4
共有 1 个文件被更改,包括 13 次插入2 次删除
  1. +13
    -2
      filter_ladder.cpp

+ 13
- 2
filter_ladder.cpp 查看文件

@@ -68,8 +68,19 @@ void HNMoog::update(void)
blocka = receiveWritable(0);
blockb = receiveReadOnly(1);
if (!blocka) {
if (blockb) release(blockb);
return;
blocka = allocate();
if (!blocka) {
if (blockb) release(blockb);
return;
}
// When no data arrives, we must treat it as if zeros had
// arrived. Because of resonance, we need to keep computing
// output. Perhaps we could examine the filter state here
// and just return without any work when it's below some
// threshold we know produces no more sound/resonance?
for (int i=0; i < AUDIO_BLOCK_SAMPLES; i++) {
blocka->data[i] = 0;
}
}
if (!blockb) FCmodActive = false;
for (int i=0; i < AUDIO_BLOCK_SAMPLES; i++) {

正在加载...
取消
保存