Hallo zusammen

Ich versuche gerade WAVE-Files (.wav) mit Daten für Rechteckschwingungen zu erstellen.

Dazu schreibe ich einfach in einer Schleife einige Samples lang einen gewissen Wert in eine Datei und nachher der selbe Betrag negativ. => Rechteck-Schwingung
Dies funktioniert problemlos bei Frequenzen dessen Periodendauern ein ganzes Vielfaches der Länge eines Samples ist. (z.B. 4410 Hz bei 44100 Samples pro Sekunde).

Wie kann ich jetzt aber "krumme" Frequenzen produzieren?
Ich kann ja die Periodendauer nur in ganzen Samples ändern.

Bei einer Samplerate von 44100 dauert ein Sample etwa 22,68 Mikrosekunden (=1/44100). Die Periodendauer von 4410 Hz ist 226,8 Mikrosekunden. Denn nächst tieferen Ton unter 4410 Hz kann ich jetzt produzieren in dem ich jede Hälfte der Periode (d.h. der LOW- und der HIGH-Teil) um ein Sample verlängere. Die Periodendauer beträgt dann 226,8 + 2 * 22,68 us = 272,16 us. Die zugehörige Frequenz ist rund 3675 Hz.

Wie kann ich jetzt Schwingungen zwischen 3675 Hz und 4410 Hz produzieren?

Eure Antworten dazu würden mich interessieren. Das Problem müsste doch eigentlich allgemein bekannt sein, tritt es doch bei jeder digitalen Signalsynthese auf.

Besten Dank für jede Antwort!