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

From: hermann <brummer-@web.de>
Date: Thu Apr 29 2010 - 16:49:33 EEST

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,
gOutChannel,nframes);
            }
          
      return 0;
    }

_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Thu Apr 29 20:15:07 2010

This archive was generated by hypermail 2.1.8 : Thu Apr 29 2010 - 20:15:08 EEST