Zyn Fusion UI not found in Ardour

Hi,
I followed Help with Zyn Fusion UI subject but as it is closed, I had to create a new one. I followed one of the replies and get Zyn Fusion installed

sudo ls -la /opt/zyn-fusion/
total 22104
drwxr--r-x 8 root root     4096 nov.  16 20:45 .
drwxr-xr-x 3 root root     4096 nov.  16 20:45 ..
drwxrw-r-x 4 root root     4096 nov.  16 20:48 banks
-rw-rw-r-- 1 root root    18017 nov.  16 19:52 COPYING.zynaddsubfx
drwxrw-r-x 2 root root     4096 nov.  16 19:52 font
-rwxrw-r-x 1 root root     3213 nov.  16 19:52 install-linux.sh
-rwxrw-r-x 1 root root 16030112 nov.  16 19:52 libzest.so
drwxrw-r-x 2 root root     4096 nov.  16 19:52 qml
-rw-rw-r-- 1 root root      265 nov.  16 19:52 README.txt
drwxrw-r-x 2 root root     4096 nov.  16 19:52 schema
-rwxrw-r-x 1 root root  2596144 nov.  16 19:52 zynaddsubfx
drwxrw-r-x 2 root root     4096 nov.  16 20:48 ZynAddSubFX.lv2
drwxr--r-x 2 root root     4096 nov.  16 20:48 ZynAddSubFX.lv2presets
-rwxrw-r-x 1 root root  3872656 nov.  16 19:52 ZynAddSubFX.so
-rwxrw-r-x 1 root root    66352 nov.  16 19:52 zyn-fusion

The install-linux.sh script has already been executed.
Then I created a symbolic link for ZynAddSubFX.lv2 to appear in /usr/lib/lv2/ which Ardour 6 seems to parse, the OS is Ubuntu Studio 21.10. But when I scan, nothing happens, no “zyn” plugin found. Any idea what I did wrong? Do I need some other symbolic Link?

BTW, do you guys know any easier solution? I spent hours on this plugin compared to less than 20 minutes for the whole OS. Not good for productivity, and I’m not a big fan of unpackaged application. I saw some non-free tools on the website but don’t want to pay for a package that contains such complicated software.

Or maybe there are other distributions that have package for that? I didn’t find any yet.

Thank you all, Ardour 6 is awesome, have a nice day.

LV2 plugins need a directory for the plugin under /usr/lib/lv2 (or usr/lib64/lv2 depending on architecture and linux distribution), and in that directory need the plugin.so, the plugin ttl file, and the manifest file. Some plugins also have a separate UI ttl file, but I don’t know when that is needed.

This is the Zyn directory on my machine:
~]$ ls /usr/lib64/lv2/zynadd.lv2
manifest.ttl zynadd.so zynadd.ttl

I don’t see zynaddsubfx.ttl in your listing above, so not sure what to do about that.

This is not a valid path – it only works on Fedora systems that also have a patched liblilv or with a custom LV2_PATH.

All other distros to follow the official spec instead:
https://lv2plug.in/pages/filesystem-hierarchy-standard.html

That is correct.

Is the plugin listed when you run

lv2ls | grep zyn

(lv2ls lists IDs of all LV2 plugins).

Why not get it from Ubuntu?

apt-get install zynaddsubfx-lv2

I tried, but I get the old interface, not zyn-fusion.

Thank you for this useful command.

/opt/zyn-fusion$ lv2ls | grep zynerror: failed to open file /home/julien/.lv2/lsp-plugins-lv2-1.1.5-Linux-x86_64/manifest.ttl (No such file or directory)
lilv_world_load_file(): error: Error loading file `file:///home/julien/.lv2/lsp-plugins-lv2-1.1.5-Linux-x86_64/manifest.ttl'
lilv_world_load_bundle(): error: Error reading file:///home/julien/.lv2/lsp-plugins-lv2-1.1.5-Linux-x86_64/manifest.ttl
error: (dyn-manifest):1055:32: invalid IRI character (escape %20)
no more csLADSPA plugins
error: failed to open file /usr/lib/lv2/ZynAddSubFX.lv2/manifest.ttl (No such file or directory)
lilv_world_load_file(): error: Error loading file `file:///usr/lib/lv2/ZynAddSubFX.lv2/manifest.ttl'
lilv_world_load_bundle(): error: Error reading file:///usr/lib/lv2/ZynAddSubFX.lv2/manifest.ttl

Lot of errors for a fresh install, including things that have nothing to do with zyn… I have to mention I did not format neither my home directory nor /home/julien/.lv2

Well. that explains it. – How have you created the symbolic link?

Try

# remove old symlink
rm /usr/lib/lv2/ZynAddSubFX.lv2
# create symlink (note the trailing slash)
ln -s /opt/zyn-fusion/ZynAddSubFX.lv2 /usr/lib/lv2/

Ok I get it. The directory /opt/zyn-fusion/ZynAddSubFX.lv2 is empty. Something has gone wrong during the build process maybe. So your solution will work, I’m sure, but I have to rebuild before. What a nightmare. Thanks anyway.

As it is now a Zyn fusion problem and not an ardour or a ubuntustudio related problem, maybe I can close the subject?

That is interesting that only /usr/lib is valid for LV2. How do other distributions handle mixing 32 and 64 bit binaries on the same filesystem? Do the filenames for the libraries change to indicate architecture?
I thought that since architecture specific suffix for “lib” was included in LHS that other distributions had done the same thing.

This debian documentation seems to indicate that the lib vs. lib64 path is hard coded into gcc:
https://wiki.debian.org/Multiarch/LibraryPathOverview#ELF_interpreter
"On bi-arch platforms, GCC will automatically choose the correct variant depending on compile options like -m32 or -m64. Again, the logic to do so is hard-coded into the back-end. "

LV2 abstracts that. Same for VST3. There can be multi-arch bundles.

The valid path for LV2 is determined by the way that lilv (the canonical library for using LV2 as a host) is compiled. LV2_PATH is set at compile time for lilv (and can be modified at run time via the environment). This is what distros and packages have to be in sync with: you cannot put LV2 plugins somewhere that lilv doesn’t know to look, without requiring users to explicitly set LV2_PATH themselves.