[LAD] JACK Graph Internal Latency? (was Re: A small article ...)

hermann brummer- at web.de
Thu Apr 29 13:49:33 UTC 2010

Am Donnerstag, den 29.04.2010, 09:12 -0400 schrieb Paul Davis:
> Rui has already basically answered this, but I'll repeat. Every client
> in the graph is only executed *once* per process cycle. Hence, given
>       A -> B -> A
> any given process cycle only executes A once. thus the output of B is
> not available to A until the next process cycle.
That's make me wonder, because I'm doing exactly that.
I have a client, with two input ports, and two output ports. Now I
connect the first output with a external jack client, and feed the data
back to input port 2 of my client. I can mix the data now with the
(saved buffer) data from port 1 and send the mix to outputport 2. 

All I need is a seperate process for etch port. 

Here is the simplistic callback, I wonder why that consider to didn't
work ? Isn't it the same like connect any other client ?
Were is my error in understand jack ?

regards  hermann

 int gx_jack_process (jack_nframes_t nframes, void *arg)
            gInChannel[1] = (float
*)jack_port_get_buffer(input_ports[1], nframes);

      for (int i = 0; i < gNumOutChans; i++)
            gOutChannel[i] = (float
*)jack_port_get_buffer(output_ports[i], nframes);

          GxEngine::instance()->compute(nframes, gInChannel,
gOutChannel); // here we send data to a external client connected to
input 2

                gInChannel[2] = (float
*)jack_port_get_buffer(input_ports[2], nframes);

          GxEngine::instance()->compute2_output( gInChannel,
      return 0;

More information about the Linux-audio-dev mailing list