renoise not recognizing zynaddsubfx/dssi

I’m trying to get zynaddsubfx going as dssi plugin in renoise on crunchbang (Debian Wheezy).

I downloaded the source ZynAddSubFX-2.4.3.tar.bz2, installed the dependencies, ran cmake and ccmake (switching DSSI on) as advised in doc/build.txt. Everything seems to build just fine, running make install places the dssi plugin in /usr/local/lib/dssi:

  
atte@blokhus:~/software/zynaddsubfx/ZynAddSubFX-2.4.3$ ll /usr/local/lib/dssi/libzynaddsubfx_dssi.so  
-rw-r--r-- 1 root staff 3.6M Jul 12 00:35 /usr/local/lib/dssi/libzynaddsubfx_dssi.so  
  

However zynaddsubfx doesn’t show up in renoise. I then tried symlinking to /usr/lib/dssi (maybe renoise forgot to look in /usr/local)

  
atte@blokhus:~$ ll /usr/lib/dssi/  
total 1.1M  
drwxr-xr-x 2 root root 4.0K Jun 5 10:21 calf  
-rw-r--r-- 1 root root 955K May 17 2012 calf.so  
drwxr-xr-x 2 root root 4.0K Jun 5 09:57 fluidsynth-dssi  
-rw-r--r-- 1 root root 22K Jul 19 2011 fluidsynth-dssi.so  
-rw-r--r-- 1 root root 8.1K Dec 3 2011 karplong.so  
drwxr-xr-x 2 root root 4.0K Jun 5 10:19 less_trivial_synth  
-rw-r--r-- 1 root root 12K Dec 3 2011 less_trivial_synth.so  
lrwxrwxrwx 1 root root 42 Jul 12 00:48 libzynaddsubfx_dssi.so -> /usr/local/lib/dssi/libzynaddsubfx_dssi.so  
drwxr-xr-x 2 root root 4.0K May 29 11:41 nekobee  
-rw-r--r-- 1 root root 74K Apr 14 2011 nekobee.so  
drwxr-xr-x 2 root root 4.0K Jun 5 10:19 trivial_sampler  
-rw-r--r-- 1 root root 11K Dec 3 2011 trivial_sampler.so  
-rw-r--r-- 1 root root 5.7K Dec 3 2011 trivial_synth.so  
  

Still no luck

Any ideas? Anybody using the dssi version of zynaddsubfx?

NB: If it helps, here’s the libzynaddsubfx_dssi.so I compiled

cool, i didn’t know zynaddsubfx had a DSSI plugin… what version are you using?

/* edit */ duh,

It’s the same version i downloaded, but afaict the docs don’t say anything (much) about dssi…???

…btw, do you have the same problem as i do with the standalone application - note on’s and note off’s are inverted, ie. notes sound when i release the keys :3

Well, I guess there shouldn’t be much to say. Enable it with ccmake, and that’s it…

I’m AFK at the moment, so cannot test. I never had that problem with zyn in the past, but it sounds like a challenge to play. Do you have the same with a binary version installed by your distros package manager?

I just compiled the DSSI plugin and it fails with the same error as yours:

Renoise Plugin Server LOG> DSSI: Instantiate FAILED (failed to open the DLL file '/usr/lib/dssi/libzynaddsubfx_dssi.so: undefined symbol: instance_name')!  

/* edit */ The note-on/note-off problem i described above is when using OSS for midi input. Jack and alsa don’t seem to work, though i haven’t tested extensively… how are you using it? Can you post the binary you compiled?

Seems like a good program, but with a really shitty user interface and even worse OS integration :confused:

Yeah. I’m not sure exactly what that means. I downloaded the source of whysynth (another dssi synth) and grep’ed for “instance_name” in the source, but it doesn’t seem to be defined. So it’s not something renoise expects from zyn, AFAICT…

I used it alot years ago (before I discovered renoise). It’s an amazing synth, the UI is quite OK, actually. However the concepts in the synth are very unique to zyn, maybe that’s what confuses you, if you’re expecting VCO, VCF, ADSR, stuff like that. It really excels in pads, but can make all kinds of really deep sounds.

I used to run it as standalone under jack, driven by alsa midi, along with a bunch of other FLOSS audio programs.

It has (had?) some problems with it’s jack implementation, it was fundamentally flawed and not realtime safe. A linux-only fork, named yoshimi, was started by a guy named “cal”, with the intention of playing around with the source and making it perform better in real-time. Unfortunately cal passed away in 2011, others took over the project, not sure what the status is ATM.

The .so I compiled is linked to in the first post <_<

oh, sorry, i meant the standalone binary.

How do you tell it what midi device to use when not using oss?

/* edit */

This isn’t a bug with renoise, since rosegarden also pukes on the same plugin with this error:

WARNING: DSSIPluginFactory::discoverPlugins: couldn't dlopen /usr/lib/dssi/libzynaddsubfx_dssi.so - /usr/lib/dssi/libzynaddsubfx_dssi.so: undefined symbol: instance_name  

/* edit more */

Futzing around with the source code trying to fix this, i got around the instance_name symbol missing, but now there’s more undefined symbols :(

Here you are…

Start qjackctl, start zynaddsubfx, click “connect” in qjackctl, connect audio from zyn to soundcard and alsa (= alsa midi) from keyboard to zynaddsubfx.

Will have a go at this too :guitar:

Apparently it was a bug that been fixed in git…

http://sourceforge.net/p/zynaddsubfx/bugs/43/

  
git clone git://git.code.sf.net/p/zynaddsubfx/code zynaddsubfx-code  
  

I build it, and got this dssi plugin, which seems to work (remember to click “rescan previously failed plugins” in renoise):

https://dl.dropboxusercontent.com/u/4343030/libzynaddsubfx_dssi.so.

I cannot figure out how to access any presets, though :huh:

NB: During all this googling I found that another old love of mine, amsynth, is now also available as dssi. I build it, and it seems to work just fine!

  
git clone https://code.google.com/p/amsynth/  
  

EDIT:
http://code.google.com/p/amsynth/issues/detail?id=33&q=dssi

There’s a bug in amsynth, you need to run the stand-alone version before presets will be available in the dssi plugin…

Awesome, thanks for the info!! :D :D

For presets, you have to copy the presets (“instruments” directory) over from the 2.xx release. Either to the git source before installing, or wherever you wish to install them.

Copy to where? I have alot of old zyn presets I’d like to use in zyn/dssi…

src/Misc/Config.cpp:

  
 if(cfg.bankRootDirList[0].empty()) {  
 //banks  
 cfg.bankRootDirList[0] = "~/banks";  
 cfg.bankRootDirList[1] = "./";  
 cfg.bankRootDirList[2] = "/usr/share/zynaddsubfx/banks";  
 cfg.bankRootDirList[3] = "/usr/local/share/zynaddsubfx/banks";  
 cfg.bankRootDirList[4] = "../banks";  
 cfg.bankRootDirList[5] = "banks";  
 }  
  
 if(cfg.presetsDirList[0].empty()) {  
 //presets  
 cfg.presetsDirList[0] = "./";  
 cfg.presetsDirList[1] = "../presets";  
 cfg.presetsDirList[2] = "presets";  
 cfg.presetsDirList[3] = "/usr/share/zynaddsubfx/presets";  
 cfg.presetsDirList[4] = "/usr/local/share/zynaddsubfx/presets";  
 }  
  
  

It works if I place the banks in ~/banks. Unfortunately renoise crashes whith this Log.txt when shutting down a song that uses and instance of zynaddsubfx as dssi :frowning:

Seems to work perfectly here… happens consistently? steps to reproduce?

Ok, I was working on a test song, that crashed all the time when closing. I just started a new song, added syn/dssi + notes, saved and closed, no crash.

Here’s a simplified version of my test song, steps to crash:

  1. Load song
  2. Quit renoise with the song loaded

Nope, no crash here. Renoise exits normally, and nothing unusual in the logs (xterm window i ran it from)

Great, an unreproducable segfault, that’ll make taktik happy…

Perhaps delt “sudo’s” Renoise instead of starting it as ordinary user?

Nope, running renoise as my normal user account here.

I have opted for an imo easier method. why not just install ZynAddSubFX as a standalone binary, run a gui for jack such as qjackctl and and connect the audio and midi from renoise to ZynAddSubFX, then open ZASF as an external midi instrument within Renoise and on this mixer channel add a line input device… i have tried it and it works great. pro i can see from using this method is that it should cut down on Renoises internal cpu and allow creation of your own sounds in realtime, but the main con is setting it up each time, where the dssi would be quicker.

I’m trying to get this to work now, I put the zyn you linked in my dssi folder, and when I rescan in renoise I can clearly see it scanning zyn, but then it still doesn’t list it in plugins.

edit: …I installed dssi-vst, and rescanned, and I swear it made it forget all the dssi’s it previously had listed. They’re just gone.