[PD] detect dependencies from patch

Dan Wilcox danomatika at gmail.com
Thu Feb 25 10:18:35 CET 2021

Howdy Phil,

We are moving away from the "extra" folder and additional "standard paths" like ~/.pd-externals in favor user search paths for most use cases. This requires specifying folders, so a helper "Documents Directory" was added, mainly for beginners and students but I find it generally useful. For those that don't, it can simply be ignored and disabled.

I think the info on this was updated in the included Pd manual by Alex, but off the top of my head the simplest explanation is the following:

If not enabled, enable the Pd Documents Directory:

    Preferences -> Path... -> Pd Documents Directory -> Reset

There should now be a ~/Documents/Pd/externals folder which is also added to the user search paths.

Put external library folders in there, deken also downloads to here by default.

Note: You can of course use your own user search path and set the path deken downloads to, in which case the following info still applies.

You can now find externals in this folder using [declare]. If you have an external called "extname" in the following folder:


It should be found by Pd with: [declare -path extname -lib extname]

The -path argument specifies search paths while -lib specifies a location to try to load compiled externals, so some externals may require both while abstraction-only externals should only require -path. More complicated externals like Gem which also need to load addition dynamic libs should also work, although may require additional steps / folder placement.

Note: once compiled externals are found and loaded, they cannot be unloaded or reloaded.

Also, without using [declare], objects can be found in the user search paths via prepending the external's folder name: 


Last, if the path given to declare starts with a . or .. (ie. it's a relative path), the search mechanism only looks *relative* to the patch and does not look in further user search or standard paths. This should help encapsulation of certain projects.

    [declare -path ./extname]

> On Feb 25, 2021, at 12:15 AM, pd-list-request at lists.iem.at wrote:
> Message: 2
> Date: Wed, 24 Feb 2021 15:55:06 +0000
> From: Philip Stone <pkstone at ucdavis.edu <mailto:pkstone at ucdavis.edu>>
> To: "pd-list at lists.iem.at <mailto:pd-list at lists.iem.at>" <pd-list at lists.iem.at <mailto:pd-list at lists.iem.at>>
> Subject: Re: [PD] detect dependencies from patch
> Message-ID:
> 	<BYAPR08MB5589848DB50E378D344486FDA79F9 at BYAPR08MB5589.namprd08.prod.outlook.com <mailto:BYAPR08MB5589848DB50E378D344486FDA79F9 at BYAPR08MB5589.namprd08.prod.outlook.com>>
> Content-Type: text/plain; charset="windows-1252"
> I have to say that I have gotten kind of lost in the discussions about loading and declaring external libraries. I would like to embrace the current best practices, but don?t have a solid overview of the whole. Would anybody be willing to write up a summary?
> I think it would be an invaluable resource for new users (as well as old, like  me!)
> Best,
> Phil Stone
> Davis, CA

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20210225/0063731a/attachment-0001.htm>

More information about the Pd-list mailing list