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