Product
Creative Labs soundcard with three analogue output jacks and one digital output jack.
The inputs are: analogue "line" in (for recording from a tapedeck for example), and microphone in.
It also has a firewire port, suitable for attaching external hard drives (that's all I'm using it with) or other firewire gizmos.
Driver
The alsa driver has complete support for this soundcard, including "AC3 Passthrough", very good quality sound recording, and of course mp3 playback.
The alsa driver I've had most success with was the one bundled with SuSE 9.0.
Features available in the Alsa emu10k1 driver
"AC3 Passthrough" (Dolby Digital Passthrough Mode)
AC3 Passthrough allows the use of the Audigy2 card with the features of "mplayer"
http://www.mplayerhq.hu/ and "xine"
http://xinehq.de/ that allow you to pass through any of the audio content from DVD movies to an external "Receiver", where the Dolby decoding takes place, rather than doing the decoding in linux using the a52 library. The result is a lot better, especially noticable in the LFE channel (subwoofer) which becomes much clearer. The physical cabling is also a lot simpler, requiring only a single thin mono audio cable to carry the digital signal over distances of up to 40ft or so (shielding appears to be unnecessary), whereas using (cheap) analogue connections the distance is limited to around 30ft before hum becomes very noticable.
Physical connection for the digital output.
You should be able to connect either a stereo miniplug-to-RCA cable or a mono miniplug-to-RCA converter to the "digital" minijack output and be able to get both linear PCM signal streams and the "Dolby 5."1 and "THX" encoded digital streams to your external "Receiver". Although Creative have a special 4-connector miniplug, that is only needed for use with their CMSS system and their proprietary speakers which take in three discrete 2-channel SPDIF streams (i.e. they're not compressed into one SPDIF stream like they are with Dolby Digital 5.1 or Dolby DTS streams). For your interest, if you do connect a stereo miniplug to RCA cable to the digital output, you can choose "left" or "right" streams, and in the Creative Speaker Test (using of course their Microsoft driver), you can then hear "Left Front, Right Front" or "Left Rear, Right Rear" being spoken by the Creative sound test program. Quite puzzling until you realize what's going on
Mplayer Flags to enable AC3 Passthrough
With MPlayer-1.0pre5, alsa 1.0.3-41.3 and kernel 2.6.5-7.97 (e.g. SuSE SLES-9), use the generic alsa driver:
-ao alsa -ac hwac3,a52
In SuSE 9.0, use alsa9 as follows:
-ao alsa9 -ac hwac3,a52
Mplayer Flags to enable analogue 6 channel output
-af sub=60:5 -channels 6
The sub= parameter sets the subwoofer crossover frequency and channel.
Developer specification
Use the alsa driver.
Model information
The Audigy2 soundcard's DSP chip, the emu10k1, has a memory management unit very similar in capabilities to the Intel Pentium processors, allowing it to retrieve sound samples from memory with very little overhead. Even using unpatched commercial linux distros on busy machine, I rarely find any glitch in playback, and so far never with recording.
Installation
I'm using this card in one of the two 32-bit PCI slots of a Dell PowerEdge 1600 SC.
The following is what SuSE 9.0's YaST system automatically adds to /etc/modules.conf for the Audigy 2 card:
options snd-emu10k1 snd_enable=1 snd_index=0
# YaST2: sound system dependent part
#
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-slot-1 off
alias sound-service-1-0 off
alias sound-slot-2 off
alias sound-service-2-0 off
alias sound-slot-3 off
alias sound-service-3-0 off
options snd snd_cards_limit=1 snd_major=116
# 8otl.vIcU+IM+7DC:SB Audigy
alias snd-card-0 snd-emu10k1
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-11 snd-mixer-oss
alias sound-service-0-12 snd-pcm-oss
The output of /sbin/lsmod then includes something like the following:
Module Size Used by
snd-mixer-oss 16184 0 (autoclean)
snd-seq-oss 30816 0 (autoclean)
snd-seq-midi 5184 0 (unused)
snd-emu10k1-synth 6460 0
snd-emux-synth 32540 0 [snd-emu10k1-synth]
snd-seq-midi-emul 5408 0 [snd-emux-synth]
snd-seq-virmidi 4152 0 [snd-emux-synth]
snd-seq-midi-event 4064 0 [snd-seq-oss snd-seq-midi snd-seq-virmidi]
snd-seq 44208 3 [snd-seq-oss snd-seq-midi snd-emux-synth snd-seq-midi-emul snd-seq-virmidi snd-seq-midi-event]
snd-emu10k1 81540 4 [snd-emu10k1-synth]
snd-pcm 78464 0 [snd-emu10k1]
snd-timer 18016 0 [snd-seq snd-pcm]
snd-hwdep 5440 0 [snd-emu10k1]
snd-util-mem 1888 0 [snd-emux-synth snd-emu10k1]
snd-rawmidi 16256 0 [snd-seq-midi snd-seq-virmidi snd-emu10k1]
snd-seq-device 4660 0 [snd-seq-oss snd-seq-midi snd-emu10k1-synth snd-emux-synth snd-seq snd-emu10k1 snd-rawmidi]
snd-page-alloc 7028 0 [snd-emu10k1 snd-pcm]
snd-ac97-codec 45720 0 [snd-emu10k1]
snd 43204 4 [snd-mixer-oss snd-seq-oss snd-seq-midi snd-emu10k1-synth snd-emux-synth snd-seq-midi-emul snd-seq-virmidi snd-seq-midi-event snd-seq snd-emu10k1 snd-pcm snd-timer snd-hwdep snd-util-mem snd-rawmidi snd-seq-device snd-ac97-codec]
soundcore 4356 0 [snd]
Distro here
SuSE 9.0 (commercial version)
Current support
Very well supported by Alsa project. Even the OSS driver is quite OK for playback.
Own experience (playback)
I found the following website by Greg Watson to be very helpful:
http://www.linuxlogin.com/linux/emu10k2.php
Configuring XMMS to use the Digital output (S/PDIF connector)
Since XMMS has an Alsa plugin, you might like to configure it to use digital output (spdif) rather than sending the output over the analogue outputs. In xmms, the way to do this is to go to Options->Preferences (Ctrl P) and select the tab "Audio I/O Plugins". In the box "Output Plugin" select the
"ALSA 1.2.8 output plugin [libALSA.so]"
and press the "Configure" button. In the "ALSA Driver configuration", click the checkbox "[x] User defined:", and enter "spdif" instead of "default". Leave the "Mixer card:" set to "0", and "Mixer device:" set to "PCM". This will select the digital output for the soundcard, and now xmms will send the output to alsa's digital output. For some unknown reason, "mono" audio tracks don't play this way, I think it's perhaps because the header info isn't being generated correctly. So only "stereo" tracks work at the moment, which is the most useful case anyway.
Update: With SuSE SLES-9 RC5 (kernel 2.6.5-7.97), simultaneous output over analogue and digital works fine: enable it by going into alsamixer and searching for the slider:
Audigy Analog/Digital Output Jack [Off]
(very far over to the right), and un-muting it by pressing "M".
Strange behaviour related to using the Firewire port
The only unexpected and annoying thing I've experienced with this soundcard is that when writing heavily to external drives connected to the soundcard's Firewire port, the audio playback will suddenly jam up, resulting in only a "beeeeeeeeeep" being played back instead of the expected audio. The only way to recover seems to be to reboot the system. Update: this problem no longer occurs in Ubuntu Dapper Drake.
Own experience (recording)
Recording under Alsa using the "Creative Labs Audigy2" sound card was quite straightforward. In alsamixer, we need to hit the spacebar on the "Capture" and "Line" tabs, otherwise we won't hear anything from the analog output of the soundcard (i.e. when it's connected for example to a receiver set to 5.1 channel mode). Also, hit the "M" button, if you see the "MM" symbol over either column. Before we set the tape playing, we need to set the recording level using alsamixer so that the "Line" is set to zero and the "Capture" is set to 40, to avoid any possible clipping of the input recording level. Be sure to listen to the recorded music, for grating or aliasing effects expecially in the high frequncy ranges. I've only used 44.1KHz sampling rate and 16bit A/D, using a small script something like this:
#!/bin/bash
trap 'echo killing $wavrec_pid; kill -9 $wavrec_pid; echo Removing /tmp/lame_wavrec$$; rm /tmp/lame_wavrec$$; echo Audio is in lame_wavrec_$$.mp3; exit' 1 2 3 15
mkfifo --mode=a=rw /tmp/lame_wavrec$$
# The first parameter is the number of minutes to record for.
# If nothing is specified, record for the default, 50 minutes.
DEFAULT=50
MINUTES=$1
if [ "x$MINUTES" = "x" ] ; then
echo "No recording time specified, defaulting to $DEFAULT"
MINUTES=$DEFAULT
fi
wavrec -t $(($MINUTES * 60)) -s 44100 -S /tmp/lame_wavrec$$ &
wavrec_pid=`ps -ef|grep lame_wavrec$$ |grep -v grep|awk '{print $2}'`
lame /tmp/lame_wavrec$$ lame_wavrec_$$.mp3
Back to
LinuxHints - Everything GNU ever wanted to know about Linux
--
PeterKnaggs - 14 Jun 2005
to top