xmcd2make v2.0 Mon Jan 10 20:35:28 EST 2005
Copyright 2001-2005 C R Johnson <iamcliff@freeengineer.org> xmcd2make is licensed using the GNU GPL. See the file COPYING for details. THERE IS NO WARRANTY FOR THIS FREE SOFTWARE
Prerequisites
Everyone will need:
Perl 5 with the modules, available from...
GetOpt::Long cpan.org
Data::Dumper cpan.org
LWP::Simple cpan.org
WebService::FreeDB cpan.org
Audio::Gramofile http://sourceforge.net/projects/libgramofile
If you want to encode ogg-vorbis files:
oggenc
http://www.vorbis.com
If you want to make shn files:
Shorten
http://www.etree.org/shnutils/shorten/
shntool
http://www.etree.org/shnutils/shntool/
md5sum
A standard unix tool
If you want to encode mp3 files:
mpgtx
A tool for manipulation of MPEG files, http://mpgtx.sourceforge.net
lameenc
The mp3 encoder, whereever you can find it.
If you want to easily burn an audio CD or archive CD's of shns
shn2make also from ftp://ftp.freeengineer.org/pub/shn2make
Introduction
There are several user tools here:
xmcdsearch
A script which searches the freedb database and downloads .xmcd files
Use it like this:
xmcdsearch -xmcd "pink floyd interstellar overdrive oenone" artist track
Run it with no options for a help message.
findtracks
A script which runs the libgramofile track finding tool.
It is intended to be used interactivly. It works best with bash (or any
other shell that allows easy command line re-editing.) It is much faster way
than using the gramofile curses interface.
xmcd2make
A script which generates a Makefile. Using this makefile, automatic
track splitting, signal processing, ogg/mp3 file encoding, shn making, and song
naming for entire recored albums can be done with single commands,
for example "make ogg".
and a couple of processing utilities.
xmcdsignalproc
xmcdtrackstates
utility scripts performing various gramofile related tasks. Used by the
makefiles created by xmcd2make
History
One day I got tired of typing in song names to the albums I was recording and encoding to ogg.
I knew that alot of the albums I was recording had song listings available via the CD database at freedb.org.
So I took an .xmcd file, and I wrote a perl script to read the xmcd and create ogg files using the output files I got from gramofile (processedxxx.wav's)
There were two problems with this:
- I have to run the whole script over if I change just one source .wav file
2)It only used 1 of my 2 cpu's as script execution is serial and oggenc is not multi-threaded.
Then I thought about how make automates these things. Make rebuilds only targets with changed dependencies and using the -j argument, make backgrounds multiple processes.
I changed my script to output a Makefile and xmcd2make was born.
How to use xmcd2make
+ To record Aretha Franklin's first album, Aretha ( with the Ray Bryant Combo ), and encode it to ogg-vorbis :
Record the album using gramofile or any other wav recorder
Name the resulting 2 wav files "aretha1.wav" and "aretha2.wav".
Use the script xmcdsearch to search the database at freedb.org, find the album listing, and copy the xmcd data to a plain text file in the same directory as the wav files. Name the file "aretha.xmcd".
Run findtracks, and play with the parameters until you are finding the correct 6 tracks per side. Check the tracks files to make sure they are correct and edit the files if necessary.
Run xmcd2make like this:
xmcd2make.pl --filter=cond_median2_filter aretha
A Makefile is created Run the makefile
make
You are done.
Some Targets available in the Makefile output by xmcd2make:
make proc - splits and processes the big wav file
make ogg - creates ogg files
make shn - create shn archive files, and an md5 file.
make - same as make ogg
make procclean - delete all intermediate wav files.
make disc1 - burn an audio CD of the processed wav files
(requires shn2make)
