WAV
Das Dateiformat Wave / WAV ist ein Audiofromat. Es handelt sich um ein Containerformat zur digitalen Speicherung von Audiodaten, das auf dem Resource Interchange File Format / RIFF aufsetzt, das von Microsoft für das Betriebssystem Microsoft Windows definiert wurde.
Enthalten sind meist sogenannte PCM-Rohdaten, welche Abtastwerte des Audiosignals unkomprimiert digital darstellen, oder komprimierte Audiodaten (z. B. ADPCM oder MP3). Im Falle von PCM unterstützt es verschiedene Quantisierungsauflösungen, Abtastraten und Kanalzahlen. Es stellt heute einen De-facto-Standard für die Speicherung von Audiodaten unter Microsoft Windows dar.
Eine Normalisierung von WAV-Dateien kann mit normalize durchgeführt werden.
Die Standard-Audio-CD erwartet, dass jede Tondatei ein Vielfaches von 2'352 Bytes gross ist. Beim Umwandeln einer MP3- in eine WAV-Datei mit lame wird das nicht beachtet und muss mit shntool nachgeholt werden.
Abspielen
Da WAV-Dateien keine besondere Kodierung besitzen, können sie direkt an die Audiokarte weitergeleitet werden.
$ cat file.wav > /dev/dsp
Umwandeln
WAV-Datei in CDR-Datei umwandeln.
$ dd if=file.wav of=file.cdr conv=swab ibs=44 skip=1 obs=2352
WAV-Datei "file.wav" mit lame in MP3-Datei "file.mp3" (128 kbps, high quality) umwandeln.
$ lame -h file.wav
Alle WAV-Dateien im aktuellen Verzeichnis mit LAME in MP3-Datei (128 kbps, high quality) umwandeln.
$ for i in *.wav; do lame -h "$i"; done
WAV-Datei "file.wav" mit LAME in MP3-Datei "file.mp3" (192 kbps, high quality) umwandeln.
$ lame -b 192 -h file.wav
WAV-Datei "file.wav" mit "l3enc" in MP3-Datei "file.mp3" (44100 Hz, 128 kbps, high quality) umwandeln.
$ l3enc file.wav file.mp3 -sr 44100 -br 128000 -hq
Beispiele
WAV-Dateien rekursiv in MP3 wandeln
$ find /wav_base -name '*.wav' \ -printf "lame -h -b 196 %p %h/\`basename %p .wav\`.mp3\n" | sh
Eine andere Variante, einmal mit einem "ls", einmal mit einem "find" - den kann man dann auch rekursiv benutzen.
# Version mit ls ls /home/frank/wav/neu/*.wav | while read wav; do mp3="/home/frank/mp3-neu/$(basename $wav .wav).mp3" lame -b 320 "$wav" "$mp3" && rm "$wav" done # Version mit find find /home/frank/wav/neu -type f -name '*.wav' -print | while read wav; do mp3="$(dirname $wav)/$(basename $wav .wav).mp3" lame -b 320 "$wav" "$mp3" && rm "$wav" done
WAV-Datei "file.wav" an den in der Datei "file.cue" enthaltenen cuebreakpoints auseinanderschneiden. "Dabei entstehen Dateien mit den Namen "split-track01.wav", "split-track02.wav" usw.
$ cuebreakpoints -i cue file.cue > split-points $ shnsplit file.wav < split-points