Przeglądaj źródła

Fix ladder filter resonance when input turns off

dds
PaulStoffregen 3 lat temu
rodzic
commit
f902f747d4
1 zmienionych plików z 13 dodań i 2 usunięć
  1. +13
    -2
      filter_ladder.cpp

+ 13
- 2
filter_ladder.cpp Wyświetl plik

@@ -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++) {

Ładowanie…
Anuluj
Zapisz