[PD] loading Camomile plug-ins using vstplugin~

Christof Ressi christof.ressi at gmx.at
Sun Jan 20 19:07:30 CET 2019


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 at ucsd.edu>
> An: "Christof Ressi" <christof.ressi at gmx.at>
> Cc: claude at mathr.co.uk, Pd-List <pd-list at 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 at gmx.at>
> > > An: Pd-List <pd-list at 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 at mathr.co.uk>
> > > > An: pd-list at 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
> > > > -- 
> > > > https://mathr.co.uk
> > > > 
> > > > 
> > > > 
> > > > 
> > > > _______________________________________________
> > > > Pd-list at lists.iem.at mailing list
> > > > UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
> > > >
> > > 
> > > 
> > > 
> > > _______________________________________________
> > > Pd-list at lists.iem.at mailing list
> > > UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
> > >
> 
> 
> 





More information about the Pd-list mailing list