On Mon, Apr 16, 2012 at 04:54:45PM -0400, Paul Davis wrote:
...a well behaved client will use
jack_port_set_latency_range() to let the rest of the world
know what is going on.
Hi,
I could use some help with a real example.
Example 1. system to ecasound
Say I ask Ecasound to route one channel of audio from the
sound card input to the null device.
ecasound -f:,1 -i:jack,system -o:null
How much is the signal delayed on the way from the soundcard
into Ecasound's signal-processing engine, as reported by
jack_port_get_latency_range() ?
The connection (reported by jack_lsp -c) is
system:capture_1 to ecasound:in_1
Here is the relevant output of jack_lsp -l:
system:capture_1
port latency = 1024 frames
port playback latency = [ 0 0 ] frames
port capture latency = [ 1024 1024 ] frames
ecasound:in_1
port latency = 0 frames
port playback latency = [ 0 0 ] frames
port capture latency = [ 1024 1024 ] frames
Without looking at the source, I can hazard a guess that the
"port latency" line may be the output of a deprecated
function, perhaps jack_port_get_latency().
So let's remove that for clarity:
system:capture_1
port playback latency = [ 0 0 ] frames
port capture latency = [ 1024 1024 ] frames
ecasound:in_1
port playback latency = [ 0 0 ] frames
port capture latency = [ 1024 1024 ] frames
Now which of these four ranges contributes to the latency?
Reading the docs, my naive guess is that only two ranges
play a part, probably the capture latency of the first and
the playback latency of the second, for the total of 1024
frames.
I'm curious if the other two ranges have any
meaning at all, given that ports appear
to have only one direction.
Well that's the extent of my questions for tonight.
TIA,
Joel
--
Joel Roth