Sound Blaster Audigy Rx Setup
Things that make me go hmmmm?
There used to be a time when configuring audio hardware was a complex and time-consuming task. These days it mostly just works. Mostly. Here I will try to describe a few things that I've learnt about my sound card and about how to configure it properly.

All the things described in this article were done on Arch Linux running kernel 6.3.0.11.realtime1-1-rt from Arch – things may be different on other kernel versions. Also, some examples may need a bit of tweaking if this isn't the only sound device in your PC.
Why a sound card?
Modern PCs have built-in audio chips that usually work very well and are good enough for most people's everyday needs. So why would anyone buy a sound card? For me, there are two big features that the Audigy Rx provides and the onboard chip does not:
- Hardware mixing. The card (and any other card that supports hardware mixing) allows multiple applications to use the sound card at the same time without any additional software needed; the card will just mix the audio streams for you. This can be very handy if you want to watch a video in your web browser or play some game while also listening to music. There are software-based solutions to that (and most modern distributions will be using those by default) but I've never been entirely happy with any of them – if the sound card does it for you, it just works.
- MIDI. Proper games come with a MIDI soundtrack and someone needs to convert those MIDI files to audio. This can again be done in software, but with a good sound card it doesn't have to. The Audigy Rx can play MIDI files for you, in great quality and without causing any additional CPU load.
I used to have a Sound Blaster Live that had these features and, well, apparently I've gotten quite used to them.
The hardware
As mentioned earlier, I'm using a Sound Blaster Audigy Rx (SB1550), a modern PCI-e x1 card with a CA10300 (emu10k2) chip; other cards with the same chip should/might behave similarly.
This is what my OS has to say about it:
$ lspci | grep Creative 03:00.0 Multimedia audio controller: Creative Labs CA0108/CA10300 [Sound Blaster Audigy Series] $ cat /proc/asound/cards 0 [Audigy2 ]: Audigy2 - SB Audigy 5/Rx [SB1550] SB Audigy 5/Rx [SB1550] (rev.0, serial:0x10241102) at 0x3000, irq 16
The card has several analog input and output connectors as well as one digital optical output; I'm only using the analog ports. I also hooked up the internal front-panel audio connector that provides additional microphone and headphone jacks:
Typically I have a microphone connected to Mic 1, some headphones on the Headphones / Front jack and a hi-fi unit connected to the Rear / SR output.
With all that said, let's see how we can use the card for audio playback and recording.
Drivers & utilities
Cards like the Audigy Rx work out of the box on any current Linux system. Your distribution should load the snd_emu10k1
driver automatically, no additional parameters are needed. If you would like to use the card's hardware MIDI features, make sure to also load the snd_seq
module.
For MIDI playback, you will need to load a SoundFont into your card (more on this later); the awesfx package can do just that.
ALSA
The exciting landscape of modern day GNU/Linux desktops offers a wide choice of audio systems. Depending on what exactly I do, I use JACK, PipeWire or ALSA. Since JACK and PipeWire also use ALSA in the background, let's have a look at that one first.
The driver presents several virtual audio devices for the card and we get to figure out which one to use for what.
Audio playback
Playback is fairly simple. We have 2 playback devices:
$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Audigy2 [SB Audigy 5/Rx [SB1550]], device 0: emu10k1 [ADC Capture/Standard PCM Playback] Subdevices: 32/32 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 Subdevice #8: subdevice #8 Subdevice #9: subdevice #9 Subdevice #10: subdevice #10 Subdevice #11: subdevice #11 Subdevice #12: subdevice #12 Subdevice #13: subdevice #13 Subdevice #14: subdevice #14 Subdevice #15: subdevice #15 Subdevice #16: subdevice #16 Subdevice #17: subdevice #17 Subdevice #18: subdevice #18 Subdevice #19: subdevice #19 Subdevice #20: subdevice #20 Subdevice #21: subdevice #21 Subdevice #22: subdevice #22 Subdevice #23: subdevice #23 Subdevice #24: subdevice #24 Subdevice #25: subdevice #25 Subdevice #26: subdevice #26 Subdevice #27: subdevice #27 Subdevice #28: subdevice #28 Subdevice #29: subdevice #29 Subdevice #30: subdevice #30 Subdevice #31: subdevice #31 card 0: Audigy2 [SB Audigy 5/Rx [SB1550]], device 3: emu10k1 [Multichannel Playback] Subdevices: 1/1 Subdevice #0: subdevice #0
- device 0: ADC Capture/Standard PCM Playback
- This is a combined device for basic audio playback and capture. We can play stereo audio through it which should be enough for everybody™.
- device 3: Multichannel Playback
- This is a playback-only device that gives access to 16 playback channels. Some of them are wired to output jacks, others are connected to an effect bus. Channels 1 and 2 are identical to the stereo playback channels on the first device; if in doubt, use these.
If you do crazy multichannel things (like 5.1 or 7.1 surround audio) the second device might be quite handy, otherwise either one should do the job.
Mixing
You can use alsamixer
to fine-tune the audio volume of your analog output jacks:
That's quite a collection of controls. Let's look at what some of them do:
- Master
- Controls the master output volume for all channels
- Tone
- If enabled, allows you to change the Bass and Treble values; don't go above 50% or you will get audible distortions
- Front
- Controls the volume for the Headphones / Front as well as the front-panel audio jack; also, see S/PDIF Optical Raw (below)
- Surround
- Controls the volume for the Rear / SR audio jack
- Center
- Controls the volume for the Center channel which is the left channel on the Sub / Center / SL jack
- LFE
- Controls the volume for the LFE (low-frequency effects, where the subwoofer goes) channel which is the right channel on the Sub / Center / SL jack
- Synth
- This is the audio volume for MIDI playback
- Wave
- Controls the volume for anything that isn't MIDI (i.e. "normal" audio playback)
- Mic Select
- Which microphone to use. All Mic input jacks are mapped to Mic1, so use that one
- S/PDIF Optical Raw
- Needs to be muted to get a signal on the Headphones / Front jack
- Audigy Analog/Digital Output Jack
- Needs to be unmuted to get a signal on any analog output jack
Multichannel audio playback
I don't have the equipment needed to test multichannel audio but I tried to figure out where the 16 output channels are routed anyway. I also had a look at the Audigy mixer / default DSP code document to try and find out what these channels are used for and this is what I came up with:
Channel | Used for | Mixer channel | Jack(s) | ||
---|---|---|---|---|---|
1 | Audio playback (L) | Wave | F | R | S |
2 | Audio playback (R) | Wave | F | R | S |
3 | Rear channel (L) in 5.1 playback | PCM Surround | R | ||
4 | Rear channel (R) in 5.1 playback | PCM Surround | R | ||
5 | MIDI playback (L) | Synth | F | R | S |
6 | MIDI playback (R) | Synth | F | R | S |
7 | Center channel in 5.1 playback | PCM Center | S | ||
8 | LFE (subwoofer) in 5.1 playback | PCM LFE | S | ||
9 | Front channel (L) in 5.1 playback | PCM Front | F | ||
10 | Front channel (R) in 5.1 playback | PCM Front | F | ||
11 – 16 | — | — |
Where F = Headphones / Front, R = Rear / SR, S = Sub / Center / SL
I have no idea whether or not this is accurate and/or useful to anyone.
MIDI playback
To get the sound card to do the dirty job of turning sheet music into audible sounds, you can use the built-in MIDI synthesizer:
- Make sure to have the
snd_seq
kernel module loaded - Download and install the awesfx utility
- Get a SoundFont. The
8MBGMSFX.SF2
from an old Sound Blaster Live CD should do fine; personally I'm using the Weeds General MIDI Soundfont v3.0 at the moment
Then load the sound font:
$ sfxload weedsgm3.sf2
Now you should be ready to play MIDI files. The card provides several ports for this:
$ aplaymidi -l Port Client name Port name 14:0 Midi Through Midi Through Port-0 16:0 SB Audigy 5/Rx [SB1550] Audigy MPU-401 (UART) 16:32 SB Audigy 5/Rx [SB1550] Audigy MPU-401 #2 17:0 Emu10k1 WaveTable Emu10k1 Port 0 17:1 Emu10k1 WaveTable Emu10k1 Port 1 17:2 Emu10k1 WaveTable Emu10k1 Port 2 17:3 Emu10k1 WaveTable Emu10k1 Port 3
Any of the Emu10k1 WaveTable ports will do. Pick you favourite piece of MIDI music and enjoy:
$ aplaymidi gm_tt14.gm --port 17:0
Make sure you have the Wave mixer channel wide open – playback tends to be a bit quieter than for sampled music.
If you don't want to specify the port every time you play a MIDI file, you can set an environment variable:
$ export ALSA_OUTPUT_PORTS=17:0
Put that somewhere in your .bashrc
or .xinitrc
and things will just magically work.
Recording
We have 3 devices available for recording:
$ arecord -l **** List of CAPTURE Hardware Devices **** card 0: Audigy2 [SB Audigy 5/Rx [SB1550]], device 0: emu10k1 [ADC Capture/Standard PCM Playback] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Audigy2 [SB Audigy 5/Rx [SB1550]], device 1: emu10k1 mic [Mic Capture] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: Audigy2 [SB Audigy 5/Rx [SB1550]], device 2: emu10k1 efx [Multichannel Capture] Subdevices: 1/1 Subdevice #0: subdevice #0
After some experiments, this is what I do know about them:
- device 0: ADC Capture/Standard PCM Playback
- We already know this combined playback & capture device from before. You can use it to record things that are currently being played, i.e. the audio track from a video you are watching or the output from the Audigy's hardware MIDI synth. Use alsamixer's Capture screen to configure which channels to capture: PCM for audio or Synth for MIDI.
- device 1: Mic Capture
- It would seem that this device might allow you to capture the microphone input; this doesn't really work though. Audacity captures weird noises (weirder than usual!) and Ardour refuses to capture anything on this device.
- device 2: Multichannel Capture
- This is the one to use when capturing audio from any of the input channels. The device offers 16 channels, channels 1 and 2 are the microphone jacks, 11 and 12 are Line in.
Ardour setup with ALSA
To use the card in Ardour, this is what I recommend:
- Use the ADC Capture/Standard PCM Playback input device if you want to capture audio that is being played by the card itself (device 0)
- Use the Multichannel Capture input device if you want to capture a microphone or line signal (device 2)
- Use the Multichannel Playback output device (device 3)
JACK
When things get a bit more serious, involving external audio interfaces or the desire to route signals through various applications and plugins, I use JACK, the JACK Audio Connection Kit.
The following command runs the JACK daemon with realtime scheduling (-R
) on the ALSA backend (-dalsa
) at 48kHz (-r48000
) sample rate with a period size of 128 frames (-p128
) and 2 periods latency (-n2
) in duplex mode (-D
), using ALSA device 2 for capturing (-Chw:0,2
, the Multichannel Capture device) and device 3 for playback (-Phw:0,3
, the Multichannel Playback device) with 16 bit samples (-S
and raw access to MIDI devices (-Xraw
):
$ jackd -R -dalsa -r48000 -p128 -n2 -D -Chw:0,2 -Phw:0,3 -S -Xraw
The kernel docs claim that it should be possible to use smaller period sizes (64 or even 32 frames) but on my system that leads to unreliable audio playback (occasional stutters) even with a realtime kernel.
Sometimes I use alsa_in
to connect a USB audio interface to JACK in order to capture signals from a MIDI keyboard or an electric guitar:
$ alsa_in -d hw:1 -r 48000
We can use the same approach to make the other capture device available. In the example above we chose to use the Multichannel Capture device for our JACK server. If we suddenly decide that we also want to capture what's being played at the moment, we can do just that:
$ alsa_in -d hw:0 -c 1 -c 2
This will add channel 1 and 2 from the ADC Capture/Standard PCM Playback device to our JACK server.
I also found JACK very nice when trying to figure out the channel mapping. This command, for instance, will run Meterbridge with a digital peak meter for each input channel:
$ jack_lsp | grep :capture | xargs meterbridge -t dpm

The big question is of course: what's happening on channel 16? Frankly I have no idea, but it seems to be happening at precisely 12 kHz, and again at 24 kHz:
Something for future-me to investigate.
PipeWire
So far, so good. Unfortunately JACK and ALSA are not the only players around. More and more applications require PulseAudio to function properly. PulseAudio is known for being very user-friendly, but also for being a bit troublesome on the reliability and stability side of things.
Luckily these days there is an alternative: PipeWire has a PulseAudio compatibility layer which allows us to run any application that needs PulseAudio with PipeWire instead.
In my case, the PulseAudio-only application that I wanted to run needed to use the microphone, so let's make sure that it can.
First, we need to run three different processes (make sure to terminate JACK first):
$ pipewire & [1] 63238 $ wireplumber & [2] 63240 $ pipewire-pulse & [3] 63246
Now things get a bit strange: PipeWire does see our input channels, but somehow it doesn't get a signal on any of them:
I don't know what exactly is going on, but it's easy enough to solve: in the Configuration tab, change the Profile to Pro Audio:
And now all our input channels from the ALSA section are back:
- The first device is ADC Capture/Standard PCM Playback, the channel to capture what's being played
- The second device is the strange broken Mic Capture channel
- The last one is our Multichannel Capture device. Use this one to capture the microphone.
And that concludes today's investigation.
Conclusion
There is quite a bit of unexpected behaviour: the default audio device cannot capture audio from the microphone input jacks, the dedicated microphone input device does not work right and PipeWire creates its own little mess. If, however, you pick the right devices and the appropriate configuration options, the Audigy Rx offers some unique features that no other current sound card provides (or at least none that I'm aware of).
If you have any comments, corrections or complaints, let me know.