[PD-dev] jack driver issues with 0.43

Roman Haefeli reduzent at gmail.com
Tue Feb 7 10:49:58 CET 2012


Hi all

When employing dynamic patching, in particular when doing dynamic
patching with ~-objects, I found that drop-out time can be greatly
reduced by turning dsp off during dynamic creation time. I used to turn
dsp off and on in 0 logical time a lot in my patches and it never seemed
an issue.

Recently, I found that when doing so it causes a drop-out, no matter if
there is dynamic patching going on or not. I figured out, that this
happens only when Pd is using jack as the audio back-end. In gdb, I
noticed that when ever I turn dsp off, I get those messages:

[Thread 0xb3065b70 (LWP 11244) exited]
[Thread 0xb7f60b70 (LWP 11243) exited]
[Thread 0xb7fe1b70 (LWP 11242) exited]

When turning dsp on again, I get:

[New Thread 0xb7fe1b70 (LWP 11250)]
[New Thread 0xb7f60b70 (LWP 11251)]
[New Thread 0xb3065b70 (LWP 11252)]

It seems, that since 0.43 - when using jack - turning dsp off and on
cannot be done "silently" anymore. For me, this has a few implications:

* I certainly get a drop-out in the audio stream. Starting and stopping
dsp costs a lot of time now.

* The jack-client 'pure_data_X' disappears when turning dsp off and thus
it looses all hand-made connections to other applications.

* Often, Pd hangs after a few cycles of turning dsp off/on. Pd-gui
doesn't respond on any input and I see the 'watchdog signaling Pd'
message appearing.

Personally, I find the old no-thread-spawning-on-dsp-on implementation
much friendlier in many ways, but to me most importantly, it was able to
avoid drop-outs when turning dsp off and on in 0 logical time. 

What do others thing, what is their experience? Is there any chance of
going back to the old way of using Pd with jack?

BTW: Everything works still nice with ALSA.

Roman





More information about the Pd-dev mailing list