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.
On Tuesday 23 January 2001 15:29, Silvio Neef wrote:
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?
Ich glaube .au geht....
Einfacher: erzeuge den bin�ren Datenstrom und wandele ihn mit Sox in ein normales Soundformat und spiele das dann ab. (Oder spiel es gleich von sox aus ab "-N -e" glaube ich.)
Konrad
lug-dd@mailman.schlittermann.de