Frequently Asked Questions

These are some of the most frequent questions I get in my mailbox. As a special bonus, there are even answers here!

To the WorkMan home page

General Questions

Do I have the latest version?

The official ftp site for WorkMan is Check there to see if there's a more recent version than the one you're using. The version number can be found in the About popup.

Why doesn't it play through the computer's speaker?

The answer to this question is highly dependent on your hardware configuration. Some common answers:
SPARCstation 5 (maybe others) running Solaris
You're in luck. As of version 1.3, WorkMan has code to use the internal audio connection between your CD-ROM drive and the workstation's motherboard. You might prefer to send the sound out the headphone jack to external speakers; use "audiotool" to do that. Of course, the internal connection needs to be there for this to work; if you don't get any sound, someone probably forgot to hook up the wires when they installed your drive. See the Solaris 2 release notes for more details.

PC UNIX boxes (Linux, NetBSD, Solaris x86, etc.)
Your computer may have an internal audio connection between the CD-ROM drive and your sound card. If so, there's probably a utility in your OS to tell the sound card to play back whatever input it gets from the drive. If you can tell me what it is on your system, I'll add it to this page.

SunOS systems
Run an audio patch cable (available at any decent stereo store) from the drive's headphone jack to the workstation's audio input, then run "cat /dev/audio > /dev/audio". Or do what I used to do and hook a pair of speakers up to the headphone jack; you'll get better sound that way anyway.

Solaris systems other than SPARCstation 5
See SunOS above, but the command you want is "audiorecord -p line -s 44.1k -e linear -c 2 | audioplay".

The patch cable idea (see SunOS) is probably applicable to most other systems; tell me the right commands to run, or about alternatives, and I'll add them to this list.

A couple of drives, for instance the Toshiba XM-3401, are capable of reading digital audio data from the CD over the SCSI bus. A future release of WorkMan will support playing audio through the computer's speaker on such drives.

How do I get the controls to stop moving up and down?

The window size changes as the program displays different track titles and other things. If you start the program with the "-geometry" option and give a negative number for the Y coordinate, the bottom of the window will be fixed in place and the controls won't move around. Note that you should specify only the window position, and not the size. For example,

workman -geometry -0-500

would pop the window up on the right side of the screen, about halfway up (on screens of typical resolution.) "-0-0" will put the window slightly off the bottom of the screen because there's no way to tell how tall the window manager's decorations are. Play with the numbers until the WorkMan window pops up where you want it; under olwm version 3, "-0-38" will put the window in the lower right corner.

How do I change the background color?

The -background option, you've probably noticed, doesn't work as expected on XView programs. What you need to do is set the OpenWindows.windowColor X resource to the color you want. You can do that without touching other XView applications by doing it on WorkMan's command line using the -xrm option, e.g.

workman -xrm "OpenWindows.windowColor: skyblue"

Is there a Motif interface?

Not yet. A few people are working on one, among them <>. The idea is that you'll be able to choose between XView and Motif at compile time (or, if you have both, at runtime.) The Motif interface will become part of the standard source distribution when it's ready.

Why does it eat more and more memory as it runs?

There is a bug in XView 3.0 (fixed in 3.0.1 and higher) that causes the library to lose a little bit of memory whenever an image is destroyed. Unfortunately, this happens twice a second while the About popup is displayed. If the About popup is left up overnight, the program can get bigger than you might expect. WorkMan doesn't update the About popup unless it's actually displayed onscreen, so unpin (dismiss) it when you're not using it and the program will stop growing.

Database Questions

How do I label several tracks in a row as part of the same song?

There are several special symbols you can put into a track title to alter aspects of the main window's display. The most important is "//" (two forward slashes in a row.) This splits the title up into segments. Usually, each segment is displayed on its own line in the main window; a common use is to enter titles that are too big to fit on one line. For instance, you might enter a title like:

The really really really really really//really really really long song

That would add a second line of track title information to the main window, with the text after the "//"; the text before "//" would go on the first line of the window. The "//" itself is never displayed. If you leave out the "//" and just enter the long song title, the program will do its best to break the title into separate segments automatically.

If a segment starts with "+", the rest of the text in the segment is displayed in place of the disc name on the main window. This is most often used when several tracks are related in some way (such as movements of a symphony.) For example, you might enter:

+Symphony No. 2, op. 40//Allegro assai

That title line has two segments. The second segment is displayed as the track title. Since the first segment begins with "+", the CD's title is replaced with "Symphony No. 2, op. 40" while the track in question is playing.

As a shortcut, if a segment contains only a "+" character and nothing else, the "+" segment from the previous track is used. So you might have a group of tracks labeled:

+Piano concerto in G//Allegro
+//Allegro assai - Andante -//Moderato marcato

The third line is to demonstrate that the order of segments isn't important; "+" can come anywhere. The fourth track has the "Piano concerto in G" title, as well as a two-line track title.

If you're not sure what the result will look like when you enter a title with several segments, just click on the track's selector button on the main window and the title will be displayed, even if the CD isn't playing.

Can different tracks be by different artists?

Yes, using the same facilities described above. There is a second special character that can come at the front of a segment, "@". It causes the artist name on the main window display to be replaced with the rest of the text in the segment while the track in question is playing.

"@" behaves in much the same way as "+" (e.g. if it's alone in a segment, the previous track's "@" segment is used.)

A compilation CD's track titles might look like this:

@Charles Gounod//+Ballet music from "Faust"//Allegretto
@//+//Moderato maestoso
@//+//Moderato con moto
@//+//Allegro vivo
@Friedrich Smetana//Symphonic poem "The Moldau"
@Anton Dvorak//Slavonic Dance No. 2 in E minor
@Adolphe Adam//Overture from "If I were King"

Do I have to type all that information in? Isn't it on the CD?

Nope. It isn't. The MiniDisc format from Sony puts track information on the disc, but regular CDs don't contain a human-readable table of contents. So until WorkMan is extended to support MiniDisc players the information has to be provided in an independent way.

If you have online access to a CDDB server and the CD information is available there you can retrieve all CD information from that server. It will be automatically included in the data base. Please, look at the manpage of workmanrc for configuring the CDDB access. If the CD is not known at any CDDB server you're stuck to type the names in.

Why doesn't WorkMan recognize a CD I know is in the database?

Sometimes you'll put in a CD, and the program won't recognize it even though you know you saw it in the database. What's likely happening is that you have a different pressing (publication run) of the CD than the person who entered it into the database. As I understand it, when they want to make more copies of a CD, they produce a new pressing master from the audio tape. Unfortunately, the track timings are different by a fraction of a second (or more) when they do that. WorkMan uses these timings with a range of 75 frames (= one second) to identify a disc. Try the -f option to adjust the range in which workman matches the timings. Be careful: If you use very large values, some CDs may not be identified correctly. This option has no effect if you have special pressings of the same discs with and without some bonus tracks.

If a CD isn't matched exactly, WorkMan adds a line "Probably:" above the track title.

Solaris-Specific Questions

It says "Device Busy" every time I try to start it.

If you're running Solaris, you're trying to start WorkMan while "vold", the Solaris volume manager, has control of the drive. See the Solaris 2 release notes for more information.

What about CD-Extra on Solaris? I can't play them.

As far as I could examine, this is a Solaris driver issue. I fear that I cannot do anything about it.

Linux-Specific Questions

Why doesn't it work with my IDE drive?

You probably had the -DLINUX_SCSI_PASSTHROUGH flag set in your Makefile when you built WorkMan. It tells WorkMan to try to send SCSI commands to the drive directly rather than going through the OS-specific CD-ROM library functions. Unfortunately, that doesn't work on non-SCSI drives.

If you recompile WorkMan without that option, it ought to work better.

Where to go for more help

If you have problems not covered here, your best bet is to ask on comp.os.linux.misc unless you're pretty sure it's a generic problem with WorkMan and not something Linux-specific. I don't have a Linux system, and I don't really know much about Linux; most WorkMan problems are pretty hardware- and OS-specific, and I'm not really of much help to Linux users.

If you find an answer to your problem, though, by all means tell me about it so I can add it to this page and save someone else some time.

($Date: 1999/02/12 13:55:41 $)