lucblender / lx-euclid-001

An Euclidean Rhythm eurorack module with circular screen and circular capacitive touch interface
1 stars 0 forks source link

Speed up display #4

Closed ArthurGibert closed 2 weeks ago

ArthurGibert commented 2 months ago

The screen refresh speed is too slow.

In main display it is ok but some improvements would be still welcome.

As soon as one enters menus the refresh rate goes really low. This impacts the interaction with the module and make the navigation difficult.

I would suggest keeping the number of elements to a minimum to free up some memory.

lucblender commented 1 month ago

For reference, as per commit 3b8ea8f4ef2b3de583667449e6e039dc8b9c330, display takes:

Complex rhythms:

total display rhthms: 60ms
fill black: 5ms
draw_approx_pie_slice: 2ms
draw_approx_pie_slice: 4ms
display_rythm_circles: 28ms
show: 20ms

4 times 1 beats rhythms:

total display rhthms: 44ms
fill black: 5ms
draw_approx_pie_slice: 5ms
draw_approx_pie_slice: 4ms
display_rythm_circles: 8ms
show: 19ms

idea:

lucblender commented 1 month ago

Apparently people are working on having the peripheral clock that could be changed, overclocking? https://github.com/micropython/micropython/commit/4956a084af1dde8a9d4f48ab038403fc204abf45 https://github.com/micropython/micropython/pull/13718

ArthurGibert commented 1 month ago

I guess a lot of things could be loaded right after show. I am not sure how your method works but let me just throw some ideas and maybe this will help:

-Display refresh does not need to happen all the time but only when something had changed. -Lots of things can be loaded in the frame buffer in advance as they will not change between the frames -In lots of cases the only thing that changes is the state of 2 circles per rhythm, the one that was high-lighted and the one that will. Is is possible to only modify this instead of redrawing everything? -Is fill black always necessary would, only modifying parts of the frame might be enough without having to redraw everything. -The major slow downs happen in the menus. Could it be something to do with loading fonts/characters? -While editing rhythm. Would displaying only the active edited rhythm speed things up? (This might look better as the rhythm overlap to make place for the two semi-circles.) -While menuing, would displaying no rhythm speed things up? -Are the little grey finger position indicators really necessary? Would things speed up without them?

lucblender commented 2 weeks ago

Fixed in v1.0.0 https://github.com/lucblender/lx-euclid-001/commit/00f5c699a63f208a8f88f8177a3688a401a87551