[PD] A way to query the current platform

Jonathan Wilkes jancsika at yahoo.com
Wed Sep 24 07:56:05 CEST 2014

On 09/24/2014 12:15 AM, Chris McCormick wrote:
> Hi Miller,
> Now that Pd is running on diverse platforms and variants, it would be
> very useful to have a generic interface that a patch can use to query
> the current platform. Something like sending a "getinfo" message to the
> pd object which would send back e.g.:

I've got [pdinfo] in Pd-l2ork which has a [version( method. Wouldn't be 
hard to add a symbol for the Pd distro, too.

As for OS-- what's the best way to do this?  (Both in terms of the 
possible strings to output and a way to distinguish them in the C code.)

> list osx vanilla pure-data
> list linux pd-l2ork pure-data
> list ios zengarden
> list android droidparty libpd pure-data
> The use-case for this is things like:
>   * On Android, audio latency is high and needs to be factored in by patches.
>   * A patch that wants to load a text file might need to use a different
> path delimiter on linux versus windows.

Do you have an example where this would be necessary?  I thought Pd was 
implemented in such a way that everyone just writes unix-style paths in 
their patches and Pd converts to the local path delimiters underneath.  
(At least that's the way the tutorials look, and they load 
soundfiles/textfiles correctly on all platforms.)

> What are your thoughts on this?
> I am assuming the Pd-l2ork fellows will pipe up with some already
> implemented solution. :)


prints this to the console:

audio-api: ALSA
audio-apilist: OSS ALSA
audio-apilist-raw: none ALSA OSS MMIO PortAudio JACK SGI
audio-inchannels: 2
audio-indev: 0 2
audio-indevlist: HDA Intel (hardware) HDA Intel (plug-in)
audio-multidev-support: 2
audio-outchannels: 2
audio-outdev: 0 2
audio-outdevlist: HDA Intel (hardware) HDA Intel (plug-in)
blocksize: 64
classtable: 254 classes loaded ("classtable" outputs the full list)
dir: /usr/local/bin/
dsp-status: 0
midi-api: ALSA
midi-apilist: OSS ALSA
pi: 3.14159
samplerate: 44100
version: 0 42 7

Each attribute is a method you can use to send the values to the outlet, 
[dir(--[pdinfo]--[set $1(--[/usr/local/bin/(

"pi" and "audio-apilist-raw" will probably be removed

There's also:


which prints:

coords: 0 0 0 0 0 0 0 0 0
dir: /home/pd/pd/src
dirty: 1
dollarzero: 1002
editmode: 0
filename: Untitled-1
hitbox: 0
name: .x98092c8
pointer: (pointer)
posonparent: 0 0
screenpos: 526 181 976 481
toplevel: 1
vis: 1

There's also



which give info about class args, size, methods, object xlets, bbox, 
text, etc. and are still under development.


> Cheers,
> Chris.

More information about the Pd-list mailing list