Gate time ...timing events

ward de jager's icon

To sequence a vst I need the exact gate time ( hold note for makenote )
Metro is set to 100 ms
Unpacking the matrix ctrl into a change followed by "sel 0 1" ,gives me sustained notes (and rests) if multiple cells are lit -unlit , works great for controlling the sustain of an adsr or going through zl lookup ( with a separate accumulator )
However , this doesn't provide the gate length that's needed for the vst or midi instrument
For that I again use the sel 0-1 module but "change" removed (strucuture with red cables ) , the bangs then go into a counter and I get the correct number of bangs which is then mutliplied by metro time

To reset count , the 0 outlet of sel is used but as you all guessed this appening to fast for the makenote to actually process

 


gatelength.maxpat
Max Patch


ward de jager's icon

I think the timer might be a better solution , for now ...
Problem is that it keeps counting regardless

Source Audio's icon

you can copy - compress your stuff in a patch and upload it here.

Otherwise one has to download all that non working patches in order to see what's wrong.

Source Audio's icon

After having a short look and hope to have understood correctly

that you read selected row to trigger notes accumulating active cells

in set range - you count through columns.

If that's so - you don't need that complicated construct at all,

simply trigger note on when first cell is active and off on next inactive cell .

And most of functions can be simplified, started from that unneeded ggate

Max Patch
Copy patch and select New From Clipboard in Max.

ward de jager's icon

I don't read the rows , I read the column , but in the example only the first lane is poopulated .

The unpack that goes into a gswitch (nr inputs= nr of lanes ) makes it easy to instantly switch between lanes
For example , the first rows could be filled completely except the last step = this equals to a long sustained note
The second row could be populated with 4 steps ( 1 quarter note ) followed by 4 non lit steps = 1 quarter note rest .

By unpacking all the rows into a gswitch , I can instantly switch between lanes .
Sequencing is done by getcolumn obviously because we're going left to right

Source Audio's icon

You do read rows, columns are only index, selected row

gets stepped through that ggswitch output.

so row 3 could be 1 1 0 1 0 1 1 if one loops only 7 columns = row indexes

which then in case that one cell represents 16th note makes

what I posted does that, and also takes care that even full length note gets restarted

correctly.

Your attempt to determine note length can't work, because you know how many

consecutive cells are active only when they end.

............................

It would be more efficient to get row and then step through it

instead of getting columns just to pick 1 cell out of it.

as simple as this