¿Cuál es el búfer de audio más pequeño que se necesita para producir un sonido de tono sin distinciones con la API de WaveOUT?

¿La API de WaveOut tiene alguna limitación interna del tamaño de la pieza actual del búfer jugado? Quiero decir que si proporciono un búfer muy pequeño, afecta de alguna manera el sonido que se reproduce en los altavoces. Estoy experimentando un ruido muy extraño cuando estoy generando y reproduciendo la onda sinusal con un búfer pequeño. Algo como un pico, o "BUMP".

La historia completa:

Hice un programa que puede generar la señal de sonido Sinus en tiempo real. Los parámetros variables son Frecuencia y Volumen. El requisito del proyecto era tener una latencia máxima de 50 ms. Por lo tanto, el programa debe ser capaz de producir señales Sinus con frecuencia ajustable manualmente de señal de audio en tiempo real.

Utilicé la API de Windows WaveOut, C # y P / invoke para acceder a la API.

Todo funciona bien cuando el búfer de sonido es 1000 ms grande. Si minimizo el búfer a 50 ms según el requisito de latencia, para ciertas frecuencias estoy experimentando al final de cada búfer, un ruido o "BUMP". No entiendo si el sonido generado tiene un formato incorrecto (lo verifiqué y no lo está) o si algo sucede con el chip de audio, o algún retraso en la inicialización y la reproducción.

Cuando guardo el audio producido en el archivo .wav, todo es perfecto.

Esto significa que debe haber algún error en mi código o el subsistema de audio tiene una limitación para los fragmentos de búfer que se le envían.

Para aquellos que no saben, WaveOut debe inicializarse por primera vez y luego debe estar preparado con encabezados de audio para cada búfer que contengan la cantidad de bytes que se deben reproducir y el puntero a una memoria que contenga el audio que necesita ser jugador

ACTUALIZAR

El ruido ocurre con las siguientes combinaciones 44100 SamplingRate, 16 Bits, 2 canales, 50 ms de búfer y la señal de audio Sinus generada de 201Hz, 202Hz, 203Hz, 204Hz, 205Hz ... 219Hz, 220Hz, 240 Hz, está bien

¿Por qué esta diferencia de 20, no lo sé.

Respuestas a la pregunta(1)

Su respuesta a la pregunta