[SOLVED] Logic pluginval not passed

I’m at stress level 9000 because apparently I uploaded a broken version of my plugin. Logic reports:

PUBLISHED PARAMETER INFO:

# # # 251 Global Scope Parameters:
WARNING: retrievedValue = 0.400079 (was 0.400079), Parameter did not retain default value when set
WARNING: retrievedValue = 0.400079 (was 0.400079), Parameter did not retain default value when set
WARNING: retrievedValue = 0.400079 (was 0.400079), Parameter did not retain default value when set
WARNING: retrievedValue = 0.400079 (was 0.400079), Parameter did not retain default value when set
WARNING: retrievedValue = 0.378178 (was 0.378177), Parameter did not retain default value when set
ERROR: Parameter did not retain set value when Initialized

* * FAIL
--------------------------------------------------
AU VALIDATION FAILED: CORRECT THE ERRORS ABOVE.
--------------------------------------------------

It doesn’t say which parameters or why they would differ …

Any help appreciated!

Are your parameters depending on other parameters?

In that case this thread might help to understand the problem:

I’d say no, but it’s really hard to tell since I have over 250 parameters, yet Logic doesn’t care to tell me which actual parameter is causing problems.

The big difference to the post you mentioned is that in there, values are actually differing. In my case, the values seem to be the same, except the last

WARNING: retrievedValue = 0.378178 (was 0.378177), Parameter did not retain default value when set

which only differes in the last digit. Could be a double to float conversion somewhere?

Anyway I might start a git bisect today to single out the commit which introduced the problem.

Ok problem solved:

I did the git bisect and became suspicious when every commit was a good one…

In the end I still don’t know what happened, the problem just disappeared. A clean build would probably have solved the problem as well…

EDIT: Problem not solved, my users still expirience the issue, and I am now unable to reproduce it.

I would suggest running sudo killall -9 AudioComponentRegistrar after building a new plugin and before testing it as it can pick up an old one otherwise (this should be in your installer to).

Could you elaborate?

What is the AudioComponentRegistrar?

As it turns out my users are still expiriencing the same issue, and I am now unable to reproduce it…

TBH I don’t fully understand the role of AudioComponentRegistrar, however you can find countless cases of users and developers experiencing issues with audio components not being picked up after being added, or even after audio units being removed them still being picked up. You can find them on here, KVR, and others. You can get around it by logging out/in or restarting but the above command prevents the need for either of those. We use this for CI too which we’ve been able to reliably recreate the issue with (GitHub Actions) and again the above command has fixed that.

2 Likes

Ok cool thanks!

I’ll ask my users whether it helps and add it to the post-install script!

1 Like

Hm no luck so far. People are reporting AudioComponentRegistrar wasn’t running to begin with, nothing changed.

Have a look through this old thread, there’s another suggestion I made there, maybe for older OS versions this still works? I assume these users are on older OS versions?

Out of interest is a restart not even resolving it for these customers? or have you avoided asking them to do this?

its multiple users and they have been testing my suggestions for a few days now, so I guess someone would have rebootet at this point. Not sure though. I thought the restart was a trick reserved for win users though :smiley:

Restarts are what we always do (and recommend) for Logic users, after updating/installing a plugin. Studio One doesn’t require a restart, but you have to right-click in the plugins pane and select Rescan (or something like that).

If not even a restart is working it suggests something else is up to be honest. Is auval picking up the plugin, have you ran it through the tests using auval?

In my experience killing the AudioComponentRegistrar helps the AudioUnit to be found. But it doesn’t do anything to the validation.

Since it seems to be an issue with conversion precision, maybe have a look at your parameter NormalisableRanges. Do you use manual mapping functions? Could it be, that one of the mappings does not return the same result when normalising and denormalising?
I think that is what the validation is actually testing.

Guys I finally got it. Once again, I was falling victim to my own assumptions:

When doing my git bisect I assumed removing the plugin, then starting Logic (making sure the plug wasn’t there) then adding the new one and starting Logic again would make Logic rescan the plugin. Spoiler alert: It doesn’t.

I just had to rescan manually … :roll_eyes:

The culprit was a line where I lazily set a parameter value from its current value:

SET_AUDIO_FULLRANGE(GET_AUDIO_FULLRANGE("Glide"));

Instead of just sending a property change message.

Thanks for your help!

@daniel you’re completely right I’ve completely misunderstood and thought we’re talking about the wrong version of a plugin loading not an auval failure - it’s been a long day!!

Looking back I think I got hung up on this point…

In the end I still don’t know what happened, the problem just disappeared. A clean build would probably have solved the problem as well…

This sounds like one of those cases when you’ve not been testing what you think you’re testing.

@FrederikSiepe if you run the installer your users have and then run sudo killall -9 AudioComponentRegistrar can you reproduce the issue?

I found the issue, yes!

(We were typing at the same time so you probably missed my answer above ^^)

Thanks a lot for your help!

Awesome! Regarding the rescan in Logic there are two ways to force Logic to do a rescan (that I’m aware of), set the version number to be higher than the previously scanned version (note always make sure this is incremented for your users!!) or set the version number to 0.0.0 this will always rescan the plugin in Logic (I contacted Apple about this in the past). So you could always make debug builds use a version of 0, however I think killing AudioComponentRegistrar will also likely do the trick.

2 Likes