Reflections on Pure Data


#1

MOD NOTE: moved to own topic, so as not to take other off topic.
(I think its interesting reflecting on PD, the good/bad perhaps gives ideas about direction of Axoloti)

yeah, I've been using PD for Bela and rPI3, and its been leaving me very cold, I find it really uninspiring... not sure why, partly the UI, partly the faffing with extensions (perhaps deken will improve this). I really don't understand why PD is so popular, sure its free/cross platform, but is that it? PD also just doesn't appear to have progressed.

if you look at Max/Reaktor (and id argue axoloti) they are streets ahead, and are fun/inspiring to use, unfortunately just not available on Bela/rPI/Linux.

but perhaps I'm being unfair, but I put a large part of the blame on me under utilising Bela on PD.
recently, Ive been looking at supercollider as an alternative for bela, to make it fun/inspiring, and that has helped.

sorry, PD rant over :wink:

@igel that would be cool.
wiki, yes, its been pointed out, however the forum posts here are able to be wiki posts (and posts in user guide section are wiki posts) - the issue has always been about content creation (or lack of), rather than the technology... its easy to say a change in tech, will make it easer, and create a rush of content, but frankly I highly doubt that.
(someone did previously, talk about creating a wiki before, but has often been the case, they talked the talk, but not walked the walk :wink:)


Patching guide
#2

100% the UI fault. I just loose concentration when it looks so sparse and "cold". Axoloti atleast got some colours and an actual patching interface. But I came from G2 and Axoloti is similar to Nord editors( a little bit), so it makes more sense to me than PD. Maybe someone coming from PD sees it differently, i dunno.

I am not that deep yet with PD, but I think it can do some nice things. One of my friends is studying at San Diego university and has got Miller Pucket as teacher. I think miller is a busy man and maybe not so much time to update PD. Afterall it is totally free to use, so maybe that has to do with the slow progress.

And he is also author/cowriter of Max MSP, which is a paid software. So maybe it is bad for business updating the free one to same standard as the paid one. Just thinking out loud here :slight_smile:


#3

yeah, the UI is a large part of the issue - but definitely not 100%

its picky, e.g. you have to use triggers for multiple outputs, since the order of messages sent is defined by the order you connected - that's just crazy.

there are so many 'versions', pd-vanilla is fine, but then there is pd-ork, pd-extended... and now these will become defunct, to be replaced by deken... perhaps! its just confused, and lacks direction.

the UI patch elements are pretty poor/primitive.

it doesn't support (as far as I can tell) a proper polyphonic model ( like max poly~), copying encapsulations, and linking to poly is a horrible workaround.

it doesn't support (again as far as I know) , multiple threads (max achieves this, also via poly~), this is pretty important for low powered processors like the rPI which have multiple cores, but each is not that powerful.

frankly, it just feels like a mess...

as for Max/PD, I don't think Miller has anything to do with Max these days, basically he created it, then forked PD off it, then sold Max to Cycling74... who in turn have recently sold it to Ableton.
PD just feels like its never really moved on from than fork, where as Max has thrived as a commercial product, not only on the audio side, but adding graphics and much more (e.g gen/m4l)

I keep coming back to PD because of lack of choice, and hoping if I get used to it, I might find out why others like it... but if there was Max or Axoloti on ARM, Id drop PD in an instant.


#4

well this is not strictly true. pd-extended is abandonware if you can call it that. in fact it has been for many years. the only reason people are still using it is because they are used to the all in one package. pd2-lork is on the best way to replace extended and it is in no way defunct in fact it is brand new and still in it's early development. there has been a huge rewrite of the gui framework, mostly done by jonathan wilkes which makes pd completely tcl/tk less. tcl tk is the main limiting factor in gui development so expect to get some nicer looking pd in the future. pd2-lork also has a k12 mode, look here:

http://l2ork.music.vt.edu/main/make-your-own-l2ork/software/

i for one come from pd land and i find axoloti more frustrating or at least more limiting because i am used to pd. i love the way pd looks and works. you can make shiny colourful guis if you like, but you don't have to. also the issues with extensions are (at least for me) over with deken.

i think it does now as of 0.47.1 but i have never used this.

you can run pd within pd to get more cores involved. you can also start multiple pd instances and link them.

this is one way to put it, but in my eyes this was a choice, pd is all about doing it yourself and max severely limits your power to do what you want. sure pd clicks and crackles if you don't take care, but maybe you want crackles and clicks. pd has a huge graphic system, gem if you are unaware. i would even prefer pd if it would cost and max would be open source.

ok, pd praise over :slight_smile:


#5

cool @lokki I'd be really glad if someone could help me like PD, as I really do want to like it ... due to its cross platform nature :slight_smile:

pd-lork, is an off shoot - no? and not officially supported by max miller? as I mentioned, actually its more just 'confusion' to me ,as a PD newbie... what is the proper version of PD? does pd-lork support deken?

polyphony - can you give me a hint where to look, anytime I search for polyphony on PD , all it get is the use of poly, which just does the voice allocation, and then you are expected to route to different copies of the same patch.

threads - pd... ok, but how do you pass data between instances, can you have audio and control inlets/outlets, that's how it works in max, and allows you to upsample/downsample on the boundary too.

how so? it also supports extensions with a public sdk... so I cannot see the difference to pd in that regard?

(I was not aware of gem, though in fairness, graphics are not my real interest... just found its surprisingly easy in max/msp, but perhaps gem is as good/better - no idea :slight_smile: )

why? what is it that PD does better than Max?

on the surface, Max has better documentation, Gen~ , M4L, a separate presentation view, threads/poly~ ... a library and package management system, the ability to build a standalone and distribute, vst hosting ...

perhaps you don't want these things, but what is it that PD excels at? why choose it over Max on a PC/Mac? (other than free/cross platform , which ive already acknowledged)


#6

btw, sounds like I need to checkout pd-lork, if that's where the future is...
perhaps I can get the bela guys to look to see if they can support it. (currently its only pd-vanilla/extended)

also , can pd-lork be configured to run inside a separate process , e.g. like libpd.


#7

sorry i was not clear on this. max (at least the last time i used it) did many presumptions on my signal flow. it seems there are some fade ins and fade outs preprogrammed, so it sounds cleaner when jumping from full on audio to off for example. with pd you have to add a line~ or vline~ object for that, but it is your choice you can also choose to have it rough and clicky.

pd2-lork and purr-data are offshots as pd-extended also was. the only supported version by miller is pd-vanilla.

as for polyphony look for the clone object. it's not specifically for polyphonic synth use, it just enables you to create multiple instances of a subpatch. so poly and clone would be the way to go.

pd within pd supports inlets and outlets for data/audio interconnection create a pd~ object and look at the helpfile. as far as i know it also supports up downsampling. running multiple pd instances it is a little more daunting, use jack for audio interconnection and things like udpsend and udpreceive for data.

-opensource (already mentioned)
-lightweight
-cross platform
-many very basic objects like rpole~ that allow for filter creation etc.
-command line version
-libpd (run pd on iOS android, in your game etc.)

there is something like maxforlive in pd land as well, let me dig it up in the pd-mailinglist.

sorry have to run for now.


#8

Maybe you should check out the higher level stuff based on PD like Automatonism. Not exactly pretty either but the higher level "modules" like standard filters, Envelope generators etc. does make it easier to make things than straight Pure Data elements. https://www.automatonism.com/the-software/


#9

clone - thanks for that, looks just the ticket, not sure why ive not seen examples of it before...

pd subpatch - I don't think that creates a new thread, does it?
new pd instance - sure, but udp comms/jack is much more expensive, in processing than a shared address space the normal inter thread comms (mutex etc) , and the protocol is not clear (like inlets/outlets).

these are pretty much the reason I keep stumbling into PD :slight_smile:

( you can do low level filter stuff in max, and gen~ allows much lower level stuff again :wink:)

I think I need to give purr data a try, perhaps that on a rPI might be more enjoyable... and Ive just noticed the bela devs have been asking questions to Jonathon, to help improve it for embedded use :slight_smile:

thanks, I was looking at that last week, it looks ok, though a bit limited... it seems a bit like BEAP on Max.
what I do like about Automatonism , is looks like its perhaps a nice way to start and the many of the Automatonismobjects are pretty simple PD subpatches, so seems like a good way to get familiar with PD.

... I guess it should run under purr data, given its pd-vanilla.

hmm, do I give PD yet another try, or just stick with supercollider, which I'm quite enjoying :wink:


#10

nono, if you create a [pd~] (notice the tilde, it is not a subpatch) object that will run a pd process within pd with adc~ and dac~ being represented by in and outlets in the "master" pd instance. this creates a new thread, i'm sure about that. you can also add inlets and outlets for messages as well. as i said create a pd~object and look at the helpfile, it is pretty helpful :slight_smile:


#11

Ah, sorry missed the tilde


#12

moved the pi3 / bela discussion to and existing topic, to leave this free for PD.

23 posts were merged into an existing topic: Bela and PI3