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