Arturia's new Pigment plugin crashes with JUCE audio plugin host

The new Pigments plugin from Arturia crashes when you try to open its editor window. This is completely reproducible with the JUCE Audio Plugin Host. How can this be fixed? It’s very odd that the Arturia plugins all run perfectly fine with non-JUCE hosts but break with any JUCE host, as far as we can tell.
Help would be appreciated.

Thread 0 Crashed:: JUCE Message Thread Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x00000001066fc01d objc_msgSend + 29
1 com.Arturia.Pigments.vst3 0x000000012559d544 0x1251b3000 + 4105540
2 com.Arturia.Pigments.vst3 0x0000000125592fb4 0x1251b3000 + 4063156
3 com.Arturia.Pigments.vst3 0x0000000125bd584e 0x1251b3000 + 10627150
4 com.Arturia.Pigments.vst3 0x0000000125bd6cec 0x1251b3000 + 10632428
5 com.apple.CoreFoundation 0x0000000104df03e1 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17
6 com.apple.CoreFoundation 0x0000000104dd165c __CFRunLoopDoSources0 + 556
7 com.apple.CoreFoundation 0x0000000104dd0b46 __CFRunLoopRun + 934
8 com.apple.CoreFoundation 0x0000000104dd0544 CFRunLoopRunSpecific + 420
9 com.apple.HIToolbox 0x000000010d9b9ebc RunCurrentEventLoopInMode + 240
10 com.apple.HIToolbox 0x000000010d9b9cf1 ReceiveNextEventCommon + 432
11 com.apple.HIToolbox 0x000000010d9b9b26 _BlockUntilNextEventMatchingListInModeWithFilter + 71
12 com.apple.AppKit 0x0000000102e6aa54 _DPSNextEvent + 1120
13 com.apple.AppKit 0x00000001035e67ee -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 2796
14 com.apple.AppKit 0x0000000102e5f3db -[NSApplication run] + 926
15 com.roli.juce.pluginhost 0x0000000100426221 juce::MessageManager::runDispatchLoop() + 161
16 com.roli.juce.pluginhost 0x0000000100426008 juce::JUCEApplicationBase::main() + 1000
17 com.roli.juce.pluginhost 0x0000000100425bbc juce::JUCEApplicationBase::main(int, char const**) + 60
18 com.roli.juce.pluginhost 0x00000001000a0c53 main + 51
19 libdyld.dylib 0x000000010755f235 start + 1

This crash is happening in Arturia’s code, so there’s nothing we can do other than send another email to their tech support to let them know about the issue which I’ll do now.

We’ve also emailed them - but I’m much more concerned as to why their plugins (and Korg Gadgets as well, it now turns out) work perfectly fine with hosts that are not JUCE based. Korg is using JUCE (it’s proudly on your discover page) and I think Arturia is as well. I realize the crashes appear in their codebase but is it possible that something is wrong with the way those plugin editors are being invoked from a JUCE host?

It’s impossible to know without having access to their code and being able to step in and see exactly where the crash occurs. Although given that there are thousands of JUCE based plug-ins out there which don’t crash or show a blank UI when using the JUCE hosting classes, and the JUCE plug-in demos using the latest code don’t either, I’d say the odds are more likely that it’s an error in their code.

I’m having a lot of trouble with Pigments 3 in AudioPluginHost (JUCE 6.1) on Windows.

Firstly, it opens with the wrong window size. The window is too big for the plugin UI, and there’s a lot of black space on the right/bottom.

Secondly, I get a stack overflow when I click the little ‘gear’ settings icon on the far right of the toolbar. This method is being called recursively:

AudioPluginHost.exe!juce::VST3PluginWindow::resizeView(Steinberg::IPlugView * incomingView, Steinberg::ViewRect * newSize) Line 1540

Looks like the call to view->onSize() on line 1538 of juce_VST3PluginFormat.cpp causes it.

Thirdly, I get asserts in VST3HostContext::beginEdit() and VST3HostContext::endEdit() when I click the ‘FX’ button in the toolbar.

I’m sure there are other issues too. It’s generally very flakey indeed. It seems to work fine in other hosts I’ve tried.

I realize it may be down to the plugin, but it warrants investigation on the JUCE side to make sure the host isn’t misbehaving in some way.

Many thanks,
Ben

Not sure if relevant, but I have two 4K monitors @ 150% (recommended) scaling in Windows display settings. Maybe that has something to do with the plugin window being the wrong size. I see the same with FabFilter plugins too (window too big for plugin UI, empty black areas on right/bottom of window).

This is what Pigments and all of the FabFilter plugins look like when I open them in AudioPluginHost. Again, I’m using a 4K display at 150% scaling, which may be related.

Edit: I spoke too soon. FabFilter Pro-C 2 and Saturn 2 display at the correct size. Pro-G, Twin 2 Micro and Simplon don’t. Happy to break this particular issue out into a separate thread if you prefer.

Thanks for the detailed reports, I’ve pushed some fixes to the develop branch that address these issues:

Please let us know if you run into any more problems with these commits applied.

1 Like

Fantastic! Thanks for the quick response. I’ll be able to test it in a day or two, and will let you know the results.

Thanks again,
Ben

@ed95 Just to confirm that Pigments is behaving nicely now. Thanks again for the quick turnaround.
Unfortunately, many of the FabFilter plugins still look like the screenshot above. Would appreciate a fix if it’s a JUCE issue.

Thanks for testing. I’ll try to look into the FabFilter issues soon, just waiting on an NFR for their plug-ins.

2 Likes

I’ve pushed a fix for the FabFilter window size issue to develop here:

There are still some issues when dragging plug-in windows between monitors with different scale factors and we are currently looking into it.

2 Likes

Thank you! Will check it out and report back if we have any further issues.