Using

From FreeBoB

Playing

First, run jack:

$ jackd -d freebob

with or without more parameter (think about --realtime). If returns something looks like...

 FREEBOB: Driver compiled on Apr 13 2006 16:39:14
 FREEBOB: Created driver freebob_pcm
           period_size: 512
           period_usecs: 10666
           sample rate: 48000
           running with Realtime scheduling, priority 60
 DRV MSG: freebob_driver.c:82 (freebob_driver_attach): Registering capture port cap_0_0_0_LineIn 1+2 right                                
 DRV MSG: freebob_driver.c:82 (freebob_driver_attach): Registering capture port cap_0_0_0_LineIn 1+2 left
 [...]
 Driver start....
 [...]

...uhu, should be ok. Don't worry about Warnings.

So, use a player directioning to jack, e.g. mplayer. And don't forget: run as same jackd user.

$ mplayer -ao jack coolsong.wav

(or mp3, or, well, you know!) Listening? Of course :) If not, it can be for several reasons. This is extremely complicated. First thing's first, check UdevConfiguration. If this doesn't do it, you are going to have to look around and try to find someone to help. At this stage in development, there are often errors in the implementation of so many different possible places that the freebob developers are hard pressed to assist each interested individual in trying to correct problems. Review our FAQ for more possible solutions.

Recording

Start jackd bla bla bla....And so, run something looks like

$ jackrec -f test.wav -d 30 "freebob_pcm:cap_0_0_0_LineIn 1+2 right"

for record 30 seconds in file test.wav from "freebob_pcm:cap_0_0_0_LineIn 1+2 right" port (include " if port name includes blank spaces). Well, but how do I find the port name? Look at the jackd output. Remember line

DRV MSG: freebob_driver.c:82 (freebob_driver_attach): Registering capture port cap_0_0_0_LineIn 1+2 right

above?

Test all capture ports.

Good luck.

Decreasing Latency: Realtime Preemption

jack playback latency, in seconds, corresponds to -n parameter times -p divided by -r. Below, default values for freebob:

-p, --period    Frames per period (default: 1024)
-n, --nperiods  Number of periods of playback latency (default: 3)
-r, --rate      Sample rate (default: 48000)

So, latency = p.n/r = 1024.3/48000 = 0,064 seconds or 64 milisseconds. It's high for audio critical applications as live record, by example. So, you want decrease -p and -n values and increase -r values. However, -r is fixed: your hardware fix it. Try decrease -p and -n values. For example:

$ jackd -d freebob -p 512 -n 3
$ jackd -d freebob -p 256 -n 3
$ jackd -d freebob -p 512 -n 2
$ jackd -d freebob -p 128 -n 2

There's a limit when xruns happen. For advice, if you use Debian GNU/Linux, you can check here (http://pkg-freebob.alioth.debian.org/lowlat.html).