Re: Jack - buffers V periods

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 01/17/2018 06:58 PM, Will Godfrey wrote:
I'm getting a little confused when comparing our (Jack) buffer sizes with those
discussed on Windows, Mac and general music groups.

These latter never mention periods at all, and it's always frames per buffer,
so when trying to make comparisons should I take buffers as 1:1 or should I be
comparing their buffers to our periods?


Hi Will.

From memory on Windows years ago, and if I understand Jack correctly,
 Jack, or more specifically ALSA (in this case let's say using the
 ALSA driver), puts you much lower-level towards the sound hardware.

You get to specify the period size and the number of periods.

This usually means that you are specifying the size of a hardware
 Direct Memory Access (DMA) buffer and the number of such buffers
 to use. More importantly, that buffer size and the sample rate
 determine the hardware interrupt rate.

If I may make a comparison: Think video games. To avoid 'tearing'
 (motion artifacts) on the screen, we draw graphics on an
 off-screen buffer while another buffer is actually being displayed.
The system continuously about 60 times a second or more 'flips' which
 of these buffers are displayed so now the buffer you just wrote is
 being displayed while the one that was displayed can be safely
 written to without causing tearing. But you must be quick and write
 your inactive buffer before it 'flips' again. More than TWO buffers
 may be used so that several off-screen buffers can be 'queued up'
 for display.

So... The same idea with low(ish)-level RT audio. Jack, ALSA etc.
It will 'flip' among the number of buffers you specify.

List, please correct me if I am wrong here, it has been a while (~2005):
I recall testing Windows, even DirectX (DirectSound), and no
 matter what I did I could /not/ get that hardware interrupt
 rate to change. I tried exclusive mode etc etc.
I seemed that Windows was just providing me with yet another layer.
Hence if I recall, there is only *one* buffer to specify, and
 Windows does the rest. (Regular Multi-Media audio is different.)
Darn, can't remember my DirectX too well, I was heavily into it...
Have things changed? Or have I messed that up that explanation?

Tim.
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@xxxxxxxxxxxxxxxxxxxx
https://lists.linuxaudio.org/listinfo/linux-audio-user



[Index of Archives]     [Linux Sound]     [ALSA Users]     [Pulse Audio]     [ALSA Devel]     [Sox Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux