HISE Logo Forum
    • Categories
    • Register
    • Login

    XY Panel controlling Knobs, Panel does not create DAW automation but Knobs do?

    Scheduled Pinned Locked Moved Scripting
    24 Posts 5 Posters 678 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.
    • L
      Lurch @hisefilo
      last edited by

      @hisefilo it’s in there already! HISE build is from earlier this month so no issues there

      1 Reply Last reply Reply Quote 0
      • L
        Lurch
        last edited by

        Anyone got anymore ideas with this - I've just got this, and the plugin latency calculation stuff to do and then I can count this one as in the bag!

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

          @Lurch well the last snippet you sent wont get past a truck load of errors - so Im pretty sure its going to be difficult to help, as Dave says -

          "It should contain a panel and a knob and nothing else. Just enough to demonstrate the issue."

          HISE Development for hire.
          www.channelrobot.com

          L 1 Reply Last reply Reply Quote 0
          • L
            Lurch @Lindon
            last edited by

            @Lindon That last snippet was updated with Christoph's suggestion discussed above - the erroring code was included to show what errors are being flagged. I'll strip that out and see what else I can take out.

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

              @Lurch you are not shipping over your scriptnode so thats not working for a start...

              HISE Development for hire.
              www.channelrobot.com

              L 1 Reply Last reply Reply Quote 0
              • ChazroxC
                Chazrox @Lurch
                last edited by

                @Lurch try calling .changed() on the knob after you set the knob values from your panel script.

                L 1 Reply Last reply Reply Quote 0
                • L
                  Lurch @Lindon
                  last edited by

                  @Lindon lets try this, stripped right down!

                  HiseSnippet 4807.3oc6b07aajjcuosaOVzxyXO1IHmRJnKKksLMIknrcbFHRIRZy0hRLjRdklAKFTjcQxJtY2b5toj3LqALVDfbLGxkr21+CBxsDDfDeM.6gEHmxsIIWyAebuM4UU0M6uoZpO75MXHLr.q58d0qdueuW8ppK1MMz6RLM0MjRkduIiHRoVTt8DMqAaM.S0jpWQJ0sjK2Yho4AGtGwzRZyIivllDEoTot5yYjjZgqIw+79M1Dqh05RbaRR5U5ztjsoCoVts1rzKopp0vJj8nC8P8Zkp2UWaKcU8wf5bU4bRivceMtOYGLirqHK8Br4.oT2WtXgU6tlxiUJTn3SWuKdcxS6g60K+pJqs15O4o4W8o30dx5jbEkRc8pJTKci1VXKhoTpqsotxj1CzOVSL.uhZR6nRXeIuTaXjEMWSWUgMEYsJs0.ppRSG6joDHkltVsqJrZ2StAUgNscWq2s4cfb4vqAL0U7qdW0m5k2q5kyi5EgJkxiJcMgJcG41cMnirb6goO2TttlEwnGF7SdUEAsRW4u4OS9QWDePk27v1sQmQtS+ne++IcZ1rfA8QTSDVCgU6qaPsFP6hLHGQL5f5fAqGBanOVSAUoZ8cp7SLQO2fLYftJAUocyUPXTKFslvWIp3IPC.ofvZrMZntBQEo2Cn44.BGvLZ8IFnxiUn5OZuATCETCfxVjt5FJlnlpXygXzV5TUTEpI.arn5ZOr13u8aQMIJXUg.AEZrIUqOZmxMx9LXNHlB585AZA5fCQMwJHHNyxPWL3pC0Msf+nh5MVqKSllqfFRvZLgL1jwUWPM9lwztuVcBW+oZVioVziHv2GpeDA0gXcLg.ln9F.TC5XEjhPEA04XHpkvz.ayFXCF1gRzrr+tovnXdLQUkMlN8NBCy5tFDLSHclfrFPDbXRbkDyZZOCzl.yKfWMLaRvH2fP0xBlf8.N2TERlv8K8MviXNQvqNxP+HJDpCLNFzUyILsbmxsKy7i5JJXvGzFxBQP0To8GXg1hvhddzOED8vIn1cGnQsrFhgQggV1Z2lG1p9yewdncp9ppsZraqpnx6Wo9tOZ6x62p5NaUE0r5d60FUHWghqfJu81HN4sQsp1tZqWUsRVDHmC0GiLGnOVUAM.eDax1kByWXlB54HtNJrEpjivfgp59aWFc7.v9S0LsvBqH2suBh1CMADmBUAooC1TUBfY49ebWKT6wiFANoR6vLmC0MHbvW1t5YG+ZTOcCjBwBSUMAfDnWaw8ELuuHAB25qpC3odf7LyldK3OfAJ6P7qI0LfuLMWSl0ykaEzZ4xs7yRCCN3tNBaf7rvB5KP70cx1mXwSuw+Vlk7PxR93ce.Y1DPaDqW.pgJD37EnpZ8oZjrBLSHBxrLeVHzXFdmOYQ0np.5rmg9PtUk2nnM9x.Fr4qNuql55posGClPbIElm5rdgg.kNMaTZh0HplHOJ7AG9RM8N71AU0wTwlt5CGoqAeIyRdnAlsP1SHdk0BmbXIEhAW3m2byubmc27Lma9ikzyeLnCtd2Jzd8f7t5Zb2Ub9WeT4GO2l9sjYxqCA9Yi0xpwxCu2vLr1LYXsvLTblLTLLCqOSFV2OC7UFaAgry114kpHDP6QPXuxoKBW5hPH0HDkNvBEmtX7RYDBpA8jSWF1DE17kellu7gYnvLYn.iAVhCgryTodsZ62t9t6rb5zTMX4Bxz09Q5Z9.oaIpTHSWGItBLlpiIKm96Rm9MfTSDPOqIqWtj1Bx7xraYhdf7nnEPYZW+KqFoN5DLbFUO2Xon0r.hWrvgHTKSs8+xuD0n9ArFCqXbhNiZkczZzpjWA6pOqA1nWTuQips3pTbZzZmCMZsYoQqERiJhxzX2JP0vM26EwpOEOG5SwYoOECoOqKzmZsp9WFq5r94PcVeVpy5gTmGCQedSjEcDnWJNqQf9SWFSDXDCjqt9Dac0MiY7ZqKMmG80at4YnwgFLWc9o15r2zywq0do57n29WLXFZdDCnqtmOmsxautP75sMAmGUd5ZOyPa8OLBE8bT1IaymkqfpuydUaUqLrYn+v9rAdNwhusfgPg4vbisu5QrJ2y5qnen4lZypheAAKYu4D68Xw1YEHkdz9iMH7Q4fCaaA6.uY3QvscOiBVQg2DaDbIXoUPv1vXaBym3.DPlkNlpXM.HnPzcOfv1.b782ou3j6XCwI4xUi+IRJAPl9wNPMSf9kJCaFysgHXphAtOrsq9axNoEyLNFMlsba8tXU61ysrsUrNrsbJVEVEma6dM.hMQXCC7DulNQyeA5q94g3h20JHxIiTocoVpSPfVXw1WMHOpAxfcVM1GbA1zj1medCnt1ShroYadNCaPnv.j6Yve9KPEf+7fGrL56RifO7g3qn+7YV41RnGfxPg+KOapwXi+efxV0mpwGcPaIcYGVBW6xxoD1+Ov+W.5fy3ZyeMPAO4gizMorDK+4BdXmIxCKlCAa3sXtrSI2QUYthVL5x7vhqff+kKat7150aPv9cItiW9HFuIQMd7QKetYOb4WAk2+v4yXz11B3btVN9AlnALoczoSVzroCNJAy+woGFo2vwEMzGa55a4mKh+nwfvUNCSElyvlgbD3WYlEG0txXCFjRwFcmMqqOiSaVVOAriMvi3SUMxwhzMHGaJxYFylYhEBLcMpN.9C.71P7nWw5Ni0.pIC0kYoSVZYdtAugV+LVFgLKidHxgN6VVAw8+7SnXaROXYGCVxgPi0gQOVShXrdAO8huAyoItq+g44i1d5iVA0Q2xRe3zQyq0Y+QJrzmNA8grBBmdNtSWnVbaBH6.xRPX9.DdnM5i8guhc1t7SsUISfNJDrCNd00w1EhceMQwALDnWE8wcTIawngQwBQp34bU5EhTgY4oWHJEcgXTx2j9MNqBMEq6T3AU6H8WyNLW1wLhEFWH3kc5uJYCUlB2yFtrDz2MMhsBwhXLjwzwCncGHD3wXHKsxe0XSKlPYTZP5inJm.3H97KKUSgbxt8bEs2rh7bOLhEY6DocnFP1dtz+ue6eGZr.ebxzfFWngJagDVXkuHDthai2mQ.huL.t83AUHD+A1GJfvmz2wU4gtvqWdBrDISs7PDTAhWz1ptNc9.7nhOHWVQ3oytUQqFfiX.tEcE0Cyeeaowkzzc0gJFfiHDUnhcCK16m+ob4Vo51kODUqZ0JaVdqWNCID2v3tafnz86+zbdFl1MaUsbkX4OtgvtP3HjeduRGryQyWDxMzhlBfKaYSwJZvZYJg.tSlEv8vH.t7TmyJaaPjqSWgftG5A5VHgP2IBn6gQCc8c9Ot1V9.IrpNmSEJOJFthvx5b3MAj38WkKS1QJgJDl3XhGV2mOWHH23A1oJfVO.CwAhb1mcP8RDFfDPnVk2qZLrE0JJSym1hLB1FhEaswAh5BLYkBXP5oB0DhD7ZuPnO+jgfQGoNEkDncVoPrUF12hpRsl3lpGFD.yAKIvAbhmiBjY1t9NnWrlN6QwEdQhfPUcUkFTMwewmvAN7uy9K9DmxfLHViMzPBl.7qfqkQ2GkQPHzlfykQOBkQHLOz8.6dYE28rzd1X8N5Vjc0xv167BPenfc0qWj8YW5H+4KEQ2rq3fwrXLi13gcHFd14NmPoTWy+cCPN96Ff2qtPWwVI7PntFaeM6NhnE2EZPxd+GRRotqsVAjZwuEA2x4VDv.KRTEoTokcvHRbU1608P5zY+Sk8B+RfH9TaQzVkpPLrkwKZVipBUPvBLBJi8JkLYrc7x3f+kDJilTqtCryxGTO99MRhL9DY95wmGlWyGynm8O9ejHl+LYe4WNath6HGXMzPh4sIQL2UNz58mMA8oxdW38rJilFDtXhRF+1DYbSK6rxxYytBNGuqyc1Dh.dT7rYEDLu94g47mG0tvbv7ligcDpwYdQ4WQL5X2P.I79Mj1udErElciorS5AIBGQLrnrbropPNh1kHt+TK.HIyWaoOBblSOUFoT2NA4EOY5PhTKMY5WdamR7CYaZCuqSIwwpMskeMtj+iGigD7c7XRczM.CUKrBcroqnOpjE4DKmKO2hxqU3wOI+Syk6I4jnVjgduUcteufnAmitiMGxu9ie7iKjunjI9HRcMwEnPrvwH0w8oZMwF3grMuItUd2PVbkhjTH8viUEE13MMlPcYACd8jLy+TS5mkv0JbMqkZ5wrVZmol0qeOa4O0rNsE2I4BW+G9gef21oYpGgM.Ezil5wGGmafKSmyqTX37YvWTN+p4JTHWthOtnOWyMkeRtG+z0gNeRLFy2uQXmhjGs6lwYG+L4FXXO0F6WOngDVrz0PNxH.9rzaChOeWqRQhV7NQRKu5pEKt1ZqVH3L2CnzKZ0ibNx6MdL0U8L4tWRqFvcx81uxyjC93exIsSDStPd7flNnZs1VfB35ye2WWpGUcnIq05Cw8Ak7OU96Z1Z2eZ0s16qqs61Up15M78wkY0kyNB.Elv1oH0vcsX2VStTJs5p+OaXB0rsGXV1T+Dw7eH1ct7NiRCoJJpjl16+ycVhgdz75QA8cj+.t2uQzHp8JEYP8BxaqeLZqwVRTyl9IvNUfS0i0UldAg42ywNrXFAk04Yx2VmIFeg6K5GltMtiML8Vfij4BEsbhWWmmjnurzo4GkVKreL.Hgcg0Dy06IuI170DiinPM7n5VXUZWIBT5MdJNjgUYnTaiRV+S+zSkr+490kqYP9FeAn2MoUi5AC+MefvvIETNmXcuXXnpZuH0R+swAoK8OTJR7JHfXVD5EzKF35KngfqoiGtt8kHbc6yIbcAaaRVeHv6jz8x3Ncd+uvKBbsRI.AdQjjzmO61xkMK2Q+HRa8MIv5q9caKJ2d.cHrOaP4kNUzeRA5wUPSLXVnGhFyInHX2+JYdATKDGf5t9bAyDVI0NneXuPvpUiBV4yIeJvJAP55x.4YSVgF2UtgtxXU9Ev9BoXiXJSH95JhoPjHKZwuK55dsSm510OwaHw7lg97lTcdRfGBCDkOJdLsaB6e8u5W8Ouga5728a9M+ua3CWey3v0etL6GoPRf0mwrkNNE+4ASD5dAYwuqhrbx8W0T1RRg232LNElS7twt4ESLO9z4MUZRf.gq9LVLwYM0ru3MeIKkRTrWvCr5hsJonLJWhwkQXu88ioyagSRKEYM89h9tUbQe+QxaMP2XroiY6xH.Lnm4LTuxmHy3N5vPe.tErmO4CVtMi+nVlJQmZ4E6tFiBK8gbmiIKu7erskj+vpurfFgM0mB3HJ.PzE3Jjo+RSt0bcDym38ja9CdutuTFGFLkAe86jAL9SBaptLfFQ4Qtf.G2T1Qp9gGKlzGbfmiv8W7+yPFeeBQA20mE4xYWt9r4BW2hxUnXgoJ64GN304+4I8I9.yR4TJhYnbpeRpD4zuDqUPXXthrTR1jZo+qu8uN1Mo9a8TWAjP3+bi3NwjnNlkaxrROjalR7QpjdpkMgKJ8YSY3B.wkns.rn6zJqTTaY1KzX9Pb2NIOePNZ6ecNQaWhYO7kr3FwcFcR+tjdjI+tM7UZ62OWXtqKKr1ID63XTu.vNNkkxDY14qh1HdtQS81m11L+zD+Hg43lAolObyEyNJiN4UROAs4KmyzIsjuyh3eOgqhcO+VsKLfwhtx87hNB5XOumDQQAz3e5hAZbgjoIHzv+d9lwwOg6ZnO8o9eG4czQM71zEAD6SfpPFwLNIBOcaA0WPXoyvFkugPAhXoJGu+YOEiyc9fie97qboV.z7.27sjz8RZllqUZ9Voge.BICE7orB5Yz+gpHkaxFPjHb4TRm33DOMXP53NE+aI648PQrOAh0CdYV9kglasO8KKPjWHkXN0+TWKQOIKm6djmiis+4eKb9MJ9pn4duK.9Lt7YRgSDdIVG27.9ug7AnxGTusD0rAwBGfEojDR.hXZvvz5Ycl4aOeAB2xaffcDvUkOHhC3OzQENa+17rLZgK3iGJHBJNLh+CB9e6iWHygmeHygdfL1kxNWPFGnwgRwAdtPgLoS10NzE272+KmIt4dglR2qTR2Y8BxUseDJwcaw787VjB+Fh61NmJk+WXcrWqetGWku2Rbr2mSZ.hchuGCwE0awtjph2w9oXGoNdkHzQIoKEcz9c+2sjq1qGoqkqBdM4ZGbI8h96JdF+aL8M1Hc3HUxycFd163uQis3eO92WiRR1GKiaC+L+nyCKEwazw5Z.TzpotJ1HnM9pIdRle1SxqkXf.aJg9nFr94hy37ickj65+3VIusbS7uub1szGy90+2.CKwxVrZGXMXn7zt72ZirerUrEvtB6FpK9dN124k.SzT3e4GfO1clm88T1cl2oSoDDYun7tistHBso+Xn8OFZ+ig1enBs+PLF7iJ6qseCXvB0tAuEXdqwKKFRlfsFaHru9+gw7t8XaYk90c65WZS4UVtr4fv+dblMSWQ9G4HdNXuVnKO1RenvgHI0nYU9OMoTobpqGv9R+e6qrPqB
                  
                  LindonL 1 Reply Last reply Reply Quote 0
                  • L
                    Lurch @Chazrox
                    last edited by

                    @Chazrox On the XY Knobs? It's doing that already annoyingly

                    
                    // Mouse callback for XYStickPanel.
                    XYStickPanel.setMouseCallback(function(event) {
                    
                        // During dragging...
                        if (event.drag) {
                            // Map the new panel position back to knob values.
                            var knobX = mapValue(this.get("x"), 0, XYPadPnl.getWidth() - this.getWidth(), -5, 5); //Left, right
                            var knobY = mapValue(this.get("y"), 0, XYPadPnl.getHeight() - this.getHeight(), 1, -1); //Top, bottom
                            
                            // Update the knob values.
                            knobs[0].setValue(knobX);       
                            knobs[1].setValue(knobY);
                            Knob1.changed();
                            Knob2.changed();
                        }
                    
                    1 Reply Last reply Reply Quote 0
                    • LindonL
                      Lindon @Lurch
                      last edited by

                      @Lurch so is this latest snippet displaying your problem/ What is it failing to do?

                      HISE Development for hire.
                      www.channelrobot.com

                      L 1 Reply Last reply Reply Quote 0
                      • L
                        Lurch @Lindon
                        last edited by

                        @Lindon the XY knobs are declared as plugin parameters and produce automation when automation is enabled/recording in a DAW, this is great.
                        Using the XY panel to manipulate the knobs does not produce automation in the same scenario, despite it manipulating the knobs as seen in the snippet.

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

                          @Lurch well the immediate idea that comes to mind is - we record the XY movements and then play those back...

                          HISE Development for hire.
                          www.channelrobot.com

                          L 1 Reply Last reply Reply Quote 0
                          • L
                            Lurch @Lindon
                            last edited by

                            @Lindon My thoughts exactly, I'm not sure why using the panel to move the knobs doesn't generate automation when directly manipulating the knobs does - I thought calling changed(); was functionally the same thing.

                            L 1 Reply Last reply Reply Quote 0
                            • L
                              Lurch @Lurch
                              last edited by

                              @Lurch gentle bump - still stuck on this one.

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

                                @Lurch Looking at Christoph's example you need to use a custom automation handler (I think). In your snippet it seems you're using a panel for the drag point as well as a panel for the xy pad background. In Christoph's example it's using a single panel, this is also what I show in my tutorial video on the subject.

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

                                L 1 Reply Last reply Reply Quote 0
                                • L
                                  Lurch @d.healey
                                  last edited by

                                  @d-healey hello! Yeah I tried implementing the custom automation handler in the snippet further up this thread but I get a load of errors (also further up). Do you know why the XY knobs don’t produce automation when controlled by the panel but they do when controlled directly? Seems like that might be the simplest thing to fix and would give the automation parameters I need too.

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

                                    @Lurch said in XY Panel controlling Knobs, Panel does not create DAW automation but Knobs do?:

                                    but I get a load of errors

                                    Start by making a minimal snippet. 1 panel and 1 knob.

                                    Then try and implement Christoph's solution.

                                    You can leave this part out if you want, it's just a check to see if you've compiled HISE with the HISE_SEND_PANEL_CHANGED_TO_PLUGIN_PARAMETER preprocessor definition, and this needs to go at the very top of your script, before any comments.

                                    #on
                                    
                                    #if !HISE_SEND_PANEL_CHANGED_TO_PLUGIN_PARAMETER
                                    // If this causes an error, you need to add HISE_SEND_PANEL_CHANGED_TO_PLUGIN_PARAMETER=1
                                    // to your ExtraDefinitions of the project and rebuild the component tree (either reload the patch)
                                    // or click on the refresh icon in the interface designer)
                                    Console.assertTrue(false);
                                    #endif       // FOR AUTOMATION FROM PANEL
                                    

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

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

                                    16

                                    Online

                                    1.9k

                                    Users

                                    12.2k

                                    Topics

                                    106.7k

                                    Posts