FilterDisplay and MatrixPeakMeter Floating Tiles - Performance
-
I'm getting a lot of UI lag on my rather large project. I assume that the FilterDisplay and PeakMeter floating tiles are running some reasonably fast timers but do the timers run even when the components aren't visible?
-
@DanH
This also affects the FloatingTiles for FlexEnvelope, which is why I unfortunately had to remove them from my project. However, it seemed to me that the components are only updated when the visibility of the panels in which they are located is set to true. When the panel visibility is set to true, it seemed to me that updates are performed even when the FloatingTiles are not visible. It might help to set the visibility of the panels to false if the FloatingTiles are not visible at all. -
@DanH Could check (in the HISE source) if a component is showing before running timer callbacks.
MatrixPeakMeteralready does it:void MatrixPeakMeter::InternalComp::timerCallback() { if(!isShowing()) return; ... }Maybe we could add it to other Floating Panel types?
@Christoph-Hart thoughts?

-
searched the source but can't find anything for FilterDisplay
It's possible the FilterDisplays only update when parameters change...
-
@DanH Things are named differently in the source. Makes it more fun!

Claude says it's in
EqComponent.cppclass FilterGraph::Panel : public PanelWithProcessorConnection, public Timerand add it in the timer callback:
void timerCallback() override { if(!isShowing()) << ADD HERE return; << ADD HERE if (auto filter = dynamic_cast<FilterEffect*>(getProcessor())) { ... } } -
@dannytaurus have you fed Claude the source?
-
@DanH Yeah, I use Cursor code editor every day in my normal work (Ruby on Rails).
I have a separate Cursor project open with the HISE source.
Clause is very good at finding code points when it has the full codebase.