[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

This is an old revision of the document!


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.
Try not to block the existing cards' ventilation.

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:

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.

TroubleShooting

Diagnostic and information gathering

For first -try gathering some useful information about your situation:

Make a right soundcard as first (default)

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 1)

1)
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;  
      
      
      after that you can use up to 2 Gb RAm for soundfonts loading.
      
====== Useful Links: ====== ====== Sources ====== Originally written by — John Ciemgals 2013/02/07 04:50 Edited by — mfillpot