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

PatchMaster radio buttons are unresponsive to input when plugin window is closed #114

Closed
ltackett opened this issue Sep 29, 2024 · 10 comments
Labels
bug Something isn't working

Comments

@ltackett
Copy link

ltackett commented Sep 29, 2024

Given that:

  • VCV is loaded into a DAW via a plugin (eg. VST2 in Ableton Live),
  • The plugin window is closed, and
  • The following simple patch is running (with latched radio buttons):

vcv_simple_patchmaster_patch

Expected result:

  • A simple sequence of four notes will be played by the FM-OP module.

Actual result:

  • Whichever note was being played when the plugin window was closed will be repeated indefinitely.
  • The sequence will resume when the plugin window is reopened.

Additional notes:
There was a slightly different result with trig radio buttons, but it was a similar symptom. Other button types (momentary/latched non-radio buttons) seemed to work as expected.

@MarcBoule
Copy link
Owner

Hi, thanks for the detailed report, but I tried with a more minimal example, and I can not seem to find any issue. For example, with this small example

image

when I close the DAW and reopen it, the same buttons are selected on both the PatchMaster and VCV Pulse, and everything looks normal.

If you are having an issue, perhaps it comes from the more complex interaction between CV Map and PatchMaster, and perhaps the way (i.e. the order) in which things get loaded and mapped when we load the patch?

Does the issue occur in the Standalone version of VCV Rack?

@ltackett
Copy link
Author

ltackett commented Oct 4, 2024

Hi Marc, thanks for following up.

Following your simplified example, you wouldn’t have been able to repro because you closed the DAW. What I was describing was closing the plugin window with the DAW running, and it is dependent on a mapping to PatchMaster from another source, such as CV Map or MIDI Cat.

Regarding standalone VCV: No, this issue would not be possible in standalone, as there is no way to close the UI without closing the patch entirely. This only happens in a DAW.

Here is an example that does repro using a simplified setup:

image

In this example, I have two keys from my MIDI keyboard mapped to trigger controller 1/2 in PatchMaster. the PatchMaster buttons are set to be Radio (Latched) buttons.

Given that

  • I’ve pressed the first key while the VCV plugin window is open,
  • I've close the plugin window, and
  • I’ve press the second key

I expect that I’ll be able to open the VCV plugin window and see the second button on. However, I am not seeing that update reflected in VCV when I re-open the plugin window. Instead I see the first button still on.


Expanding the example out to include audible cues:

image

In this example, I hear the FM Operators chime one after the other as I alternate between the two MIDI keys I have mapped to PatchMaster. When I close the plugin window, I no longer hear the FM Operators as I press the keys.


Example without PatchMaster:

image

Removing PatchMaster and mapping to Pulses directly from MIDI Cat, I can hear the FM Operators as I press the keys with the plugin window closed.


I hope that clears up any confusion from my first example, which was admittedly quite over-engineered. 😄

@ltackett
Copy link
Author

ltackett commented Oct 4, 2024

I should add: I hear the FP Operators if I change the button type for Controller 1/2 in PatchMaster to Momentary and close the plugin window.

@MarcBoule
Copy link
Owner

Ah, I had mis-read your initial message (apologies!), and indeed, I can reproduce the bug when closing the Rack UI window.
That is a very strange behavior, I'll take a look and see if I can spot the issue!

@MarcBoule MarcBoule added the bug Something isn't working label Oct 5, 2024
@MarcBoule
Copy link
Owner

Turns out it was a very easy fix! :-) Would you mind testing it on your side? If you would like me to send you a build, please let me know which platform you are on. Thanks for patiently explaining the issue! If all bug reports were as clean, well documented, and illustrated, things would be much easier! (I just have to remember to read them more carefully, haha!)

@ltackett
Copy link
Author

ltackett commented Oct 5, 2024

Would you mind testing it on your side?

I built and installed latest. While the your change did fix the issue in the DAW, a new issue arose in its place. Now every time I load the module browser, VCV crashes.

Crash log:

[3.576 fatal adapters/standalone.cpp:49 fatalSignalHandler] Fatal signal 11. Stack trace:
18: Rack(fatalSignalHandler(int)+40)
17: libsystem_platform.dylib(_sigtramp+56)
16: plugin.dylib(PatchMasterWidget::populateTiles(PatchMaster*)+3124)
15: plugin.dylib(PatchMasterWidget::PatchMasterWidget(PatchMaster*)+608)
14: plugin.dylib(rack::plugin::Model* rack::createModel<PatchMaster, PatchMasterWidget>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>)::TModel::createModuleWidget(rack::engine::Module*)+100)
13: libRack.dylib(rack::app::browser::ModelBox::createPreview()+448)
12: libRack.dylib(rack::app::browser::ModelBox::draw(rack::widget::Widget::DrawArgs const&)+36)
11: libRack.dylib(rack::widget::Widget::draw(rack::widget::Widget::DrawArgs const&)+136)
10: libRack.dylib(rack::widget::Widget::draw(rack::widget::Widget::DrawArgs const&)+136)
9: libRack.dylib(rack::widget::Widget::draw(rack::widget::Widget::DrawArgs const&)+136)
8: libRack.dylib(rack::widget::Widget::draw(rack::widget::Widget::DrawArgs const&)+136)
7: libRack.dylib(rack::ui::ScrollWidget::draw(rack::widget::Widget::DrawArgs const&)+48)
6: libRack.dylib(rack::widget::Widget::draw(rack::widget::Widget::DrawArgs const&)+136)
5: libRack.dylib(rack::widget::Widget::draw(rack::widget::Widget::DrawArgs const&)+136)
4: libRack.dylib(rack::widget::Widget::draw(rack::widget::Widget::DrawArgs const&)+136)
3: libRack.dylib(rack::window::Window::step()+1672)
2: libRack.dylib(rack::window::Window::run()+40)
1: Rack(main+4080)
0: dyld(start+2360)

@ltackett
Copy link
Author

ltackett commented Oct 5, 2024

Thanks for patiently explaining the issue! If all bug reports were as clean, well documented, and illustrated, things would be much easier!

I feel ya. I’m a frontend engineer, and I feel like we are disproportionately on the receiving end of really ambiguous support tickets, haha.
“It’s broken!” Okay, I get it. But, broken how?

@ltackett
Copy link
Author

ltackett commented Oct 5, 2024

This might be useful in diagnosing the crash issue:

System information:

  • Apple M2
  • MacOS 14.3.1
  • VCV Rack2 v2.5.2
  • Rack-SDK v2.5.2

@MarcBoule
Copy link
Owner

I forgot to test the module browser, thanks for catching that. It should be fixed now.
At least these two things were easily reproducible, but as you surely experience also, the worst bugs are the intermittent ones!
Cheers,
Marc

@ltackett
Copy link
Author

ltackett commented Oct 6, 2024

Confirmed working! Thanks Marc!

@ltackett ltackett closed this as completed Oct 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants