On Mon, Feb 18, 2013 at 8:35 AM, M Donalies <ingeniousnebbish(a)cox.net>wrote;wrote:
On Sunday 17 February 2013 08:21:51 Paul Coccoli
wrote:
On Sat, Feb 16, 2013 at 10:33 PM, M Donalies
<ingeniousnebbish(a)cox.net>
wrote:
process_callback() calls process_midi_output(), wherein we find:
port_buffer = jack_port_get_buffer(output_port, nframes);
Why the nframes parameter? Is there a separate buffer area for each
frame?
There's a separate buffer for each port.
Yes, and that's the output_port arg, but what's with nframes? Why isn't the
function simply: jack_port_get_buffer(output_port) ?
because the client may not want to get all the data at once.
ardour, for example, breaks up the process() cycle internally to deal with
"global" scheduled events. so it may ask for the first N frames, then
another M, then another P frames until everything is done.
there was another reason at one time too, but the internally engineering of
JACK has eliminated that one.