Welcome to %s forums

BrainModular Users Forum

Login Register

Matrix Pack official thread

Let's talk about free additional packs
Post Reply
martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Post by martignasse » 06 Mar 2010, 12:09

Welcome in the matrix :D

The purpose of this thread it to centralize feedbacks, ideas, support and questions about the Matrix Pack.

Have fun :)

I'll keep this first post updated with latest news about the Matrix Pack.
_______________________________
Latest version : Matrix Pack v1.01 (fixed bugs in examples patches)

Great user contributed add-ons :
- Matrix Keyboard by 23fx23.
Martin FLEURENT - Usine Developer - SDK maintainer

23fx23
Member
Posts: 2533

Post by 23fx23 » 06 Mar 2010, 22:56

here we o yeah...
new addon: matri keyboard;)

gurulogic
Member
Posts: 1016

Post by gurulogic » 07 Mar 2010, 11:39

So much to wrap my head around. I've just finally figured out arrays and now this! I think this is going to change my world, I just haven't quite figured out how yet...?
Just one quick question for now, what is the best approach to giving each cell a unique integer output value? I messed around with the Set Array Value module, but this approach seems tedious.

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Post by martignasse » 07 Mar 2010, 12:21

So much to wrap my head around. I've just finally figured out arrays and now this! I think this is going to change my world, I just haven't quite figured out how yet...?
Hehe, i'm agree that it's the beginning of a new world. I just tried to make it the simplest for a first shot.
Lots of things will 'evolve/be added' in the future, based on feedbacks and use.

In fact, it's just a specialized array, who store cells value (actually a float) row after row, it's very similar to a bitmap buffer.
Just one quick question for now, what is the best approach to giving each cell a unique integer output value? I messed around with the Set Array Value module, but this approach seems tedious.
What do you mean by giving each cell a unique integer output value ? what do you want to achieve ?

You can use an 'Display Array' module, with an array size of cols*rows.
But the best way for now is by script, as you can loop through columns and rows.

For now, the cells color are hard coded to map a 0->1 range on the value (from the ON/OFF params of the 'edit layout'), but nothing prevent you to store any float value in it, you'll just have strange color.
Martin FLEURENT - Usine Developer - SDK maintainer

ethnix73
Member
Posts: 604
Location: France, Caen

Post by ethnix73 » 07 Mar 2010, 14:32

yes, it's really the beginning of a new world!!!

I was looking for a way to change the synchro of your matrix fall seq example...Was about to ask, and find a way. Just the time to understand a littlle more your patch. Thanks for this so great addon!
Seb.Dub

joffo78
Member
Posts: 1012

Post by joffo78 » 09 Mar 2010, 11:58

Hello
This pack seems to be very usefull for me because i'm trying to make an aks synth emulation !
so something desapointed me.
why didn't you make a true matrix with routing between input and output.
If i understand how does it work inlet are only to trig each row.
what i'd like is put for example an oscillator (thank to nay seven pack) on one inlet and filter or envelops to outlet
so i've just to on one row to make the connection.
instead of that i have to make each connection between each modules with one "freeze event flow" which the on/off button pluged
in the outlet of the matrix.
It's very fastidious.
do you know any solution ?
Regards
JF
PS sorry for my english.

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Post by martignasse » 09 Mar 2010, 14:04

Hi joffo78,
This pack seems to be very usefull for me because i'm trying to make an aks synth emulation !
so something desapointed me.
why didn't you make a true matrix with routing between input and output.
From what i understand, you want to use the matrix to make this part :
Image
The concept seems very similar to the mixer example patch, have you studied how it work ?

Can you be more precise about the 'true matrix routing'? what is the difference with the mixer example patch, for example.
If i understand how does it work inlet are only to trig each row.
The basic way to populate the matrix is with the mouse to trig or adjust the switch/fader value. The matrix is is literally an array of switch or fader, nothing else.
The 'cells in' inlet is here to populate the matrix (automation, reload of preset...).
There is also optional individual cells inlet (up to 128) but you'll loose a part of the modularity provided by array.
what i'd like is put for example an oscillator (thank to nay seven pack) on one inlet and filter or envelops to outlet
so i've just to on one row to make the connection.
instead of that i have to make each connection between each modules with one "freeze event flow" which the on/off button pluged
in the outlet of the matrix.
The thing to understand is, to be as generic as possible, the matrix isn't made to deal directly with the signal (oscillator, audio...) but just act as a command layer. The matrix module is just a way to display an array of switch/fader and know nothing about the use of them. It's up to you to decide what each cells value mean in your context.

You'll surely have to add some patch or script to specialize his behavior.
It's very fastidious.
do you know any solution ?
Well, in your case, you have to deal with a 16*16 matrix, so an array of 256 switch, it's not a trivial task.

I don't have some magic solution, sorry.
But if you start from the mixer example patch and adapt it to suit your needs, we'll surely found some way to make the patching easier/less tedious


Sorry, if i can't help you much for now, but i need more precise infos.
Martin FLEURENT - Usine Developer - SDK maintainer

23fx23
Member
Posts: 2533

Post by 23fx23 » 09 Mar 2010, 14:36

for sure it seems not trivial for a 16x16, but a 4x4 or 8x8 seems more decent?
in this 16x16case wouldn't it be possible to use dynamic wiring using IML? if a cell matrix is swiched on it creates alink between source and destination, if swiched off delete the link? Im note sure however how to interact with text in iml, but should be doable no?might be a bit long to setup once, but once we got a template that works...mmm a script that prepares iml msg to send relating to some captions/int var input?
just a thought.

edit: even without script, it seems doable to populate a list box for all create wire message (by adding a comma on a list box item to create lines of the message),the ouput text is considered as comma text, and can feed the lines input of iml., and another for all delete message.
lot of text to input once, but once it's done..

joffo78
Member
Posts: 1012

Post by joffo78 » 09 Mar 2010, 21:36

Thank you a lot for your answers.
I'm afraid to but to much beginner to start this project.
I saw the mixer example and it seems to be the way that i must follow.
But i'm not be able to undersand how does it work. It's too hard for me.
there are too much sub patch and i'm loosing !
Could you help me to understand how does it work ?

joffo78
Member
Posts: 1012

Post by joffo78 » 09 Mar 2010, 21:55

after looking the mixer matrix i'm beginning to understand.
One thing stay difficult is the sub patch named MX get col

23fx23
Member
Posts: 2533

Post by 23fx23 » 09 Mar 2010, 23:09

Mx get col is used to extract a column in the matrix. in fact matrix is an array(group) of values, where cells are indexed from top left to bottom right. ie for a 4x4 matrix:
00-01-02-03
04-05-06-07
08-09-10-11
12-13-14-15

as we want to extract first column, we need to get the values 00-04-08-12
the expand/compress array is used here in compress mode, if the array is 16 lengh, compressing by 4(nb of col) (mean expanding of 1/4=0.25) will make a output array of lengh 4, only each value on 4 of the master 16 staying on output, so we will get those 00-04-08-12.
by using the shift before expanding, ie shift -1, we will get 01-05-09-13 (2nd column), ect...
hope it helps.

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Post by martignasse » 09 Mar 2010, 23:51

As you see joffo78, what you try to achieve is not a trivial task, but it's totally doable, just have to go step by step ;)

At first, try to cut the whole thing in some smaller and simpler task.
For now, you don't have to understand what is happening inside all these utilities patch (MX_xxx), just concentrate yourself on what services they provide and how you can use them.

Like 23fx23 said, the MX_get_col patch deliver you an array with all the values of a column. From that, each array values corresponds to the value of the respective row for this column, mean each cell value of the column.

So the values of the matrix are extracted in two steps :
-firstly, we separate each column, it's the job of the MX_get_col patch
-secondly, for each column we use the value representing each row in this column to modulate two signals (one oscillator and on filter, for example).

Try to recreate a simple 2*2 routing/mixer matrix, with 2 oscillators (rows) and two filters (cols) it's enough to understand the principle.
When you'll have finish this simple prototype, you'll just have to extend the same routing to a bigger matrix.

Go, go, go....you'll success, we'll help you the best we can :)
Martin FLEURENT - Usine Developer - SDK maintainer

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Post by martignasse » 18 Mar 2010, 17:23

Hello,

Just to let you know, i splitted the 'Evolution and future releases' section off the wiki page -> link

-What to expect in the next release :
What is planned and what i'm working on.

-More general TODO list :
Wanted evolutions but not yet started or planned.
This one just wait for you to grow ;)
Martin FLEURENT - Usine Developer - SDK maintainer

23fx23
Member
Posts: 2533

Post by 23fx23 » 18 Mar 2010, 19:45

martignasse wrote:individual Cells colors/captions ,in fact, it’s already implemented
what really??omg 8)

it's true there are so many possibilities, worth checking what could be a good simple/modular ratio.
ideally on matrix i would love to have two modes, one where you use it with build in , one where it would be like it was just agrid of "panels" with colors and captions in, in fact the "lock" mode, but that would still output infos, to 'make the patch outside".

my suggz/thought about colors:

1)color array in , in "absolute"would be most simple/modular, to allow dealing with ie some osc received colors or ext data.
2) array in could display the off's of 'color in' darker, and on lighter. seems easy to use.(maybe then a contrast fader? so that if set on 0, matrix dont' affect colors when changing on/off so we can deal with 'outside' color, if 0.5, off are displaying various dark colors we feeded in, on are lighter.
3)in buid in mode: HSLset color with Y, to set a cell color we press "set color", then the cell and while we move Y we can quick set it's hue,
either same for S, L, or maybe S and L could stay "global" for all cells to make it simpler, just need to set different colors generally.

otherwise on my square i founded feed 3 HSL arrays is very modular and most usefull, as you can control all hue, lum and sat quickly.
can make a sequencer and change all hue, make a lighted bar pass easy, or set individual, choose that if a swhich goes of it's grey or colored, ect..
but it seems a complex add, to matrix, but that would be my graal module;)
maybe just color in and im gonna try to script those HSL arrays, still a build in would be very handy;);),
in any case im so excited that matrix will be able to deal with color and captions, so awaiting!!!

captions suggs:
1) absolute comma in?
2) n inputs (chosen to be drived to col or row) of comma in.
3) build in: press edit text' clic a cell, type text, leave edit text, caption memorized. easy!

ethnix73
Member
Posts: 604
Location: France, Caen

Post by ethnix73 » 19 Mar 2010, 17:34

Concerning caption, they could be exposed as in button, switch modules. I had just this thought after looking as the mondocombo addon (http://www.sensomusic.com/forums/viewtopic.php?id=2041). It could be done with the matrix module, and would be light on CPU...Just a little comment.
Seb.Dub

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Post by martignasse » 19 Mar 2010, 21:16

thanks for feedback and ideas, guys :)

@23fx23 :
wow, i'll have to re read many time to understand all the direction you develop...but it's very precious feedback and practical infos.
what really??omg 8)
When i say 'already implemented', it's just that each cells have already a structure to store two color infos, at code level.
Actually, one color is hard coded for cell border and the other is populated by mapping respective cell values to a gradient from OFF color to ON color.
What is missing is a dynamic access to individual cells parameters like BackColor, CaptionColor, FontColor, Caption.

about the two mode idea :
ideally on matrix i would love to have two modes, one where you use it with build in , one where it would be like it was just agrid of "panels" with colors and captions in, in fact the "lock" mode, but that would still output infos, to 'make the patch outside".
what do you mean by 'build in' ?
the lock mode just cut the mouse interaction, but not data's update and cells value manipulation through the 'cell in' array
1)color array in , in "absolute"would be most simple/modular, to allow dealing with ie some osc received colors or ext data.
yes, i think it's the preferred approach, in fact it should be the same for other attributes we want to have access to.
1 array for colors
1 array for captions
....
but ouch, it's rapidly a big huge mess of datas :o we have to found a very clever solution :rolleyes:
2) array in could display the off's of 'color in' darker, and on lighter. seems easy to use.(maybe then a contrast fader? so that if set on 0, matrix dont' affect colors when changing on/off so we can deal with 'outside' color, if 0.5, off are displaying various dark colors we feeded in, on are lighter.
The fact is : cells act has 'switch' (mode toggle/draw) or 'fader' (mode fade) and we need to define color behavior for these two states.
It's a rule in Usine that the 0->1 gap mean OFF/ON, but for fader, limits should be adaptable...
And don't forget we can inject a matrix bitmap as background of another matrix....the upcoming 'cells transparent if OFF' do a good job to mix two matrix content.

bref, a complex problem
3)in buid in mode: HSLset color with Y, to set a cell color we press "set color", then the cell and while we move Y we can quick set it's hue,
either same for S, L, or maybe S and L could stay "global" for all cells to make it simpler, just need to set different colors generally.
ok, i understand a little your 'build in' mode concept, a way to 'manually' setup cells default attributes, that is ? and 'edit mode' and a 'run mode' like in 'vintage' hardware ?
I'm not a fan of this approach, but i understand the ease of use it provide ;)
the risk of separated mode is to end up with a super cool feature in edit mode we absolutely want in run mode...
but the idea to use the matrix interface itself to setup default params is interesting :)
otherwise on my square i founded feed 3 HSL arrays is very modular and most usefull, as you can control all hue, lum and sat quickly.
can make a sequencer and change all hue, make a lighted bar pass easy, or set individual, choose that if a swhich goes of it's grey or colored, ect..
but it seems a complex add, to matrix, but that would be my graal module;)
maybe just color in and im gonna try to script those HSL arrays, still a build in would be very handy;)wink,
in any case im so excited that matrix will be able to deal with color and captions, so awaiting!!!
So, when we'll have color modules arrays friendly, you'll can reproduce this behavior with just a 'color in' array !
something like this
Image
so, color array seems the way to go
captions suggs:
1) absolute comma in?
2) n inputs (chosen to be drived to col or row) of comma in.
3) build in: press edit text' clic a cell, type text, leave edit text, caption memorized. easy!
1) yep, a cell caption input, but remember we also have the cell value who can be displayed too...not so simple
2)seems impracticable...
3)easy for the user....not for the coder:lol: super luxe feature, but hard to implement.

@ethnix73:
Concerning caption, they could be exposed as in button, switch modules. I had just this thought after looking as the mondocombo addon (http://www.sensomusic.com/forums/viewtopic.php?id=2041). It could be done with the matrix module, and would be light on CPU...Just a little comment.
yep, that's exactly the idea :)


We begin to have solution for each params type, but we have to found the good list of exposed params.
Imagine, if we expose the round size attribute, could make some good fx :lol:

to resume :
-cells val -> the actual cells in array input, to store an custom value.
-cells col on -> array input, to choose the ON color for each cells.
-cells col off -> array input, to choose the OFF color for each cells.
-cells cap -> comma list input, to choose the caption to each cells, if empty for a cell, no caption displayed

-still miss the infos to map ON/OFF colors to the value, i wanted to add an OFF value and ON value like in the new switch, but if for each cells, it's to heavy and maybe not necessary...
-plus, i wanted to introduce the concept of selected col and row, with direct access to the content ( two array out), what do you think ?

...toooo looooong post....;)
Martin FLEURENT - Usine Developer - SDK maintainer

23fx23
Member
Posts: 2533

Post by 23fx23 » 20 Mar 2010, 01:27

Hey martignasse!
yup sorry, i also thought what i was trying to translate was unreadable...

by buid in i meant the matrix have an action on value/color, ie in fader mode "internally",stand-alone, vs "outside" is if we set in example some values in an array, ie using a fader, mouse module ect, and feed values back in matrix.
it at start appears to me that the "lock" mode was cool for that, matrix, not interfering on colors(input values). but as we coudn't get cliqued index infos, i couldn't set my external arrays values relating to cliqued cells. I so tried, don't really beiliving on it to set the matrix in "toggle" mode, but then matrix acts on values, as espected wich interfers with "outside" data, not wanted in that case
....
but the cool unspected thing is that seems to work ok on "fader" mode!!! even if i go up with mouse, i can patch differently and input a reversed value, matrix display "outside" input value, over "internal, build in", and they don't seem to fight together in crasy loops...
great....(don't bother too much to understand that so complex thing im trying to explain, i got my
it just work ok, forget what i said ;)

woa yes the HSL picture is just exactly what i dream about, (yesseems i may get it!!!!!!? :rolleyes:
with this for sure any kind of setup can be done in a fast, easy and modular way, no need to complexify the matrix.
it's a perfect combo with matrix, not to say ultimate for me( I just patched 64x cells independant, to 64xH,S,L, then re 64xRVB arrays and re64xrvb, so about 1024 wires, and cpu is ok but a bit high, with matrix this could be done with two modules, two wire: matrix and a HSL array in!!!!)
with this imo a simple color in on matrix would do all jobs, ie we fill an array with some red hue value, going to HSL H in.
we pick the values array out of matrix, we drive it to L , we ve just redone the "fade mode".
but then we can easy make what we want: instead of lum, decide the fade mode interracts on sat, or on hue.
ultra modular, low number of wires, just one absolute array in.
anyway pesonnally i would be ultra happy, with what you present:
_array in cells values
_comma in for caption
_array in cells color on, color off : (but as said above, just one array in should be enough in most case no?, we can then deal outside unlimited nb of cases with color modules, imo simpler to setup one array than two, but i can imagine you need two for internall stuff.
its just that one should result half Cpu, as exemple i imagine I will make some "tracks"(column), with some clips "in", cells on.
then if ie we want to highlight a selected track, we will need then to make the extra lum operations on both arrays, this could results in 2x more cpu and could apply for many operations. don't know if this would not match your programming setup,

edit: forget that again:P, just thought even with 2 array in, we can feed the same to both, giving the result im after, so no worries,
one or two is anyway great... but might simplify you the task, who knows, maybe in fact 2 would be more modular, maybe just higher cpu (cause we have to think dealing with big arrays can quickly get high in cpu.....

, also that transparent/bitmap in option is reaaly exiting, and might do many possibilities.
colors and caption on matrix will make it really, really, really a huge module i will use a lot :),
it will also just decrease my patching time about 2000 percent. even if all is array, i don't like singles anymore ;)

relating button value feature,we could deal the on off values outside with a get/set array so personally i wouldn't bother on that.

for me we could stay "relatively simple", be a control unit, complex modular things can then be done "outside" the matrix to refeedback it. that's the general modular power of usine.
but build in selected row/col for sure is a cool idea, as it's probably an often/usefull do task.
in itself the fact you could provide colors and caption is just awesome for me, i didn't wanted to request captions cause felt it was impossible as C,'not really usine module", im just so well surprised, this module will be just insanely powerfull...

edit: sorry far tooo long post too, but matrix is sooo exciting , it's a really great job you did/sure you'll do on that one martin, tons of thanks.;)
(to be honest i had let it a bit left for now cause needed some colors and caption on a 64liveosc setup , but a huge new era seems to come, wait to rebuild it matrix powered.. (what? change size of the grid, yeaah easy ;) )
cheers mate!

edit : just a though, it could be nice to somehow have a control over indexes, on my square i wanted sometimes to have a "track" setup, or sometimes lines, this came far more handy to control colors, higlight a track, or a scenes. we can do this with offsted geter/seters, but seems a cpu conduming solution, hard to
achieve with big arrays.
i don't think it need to be buid in in matrix, cause i can imagine it can be complex, and should more be dealed outside.. how we could convert inputs easealy? in my case i just rewired, but on big matrix this could become a nightmare... any ideas?
00-04-08-12 to 01-02-03-04
01-05-09-13 05-06-07-08
02-06-10-14 09-10-11-12
03-07-11-15 13-14-15-16
mmm well i feel this can be my first script look up, wonder if would be lower cpu than rewire, anyway would be more modular with col/row inputs..

ps: new add on, matrix XYZ setup;)

23fx23
Member
Posts: 2533

Post by 23fx23 » 21 Mar 2010, 20:08

hey martin, once more a little "futur request" hehe, i was impressed by the way lemur can "scale" their matrix , ie changing cells height, who knows....

http://www.jazzmutant.com/mu.php

now i stop asking and let you work hehe..

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Post by martignasse » 21 Mar 2010, 20:44

I think it will do the trick...;)
Martin FLEURENT - Usine Developer - SDK maintainer

23fx23
Member
Posts: 2533

Post by 23fx23 » 21 Mar 2010, 21:13

wow ...ifeel like a little child waiting for christmas :) can't wait next matrix release!!

User avatar
nay-seven
Site Admin
Posts: 5684
Location: rennes France
Contact:

Post by nay-seven » 21 Mar 2010, 23:00

was experimenting and trying to make an horizontal seq ( need your lessons martin..;) )
and I've made this little hack on the fall seq example
the 5 first presets...
http://www.sensomusic.com/forums/upload ... _nay_2.pat

you just need to ad a VSTI who accept correctly the velocity

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Post by martignasse » 22 Mar 2010, 20:05

wow nay :cool:

totally fractal :P

with preset 1 and Mr Tramp2 : ear
what a cool little bird in the spring !

edit : and some beautiful color ;)
Martin FLEURENT - Usine Developer - SDK maintainer

User avatar
nay-seven
Site Admin
Posts: 5684
Location: rennes France
Contact:

Post by nay-seven » 22 Mar 2010, 22:05

glad you like it ;)
but what about horizontal way..?

martignasse
Site Admin
Posts: 611
Location: Lyon, FRANCE
Contact:

Post by martignasse » 22 Mar 2010, 22:48

something like this ?

matrix_scroll_horiz_example.pat

very basic but you got the idea :)

if you make a more elaborated but simple example, i'll include it in the next pack iteration with pleasure ;)
Martin FLEURENT - Usine Developer - SDK maintainer

User avatar
nay-seven
Site Admin
Posts: 5684
Location: rennes France
Contact:

Post by nay-seven » 22 Mar 2010, 23:17

great !
thanks a lot mister Neo !!
have to study that closely !

VjRobotX
Member
Posts: 18

Post by VjRobotX » 26 Mar 2010, 15:32

Well I finally Matrix in full force and I understand a bit about how his works, but my problem is
how and where they deposited the sounds
事在人为 shì zài rén wéi, La réussite dépend des efforts de l'homme

User avatar
nay-seven
Site Admin
Posts: 5684
Location: rennes France
Contact:

Post by nay-seven » 26 Mar 2010, 16:00

in the example named matrix_fall_seq_example , you can find a midi out module in the patch
suppress it and just link in place a vsti , or a sampler ( in midi in only mode )

Clearscreen
Member
Posts: 482
Location: Australia
Contact:

Post by Clearscreen » 29 Mar 2010, 03:33

So much to learn about this module! I've hacked together a solution using patching to make the matrix 'mono' (ie only having a single cell lit at a time - if i press a new cell it turns all other offs) but I thought this would be better done in the module (or possibly in a script with a feedback loop to the array input?). Any thoughts on this guys?

23fx23
Member
Posts: 2533

Post by 23fx23 » 29 Mar 2010, 05:27

how do you do bt patch?i do like this:
Image
(soon matrix cells can be transparent)
but there are other techniques using setarray, or script, true that if not to hard to implement, might be a good new mode for futur "matrix listboxes" ;)

23fx23
Member
Posts: 2533

Post by 23fx23 » 29 Mar 2010, 05:55

Image
@martin
between, related to that, i find a bit strange that on above patch, if i clic some cells, the step array set on only clicqued cell, as you see ie here (like i want,cool), one bar is up. this is feedback to matrix but matrix don't update correctly, no cellz light up. (note i forgot to relink the wire out of array to matrix, i just deleted to debug, but it there, imagine) iguess this is a pb of "modes".
let's say i dlike for example to build that "only one feature", using some set array (set all 0, getindex clic,set to 1, feedback to matrix). generally with all what i try this is always tricky and matrix generally not updates correctly, imo because of "build in modes" i suppose, that's why i previously spoke about a "lock mode with info", so that we could get matrix indexs, but matrix would not write/change colors internally at all, we control them in an absolute way via outside array.
I think in my everyday uses this would be really more handy and we could extend matrix power easely, less asking for you to pgm it ;)

dont' know if see what i mean, i would like to have matrix like it was N cellz with data/color/caption input and mouse down,indexes output, but not having any action on data or color just like if it was some usine img/panels.(build in modes are nice for lot of cases, but an absolute control on input is full modular to extend) we could make nice thingz.
please please an"outside"mode.

Post Reply