Possibly wrong realtime prioritization causing xruns

udaemon
KVRer
5 posts since 6 May, 2019

Post Fri May 24, 2019 12:58 pm

Hello everybody!

I'm glad there's u-he offering also linux builds of their very interesting synthesizers. so thank you for that and also thank you to the other people here giving advice and sharing your knowledge.

I recently became aware of u-he plugins and I'm getting them to know within (native linux) reaper.
unfortunately, they make reaper crash regularly and I don't know why.
I found this thread and followed the instructions about how to configure my system, but still reaper crashes through u-he plugins (tried podolski, zebralette and triple cheese). it's getting frustrating.
and I think this issue has something to do with the problems stated here; sorry if I'm wrong. please tell me if I should start a new thread.

I'm running antergos/arch linux x64 on a thinkpad x270 (i5-6300U CPU @ 2.40GHz × 4, 8GB ram), the soundcard is a behringer UMC404HD usb interface. I connect it via jack2-dbus using qjackctl.

I tried different of the above mentioned system settings:
- rtprio set to 98 and later 90
- jack priority default and later set to 70
- tried stock arch kernel 5.1.3 PREEMPT and later linux-zen 5.1.4-zen1-1-zen #1 ZEN SMP PREEMPT

I post several logs and metainfo:

the system log:

Code: Select all

Process 13753 (reaper) of user 1000 dumped core.
Stack trace of thread 14365: #0  0x00007f593855eb40 n/a (/home/christoph/.u-he/Zebra2/Zebra2.64.so)
the log from qjackctl:

Code: Select all

Fri May 24 21:47:53 2019: Connecting 'system:midi_capture_2' to 'REAPER:MIDI Input 2'
Fri May 24 21:47:53 2019: Connecting 'system:midi_capture_4' to 'REAPER:MIDI Input 4'
Fri May 24 21:47:53 2019: Connecting 'REAPER:out1' to 'system:playback_1'
Fri May 24 21:47:53 2019: Connecting 'REAPER:out2' to 'system:playback_2'
Fri May 24 21:47:53 2019: Connecting 'REAPER:out3' to 'system:playback_3'
Fri May 24 21:47:53 2019: Connecting 'REAPER:out4' to 'system:playback_4'
Fri May 24 21:47:53 2019: Connecting 'system:capture_1' to 'REAPER:in1'
Fri May 24 21:47:53 2019: Connecting 'system:capture_2' to 'REAPER:in2'
Fri May 24 21:47:53 2019: Connecting 'system:capture_3' to 'REAPER:in3'
Fri May 24 21:47:53 2019: Connecting 'system:capture_4' to 'REAPER:in4'
21:49:01.879 XRUN callback (1).
21:49:02.058 XRUN callback (9 übersprungen).
Fri May 24 21:49:01 2019: ERROR: JackEngine::XRun: client = REAPER was not finished, state = Running
Fri May 24 21:49:01 2019: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Fri May 24 21:49:01 2019: ERROR: JackEngine::XRun: client = REAPER was not finished, state = Triggered
Fri May 24 21:49:01 2019: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Fri May 24 21:49:01 2019: ERROR: JackEngine::XRun: client = REAPER was not finished, state = Triggered

(... I leave a lot of message telling the same out ...)

Fri May 24 21:49:03 2019: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Fri May 24 21:49:03 2019: ERROR: JackEngine::XRun: client = REAPER was not finished, state = Triggered
Fri May 24 21:49:03 2019: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
21:49:04.097 XRUN callback (22 übersprungen).
Fri May 24 21:49:03 2019: ERROR: JackEngine::XRun: client = REAPER was not finished, state = Triggered

(...)

Fri May 24 21:49:06 2019: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Fri May 24 21:49:06 2019: ERROR: JackEngine::XRun: client = REAPER was not finished, state = Triggered
Fri May 24 21:49:06 2019: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
21:49:07.489 XRUN callback (34).
21:49:07.491 Schaubild der JACK-Verbindungen geändert.
21:49:07.512 JACK-Verbindung geändert.
21:49:07.513 Schaubild der JACK-Verbindungen geändert.
Fri May 24 21:49:06 2019: ERROR: JackEngine::XRun: client = REAPER was not finished, state = Triggered

(...)

Fri May 24 21:49:07 2019: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Fri May 24 21:49:07 2019: ERROR: JackEngine::XRun: client = REAPER was not finished, state = Triggered
Fri May 24 21:49:07 2019: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Fri May 24 21:49:07 2019: ERROR: Cannot write socket fd = 20 err = Connection reset by peer
Fri May 24 21:49:07 2019: ERROR: CheckRes error
Fri May 24 21:49:07 2019: ERROR: Could not write notification
Fri May 24 21:49:07 2019: ERROR: ClientNotify fails name = REAPER notification = 3 val1 = 0 val2 = 0
Fri May 24 21:49:07 2019: ERROR: Cannot write socket fd = 20 err = Broken pipe
Fri May 24 21:49:07 2019: ERROR: CheckRes error
Fri May 24 21:49:07 2019: ERROR: Could not write notification
Fri May 24 21:49:07 2019: ERROR: ClientNotify fails name = REAPER notification = 3 val1 = 0 val2 = 0
Fri May 24 21:49:07 2019: Disconnecting 'system:midi_capture_2' from 'REAPER:MIDI Input 2'
Fri May 24 21:49:07 2019: Disconnecting 'system:midi_capture_4' from 'REAPER:MIDI Input 4'
Fri May 24 21:49:07 2019: Disconnecting 'system:capture_1' from 'REAPER:in1'
Fri May 24 21:49:07 2019: Disconnecting 'system:capture_2' from 'REAPER:in2'
Fri May 24 21:49:07 2019: Disconnecting 'system:capture_3' from 'REAPER:in3'
Fri May 24 21:49:07 2019: Disconnecting 'system:capture_4' from 'REAPER:in4'
Fri May 24 21:49:07 2019: Disconnecting 'REAPER:out1' from 'system:playback_1'
Fri May 24 21:49:07 2019: Disconnecting 'REAPER:out2' from 'system:playback_2'
Fri May 24 21:49:07 2019: Disconnecting 'REAPER:out3' from 'system:playback_3'
Fri May 24 21:49:07 2019: Disconnecting 'REAPER:out4' from 'system:playback_4'
Fri May 24 21:49:07 2019: ERROR: Failed to find port 'REAPER:MIDI Input 2' to destroy
Fri May 24 21:49:07 2019: ERROR: Failed to find port 'REAPER:MIDI Input 4' to destroy
Fri May 24 21:49:07 2019: ERROR: Failed to find port 'REAPER:in1' to destroy
Fri May 24 21:49:07 2019: ERROR: Failed to find port 'REAPER:in2' to destroy
Fri May 24 21:49:07 2019: ERROR: Failed to find port 'REAPER:in3' to destroy
Fri May 24 21:49:07 2019: ERROR: Failed to find port 'REAPER:in4' to destroy
Fri May 24 21:49:07 2019: ERROR: Failed to find port 'REAPER:out1' to destroy
Fri May 24 21:49:07 2019: ERROR: Failed to find port 'REAPER:out2' to destroy
Fri May 24 21:49:07 2019: ERROR: Failed to find port 'REAPER:out3' to destroy
Fri May 24 21:49:07 2019: ERROR: Failed to find port 'REAPER:out4' to destroy
Fri May 24 21:49:07 2019: Client 'REAPER' with PID 28398 is out
Fri May 24 21:49:07 2019: ERROR: Unknown request 4294967295
Fri May 24 21:49:07 2019: ERROR: CheckSize error size = 0 Size() = 12
Fri May 24 21:49:07 2019: ERROR: CheckRead error
21:49:08.119 XRUN callback (54 übersprungen).
I don't if that's worth mentioning, but for whatever reason, as it is stated in this log, the graph of the jack connections is changed.

hm, I just recognize that on trying again the jack log looks a little bit different ("Cannot write socket fd = 20 err = Broken pipe"):

Code: Select all

Fri May 24 21:57:01 2019: ERROR: JackEngine::XRun: client = REAPER was not finished, state = Triggered
Fri May 24 21:57:01 2019: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Fri May 24 21:57:01 2019: ERROR: JackEngine::XRun: client = REAPER was not finished, state = Triggered
Fri May 24 21:57:01 2019: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
Fri May 24 21:57:01 2019: ERROR: Cannot write socket fd = 20 err = Connection reset by peer
Fri May 24 21:57:01 2019: ERROR: CheckRes error
Fri May 24 21:57:01 2019: ERROR: Could not write notification
Fri May 24 21:57:01 2019: ERROR: ClientNotify fails name = REAPER notification = 3 val1 = 0 val2 = 0
Fri May 24 21:57:01 2019: ERROR: Cannot write socket fd = 20 err = Broken pipe
Fri May 24 21:57:01 2019: ERROR: CheckRes error
Fri May 24 21:57:01 2019: ERROR: Could not write notification
Fri May 24 21:57:01 2019: ERROR: ClientNotify fails name = REAPER notification = 3 val1 = 0 val2 = 0
Fri May 24 21:57:01 2019: ERROR: Cannot write socket fd = 20 err = Broken pipe
Fri May 24 21:57:01 2019: ERROR: CheckRes error
Fri May 24 21:57:01 2019: ERROR: Could not write notification
Fri May 24 21:57:01 2019: ERROR: ClientNotify fails name = REAPER notification = 3 val1 = 0 val2 = 0
Fri May 24 21:57:01 2019: Disconnecting 'system:midi_capture_2' from 'REAPER:MIDI Input 2'
Fri May 24 21:57:01 2019: Disconnecting 'system:midi_capture_4' from 'REAPER:MIDI Input 4'
Fri May 24 21:57:01 2019: Disconnecting 'system:capture_1' from 'REAPER:in1'
Fri May 24 21:57:01 2019: Disconnecting 'system:capture_2' from 'REAPER:in2'
Fri May 24 21:57:01 2019: Disconnecting 'system:capture_3' from 'REAPER:in3'
Fri May 24 21:57:01 2019: Disconnecting 'system:capture_4' from 'REAPER:in4'
Fri May 24 21:57:01 2019: Disconnecting 'REAPER:out1' from 'system:playback_1'
Fri May 24 21:57:01 2019: Disconnecting 'REAPER:out2' from 'system:playback_2'
Fri May 24 21:57:01 2019: Disconnecting 'REAPER:out3' from 'system:playback_3'
Fri May 24 21:57:01 2019: Disconnecting 'REAPER:out4' from 'system:playback_4'
Fri May 24 21:57:01 2019: ERROR: Failed to find port 'REAPER:MIDI Input 2' to destroy
Fri May 24 21:57:01 2019: ERROR: Failed to find port 'REAPER:MIDI Input 4' to destroy
Fri May 24 21:57:01 2019: ERROR: Failed to find port 'REAPER:in1' to destroy
Fri May 24 21:57:01 2019: ERROR: Failed to find port 'REAPER:in2' to destroy
Fri May 24 21:57:01 2019: ERROR: Failed to find port 'REAPER:in3' to destroy
Fri May 24 21:57:01 2019: ERROR: Failed to find port 'REAPER:in4' to destroy
Fri May 24 21:57:01 2019: ERROR: Failed to find port 'REAPER:out1' to destroy
Fri May 24 21:57:01 2019: ERROR: Failed to find port 'REAPER:out2' to destroy
Fri May 24 21:57:01 2019: ERROR: Failed to find port 'REAPER:out3' to destroy
Fri May 24 21:57:01 2019: ERROR: Failed to find port 'REAPER:out4' to destroy
Fri May 24 21:57:01 2019: Client 'REAPER' with PID 30082 is out
Fri May 24 21:57:01 2019: ERROR: Unknown request 4294967295
Fri May 24 21:57:01 2019: ERROR: CheckSize error size = 0 Size() = 12
Fri May 24 21:57:01 2019: ERROR: CheckRead error
21:57:03.406 XRUN callback (54 übersprungen).
finally, I post the output of the terminal, from where I ran reaper because I wanted to if I get more info here:

Code: Select all

[christoph@X270lx REAPER]$ ./reaper 
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
error creating client
audio: executing pasuspender
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack: created client
jack: setting TIME_CRITICAL = 64
jack: activated client
002a:fixme:toolhelp:CreateToolhelp32Snapshot Unimplemented: heap list snapshot
002a:fixme:toolhelp:Heap32ListFirst : stub
002a:fixme:wbemprox:client_security_SetBlanket 0x7fe652b2f380, 0x47130, 10, 0, (null), 3, 3, (nil), 0x00000000
002a:fixme:wbemprox:client_security_Release 0x7fe652b2f380
0027:fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled
0027:fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled
002a:fixme:wbemprox:enum_class_object_Next timeout not supported
002a:err:wbemprox:wql_error syntax error, unexpected TK_ID, expecting TK_SELECT
0027:fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled
0027:fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled
002a:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (000000000023F570 1 C) semi-stub
002a:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (000000000023F0A0 1 C) semi-stub
setNumInputs ( 0 );
setNumOutputs ( 2 );
allocateArrangement ( &plugInput, 2 );
allocateArrangement ( &plugOutput, 2 );
setNumInputs ( 0 );
setNumOutputs ( 2 );
allocateArrangement ( &plugInput, 2 );
allocateArrangement ( &plugOutput, 2 );

(reaper:5461): Gdk-WARNING **: 22:31:25.604: gdk_window_set_user_time called on non-toplevel

Speicherzugriffsfehler (Speicherabzug geschrieben)
[christoph@X270lx REAPER]$ 002a:fixme:msvcrt:__clean_type_info_names_internal (0x1804b9c58) stub
^C
[christoph@X270lx REAPER]$ 
I was surprised to read some things like fixme-messages and others relating to msvcrt and msvcp which I just knew from wine or windows. maybe I should mention that I have installed wine-reaper parallelly (because of a project with windows-vsts).

I would really like to go on with u-he plugins. if somebody has an idea how to get them working here, I'd be glad.

thank you!
christoph

glokraw
KVRAF
7360 posts since 6 Oct, 2004

Re: Possibly wrong realtime prioritization causing xruns

Post Fri May 24, 2019 3:36 pm

Hi, I have a manjaro Arch setup, and U-he products all work fine
with recent linux Reaper versions. Do you have a2jmidid installed?

To use Reaper with jackd/qjackctl, the command

a2jmidid -j default

should be run after starting qjackctl, and before starting Reaper.

In my qjackctl, dbus is _not_ selected. Following are the sizes of
my jackd related items you can compare in case you have different
jackd versions

jackd 30520 bytes

libjack.so.0.0.28 92176 bytes

libjackserver.so.0.0.28 198672 bytes

(I use the yay package manager)
------------------------------------------------------------------------
~ >>> yay -Si qjackctl [1]
Repository : community
Name : qjackctl
Version : 0.5.7-1
Description : A Qt front-end for the JACK low-latency audio server
Architecture : x86_64
URL : https://qjackctl.sourceforge.io
Licenses : GPL2
Groups : pro-audio
Provides : None
Depends On : jack qt5-x11extras hicolor-icon-theme
Optional Deps : portaudio: Portaudio support
Conflicts With : None
Replaces : None
Download Size : 528.73 KiB
Installed Size : 2076.00 KiB
Packager : David Runge <dave@sleepmap.de>
Build Date : Thu 11 Apr 2019 08:27:42 AM PDT
Validated By : MD5 Sum SHA-256 Sum Signature
--------------------------------------------------------------------------------

this is my .jackd.rc text generated by qjackctl for comparison
found in your main /home/you folder (I have an M2496 soundcard):

/usr/bin/jackd -P80 -dalsa -r44100 -p256 -n2 -D -Chw:M2496 -Phw:M2496

Jack Winter is much more an Arch expert than I,
easy to find him and ask things at the linux-reaper forum:

https://forum.cockos.com/forumdisplay.php?f=52

Are there other linux vsts you have that don't crash?
Maybe you need a non-dbus jackd version?
Cheers

udaemon
KVRer
5 posts since 6 May, 2019

Re: Possibly wrong realtime prioritization causing xruns

Post Sat May 25, 2019 2:31 am

Thank you, glokraw, for the quick reply!

I followed your suggestions concerning jack and dbus, but that was/is not the problem, I guess. at least I didn't recognize a difference between running jack with and without dbus.

maybe I solved the problem, now, I'm not sure, have to try it in my practice room with my usual setup. if so, the problem may have been my reaper configuration. I thought I could just copy the reaper-config folder from my windows installation over to linux and go. now, I initialized reaper by renaming the reaper folder and it seem's to be stable with the u-he plugins.
glokraw wrote:
Fri May 24, 2019 3:36 pm
Are there other linux vsts you have that don't crash?
yes, and that was so puzzling: my original windows-setup/session worked fine apart from two vst-plugins that don't work within native linux reaper. but SQ8L (bridged) worked normally, then I tried wolperting (linux native), dexed (native linux) and another one without any problems. but since the u-hes were so shiny I sticked to them which caused reaper to crash for whatever reason. maybe some conflicting configuration files from windows?

well, I'll see how it goes now.

thanks again!

glokraw
KVRAF
7360 posts since 6 Oct, 2004

Re: Possibly wrong realtime prioritization causing xruns

Post Sat May 25, 2019 5:29 am

Good to hear progress happens. I install the windows Reaper in
.wine/drive_c/Users

It's config folder is in

.wine/drive_c/Users/my-name/Application Data/REAPER

and the linux version is installed at /home/my-name/.1111-reaper

and the linux folder is at /home/my-name/.config/Reaper

I chose those locations for convenience, the linux version I
start with a file manager, that has the option of starting Reaper
from a terminal, which I do, so I can get misc info from the text output,
and can close it easily should there be a deadlock crash.

The windows location is a short path, without spaces,
and the folder is uncluttered, so it's easy to remove
and reinstall there, and I launch it usually from the
history list in the terminal where it's most often
near the top
Cheers

udaemon
KVRer
5 posts since 6 May, 2019

Re: Possibly wrong realtime prioritization causing xruns

Post Tue Jun 04, 2019 5:10 am

glokraw wrote:
Sat May 25, 2019 5:29 am
Good to hear progress happens. I install the windows Reaper in
.wine/drive_c/Users
(...)
thanks for your clarification and help, glokraw!

now, I can tell that the reaper crashes I experience are not particularly connected to u-he plugins, but occur also with other plugins (wolpertinger once, vex once) and have to do with the specific settings of a plugin - or with it's architecture. for example podolski is more likely to make (my) reaper crash than triple cheese - but, as just said, it depends on the settings/presets.

and I should add that I'm experimenting with a set up that may be a little bit demanding: triggering synths with my (acoustic) drums. so when I play the synths with a midi keyboard everything seems to be fine, other than when playing them with my drums.

and the fixme-messages and the likes I mentioned in my earlier post of course have to do with wine - but the explanation is easy: some of the plugins I used are wine-bridged windows vsts. :)

glokraw
KVRAF
7360 posts since 6 Oct, 2004

Re: Possibly wrong realtime prioritization causing xruns

Post Wed Jun 05, 2019 2:58 pm

I looked up acoustic drum triggers at Musicians Friend webshop,
not cheap, but a nice variety, and I can see the alure of using
them with synths, especially when having the abilities with the sticks.

The Yoshimi linux synth has dials for Velocity Sense and Velocity Offset.
It might be interesting using those controls with the drums triggering
Yoshimi sounds, to see if there are benefits, and then seeing if
similar controls are available from U-he synths.
I use a Sonuus G2M pitch to midi convertor
with guitar and Yoshimi, and it's great fun.

The UNO analog synth from IK has a useful arpeggiator, to which you could
send midi from the drums, and arp the U-he synth sounds,
and sequenced sounds, adjusting tempo to avoid (or inspire?) chaos,
and blend in the UNO sounds as desired. It's a hardware bargain, and I use it
far more than I ever envisioned. A session with the new Hive sounds
is just around the corner :hyper:
Cheers

goli
KVRer
8 posts since 24 Apr, 2019

Re: Possibly wrong realtime prioritization causing xruns

Post Sun Jun 16, 2019 8:46 am

Somehow didn't get any forum notifications.
Anyway, thanks abique and Jack for looking into this and working out a solution.
Purchased Hive 2 a week ago because of this. :)

Return to “u-he Linux support”