This document is an attempt to describe tcdr© version 2.1.
Szilard Torok <kobold2@yahoo.com> November 28, 2002

TCDR manual

Intro

Features

Packages

Installation

Running the first time

Troubleshooting

Notes(hints, tips, caveats)

Reporting bugs

Browse the menu descriptions

Files

Links

License




Intro

tcdr is a menu-driven console front-end for CD recording (the programs - dozens - to which it is a front-end for are listed here).

I bought a CD writer a few weeks ago and was eager to try it with Linux. But - as I primarily use the console -- I got tired of command lines like this pretty soon:

cdrdao copy --source-device 0,0,0 --source-driver generic-mmc --device 0,1,0 \
--driver generic-mmc --buffers 128 --speed 24 --eject -n -v 2 --simulate

Then I made some aliases, but after a day or two I couldn't remember their names :-)). Then I searched the Net for character based wrappers and found some good stuff, but nothing was complete enough.
So I wrote this script - initially for myself, - but I thought maybe it could be useful for others too. I generalized it and added a few features and at this point I am satisfied with it.

That means it is time to release.

tcdr is developed, based on my own configuration, which is, I believe somewhat common: one IDE-ATAPI CD-ROM and one IDE-ATAPI CD-RW with SCSI emulation (Debian).
Note: starting from version 1.2 tcdr supports configurations with only a burner device present. The only feature missing in this case is cdrdao copy (for both audio and data mediums).

The only command line option is 1. Issuing <tcdr 1> will tell tcdr not to display program output windows, which will take away some control, but is good for repetitive task.
Use it with care!

In fact you shouldn't use it at all until you got a fair routine using tcdr. Using <tcdr 1> will disable the startup screen as well.

<Control-C> is not trapped, so you can interrupt the run whenever there is a coaster alert. Test mode writing is also available.

For development and testing I used the packages available in Debian 2.2 - Potato, (except for cdrtools, lame and bladeenc), but you should use the latest versions with no problems.
YMMV.



Top

Features

SW detection / selection

While tcdr primarily concentrates on CD-R burning I found that mastering audio CDs involves much more than that.

From version 1.0 tcdr checks the availability of different audio manipulation programs with the same functionality and uses them in a user definable order.

The parameters of the various sound conversion and extraction programs are alway set to produce RAW or WAV files in 44.1 kHz/16bit/stereo and .mp3 or .ogg files in 192kbit/stereo.

See the supported software and its capabilities here.

In case you are not happy with the default settings read this:

If you want to change one or more default programs, reorder the defining variables inside the appropriate <if ... elif ... else ... fi> construct in the detect_sw() function at the beginning of the tcdr executable.

Example:
say both cdda2wav and cdparanoia are installed, but you want to use cdda2wav for CD ripping all the time. Then you should change this section:

######### Rippers: ##############################################
echo -n cd  ripper: 
if type -p cdparanoia ;then
	CDRIPPER=$(type -p cdparanoia)
elif type -p cdda2wav ;then
	CDRIPPER=$(type -p cdda2wav)
else
	CDRIPPER=none!
fi >/dev/null 2>&1
echo $CDRIPPER

to:

######### Rippers: ##############################################
echo -n cd  ripper: 
if type -p cdparanoia ;then
	CDRIPPER=$(type -p cdda2wav)
elif type -p cdda2wav ;then
	CDRIPPER=$(type -p cdparanoia)
else
	CDRIPPER=none!
fi >/dev/null 2>&1
echo $CDRIPPER

...save, reload tcdr and voila!


You should check the supported software capabilities table, decide which programs you want to use for which operation and make your settings accordingly.

CD-R / CD-RW support

This means mostly the ability of tcdr to detect rewriteable mediums and to perform different blanking operations on them.
See the Miscellaneous menus for detailed descriptions.

Transparently compressed CD (ZISO) support

Browse the Menu descriptions about transparently compressed CD (ZISO) support here:

Directory -> ZISO
Directory -> ZISO -> CDR/CDRW

ISO/ZISO -> CD-R/CD-RW

ISO/ZISO -> Overburn CD-R/CD-RW

and the notes about mkzftree.

RAW/WAV/MP3/OGG/M3U to Audio CD

Browse the Menu descriptions about burning different audio files to CD-R/CD-RWs here:

RAW/CDR (Audio tracks) -> CD-R/CD-R
WAV -> CD-R/CD-RW

MP3 -> CD-R/CD-RW

OGG -> CD-R/CD-RW

M3U -> CD-R/CD-RW

Automatic TOC file generation

is performed by the function mktoc(). mktoc() takes the arguments *.raw or *.wav and generates a TOC file from these files found in /mnt/images/sound/.
TOC files are also extracted from audio mediums when ripping full RAW or WAV images.

Write simulation

is offered every time by tcdr when a burning process is about to be started.
The command executed is always the exact copy of the real burning command except that the option flag -dummy in case of cdrecord and the option flags simulate or --simulate in case of cdrdao are inserted into the original command line.

Top

Packages

Required packages is the software you will need to run tcdr successfully. This will suffice for most of the tasks tcdr performs, like copying audio or data CDs and extracting, mastering and recording ISO-9660 images.
For transparently compressed CDs in Linux get mkzftree.

For manipulating sound files and mastering audio CDs you should consider installing some packages listed in the recommended category. The chances are that some of them are installed on your system already. One of the combinations is to get lsof, SoX, vorbis-tools, mpg123, bladeenc and cdparanoia to get a fully functional setup.

Required packages:

Some recommended packages:

Links to some of the packages are also available from the tcdr Freshmeat project page.



Lynx users: this table will be comprehensible in source view, without wrapping.
Supported software  and  capabilities Mixer CD player CD ripper Mp3 enc. Mp3 dec. Mp3 player Ogg dec. Ogg enc. Ogg player Raw player Raw rec. Raw to Wav conv.Wav player Wav rec. Wav to Raw conv.
amp         Y(3)Y                  
aumix Y                            
bladeenc       Y                      
bplay                         Y    
brec                     Y     Y  
cam Y                            
cdcd   Y                          
cdda2wav     Y                        
cdp   Y                          
cdparanoia     Y                        
freeamp           Y                  
gcd   Y                          
groovycd   Y                          
lame       Y Y Y(5)                 
madplay         Y(3)Y                  
maplay         Y(2)Y                  
mcd   Y                          
mp3blaster Y(4)      Y(4)Y     Y            
mpg123         Y(3)Y                  
mpg321         Y(3)Y                  
nmixer Y                            
ogg123             Y   Y            
oggdec             Y   Y(1)           
oggenc               Y              
rexima Y                            
rawplay                   Y     Y    
rawrec                     Y        
sadp   Y                          
sox                   Y Y Y Y Y Y
splay         Y(2)Y             Y    
toolame       Y(6)                     
tplay                   Y     Y    
wav2cdr                       Y     Y
wavp                         Y    
wavplay                         Y    
wavr                           Y  
wavrec                           Y  
workbone   Y                          
yarec                         Y Y  
(1)  - can play Ogg Vorbis files in conjunction with SoX.
(2)  - can decode MP3 to RAW and WAV formats in conjunction with SoX.
(3)  - can decode MP3 to RAW format in conjunction with SoX.
(4)  - can decode MP3 to WAV from its own user interface and comes with it's own mixer (nmixer) as well.
(5)  - can play MP3 files in conjunction with SoX.
(6)  - encodes WAV to layer II files (extension .mp2). RAW encoding works only in conjunction with SoX.

Of course you should install only what you like/need of the above; tcdr will be quite useful and functional with the required packages installed only.



Top

Installation

Installing a Debian package:

	dpkg -i tcdr_VER.deb


UN-installing a Debian package:

        dpkg -r tcdr


Installing a .tar.gz package:

	tar xzf tcdr-VER.tar.gz
	cd tcdr_VER
	./install.sh

Or just copy the tcdr executable somewhere in your path (/usr/local/bin/ is fine).

Note: install.sh will make backups of older files (~ suffix).



UN-installing a .tar.gz package:

	cd /usr/local/share/doc/tcdr_VER/
	./uninstall.sh

Note that neither dpkg or uninstall.sh will remove anything from the /mnt/images/ directory tree.



RPM-based install / uninstall:

To create a Red Hat RPM file use this command (I never tested the output though):

	alien -r ./tcdr_VER-0.deb
	rpm -i ./tcdr-VER-X.i386.rpm

The second command will install tcdr, and finally:

	rpm -e tcdr-VER-X

uninstalls the package.



Top

Running the first time

Running the first time, (must be run as root) tcdr will check for availability of the required software (this is done by the detect_sw() function) and will also create the following directories (function ckpath()):

/mnt/images/
is the working directory wich will hold the ISO images and other subdirs.
You can change this value (PR[0]) by editing the tcdr executable or tcdrrc.
/mnt/images/cdroot/
is a directory which you can use for CD mastering - its contents are used for generating the ISO image.
You can change this value (PR[5]) by editing the tcdr executable or tcdrrc.
/mnt/images/sound/
will hold all the ripped tracks, wav and mp3 files which are either ripped or about to be written on the CD. Don't use this directory to store tracks and audio images, because its contents could be removed or overwritten without any notification.
You can change this value (PR[4]) by editing the tcdr executable or tcdrrc.

Also, a temporary directory named /mnt/images/Z will be created every time a compressed (ZISO) CD-ROM image is generated to hold the compressed file system, but after the mkisofs run it gets removed.

Then, tcdr will check for the presence of modules for the SCSI emulation and load the missing ones. loop.o will be loaded too. This is accomplished by the startscr() function (thanks to winni@xpilot.org).
Note: insmod: moduleXY: no module by that name found messages may appear at startup if the given module is compiled in the kernel. In this case just ignore them, or else it is a good opportunity for kernel compilation. :-0

The next step is the configuration detection, that is, to get the CD-ROMs and CD writers device names, mount points and SCSI addresses. Detection is based on the /proc file system, fstab and the existence of /dev/sr* files.
This is done by the detect_scsi() function. See the
troubleshooting section if this step fails.

At last tcdr will perform medium detection to get some information about inserted mediums found in the CD-ROM drives.
This is done by the di() function; basically tcdr parses the output of cdrdao disk-info here.

On another note, tcdr calls di() quite frequently from inside the ckspace() function: every time any kind of burning is about to be performed a check is made both on the source (in case it is involved) and target mediums to detect invalid states and defective or missing disks.
Some other checks tcdr performs: data, audio, mixed mode mediums, iso image size.

If everything is ok, tcdr will display a splash screen with the gathered information (function splash()). Check, if everything is correct and hit <Enter> to proceed to the main menu.

Troubleshooting

Make sure you have the latest versions of cdrecord, cdrdao, cdtool, isoinfo and dialog.

If the detection fails - could happen easily - you can always use the supplied rc file. Its place is in /etc/tcdrrc.

If you have only a burner device installed in your system and the detection fails you should edit tcdrrc in the following way:

Fill out the burner (CD-RW) section with proper values as shown in the example:

	CDRW[0]=/dev/scd1			# CD writer device file
	CDRW[1]=LG CD-RW			# vendor and model ID
	CDRW[2]=/mnt/cdrw			# CD writer mount point
	CDRW[3]=0,1,0				# SCSIBUS,TARGET,LUN address

Next, edit the source device (CD-ROM) section to look exactly like this:

	CDROM[0]=${CDRW[0]}
	CDROM[1]=${CDRW[1]}
	CDROM[2]=${CDRW[2]}
	CDROM[3]=${CDRW[3]}

For tcdrrc to be properly sourced, you should uncomment a line at the end of the script (src_tcdrrc), or you can do the same from the Miscellaneous menu. You can also edit the script itself and forget about the config file.



Top

Notes

Tip:

#!/bin/bash
cat $@ | sox -t raw -s -w -c2 -r 44100 -x - -t ossdsp -w -s /dev/dsp

For in-depth documentation UTSL and the bash(1) man pages.



Top

Reporting bugs

If you want to report a bug please don't forget to include (at least some of) the following information:

1. - tcdr version head `type -p tcdr`
2. - Linux kernel version uname -r
3. - distribution and version Debian/Mandrake/RedHat/Slack/SuSE/... + version
4. - number & type of cdrom devicesIDE-ATAPI or SCSI
5. - user root or normal user account
6. - the error itself describe the errors/symptoms/circumstances
7. - any other relevant informationdepending on the type of the error(s)
8. - dump(*) see below:

(*) Dump of the tcdr run may be very useful as well.

This can be accomplished by placing a set -x command at the beginning of the tcdr executable (but after the #!/bin/bash line), saving and then issuing:

	tcdr > tcdr.out 2>&1

The resulting tcdr.out file should be mailed to me as well - this should improve the debugging process dramatically.

If you are security-conscious you may wish to check the file before mailing and/or use gpg(1). My public gnupg key is here.



Top

Menu descriptions

(CD player and Mixer menu points not listed - too much redundancy)

Top

Menu descriptions

Directory to ISO

tcdr will check if /mnt/images/img.iso exists and ask for confirmation to overwrite it. If confirmed, a Volume ID will be asked for and mkisofs will generate an ISO-9660 file image (file name: /mnt/images/img.iso) with Joliet and Rockridge extensions from the directory tree under /mnt/images/cdroot/.
This menu point is implemented in the dir2i() function.

Directory to ISO to CD-R/CD-RW

tcdr will check if /mnt/images/img.iso exists and ask for confirmation to overwrite it. If confirmed, a Volume ID will be asked for and mkisofs will generate an ISO-9660 image (/mnt/images/img.iso) with Joliet and Rockridge extensions from the directory tree under /mnt/images/cdroot/ and cdrecord will write it on the medium in the burner.
This menu point is implemented in the dir2i2cd() function.

Directory to ZISO

tcdr will check if /mnt/images/img.iso exists and ask for confirmation to overwrite it. If confirmed, a Volume ID will be asked for and mkzftree will create a compressed directory tree to /mnt/images/Z/ from the contents of /mnt/images/cdroot/. Next, mkisofs will generate an ISO-9660 file image (/mnt/images/img.iso) with Joliet and Rockridge extensions from the directory tree /mnt/images/cdroot/Z/.
This menu point is implemented in the mkziso() function.

Directory to ZISO to CD-R/CD-RW

tcdr will check if /mnt/images/img.iso exists and ask for confirmation to overwrite it. If confirmed, a Volume ID will be asked for and mkzftree will create a compressed directory tree to /mnt/images/Z/ from the contents of /mnt/images/cdroot/. Next, mkisofs will generate an ISO-9660 image (/mnt/images/img.iso) with Joliet and Rockridge extensions from the directory tree /mnt/images/cdroot/Z/ and cdrecord will write this image on the medium in the burner device.
This menu point is implemented in the cdrec() function.

Top
Data CD to ISO (dd)

dd will dump the contents of the medium in the source cdrom device to /mnt/images/img.iso. If there is only one cdrom device detected dd will use that as a source device.
This menu point is implemented in the cd2i_dd() function.

Data CD to ISO (readcd)

readcd will dump the contents of the medium in the source device to /mnt/images/img.iso. If there is only one cdrom device detected readcd will use that as a source device.
-clone option will make readcd extract sub-channel information and full TOC as well.

This menu point is implemented in the cd2i_rcd() function.

ISO/ZISO to CD-R/CD-RW

cdrecord will record the image found at /mnt/images/img.iso on the medium in the burner device.
This menu point is implemented in the i2dcd() function.

Overburn ISO/ZISO to CD-R/CD-RW

cdrecord will record the image found at /mnt/images/img.iso with the -overburn option flag on the medium in the burner device.
This means about 12-13 extra MBytes.
Please see the
notes about overburning.
This menu point is implemented in the overburn() function.

Data CD to CD-R/CD-RW copy

cdrdao will copy the source medium to the target medium with an intermediate temporary file.
This menu point is implemented in the dcd2cd() function.

Data CD to CD-R/CD-RW copy On-the-fly

cdrdao will copy the source medium to the target medium on the fly. On the fly means there will be no temporary .bin file involved in the process.
This menu point is implemented in the dcd2cdr() function.

Top
Mixed Mode CD to CD-R/CD-RW

CD Extra is a multi session CD with audio and data tracks. Audio tracks are to be burned first to avoid CD players trying to play data track first. Used medium must be blank or appendable and will remain appendable after the operation ends. tcdr will generate a TOC file from the audio files found in /mnt/images/sound/ (RAW or WAV only) and cdrdao will write them in multi mode (first session), next mkisofs will generate an ISO-9660 file from the contents of the /mnt/images/cdroot/ directory and cdrecord will write it to a writable medium in the burner device (second session).
To mount the data track use <mount /dev/whatever /mount-point -tiso9660 -osession=2>.

This menu point is implemented in the mixcd2cd() function.

Compressed Mixed Mode CD to CD-R/CD-RW

CD Extra is a multi session CD with audio and compressed data tracks. Audio tracks are burned first to avoid CD players trying to play data track first. Used medium must be blank or appendable and will remain appendable after the operation ends.

tcdr will generate a TOC file from the audio files found in /mnt/images/sound/ and cdrdao will write them in multi mode (first session), next mkzftree will generate a compressed directory tree under /mnt/images/Z/ from the contents of /mnt/images/cdroot/ and mkisofs will generate an ISO-9660 file from the contents of the /mnt/images/Z/ compressed directory tree and then, cdrecord will write it to a writable medium in the burner device (second session).
This menu point is implemented in the mixcd2cd() function.

Display track info on medium in the burner

This will display the output of cdrecord -toc.
This menu point is implemented in the msdcdinfo() function.

Top
Session to MS CD-R/CD-RW

Multi session CDs contain data tracks only. The tracks are written one at a time (one at a session), but all the data is accessible after a normal mount.
The medium must be blank, or appendable. If you are appending a new session to an appendable mixed mode CD (CD Extra), the mounting command has the form of <mount /dev/whatever /mount-point -tiso9660 -osession=2>.

Medium will remain appendable for later sessions.
tcdr will look first for the image file /mnt/images/img.iso and if found, it will ask if it should write it on the disk as a first session or to generate a new one from the contents of /mnt/images/cdroot/.

Using an existing ISO file will work only in the case of the first session; all subsequent sessions must consist of a newly generated ISO files, because they contain information on the starting sector of the new session.

This menu point is implemented in the msd2cd() function.

Last session to close MS CD-R/CD-RW

This will write a new, closing session to a multi session appendable medium. The iso image should be generated from the contents of /mnt/images/cdroot/.
This menu point is implemented in the msdclose() function.

Display track info on medium in the burner.

This will display the output of cdrecord -toc.
This menu point is implemented in the msdcdinfo() function.

Top
Directory and boot.img to CD-R/CD-RW

This will create a bootable El Torito CD. mkisofs will create an ISO-9660 image from the contents of /mnt/images/cdroot/ and in a new run insert into it a floppy boot image found at /mnt/images/cdroot/boot/boot.img.
The last step is for cdrecord to write this image to a CD. One thing to take care of is to ensure that the bootable image contains generic CD-ROM drivers so the CD devices get recognized at the next boot.

This menu point is implemented in the bootcd() function.

Bootable floppy to boot/boot.img

If you don't have a floppy-image, but do have a bootable floppy, this menu point is for you. tcdr will dump the contents of /dev/fd0 to /mnt/images/cdroot/boot/boot.img.
The floppy in /dev/fd0 should be bootable, with generic CD-ROM drivers. Various types of bootable floppy images are available for download from the Internet, just don't forget to copy them to /mnt/images/cdroot/boot/boot.img.

This menu point is implemented in the fd2bootimg() function.

Top
Audio CD to CD-R/CD-RW

tcdr will check if the source device contains a medium with audio tracks on it and then copy the medium in the source device on the medium in the burner with cdrdao copy. Intermediate temporary bin file will be created.
This menu point is implemented in the acd2acd_t() function.

Audio CD to CD-R/CD-RW On-the-fly.

tcdr will check if the source device contains a medium with audio tracks and then copy the medium in the source device on the medium in the burner device on the fly. On the fly means there will be no temporary .bin file involved in the process.
This menu point is implemented in the acd2acd() function.

Audio CD to audio image to CD-R/CD-RW

tcdr will check if the source device contains a medium with audio tracks and extract TOC and a RAW image with all the tracks to /mnt/images/sound/cdda.raw. In the next step cdrecord will write it to a medium in the burner.
This menu point is implemented in the acd2acd_$CDRIPPER() function.

Audio CD to Separate WAVs

tcdr will check if the source device contains a medium with audio tracks and extract the TOC and tracks to separate WAV files in /mnt/images/sound/.
This menu point is implemented in the acd2wavs_$CDRIPPER() function.

Audio CD to RAW image

tcdr will check if the source device contains a medium with audio tracks and extract the TOC and a RAW image with all the tracks to /mnt/images/sound/cdda.raw.
This menu point is implemented in the acd2raw_$CDRIPPER() function.

Audio CD to WAV image

tcdr will check if the source device contains a medium with audio tracks and extract the TOC and a WAV image with all the tracks to /mnt/images/sound/cdda.wav.
This menu point is implemented in the acd2wav_$CDRIPPER() function.

Audio CD to MP3 tracks

tcdr will check if the source device contains a medium with audio tracks and extract all the tracks to separate WAV files in /mnt/images/sound/ and then encode them with an encoder into 192 kbit mp3 files.
This menu point is implemented in the acd2mp3_$MP3ENCODER() function.

Audio CD to OGG tracks

tcdr will check if the source device contains a medium with audio tracks and extract all the tracks to separate WAV files in /mnt/images/sound/ and then encode them with an encoder into 192 kbit Ogg Vorbis files.
This menu point is implemented by combining the infocd(), acd2wavs() and oggencode() functions.

Top
RAW/CDR to CD-R/CD-RW

After selecting this menu point tcdr will look for any RAW files in /mnt/images/sound/, generate an appropriate TOC file based on the files found and cdrdao will write them all on a medium in the burner device.
This menu point is implemented in the raw2cd() function.

RAW/CDR to WAV

This menu point will convert selected RAW files found in /mnt/images/sound/ to 192 kbit stereo WAV files using an available RAW to WAV converter.
This menu point is implemented in the raw2wav() function.

RAW/CDR to MP3

This menu point will convert selected RAW files found in /mnt/images/sound/ to 192 kbit stereo MP3 files using an available encoder.
This menu point is implemented in the mp3enc() function.

RAW/CDR to OGG

This menu point will use oggenc to encode selected RAW files in /mnt/images/sound/ to 192 kbit stereo Ogg Vorbis files. Because oggenc expects little-endian data, it is frequently required to perform byte order swapping on our input RAW files using the swapraw() function (see RAW to RAW (Swap byte order) menu point below). This option now pops up and you should choose it if the produced Ogg Vorbis files contain noise.
This menu point is implemented in the oggencode() function.

RAW to RAW (Swap byte order)

This menu point will swap the byte order of selected RAW files using <sox ... -x ...>. This is often required prior to running oggenc.
This menu point is implemented in the swapraw() function.

Record from /dev/dsp

This will start recording from /dev/dsp to /mnt/images/sound/rec.raw in 16 bit / 44100 Hz / stereo.
Hit Ctrl-C to stop recording.

This menu point is implemented in the startrec() function.

Top
WAV to CD-R/CD-RW

After selecting this menu point tcdr will look for any WAV files in /mnt/images/sound/, generate an appropriate TOC file based on the files found and cdrdao will write them all on a medium in the burner device.
This menu point is implemented in the wav2cd() function.

WAV to RAW

Choosing this menu point will convert selected WAV files found in /mnt/images/sound/ to 16 bit / 44100 Hz / stereo RAW files using an available WAV to RAW converter.
This menu point is implemented in the wav2raw() function.

WAV to MP3

Choosing this menu point will convert selected WAV files found in /mnt/images/sound/ to 192 kbit stereo MP3 files with an MP3 encoder.
This menu point is implemented in the mp3enc() function.

WAV to OGG

Choosing this menu point will convert selected WAV files found in /mnt/images/sound/ to 192 kbit stereo OGG files with an Ogg Vorbis encoder.
This menu point is implemented in the oggencode() function.

Record from /dev/dsp

This will start recording from /dev/dsp to /mnt/images/sound/rec.wav at 16 bit / 44100 Hz / stereo.
Hit Ctrl-C to stop recording.

This menu point is implemented in the startrec() function.

Top
MP3 to CD-R/CD-RW

This menu point will decode selected MP3 files found in /mnt/images/sound/ to 16 bit / 44100 Hz / stereo WAV audio tracks using an available decoder. Generating a TOC file and writing /mnt/images/sound/*.wav to a medium in the burner device using cdrdao is the last step.
This menu point is implemented by combining the mp3dec(), mktoc() and dao() functions.

MP3 to RAW

This menu point will decode selected MP3 files found in /mnt/images/sound/ to 16 bit / 44100 Hz / stereo RAW files using an available decoder.
This menu point is implemented in the mp3dec() function.

MP3 to WAV

This menu point will decode selected MP3 files found in /mnt/images/sound/ to 16 bit / 44100 Hz / stereo WAV files using an available decoder.
This menu point is implemented in the mp3dec() function.

Top
OGG to CD-R/CD-RW

This menu point will decode selected OGG files found in /mnt/images/sound/ to 16 bit / 44100 Hz / stereo WAV audio tracks using an available decoder. Generating a TOC file and writing /mnt/images/sound/*.wav files to a medium in the burner device using cdrdao is the last step.
This menu point is implemented by combining the oggdecode(), mktoc() and dao() functions.

OGG to RAW

This menu point will decode selected OGG files found in /mnt/images/sound/ to 16 bit / 44100 Hz / stereo RAW files using an available decoder.
This menu point is implemented in the oggdecode() function.

OGG to WAV

This menu point will decode selected OGG files found in /mnt/images/sound/ to 16 bit / 44100 Hz / stereo WAV files using an available decoder.
This menu point is implemented in the oggdecode() function.

Top
M3U to Audio CD-R/CD-RW

By selecting this menu point tcdr will first look for xmms default play list file $HOME/.xmms/xmms.m3u and in /mnt/images/sound/*.m3u. After selecting an m3u file tcdr will copy the listed files to /mnt/images/sound/ and decode them to wav files using an appropriate decoder. Next step is to generate a TOC file from the wav files found in /mnt/images/sound/ and to write them on the medium in the burner device as audio tracks using cdrdao.
Note that the track order on the medium may not be the same as the file order was in the play list.
This may be fixed in the future.


This menu point is implemented in the m3u2acd() function.

M3U to Data CD-R/CD-RW

By selecting this menu point tcdr will first look for xmms default play list file $HOME/.xmms/xmms.m3u and in /mnt/images/sound/*.m3u. After selecting an m3u file tcdr will copy the listed files to /mnt/images/cdroot/. Next step is to generate an ISO image file from the files found in /mnt/images/cdroot/ and to write it to the medium in the burner device as a data track using cdrecord.
This menu point is implemented in the m3u2cd() function.

M3U to RAW

By selecting this menu point tcdr will first look for xmms default play list file $HOME/.xmms/xmms.m3u and in /mnt/images/sound/*.m3u. After selecting an m3u file tcdr will copy the listed files to /mnt/images/sound/ and decode them to raw files using an appropriate decoder.
This menu point is implemented in the m3u2raw() function.

M3U to WAV

By selecting this menu point tcdr will first look for xmms default play list file $HOME/.xmms/xmms.m3u and in /mnt/images/sound/*.m3u. After selecting an m3u file tcdr will copy the listed files to /mnt/images/sound/ and decode them to wav files using an appropriate decoder.
This menu point is implemented in the m3u2wav() function.

Create M3U play list file from the contents of...

By selecting this menu point tcdr will create an xmms play list file based on audio files present in /mnt/images/sound or /mnt/images/cdroot/ or by using a manually entered path.
This menu point is implemented in the m3usub() function.

Top
RAW/WAV/MP3/OGG Player

tcdr will use an appropriate (or user defined) player to play the selected audio files found in /mnt/images/sound/ through /dev/dsp. lsof is required for this to function properly.
These menu points are implemented in the startplay(), stopplay() and callsp() functions.

Top
Blank all data on the CD-RW

cdrecord performs a full blank.
This menu point is implemented in the blankfull() function.

Blank PMA, TOC, pregap

cdrecord performs a fast blank.
This menu point is implemented in the blankfast() function.

Blank track on the CD-RW in the burner

cdrecord performs track blanking.
This menu point is implemented in the blanktrack() function.

Unreserve track on the CD-RW

cdrecord performs an UN-reserve track blanking.
This menu point is implemented in the unreservetrack() function.

Blank a track tail on the CD-RW

cdrecord blanks the tail of the last track.
This menu point is implemented in the blanktracktail() function.

Unclose last session on the CD-RW

cdrecord blanks the closing of the last session.
This menu point is implemented in the blankunclose() function.

Blank last session on the CD-RW

cdrecord blanks the last session on the CD-RW.
This menu point is implemented in the blanklastsession() function.

Close (fixate) medium in the burner

cdrecord fixates the appendable medium in the burner.
This menu point is implemented in the fixate() function.

File Cleanup

This menu point provides an interface for removal of most of the files created during a tcdr run:

and there are some other files/directory trees which are supposed to be removed automatically:

This menu point is implemented in the cleanup() function.

CD-ROM medium Info

This will display information on the source medium generated by the following program outputs:

  • cdir
  • isoinfo
  • cdrdao disk-info
  • cdrecord -toc
  • root directory listing of the medium (won't work if the data session is not the first session)

This menu point is implemented in the diskinfo() function.

CD-RW medium Info

This will display information on the burners medium generated by the following program outputs:

  • cdir
  • isoinfo
  • cdrdao disk-info
  • cdrecord -toc
  • root directory listing of the medium (won't work if the data session is not the first session)

This menu point is implemented in the diskinfo() function.

(Re)Load /etc/tcdrrc

If for some reason tcdr cannot detect properly the drives/devices/SCSI addresses and other settings, edit /etc/tcdrrc and reload it with this menu point. This will cause tcdr to simply source tcdrrc with the new settings. The changes will remain in effect only for the actual run. If you want tcdr to automatically source tcdrrc (make the changes permanent) you should uncomment a line at the end of the tcdr executable (8th line up from EOF).
This menu point is implemented in the src_tcdrrc() function.



Top

Files

Changelog  - Changelog.txt
GNU_GPL  - GNU is Not Unix General Public License (the Copyright dammit!)
README  - read it
install.sh  - install script (in .tar.gz only)
uninstall.sh  - uninstall script, generated by install.sh
manual.html  - online version
tcdr  - the executable
tcdr.1  - tcdr man page
tcdr.png  - logo designed by me and the Gimp
tcdrrc  - tcdr config file

I included this sample tcdrrc for convenience:

#####	tcdrrc - tcdr config file
#	Copyright (C) 2002 Szilard Torok <kobold2@yahoo.com>
#
#	Edit this file and copy it to /etc/tcdrrc.
#	See the manual on how to use it.

####### Parameters to address devices:

CDRW[0]="/dev/scd1"		# CD writer device file
CDRW[1]="LG CD-RW"		# vendor and model ID
CDRW[2]="/mnt/cdrw"		# CD writer mount point
CDRW[3]="0,1,0"			# SCSIBUS,TARGET,LUN address

CDROM[0]="/dev/scd0"		# CD-ROM device file
CDROM[1]="SONY CD-ROM"		# vendor and model ID
CDROM[2]="/cdrom"		# CD-ROM FS mount point
CDROM[3]="0,0,0"		# SCSIBUS,TARGET,LUN address

####### Array PR for external program parameters:

PR[0]="/mnt/images/"		# Main working directory
PR[1]="img.iso"			# Temporary ISO file name
PR[2]="$(date +%Y:%m:%d:%H:%M:%S)" # Volume ID (mkisofs -V)
PR[3]="you@mail.net"		# Publisher/Preparer ID (mkisofs -p -P)
PR[4]="/mnt/images/sound/"	# Place for sound images and sound files
PR[5]="/mnt/images/cdroot/"	# Master CD root directory
PR[6]="/dev/fd0"		# Floppy device
PR[7]="boot.img"		# Bootable floppy image
PR[8]="boot/"			# Directory to hold the boot catalog and the
				# bootable floppy image
PR[9]="boot.catalog"		# El Torito specification requires this file
PR[10]="cdda.raw"		# Audio image file name
PR[11]="cdda.wav"		# Audio image converted to WAV
PR[12]="cdda.mp3"		# Audio image converted to MP3
PR[13]="$(hostname)"		# System ID (mkisofs -sysid)
PR[14]="driver=mmc_cdr driveropts=burnfree" # cdrecord driver and option
PR[15]="$HOME/.xmms/xmms.m3u"	# default xmms play-list

TMPO="/tmp/tcdro.$$"		# Temporary file for program output
TMP="/tmp/tcdr.$$"		# Temporary file for user input
TCDRRC="/etc/tcdrrc"		# rc file (this file).
TCDRPATH="$(echo $0 |sed 's/tcdr$//')" # Path to tcdr executable
NOOUTP="$1"			# Supress output windows if 1


Top

Links

Homepage: tcdr.sourceforge.net/
Download: prdownloads.sourceforge.net/tcdr/
Mirror: szilard.tripod.com/tcdr/
Archive: ibiblio.org/pub/Linux/apps/sound/cdrom/
Freshmeat: freshmeat.net/projects/tcdr/
Tucows: linux.tucows.com/mmedia/cd_burners.html
This document: tcdr.sourceforge.net/manual.html
Man page: tcdr.sourceforge.net/tcdr.1.html
Changelog: tcdr.sourceforge.net/Changelog.txt


Top

GnuPG Public Key

Fingerprint:

pub  1024D/BE5D586B 2002-05-31 Torok Szilard (2002-05-31 22:27:59) 
     Key fingerprint = B27A E84B 2CF9 EA82 4D3A  B428 8C07 52E9 BE5D 586B
sub  1024g/A8BB9857 2002-05-31

GnuPG public key block:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

mQGiBDz33PgRBACqb+gghP1jBCnlT/Q8tcLoDOCNunvKTY0VC2pq4RkwLeVPxgJc
xi5ndpYvFhWjObuDd5+ylJ/hjc8OlQI7t3yCMAu/No9HM48HbyRkoXRe6HxRvrBy
PHGi3ECFWNYfyHQZpFi3RHdcr4wG2mZuaZsCel1FwLABfBDBRh/4rQhT1wCgthUP
0WcLmPAWvi2rAH9uHspUJxkEAJ1fzMWK2HUt+qqVsCmbwQLu/0i+qE0yyXZ2Is30
MyiNRrfAODQ0YoDx63gd6t4fPNEr6fnNCYLLGVzoOx6Y2xn+36FvIHiRrga2yuF2
ubwUA5qJttYjJkcEWj5xt7pDZzd3xmr+M6R4JufA0YawHBhUztR7D/lD/alIQBb2
jX4lA/9463ya/Zi9rz7kFVy9Tf5QvhyTZIQmKd2UlO9I0dpmLrYQ6TQAlTLSTqzQ
4NxD36vWwvmYjn18Gb/967ovBgvtWGtz5QJlw1qK3luCORU/8UTWFKEDFVa4Ha/x
8NoS1pZcqmdHgguS393irO5WF/imXCqfuakysUw1bgsYAeugVbQ3VG9yb2sgU3pp
bGFyZCAoMjAwMi0wNS0zMSAyMjoyNzo1OSkgPGtvYm9sZDJAeWFob28uY29tPohX
BBMRAgAXBQI899z4BQsHCgMEAxUDAgMWAgECF4AACgkQjAdS6b5dWGsIDgCeIiaz
Jj0aviJS39f3JSRS5N5/PdQAn1wreRsPC+1niX25PLtxcci990NXuQENBDz33QMQ
BACiGkAieAyIRSaN3kt02Zu7UplG7gr3hW6U8zqEM2A8YyEVL/r+bhzxjvEqDOEE
rpvp0Othwk/UFCw5F+NzvN9hc/ag5ynxhYQnx47jzd/5IhZTi5oFfeIe8+tEMoIC
cpFIIVshWZG0GVC1jrWA/ijcjjy9JsTViVdbYk72Ha9OXwAEDQP/SAFgSKrTUuFH
vFoF3Rx+oDuASruiS3JRv4y21eOwdew/XmivySHxNJO0KGRZGh26ctYIVFd+0Noe
iheQ3ZAT6NKBa0qtZoni8IWkxManzoftzP+Q/njdeKunltak/70kaRyCEKvLfE3i
4YJh7NrRgwKhIqnHRjHtI8TGAe8VrOiIRgQYEQIABgUCPPfdAwAKCRCMB1Lpvl1Y
a/LQAKCTjpCyktPMZoojl89+45MJ6K617gCgoHhbAHhxsHtI7DIF1jSBmXSfsVI=
=CQgT
-----END PGP PUBLIC KEY BLOCK-----


Top

License

TCDR Copyright © 2002 Szilard Torok

This  program  is  free  software; you can redistribute it and/or
modify it under the terms of the GNU General  Public  License  as
published  by  the  Free Software Foundation; either version 2 of
the License, or (at your option) any later version.

This program is distributed in the hope that it will  be  useful,
but  WITHOUT  ANY  WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foun-
dation,  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
USA

If you would like to negotiate alternate licensing terms, you may
do so by contacting the author: Szilard Torok <kobold2@yahoo.com>
Top
That's  all  folks!   Sorry,  too  much  beers...
This document is an attempt to describe tcdr version 2.1.
Szilard Torok <kobold2@yahoo.com> November 28, 2002


This document was rendered correctly by the following browsers: lynx 2.8.3rel1, 2.8.4rel.1, opera 6.0, 6.1, netscape 6.2.3, 7.0, mozilla 1.0, 1.2b, links 0.4pre5, w3m/0.3.