Re: Double-buffering and audio

Kai Vehmanen <[email protected]>
Newsgroups gmane.comp.audio.ecasound.general
Message-ID <[email protected]>
Hi,

On Sat, 12 May 2012, S. Massy wrote:

> When double-buffering is enabled, if one issues stop and start, there is an
> audible "gap" in the audio, i.e some samples are never played back. Is
> that a bug or a feature?

with JACK+transport enabled, you may miss some samples at start as JACK 
doesn't wait for clients. This shouldn't happen though if ecasound is the 
transport master (sending the start/stop commands).

Without JACK (or transport disabled), there should be no missed samples. 
If position is changed, the disk i/o buffers are refilled with the new 
position. Without position change, buffers should not be touched so 
position should not change.

> Which leads me to ask... When I issue getpos,
> what does the number reflect? Is it more or less what I'm hearing, give
> or take a jack period or an internal buffer, or is it where the read
> pointer is at in the audio files? Does double-buffeering affect this?

That's the main engine position. E.g. at next engine iteration (or next 
JACK process() callback), samples [getpos,getpos+buffersize] will be 
processed. The output latency depends on the output device latency alone 
(e.g. JACK or ALSA buffering), and a typical (low) value would be one jack 
period (depends on how you are running jackd).

The double-buffering does not affect getpos and should be totally 
transparent. On code level, the buffering is implemented as a wrapper 
class that can proxy any file-type audio object. To the engine, it doesn't 
really see any differences, but under the hood, the samples are first read 
to big memory buffers, and when engine calls read_buffer(), it never needs 
to wait for disk i/o.

But like any abstractrion layer, it is usually, to some degree, also a new 
layer of bugs, so in practise not 100% transparent. :P

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Ecasound-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ecasound-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.