Hello,
I'm programming a gui for [mtx_mul~], and it's almost finished. One thing
is missing, and I wanted to know if someone already has a solution for it,
before I break my head trying to find one.
I need to find a way to "rotate" matrixes, in order to coordenate the
controler display, and matrix's format. Following the logic of max's
matrixctrl object, and an usual DAW's display of audio matrixes, the lines
are the inputs, and the columns are the outputs. But, Pd's [matrix]
practise is the opposite.
So I'm trying to implement the "standard industry" display, and output
Pd's [matrix] format.
For example, a 4x2 matrix to control [mtx_mul~] has 8 fields, and will be
like
1 2 3 4 5 6 7 8
or
[matrix 4 2 1 2 3 4 5 6 7 8(
that is, columns are inputs, lines are outputs.
But, the current GUI would have the matrix "rotated", in the order
1 2 3 4 5 6 7 8
[matrix 4 2 1 5 2 6 3 7 4 8(
where columns are outputs, and lines are inputs.
So repeating to try to make it clear: the gui sends the data in the lower
format, and it has to be "rotated" to match the format above. Is there an
object or technique that does this?
Thanks again,
João
Hi!
On 7/9/13 4:14 AM, João Pais wrote:
Hello,
I'm programming a gui for [mtx_mul~], and it's almost finished. One thing is missing, and I wanted to know if someone already has a solution for it, before I break my head trying to find one.
I need to find a way to "rotate" matrixes, in order to coordenate the controler display, and matrix's format. Following the logic of max's matrixctrl object, and an usual DAW's display of audio matrixes, the lines are the inputs, and the columns are the outputs. But, Pd's [matrix] practise is the opposite. So I'm trying to implement the "standard industry" display, and output Pd's [matrix] format.
For example, a 4x2 matrix to control [mtx_mul~] has 8 fields, and will be like
1 2 3 4 5 6 7 8
or
[matrix 4 2 1 2 3 4 5 6 7 8(
that is, columns are inputs, lines are outputs.
But, the current GUI would have the matrix "rotated", in the order
1 2 3 4 5 6 7 8
[matrix 4 2 1 5 2 6 3 7 4 8(
shouldn't this be:
1 3 5 7 2 4 6 8
? you do that with mtx_transpose.
best, matthias
where columns are outputs, and lines are inputs.
So repeating to try to make it clear: the gui sends the data in the lower format, and it has to be "rotated" to match the format above. Is there an object or technique that does this?
Thanks again,
João
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 2013-07-09 03:14, João Pais wrote:
Hello,
I'm programming a gui for [mtx_mul~], and it's almost finished. One
the one and only proper way to do signal matrix multiplication with "iemmatrix" is to use [mtx_*~] (rather than [mtx_mul~], [mtx_mul_line~] or [matrix~]).
thing is missing, and I wanted to know if someone already has a solution for it, before I break my head trying to find one.
I need to find a way to "rotate" matrixes, in order to coordenate the controler display, and matrix's format. Following the logic of max's matrixctrl object, and an usual DAW's display of audio matrixes, the lines are the inputs, and the columns are the outputs. But, Pd's [matrix] practise is the opposite.
the original matrix-multiplication object had this notation, but it was deprecated because you will find virtually no literature that does it like this.
[mtx_*~] follows the notation you will find in pretty much any scientific publication, that deals with matrix multiplication of signals: y = A * x with x = input signals, A = matrix, y = output signals.
if you want to matrix 4 inputs into 2 outputs, your matrix must look like: [2,N] = [2,4] * [4,N] out = A * in see http://en.wikipedia.org/wiki/Matrix_multiplication (for the sake of simplicity N would be one, though in practice it's the blocksize=64; anyhow, we can pretty much ignore it).
as you can see, this is a matrix with 2 lines and 4 columns.
(the original matrix multiplication object had reversed the multiplication (y = x * A) which nicely gave you A=[4,2], but was so uncommon a notation, that i found all of my collegues constantly looking up the help-patches when their code would not work - esp. when using square matrices)
whether this matches the DAW experience or not, is something else. in order to transform an [m,n] matrix into an [n,m] matrix, you can simply apply a "transpose" operation. see http://en.wikipedia.org/wiki/Transpose
be careful with your wording in matrix world: pretty much everything is standardized and traditional (like the "proper" way to multiply a bunch of signals by a matrix - the reason why [mtx_*~] behaves as it does). "matrix rotation" usually means something along the lines of mulitplying a coordinate set with a special matrix in order to achieve a spatial rotation of the coordinates: http://en.wikipedia.org/wiki/Matrix_rotation
fgamsdr IOhannes
the one and only proper way to do signal matrix multiplication with "iemmatrix" is to use [mtx_*~] (rather than [mtx_mul~], [mtx_mul_line~] or [matrix~]).
mtx_mul~ and mtx_*~ are equivalent, aren't they?
I thought they were. In Pc there is no [mtx_*~] file, so I use [mtx_mul~],
because it gets initialized with no problems.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 2013-07-09 11:42, João Pais wrote:
I thought they were. In Pc there is no [mtx_*~] file, so I use
what is Pc?
whatever it is, if it has something labeled "iemmatrix" and lacks [mtx_*~], you might want to throw it away.
fgamnsdr IOhannes
On 7/9/13 1:07 PM, IOhannes m zmoelnig wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 2013-07-09 11:42, João Pais wrote:
I thought they were. In Pc there is no [mtx_*~] file, so I use
the good old problem with objects containing *,+,... in their name.. i know this one has been posted several times, but once more:
do the following if you want to use iemmatrix in pd-extended:
create the object [hexloader] and [import iemmatrix]
afterwards [mtx_*] [mtx_*~] .... should work. -> see attachment
matthias