[PD] Fwd: dynamic input at mtx_tab?
IOhannes m zmoelnig
zmoelnig at iem.at
Mon Jan 21 09:11:50 CET 2008
Anton Schlesiner wrote:
> Dear all,
> I try to save matrixes with mtx_tab, dynamically.
> [no. of col] [dyn. changing array of floats]
> | |
> | [l2s]
> [f $1] [symbol $2]
> [pack f s]
> [row $1 $2]
> [mtx_tab "filename"]
i had a bit of a problem reading your patch.
hint: message-boxes are usually written as [bla( to distinguish them
from object-boxes which are written as [bla].
> This is my approach, the message-box row dumps in this way a symbol
> that causes a sparse matrix error. I am searching for a solution to
> get the symbol back to a list inside the row-box.
so what you are really trying to do, is to create a message
[row <index> <val1> <val2> .... <valN>(
going the list2symbol route has 2 problems:
- conceptually you are trying to construct a _visible_ message with a
small number of atoms _that looks the same_ as as a message with a a
larger number of atoms; this does not work, as the "identitiy" is only
on a surface level (as you have already discovered)
- you are using a string-like type as an intermediate storage for a
number. computers (and esp. within the context of Pd) are good in
working with numbers and not so good when working with strings.
therefore you should keep working with numbers. the conversion between
strings and numbers and vice versa is costy (in terms of CPU), due to
the nature of symbols (the most string-like native data-type in Pd), it
is also costy in terms of memory (and another CPU).
so what is the solution to your problem?
well, simply concatenate two lists together:
[row $1( [<list of floats>(
you will need the [list trim], because the [list append] will prepend
the special selector "list" to your message, and you really want the
if you are working with an older version of Pd that does not have the
[list] objects, consider updating; if this is not an option, there are a
number of externals that also provide the functionality of [list
append], some of these are: zexy's [glue], iemlib's [iem_append],
you can also construct messages the other way round (seems to be more
popular) with [list prepend], resp. iemlib's [iem_prepend] (aka [pp] or
[prepend]), cyclone's [prepend], cxc's [prepend] and thomas grill's
most likely i have forgotten 3 or 4 other prepends....
More information about the Pd-list