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

MembraneSynth crash on Linux running Renoise #24

Closed
powerjungle opened this issue Dec 15, 2022 · 7 comments
Closed

MembraneSynth crash on Linux running Renoise #24

powerjungle opened this issue Dec 15, 2022 · 7 comments

Comments

@powerjungle
Copy link

powerjungle commented Dec 15, 2022

Renoise LOG> Vst3Plugs: Instantiating: /home/music-plugins/vst3/MembraneSynth.vst3...
Renoise LOG> Vst3Plugs: Failed to suggest speaker arrangement (not critical)
"/home/renoise/.config/UhhyouPlugins/style/style.json" is not regular file or doesn't exist.
Renoise LOG> Vst3Window: Creating a new main window...
Renoise LOG> Vst3Window: Setting window properties...
Renoise LOG> Vst3Window: Creating plugin parent window...
Renoise LOG> Vst3Window: Mapping the window...
Renoise LOG> Vst3Window: Attaching the plugin to the plugin parent window...
Renoise LOG> Vst3Window: Plugin requested new Windowsize 710, 480
Renoise LOG> Vst3Window: Plugin window attached via _XEMBED_INFO
Renoise LOG> Vst3Window: Closing the Editor...
Renoise LOG> Vst3Window: Editor was closed
Renoise LOG> Vst3Window: Creating a new main window...
Renoise LOG> Vst3Window: Setting window properties...
Renoise LOG> Vst3Window: Creating plugin parent window...
Renoise LOG> Vst3Window: Mapping the window...
Renoise LOG> Vst3Window: Attaching the plugin to the plugin parent window...
Renoise LOG> Vst3Window: Plugin requested new Windowsize 710, 480
Renoise LOG> Vst3Window: Plugin window attached via _XEMBED_INFO
Renoise LOG> Vst3Window: Closing the Editor...
Renoise LOG> Vst3Window: Editor was closed
Renoise LOG> Vst3Window: Creating a new main window...
Renoise LOG> Vst3Window: Setting window properties...
Renoise LOG> Vst3Window: Creating plugin parent window...
Renoise LOG> Vst3Window: Mapping the window...
Renoise LOG> Vst3Window: Attaching the plugin to the plugin parent window...
Renoise LOG> CrashLog: Caught signal: SIGSEGV (11) ...
Renoise LOG> Vst3Plugs: Plugin 'Uhhyou: MembraneSynth' crashed while calling one of its plugin view functions!
Renoise LOG> Vst3Window: FAILED to attach plugin editor (4)
Renoise LOG> Vst3Window: Closing the Editor...
Renoise LOG> Vst3Window: Editor was closed
Renoise LOG> Warning Message: Ouch. The VST3 plugin 'Uhhyou: MembraneSynth (from Uhhyou)' crashed in event, function or class: 'IPluginView', Thread: 'GUI'
Renoise LOG> Warning Message: IMPORTANT: This is a fatal error. Please save the current document under a !new! name to prevent losing important data. Renoise will silently ignore any following errors from this plug-in.
Renoise LOG> Warning Message: DO NOT IGNORE THIS ERROR; DO NOT CONTINUE USING THE PLUGIN. THIS CAN DESTROY YOUR SONG OR CAUSE OTHER RANDOM CRASHES AND PROBLEMS!
Renoise LOG> Warning Message: It's most likely that this is a bug in the VST3 plugin, so please also report this problem to the authors of this plugin in order to get the problem fixed!

I am running:

  • Gentoo Linux
  • Renoise v3.4.2
  • MembraneSynth 0.1.1
@powerjungle powerjungle changed the title MembraneSynth crash MembraneSynth crash on Linux Dec 15, 2022
@powerjungle
Copy link
Author

powerjungle commented Dec 15, 2022

MaybeSnare and BasicLimiter crash as well for me. I suspect that all of them will. The weird thing is that the GUI loads properly, but after opening it 2-3 times, then the crash happens. The plugins work properly until then as well.

@ryukau
Copy link
Owner

ryukau commented Dec 15, 2022

Hi, @powerjungle. Thanks for the report.

If you are using VSTGUI 4.11.0 or earlier, following issue might be the cause.

If you are already on VSTGUI 4.11.1 or later, then I'd suggest to build VST 3 SDK example plugins, and see if they also crash on Renoise or not.

If the issue is specific to my plugins, I probably can't fix the bug by myself, because of the lack of X.Org knowledge and my faulty Linux environment. I need help here.

In case the crash is specific to my plugins, Following parts of code are probably related.

RunLoop is copied from VSTGUI.


For reference, this comment is mostly same as the following one.

@powerjungle
Copy link
Author

powerjungle commented Dec 16, 2022

Okay so I cloned: https://github.com/steinbergmedia/vst3sdk.git
I checked out: HEAD detached at v3.7.7_build_19
Meaning VSTGUI should be v4.12.0, gotten from: vst3sdk/vstgui4/vstgui/lib/vstguibase.h
I ran: git submodule update --init --checkout --recursive
After which I created the "build" directory, cd to it and ran: cmake ../ && cmake --build . --config Release
I fixed the "limits" problem from here: steinbergmedia/vst3sdk#99
After which it built correctly, then I grabbed "hostchecker.vst3" and ran it in my DAW. It had the same problem as your plugins, meaning it's either something from my OS or from Renoise.

This is the log:

Renoise LOG> Vst3Window: Creating a new main window...
Renoise LOG> Vst3Window: Setting window properties...
Renoise LOG> Vst3Window: Creating plugin parent window...
Renoise LOG> Vst3Window: Mapping the window...
Renoise LOG> Vst3Window: Attaching the plugin to the plugin parent window...
Renoise LOG> Vst3Window: Plugin requested new Windowsize 600, 400
Renoise LOG> Vst3Window: Plugin window attached via _XEMBED_INFO
Renoise LOG> Vst3Window: Closing the Editor...
/home/programming/Development/git-repos/vst3sdk/vstgui4/vstgui/lib/platform/linux/x11timer.cpp:38: Assertion 'runLoop' failed. Timer only works of run loop was set
renoise: /home/programming/Development/git-repos/vst3sdk/vstgui4/vstgui/lib/vstguidebug.cpp:124: void VSTGUI::doAssert(const char*, const char*, const char*, const char*): Assertion `false' failed.
Renoise LOG> CrashLog: Caught signal: SIGABRT (6) ...
Renoise LOG> Vst3Plugs: Plugin 'Steinberg Media Technologies: VST3 Host Checker' crashed while calling one of its plugin view functions!
Renoise LOG> Vst3Window: Editor was closed

@powerjungle powerjungle changed the title MembraneSynth crash on Linux MembraneSynth crash on Linux running Renoise Dec 16, 2022
@powerjungle
Copy link
Author

I couldn't test in Reaper, because "hostchecker.vst3" doesn't even show up there for some reason.

@ryukau
Copy link
Owner

ryukau commented Dec 17, 2022

For makeshift mitigation, it's possible to turn off GUI by commenting out following part of code.

  • if (name && strcmp(name, "editor") == 0) {
    auto plugEditor = new EditorType(this);
    plugEditor->remember();
    editor.push_back(plugEditor);
    return plugEditor;
    }

The number of parameters is relatively small for MembraneSynth. So it might be usable with fallback GUI provided by host.

@powerjungle
Copy link
Author

That's a good idea, but I would like to investigate the GUI problem further. If I find anything, I will add it to this issue. I will close it now, since it's not a problem from your code probably.

@ryukau
Copy link
Owner

ryukau commented Feb 27, 2023

To @powerjungle,

It appears that there are 2 different bugs that crash VST 3 plugins on Renoise. I found this while investigating issue #28.

One is specific to Uhhyou Plugins, and fixed at aa58b94 on develop branch. This commit might solve the issue on your environment.

Other is a bug on VSTGUI, and it's probably related to the use of bitmap. This one is causing the crash of VST 3 SDK example plugins, but it's not related to Uhhyou Plugins.

Sorry for inconvenience.

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

2 participants