Ich hab von Directsound nicht so die Ahnung, aber Sinus-Töne zu generieren ist leicht.
Mach dir nen Puffer :
#include
const int pufSize = 2048; //Grösse des Puffers in Einheiten
short puf16[pufSize]; //Puffer für 16-Bit-Töne
char puf8[pufSize]; //Puffer für 8-Bit-Töne
Grösse muss du wohl in bestimmten Grenzen wählen, damit du es in DirectSound oder sonstwo ausgeben kannst. Musste mal die Doko lesen:wink:
Dann erzeugst du Sinus-Töne :
double amplitude = 1.0f;
//„Wie weit die Welle hoch und runtergeht“
//Bereich ist also 0.0f -> 1.0f
//wobei 0.0f = Kein Ton
// und 1.0f = Volle Lautstärke
double frequenz = 500.0f;
//Wie hoch der Ton ist
//Vorsicht! Dieser Wert orientiert sich an der Abspielrate
//d.h. wenn der Sound für 44,1kHz Abspielrate erzeugt wird,
//dann aber mit 32kHz abgespielt wird, hört er sich natürlich ganz
//anders an…
double abspielrate = 44100;
//Das ist die Abspielrate
//Kann man sicher bei der Programmierung beeinflussen
//Mögliche werte sind : 11000, 22000, 32000, 44100, 48000
//Die Sinuskurve muss sich jetzt „frequenz“-Male in einem Bereich von
//„Abspielrate“-Einheiten (im puffer) wiederholen, damit sie sich am
//Ende dann richtig anhört
double interval = (abspielrate / frequenz);
//Wie lang ist eine Schwingung in Einheiten?
for (int i = 0; i