HEnquist / camillagui

GNU General Public License v3.0
9 stars 1 forks source link

Plot in filters tab #54

Closed JWahle closed 2 years ago

JWahle commented 2 years ago

@HEnquist I am currently playing around with having the filter plot directly in the filters tab. Unfortunately, the performance when changing filter values is horrible and I don't know, what to do about it - there are no requests going to the server and I did not find anything suspicious during profiling. E.g. when you add a Biquad/Lowpass and change the frequency from 10Hz to 10000Hz by typing three zeroes, there is a noticeable delay during typing. The same happens, when you delete three zeroes to change it back to 10Hz. If you shut down the backend, the plots aren't shown and the performance issue goes away.

What do you think of the current solution? Does it take too much space? Is the performance tolerable? Do you have any recommendations?

HEnquist commented 2 years ago

I'm playing with this now, and my initial impression is that it's great! It's nicely responsive for me, I don't notice any lag at all when typing in the parameter fields. The only "lag" I have is the expected 0.5s delay before the plot is updated. I'm running on a windows machine at the moment, and I have tried both Edge and Firefox. Both work fine.

It does take a bit too much room though. How about getting rid of the old plot popup, and changing the plot button into a toggle switch for showing/hiding the inline plot?

JWahle commented 2 years ago

That's a really nice idea :+1: I'll implement that.

JWahle commented 2 years ago

I just implemented it, and I really like it. Please try it. If you have no additional remarks, I'll squash+merge.

HEnquist commented 2 years ago

This is good, let's keep it this way :) However I'm having trouble with the "Pick filter file" button. The popup for picking a file never shows up. I didn't try this in the previous version so don't know if this is a new problem or not.

Another (smaller) issue is that the filters tab doesn't remember which filters had their plots open if you switch to another tab and back again. This isn't a big problem, but could be worth fixing if it isn't too much work.

JWahle commented 2 years ago

I fixed the "pick filter file" button and merged the branch.

Another (smaller) issue is that the filters tab doesn't remember which filters had their plots open if you switch to another tab and back again. This isn't a big problem, but could be worth fixing if it isn't too much work.

I noticed that, but I considered it rather a feature, than a bug. You can just edit the filters while the plot is open and when done just switch the tab. There is no need to close all the plots manually. However, if you find it inconvenient, I can change it easily. It would make things slightly more complicated, though.

HEnquist commented 2 years ago

Great! I didn't think about it that way, but yes the "forgets the visible plots bug" can also be seen as the "auto-close plots feature". Let's leave it like as it is for now :)

HEnquist commented 2 years ago

After having issues when creating mixers in the new undo branch, I went back to try this again. Then I ran into another issue with very laggy plotting. After clicking the plot button it takes several seconds for the plot to appear, and it doesn't update properly when changing filter parameters. Something is obviously different compared to last time I tried this (when everything was running great). Unfortunately I have not yet managed to figure out what the difference is. I'll try again when I have a little more time. Did anyone else see this?

JWahle commented 2 years ago

The more plots I have opened, the slower it gets. However, with 6 opened plots, the performance is still OK on my Intel I7 7800. It gets noticeable laggier (1-2sec delay until plot update), but still works.

Your problem sounds a lot worse, though.

HEnquist commented 2 years ago

The slowness comes if camilladsp isn't running! Just starting it with -w and no config is enough to make the plotting nice and quick again. The gui should of course be as quick when camilladsp isn't running, I'll look into it.

JWahle commented 2 years ago

Strange - I didn't have CDSP running, when I tested this.

HEnquist commented 2 years ago

It may depend on operating system, I tried this on windows. The problem is that the get_status() function takes a long time when trying to reconnect, and this blocks the event loop of the frontend which makes it really laggy. Here is a fix that works well for me: https://github.com/HEnquist/camillagui-backend/pull/38