Explorar el Código

Fix ladder filter resonance when input turns off

dds
PaulStoffregen hace 3 años
padre
commit
f902f747d4
Se han modificado 1 ficheros con 13 adiciones y 2 borrados
  1. +13
    -2
      filter_ladder.cpp

+ 13
- 2
filter_ladder.cpp Ver fichero

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

Cargando…
Cancelar
Guardar