Estoy usando Web Audio API + algoritmo Karplus-Strong extendido para generar sonido de cuerda pulsada y reproducirlo.
El problema al que me enfrento es que a veces hay un sonido extraño de crujido/golpe cuando toco algunos acordes en particular, vea el ejemplo aquí https://demiurg.app/player/MetallicA/Fade-To-Black/?id=117 . Las primeras 20 o más medidas generan tal problema.
Al principio pensé que se trataba de un efecto de compensación de CC, así que apliqué un filtro de paso alto, pero nada cambió realmente.
Mientras buscaba en Internet, encontré algunos ejemplos que se parecen a mi caso, hay un montón de videos de YouTube sobre cómo cambiar el tamaño del búfer (rendimiento del tamaño cuántico) para diferentes DAW para superar ese efecto, pero no hay forma de hacerlo en Web Audio Cajero automático API. El valor predeterminado en todos los navegadores debe ser 128.
Curiosamente, cuando aplico una ligera distorsión a través de una curva cúbica, el efecto crepitante se mitiga, pero no desaparece.
¿Alguien más ha encontrado este problema con el sonido generado? ¿Cómo se puede resolver o mitigar esto sin distorsión de la señal?
Entonces, aparentemente esta es la forma en que funciona el audio web, no puede manejar transiciones suaves al reproducir sonido, lo que resulta en tales clics o crujidos.
Este enlace, este y este me ayudaron a llegar a la conclusión de que se necesita un sobre ADSR personalizado. Cuando apliqué tal envolvente para aumentar gradualmente pero muy rápido la amplitud del sonido al principio y disminuirla rápidamente al final, los clics desaparecieron.