View Single Post
Old 08-24-2019, 01:10 AM   #14
earlevel
Human being with feelings
 
Join Date: Dec 2015
Posts: 331
Default

Quote:
Originally Posted by Nonlinear View Post
My builds seem to work fine in Reaper but I have seen VST3 preset issues in Cakewalk by Bandlab where the last preset in the list does not load. It doesn't matter if there are 2 presets or 20, always the LAST one in the list doesn't work. It loads the default values instead of the preset values.
The bottom line is that IPlugVST3.cpp gives wrong results in a handful of places. Depending on the mix of what the host calls in implementing VST3 preset, and whether or not you tried to adjust things to make it work in one particular host, different hosts will fail in different ways. The "last preset missing" failure is a variation of this sort of thing: I already mentioned that IPlug gives the wrong numSteps value in initializing (for 32-item menu, 0-31, if passes 32. But the VST definition of numSteps would be 31). It won't matter for some hosts, depends on whether they used normalized values or not. The menu could have 32 items, just the items you set, but the host might calculate it, or it might ask IPlug to convert it to normalized. That function was missing, so in either case the host might go ahead and figure it out...OK, the last item, 31...divided by numSteps (oops, 32!), returns 0.96875. Rehydrate that back to a preset number inside Plug...0.96875 * 31 = 30 integer. Oops, you wanted 31.

You have to fix all the things I fixed. If you try to fix it here and there, you just move form one bug to another. For instance, you'll end up with the first half of the menu working fine, but the entire second half off by one (due to rounding).

You really just have to fix it, you'll never get all hosts to work right when it's being sent bad information.
earlevel is offline   Reply With Quote