Am Samstag, den 23.05.2009, 05:04 -0700 schrieb warjamy(a)yahoo.com:
discussion started at LAD about changing the jack
server latency from the app called guitarix (like ardour does from its menu JACK ->
Latency). Proposed guitarix patch (by me) works nice against jack2 but not against jack1.
See below.
Hermann,
I quickly ran guitarix in debug mode through gdb. You get a crash at dsp_audio.cpp, line
469. Looks like memory at output[2] and output[3] cannot be accessed. I tried to
understand what you attempt to do but this function (mydsp::compute) is way to much for me
to understand. It looks like some sort of auto-code ...
Anyway, output[2] and output[3] are passed in from process() (process callback function).
I believe these arrays should correspond to buffers that you receive from jack audio ports
2 and 3. However, at the time we try to change the latency, they are already unregistered
because of DSP.setNumOutputs().
So it looks to me that resetting the jack buffer size on the fly from guitarix badly
interacts with how jack1 handled your port deregistration requests. I don't know why
it works with jack2. Running guitarix through gdb against jack2, I could see that
output[2] and output[3] were still valid memory locations after changing the jack buffer
size on the fly.
This is a bit unfortunate that we get different behaviors when using jack1 or jack2. I
hope you'll sort it out, I don't have more time to spend on it.
J.
Morning James
So I got it working. Your Code is submit to SVN with some little
additions. Thanks James, that is the "first direct code contribution"
the guitarix projekt recive, I hope more will follow. :D