HISE Logo Forum
    • Categories
    • Register
    • Login

    Chasing logic/auval validation...

    Scheduled Pinned Locked Moved General Questions
    18 Posts 5 Posters 1.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • LindonL
      Lindon
      last edited by Lindon

      so I have a plugin that is failing auval.. the pertinent bit is probably this:

      Parameter ID:2135008121
      Name: Gate2-Depth
      Parameter Type: Generic
      Values: Minimum = 0.0, Default = 1.0, Maximum = 1.0
      Flags: Values Have Strings, High Resolution, Can Ramp, Readable, Writable 
        -parameter PASS
      
      ParameterID=154368669, Scope=0, Element=0: Saved Value = 0.468254, Current Value 0.000000
      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.
      Cannot perform Parameter Value check across initialization and reset
      

      as you can see auval kindly tells me which parameter has passed (like Gate2-Depth in the lines above the error...) but unkindly doenst tell me the name of the parameter that fails....it gives me the ID instead. Does anyone know a way to get the name for this ID? I've been at this all day - it started out at 3 errors and now I'm down to 1 by trial and error...and I'm losing the will to live...

      HISE Development for hire.
      www.channelrobot.com

      d.healeyD 1 Reply Last reply Reply Quote 0
      • d.healeyD
        d.healey @Lindon
        last edited by

        @Lindon I don't know how to get the name or where the ID comes from. Does that output list the parameters in the order they are declared in HISE?

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

        LindonL 1 Reply Last reply Reply Quote 0
        • LindonL
          Lindon @d.healey
          last edited by

          @d-healey no it doesnt -----

          HISE Development for hire.
          www.channelrobot.com

          Dan KorneffD 1 Reply Last reply Reply Quote 0
          • Dan KorneffD
            Dan Korneff @Lindon
            last edited by

            @lindon Did you ever figure this out? I have 5 parameters that are failing due to Meta flag not being set.
            Trial and error is not fun 😵

            Dan Korneff - Producer / Mixer / Audio Nerd

            Matt_SFM LindonL 2 Replies Last reply Reply Quote 0
            • Matt_SFM
              Matt_SF @Dan Korneff
              last edited by

              @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'

              Develop branch
              Win10 & VS17 / Ventura & Xcode 14. 3

              Christoph HartC 1 Reply Last reply Reply Quote 1
              • Christoph HartC
                Christoph Hart @Matt_SF
                last edited by

                @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.

                1 Reply Last reply Reply Quote 3
                • LindonL
                  Lindon @Dan Korneff
                  last edited by Lindon

                  @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...

                  HISE Development for hire.
                  www.channelrobot.com

                  1 Reply Last reply Reply Quote 4
                  • Dan KorneffD
                    Dan Korneff
                    last edited by Dan Korneff

                    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)
                    

                    Screen Shot 2022-02-08 at 11.28.31 AM.png
                    Screen Shot 2022-02-08 at 11.30.02 AM.png

                    Dan Korneff - Producer / Mixer / Audio Nerd

                    LindonL 1 Reply Last reply Reply Quote 0
                    • LindonL
                      Lindon @Dan Korneff
                      last edited by

                      @dustbro - are there meta params? if so you'll need to set them as such in HISE

                      HISE Development for hire.
                      www.channelrobot.com

                      Dan KorneffD 1 Reply Last reply Reply Quote 0
                      • Dan KorneffD
                        Dan Korneff @Lindon
                        last edited by

                        @lindon These don't appear to be meta parameters. I've double checked those.

                        Dan Korneff - Producer / Mixer / Audio Nerd

                        LindonL 1 Reply Last reply Reply Quote 0
                        • LindonL
                          Lindon @Dan Korneff
                          last edited by

                          @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.

                          HISE Development for hire.
                          www.channelrobot.com

                          1 Reply Last reply Reply Quote 1
                          • Dan KorneffD
                            Dan Korneff
                            last edited by

                            @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?

                            Dan Korneff - Producer / Mixer / Audio Nerd

                            Christoph HartC 1 Reply Last reply Reply Quote 0
                            • Christoph HartC
                              Christoph Hart @Dan Korneff
                              last edited by

                              @dustbro Product -> Scheme -> Edit Scheme -> Debug -> Executable -> Logic.app

                              Dan KorneffD 1 Reply Last reply Reply Quote 0
                              • Dan KorneffD
                                Dan Korneff @Christoph Hart
                                last edited by

                                @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 ('\\')));
                                

                                Dan Korneff - Producer / Mixer / Audio Nerd

                                Christoph HartC 1 Reply Last reply Reply Quote 0
                                • Christoph HartC
                                  Christoph Hart @Dan Korneff
                                  last edited by

                                  @dustbro Check the callstack, somewhere you've hardcoded an absolute Windows path (C:\Something).

                                  Dan KorneffD 3 Replies Last reply Reply Quote 1
                                  • Dan KorneffD
                                    Dan Korneff @Christoph Hart
                                    last edited by

                                    @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);
                                    

                                    Dan Korneff - Producer / Mixer / Audio Nerd

                                    1 Reply Last reply Reply Quote 0
                                    • Dan KorneffD
                                      Dan Korneff @Christoph Hart
                                      last edited by Dan Korneff

                                      @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.

                                      Dan Korneff - Producer / Mixer / Audio Nerd

                                      1 Reply Last reply Reply Quote 0
                                      • Dan KorneffD
                                        Dan Korneff @Christoph Hart
                                        last edited by

                                        @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?

                                        Dan Korneff - Producer / Mixer / Audio Nerd

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post

                                        26

                                        Online

                                        1.8k

                                        Users

                                        11.9k

                                        Topics

                                        103.9k

                                        Posts