[PD] Pd Development "Reverse Kickstarter"

Jonathan Wilkes jancsika at yahoo.com
Wed May 15 21:06:02 CEST 2013

On 05/15/2013 02:12 PM, João Pais wrote:
> I find it a nice idea. Some ideas:
> - I myself am very interested in anything that will improve on data
> structures, although that's a niche. Either by improving existing objects
> (like the array "change" pointer, and I have a list of other wishes
> somewhere), or by adding new methods or objects that make things easier.
> It's still amazing at how much work is necessary to perform simple
> operations.

It's kind of a chicken and egg problem.  Data structures are a fringe 
feature (outside of their relationship to "Put" menu arrays).  To make 
them into a more accessible feature would require a lot of work.  I 
think there are more important changes that should come first, and some 
of those changes may make data structures easier to improve in the future.

> - a specific question: does it make sense to use the -xxxxx color scheme
> (used in gui objects) on data structures? that wouldn't break the 
> existing
> one, and would add an rgb reference, which makes much more sense than the
> current "logic"

I think symbolic colors like #ff0000 are more widely accepted/understood.

Inside [plot] I just added two symbol arguments for such colors (fill 
and outline
color).  It's ugly because now there are three places to specify color: 
the original
3-digit ds color code, then the last two arguments that are symbolic 
colors.  But
objects like [plot] that have a bunch of positional arguments are 
already ugly.  This
is where named arguments (like a comma separated list) are very 
appealing-- then
we could just have a fillcolor method to set the fill color, and that 
method could take
either a single symbolic argument like #ff0000, or three floats for rgb 
which would be
more suitable or "Pd-ish" for programmatically changing the color.

> - at some point I spoke with IOhannes about porting FTM to Pd. It 
> seems an
> impossible task, but do you mind just having a look to see if there's "a
> new hope"? As I recall, the main problem was the GUI implementation.

Do you have a link to the some info on it?  Or a demo on vimeo or youtube?

> - let [readsf~] keep files open after playing once, and add a "seek" or
> "play x [to] y" function

I think there was a thread about readsf~ recently.  I'll go back and 
have a look.

> - does [readany] really work? how about adding flac to it?


> - at some point I posted a bug in pd-dev about big arrays not 
> displaying anything after 2000(?) points. Improving on this might be good
> - for an array [foo], [r foo] would spew details like changes in 
> properties and user interaction?

In Pd-l2ork, an array named "array1" has a receiver [array1_changed] 
that sends a bang when an element is changed.

Can you point me to the bug you posted?

> - depending on the question above, is there any working mp3 object in pd?

I think [readanysf~] supports mp3

> - since [soundfiler] has to read a sound file's information, how about it
> also dumps out the general parameters given by [wavinfo],
> [tof/sample_unpack], [soundfile_info]? this one isn't really an 
> emergency,
> but it's a bit strange to be doubling the amount of objects.

That's something I've wanted for a long time as well.  Unfortunately Pd 
is no
stranger to doubling objects:


One of these does optimization for blocksizes that are multiples of 8, 
one does
optimization using simd instructions, one doesn't do any optimization, 
and one
looks like it was planned to selectively compiled based on whether or 
not any of
the others already exist!

Not to mention abs~ now in Pd Vanilla.  If Pd-extended/Pd-l2ork does not 
want to
break patches they would technically need to keep every single one of 
them forever
(because of namespace prefixes).

> You should not just put something about your idea in your website, but
> also in the puredata.info wiki. Maybe there are other persons that would
> like to contribute or to help with the programming.

This is the only place I've put information so far.


> João
>> Hi List,
>>      I'd like to try a method of getting paid for doing Pd work which 
>> I will call a "Reverse" Kickstarter".  Basically I'll work on the 
>> aspects of Pd I'm currently working on through the month of May, full 
>> time, then at the beginning of June if anyone wants to pay me for the 
>> work I finish up to that point I'll do another month's work, full 
>> time, if a particular goal is reached.  This way the Pd community 
>> will end up with the benefit of my work at the beginning of June at 
>> no risk/cost, and I'll do a lot of the work I would have done anyway 
>> (though devoting more time to it than I would have otherwise).
>>      I call it a "Reverse Kickstarter" for this reason-- if the work 
>> I complete in May is enough for someone to donate X amound of money, 
>> then even if I fail to produce anything of value in June the donor 
>> still got something of value for their donation. Of course I plan on 
>> continuing to develop and hopefully getting better at it as I learn, 
>> but the point is instead of trying to garner a buzz around potential 
>> development (and most Kickstarter projects fail, so its risky), I 
>> instead garner a buzz around actual development for which potential 
>> donors can reward me, use as a gauge for what my future development 
>> will be, or both.
>> Here's what I'm currently working on:
>> * [canvasinfo], [pdinfo], and [classinfo] objects to streamline 
>> getting information about parts of Pd that do not have xlets for 
>> messages: implemented, but does not include all pd attributes yet 
>> (like audio/midi devices)
>> * jump-on-click and bar graph style options for "Put" menu arrays: 
>> implemented, but I need to do more testing and make it possible to 
>> change the baseline for data structure arrays based on quanta values
>> * centralized "Preferences" dialog with tabs for General, Audio, 
>> Midi, GUI, and possibly some others: just started implementing it, 
>> will work on it for the next few days
>> * improve tooltips: show tip next to mouse location, and have 
>> separate canvas tip for stuff like pddplink to show firefox-style 
>> link address. add xlet descriptions, so you can get one or two word 
>> description of what the xlet does in addition to its method (handy 
>> for objects like [vcf~], [tabread], etc.)
>> * use libname-meta.pd file to find aliases for objects with a creator 
>> name that cannot be a c function name (like ">~")
>> And some future stuff:
>> * use Xapian for better search-plugin speed and functionality
>> * [drawimage] for data structures
>> * building Pd using MinGW from GNU/Linux: unless someone already has 
>> this working...
>> * gui-plugin to export pd patch to svg
>> * way to embed pd source in svg, or use <g> to group things per object
>> * adding a function to make it easy to parse comma-separated A_GIMME 
>> args to an object as named args.  Thus for [someobject foo 1 2 3, bar 
>> 1 2 3 4, blah bee], there should be a  function that can be used 
>> inside of someobject_new for which the author can ask for the "foo" 
>> args and retrieve "1 2 3" (maybe by returning the indices to the 
>> first and last arg of "foo").  That will match the syntax of message 
>> boxes and give external developers an easy and consistent way to do 
>> named args.
>> All of my work will hopefully follow these guidelines:
>> * does not break patches.  Question: while all changes I'm making 
>> will let old Pd files run on revised Pd, do the files written by 
>> revised Pd have to run on old Pd?
>> * preference given to generally useful development.  (maybe 
>> [drawimage] is an exception since few people use data structures, so 
>> I'll put that one last.)
>> * preference given to development that makes Pd more accessible to 
>> new users.
>> I'll look at the easiest ways to get the process rolling.  I really 
>> like Paul Davis' donation "progress bar" on the Ardour website, so I 
>> might try getting something like that on my website.
>> Furthermore, if anyone has some general features they think are 
>> missing from Pd and want to donate specifically for them, I'd be 
>> happy to look at those too.  But for May at least I'd like to try to 
>> focus on what I'm currently working on.
>> I still need to figure out a good target to start out with and the 
>> easiest payment system to use.  So suggestions are certainly welcome 
>> about that or anything else. :)
>> -Jonathan

More information about the Pd-list mailing list