Hosted Plugin `endGestureChange` Assertion


#1

Whilst editing parameters inside of a hosted plugin, I seemingly randomly hit this assertion. Could somebody point be to the documentation for where this is or even a hint as to what the problem may be?

#if JUCE_DEBUG && ! JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING
    // This means you've called endChangeGesture without having previously
    // called beginChangeGesture. That might be fine in most hosts, but it
    // would be better to keep the calls matched correctly.
    jassert (isPerformingGesture);
    isPerformingGesture = false;
   #endif

#2

You’ll need to provide a bit more information for anyone to be able to help. How are you changing the parameters? Which plug-in are you hosting? Can you reproduce the problem with the JUCE demo plug-in/host?


#3

That’ll happen if the plug-in developer didn’t have their start and end gestures evenly matched… you can avoid the assertion by adding:

#define JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING 1

to your main header

Rail


#4

Thanks for the easy fix Rail. Is there any problem with me disable the gesture checking (I plan on using automation at some point down the line)?
@t0m After further testing, I managed to narrow this down to only occurring with Apple’s built-in AudioUnit plugins, most often occuring with the AU Delay. The assertion triggers in the demo host too and occurs whilst simply moving the GUI, however I haven’t been able to find the exact cause of it.

edit: assertion is not a crash!


#5

It sounds like the problem is coming from Apple’s plug-ins (it not unusual to run into this), and unfortunately there’s not much that you can do about it other than what Rail suggested.

Also note that there’s a difference between a crash and and assertion. Assertions can be continued past in the debugger, and will be completely removed from release builds so won’t trigger at all. Often in the JUCE codebase we’ve put assertions just before an inevitable crash so we can indicate what’s about to go wrong, but in this case it’s safe to ignore them.


#6

This doesn’t only happen on Apple AU plug-ins… I’ve had it happen with other VST plug-ins (I won’t mention the developer)

Rail