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

                          22

                          Online

                          1.8k

                          Users

                          12.2k

                          Topics

                          106.1k

                          Posts