xmcd2make v2.0 Mon Jan 10 20:35:28 EST 2005 Copyright 2001-2005 C R Johnson 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: 1) 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)