[Jack-Devel] What about the number of buffers?

Robin Gareus robin at gareus.org
Wed Aug 7 22:38:37 CEST 2019


On 8/7/19 9:59 PM, Tim wrote:
> On 8/7/19 10:59 AM, Holger Marzen wrote:
>> What is the difference between
>>    jackd -n2 -p192
>> and
>>    jackd -n3 -p128
>>
>> Both give a total of 384 samples in buffers.
>> What's the difference for jackd?
>>
>> Regards
>> Holger
> 
> Should not make a difference for clients, they would
>  simply see a 384 buffer size in both cases.

Nope. The client (jack process cycle) block-size is 192 in this case.

The period configuration is ALSA specific and only affects hardware
playback.

The total round-trip latency is likely be longer. That depends on the
driver and kernel side buffering which is sometimes aligned to powers or
two.  With -p 192, the input buffer is also 192 samples/channel.

In synchronous mode (jack1, or jack2 -S), processing happens in the
following order. Each letter represents a "-p" number of samples (per port).

time    +---------->
Input   :   ABCDEF
Process :   .ABCDE
Out. n=2:   ..ABCD
Outp n=3:   ...ABC


Jack2's async mode adds one period of playback latency. Instead of
synchronous "Read", "Process", "Write". jack2 in async mode does:

- Read from the capture device
- Write result of previous cycle to the playback device
- Process

> Although, I'm not sure 192 is an allowable period size.

For jack-clients it is, it can be any number between 1 and 8192. Some
hardware devices impose a lower limit though.

ciao,
robin



More information about the Jackaudio mailing list