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

Current issues in Cardinal #79

Open
3 of 5 tasks
AriaSalvatrice opened this issue Dec 3, 2021 · 14 comments
Open
3 of 5 tasks

Current issues in Cardinal #79

AriaSalvatrice opened this issue Dec 3, 2021 · 14 comments

Comments

@AriaSalvatrice
Copy link
Owner

AriaSalvatrice commented Dec 3, 2021

The plugin was included today in Cardinal by @falkTX, with just the necessary compatibility patches to get it to work at all. Obviously there's a lot of issues and isn't ready for end users. I have not tested them in depth yet.
Here's the issues I noticed:

  • Widgets are broken. This is almost certainly due to the way I implemented lights out mode. I forgot the details, but it's likely the light widget is stealing the top layer. I might fully redo the UI system in the future, but an interim hack would be good until then. Only still happens in Psychopump & Darius
  • Right-clicking widgets crashes the plugin. This is likely related. Only still happens in Psychopump & Darius
  • Keyboard input doesn't work in some hosts such as Renoise, but my modules (e.g. Psychopump's Label buttons) prompt you for direct text entry. Marking as solved since the issue is with Cardinal.
  • Arcane family is included but can't connect to the internet. Unless Cardinal decides to support network connections, it should be disabled, as it has no offline mode, by design. It should NOT be replaced by a local RNG: the whole point of Arcane is that people share the same fortune, and can't predict it in advance. The arcane family is comprised of Arcane, Atout, and Aleister.
  • The QQQQ family isn't present. It's most likely related to its using QuickJS, which is used exclusively to allow people to enter chords as text. See docs for details. I had plans to use QJS for lots more stuff but had only used it for this feature so far. If it's a blocker, the button could be removed as the module remains useful without that feature.
    image
@falkTX
Copy link

falkTX commented Dec 3, 2021

No idea about the first 2, and do not have much experience yet with the Rack lights API to help at the moment.
Can comment on the other ones...

  • Keyboard input doesn't work in some hosts such as Renoise, but my modules (e.g. Psychopump's Label buttons) prompt you for direct text entry. The issue seems related to Cardinal.

does this involve osdialog stuff?
or otherwise how would you get such keyboard input?

  • Arcane family is included but can't connect to the internet. Unless Cardinal decides to support network connections, it should be disabled, as it has no offline mode, by design. (...) The arcane family is comprised of Arcane, Atout, and Aleister.

I was not sure which modules needed to be removed, thanks for specifying.
Actually I expected the build to fail, not sure how that even builds in the first place 😕
Will remove these soon.

  • The QQQQ family isn't present. It's most likely related to its using QuickJS

Correct, I just quickly build the stuff that was possible, will enable the Q stuff later.

@AriaSalvatrice
Copy link
Owner Author

does this involve osdialog stuff?
or otherwise how would you get such keyboard input?

Same text field code as direct numeric input present by default on right-clicking a knob. It sort of works in Windows Reason (only uppercase without spaces) and seems to behave as if the Shift key were stuck pressed. Doesn't work in Renoise. In VSTHost, keys are received twice (on key up and on key down). Same behavior for all text fields, seems to be related to Cardinal, just listing here for completeness since it can appear to be a bug my modules are causing - will document in greater detail on the project's issue tracker if not already documented.

image

I forgot the details but the corresponding code is here:

https://github.com/AriaSalvatrice/AriaModules/blob/master/src/Psychopump.cpp#L982

@falkTX
Copy link

falkTX commented Dec 3, 2021

Same text field code as direct numeric input present by default on right-clicking a knob. It sort of works in Windows Reason (only uppercase without spaces) and seems to behave as if the Shift key were stuck pressed.

ah ok, then a cardinal-side issue yes.
dealing with keyboard input in plugins is tricky sometimes, not all hosts give it willingly.

I supposed this is under Windows, correct?

@AriaSalvatrice
Copy link
Owner Author

Yup, Win 10, grabbed a build off the CI system, used in VST2 mode (I think VST3 doesn't work yet).

@falkTX
Copy link

falkTX commented Dec 3, 2021

VST3 is still unfinished yes. Might work, might not, cant make any guarantees on that.
The VST2 is known to work well on Linux and macOS though, I rarely run Windows (only in a VM) so that side got less attention and thus more bugs.

PS: Arcane and related modules now removed from the build DISTRHO/Cardinal@5bd0543

@falkTX
Copy link

falkTX commented Dec 3, 2021

Copying here for those reading, the widget lights have been fixed.

image

Undular zoom works now too, though it is very finicky so probably will be best to remove this part,
Changing the zoom also changes the view offset, so when both are automated they keep fighting each other.

@AriaSalvatrice
Copy link
Owner Author

AriaSalvatrice commented Dec 3, 2021

UnDuLaR zooming was always broken in the first place, in VCV 1.x zooming in a busy rack had a way to totally break the graphics of everything. the slow speed of rendering on my rather beefy system in 2.0 makes me thing it still is a problem.

The docs of UnDuLaR make it very clear it's for people who know what's up and have good reasons to use this https://aria.dog/modules/undular/

Lemme know how you wanna proceed about this, but I want to say that UnDuLaR can be super valuable in for some specific use scenarios, like when you have a mega-rack you use for live performance. For example I use a beta version of it in this song so I can perform with a MIDI controller while using pen tablet input (which can't scroll easily): https://www.youtube.com/watch?v=518mAPjFWsw

It's meant for a small audience of people who go deep in automating their tools.

(edit: better example)

@falkTX
Copy link

falkTX commented Dec 3, 2021

Alright, good to know, we can keep it as-is then.

I have not really used Rack at all because of the lack of a plugin version, so I am not aware of how things used to be.
Only with Cardinal I finally started to run it, and only Cardinal; I never actually ran v2 official binaries.

@AriaSalvatrice
Copy link
Owner Author

AriaSalvatrice commented Dec 4, 2021

The following widgets are still a bit broken:

  • Backlit Darius & Psychopump CV knob. Right-clicking them also crashes the vst. They should share code, but might be copy-pasted to accommodate behavior variations - forgot how i went about it
  • Darius routes knob (with a little triangle arrow). You can't rotate them, right-clicking them crashes thing, and additionally, their default orientation should be 3 o'clock rather than 12 o'clock, with their range restricted to the two corresponding diagonal lines on the faceplate (see the docs for an example: https://aria.dog/modules/darius/ )

image

I want to eventually redo the widgets properly, so there is no reason to put in more effort than simply getting it to work at all, right now.

@falkTX
Copy link

falkTX commented Dec 4, 2021

I am getting stuck on the broken widget stuff, tried a couple of things but issue seems to go deep...
My tests indicate the crash happens because some knob/parameter labels are not set, but couldn't quickly find which ones.

@dromer
Copy link

dromer commented Feb 2, 2022

I also figured it had something to do with knob/parameter labels, and couldn't find the root cause either.

Another issue, that I reported in Cardinal, but is better suited in this thread (that I just found) is that the LCD screens render on the top layer, right through the library background: DISTRHO/Cardinal#123

@falkTX
Copy link

falkTX commented Feb 2, 2022

that one is simple, seems like a Rack/nanovg bug.
if drawing a line > 0 < 1, it renders through the overlay

@falkTX
Copy link

falkTX commented Feb 9, 2022

Everything should be set with #82

I had to disable the layer-1 drawing for the LCD display, as it was drawing things on top of menus and other overlays. Not sure if Rack bug, or something in nanovg or what is going on. But not critical in any way, we just dont get fancy lights-out for the LCD, oh well

@dromer
Copy link

dromer commented Feb 9, 2022

Can confirm no more segfaults and no more drawing issues :)

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