On Fri, Dec 24, 2004 at 12:05:07PM -0500, Rui Nuno Capela wrote:
...
device. It was probably this very one that was aunting you before. After
some attention and furious alsa-bugtracker exchange, Karten Wiese has been
able to solve this, even tought he's got no OHCI hardware near him.
I was watching that thread a little, because my symptoms were
very similar. Strangely, though, I have a UHCI based card, so I'm
not sure why I was seeing similar symtoms.
Then Karsten did it again. He crafted a special jackd
alsa/usx2y backend
which enabled the so-called raw-usb mode of operation. And it was just
yesterday I have proposed the merge into the official alsa backend driver
on the jackit-devel list. With this new experimental stuff, one can run
jackd in realtime with pretty lowest-latency parameters, without aural
artifacts (i.e. crackling). AFAICT this is a greatest breakthrough on the
USB audio arena, so I would think twice about getting rid of your US428 ;)
I'm having a bit of trouble with the usx2y backend to jackd. I
bastardized the jackd-us2xy rpm to make a nice deb file, but
jackd still says "unknown driver 'usx2y'". Even downloading and
compiling the source, and running it directly from the directory
it ws compiled into. And does it automatically use the rawusb
interface? What's the advantage of using the usx2y driver as
opposed to the alsa driver?
So my recipe goes like this:
1. Have REALTIME_PREEMPT on the kernel config.
2. Make sure you have loaded the latest snd-usb-usx2y>=0.8.7.1 (as of
latest alsa-kernel cvs).
3. Tune the RT priorities (SCHED_FIFO) of the time-audio critical IRQ
threads:
90 - timer (IRQ 0)
80 - rtc (IRQ 8)
70 - snd (or whatever your PCI soundcard will hook, usually IRQ 5)
60 - usb (ohci_hcd or uhici_hcd, usually IRQ 10)
You should have schedutils installed (chrt) for this exercise.
4. Load the snd-usb-usx2y with the nrpacks parameter set for:
a. high-stability: nrpacks=4
b. low-latency: nrpacks=1
Anyway, be advised that you can only run the forementioned "rawusb"
mode if you set on this later one (modprobe snd-usb-usx2y nrpacks=1).
Run your jackd command line (or qjackctl;) as usual, but given the above
priority tunning, you should try e.g. jackd -R -P60 ...
Thanks a lot for this detailed info! I recompiled the newest
snd-usb-usx2y driver, but how do I tune RT priorities? I got the
schedutils package, but I'm having trouble finding details on how
to use chrt.
Thanks again for the info.
-spencer