Entwickler-Ecke

Sonstiges (Delphi) - sample einer *.wav bearbeiten und speichern


Pr0g3r - Di 08.03.11 12:24
Titel: sample einer *.wav bearbeiten und speichern
Hi,

Ich hab da mal eine kleine Frage:
Im Rahmen meines Steganografieprogrammes wollte ich auch Dateien in Tondateien, ersteinmal nur waves, verstecken. Dazu wollte ich auf die Samples des Soundes zugreifen, sie dann leicht modifizieren und abzuspeichern.
Ich hab im Internet auch schon eine Menge zu der bass.dll gefunden, aber irgendwie nicht dass was ich suche.
Mir reicht nur ein kleienes Codebeispiel, wie ich die Samples "lesbar" machen kann um sie dann zu bearbeiten.

Ich hoffe, ihr könnt mir helfen

Pr0g3r


FinnO - Di 08.03.11 12:36

Schau mal hier [http://www.delphi-forum.de/topic_quotWellequot+an+Soundkarte+senden_101177.html]. ;-)


Pr0g3r - Di 08.03.11 12:59

Ich hab beim durchgucken und auf den verlinkten Seiten leider nie ein Beispiel gefunden, in welchem die Samples von einem bestimmten Zeitintervall als z.b. Float Zahlen in irgendein Array gespeichert werden.
War ich nur zu dämlich oder gab es dort wirklich nichts dergleichen? :gruebel: :gruebel: :gruebel:


glotzer - Di 08.03.11 13:11

dort ist das hier [http://www.delphi-fundgrube.de/faq13.htm#topic1307] verlinkt, dort steht wie man die daten erzeugt. das musst du halt umdrehen ^^


Pr0g3r - Di 08.03.11 13:24

ahhh Danke.
Ich werde mal ein wenig mit rumexperimentieren ^^


Pr0g3r - Di 15.03.11 13:10

hat funktioniert. Danke ^^


FrEaKY - Mi 11.05.11 23:12

Du brauchst um eine WAVE-Datei zu verändern überhaupt keine DLLs. Das einzige, das du benötigst ist ein TFileStream. Guck ihn dir an.
Und danach guckst du dir an, wie WAVES aufgebaut sind... Ist eigentlich super einfach. Das einzige, das du nachschauen musst, ist der 34-Byte lange Header.
Danach folgen nur noch WORD bzw. BYTE-Werte (je nach Bitbreite der Wavdatei), welche die Amplitude angeben.
Was du noch beachten musst, ist dass diese Werte ein Vorzeichen haben. D.h. bei einer 16-Bit Wav ist das Signal von 0..32767 positiv, und von 32768 bis 65536 negativ.