[PlanetCCRMA] SB Live (ca0106) and hundreds of xrun messages

Fernando Lopez-Lezcano nando@ccrma.Stanford.EDU
Tue Feb 7 18:14:02 2006


On Tue, 2006-02-07 at 16:47 -0600, David Slimp wrote:
> On 2/7/06, Fernando Lopez-Lezcano <nando@ccrma.stanford.edu> wrote:
> > On Tue, 2006-02-07 at 14:18 -0600, David Slimp wrote:
> > > For the last few weeks I'd been playing with CCRMA and apps using the
> > > built-in intel soundcard.  I decided to take advantage of my SL Live card,
> > > but am getting hundreds of xrun messages.  Even trying to start jackd
> > > from a pure command line login.
> > >
> > >
> > > # cat /proc/asound/cards
> > > 0 [CA0106         ]: CA0106 - CA0106
> > >                      Live! 7.1 24bit [SB0410] at 0xb800 irq 22
> >
> > Hmmm, I don't know this particular "model" of the soundblaster. Beware
> > that not all soundblasters are created equal, some are pretty bad, maybe
> > this is one of them (I guess you could look up threads in the linux
> > audio users mailing list, there have been quite a few).
> 
> Yes.... I've read that SOME models might be a lot like the
> dreaded WinModems.  Since THIS model was only $30, I'd
> not be too surprised.  Are there any tests you know to run to
> see what the capabilities might or might not include?
> 
> [MUNCH]
> ]$ jackd -d alsa -d hw:0
> jackd 0.99.36
> Copyright 2001-2003 Paul Davis and others.
> jackd comes with ABSOLUTELY NO WARRANTY
> This is free software, and you are welcome to redistribute it
> under certain conditions; see the file COPYING for details
> 
> JACK compiled with System V SHM support.
> loading driver ..
> creating alsa driver ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit
> control device hw:0
> configuring for 48000Hz, period = 1024 frames, buffer = 2 periods
> Couldn't open hw:0 for 32bit samples trying 24bit instead
> Couldn't open hw:0 for 24bit samples trying 16bit instead
> nperiods = 2 for capture
> nperiods = 2 for playback
> 
> ============================
> 
> However, qjackctl still gives hundreds:
> =============
> 16:34:25.501 Patchbay deactivated.
> 16:34:25.576 Statistics reset.
> 16:34:25.581 Startup script...
> 16:34:25.582 artsshell -q terminate
> 16:34:25.669 MIDI connection graph change.
> 16:34:25.901 Startup script terminated with exit status=256.
> 16:34:25.901 JACK is starting...
> 16:34:25.901 /usr/bin/jackd -v -dalsa -dhw:0 -r48000 -p512 -n2

the parameters from inside qjackctl are different from what you tried
above, here you have "-p512 -n2", above you have "-p1024 -n2".
  
> 16:34:25.905 JACK was started with PID=5780 (0x1694).
> 16:34:26.106 MIDI connection change.
> 16:34:29.123 Server configuration saved to "/home/david/.jackdrc".
> 16:34:29.123 Statistics reset.
> 16:34:29.128 Client activated.
> 16:34:29.128 Audio connection change.
> 16:34:29.135 Audio connection graph change.
> 16:34:29.168 XRUN callback (1).
> 16:34:31.149 XRUN callback (97 skipped).
> 16:34:33.166 XRUN callback (99 skipped).
> 16:34:35.177 XRUN callback (99 skipped).
> 16:34:37.188 XRUN callback (99 skipped).
> .....
> ============================
> 
> If I run the command given above, from the command line,
> I get no xruns:
> $ /usr/bin/jackd -v -dalsa -dhw:0 -r48000 -p512 -n2
> getting driver descriptor from /usr/lib/jack/jack_alsa.so
> getting driver descriptor from /usr/lib/jack/jack_dummy.so
> getting driver descriptor from /usr/lib/jack/jack_oss.so
> jackd 0.99.36
> Copyright 2001-2003 Paul Davis and others.
> jackd comes with ABSOLUTELY NO WARRANTY
> This is free software, and you are welcome to redistribute it
> under certain conditions; see the file COPYING for details
> 
> JACK compiled with System V SHM support.
> server `default' registered
> loading driver ..
> apparent rate = 48000
> creating alsa driver ... hw:0|hw:0|512|2|48000|0|0|nomon|swmeter|-|32bit
> control device hw:0
> configuring for 48000Hz, period = 512 frames, buffer = 2 periods
> Couldn't open hw:0 for 32bit samples trying 24bit instead
> Couldn't open hw:0 for 24bit samples trying 16bit instead
> nperiods = 2 for capture
> nperiods = 2 for playback
> 5791 waiting for signals
> 
> ============================
> 
> But still, after starting jack with either method...  After loading a song
> with hydrogen, it refuses to start playing... where as it had been playing
> just fine with the internal soundcard (working with jack).
> 
> I guess the biggest question at THIS point, is why all the xrun messages
> with qjackctl ?  ... and it doesn't seem I get them running jack from the
> command line?  -- or are they just not showing up?

Hmmm, I'd suggest first you do this:
  ps axuw|grep jackd
to make sure there are no other instances of leftover jacks around. Kill
them if you find any. 

Then start jack as a normal user (not root) from the command line. Use
the line above that seemed to work before:

  jackd -d alsa -d hw:0

That will give you two periods of 1024 samples ("-p1024 -n2")

Start Hydrogen, make sure it is configured as a Jack client (it is
somewhere in the preferences, I think). 

Try playing one of the demo songs. 

Hmmm, also, make sure the mixer is unmutted and volumes are up, you can
user gamix for that. 

If this is working you should check your settings in Qjackctl to make
sure they match what is working from the command line. 

-- Fernando