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, CD-RW or DVD
drive as a full-featured stereo compact-disc player and "ripper"
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.
CDDA (CD digital audio) data extraction, playback, save-to-file,
and pipe-to-program are supported on many platforms. For
data extraction to file or pipe,
xmcd
can generate the data in MP3 (MPEG-1 layer 3), MPEG-2/MPEG-4 AAC, MP4,
Ogg Vorbis, FLAC, WAV, AU, AIFF, AIFF-C and raw headerless formats.
Simultaneous extraction to file/pipe and real-time playback is
possible on high performance computers.
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 switch to 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® 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.
For CDDA extraction to MP3, MP4, Ogg Vorbis and FLAC formats,
xmcd
can auto-fill the CD information tags embedded in these files.
This release of
xmcd
supports the enhanced Gracenote CDDB2® service on a number of 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 international language 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 BrowserTM,
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.
In addition to CDDB, this release of
xmcd
supports reading CD-TEXT data from the disc for the disc/track
artist and title information.
Full feature-specific pop-up help is available for
all controls, indicators, text input fields, and lists.
On systems with more than one CD 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 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 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
32 Sound DSP and output file/pipe debugging
64 Message of the day 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 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 PLATFORM 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.
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.
You can only change the lock state when a CD is loaded and is not playing.
- shuffle <on | off>
-
Enable or disable shuffle (random play) mode. Shuffle can be
enabled in this manner only when playback is not in progress. When
shuffle is enabled, any program sequence is cleared and segment
play is canceled.
- 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. When a program is set in this manner, shuffle mode
will be disengaged and segment play will be canceled.
- 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. This control
operates the hardware volume control on the CD drive in Standard
playback mode, or the computer's audio hardware in CDDA playback
mode. It has no effect on the data of the CDDA save to file or
CDDA pipe to program outputs.
- balance value#
-
Balance control. The value should be between 0 and 100. 50 is center,
0 is full-left, and 100 is full-right. This control
operates the hardware volume control on the CD drive in Standard
playback mode, or the computer's audio hardware in CDDA playback
mode. It has no effect on the data of the CDDA save to file or
CDDA pipe to program outputs.
- 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
- outport <speaker | headphone | line-out | value#>
-
CDDA playback output port selection. The speaker, headphone
and line-out keywords are toggles. Alternatively, you may
specify a numeric value, as follows:
1 Speaker
2 Headphone
4 Line-out
You may add the values together to enable multiple output ports
(i.e., A value of 3 turns on both Speaker and Headphones).
When the value is set to 0, the port setting is unmodified.
Note that this command may be meaningful only on some platforms,
and only certain ports may be available on a particular architecture.
See the PLATFORM file for details.
- cdda-att <value#>
-
CDDA attenuator level. The valid range is 0 to 100.
Note that in contrast to the volume command, this setting
does not operate any hardware. It works by scaling the CDDA
audio samples, and thus has no effect in Standard playback
mode, but affects all CDDA modes (CDDA playback,
CDDA save to file and CDDA pipe to program).
- time <elapse | e-seg | e-disc | r-trac | r-seg | r-disc>
-
Change the time display mode. Select from elapsed track time,
elapsed segment time, elapsed disc time, remaining track time,
remaining segment time or remaining disc time.
- on-load <none | spindown | autoplay | autolock | noautolock>
-
Enable or disable options when a CD is loaded. 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
autolock
option causes the caddy or disc tray to be automatically locked. 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.
- mode <standard | cdda-play | cdda-save | cdda-pipe>
-
Selects the playback mode. See "PLAYBACK MODES" below for details
about the modes.
- jittercorr <on | off>
-
Enable or disable CDDA jitter correction.
- trackfile <on | off>
-
For CDDA save to file mode, specifies whether a separate
file should be created for each CD track.
- subst <on | off>
-
For CDDA save to file mode, specifies whether space and tab
characters in the output file path name should be substituted with
underscores ('_'). This makes the files easier to manipulate while
using the UNIX command shell.
- filefmt <format>
-
Specifies the output audio file format if running in
CDDA save to file or CDDA pipe to program modes.
The format is one of the following:
raw, au, wav, aiff, aiff-c, mp3, ogg, flac, aac or mp4.
- outfile <template>
-
Specifies the output audio file path name template if running in
CDDA save to file mode. See the help file for the CDDA output
file path template text box for a description on the special tokens
that could be used in the template.
- pipeprog <path [arg ...]>
-
Specifies the external program to which the audio stream will be piped to
when running in CDDA pipe to program mode.
- compress <<0 | 3> [bitrate#] | <1 | 2> [qual#]>
-
Selects the compression mode for compressed file formats, as follows:
For MP3, the modes are as follows:
0 Constant bitrate (CBR)
1 Variable bitrate (VBR, old algorithm)
2 Variable bitrate (VBR, new algorithm, faster)
3 Average bit rate (ABR)
For Ogg Vorbis and MP4, all modes are VBR, as follows:
0, 3 Use an average bit rate
1, 2 Use a quality factor
For FLAC, the modes are as follows:
0 None
1 Enable exhaustive LP coefficient quant. search
2 Enable encoding correctness verification
3 Enable both
For AAC, all modes are VBR, as follows:
0 Use an average bit rate, MPEG-2
1 Use a quality factor, MPEG-2
2 Use a quality factor, MPEG-4
3 Use an average bit rate, MPEG-4
For modes 0 and 3, an optional bitrate (in kb/s)
sub-argument can be specified. The supported bitrates are a discrete
set of numbers from 32 to 320. A value of 0 can also be used to indicate
the use of an internal default. For modes 1 and 2, an optional
quality factor (from 1 to 10) sub-argument can be used.
Lower bitrates and quality factor values yield smaller
files whereas higher numbers produce higher audio quality.
For AAC and MP4 formats, the bitrate you specify will be double the
actual bitrate (e.g., if you specify 128kbps, the actual bitrate used
will be 64kbps). The bitrate or quality values, if specified, are
ignored for the FLAC format.
- min-brate <bitrate#>
-
In average bitrate and variable bitrate modes, this commands lets you
specify a low bitrate limit. The encoder will not drop below this limit
while dynamically changing the bitrate. A value of 0 can be specified
to indicate the use of an internal default.
This parameter has no effect on the FLAC, AAC or MP4 format.
- max-brate <bitrate#>
-
In average bitrate and variable bitrate modes, this commands lets you
specify a high bitrate limit. The encoder will not go above this limit
while dynamically changing the bitrate. A value of 0 can be specified
to indicate the use of an internal default.
This parameter has no effect on the FLAC, AAC or MP4 format.
- coding <stereo | j-stereo | force-ms | mono | algo#>
-
This command selects the stereo mode and encoding
noise-shaping/psychoacoustics algorithm.
For MP3, the algorithm is a number from 1 to 10. Lower numbers gives
faster encoding whereas higher numbers produce higher audio quality.
For AAC and MP4, stereo disables the mid/side coding,
j-stereo and force-ms are synonymous, and mono
is not supported. An algorithm value of 10 enables
temporal noise shaping (TNS).
For FLAC, the stereo modes have no effect, but the algorithm value
selects between faster encoding versus slightly better compression.
For Ogg Vorbis, this parameter has no effect.
- lowpass <off | auto | freq# [width#]>
-
This allows a lowpass filter to be added.
The off setting means no filter, the auto setting causes the
encoder to determine whether a filter should be added and its parameters.
Specifying a frequency (and optionally, a width) will enable the filter
in manual mode. The frequency and width are both in Hz. The valid
frequency range is from 16 to 50000 Hz.
For MP3, the filter functions fully as described.
For AAC and MP4, the freq can be used to limit the bandwidth, but
the width value is ignored.
For Ogg Vorbis and FLAC, these parameters have no effect.
- highpass <off | auto | freq# [width#]>
-
For encoding to MP3 files, this allows a highpass filter to be added.
The off setting means no filter, the auto setting causes the
encoder to determine whether a filter should be added and its parameters.
Specifying a frequency (and optionally, a width) will enable the filter
in manual mode. The frequency and width are both in Hz. The valid
frequency range is from 500 to 50000 Hz. The lower limit is imposed by
the polyphase filter implementation in the MP3 encoder.
For non-MP3 formats, these parameters have no effect.
- flags <[C|c][O|o][P|p][E|e][I|i]>
-
This allows you to specify some MP3 header and frame flags.
The letter c denotes the "copyright" flag, the letter o
denotes the "original" flag, the letter n denotes the "no res"
(disable bit reservoir) flag, the letter e denotes the addition
of a 2-byte checksum to each frame for error correction, and the letter
i indicates strict ISO compatibility. The use of a upper-case
letter turns on the flag, and lower-case turns off the flag. Multiple
flags may be specified together.
- tag <off | v1 | v2 | both>
-
This command specifies whether CD information (such as album and track
artists and titles, genre type, etc.) should be added to the CDDA output
file. For MP3, the information is added to either the version 1, version 2
or both versions of the ID3 tag areas. For Ogg Vorbis, FLAC and MP4,
the information is added to the metadata area.
to
Note: An ID3v2 tag will not be added to the CDDA pipe to program
MP3 stream regardless of the setting of this command.
- lameopts <<disable | insert | append | replace> [options]>
-
This command allows you to query or set command line options to
be passed directly to the LAME MP3 encoder, and control how those
options will be passed. This facilitates the use of advanced or
experimental LAME features that cannot otherwise be invoked via the
xmcd
graphical user interface for setting encoding parameters.
The following keywords control how the command line options
are to be passed:
disable: No additional command line options are to be passed.
insert: The specified options are to be inserted before
the standard options.
append: The specified options are to be appended after
the standard options.
replace: The specified options are to be used instead of
the standard options.
Standard options refers to the command line options that
xmcd
generates, based on the current settings of the controls in
the "Encoding Parameters" options window.
- motd
-
Retrieve and display messages from the xmcd MOTD server, if any.
- 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 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 hardware configuration has
changed. If this is not done then
xmcd
will probably not operate correctly with your CD drive.
WARNING:
If
xmcd
is not correctly configured, you may cause
xmcd
to deliver commands that are not supported by your CD 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
Clear
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.
This release of
xmcd
also supports reading the CD-TEXT data from the disc
for CD information. Only some recent CDs are produced with
CD-TEXT data and this data can only be read on CD drives with
CD-TEXT capability.
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.
The priority of the CD information schemes (CDDB, CD-TEXT or local CD
database files) is controlled via the cdinfoPath parameter in the
common.cfg file.
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 drive's
device number) contains the device node path, the music genre,
and disc identification information pertaining to the currently loaded CD.
Other applications may read this file to identify the
currently loaded disc.
PLAYBACK MODES
This release supports the following user-selectable playback modes
(via the Options pop-up window):
- Standard playback
-
When playing an audio CD, the audio output is the analog "line out"
connection on the back of your CD drive. There should be an audio
cable connecting this output to your computer audio hardware CD
input (or to an externally amplfied speaker or stereo system). The
audio output is also available at the CD drive's front panel
headphone connection, if so equipped. The volume control slider bar on
xmcd
affect the CD drive's built-in volume control, if the drive has such
controls. This is the mode that previous releases
(xmcd version 1.x through 3.0) supported.
- CDDA playback
-
When playing a CD in this mode,
xmcd
extracts the CD digital audio data off the CD drive over the
data cable (e.g., SCSI or ATAPI/IDE). Then, it sends the data to the
DSP (digital signal processor) device in your computer's audio hardware
for real-time playback. The audio is typically heard through the
computer's built-in speakers. No signal is produced at the line-out
or headphone connections of the CD drive. The
xmcd
volume control slider bar affects the computer's DSP device.
- CDDA save to file
-
When playing a CD in this mode,
xmcd
extracts the CD digital audio data off the CD drive over the
data cable (e.g., SCSI or ATAPI/IDE). Then, it writes the data
into a file of your choosing. The
xmcd
volume control slider does not affect the data written to
the output file. The output file format can be selected to be one
of the following:
Format Ext Description
------ ----- ---------------------------------------
RAW .raw Little-endian, 16 bit, 44.1 kHz, stereo
AU .au Big-endian, 16 bit, 44.1 kHz, stereo
WAV .wav Little-endian, 16 bit, 44.1 kHz, stereo
AIFF .aiff Big-endian, 16 bit, 44.1 kHz, stereo
AIFF-C .aifc Big-endian, 16 bit, 44.1 kHz, stereo
MP3 .mp3 MPEG 1.0 Layer III compressed
Ogg .ogg Ogg Vorbis compressed
FLAC .flac Free Lossless Audio CODEC compressed
AAC .aac AAC (MPEG-2 or MPEG-4) compressed
MP4 .mp4 MP4 (MPEG-4) compressed
The file can be played later using an appropriate playback utility,
or converted to another format. This mode will typically run faster than
real-time with the non-compressed formats. With the compressed formats,
it depends on the CPU performance of your system.
- CDDA pipe to program
-
When playing a CD in this mode,
xmcd
extracts the CD digital audio data off the CD drive over the
data cable (e.g., SCSI or ATAPI/IDE). Then, it pipes the data
stream to an external program that you specify. The output
format is selected as in the CDDA save to file mode.
This mode can be used with an external audio player, encoder, or
other digital audio manipulation program.
The external program must be capable of accepting audio data on its
standard input, in one of the formats listed above.
More than one of the three CDDA modes can be selected at the same time.
For example, if both the CDDA playback and the
CDDA save to file buttons are selected, the two functions
will be performed simultaneously. Note that on most systems, only one
program can access the system's DSP at a time, therefore you will
likely not be able to select CDDA playback and
CDDA pipe to program at the same time, where the external program
is itself an audio player.
NOTE: The CDDA (CD digital audio) modes will function only on
CD drives that provides this capability, and only on some OS and hardware
platforms. See the RELNOTES file for details about platform support and
other CDDA related notes.
LOCALIZATION
There is full localization support in
xmcd
if it is compiled with X11R5 or later header files and libraries.
The "classic" CDDB service supplies data in the ISO Latin-1 format only,
multi-byte characters are not supported.
The CDDB2 service supplies data in UTF-8 data format, which is
identical to US-ASCII for single-byte characters. Multi-byte UTF-8
characters are also supported when xmcd is linked with X11R5 or later.
By default, xmcd will translate the characters to ISO Latin-1
(ISO 8859-1, for English and many European character sets).
By changing the setting of the charsetConvMode parameter in
the common.cfg file, you can have
xmcd
display the UTF-8 data without conversion (good for US-ASCII
or if you are using UTF-8 fonts),
or attempt to convert UTF-8 strings to the default character set
as specified by the LANG environment variable. This conversion
will occur only if the system's list of locales also support UTF-8.
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 Latin-1
European character set, as long as your X display server supports all the
required fonts. To display in other languages, you must set your
LANG environment accordingly, and change
xmcd
to use the appropriate 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. See "X RESOURCES"
above.
NOTES
Not all platforms and CD drives support all the features of
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.
The lame(1) MP3 encoder program must be installed on your system in
order for
xmcd
to perform CD ripping to MP3 format files. Similarly, the
faac(1) encoder program must be installed on your system for
the AAC and MP4 formats.
Your copy of the
xmcd
executable must be compiled and linked with the Ogg Vorbis and FLAC encoder
libraries in order to perform CD ripping to these formats. See the
INSTALL file for details.
ENVIRONMENT VARIABLES
The LANG environment variable sets the default character set.
See "LOCALIZATION" above.
For the wwwWarp feature, xmcd invokes the Netscape, Mozilla, Galeon
or Opera web browser to display the contents. Xmcd searches a number of
"standard" locations for the web browser executable. If you have multiple
browsers installed and would like to direct xmcd to use a
particular executable, or if your browser 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/mozilla; export BROWSER_PATH
(For C Shell users):
setenv BROWSER_PATH /usr/local/bin/mozilla
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.
The LAME_PATH environment variable may be used to specify the
path to the lame(1) MP3 encoder program.
The FAAC_PATH environment variable may be used to specify the
path to the faac(1) AAC and MP4 encoder program.
The AUDIODEV environment variable may be used to specify an
alternate audio device when running xmcd in the CDDA playback mode.
The default audio device is write method dependent as follows:
AIX write method: /dev/paud0/1 (PCI audio)
AIX write method: /dev/baud0/1 (MCA audio)
ALSA write method: plughw:0,0
HP-UX write method: /dev/audio
Linux/OSS write method: /dev/dsp
OSF1 write method: 0
Solaris write method: /dev/audio
In addition, with the OSS and ALSA write methods, the MIXERDEV
environment variable may be used to specify the PCM mixer channel device.
The default is /dev/mixer for OSS, and default for ALSA.
On FreeBSD with ATAPI CD drives, xmcd will automatically use either
the CDIOCREADAUDIO ioctl or the pread(2) system call for CDDA reads,
based on the running kernel version. You may override the default
by setting the environment variable CDDA_USE_PREAD to 0 or 1,
respectively. Normally this is not necessary.
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 web site: http://www.amb.org/xmmix/
LAME MP3 encoder: http://www.mp3dev.org/
Ogg Vorbis: http://www.xiph.org/ogg/vorbis/
FLAC (Free Lossless Audio CODEC): http://flac.sourceforge.net/
FAAC (AAC/MP4 encoder): http://www.audiocoding.com/
Hydrogen Audio (discussion forums): http://www.hydrogenaudio.org/
Sox audio format conversion utility: http://www.spies.com/Sox/
SEE ALSO
cda(1), X(1), xhost(1), xauth(1), Xsecurity(1), xlsfonts(1),
lame(1), faac(1), sox(1)
Xmcd's README, PLATFORM, DRIVES, INSTALL and RELNOTES files
AUTHOR
Ti Kan (xmcd@amb.org)
AMB 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.
Table of Contents
- Name
- Synopsis
- Description
- Options
- X resources
- Commands
- Device configuration
- Using xmcd
- Online help
- Track programming
- Cd database
- Playback modes
- Localization
- Notes
- Environment variables
- Files
- Related web sites
- See also
- Author
Local Discography