OS/2 eZine

16 May 2000

Previous Article
Home
Next Article

CD-Burning for the Masses

Once upon a time, "burning" a CD (recording your own cd using a cd-writer) was a job for the stubborn and wealthy. The two professional CD-burning products for OS/2, Unite CD Maker for OS/2 and RSJ CD-Writer, cost a significant amount of money.

Today, Unite has disappeared (both as a product and as a company), and very few (if any) CD writers currently shipping include 16-bit Windows 3.x software anymore, (win16 software thanks to OS/2's VASPI drivers and win-os2, was the only escape-route to expensive native cd-r applications). You might think RSJ is the only actively developed cd-r solution for OS/2 left... And some of you might think this proves what has been appearing in the windows-centric press lately: OS/2 is dead, dying, and/or being 'suffocated' by IBM". BZZZZZT!!! Wrong, my fellow readers...

Over the last few years, another major event (some people, me included, like to call it a revolution) was brewing in the dark: Open-Source software development. And open-source software is NOT just for Linux, it means real software for any O/S that people care to port apps to... and yes, that includes OS/2.

So open your mind, relax and enjoy our walk while we explore free (both open source and freeware) cd-r software alternatives to the major commercial CD-R application, RSJ CD Writer. (Which is a very good and more complete application, well worth its price. I must say this so RSJ users don't get mad at me ;-).

Open Source and Freeware CD-Burning Applications

"It's the hardware, stupid"

In 1992's presidential campaign Bill Clinton's team had an internal motto: "it's the economy, stupid". Your motto for cd-writing under os/2 should be "it's the hardware...". The open-source movement takes care of your economy, by giving you very good OS/2 cd-r software for free (free, and with no communism involved! ;-). However, you must concentrate in having a quality cd-writer device. If you you are reading this and you don't have a cd-writer (cd-r or cd-rw) drive yet, but are seriously thinking about buying one, then by all means try to get one with a SCSI interface.

While recent OS/2 driver developments allow mapping of IDE (Atapi) devices into the scsi chain, getting a scsi unit will save you much trouble and will guarantee you almost 100% compatibility with the most used opensource cd-r application, CDREC, which supports about every cd writer out there -- with the notable exception of one particular JVC and Panasonic models.

Always check the compatibility list at the official cdrecord homepage before rushing to the store (real or web/virtual) to get a new cd writer.


The Esperanto of CD-Writing: CDRecord
Type: text-mode cd-writing application. License: Open Source Software.

Esperanto failed as an universal language, but CDRecord so far has succeeded in becoming the worldwide standard when it comes to cross-platform cd-writing under any non-windows O/S. It started as a small project out of the frustration of self-proclaimed unix-kernel hacker Joerg Schilling in Berlin, Germany, who one day suddenly woke up wanting to use his beloved unix system for the naive task of recording CDs.

He succeeded at his baby unix project, and his project suddenly got way out of hand, as with the help of people around the world, CDRecord was ported to about every operating system out there. Today, CDRecord is available for the following operating systems:

* Commercial UNIX flavors (Sun, SGI, HP, SCO, and IBM's Aix),

* Free UNIX's (NetBSD/FreeBSD/OpenBSD, BSD/OS)

* "Others": OS/2 (thanks to the wonderful job of Chris Wohlgemuth), NeXtStep, Apple Rhapsody, MacOS X, BeOS, VMS (!), Windows (9x/NT/2000)

So pay attention. If you learn how to use CD-Record, consider it an investment in your future. Odds are you will be able to continue applying this knowledge, no matter what O/S you find yourself using down the line in the next century.

Installing CD-Record/2

You will need several software pieces, from different authors, to get a working CDRecord/2 installation. But don't worry, I'll walk along with you and hold your hand. Have no fear. :-)

Step #1: Grab the latest OS/2 release from the Official CDRecord/2 homepage. (As of this writing, it's version 1.8.1).

Step #2: Download and install the extra items needed by CDRecord/2. Basically, it needs the emx runtime libraries (emxrt.zip) and Aspi-Router, a little "helper" device driver which allows many OS/2 applications (like CDRecord and SANE) to have an easier access to the SCSI bus. You will also need NICE, which is used to change the priority of cdrecord during the burning process, so you don't get a coaster while burning Cds and playing Quake/2 :-).

In a nutshell, you should have the following drivers loaded and working in your system, as listed in config.sys:

  • BASEDEV=AHA*.ADD or ASC.ADD, etc (replace with your scsi card's OS/2 drivers);

  • BASEDEV=OS2ASPI.DMD /ALL (enables ASPI support. The /ALL parameter is required);

  • DEVICE=x:\yourdir\ASPIROUT.SYS (needed by cdrec and other OS/2 cd-r & scanning apps);

  • DEVICE=c:\os2\mdos\vaspi.sys (not needed by cdrec/2, but handy to run scsi dos utilities); and

  • nice.exe in a directory listed in your PATH.

IDE (Atapi) CD-Writer owners should check the CDRecord/2 home page for complete instructions.

Freeware DOS Utilities

If you are intimidated by the inherent complexities of cdrecord.exe and cdrdao.exe, and you just want to do a single copy of some data-only, single-session CD, a nice utility you can use is the MS-DOS versions of GoldenHawk's CD-R utilities (freeware utilities bundled with their shareware product).

Just go to www.goldenhawk.com, and download their latest version of their "16 bit ms-dos" DAO shareware product. You will find the following useful freeware utilities in the archive:

  • "CD2CD.EXE" (copies single-session, data-only Cds from one scsi cd-rom to a cd writer)

  • "FILE2CD.EXE" (copies single-session, data-only Cds from any cd-rom to hard disk)

  • "CD2FILE.EXE" (same as above, just in reverse order :)

These DOS utilities work very well under OS/2's dos sessions. You only need to have "Vaspi.sys" loaded in your config.sys.

(You need DANIATAPI.FLT and the DANIS506.ADD replacement IDE driver in place).

With these changes and files in place, and cdrecord/2 unzipped into its own directory, you are almost ready to go.

Step #3: Reboot so the changes take effect.

Step #4: Download the (rather ancient) shareware VASPI drivers from hobbes. You do NOT need to install this package. Extract only two files: "aspi.exe" and "aspi2.exe". Place them in your path. These files are extremely useful in debugging your installation and scsi setup, and will help you maintain your sanity and hair, avoid configuration nightmares and check the health of your SCSI Bus even in situations where cdrecord.exe can't run.

Grab it from here: ftp://hobbes.nmsu.edu/pub/os2/system/drivers/vaspi.zip

Now open an OS/2 command prompt and just type "aspi2". You'll get a screen that looks like this:


You should see your CD-Writer (along with any other SCSI devices) listed by "aspi.exe". The key numbers here (in this example) that you have to keep in mind are the device's ADAPTER#, Target#, and LUN #. In this case, my Smart & Friendly CD-R 4012 CD-Writer is identified on the scsi bus as "1:0:0". Write down the corresponding scsi device number (again, "1:0:0" in this example) for the cd-writer in your system. You will need it later when configuring and using the program.

Running CD-Record/2

Keep in mind that CDRecord is a command-line utility. Prompt-geeks (like me) will love it. GUI lovers will hate both the program and also this article, until they discover that there are front-ends. (See? that's what happens when you stop reading an OS/2 eZine article in the middle, so please don't :-).

Now go to the programs' directory, and from a command-line session run it without any parameters/arguments. This is the time when you get a LONG list of parameters, faint, then recover and race to the nearest store or web site to purchase a copy of RSJ CD Writer. <Evil Grin>

Command-line-phobic users quickly rush to the next section, where I'll cover GUI front ends for CD-Record/2.

If you prefer to use the programs' text-mode interface, first you need to understand that there are two main components of CD Record:

  • cdrecord.exe: "Talks" to the cd-writer, feeds the data using the commands your device understands

  • mkisofs.exe: takes the files from your hard disk (that you specify), and creates an ISO9660 file system image, which is then sent to the output device (usually the cd-writer, but can also be used in "stand-alone" mode to create a CD-Image on your local hard disk, LAN, etc.

My only advice for command-line junkies:

1. R.T.F.M. (Read the FRIENDLY manual ;-)

2. You can save a lot of time by creating .cmd files for jobs you need to execute frequently.

Here are two example .cmd files.

This records a given directory tree directly to cd, called "on-the-fly" burning (no CD image created, no extra hard disk space used). Please note that you must replace the "dev=1,0" parameter with your CD Writer's particular device ID# on your system's SCSI chain (remember when you ran "scsi2.exe" before, and wrote down that number? :-).




[burn-dir.cmd, crude version] @echo off ECHO Syntax: burn-dir c:/somedir nice -t mkisofs -l -L -R %1 | cdrecord dev=1,0 -data - [end-of-file]

This example creates a cd image file on your hard disk for later burning, from the contents of a specified directory:




[image-dir.cmd, crude version] @ECHO OFF ECHO Syntax: imagedir c:/somedir mkisofs -l -L -R -o image.raw %1 [end-of-file]

You will find several .cmd files for common tasks, as part of the latest CDRecord/2 zip file, under the /cdcopy directory.

CDR-DAO
Type: text-mode cd-writing application. License: open-source software.

This is another cd-writing "engine" (text-mode application). This one writes audio and data Cds in "Disc At Once" mode, which means the CD Writer's laser is not turned off between tracks. This allows the creation of mixed-mode Cds, VideoCDs, and let's you create multi-track non-standard CDs (like Audio Cds with 0-seconds gap between tracks).

It's syntax is very similar to cdrecord.exe. This was also ported to OS/2 by Chris Wohlgemuth of CDRecord/2 fame.

Download CDR-DAO from http://www.geocities.com/SiliconValley/Sector/5785/

Graphical front-ends for CD-Record/2

Audio/Data CD Creator (Chris Wohlgemuth)
License: Open-source software.

The hard-working man behind the OS/2 CDRecord port also released the first graphical front-end for CDRecord. It was originally called "Audio-CD-Creator", and despite its original name, it has been extended to allows recording of BOTH data and audio Cds, among other nice tricks like mp3-to-audio conversion and "disc at once" (DAO) recording mode, with the additional possibility of using CDRDao instead of cdrecord/2 as the recording "engine" (or back-end). I recommend you download this program from the CDRecord/2 official web page, as it is updated quite often.

Unlike CDRecord/2, the Audio CD Creator front-end has a nice PM setup program, which is a welcome change.

However, you will have to manually enter the program path to cdrecord.exe, mkisofs.exe, and several other optional external utilites, to do digital audio extraction, mp3 decoding (to allow burning of audio Cds using mp3 files as the source), and to use DAO mode (requires a separate text-mode cd-r application, cdr-dao.exe, described later on).

There is one nice "Scan SCSI Bus" button, which automatically fires up cdrecord.exe to do a scsi bus scan, which finds all units on the system, then displays each unit available in a drop-down list box (suggestion to the developer: it would be nice if the program could auto-discriminate between cd-rom readers and cd-r / cd-rw units).

The bad news is that you still have to do some work during the setup process (basically entering/selecting application paths and selecting the cd-writer unit). Since all commercial OS/2 cd-r apps (Unite and RSJ) had no problem in automatically recognizing cd-writers (by querying the unit's ID-string and comparing it against a database of 'known' units), I think there is a lot of room for more improvement and automation in this installation program.

Finally, the install program creates a program folder, and registers new WorkPlace Shell classes for two data types: the "Audio CD" and the "Data CD" object types (Unite CD Maker users will recognize where this comes from). This WPS integration allows users to effortlessly create both audio Cds (dragging wav or mp3 files to an "audio cd" object, previously created from the Audio-CD template) and data Cds (doing the same, but dragging any assorted files or folders to the "Data CD" objects, or template). **Beware**: unlike in Unite CD Maker's behavior of converting all drop operations to shadows, when you drag real files here, you are moving the real files to this data-cd or audio-cd folder!. Use shadows in all drag&drop operations, whenever possible.


One simple yet effective "CDR-Tools" program controls common tasks like closing a CD's sessions (strangely labeled "fix"), erasing a rewritable disc's contents (on CD-RW drives), sending a reset command to the unit, and loading-unloading Cds.

The "CD Creator Settings" program gives a good, clean look of all the configuration options (not a small job considering this front-end actually works by calling several different text-mode utilities that are launched to do their work in the background). I still wish there were more "brains" into the setup and installation programs.

For example, the user has to manually select the "cd writer or generic driver" in the "CDR-DAO" notebook page, with absolutely no hint about what the right choice might be, or the similarities to the detected devices on the scsi bus. I wish all these decision could be automated, since while I can figure out what goes where, I'm not sure the average user can find out everything on his own.

The good news is that once you have everything setup correctly, the program works very well. The only feature I didn't test on my system was creating audio Cds from MP3 files (believe it or not, due to the lack of quality mp3 files that deserved to be burned to cd :-).

Keep in mind that these are just front-ends, so unless these programs supply the wrong command-line parameters to the text-mode executables running in the background, operation should be the same as if you had manually typed "cdrecord.exe ...-param1 \param2 etc." from os/2's c:\ prompt.

Open-Source has been often criticized for "being just promises, not useable products". This is not the case. This program works perfectly (both the front-end and cd-record have source code available for anyone to fix or improve) and have been enhanced in the process of being ported to OS/2, specially due to the "WPS class" implementation.

I'm sure that once the author spends more time on the installation program, making the initial setup a bit more user friendly (just automating most decisions that are now manual would cut it), this product could seriously challenge RSJ CD Writer, until then, it can serve as the de-facto "poor man's RSJ", and you can't beat the price!.

CDWriter/2 v1.2 (Thomas.Kellerer@iname.com, freeware)

A much simpler, less ambitious front-end for use with CDRecord/2, made of only 3 files: a small .exe application (the program itself, no installer), an .ini file where its configuration is stored, and the docs as a plain-ascii ".doc" file. This program will appeal most to those who prefer simplicity and to get the job done, quickly.

In a single program window, you have everything you need and can reach all functions and settings. While Audio-Data CD Creator makes use of the drag&drop a la WPS, CDWriter/2 follows the classic "Norton Commander" interface style (or File Manager, if you wish).

Basically you move through your hard disk layout, select files, and add them to a list of "selected" files (the ones going to be burned to CD). Once you have your "list" of files completed, you can save it to disk (to continue working on it later), or start the cd recording process. While it can be used for data Cds, I've found this program more handy and suited to CD Audio recording (from .wav files, as this front-end does not support on-the-fly mp3 decoding like Audio/Data CD Creator).


A pair of handy "up" and "down" arrow buttons allow you to move a file's position on the assembled track list, which is very useful for last-second changes just before hitting the "record" button.

Configuration of the cd-writer parameters is done manually, where you have to type in the SCSI ID# of your cd burner on a traditional entry field box. And finally, the "save command file" option creates a complete .cmd (batch) file, instead of calling cdrecord.exe directly. This way, you can run the .cmd file later from an os/2 command line, or inspect the .cmd file with your favorite editor, to see what parameters are passed to the cdrecord.exe engine.

If you feel overwhelmed by the many options and settings in Audio/Data CD Creator, or just prefer "file tagging" over "drag& drop", CDWriter/2 might be the right CDRecord front-end for you.

PMCDRec (Markus Hannig, mkh@os2.org, freeware)

If we were discussing commercial software, this cdrecord/2 front-end could easily have been called "CDWriter/2 Professional ", "CDWriter/2 2000" or, coming from certain company in Redmond: "CDWriter Professional - Millenium Edition, OS Release 2 (OSR.2)" <grin>

In a nutshell, this front-end is CDWriter/2, on steroids. It also uses a "notebook" interface, but CDWriter's fixed "single-tab, 3-pane view" has been replaced by much nicer, perfectly designed file selection screens for each type of cd that you might want to burn (from a cd image already on your hard disk, a Data CD from individual files, or an Audio CD from .wav files). Also, a simple rexx script creates a program folder.


While the process for burning a cd is the same as in CDWriter/2 (you select files, add them to a files/tracks list, and when you are happy with the layout, press the "Burn CD" button), I was amazed to discover certain subtle but very useful indicators, which show the amount of dedication and attention to details that the author has put on this program. For example, when creating an Audio CD, each time you add .wav file to the tracks list, the tracks' playing time, and the CD's total playing time is displayed. There is even a "play" button, which plays the selected WAV file so you can check if it's the right track, before adding it to the CD-Audio tracks list.

To complete this superb user interface design (and at the risk of start sounding like a sports car review ;-), the "Setup" allows easy selection of the CD filesystem (ISO9660, 32-char long names, and Joliet) and a "tools" notebook tab provides the same CD-RW options as CD Audio/Data Creator's "CD-R Tools" program, but integrated into the same unique interface.

The "Settings", "Burn CD" and "Create image" buttons are always reacheable, even when you switch views between "Audio", "Data" or "Images", as does the "test" check-box, which allows you to test the recording process without wasting or risking blank media.


GUI front-ends Summary:

Audio/Data CD Creator
PMCDRec
CDWriter/2
Interface style
Drag ~Drop / WPS
File-Tag
File-Tag
MP3 to CD-Audio

CDR-DAO Support

Recommended for beginners

Recommended for "Power Users"


My Rating (1-5) :-)



Oh, and command-line junkies must remember that you can call both cdrecord.exe and cdrdao.exe from the C: prompt for the surprise and amusement of your friends!. ;-)

Happy Burning!

Front-end download locations:

Audio/Data CD Creator:
http://www.geocities.com/SiliconValley/Sector/5785/creator/creatormain.htm

PM CDRec:
http://en.os2.org/projects/indos2/Utilities/PMCDRec.php3

Everything else:
http://hobbes.nmsu.edu/pub/os2/apps/mmedia/cd/cd-r/


Fernando Cassia is a 25-yr. old, self-confessed computer-geek. He's been using the many different flavors of 32bit-OS/2 released since v2.0. He lives in Buenos Aires, Argentina, with his dog and surrounded by computer parts. Fernando is currently working on several web projects, and chasing the local telco monster to get some form of broadband connection, before hell freezes over.