[PD] plans for Pd 0.48

Miller Puckette msp at ucsd.edu
Sun Jan 1 21:32:03 CET 2017

Hi all,

I'm now ready to start working toward the next Pd release (0.48) . I've barely
touched the Pd sources since the 0.47-1 release last June, and meanwhile picked
up lots of ideas from the Pd convention and always have my own long list of
things to do.   In the interest of transparency I'll try to map out my plans for
the 3-ish months I think it will take me to get to 0.48.

I'll only be advancing rather slowly before Feb. 4 because I have two separate
music production projects before then; I'll start working faster after that. 
First thing is always to merge in as many patches and pull requests as I can.
I get these from two sources: sourceforge
and github (https://github.com/pure-data/pure-data/pulls).  At the moment
I don't prioritize one of those above the other.  I do this first because,
when I enter a period of heavy code editing I risk causing conflicts with
patches/pull requests and I don't want to create extra work for contributors.

In a few days I'll start on my own changes, with the major ones first so that
there's extras time to get them decently debugged; then while bugs in the
major changes are surfacing I can take on a larger list of smaller changes.
The major changes I want to try to put in this release are as follows:

1.  Make a stab at making Pdlib callable from multiple threads.  There's a
suggestion from Peter Brinkmann in which gensym() (and I presume by
extension, pd_bind() etc) would be protected by a lock.  I have an alternative
idea I'd like to float; I'll do this in a separate message to follow.

2.  fix "preferences" so that you can load/store them explicitly to files, and
offer an option to delete all "system" preferences ("defaults" on mac;
registry info on Windows).

3.  Adapt and incorporate the Pd-llork/purr-data "infinite undo" feature.  Since
the code has diverged I'll probably have to extensively rewrite it to work in Pd

4. fix the DSP sorting mechanism so that objects can sense whether they have
signals connected and, if not, avoid having Pd automatically generate fake
signals for them to use.  This way, for example, "+~" can finally detect whether
it's got a signal connected without having the user have to tell it via "+~ 0".
Also, then the filters (hip~ etc) can then be upgraded to allow signals for
filter parameters, without doing the extra calculations if there's no signal
connected.  This will require adding something to the "DSP" mechanism; I'm still
not sure how to do this in the best way.

5.  Make a binary "FUDI" format for pd~ objects, and perhaps also offer it as an
option for netsend/netreceive (I'm not sure if that's needed or not - maybe the
existing "-b" binary formatting can be used in conjunction with some new
formatting/parsing objects to allow passing floats and symbols around in binary
messages instead.)

6. Hack at sigmund~ to add some features it needs.

This is a long list and I probably won't get to all of it.  Then I'll move onto
all the smaller changes, which are too numerous to list here.

More information about the Pd-list mailing list