AriaModules icon indicating copy to clipboard operation
AriaModules copied to clipboard

Current issues in Cardinal

Open AriaSalvatrice opened this issue 2 years ago • 14 comments

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
  • [x] 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.
  • [x] 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.
  • [x] 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

AriaSalvatrice avatar Dec 03 '21 17:12 AriaSalvatrice

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 :confused: 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.

falkTX avatar Dec 03 '21 17:12 falkTX

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

AriaSalvatrice avatar Dec 03 '21 17:12 AriaSalvatrice

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?

falkTX avatar Dec 03 '21 17:12 falkTX

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

AriaSalvatrice avatar Dec 03 '21 17:12 AriaSalvatrice

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 https://github.com/DISTRHO/Cardinal/commit/5bd054399d033b1ae1325f1ecc18523184f3b032

falkTX avatar Dec 03 '21 17:12 falkTX

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.

falkTX avatar Dec 03 '21 19:12 falkTX

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)

AriaSalvatrice avatar Dec 03 '21 20:12 AriaSalvatrice

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.

falkTX avatar Dec 03 '21 21:12 falkTX

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.

AriaSalvatrice avatar Dec 04 '21 08:12 AriaSalvatrice

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.

falkTX avatar Dec 04 '21 19:12 falkTX

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: https://github.com/DISTRHO/Cardinal/issues/123

dromer avatar Feb 02 '22 23:02 dromer

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

falkTX avatar Feb 02 '22 23:02 falkTX

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

falkTX avatar Feb 09 '22 01:02 falkTX

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

dromer avatar Feb 09 '22 06:02 dromer