@hackage wavconvert0.1.1

Command-line tool for converting audio files and filling in ID3 tags

This program batch-converts .wav files to .ogg format while filling in the ID3 tags for the resulting .ogg files using directory structure information.

=== Installation ===

$ runhaskell Setup.lhs configure $ runhaskell Setup.lhs build $ runhaskell Setup.lhs install

Tested with GHC 6.8.2.

You will need the "oggenc" program (part of the vorbis-tools package) to run wavconvert. It would be easy to change the source code so that the program name to use (and appropriate flags) are specified on the command line or (preferably) through a configure option. Send me a patch if you do!

=== Usage ===

./wavconvert [OPTION...] root-directory

(where options are described below).

wavconvert assumes that files in the root directory are named with the following convention:

root-directory/ArtistName/AlbumName/TrackNum - SongTitle.wav

For example, if root-directory is "/home/tjc/Music", an example is:

/home/tjc/Music/Morrissey/Vauxhall and I/10 - The Lazy Sunbathers.wav

It looks for .wav files underneath the root directory and encodes any such files it finds in .ogg, relying on the naming conventions described above. The output file name is determined by substituting the ".wav" extension in the original filename with ".ogg".

It does not delete the original .wav file unless you specify the --remove-files option.

If the .ogg file that would have been created already exists, it skips that file and prints a warning.

==== Command-line options ====

-v / --verbose prints out external commands as they are executed. -d / --dry-run prints out commands without executing them. -r / --remove-files removes .WAV files after all files are encoded.

=== To do ===

  • Take the name of the program and relevant flags as configure or command-line options, rather than hard-wiring in oggenc or its flags.
  • Don't assume a particular file naming convention, but rather take a format string as an argument and interpret the directory structure based on that string.

Feel free to send me patches if you decide to implement these changes or anything else!

-- Tim Chevalier chevalier@alum.wellesley.edu August 2008