Estoy escribiendo un sintetizador de software y necesidad de generar formas de onda de banda limitada, alias libres en tiempo real de muestreo a 44,1 kHz. Por ahora, la forma de onda del diente de sierra funcionaría, ya que puedo generar una onda de pulso al mezclar dos dientes de sierra, uno invertido y otro con fase.banda limitada generación de forma de onda
Hasta ahora he tratado los siguientes enfoques:
precomputación de muestras de forma de onda de un ciclo perfectamente a diferentes frecuencias de banda limitada Bandlimit en el arranque, a continuación, la reproducción de las dos más cercanas mezclados entre sí. Funciona bien, supongo, pero no se siente muy elegante. Se necesitan muchas muestras o se escucharán las "brechas" entre ellas. La interpolación y la mezcla también consumen mucha CPU.
La integración de un tren de pulsos de CC compensada sinc para obtener una onda de diente de sierra. Suena genial, excepto que la ola se aleja de cero si no obtienes la compensación de CC exactamente correcta (lo cual me pareció realmente complicado). El problema de CC se puede reducir agregando un poco de fuga al integrador, pero luego pierde las bajas frecuencias.
Entonces, mi pregunta es: ¿Cuál es la forma habitual de hacerlo? Cualquier solución sugerida debe ser eficiente en términos de CPU, ya que debe hacerse en tiempo real, para muchas voces a la vez.
Me doy cuenta de que esto fue preguntado hace aproximadamente un año, pero para cualquier persona que se tropiece con esto, le recomendaré buscar el amigable y altamente competente [DSP y Plug-in Development] (http://www.kvraudio.com/ foro/viewforum.php? f = 33) foro en [KVR] (http://www.kvraudio.com/) –