[PD] "popping" from - and prepending to - a generic message
hans at eds.org
Thu Feb 8 06:12:59 CET 2007
Check out the [list] object, it'll do what you want.
On Feb 7, 2007, at 8:25 PM, Matteo Sisti Sette wrote:
> Hi all,
> Is there a reasonably stright-forward way in pd-proper (I mean,
> externals) to do either of the following two things?
> 1) Removing the first element of a message (NOT necessarily a list)
> returning the rest of the message
> 2) Prepending a symbol or number to a message
> But I mean: this must work with ANY message, without knowing its
> "composition" (whether it starts with a number or symbol, how many
> "elements" and of what type it has, etc.)
> For example, let's say I get a message which is [foo 1 2 3(
> Removing the first element should give me [1 2 3(
> But if the message is [1 foo 3 4 5 bar( it must give me [foo 3 4 5
> and so on.
> I will omit examples for the "prepend" thing :p
> Solving problem 1 would indeed allow solving problem 2 (not so
> forward" though:)
> Not viceversa, as far as I can see.
> I came up with a rather tricky solution for (1) but it involves
> (dynamically adding and connecting objects in a canvas by sending it
> messages) and I'm finding out that PD is quite buggy when you start
> that sort of things. When trying to use it to solve problem 2, I
> ended up
> with a patch that makes pd crash (but it shouldn't). However, I'm
> trying to isolate the bug before I submit it to the bug tracker.
> Furthermore, the solution to (1) alone works fine but generates
> some errors
> in the pd output (because I intentionally use "unpack s" and
> "unpack f" at
> the same time so that only one of them matches and produces output).
> Which by the way raises a secondary question: is there a way to
> turn off/on
> error reporting?
> Also I found an almost as tricky (and not elegant) solution to
> problem 2
> alone, without "scripting" but which requieres the message not to
> exceed a
> fixed maximum length (number of "elements"). And it generates "unpack
> mismatch" error messages too.
> If anyone is interested I can share the mentioned patches, but
> first I was
> wondering if I am missing a much simpler solution.
> I know there are externals that do this sort of things, but I like
> things natively in pd whenever I can, and this is also a speculative
> PD-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/
"[W]e have invented the technology to eliminate scarcity, but we are
deliberately throwing it away to benefit those who profit from
scarcity." -John Gilmore
More information about the Pd-list