FreeBSD manual
download PDF document: snd_emu10kx.4.pdf
SND_EMU10KX(4) FreeBSD Kernel Interfaces Manual SND_EMU10KX(4)
NAME
snd_emu10kx - Creative SoundBlaster Live! and Audigy sound cards device
driver
SYNOPSIS
To compile this driver into the kernel, place the following lines in your
kernel configuration file:
device sound
device snd_emu10kx
Alternatively, to load the driver as a module at boot time, place the
following line in loader.conf(5):
snd_emu10kx_load="YES"
DESCRIPTION
The snd_emu10kx bridge driver allows the generic audio driver sound(4) to
attach to Creative sound cards based on the EMU10K1, CA0100, CA0101,
CA0102 and CA0108 DSPs.
The snd_emu10kx sound cards have a PCM part, which is accessible through
one to five pcm(4) devices (see MULTICHANNEL PLAYBACK for details), and
MPU401-compatible MIDI I/O controller, which is accessible through the
midi device. Wave table synthesizer support is not available.
HARDWARE
The snd_emu10kx driver supports the following sound cards:
o Creative Sound Blaster Live! (EMU10K1 Chipset). Both PCM and MIDI
interfaces are available.
o Creative Sound Blaster Audigy (CA0100 and CA0101 Chipset). PCM and
two MIDI interfaces available.
o Creative Sound Blaster Audigy 2 and Creative Sound Blaster Audigy 4
(CA0102 Chipset). PCM support is limited to 48kHz/16 bit stereo
(192kHz/24 bit part of this chipset is not supported).
o Creative Sound Blaster Audigy 2 Value (CA0108 Chipset). PCM support
is limited to 48kHz/16 bit stereo (192kHz/24 bit part of this chipset
is not supported). There is no MIDI support for this card.
The snd_emu10kx driver does not support the following sound cards
(although they have names similar to some supported ones):
o Creative Sound Blaster Live! 24-Bit, identified by FreeBSD as
"emu10k1x Soundblaster Live! 5.1".
o Creative Sound Blaster Audigy LS / ES, identified by FreeBSD as
"CA0106-DAT Audigy LS".
o All other Creative sound cards with -DAT chipsets.
o All Creative X-Fi series sound cards.
MULTICHANNEL PLAYBACK
By default the snd_emu10kx driver is loaded with multichannel playback
capabilities enabled. If you do not set the
hint.emu10kx.0.multichannel_disabled option in your loader.conf(5)
configuration file you will get up to five DSP devices, one for each
sound card output. You can use additional software (like
audio/pulseaudio from The Ports Collection) to do sound stream
get one more DSP device that is rate-locked to 48kHz/16bit/mono. This is
actually 48kHz/16bit/32 channels on SB Live! cards and
48kHz/16bit/64channels on Audigy cards, but the current implementation of
the sound subsystem does not support such an amount of PCM channels.
This device can not be opened for read, thus confusing many applications.
Within a multichannel stream, the first half (0-15 or 0-31) is a copy of
all DSP outputs, the second half (15-30 or 32-63) is a copy of some DSP
inputs. On Live! cards the last substream (31) is used as a sync stream
and is always set to 0xc0de. Audigy cards do not need such sync data,
because a stream always starts with substream 0.
SB Live! substream map (in byte offsets, each substream is 2 bytes LE)
Offset Substream
+0x00..+0x1E PCM streams 0..15
+0x20, +0x22 Empty
+0x24..+0x2A PCM inputs: front left, front right, rear left, rear right,
center, sub
+0x2C..+0x3C DSP inputs 0..8:
+0x3E sync substream (0xc0de)
Audigy substream map (in byte offsets, each substream is 2 bytes LE)
Offset Substream
+0x00..+0x3E PCM streams 0..31
+0x40..+0x5E PCM inputs: front LR, rear LR, center, sub, ...
+0x60..+0x7E DSP inputs 0..16
OSS MIXER CONTROLS
These are the controls available through the standard OSS programming
interface. You can use mixer(8) to change them.
On EMU10K1-based cards the OSS mixer directly controls the AC97 codec.
On newer cards the OSS mixer controls some parameters of the AC97 codec
and some DSP-based mixer controls.
"vol" mixer control for the overall sound volume.
"pcm" mixer control for the PCM playback volume. It controls only front
output volume in multichannel mode and all output volume in single
channel mode.
"rec" mixer control acts very differently on EMU10K1 and other cards. On
EMU10K1 cards it controls the AC97 codec recording level. On non-EMU10K1
cards it controls the amount of AC97 "stereo mix"
entering the DSP. AC97 recording level and AC97 recording source are
fixed on CA0100, CA0101, CA0102 and CA0108 cards. The AC97 recording
levels are always set to maximum and recording source is always "stereo
mix".
"dig1" is a CD S/PDIF (on-card) volume control
"line3" is AudigyDrive "AUX In 2" volume control
Other OSS mixer controls control the inputs of the AC97 codec.
PRIVATE DEVICE CONTROLS
You can control some of EMU10Kx's operation and configuration parameters
through dev.emu10kx.<X> sysctls. These sysctl(8) values are temporary
and should not be relied upon.
DRIVER CONFIGURATION
Loader tunables are used to set driver configuration. Tunables can be
set at the loader(8) prompt before booting the kernel or they can be
stored in /boot/loader.conf. These tunables cannot be changed from a
machine sysctl(8) entry after boot, but you can change them using kenv(1)
before loading the snd_emu10kx driver.
hint.emu10kx.<X>.disabled
Disables loading a driver instance.
hint.emu10kx.<X>.multichannel_disabled
Disables multichannel playback support, when one card is
represented as several PCM devices.
hint.emu10kx.<X>.multichannel_recording
Enables experimental multichannel recording support.
hint.emu10kx.<X>.debug
Set debug output level.
0 No additional debug options enabled
1 Enables all DSP outputs to be connected, even those that are
known to be unused on a particular card.
2 Additional debug messages about in-driver events will be
printed.
2 Additional debug messages will be printed when memory
allocation fails.
FILES
/dev/emu10kx? snd_emu10kx management interface
SEE ALSO
sound(4)
HISTORY
The snd_emu10kx device driver first appeared in FreeBSD 7.0.
AUTHORS
The PCM part of the driver is based on the snd_emu10k1(4) SB Live! driver
by Cameron Grant <cg@FreeBSD.org>. The MIDI interface is based on the
snd_emu10k1(4) MIDI interface code by Mathew Kanner <matk@FreeBSD.org>.
The snd_emu10kx device driver and this manual page were written by Yuriy
Tsibizov.
BUGS
The driver does not detect lost S/PDIF signals and produces noise when
S/PDIF is not connected and S/PDIF volume is not zero.
FreeBSD 14.0-RELEASE-p11 May 28, 2008 FreeBSD 14.0-RELEASE-p11