Hallo,
ich moechte gerne Toene generieren, kann aber nirgendwo finden, wass diese
komische `ulaw' Kodierung machen soll. Weiss irgendwer, was (welches
Format) ich an meine Soundkarte schicken muss?
Zur Erklaerung:
Ich dachte, man kann einfach die Amplitude einer Schwingung mit 8000 Hz
und 8 bit Breite `sampeln' und das ist es dann. Ein cat /dev/audio zeigte
mir, dass totale Stille den Wert 0x80 (dezimal 128) bedeutet. Fein, dachte
ich, und schrieb dieses Perl Skript:
$PI=3.141592654;
$rate=8000;
for ($i=0; $i<$rate; $i++){
$amp = 128+50*cos(2*$PI*400*$i/$rate); # Sinusfoermiger Ton mit 400 Hz
print pack "c1", int($amp);
}
und bei Aufruf als
raw.pl >/dev/audio
muesste dann eine Sekunde lang ein Ton mit 400 Hz kommen. Tut auch, aber
es ist ein Nebengeraeusch drauf, so eine Art Rauschen. Das geht auch nicht
weg, wenn ich die Sample-Rate auf 44100 Hz erhoehe. Also: wer weiss, wie
es richtig geht?
Danke,
Silvio.