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?
[readanysf~]?
- 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:
cyclone/abs~ markex/abs~ creb/abs~ zexy/abs~
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.
-Jonathan
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