[linux-audio-user] Looking for soundcard.

Sylvain Reynal reynal at ensea.fr
Mon Dec 19 07:28:08 EST 2005


On Monday 19 December 2005 10:50, Dmitry Baikov wrote:
> Please-please-please, tell your
> settings for freebob!I still can't figure out how to achieve less than
> 60msec latency withmy FA-101 (which is very similar). Than you.

1) If you've not already done so, recompile your kernel with the PREEMPT flag 
turned on (i personally use 2.6.11 and 2.6.14 vanilla kernels). Otherwise you 
may experience too many xruns, e.g., when switching windows or running tons 
of apps etc. I'm still testing a 2.6.14 kernel further patched with Ingo 
Molnar's low-latency patches. I'll keep you posted.

2) change the PCI bus latency of your IEEE controller (let me insist: this may 
be a +real+ bottleneck; an evidence that you've got such a bottleneck there 
is the occurence of tons of "IEC61883C: possible raw1394 error" messages when 
jackd is running...). 

First, fetch the ID of your IEEE controller:
root at stooges:/audio > lspci -vv | grep IEEE
0000:02:04.0 FireWire (IEEE 1394): Texas Instruments TSB43AB21 IEEE-1394a-2000 

Mine is 0000:02:04.0. Replace 02:04.0 with YOUR number in the following:

root at stooges:/audio > setpci -v -s 0000:02:04.0 latency_timer=f0

(0xf0=240 sounds ok for me, but the rule is simply that it should be set to 
the maximum allowed value, so that the IEEE controller can hold the bus for a 
sufficiently long period for the data bursts to complete on time). 


3) run freebob, then jackd with the following parameters. I personally prefer 
to run them with startproc, and stop them with "killall" (i actually put all 
the following in a rcjack start|stop script in /etc/init.d; ask for it if 
you're interested).

startproc -t 3 -l /audio/freebob.log /usr/bin/freebob && echo "freebob 
running"
JACKD_XML="-o osc.udp://localhost:31000"
JACKD_OPTS="-p 64  -b 40 -i 8 -t 16 -s 4"
startproc -t 3 -n -20 -l /audio/jackd.log /usr/bin/jackd -R -d iec61883 
$JACKD_XML $JACKD_OPTS && echo "jackd running"

("-n -20" sets the lower possible nice value for jackd). 
This leads to ~11ms as reported by jdelay.

And if you're interested, I can send you my edirolFA66.xml; this avoids 
running the freebob daemon (in this case, 
JACKD_XML="-f /audio/bin/edirolFA66.xml"). Minor changes shoud be needed for 
the FA100. You can build one by hand by retrieving all the necessary info 
from the output of
"libfreebobctl/examples/test-freebobctl-osc osc.udp://localhost:31000"

Note also that i run everything as root. Surely, this is not good practice, 
but ok for testing purpose... Otherwise, patch your kernel with the rt-lsm 
patch, or -even safer- use rlimits. As an ultimate side-note, i also shutdown 
all services that are not mandatory when doing audio recording, e.g., 
rcnetwork, rcpowersaved, rcpccardd, (and with SuSE: suseplugger, 
susewatcher,.... )

Syd




More information about the Linux-audio-user mailing list