Decent Sampler crashes Ardour

Hi all,

First time posting here, so hope I got the right category!

Ardour Version is Ardour6.9.0~ds0 (built using 6.9.0~ds0-1build1 and GCC version 11.2.0)

Decent Sampler version is Decent_Sampler-1.5.20-Linux-x86_64

The Decent Sampler standalone UI works perfectly well, however if I try and add Decent Sampler as a VST3 instrument it immediately segfaults when I try to add a track using Decent Sampler.

Decent Sampler Library info:

mmw@godsgrave:~/Downloads/Decent_Sampler-1.5.20-Linux-x86_64$ ldd ./DecentSampler 
	linux-vdso.so.1 (0x00007ffdecf63000)
	libasound.so.2 => /lib/x86_64-linux-gnu/libasound.so.2 (0x00007f4c2f89a000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4c2f895000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4c2f890000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f4c2f88b000)
	libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f4c2e538000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4c2e451000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4c2e229000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f4c2f9c9000)
	libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f4c2f84e000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f4c2f832000)
	libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f4c2f824000)
	libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f4c2f7ff000)

Ardour library info:

mmw@godsgrave:~/Downloads/Decent_Sampler-1.5.20-Linux-x86_64$ ldd /usr/lib/ardour6/ardour-6.9.0~ds0
	linux-vdso.so.1 (0x00007ffd61d98000)
	libardourcp.so => not found
	libwaveview.so.0 => not found
	libardour.so.3 => not found
	libmidipp.so.4 => not found
	libevoral.so.0 => not found
	libaudiographer.so.0 => not found
	libptformat.so.0 => not found
	libcanvas.so.0 => not found
	libwidgets.so.0 => not found
	libgtkmm2ext.so.0 => not found
	libpbd.so.4 => not found
	libtemporal.so.0 => not found
	libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f44307ad000)
	libglibmm-2.4.so.1 => /lib/x86_64-linux-gnu/libglibmm-2.4.so.1 (0x00007f4430723000)
	libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f44306c3000)
	libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f4430589000)
	libsigc-2.0.so.0 => /lib/x86_64-linux-gnu/libsigc-2.0.so.0 (0x00007f4430580000)
	libgtk-x11-2.0.so.0 => /lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 (0x00007f4430107000)
	libgdk-x11-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0 (0x00007f4430046000)
	libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007f4430034000)
	libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2 (0x00007f442ff0c000)
	libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f442fef1000)
	libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f442fe8a000)
	libcurl-gnutls.so.4 => /lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f442fde7000)
	libgtkmm-2.4.so.1 => /lib/x86_64-linux-gnu/libgtkmm-2.4.so.1 (0x00007f442fa8c000)
	libatkmm-1.6.so.1 => /lib/x86_64-linux-gnu/libatkmm-1.6.so.1 (0x00007f442fa3c000)
	libgdkmm-2.4.so.1 => /lib/x86_64-linux-gnu/libgdkmm-2.4.so.1 (0x00007f442f9ec000)
	libpangomm-1.4.so.1 => /lib/x86_64-linux-gnu/libpangomm-1.4.so.1 (0x00007f442f9b9000)
	libcairomm-1.0.so.1 => /lib/x86_64-linux-gnu/libcairomm-1.0.so.1 (0x00007f442f98f000)
	libfftw3f.so.3 => /lib/x86_64-linux-gnu/libfftw3f.so.3 (0x00007f442f75b000)
	liblo.so.7 => /lib/x86_64-linux-gnu/liblo.so.7 (0x00007f442f748000)
	libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f442f566000)
	liblilv-0.so.0 => /lib/x86_64-linux-gnu/liblilv-0.so.0 (0x00007f442f549000)
	libsuil-0.so.0 => /lib/x86_64-linux-gnu/libsuil-0.so.0 (0x00007f442f543000)
	libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f442f403000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f442f1d5000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f442f0ee000)
	libmvec.so.1 => /lib/x86_64-linux-gnu/libmvec.so.1 (0x00007f442eff1000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f442efd1000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f442eda9000)
	libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f442ece1000)
	libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f442ecae000)
	libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f442eca5000)
	libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f442ec9e000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f4431761000)
	libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007f442ec91000)
	libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f442ec1b000)
	libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f442ec11000)
	libatk-1.0.so.0 => /lib/x86_64-linux-gnu/libatk-1.0.so.0 (0x00007f442ebe7000)
	libgdk_pixbuf-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007f442ebb7000)
	libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f442e9df000)
	libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f442e9d2000)
	libXinerama.so.1 => /lib/x86_64-linux-gnu/libXinerama.so.1 (0x00007f442e9cd000)
	libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007f442e9b7000)
	libXrandr.so.2 => /lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007f442e9aa000)
	libXcursor.so.1 => /lib/x86_64-linux-gnu/libXcursor.so.1 (0x00007f442e99e000)
	libXcomposite.so.1 => /lib/x86_64-linux-gnu/libXcomposite.so.1 (0x00007f442e999000)
	libXdamage.so.1 => /lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f442e994000)
	libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007f442e97f000)
	libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f442e8ae000)
	libpixman-1.so.0 => /lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007f442e803000)
	libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f442e7c8000)
	libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f442e7c3000)
	libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f442e799000)
	libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f442e78a000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f442e76c000)
	libfribidi.so.0 => /lib/x86_64-linux-gnu/libfribidi.so.0 (0x00007f442e750000)
	libthai.so.0 => /lib/x86_64-linux-gnu/libthai.so.0 (0x00007f442e745000)
	libnghttp2.so.14 => /lib/x86_64-linux-gnu/libnghttp2.so.14 (0x00007f442e71b000)
	libidn2.so.0 => /lib/x86_64-linux-gnu/libidn2.so.0 (0x00007f442e6fa000)
	librtmp.so.1 => /lib/x86_64-linux-gnu/librtmp.so.1 (0x00007f442e6d9000)
	libssh.so.4 => /lib/x86_64-linux-gnu/libssh.so.4 (0x00007f442e66c000)
	libpsl.so.5 => /lib/x86_64-linux-gnu/libpsl.so.5 (0x00007f442e658000)
	libnettle.so.8 => /lib/x86_64-linux-gnu/libnettle.so.8 (0x00007f442e612000)
	libgnutls.so.30 => /lib/x86_64-linux-gnu/libgnutls.so.30 (0x00007f442e427000)
	libgssapi_krb5.so.2 => /lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f442e3d3000)
	libldap-2.5.so.0 => /lib/x86_64-linux-gnu/libldap-2.5.so.0 (0x00007f442e372000)
	liblber-2.5.so.0 => /lib/x86_64-linux-gnu/liblber-2.5.so.0 (0x00007f442e361000)
	libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007f442e292000)
	libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f442e284000)
	libgiomm-2.4.so.1 => /lib/x86_64-linux-gnu/libgiomm-2.4.so.1 (0x00007f442e0b4000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f442e0ad000)
	libicuuc.so.70 => /lib/x86_64-linux-gnu/libicuuc.so.70 (0x00007f442deb2000)
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f442de87000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f442de82000)
	libserd-0.so.0 => /lib/x86_64-linux-gnu/libserd-0.so.0 (0x00007f442de69000)
	libsord-0.so.0 => /lib/x86_64-linux-gnu/libsord-0.so.0 (0x00007f442de5d000)
	libsratom-0.so.0 => /lib/x86_64-linux-gnu/libsratom-0.so.0 (0x00007f442de4f000)
	libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007f442ddce000)
	libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007f442dd8a000)
	libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f442dd5e000)
	libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f442dd35000)
	libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f442dd2f000)
	libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f442dd27000)
	libdatrie.so.1 => /lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007f442dd1e000)
	libunistring.so.2 => /lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f442db74000)
	libhogweed.so.6 => /lib/x86_64-linux-gnu/libhogweed.so.6 (0x00007f442db2a000)
	libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x00007f442daa8000)
	libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007f442d666000)
	libp11-kit.so.0 => /lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f442d52b000)
	libtasn1.so.6 => /lib/x86_64-linux-gnu/libtasn1.so.6 (0x00007f442d513000)
	libkrb5.so.3 => /lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f442d446000)
	libk5crypto.so.3 => /lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f442d417000)
	libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f442d411000)
	libkrb5support.so.0 => /lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f442d403000)
	libsasl2.so.2 => /lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f442d3e8000)
	libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f442d3c5000)
	libicudata.so.70 => /lib/x86_64-linux-gnu/libicudata.so.70 (0x00007f442b7a5000)
	libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f442b76e000)
	libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f442b6d7000)
	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f442b6bf000)
	libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f442b6b8000)
	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f442b6a2000)
	libmd.so.0 => /lib/x86_64-linux-gnu/libmd.so.0 (0x00007f442b695000)

An strace reveals the following output, but I’m not sure if that’s expected or not:

openat(AT_FDCWD, "/home/mmw/.config/DecentSampler/SampleLibrary.db", O_RDWR|O_CREAT|O_NOFOLLOW|O_CLOEXEC, 0644) = 47
fstat(47, {st_mode=S_IFREG|0644, st_size=24576, ...}) = 0
fstat(47, {st_mode=S_IFREG|0644, st_size=24576, ...}) = 0
stat("/home/mmw/.config/DecentSampler/SampleLibrary.db", {st_mode=S_IFREG|0644, st_size=24576, ...}) = 0
lseek(47, 0, SEEK_SET)                  = 0
read(47, "SQLite format 3\0\20\0\1\1\0@  \0\0\0\f\0\0\0\6"..., 100) = 100
fcntl(47, F_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=1073741824, l_len=1}) = 0
fcntl(47, F_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET, l_start=1073741826, l_len=510}) = 0
fcntl(47, F_SETLK, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=1073741824, l_len=1}) = 0
stat("/home/mmw/.config/DecentSampler/SampleLibrary.db-journal", 0x7ffeb562e270) = -1 ENOENT (No such file or directory)
stat("/home/mmw/.config/DecentSampler/SampleLibrary.db-wal", 0x7ffeb562e270) = -1 ENOENT (No such file or directory)

Thanks in advance for any help that can be provided!

Just to add more detail on this - I’ve tried loading the VST into Reaper on the same Linux setup and it works fine, so this is definitely an Ardour thing.

Hi,
I guess, the developers would appreciate if you could post that bug here https://tracker.ardour.org
/rs

That looks like the DecentSampler plugin is using quite a few system libraries. Plugins should be statically compiled so that there are no conflicts between the libraries the plugin uses and the libraries that Ardour uses. If you compile ardour and the plugin yourself on the same system there should not be conflicts, but other than that it is always risky for a plugin to rely on any external code.

OK, thanks, makes sense.

Is it still worth logging this on the tracker?

I would start with the Decent Sampler developer and see if the suspicion about not being statically linked is correct and go from there.

1 Like