Chasing logic/auval validation...
-
@dustbro happend to me too. It can be easy... Depending on the size of your project
You want to set to 'meta parameters' the controls which act on others : "when you move this knob, then change the value of this knob"
An example would be if you have 2 wetKnobs for the L & R channels of an effect and you've somehow linked them with a function (tell me if i'm not being clear)You 'just' have to find these controls and set them to 'meta'
-
@matt_sf this could be done programatically - Iterate all components and call setValue with a random value, then check if the value of the other components stay the same.
-
@dustbro yes I did , but you are not going to like how I did it....
-
I went through every widget in my project and set the isPluginParameter to false, and also removed pluginParmeterName
-
ran auval - got a "pass"
-
Then I went back through them assigning unique names and turning on isPluginParmater as needed
The thing I learned from this was....NEVER set up this stuff until EVERYTHING is built - clearly if you ctrl-D copy a widget it takes its isPlugin and pluginParameterName with it, and at that point auval will start to fail....
One "nice" feature would be if ctrl-D DIDNT take these values from its progenitor...
-
-
I'm getting some parameter warnings with auval, but it appears to be passing the test. The default and retrieved values seem to match. Fake news? Or should I worry?
-------------------------------------------------- PUBLISHED PARAMETER INFO: # # # 48 Global Scope Parameters: WARNING: retrievedValue = 0.400000 (was 0.400000), Parameter did not retain default value when set WARNING: retrievedValue = 1.000000 (was 1.000000), Parameter did not retain maximum value when set WARNING: retrievedValue = 0.495000 (was 0.495000), Parameter did not retain default value when set WARNING: retrievedValue = 0.400000 (was 0.400000), Parameter did not retain default value when set WARNING: retrievedValue = 1.000000 (was 1.000000), Parameter did not retain maximum value when set WARNING: retrievedValue = 0.398689 (was 0.398689), Parameter did not retain default value when set WARNING: retrievedValue = 0.400000 (was 0.400000), Parameter did not retain default value when set WARNING: retrievedValue = 0.400000 (was 0.400000), Parameter did not retain default value when set * * PASS
Logic is also reporting the Plugin Version number incorrectly.
Component Version: 0.0.0 (0x0)
-
@dustbro - are there meta params? if so you'll need to set them as such in HISE
-
@lindon These don't appear to be meta parameters. I've double checked those.
-
@dustbro said in Chasing logic/auval validation...:
@lindon These don't appear to be meta parameters. I've double checked those.
well sadly isnt very user friendly - and it wont tell you which params its having problems with - only that its having problems....its a pita to be frank.
-
@Lindon definitely a PITA.
@Christoph-Hart I'm getting an instant crash in Logic when trying to automate parameters on a scriptnode plugin. What's the proper way to attach Logic to xcode for debugging? -
@dustbro Product -> Scheme -> Edit Scheme -> Debug -> Executable -> Logic.app
-
@christoph-hart Thanks!
I'm getting a break point instantly when inserting the plugin.JUCE Assertion failure in juce_File.cpp:174
// Mac or Linux.. // Yes, I know it's legal for a unix pathname to contain a backslash, but this assertion is here // to catch anyone who's trying to run code that was written on Windows with hard-coded path names. // If that's why you've ended up here, use File::getChildFile() to build your paths instead. jassert ((! p.containsChar ('\\')) || (p.indexOfChar ('/') >= 0 && p.indexOfChar ('/') < p.indexOfChar ('\\')));
-
@dustbro Check the callstack, somewhere you've hardcoded an absolute Windows path (
C:\Something
). -
@christoph-hart It looks like I only have 1 line of code that does not reference {Project Folder}.
This is the script I'm using to save presets to an expansion folder designated for User Presets.//----------------------save preset -------------------------------------- const var PRESET_SAVE = Content.getComponent("PRESET_SAVE"); var pre_folder = FileSystem.getFolder(FileSystem.Expansions).getChildFile("User Presets/UserPresets/"); function save(file) { Engine.saveUserPreset(file); } var shouldLoad = true; inline function onPRESET_SAVEControl(component, value) { if (value) { FileSystem.browse(pre_folder, true, "*.preset", save); UpdatePresetLabel(); } }; Content.getComponent("PRESET_SAVE").setControlCallback(onPRESET_SAVEControl);
-
@christoph-hart Ended up being the AudioLoopPlayer I was using to test DSP. Had a file loaded from outside the project folder.
Now I can get back to debugging crashes :)EDIT:
That was an easy fix. Removing the AudioLoopPlayer cured the issue.Now on to why Latch automation doesn't work in Logic.
-
@christoph-hart it appears that this no longer works:
param.beginChangeGesture(); param.setValueNotifyingHost (newValue); param.endChangeGesture();
We should use instead:
void mouseDown (const MouseEvent&) override { param.beginChangeGesture(); } void mouseUp (const MouseEvent&) override { param.setValueNotifyingHost (newValue); param.endChangeGesture(); }
What do you think?