Was ist der kleinste Audiopuffer, der benötigt wird, um mit WaveOUT API einen verzerrungsfreien Klang zu erzeugen?

Verfügt die WaveOut-API über eine interne Beschränkung der Größe für den aktuell wiedergegebenen Puffer? Ich meine, wenn ich einen sehr kleinen Puffer zur Verfügung stelle, wirkt sich das irgendwie auf den Ton aus, der über die Lautsprecher abgespielt wird. Ich habe sehr merkwürdige Geräusche, wenn ich die Sinuswelle mit einem kleinen Puffer generiere und spiele. So etwas wie ein Gipfel oder "BUMP".

Die komplette Geschichte:

Ich habe ein Programm erstellt, das Sinus-Tonsignale in Echtzeit erzeugen kann. Die variablen Parameter sind Frequenz und Lautstärke. Die Projektanforderung war eine maximale Latenz von 50 ms. Das Programm muss also in der Lage sein, Sinus-Signale mit manuell einstellbarer Frequenz des Audiosignals in Echtzeit zu erzeugen.

Ich habe Windows WaveOut API, C # und P / invoke verwendet, um auf die API zuzugreifen.

Alles funktioniert gut, wenn der Soundpuffer 1000 ms groß ist. Wenn ich den Puffer auf 50 ms pro Latenzanforderung minimiere, erlebe ich für bestimmte Frequenzen am Ende jedes Puffers ein Rauschen oder "BUMP". Ich verstehe nicht, ob der erzeugte Sound fehlerhaft ist (ich habe es überprüft und nicht) oder ob etwas mit dem Audio-Chip passiert oder ob es zu Verzögerungen beim Initialisieren und Abspielen kommt.

Wenn ich das produzierte Audio in einer .wav-Datei speichere, ist alles perfekt.

Dies bedeutet, dass es sich um einen Fehler in meinem Code handeln muss oder dass das Audio-Subsystem eine Beschränkung der an ihn gesendeten Puffer-Chunks aufweist.

Für diejenigen, die WaveOut nicht kennen, muss WaveOut zum ersten Mal initialisiert und dann mit Audio-Headern für jeden Puffer vorbereitet werden, der die Anzahl der abzuspielenden Bytes und den Zeiger auf einen Speicher enthält, der die erforderlichen Audiodaten enthält Spieler sein.

AKTUALISIEREN

Rauschen tritt bei den folgenden Kombinationen auf: 44100 Abtastrate, 16 Bits, 2 Kanäle, 50 ms Puffer und erzeugtes Sinus-Audiosignal von 201 Hz, 202 Hz, 203 Hz, 204 Hz, 205 Hz ... 219 Hz, 220 Hz, 240 Hz, ist in Ordnung

Warum dieser Unterschied von 20 ist, weiß ich nicht.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage