Die Sachverhalte haben sich ein bisschen verändert. Daher die Titeländerung.
Hier nochmal der alte Text:
______________________
Ich will über die Soundkarte direkt eine Audiodatei ausgeben. Das klappt an sich ganz gut. Dazu benutze ich die direkte WaveForm-API und den Befehl waveOutWrite() (und natürlich dem ganzen Drumrum).
Die Datei wird über einen normalen TFileStream eingelesen und vorerst als ein einziger Datenblock (nur ein Header) direkt an die Soundkarte geschickt (ich weiß, ich muss mir noch ein Block-Management einfallen lassen, vorerst ist mir die Blockgröße aber egal, ich will lernen!).
An sich ist die Ausgabe klar und gleichmäßig, aber am Anfang und Ende (am Ende noch vor dem waveOutUnPrepareHeader() und am Anfang nach dem waveOutWrite() ) ist deutlich ein statisches Knacksen zu hören. Quasi so als ob ein paar Vollbytes (bzw Doppelvollbytes) an die Soundkarte geschickt werden und somit die Tonspur für ein paar Samples voll ausgesteuert ist. Die eigentliche Audiodatei hat da aber noch nicht angefangen, es gehen also eigentlich keine Informationen unter. Die Frage ist nur, wie ich diese beiden Knackser wegkriege. Andere Programme haben's auch hingekriegt, also will ich das erst recht.
btw: Wie kann ich eigentlich aus einer handelsüblichen Wave-Datei (wav) die Dateiformate (Samplerate, bit/sample, Kanäle (Mono/Stereo)) auslesen?
____________________
Und hier meine neuen Infos:
mittlerweile weiß ich, woran's liegt:
Wenn ich die Dateien ins raw digital sound format (*.raw, *.snd) konvertiere, funktioniert's - ohne Knackser. Es liegt also am geringfügig veränderten (44Bytes waren anders) Aufbau von wave-Dateien. Mir würde also eine Formatbeschreibung des Wave-Formates reichen. Sinnvoll wäre natürlich auch, was in den zusätzlichen 44 Bytes steht.
Vermutlich sind in den 44 Bytes die Dateiformatinformationen drin, fragt sich nur noch in welcher Reihenfolge und wie...
_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk.
- Dilbert