XMCD(1)XMCD(1)NAME
xmcd - CD digital audio player utility for X11/Motif
SYNOPSIS
xmcd [toolkitoption ...] [-dev device] [-instcmap] [-remote] [-rmthost
hostname] [-help] [-debug level#] [-c device] [-X] [-o] [command [arg
...]]
DESCRIPTION
Xmcd is a program that allows the use of the CD-ROM, CD-R or CD-RW
drive as a full-featured stereo compact-disc player for the X window
system. See cda(1) for the command-line CD player. xmcd and cda uses
the same configuration and support files.
Most of the features found on "real" CD players are available in xmcd,
such as shuffle and repeat, track programming functions, a numeric
keypad and track warp slider for direct track access. Additional
functions include sample play, A to B segment play, volume control,
balance control, etc. Several automation options are also available on
CD load, eject, play completion and program exit. A Channel Routing
feature allow you to select from several stereo or mono routing
options. The volume control slider taper characteristics can also be
altered.
Multi-disc changers are also supported. There are buttons to switch to
the next or previous disc in the changer, as well as a way to specify a
specific disc via the keypad. You can select to play only a single
disc or auto-play all discs in normal or reverse order.
The Gracenote CDDB(tm) Music Recognition Service(sm) is supported by
xmcd, which allows the CD artist/title and track titles, and other
information associated with the loaded CD to be displayed. You may
also add/modify and submit information to the CDDB service. This
release of xmcd supports the enhanced Gracenote CDDB2(tm) service on
selected platforms, and offers much richer features and content than
the "classic" CDDB service. Moreover, CDDB2-supplied information is
now in UTF-8 data format, providing localization support. See
LOCALIZATION below.
Xmcd provides the ability to drive a web browser and search for web
sites related to the currently playing CD artist or track. You may
also access online music reviews and go to the official xmcd and
Gracenote web sites, invoke the CDDB Music Browser(tm), as well as
CDDB-provided links to related content. Moreover, the browser
integration gives users the ability to manage Local Discography
information pertaining to their CD collections.
Full feature-specific pop-up help is available for all controls,
indicators, text input fields, and lists.
On systems with more than one CD-ROM or CD-R drive, multiple
invocations of xmcd can be used to operate each drive independently.
Xmcd is designed to be easy to use, as the main window is purposely
made to resemble a real CD player front panel. All other pop-up
windows are also designed to be as intuitive as possible. Moreover,
while the use of a mouse is natural with xmcd, all functionality can
also be operated via the keyboard. This is in conformance to the
guidelines published in the OSF/Motif Style Guide from the Open
Software Foundation.
Many functions on a running xmcd session can be "remote controlled"
from the command line via the -remote option. See the OPTIONS section
below.
The internal architecture of xmcd is designed to be easily portable to
many UNIX operating system variants, and adaptable to the myriad of CD-
ROM drives available.
OPTIONS
All standard Xt Intrinsics toolkit options are supported (such as
-display, -geometry. -iconic, etc.). In addition, xmcd supports the
following options:
-dev device
Specifies the path name to the raw CD-ROM device. If this
option is not used, the default device to be used is the first
drive set up with the xmcd configuration program (See below).
-help Causes command line usage information to be displayed on stderr.
-debug level#
Causes verbose debugging diagnostics to be displayed on stderr.
The level specifies the type of debugging messages desired:
1 General debugging
2 Device I/O debugging
4 CD information debugging
8 User interface debugging
16 Remote control debugging
You may add the values together to enable multiple debugging
types (i.e., A value of 3 turns on both General and Device I/O
debugging).
-instcmap
Causes xmcd to install its own colormap. This may be desirable
if xmcd is to be used at the same time as other color-intensive
applications, which would otherwise cause xmcd to be unable to
allocate all its needed colors. Note that when running on an X
display that does not support many concurrent colormaps, this
may cause other windows to change colors when xmcd has the input
focus.
-remote
Causes a command to be sent to another running xmcd process.
The command and appropriate arguments are specified at the
invoking shell (or shell script) as command-line arguments,
After the command is delivered, the "sender" xmcd process exits,
and the "receiver" process responds by executing the command.
In effect, the sender becomes a remote control for a running
xmcd session. See "COMMANDS" below for a list of supported
commands.
The sender xmcd process can be invoked on the same host or on a
different host than the receiver xmcd process. By default, the
sender will attempt to locate an xmcd process running on the
same X display (determined by the DISPLAY environment variable
or the -display option), and controlling the same default CD-ROM
device. You may specify the device via the -dev option to
override the default. Use of the -dev and -rmthost options on
the sender's command line can resolve ambiguities when there are
multiple xmcd clients displaying on the same X server.
-rmthost hostname
This may be used with the -remote option to specify the host on
which the receiver xmcd client must be running.
-c device (Solaris only)
Same as the -dev option.
-X (Solaris only)
Causes the exitOnEject parameter to be set to True.
-o (Solaris only)
This option has no effect.
The -c, -X and -o options are provided only on the Solaris platform for
compatibility with the action_workman.so auto-startup program, running
under the Solaris Volume Manager (vold). See the README file in the
xmcd distribution about configuring xmcd for the Solaris Volume
Manager.
X RESOURCES
Xmcd has many adjustable X resources to customize its look and feel, as
well as its behavior. Notably, the colors of virtually every feature
on xmcd's windows can be changed, as well as the text fonts. All text
labels can also be changed (for example, to another language).
There are too many resources to list here, but the resource names and
their defaults (plus descriptive comments) can be found in the
XMCDLIB/app-defaults/XMcd file (where XMCDLIB is the xmcd library
directory specified during installation, typically /usr/lib/X11/xmcd).
It is not recommended that you change values in the XMCDLIB/app-
defaults/XMcd file, unless you want the changes to be forced upon all
users of xmcd on the system. Instead, make a copy of this file, change
the copy as you see fit, then place it in your $HOME/.xmcdcfg
directory. Your custom resource settings will then override the
defaults when xmcd is subsequently started. Alternatively, you may
also place specific resources you wish to override in the .Xdefaults
file in your home directory.
COMMANDS
You may specify a command as an xmcd command line argument, to make
xmcd execute the command after initial startup. For example, the
following command starts xmcd and then begins playing at track 4:
xmcd play 4 &
If the -remote option is used, then the command is sent to another
running xmcd process for execution (See "OPTIONS" above).
The supported commands are:
stop Stop playback.
play [track# | min:sec | track#:min:sec]
Start playback. You may also specify the starting track number,
and/or the starting minute and second offset.
pause Pause the playback. You may resume the playback by using either
the pause command again, or the play command.
sample Start sample playback. This will play the first 10 seconds of
each track.
disc <load | eject | prev | next | disc#>
Perform a disc operation: Load or eject the CD, or change to
another disc on a multi-disc changer.
track <prev | next | track#>
Perform a track operation: Change to the previous or next track,
or a specified track number.
index <prev | next>
Perform an index operation: Change to the previous or next
index.
lock <on | off>
Enable or disable the caddy (or disc tray) lock. When enabled,
pressing the eject button on the drive will not eject the CD.
shuffle <on | off>
Enable or disable shuffle (random play) mode.
repeat <on | off>
Enable or disable repeat mode.
program <clear | save track# ...>
Clear, save or set a track program sequence. Track numbers may
be space or comma-separated.
volume <value# | linear | square | invsqr>
Volume control operation. You can specify a numeric value to
set the volume level (The range is 0 to 100), or change the
volume control's taper characteristic: linear, square, or
inverse-square.
balance value#
Balance control. The value should be between 0 and 100. 50 is
center, 0 is full-left, and 100 is full-right.
route <stereo | reverse | mono-l | mono-r | mono | value#>
Channel routing control. Use one of the appropriate keywords,
or a value as follows:
0 Normal stereo
1 Reverse stereo
2 Mono-L
3 Mono-R
4 Mono-L+R
time <elapse | e-disc | r-trac | r-disc>
Change the time display mode. Select from elapsed track time,
elapsed disc time, remaining track time, or remaining disc time.
on-load <autolock | noautolock | none | spindown | autoplay>
Enable or disable options when a CD is loaded. The autolock
option causes the caddy or disc tray to be automatically locked,
The spindown option will cause the CD to stop after loading to
conserve the laser and motor. The autoplay option will cause
the CD to automatically start playing after loading. The none,
spindown and autoplay options are mutually-exclusive.
on-exit <none | autostop | autoeject>
Enable or disable options when xmcd exits. The autostop option
will cause xmcd to stop playback, and the autoeject option will
cause xmcd to eject the CD. Use none to cancel these options.
on-done <autoeject | noautoeject | autoexit | noautoexit>
Enable or disable options when xmcd is done with playback. The
autoeject option causes xmcd to eject the CD. The autoexit
option will cause xmcd to exit.
on-eject <autoexit | noautoexit>
Enable or disable options when xmcd ejects a CD. The autoexit
option will cause xmcd to exit after ejecting the CD.
changer <multiplay | nomultiplay | reverse | noreverse>
Enable or disable multi-disc changer options. The multiplay
option specifies that xmcd plays all discs in sequence. The
nomultiplay option will cause xmcd to stop after the current
disc is done. The reverse option implies multiplay, except that
the disc order is reversed.
window <modechg | iconify | deiconify | raise | lower>
Xmcd window control. The modechg command causes the main window
to toggle between the normal mode and basic mode. In normal
mode, all controls and indicators are available. In basic mode,
xmcd shrinks to a smaller size and only basic controls are
shown. The iconify, deiconify, raise and lower commands cause
the xmcd window to change as specified.
quit Causes xmcd to exit.
debug <level#>
Set the debug level. When debug level is non-zero, xmcd
generates verbose debugging diagnostics to be displayed on
stderr. See the description for the -debug option above for
supported level values.
Some of these commands, when used in start-up mode, do not perform a
meaningful function. For example, the "track prev" command is not
useful just after xmcd startup. It is more appropriate to use this
command in the remote control mode.
DEVICE CONFIGURATION
The X resources described in the previous section affect the general
appearance and behavior of xmcd. There are two additional
configuration files which are used to adapt xmcd to your site
requirements. The first of these contain common parameters, and the
second contain configurable parameters that must vary on a per-drive
basis. For example, in some cases xmcd must operate the drive
differently depending upon the brand and model of the drive. Thus,
there must be a separate configuration file for these parameters per-
device. The common parameters file is XMCDLIB/config/common.cfg and
the device-specific parameters file is XMCDLIB/config/DEVICE (where
XMCDLIB is typically /usr/lib/X11/xmcd and DEVICE is the base name of
the raw device special file for the CD-ROM drive; e.g.,
/usr/lib/X11/xmcd/config/rcd0). A configuration program
XMCDLIB/config/config.sh is provided to make maintaining these
configuration file easy (Note: on SCO UNIX/Open Desktop/Open Server
systems the configuration program can also be invoked as "mkdev xmcd").
You should always use the configuration program to set the
configuration parameters when installing xmcd for the first time, or
when the CD-ROM hardware configuration has changed. If this is not
done then xmcd will probably not operate correctly with your CD-ROM
drive.
WARNING: If xmcd is not correctly configured, you may cause xmcd to
deliver commands that are not supported by your CD-ROM drive. Under
some environments this may lead to system hang or crash.
You can override some of the device-specific configuration parameters
by adding your own configuration files. Xmcd will also look in the
$HOME/.xmcdcfg/common.cfg and $HOME/.xmcdcfg/DEVICE files for common
and device-specific parameters (where $HOME is your home directory and
DEVICE is as specified above). Parameters found in this file will
override the system defaults (except those parameters that cannot be
overridden; see the comments in the XMCDLIB/config/device.cfg for
details).
USING XMCD
The basic functions of xmcd are designed to operate the same way as on
a real stereo CD player. The pictorial symbols used on the main window
buttons are intended to illustrate the function in a non-language-
specific manner. If enabled, a small "tooltip" will appear after a
short delay, when you position the mouse cursor over any xmcd main
window feature. The tooltip contains textual description of the
feature.
The CD information and track programming functions are operated via the
CD Information subwindow. You open the subwindow by clicking the CD
Information button (file cabinet symbol) on the main window (See "CD
DATABASE" below).
There is not a per-item description of all the features here, because
full on-line help is available (See "ONLINE HELP" below).
ONLINE HELP
For general information about xmcd, click the wwwWarp (world symbol)
button on the xmcd main window and select 'Xmcd help...' in the menu.
You can also get specific help information about each button, control,
indicator, text entry area, selection list by positioning the mouse
cursor over the desired item, then clicking the third mouse button. A
pop-up window will appear, containing the relevant help text.
TRACK PROGRAMMING
You can program xmcd to play only certain tracks, in a custom sequence.
To do so, invoke the CD Information window (by clicking the CD
Information button on the main window). Select the desired track by
clicking on the entry in the Track list, and click the Add button to
add to the play sequence. Notice that the track number appears in the
Program sequence text field. You can also type the track numbers,
separated with commas or spaces, directly in the Program sequence
field. Repeat until all desired tracks have been entered, then click
the Play/Pause button (on the main window) to start the program play.
When a program sequence is defined, the prog indicator in the main
window display area "illuminates". To erase the program sequence,
click the Clear button on the CD Information window. You may also Save
a program sequence, so that the next time you load the same CD the
program will automatically be applied. The button will also delete the
saved program.
CD DATABASE
Unless explicitly disabled, xmcd will automatically query the Gracenote
CDDB Music Recognition Service for information about the loaded CD.
This information includes the artist/title, track titles, genre, and
much more, and is displayed on the CD Information window and several of
its sub-windows.
You may also add, modify or enhance the displayed information, in the
rare circumstance that CDDB does not have data pertaining to your CD,
or if the CDDB-supplied data is incomplete or in error. You can then
submit the changes back to CDDB.
You should perform a "submit" operation (click the Submit button) after
typing in the changed information before ejecting the CD or exiting, or
the information will be lost.
The CD Information window should prove to be intuitive to use. You may
use the on-line help system to obtain specific help information about
the various buttons and items.
The CD information, once queried from CDDB, is stored in a local cache
and managed by the CDDB library. This reduces unnecessary Internet
connections to the CDDB servers. For backward compatibility, this
release of xmcd will also read the old-style local CD database files
previously generated by xmcd versions 1.x and 2.x. No capability is
retained in this release to write/update the old-style CD database
files.
For more information about Gracenote CDDB, read the CDDB file included
with this release, and visit the http://www.cddb.com web site for
details.
While xmcd is running, the file /tmp/.cdaudio/curr.nnnn (where nnnn is
the hexadecimal representation of the CD-ROM's device number) contains
the device node path, CD database category and disc identifier
information pertaining to the currently loaded CD. Other applications
may read this file to identify the currently loaded disc.
LOCALIZATION
The CDDB2-supplied data, in UTF-8 data format, is displayed without
modification in xmcd. As distributed, xmcd is configured to display in
a generic family of X fonts denotes similar to the following:
-*-helvetica-bold-o-*--14-140-*
This will normally work correctly with English and any ISO-8859 family
of European languages, as long as your X display server supports all
the required fonts. To display in other languages, you must change
xmcd to use the appropriate UTF8-specific fonts. That can be
accomplished by modifying the various XMcd*classname.fontList
parameters in the XMCDLIB/app-defaults/XMcd file (system wide) or your
$HOME/.xmcdcfg/XMcd file (per-user). Be sure that the fonts you
specify is actually supported by your X display server. See
xlsfonts(1) and your X window system documentation about font
configuration.
Moreover, all titles and descriptions in xmcd are configurable in the
XMcd X resource file. US-English is distributed by default, but the
file may be modified to use any other language as desired.
NOTES
Not all CD-ROM drives support all features that appear on xmcd. For
example, some drives do not support a software-driven volume control.
On these drives the xmcd volume control slider may have no effect, or
in some cases it is made to function as a mute control (i.e., it will
snap to the full-off or full-on positions only). Similarly, the caddy
lock, eject and index search buttons found on xmcd may not have any
effect on drives that do not support the appropriate functionality.
The remote control feature (using the -remote option) is governed by
the standard display server security mechanisms of the X window system.
In order for an xmcd sender client to communicate with a running xmcd
receiver client, the sender must have the appropriate access
permissions to the receiver client's X display. See xhost(1), xauth(1)
and Xsecurity(1) for more information. If logging is enabled, remote
control activity is logged by the xmcd receiver client in the
$HOME/.xmcdcfg/remote.log file for each xmcd user.
ENVIRONMENT VARIABLES
For the wwwWarp feature, xmcd invokes the Netscape web browser to
display the contents. Xmcd searches a number of "standard" locations
for the web browser executable. If you have multiple versions of the
Netscape browser installed and would like to direct xmcd to use a
particular executable, or if your Netscape executable is installed in a
non-standard location, then you may set the BROWSER_PATH environment
variable on the shell command line to the web browser executable you
desire.
An example:
(For Bourne Shell and Korn Shell users):
BROWSER_PATH=/usr/local/bin/netscape; export BROWSER_PATH
(For C Shell users):
setenv BROWSER_PATH /usr/local/bin/netscape
you may put the above command in your $HOME/.profile (sh/ksh) or
$HOME/.cshrc (csh) to set this automatically each time you log in.
FILES
$HOME/.cddb2/∗
$HOME/.xmcdcfg/∗
XMCDLIB/app-defaults/XMcd
XMCDLIB/cdinfo/∗
XMCDLIB/discog/∗
XMCDLIB/doc/∗
XMCDLIB/config/config.sh
XMCDLIB/config/common.cfg
XMCDLIB/config/device.cfg
XMCDLIB/config/.tbl/∗
XMCDLIB/config/∗
XMCDLIB/help/∗
BINDIR/xmcd
MANDIR/xmcd.1
/tmp/.cdaudio/∗
RELATED WEB SITES
Xmcd/cda web site: http://www.amb.org/xmcd/
Gracenote web site: http://www.cddb.com/
Xmmix home page: http://www.amb.org/xmmix/
SEE ALSOcda(1), X(1), xhost(1), xauth(1), Xsecurity(1), xlsfonts(1)
Xmcd's README and INSTALL files
AUTHOR
Ti Kan (xmcd@amb.org)
AMB Research Laboratories, Sunnyvale, CA, U.S.A.
Xmcd also contains code contributed by several dedicated individuals.
See the ACKS file in the xmcd distribution for information.
Comments, suggestions, and bug reports are always welcome.
v3.0 01/05/16 XMCD(1)