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@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@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