Inzwischen hab ich es so gemacht wie der Vorschlag von Bernhard und nicht mehr im Wave-Format sondern mit einem Stream. Und ich hab mir mal den Funktionsgenerator angeguckt, und ziemlich genau so hört es sich bei mir auch an. Wenn man zum Beispiel die Frequenz 19kHz einstellt, dann hört man zwar ganz leise diesen Ton, aber viel lauter einen ca. 3333Hz Ton. Wenn man das Programm 2mal startet und einmal laut 19kHz und einmal leise 3333Hz einstellt kann man das gut nachvollziehen.
Leider ist dieser Effekt bei großen Frequenzen ziemlich dominant. Schaltet man zb die Frequenzen ab 10kHz in 1kHz-Schritten hoch, so hört es sich an als würde der Ton tiefer werden statt höher.
Das könnte auch an deinen Lautsprechern liegen
Wenn ich den Funktionsgenerator ausführe höre ich bspw. bis 14 kHz noch einen Ton, aber ab 15 kHz nichts mehr. (Ob das an meinen Lautsprechern oder an mir liegt, bleibt natürlich offen.)
Wenn ich mit den Signalgenerator auf meinem Handy 15 kHz abspiele höre ich zwar etwas - aber das sind nie und nimmer 15 kHz. So ab 4,5 kHz kommt da ein zweiter (tieferer) Ton rein und darüber wird der tiefe Ton immer höher lauter.
Deine angehängte wav Datei ist in der Tat komisch. beim ersten Mal anhören kommt da so eine Art "Anlaufvorgang" bis am Ende der ton erreicht wird, beim nochmaligen Anspielen kommt aber sofort der Endton. Der ist aber nie im Leben 20000 Hz. (Wobei ich die 20000 Hz wahrscheinlich eh nicht höre)
Ich könnte mir im übrigen auch vorstellen dass die Soundkarte den Ausgang mit einer konstanten Samplingrate betreibt, alle anderen müssten dann umgesetzt werden. Falls das so ist wäre es am schlauesten direkt die finale Samplingrate zu wählen, denn so eine Umsetzung ist immer verluftbehaftet.