sharing will be fun: optimisation help needed for a graphic step sequencer

Pierre Alexandre Tremblay's icon

Dear all

I have this lovely basic step sequencer, which freaks my computer out (even in overdrive mode)... I think it is the itterative redraw of the squares, or maybe the iterative implementation of the pattr handling, but before redoing it differently, I'd like some help from some (most) of you who are much more experienced coders...

I've attached both the js code and pasted a test file below

thanks or your input

pa

===

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

Pierre Alexandre Tremblay's icon

a shameful bump, with some more info...

I have removed the all the pattr stuff (notifyclient() and all) and it does not change the efficiency.

I have change the number of squares (from 5 tracks of 32 clicks to 2 tracks of 16) and it does help a little, but it is still hiccupping when clicked...

Any help from a good javascripter is welcome.

pa

Pierre Alexandre Tremblay's icon

Cher Nicolas

Thanks for this, there is still some problem with your suggestions:

1) using JS offline to fill a coll will not allow proper pattr interpolation (which is important for the use I do)

2)matrixctrl is not allowing staccato (consecutive cells to be on without being continuous)

3)drawing just the selected shapes (with a sort of dirty flag) could be an option, but I will have to look into partial erasing. I could keep the cursor that way as well, redrawing only 10 cells... or maybe dismiss it as you suggest.

Anyway, thanks for taking the time to reply, and I'll try the option 3 and keep people posted (and asking for more help

pa

Pierre Alexandre Tremblay's icon

I also tried to open badaboum.tutorial and I have a blank, locked patcher, with MaxOS10.4.11, Max5.0.7 with Jitter. No error message,just nothing!

What am I supposed to see?

pa

Pierre Alexandre Tremblay's icon

ok, got it to work, this is nice work!

I've open the js and doing it in jitter is a good idea (joined with the independent editing) maybe I could handle the pattr in another object...

I'll continue my explorations

pa

Pierre Alexandre Tremblay's icon

ok, here goes v.0.2

- now only the clicked cells are updated graphically
- I've pushed my querying method to the scheduler thread

Any other input is more than welcome

pa

ps use the same test patch above

Pierre Alexandre Tremblay's icon
Luke Hall's icon

It would be possible to just use [matrixctrl]. You just need to set it so that each square has 3 values, on, off and joined, then create your own custom picture to show these states. You can then use the "clickvalue" message to decide which to use (for example normal click to add, shift+click to delete). You might need to analyse which is the last location on each row to be selected and whether it has been added or removed and then change the click state to make it look tidier. You can then read through using the "getcolumn" message. Perhaps using a semi-transparent [slider] placed over the top to be your cursor.

I'll see if I can piece an example together for you when I get back from work.

lh

Pierre Alexandre Tremblay's icon

thanks for this

The only problem I can see with this is when you click in the middle of a long bar to chop it, you will not be able to update the previous square to and ending one...

but I'll give it a go

pa