ALaw/uLaw sample formats
------------------------

This driver does not support the ALaw/uLaw sample formats.
ALaw is the default mode when opening a sound device
using OSS/Free. The reason for the lack of support is
that the hardware does not support these formats, and adding
conversion routines to the kernel would lead to very ugly
code in the presence of the mmap interface to the driver.
And since xquake uses mmap, mmap is considered important :-)
and no sane application uses ALaw/uLaw these days anyway.
In short, playing a Sun .au file as follows:

cat my_file.au > /dev/dsp

does not work. Instead, you may use the play script from
Chris Bagwell's sox-12.14 package (available from the URL
below) to play many different audio file formats.
The script automatically determines the audio format
and does do audio conversions if necessary.
http://home.sprynet.com/sprynet/cbagwell/projects.html


Blocking vs. nonblocking IO
---------------------------

Unlike OSS/Free this driver honours the O_NONBLOCK file flag
not only during open, but also during read and write.
This is an effort to make the sound driver interface more
regular. Timidity has problems with this; a patch
is available from http://www.ife.ee.ethz.ch/~sailer/linux/pciaudio.html.
(Timidity patched will also run on OSS/Free).


MIDI UART
---------

The driver supports a simple MIDI UART interface, with
no ioctl's supported.


MIDI synthesizer
----------------

The card both has an OPL compatible FM synthesizer but no
wavetable synthesizer.

I haven't managed so far to get the OPL synth running.


S/PDIF interface
----------------

The current S/PDIF is limited to loop only (in->out). Because the
DAC or ADC must use 44K or 48K to process digital signal from/to
S/PDIF, playback to/record from S/PDIF is not implemented yet.


4 channels
----------

The 4 channels for CMI8738 will behave depending on how do you use.
For general wave/MP3 player, you can hear sound from rear speakers
together with the front ones. This is like you use a Y-patch cable
but the 4 channel mode will sent louder signal to rear speakers
because they are more far away from user than the front ones in
desktop application.

For applications to support independent 4 channels, such as LinDVD
from InterVideo, a special device node named /dev/dualdac (14,14)
needed to be created as following.

mknod /dev/dualdac c 14 14


Support from C-Media
--------------------

Comment and bug report can be submitted at http://www.cmedia.com.tw
New version, update will bee published at
http://members.home.net/puresoft/cmedia.html first, then
http://www.cmedia.com.tw

Charles Tien
cltien@home.com
