ha, nice to here this works! this was just a wild guess after all... unless there are any drawbacks (I'm not a linux expert) I'll add this to the code. Now I'm curious how vstplugin~ + Camomile behaves on macOS :-)
Btw, REAPER is available for Linux: https://www.reaper.fm/download.php#linux_download
Gesendet: Sonntag, 20. Januar 2019 um 18:07 Uhr Von: "Miller Puckette" msp@ucsd.edu An: "Christof Ressi" christof.ressi@gmx.at Cc: claude@mathr.co.uk, Pd-List pd-list@lists.iem.at Betreff: Re: Re: [PD] loading Camomile plug-ins using vstplugin~
Bingo! I added the RTLD_DEEPBIND flag to the dlopen() call in vstplugin~ and my Camomile plug-in sprang to life.
Now, as to _why_ anyone migth want to do this, here's my use case: I'm working with a musician who uses Abelton on a Mac, so I want to write him a plug-in. But I have no usable real-time VST hosts on my old Mac (I keep an old MACOS so I can compile Pd back-compatibly). I also don't have any real-time VST hosting software on linux where I'm developing the patch for the plug-in. I could learn Ardour (maybe it's time I did that anyhow) but the fastest way I could see to be able to host my plug-in is from Pd, which is a piece of software I know well.
cheers Miller
On Sun, Jan 20, 2019 at 05:18:56PM +0100, Christof Ressi wrote:
maybe the RTLD_DEEPBIND flag to dlopen() could do the trick?
http://man7.org/linux/man-pages/man3/dlopen.3.html
if I understand correctly, with this flag the shared object should prefer its own symbols, in this case pd_init() from the statically linked libpd, not from the Pd app. I don't have time right now to test this, though.
and guess what: [vstplugin~] + Camomile actually seems to work on Windows :-D :-D :-D. See attached picture.
Christof
Gesendet: Sonntag, 20. Januar 2019 um 14:55 Uhr Von: "Christof Ressi" christof.ressi@gmx.at An: Pd-List pd-list@lists.iem.at Betreff: Re: [PD] loading Camomile plug-ins using vstplugin~
Maybe static linking of libpd in Camomile would fix this?
I think Camomile already links statically against libpd.
Gesendet: Sonntag, 20. Januar 2019 um 14:35 Uhr Von: "Claude Heiland-Allen" claude@mathr.co.uk An: pd-list@lists.iem.at Betreff: Re: [PD] loading Camomile plug-ins using vstplugin~
Hi,
On 20/01/2019 01:52, Miller Puckette wrote:
I don't think it works. Unless I'm misreading things, once Camomile calls pd_init(), that call doesn't go to the pd_init that's compiled into Camomile (via libpd) but instead calls pd_init from the Pd that called vstplugin~ that called Camomile. This does nothing, and the next thing libpd tries to access in the Pd instance fails.
Maybe static linking of libpd in Camomile would fix this??? But that would just postpone the issue until the first dynamically-linked external is loaded by the deeper Pd, which tries to access eg class_new(): does it get the one in Pd host or Camomile .pd_linux?
On GNU glibc systems, dlmopen() may be relevant?
Claude
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list