Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI bugs in my homebrew ZynAddSubFX 3.0.6 #33

Open
AnClark opened this issue Jan 18, 2021 · 20 comments
Open

UI bugs in my homebrew ZynAddSubFX 3.0.6 #33

AnClark opened this issue Jan 18, 2021 · 20 comments

Comments

@AnClark
Copy link
Contributor

AnClark commented Jan 18, 2021

Yesterday (1/19/2020 Beijing Time), I successfully built my own ZynAddSubFX, for both Windows and Linux. But there are some bugs which occurs in both builds:

1. [Windows only] Standalone version: UI displace

  • Zest UI is overlapped by titlebar
  • Mouse actions are displaced as well (about a distance of titebar, vertically)

image

2. Browser: Cannot preview preset information (circled area)

image

3. Effects/Part Insersion: Cannot show effect controller

image

4. Effects/System:

  • Controller cannot show as well
  • System effect takes no affect (also in version 3.0.3)
  • Sliders above this panel (showing "DISABLED") seems to be redundant

image

5. Presets: When reloading my DAW project, it doesn't locate to the preset name in browser.

Other VST instuments will automatically indicate the preset name in their preset pickers.

6. VST version's UI is much slower than standalone version.

VST UI has lags and much lower framerates. But it's extremely fluent in standalone version. Both Linux and Windows builds have this issue.

@fundamental
Copy link
Member

  1. [Windows only] Standalone version: UI displace

That's an old bug, I guess the fix (a windows only padding constant) must have been overwritten at some point

  1. Browser: Cannot preview preset information (circled area)

I still have to look into that one, I'm guessing it's just a widget layout bug with the MRuby 3.0 update

  1. Effects/Part Insersion:
  2. Effects/System:

Resolved locally (I think). Still have to push that commit

  1. Presets:

I'm not 100% sure what you mean

  1. VST version's UI is much slower than standalone version.

I'm not 100% sure there's a way around this one. AFAIK the host regulates how often the plugin is given a chance to do UI processing.

@AnClark
Copy link
Contributor Author

AnClark commented Jan 20, 2021

Presets: When reloading my DAW project, it doesn't locate to the preset name in browser

Here's a brief example:

What I do The expected behavior The wrong behavior
I choose a preset "ARPEGGIO8" (see picture 1), then saved my project. When I reopen the project, the Zest UI should automatically select "ARPEGGIO8" in the "Browser". No preset is chosen in "Browser", even though I do have chosen a preset.

By the way, would you love to have a check with my Pull Request?

@AnClark
Copy link
Contributor Author

AnClark commented Jan 21, 2021

@fundamental And another bug I found just now:

When choosing any file-browser-related items (e.g. "Load / Save Instruments") in Zyn-Fusion's menu, the window becomes black. But when click that black window, it will go back to the last screen.

This issue doesn't exist in v3.0.3 release on the official site.

Would you love to take a look at it?

image

@fundamental
Copy link
Member

When choosing any file-browser-related items ...

Found, replicated, and fixed locally. I'll try to send out a note when I push the changes.

@AnClark
Copy link
Contributor Author

AnClark commented Jan 21, 2021

Thanks a lot! Waiting for your updates.

@AnClark
Copy link
Contributor Author

AnClark commented Jan 21, 2021

And would you love to check my pull request #32 for fixing build issues on Windows?

@fundamental
Copy link
Member

Ok, a few of the fixes have been pushed to the mruby-zest repo. Keep in mind the submodule version in mruby-zest-build has not been updated as well (I'm thinking for next release to just eliminate the submodules in the src/ folder since IMO all they've done is increase the complexity of development. submodules for deps/ still seems to make sense though.

Per the PR I tend to work on Zyn programming/issues/etc in larger chunks of time. Right now I've got ~19 emails related to zyn which need some level of response (my primary workflow is to leave stuff in my inbox until it's at least somewhat addressed). I'll have a block of time tomorrow, but there's a chance that I won't have the PR merged until the weekend.

@AnClark
Copy link
Contributor Author

AnClark commented Jan 24, 2021

Great! After replacing src/mruby-zest with your upstream tree (not the submodule version), Issue 2~4 are all fixed well.
What about a solution to UI displace?

@fundamental
Copy link
Member

fundamental commented Jan 25, 2021 via email

@AnClark
Copy link
Contributor Author

AnClark commented Jan 26, 2021

OK, thanks a lot.

@AnClark
Copy link
Contributor Author

AnClark commented Jan 28, 2021

Looking around through my older folders I'm not seeing the fix.
Comparing pugl_win.cpp with DPF's pugl_win.cpp ( https://github.com/DISTRHO/DPF/blob/master/dgl/src/pugl/pugl_win.cpp ) I can note that one difference is the window size event corresponding to the window size on our end and the client paintable area on DPF's side.

This patch works. Now UI displace has been resolved.
I suggest using our own fork of PUGL in mruby-zest-build's submodule.

diff --git a/pugl/pugl_win.cpp b/pugl/pugl_win.cpp
index 83d4474..5333375 100644
--- a/pugl/pugl_win.cpp
+++ b/pugl/pugl_win.cpp
@@ -470,12 +470,12 @@ handleMessage(PuglView* view, UINT message, WPARAM wParam, LPARAM lParam)
 	case WM_CREATE:
 	case WM_SHOWWINDOW:
 	case WM_SIZE:
-		GetWindowRect(view->impl->hwnd, &rect);
+		GetClientRect(view->impl->hwnd, &rect);
 		event.configure.type   = PUGL_CONFIGURE;
 		event.configure.x      = rect.left;
 		event.configure.y      = rect.top;
-		view->width            = rect.right - rect.left;
-		view->height           = rect.bottom - rect.top;
+                view->width            = rect.right;
+                view->height           = rect.bottom;
 		event.configure.width  = view->width;
 		event.configure.height = view->height;
 		break;

@fundamental
Copy link
Member

Thanks a ton for verifying the fix in pugl_win.cpp. I'll have that updated later today and I'll carve out some blocks of time tomorrow to address some of the sanity checks in docker. Then I should be able to resolve a few of your contributions. It's great to see all the positive interest in improving the builds :)

@AnClark
Copy link
Contributor Author

AnClark commented Jan 29, 2021

My pleasure! I'm fond of ZynAddSubFX so much, and I'd love to continue making contributions.

@fpesari
Copy link
Contributor

fpesari commented May 20, 2021

Hello, same for me on openSUSE Tumbleweed (rolling distro). This is what the settings window looks like (version from this repo's master branch + zyn 3.0.5):

image

Also, in the same window, + and - do nothing.

In the Browser window, overwriting preset names does not update them automatically. You have to select another bank and then go back to the one you modified to see the updated preset names.

@AnClark
Copy link
Contributor Author

AnClark commented May 20, 2021

In the Browser window, overwriting preset names does not update them automatically. You have to select another bank and then go back to the one you modified to see the updated preset names.

@fpesari So it is with me. This is also an issue to be resolved, but I'm not familiar with MRuby, and I cannot find the related codes.

This is what the settings window looks like (version from this repo's master branch + zyn 3.0.5):

Yes, it's another bug. But currently there's no need to use this setting windows if you are using a DAW.

@fundamental
Copy link
Member

The settings window never really got fleshed out. The code is https://github.com/mruby-zest/mruby-zest-build/blob/master/src/mruby-zest/example/ZynSettings.qml

@AnClark
Copy link
Contributor Author

AnClark commented May 21, 2021

@fundamental Maybe comparing with the settings window, this issue needs help:

In the Browser window, overwriting preset names does not update them automatically. You have to select another bank and then go back to the one you modified to see the updated preset names.

So it is with preset's comments.

For example, I choose a preset with a comment, but it doesn't load in the comment box (on the right of preset browser). But when I switch to another page and switch back to preset browser, the comment can eventually load.

@fundamental
Copy link
Member

fundamental commented May 28, 2021 via email

@AnClark
Copy link
Contributor Author

AnClark commented May 28, 2021

Strange. I can't replicate. Perhaps this is something which is fixed in
my copy, but was buggy in a prior version?

Is this bug exist in your current copy? If it's OK, I think that change can be merged into online repo.

@fundamental
Copy link
Member

Looks like my current setup is a fairly vanilla 8bca22b2ed4e29f8edd56097ebb77ccfe9e434eb based copy without much in the way of local changes. Usually that means I'm just doing something slightly differently. At least in my experience in the past 95% of the time failing to replicate if two people are on the same version is me doing something slightly different and 5% is system to system differences.

Usually to resolve those 95% of cases I resort to the very pedantic formula of:

Steps to Replicate:
  1. open
  2. click on X
  3. click on Y
  4. type Z into ABC
Expected Behavior:
  Z shows ABC
Actual Behavior:
  Z shows BCD

Almost always it feels unnecessarily pedantic, but it does do a good job at eliminating ambiguities.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants