Plugins fail to load into Logic- isMetaParameter not set.
-
My latest plugins are failing to load into Logic Pro. Looking at the plugin validation report, it seems like some idiotic number-rounding thing. I'm not sure why that is such an issue that Logic wouldn't allow the plugin to load. F'ing Logic and Apple. There is always something "special" with them.
Here is the report.
PUBLISHED PARAMETER INFO:
# # 235 Global Scope Parameters:
WARNING: retrievedValue = 0.650000 (was 0.645654), Parameter did not retain default value when set
WARNING: retrievedValue = 0.650000 (was 0.645654), Parameter did not retain default value when set
WARNING: retrievedValue = 0.470000 (was 0.467735), Parameter did not retain default value when set
WARNING: retrievedValue = 0.470000 (was 0.467735), Parameter did not retain default value when set
WARNING: retrievedValue = 0.540000 (was 0.540000), Parameter did not retain default value when set
WARNING: retrievedValue = 0.860000 (was 0.860000), Parameter did not retain default value when set
WARNING: retrievedValue = 0.980000 (was 0.980000), Parameter did not retain default value when set
WARNING: retrievedValue = 0.330000 (was 0.330000), Parameter did not retain default value when set
ERROR: Parameter values are different since last set - probable cause: a Meta Param Flag is NOT set on a parameter that will change values of other parameters.-
- FAIL
AU VALIDATION FAILED: CORRECT THE ERRORS ABOVE.
validation result: failed validation
My proposed solution is to round up default value numbers to two decimals for all components before compiling the software. I believe that will fix the issue.
However, maybe there is something that should be in the source code to avoid these issues with Logic, @Christoph-Hart ?
-
-
@gorangrooves Mm, I think that the warnings are not the problem, but rather the error that indicates that there are two linked parameters without the "Meta Parameter" tag.
I'm no expert, but I had problems with Logic in the past and ended up removing all the linked parameters.
-
@bendurso These are definitely default values of components (sliders). They don't have linked parameters. I compared the error message to the default values I have for sliders and found matches.
I am struggling to do something which should be trivial and that should work, but it is not:
- get component value
- make it a two-decimal rounded value, by multiplying it by 100, rounding it up, then dividing by 100
- assign the new value as the defaultValue to the component
Print outs shows everything is done correctly. However, the value that gets set as the defaultValue still have these insane decimals.
So, 0.37503473885 becomes 0.38, only to be set as 0.37503473885 for the defaultValue. Makes no sense.
for(c in Content.getAllComponents(".*")) { if(c.get("isPluginParameter")) { var value = c.getValue();//Get slider value Console.print(c.get("text") + " " + value);//The value has crazy decimals, like 16! var roundNumber = (Math.round(value * 100));//Multiply by 100 and round it up. 0.7892436252 becomes 79. var defaultNumber = roundNumber / 100;// 79 should become 0.79. Console.print("DefaultNumber is " + defaultNumber); // Yes, it is 0.79. Awesome! c.set("defaultValue", defaultNumber);// Lets just set that nice simple number to the defaultValue. Should be easy. Console.print(c.get("text") + " default " + c.get("defaultValue"));// WTF? Why is it now 0.7892436252 again? } }
@d-healey Any ideas?
-
-
Well, this has to be a bug. I can not even manually set default value of any slider to a two decimal number.
If I enter "0.69" in the default field, it immediately turns into 0.6899999976158142. WTF? This ensures that plugins will definitely not load inside Logic Pro.
@Christoph-Hart What is happening here, buddy?
-
@gorangrooves have you checked the isMetaParameter boxes yet?
-
@gorangrooves said in Plugins fail to load into Logic- components' default values rounded up:
get component value
make it a two-decimal rounded value, by multiplying it by 100, rounding it up, then dividing by 100
assign the new value as the defaultValue to the component--woah, yes Im pretty sure Logic/Au wont like this... dynamically changing the default value of the component.
So whats likely happening is AUVal is getting the default value of the component at some stage... then testing the component for changes, then comparing the default against the one it has - and in this case they would be different - so its reporting an ERROR, as @bendurso says the warnings are not likely your problem, its the error;
ERROR: Parameter values are different since last set - probable cause: a Meta Param Flag is NOT set on a parameter that will change values of other parameters.
But why are you bothering with this? It ends up only being about asthetics of viewing (by hand) the presets of your plugin....your product will work fine with these multi-decimal place values.
-
-
@gorangrooves read the error message agan;
ERROR: Parameter values are different since last set - probable cause: a Meta Param Flag is NOT set on a parameter that will change values of other parameters.
-
@Lindon None of that makes sense for my projects. The errors are for some sliders only. I removed the "isMetaParameter" from all components that happened to have them switched on, since I am not using that anywhere. I expect that to fix the issue. Will report back soon.
-
@gorangrooves are you still doing this stuff?
get component value make it a two-decimal rounded value, by multiplying it by 100, rounding it up, then dividing by 100 assign the new value as the defaultValue to the component
if so that will lead to the error I think.
-
@gorangrooves said in Plugins fail to load into Logic- components' default values rounded up:
The errors are for some sliders only. I removed the "isMetaParameter" from all components that happened to have them switched on, since I am not using that anywhere. I expect that to fix the issue. Will report back soon.
So if you have a component, and in its call back it changes the value of another component, or its own default value, then isMetaParameter needs to be set to ON.
-
@Lindon Thank you! Yeah, removing the flag did not fix the issue. Oh, what a nightmare. God damn Logic.
I looked at the latest report on one of the "failed" plugins. Check this out.
# # # 170 Global Scope Parameters: WARNING: retrievedValue = 0.490000 (was 0.490000), Parameter did not retain default value when set WARNING: retrievedValue = 0.490000 (was 0.490000), Parameter did not retain default value when set WARNING: retrievedValue = 0.850000 (was 0.850000), Parameter did not retain default value when set WARNING: retrievedValue = 0.430000 (was 0.430000), Parameter did not retain default value when set WARNING: retrievedValue = 0.650000 (was 0.645654), Parameter did not retain default value when set WARNING: retrievedValue = 0.650000 (was 0.645654), Parameter did not retain default value when set WARNING: retrievedValue = 0.470000 (was 0.467735), Parameter did not retain default value when set WARNING: retrievedValue = 0.800000 (was 0.800000), Parameter did not retain default value when set WARNING: retrievedValue = 0.850000 (was 0.850000), Parameter did not retain default value when set WARNING: retrievedValue = 0.720000 (was 0.720000), Parameter did not retain default value when set WARNING: retrievedValue = 0.800000 (was 0.800000), Parameter did not retain default value when set WARNING: retrievedValue = 0.540000 (was 0.540000), Parameter did not retain default value when set WARNING: retrievedValue = 0.300000 (was 0.300000), Parameter did not retain default value when set WARNING: retrievedValue = 0.890000 (was 0.891251), Parameter did not retain default value when set WARNING: retrievedValue = 0.870000 (was 0.870964), Parameter did not retain default value when set WARNING: retrievedValue = 0.540000 (was 0.540000), Parameter did not retain default value when set ERROR: Parameter values are different since last set - probable cause: a Meta Param Flag is NOT set on a parameter that will change values of other parameters.
Some retrieved values are identical to the default parameters and they are somehow not good.
I did a search of those values in the preset xml file to see what components are being referenced. While I find several components for a single value, I can not find some values at all. Not sure where they are coming from. Some matching values are for both GUI components and synths/ samplers.
To make sure I understand it correctly: if a button has a callback that says "turn this slider up, switch this on, turn this slider down...", then that button needs to have 'isMetaParameter' turned on?
What about components that are being controlled by that button?
-
Well I suspect that AUval is not reporting the level of detail you need in lines such as this
WARNING: retrievedValue = 0.490000 (was 0.490000), Parameter did not retain default value when set
I suspect if there were enough decimal places you might see something like this
WARNING: retrievedValue = 0.4900001111 (was 0.4900002345), Parameter did not retain default value when set
..so yes if a control changes any =other control its a metaParameter and needs this value set.
The target controls DONT need this to be set.
But you should remove all this "rounding code" anyway.
-
@Lindon Thank you very much! Yes, I removed the rounding attempt yesterday when I realized it wasn't doing anything.
It seems I have a lot of components to set this way, probably all sliders and buttons.
I'll see to do it programatically.
It will be a bit of trial and error until I figure out all the components that need to be changed. I'll report back. -
@gorangrooves did you try enabling isMetaParameter on the sliders concerned (or all of them?)
-
@DanH I am going to do that now. Just figuring out the most practical way, since I have 17 plugins to go through.
-
@gorangrooves said in Plugins fail to load into Logic- components' default values rounded up:
t figuring out the most practical way, since I have 17 plugins to go through.
Start with 1, to make sure this is the problem before you worry about all 17.
Do all plugins have the same components?
-
@d-healey Yes. I am going to compile one now and test. I made a few loops to get all components with certain names (Slider, Mute, Solo, Panner...) and set those flags to 1. Once I get one plugin to work, I'll run the script in all other plugins and recompile.
-
@Lindon @bendurso @d-healey Happy to report that the first plugin I tweaked passed the validation! Yay! Thank you so much for all your help! Going to run the script in all the other plugins, then recompile.
Does any one of you know of any alternative location where AU plugins may be located?
The Logic's Plugin Manager is displaying some of my older plugins that are clearly not in the regular components folder.:
Mac HD > Library > Audio > Plug-Ins > ComponentsWhile some of them say "can't open", one of them opens in side Logic, but it is not in the components folder.
-
-
@gorangrooves There are only two places they should be. Either the system library folder or the user library folder