WAV (+AIFF) Support

:w00t:

Hi Florian,

also im Prinzip brauchst Du Dich vom Fileanfang über ein paar Pointer nur bis zum subchunk "id3 " (4 Zeichen) hinbewegen - ein paar File-Seek-Übungen. :smiley: Dann fängt der ID3 Stream an wie in einem MP3 File - mit der Kennung ID3. Das war schon das Lesen der ID3 Tags aus WAV Files.

Siehe unbedingt hier in meinem Beispiel in diesem Forum.

Weiters gibt es noch die (alten) WAV-Tags (sub-chunk INFO) - siehe Links unten.

Würde es so machen:

Beim Lesen:

  • ID3 vorhanden => diese verwenden, sonst die INFO in die ID3 rüberkopieren.
    Beim Schreiben:
  • ID3 schreiben => ID3 auch in INFO rüberkopieren.
    Beim Löschen:
  • ID3 löschen => INFO auch löschen.

Alle anderen subchunks die du nicht verwenden kannst - also alle anderen - einfach 1:1 wieder zurückschreiben - Pointer (+ Längen) müssen nur angepasst werden.

Aufpassen evtl. bei Zeichensätze im INFO - und wichtig: ein subchunk muß eine gerade Anzahl an Bytes haben, dh. hat der ID3-Teil eine ungerade Anzahl an Bytes - einfach eine "00" anhängen (das ist auch dzt. ein Bug in Tag & Rename - und die DJ Software Rane Serato Scratch Live markiert das auch im File-Listing als Fehler!).

Hier ein paar super Links zu WAV:
http://www.sonicspot.com/guide/wavefiles.html#filestructure
http://www.sno.phy.queensu.ca/~phil/exifto...gNames/WAV.html
http://ccrma.stanford.edu/courses/422/projects/WaveFormat/
http://www.kk.iij4u.or.jp/~kondo/wave/mpidata.txt (EXIF-Tool in Perl - evtl. Source ansehen).
http://age.hobba.nl/audio/tag_frame_reference.html (zeigt auch WAV + ID3 Tagfelder-Vergleich)
http://www.sno.phy.queensu.ca/~phil/exiftool/index.html

Ich hoffe damit geholfen zu haben - den Rest erledigt Google :laughing: oder auch ich ganz gerne. Hauptsache man kann es einbauen. AIFF erledigt sich quasi auch gleich mit ... Fürs Testen stehe ich gerne und jederzeit zur Verfügung (bin Programmierer - mit Zeitmangel g).

DANKE + LG,
Robert