This is an old revision of the document!
Table of Contents
Set Up Sound Blaster Live! 5.1 & Audigy Rx in Slackware
This HOWTO is based on setup experience with following hardware:
- Creative Labs Sound Blaster Live! 5.1 ( SB0060)
- Creative Inspire T3100 2.1 Speakers
- Intel DG965SS motherboard
- Intel Core 2 Duo 2.2 GHz E4500 CPU
- 3 Gb RAM, 500 Gb HDD, Slackware 14.0 32bit Full install, generic kernel.
- 4 Gb RAM, 1 Tb HDD, Slackware64 14.1 - 64 bit Full install, default huge kernel.
- Creative Labs Sound Blaster Audigy Rx ( SB1550 )PCIe on ASUS R8H61/i3 - 3220/ 16 Gb RAM / Slackware64 14.1
Installation and Basic Configuration
- Shutdown the computer
- Insert the Sound Blaster card into a free PCI slot ( Audigy - in PCIe slot) on your mothherboard.
I usually try to put the sound card in the “lowest” slot, most distant from the CPU, and close to the bottom of the case.
- When the Sound Blaster card has been installed and secured with a bracket screw, you may turn the computer on and log into Slackware.
- After login, you will have working sound from your new sound card.
- In order to obtain full control, do the following (in KDE): click on “kmixer > mixer > settings > configure channels…”, and drag & drop all channels you need from the “Available channels” window to the “Visible channels”.
WaveTable MIDI Configuration
Now it's time to set up the WaveTable feature:
- Download the latest awesfx package here: ftp://ftp.suse.com/pub/people/tiwai/awesfx/ (tested with 0.5.1d)
- Extract the source tarball, and compile it (with the usual “
./configure && make && make install
” routine as root) - After that, you need a soundbank aka soundfont - examples of freely available soundfonts are:
- Choose one of these soundfont (.sf2) files and copy it to a directory which you may have to create first:
/usr/local/share/sounds/sf2/
- Then edit
/etc/rc.d/rc.local
with a text editor (vi, nano. or midnight commander's built-in editor) to initialize the WaveTable.
An example:
#!/bin/sh # # /etc/rc.d/rc.local: Local system initialization script. # # Put any local startup commands in here. Also, if you have # anything that needs to be run at shutdown time you can # make an /etc/rc.d/rc.local_shutdown script and put those # commands in there. echo "SB synth module load!" /sbin/modprobe snd_emu10k1_synth echo "sleep for LivE! appear" sleep 5 echo "Load 8 Mb midi patch set for SB Live! 5.1 soundcard!" #/usr/local/bin/asfxload /usr/local/share/sounds/sf2/8mbgmsfx.sf2 /usr/local/bin/asfxload /usr/local/share/sounds/sf2/WeedsGM3.sf2 echo "Pause ***** Sleep 10 ********" sleep 10
- You can comment the “
sleep
” command (using a#
character at the beginning of the line) - it pauses the computer for N seconds. I added that “sleep
” to get time to check whether the soundfont is being loaded without errors during startup.
- The command “
modprobe snd_emu10k1_synth
” is needed here, because without it, I have experienced the error “No Emux synth hwdep device is found” when trying to load a soundfont at this stage of the boot.- When i try to load a soundfont after I login to KDE, it succeeds without requiring that “snd_emu10k1_synth” commandline in
rc.local
, but as I want to load a soundfont automatically at startup, I load that module as shown in the example code)
- After these preparations and a restart, everything should be working and you can use your MIDI WaveTable device.
Playing MIDI
For playing MIDI (.mid) files you can use the Audacious program - in KDE that can be found under Start > Multimedia > Audacious (Music Player).
- Start Audacious, and choose File > Preferences
- Choose Plugins tab, then Input tab, and choose AMIDI-Plug (MIDI Player)
- In the AMIDI-Plug Settings window, choose Preferences, then ALSA backend
- You will see ALSA output Ports. Choose (by ticking the checkbox) 17:0 Emu10k1 WaveTable Emu10k1 Port 0
- Press Ok and close all configuration dialogs.
- Now you can play your MIDI files in Audacious.
If you encounter any problems, or found an error in this HOWTO, please contact m e: john AT sten.lv.
Play files from CLI
For playing MIDI (.mid) files under Command Line Interface, you can use a aplaymidi command from slackware, or download and install pmidi from http://slackbuilds.org . The both programms is very similar in use and syntax. To play MIDI via aplaymidi:
do
aplaymidi -l
you get something like this:
aplaymidi -l Port Client name Port name 14:0 Midi Through Midi Through Port-0 16:0 SB Audigy 2 Value [Unknown] Audigy MPU-401 (UART) 16:32 SB Audigy 2 Value [Unknown] 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
now you must define hw wavetable port for programm and midi file to play:
aplaymidi -p 17:0 BBEE.MID
To play another types of files ( .wav .flac .mp3 and so on) you can use “play” command. in default it use default sound card for output.
play loona.mp3 loona.mp3: File Size: 3.44M Bit Rate: 112k Encoding: MPEG audio Channels: 2 @ 16-bit Samplerate: 44100Hz Replaygain: off Artist: Loona Duration: 00:04:05.48 Title: Hijo de la La Luna
You also can use mixer for change volume:
alsamixer
TroubleShooting
Diagnostic and information gathering
For first -try gathering some useful information about your situation:
lspci
Gives you info about hardware devices sits on PCI and PCIe bus of your computer
cat /proc/asound/cards
gives you information about cards found your sound system and its numerating. 0 card is be default card.
there is also some another useful commands:
aplay -l
and
aplay -L
and even
lsmod
Make a right soundcard as first (default)
Firstly, make a file called sound.conf under /etc/modprobe.d/ :
##alias char-major-116 snd options snd cards_limit=2 slots=snd-emu10k1,snd-hda-intel # LHB6.mOmgEN0gox0:SBLive! 5.1 Digital Model SB0220 alias snd-card-0 snd-emu10k1 alias sound-slot-0 snd-emu10k1 # W60f.x8s5HMdIibD:82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller alias snd-card-1 snd-hda-intel alias sound-slot-1 snd-hda-intel ##options snd-emu10k1 enable=1 index=0 max_buffer_size=756 options snd-emu10k1 enable=1 index=0 max_buffer_size=1750 options snd-hda-intel enable=1 index=1
Problems with SoundFonts
SB Live! And Audigy Rx use similar DSP - emu10k based, and looks like have similar problems. As i read, problem root is in that fact, a DSP use 31 bit in memory address instead of 32 bits - and it causes problem on linux x64 systems with more than 2 (3?) Gb RAM. I encounter that with 4 Gb RAM on Slackware64 14.1 - the symptoms is that, you cannot load soundfont larger than 16 Mb - asfxload on trying that writes: sfxload: no memory left while asfxload -M gives something like this: DRAM memory left = 115576 kB it means - about 100+ megabytes free ram. but you really cannot load even 30 Mb soundbank.
Ok, what is workaround? there is two: decrease memory size used by system at boot stage to 2 Gb - use at lilo kernel parameter
memmap=2048M\\$6144M
other is more usable - change kernel source files and recompile kernel:
arch/x86/include/asm/dma.h
change in string:
/* 4GB broken PCI/AGP hardware bus master zone */ #define MAX_DMA32_PFN ((4UL * 1024 * 1024 * 1024) >> PAGE_SHIFT)
change 4UL to 2UL:
/* 4GB broken PCI/AGP hardware bus master zone */ #define MAX_DMA32_PFN ((2UL * 1024 * 1024 * 1024) >> PAGE_SHIFT)
after that need to recompile kernel. after that you get usable 1 Gb RAM for SB Live /Audigy Rx soundfonts.
if you want more - you need edit also sound/pci/emu10k1/emu10k1.c
err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card); if (err < 0) return err; if (max_buffer_size[dev] < 32) max_buffer_size[dev] = 32; // else if (max_buffer_size[dev] > 1024) // max_buffer_size[dev] = 1024; if ((err = snd_emu10k1_create(card, pci, extin[dev], extout[dev], (long)max_buffer_size[dev] * 1024 * 1024, enable_ir[dev], subsystem[dev], &emu)) < 0) goto error;
you must comment that strings, as in upper block:
else if (max_buffer_size[dev] > 1024) max_buffer_size[dev] = 1024;
And then there is one else thing: default memory size for soundfonts is 128 Mb. If you want to increase it, you must create a
sound.conf file in /etc/modprobe.d/
options snd-emu10k1 max_buffer_size=1750
where max_buffer_size reffers to amount of RAM dedicated to soundfonts, in megabytes. in that case its about 1.7 Gb.
after that you can use up to 2 Gb RAM for soundfonts loading ( when define that in max_buffer_size, and do restart).
Useful Links:
Sources
Originally written by — John Ciemgals 2013/02/07 04:50
Edited by — mfillpot