NAME
xmcd - CD digital audio player utility for X11/Motif
SYNOPSIS
xmcd [toolkitoption ...] [-dev device] [-instcmap] [-remote]
[-rmthost hostname] [-help] [-debug] [-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.
A CD database feature allows the CD artist/title and track
titles, and other associated general purpose text to be
maintained and loaded as the program is started or when a CD
is inserted. The CD database contents can be on your local
system or queried from a remote CD database server host.
There are a number of worldwide Internet public CD database
servers in operation, serving in both CDDBP (CD database
protocol) and HTTP (Hyper-text transport protocol). Xmcd
supports both of these protocols.
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 drive the web browser via xmcd to
access online music reviews and go to the official xmcd and
CDDB web sites. Moreover, the browser integration gives
users the ability to manage local discography information
pertaining to his or her CD collection.
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
Causes verbose debugging diagnostics to be displayed on
stderr.
-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 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
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 each track for
10 seconds.
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 | track# ...>
Set or clear 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 <on | off>
Enable or disable debug mode. When debug mode is
enabled, xmcd generates verbose debugging diagnostics
to be displayed on stderr.
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 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 database and track programming functions are operated
via the CD Database/Track Program Editor pop-up subwindow.
You activate the subwindow by clicking the BCD
database/track programming button (file cabinet symbol) on
the main window (See "CD DATABASE" below).
There will not be a per-item description of all the
features, because full on-line help is available (See
"ONLINE HELP" below).
ONLINE HELP
For general information about xmcd, click the help (question
mark symbol) button on the xmcd main window. 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 Database window
(by clicking the CD database/track programming 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, 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
Database/Program Editor window.
CD DATABASE
The CD Database feature of xmcd allows you to enter the CD
artist/title, track titles, other free-form text (such as
band information, lyrics, etc.) associated with the disc and
tracks, and a track play program. After this information is
typed in and saved to a database file, it will automatically
appear on the xmcd CD Database window the next time you
insert the same CD.
You must perform a "save" operation (click the Save button)
after typing in the database information before ejecting the
CD or exiting, or the information will be lost. If this is
the first time this CD database entry is being stored, you
will be asked to select a category (rock, classical, jazz,
etc.) under which to classify the CD. The category is used
by xmcd to determine the actual directory in the filesystem
to write the database file.
You must type the CD information into the database because
the CD's table of contents (TOC) contains only the number of
tracks and the starting address of each track, but not the
actual disc and track titles.
The CD database 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 database information is stored in text files, one per
CD, in a designated directory (category). The path of this
directory is CDDBDIR/CATEGORY, where CDDBDIR is the top
level directory of the local CD database. CDDBDIR is
typically /usr/lib/X11/xmcd/cddb and CATEGORY is the
category name selected when Save is performed. See the
description of XMCD_CDDBPATH in the ENVIRONMENT section
below.
You may view the list of directories that xmcd will search
for CD database files by clicking the About... button and
viewing the pop-up information window.
The file name of each CD database entry is a hexadecimal
representation of a special "magic" number computed by xmcd
based on the number of tracks, track timings, and other
available information about this CD. This method is used
because there is no reliable unique CD identifier to be
found on the CD itself (the CD standard allows for a
readable IPC/barcode but very few CDs actually contain such
information).
Since different pressings of the same CD may sometimes
contain slightly different track timings, the resultant
magic number computed by xmcd on these CDs will be
different. Thus, if you load a CD that is not the same one
that a CD database entry was created with (but is actually
the same CD title), xmcd may not recognize it and display
the database information automatically when you insert the
CD. In this event, you can search the CD database and find
the appropriate entry, and establish a "link" to it. To do
so, click the Link button, and select the appropriate
category on the popup window. Xmcd will then present
another pop-up window containing a list of all CD database
entries in the specified category (that has the same number
of tracks as the currently inserted disc). Select the
appropriate entry and a link will be made in the CD
database.
The Link feature alleviates the need to type in CD database
information again and avoids duplicate CD database entries.
A master CD database of hundreds of thousands of CD titles
is available for Internet access. Xmcd has the ability to
query a remote CDDB server host for CD database information.
If your system is connected to the Internet, you can
configure your xmcd client to query the server. The
cddbPath parameter or the XMCD_CDDBPATH environment variable
is used to configure the use of a remote server. See the
ENVIRONMENT section below for details.
You may configure xmcd to communicate with the CD database
server in either CDDBP or HTTP protocols. The CDDBP
protocol is the standard CD database protocol developed for
use by xmcd and other clients. The HTTP protocol is
intended for users who are behind a firewall that allows
HTTP traffic (for web access) but blocks the normal CDDBP
port. Proxy servers are also supported under the HTTP mode.
You are encouraged to contribute to this database by sending
CD database entries (that you typed in) to the master CD
database. To do so, you click the Submit... button on the
CD database/Track Program Editor pop-up subwindow. Clicking
this button causes the CD database entry (associated with
the currently loaded CD) to be sent to the CDDB master
server. You should use this feature only if your computer
is configured to send Internet electronic mail. You can
send a CD database entry only after you first save it to
your local CD database.
For more information about CDDB, 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.
ENVIRONMENT
Several environment variables are currently recognized by
xmcd, and are described as follows:
XMCD_LIBDIR
This parameter is the directory path under which xmcd's
configuration files, help files, and CD database files
are located. The default value of XMCD_LIBDIR on most
systems is /usr/lib/X11/xmcd.
XMCD_CDDBPATH
This is used to override the cddbPath common
configuration parameter, which is a list of CD database
category directories to be used under
$XMCD_LIBDIR/cddb. Also, remote CD database hosts can
be specified.
rock;classical;jazz;newage;soundtrack;misc
This string will cause xmcd to search the following
directories for CD database files:
XMCDLIB/cddb/rock
XMCDLIB/cddb/classical
XMCDLIB/cddb/jazz
etc.
You may also specify absolute path names in the
XMCD_CDDBPATH entries. Example:
rock;classical;/home/john/industrial;~john/punk;~/cddb/jazz
You may also specify a remote CD database server hosts
which xmcd can use to query CD database information.
The syntax is in URL form:
protocol://hostname[:port]/path
The protocol is either "cddbp" or "http", depending on
which protocol you want xmcd to use to communicate with
the remote server. The hostname can be a fully
qualified host name or an IP number. The port number
is optional (the default is 888 for cddbp and 80 for
http ) and the path is used only in the http mode.
Example:
country;folk;cddbp://abc.fubar.com;http://xyz.snafu.com/~cddb/cddb.cgi
HOME This is used to determine your home directory. Xmcd
first tries to obtain your home directory from the
/etc/passwd file. If that is not found, then it uses
what is defined in the HOME environment variable. The
home directory path is used by xmcd to locate the
.xmcdcfg directory.
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.
FILES
$HOME/.xmcdcfg/*
XMCDLIB/app-defaults/XMcd
XMCDLIB/cddb/*
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 home page: http://metalab.unc.edu/tkan/xmcd/
CD database server page: http://www.cddb.com/
Xmmix home page: http://metalab.unc.edu/tkan/xmmix/
SEE ALSO
cda(1), cddbcmd(1), wm2xmcd(1), X(1), xhost(1), xauth(1),
Xsecurity(1),
Xmcd's README and INSTALL files
Xmcd web site: http://metalab.unc.edu/tkan/xmcd/
CDDB web site: http://www.cddb.com/
AUTHOR
Ti Kan (ti@amb.org)
AMB Research Laboratories, Sunnyvale, CA, U.S.A.
Xmcd also contains code contributed by several dedicated
individuals. See the README file in the xmcd distribution
for information.
Comments, suggestions, and bug reports are always welcome.
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |