[LAD] [ANN] guitarix-0.04.4-1 release

warjamy at yahoo.com warjamy at yahoo.com
Sat May 23 12:04:49 UTC 2009

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.


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. 


PS: by the way, be careful with hardcoded values. On one hand you have gNumOutChans (= 4), on the other you have arrays declared with [4].

--- On Sat, 5/23/09, hermann meyer <brummer- at web.de> wrote:

> From: hermann meyer <brummer- at web.de>
> Subject: Re: [LAD]  [ANN] guitarix-0.04.4-1 release
> To: "James Warden" <warjamy at yahoo.com>
> Cc: linux-audio-dev at lists.linuxaudio.org
> Date: Saturday, May 23, 2009, 2:24 AM
> Am Freitag, den 22.05.2009, 09:07
> -0700 schrieb James Warden:
> > Hermann,
> > 
> > I added a Latency menu to guitarix. You can now change
> the jack server latency on the fly from guitarix (a la
> ardour). See patches below:
> > 
> > --------- 
> Hi James
> Many thanks, it's real welcome, but unfortunatly I
> experience a lot of
> chrash's with your patch added. 
> I work (at time) with jackd, not jackdmp, and guitarix
> recive often a
> wrong(NULL) pointer after change the buffer size and
> chrash'd, also,
> when jackd cant set the selected buffersize, jackd
> chrash'd. 
> So here is a proper errorhandling needed.
> Anyway, I have include the jack_set_buffer_size_callback,
> to recreate
> the intern buffer's from guitarix, when the buffersize
> change, so that
> guitarix can handle a buffersize change (currently not
> commit).
> I did'nt have check it with jackdmp, did it work for you
> without
> experience some chrash's ?
> regards
>          hermann


More information about the Linux-audio-dev mailing list