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

                                16

                                Online

                                1.8k

                                Users

                                11.9k

                                Topics

                                103.9k

                                Posts