Linux Jack Reconnect/Timeout Problems

Hi there,

I’m new to Renoise, but not to music, digital audio and Linux. I`m very impressed of Renoise and since I have a license, I use this app everyday. I’ve build up a Linux machine with a very slim “Renoise OS” based on AV Linux (RT Kernel based Debian Audio Distro, optimized for fast realtime audio JACK) . Renoise runs as WM (as written in the FAQ) and under ALSA very well. In Renoise I use some native Linux VST plugins, DiscoveryR33 by DiscoDSP and Aspect by Loomer. I tell you my electro music sounds better then ever with this combo. Less is more!

Beside this, I have a question and I wonder why this is no FAQ:

Renoise works smooth like a charm on ALSA with lowlatency, but when I try to use Renoise as Jack Client, I get a lot of problems. Starting Aspect VST, Renoise Jack Client must reconnect. Changing a preset in Aspect, the Jack Client must reconnect. Generally a lot of Xruns and crackles. Under ALSA Renoise feels like a rock, but with JACK everything feels a bit unstable. - it feels like the old ZynaddsubFX - broken connection to JACK when changing presets. Zynadd had a deep redesign of the code named Yoshimi, now all JACK client based RT probs are gone plus a nicer GUI.

So I asked a friend who has deeper skills about ALSA/JACK client developing (He made the community driven for EnergyXT2 and the initial working release of WineAsio - he is known as Drumfix) about the Renoise Jack client an he told me that he know Renoise and there must be a bug in the JACK client of Renoise. Because there are dozen of Jack Clients running well without this problems, no one can blame JACK for the problems that the Renoise Jack Client has. My system is very well shaped for realtime audio, with all needs that JACK required for to run smooth. I have audio prio for the user enabled and everything. JACK running very well with Qtractor (VST enabled) or Ardour on this system.

So please tell me:

-Is there something wrong with the JACK client of Renoise ?

-can you fix this?

-If not - would you like to open the part of the JACK client sourcecode of Renoise for the community? Drumfix told me he can fix any RT jack client based problems then. And I believe him.

-and if there is everything right with Renoise (maybe Drumfix is wrong, but he never was before) - what can I do to run Renoise as Jackclient without reconnects? (The feature of reconnecting to JACK is cool, much better then an useless message “JACK the dog has leave us alone in the rain” and then nothing, I have manually reconnect to JACK, but I wanna use this reconnect feature less often ;) ) So far I see, I have a heavy optimized system for audio, no ubuntustudio wannabe audio distro. But maybe there is an hidden switch, that I can’t find.

Thank you!

Maybe this would be good to post into the bugreport forum? I remember that there are still some pending issues with jack, so this might be part of it. And if it turns out to be no bug after all, no biggie.

Yes, there are some issues.
Specially with the newest Jack servers. Renoise runs best on an older jack client (i believe it was like jackD and client versions 1.x).
Taktik explained he would try to make time to test newer builds with the newer Jack daemons and try to sort out these problems.

Strange, but I have jackd 0.118, the latest update for JACK1. And there are some issues too. I’m not interested to use JACK2 now or in the near future (I need something more mature for a productivity environment and JACK1 is OK so far, but JACK2 seemed to be very experimental and unstable, I will wait 3-5 years before I use Jack2)

Renoise is great, but the JACK client is not realtime safe. Yes, this could be a bug report, I will make some more investigations and tests and then I will post this again in the bug forum.

I’m running jackd version 0.118.0 according to “jackd -V” command in Terminal.

Yesterday I did have Jack loose most of the patching I had set-up, although it was one of the first times I’ve really done anything with Renoise in Linux. I had Renoise running to System, VLC had been used into Renoise but think I may of closed that by then, I did have ZynAddSubFX running and wired into Renoise, audio and MIDI (as I have no VST Instruments show up whatsoever as Renoise can’t recognise LASPA ones.)

Anyway all I did when this happened was add an instance of Cabinet Simulator to a track (only other loaded DSPs were a Signal Follower and Filter at the time.) It recommended changing time-out settings to around 1s (1000ms) which I haven’t tried yet.

Generally, with my very limited playing around, I have found it pretty stable though. I do have a fast laptop and one many recommended for audio though.

Not really. The timeout problems always happened on some machines with Renoise, with all jack versions. I have absolutely no clue why this happens, but I don’t think the problem is the jack impl in Renoise, but more a combination of things that are happening with Renoise in general (threading, realtime, priorities, locking).

Increasing the jack timeout seems to always do the job: (option
-t, --timeout int
Set client timeout limit in milliseconds. The default is 500 msec. In realtime mode the client timeout must be smaller than the watchdog timeout (5000 msec).

and also seems to have no bad impact on the performance. For some reasons the watchdog thread seem to behave very strange when running with Renoise. It seems to disconnect far too early. Probably the thread is not constantly running with Renoise, but gets blocked too often and too long to be able to measure the real timeout value correctly.

I’ll do my best and take a look into this again and try to find out why this is a problem.