On 02/08/2014 01:40 PM, Martin Peach wrote:
A few years ago I implemented a patch for strings in Pd that adds a string or blob type that allows (I think) for what you are describing. I believe it's still part of Pd extended, but Miller didn't like it for some reason.
It looks more like a prototype for a string implementation. I'm not even able to do this:
[bng] | [str hello_world] | [print]
Additionally, moving the cord-inspector over the wire connecting displays nothing. Those are just the first two things I tried to do as a user, to view a core atom type which most of the time will be holding readable text.
It may seem trivial to get those two things to work, but the point is that someone has to do it, for every single internal and external class which already understands and can manipulate the one string atom but doesn't understand the better string atom.
[str hello 32 world] isn't much fun, either. But it's hard to improve that without the ability for the object box to leave the user input unparsed.
I prefer to manipulate strings in a another language as it just seems like a lot of work to make it happen with boxes and wires when you can just call string functions in a high level language.
I don't understand this. If you take nearly every string manipulation I did in tcl for the search-plugin and put it in Pd, you are either a) unrolling several commands in nested square brackets and laying them out vertically (or inside an abstraction) or b) putting a tcl line of code in a box and connecting its output to the next line of tcl code in a box with a wire. If "a" is troublesome to patch and read in Pd then it was hard to write and read in tcl.
There are of course way more complex examples of string manipulation, but Pd's tools don't have to be perfect to be useful.
Kind of like building a Turing machine holes-in-paper-tape version of a program, it can be an interesting exercise but practically it's useless.
Read in transcript of congressional testimony on NSA surveillance. Split into one string for each line. Read one line every second. If a line contains the word "terrorism" make a sound. User takes a drink.
Totally useful. :)
What is it about boxes connected with lines that you think makes this difficult?
-Jonathan
Martin
On 2014-02-08 03:14, Jonathan Wilkes wrote:
On 02/08/2014 01:26 AM, Martin Peach wrote:
You can manipulate strings in pdlua and only export the symbols you want; yes you need to learn lua but it's not very hard.
That's good practical advice for getting work done with strings atm. But it's irrelevant to getting decent string manipulation within Pd, meaning using boxes connected with wires.
The reason for wanting to do string manipulation within Pd is just as obvious as the question that I didn't have to ask and which you addressed after your semicolon.
-Jonathan
Martin
On 2014-02-08 01:10, Jonathan Wilkes wrote:
On 02/06/2014 01:53 AM, Chris McCormick wrote:
On 06/02/14 06:29, puredata@11h11.com wrote:
but pd is not really good with strings afaik
Maybe soon:
https://sourceforge.net/p/pure-data/pure-data/ci/8a02332a5fb68edc2899e2f1351...
https://sourceforge.net/p/pure-data/pure-data/ci/49ffcf8ba5cdde7660e82f1e190...
:)
One of the reasons (I think) the string manipulation libs in Pd extended haven't caught on is because they seem to force users to care directly about character codes. If I want to pass the string "hello{world}" around in Pd, I should not have to know the codes for curly braces just to create that string in an object box.
To work, this will require a new set of GUI classes that allow the user to type strings that get saved underneath as character codes, as well as display lists of character codes as a string in the patch. I don't know any externals that do this, but it shouldn't be hard if you're sending the text to the GUI as floats. Also, you need i/o classes to read from and write to files without having to pass through lists of symbols and floats as intermediaries. Otherwise, you will lose data on the read. Finally, you can't leverage any of the extant symbol manipulation tools, because then you run into symbol-table growth, dollsym substitutions/escapes, and all the other problems that I assume are the reason for introducing lists of character codes. Otherwise you're just pushing the current problems users have with symbols to the edges of the new string library.
I understand the desire for this approach, and it's probably less work than making symbols deallocatable. But if the user has to stare at character codes just to get around the limitations of symbol atoms, they'll probably just use symbol atoms and work within Pd's current limitations for string processing.
-Jonathan
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list