This HOWTO is based on setup experience with following hardware:
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.
Now it's time to set up the WaveTable feature:
./configure && make && make install
” routine as root)/usr/local/share/sounds/sf2/
/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
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. 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.rc.local
, but as I want to load a soundfont automatically at startup, I load that module as shown in the example code)For playing MIDI (.mid) files you can use the Audacious program - in KDE that can be found under Start > Multimedia > Audacious (Music Player).
If you encounter any problems, or found an error in this HOWTO, please contact m e: john AT sten.lv.
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
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
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
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:
go to /usr/src/~linux - that is your linux source.
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.
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/
write in file /etc/modprobe.d/sound.conf :
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.
Originally written by — John Ciemgals 2013/02/07 04:50
Rewrited with used materials from “Links” and LinuxQuestions.org Slackware forum, especially user Drakeo help — John Ciemgals 2014/03/19 01:15
Edited by — mfillpot