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