Forum

    • Register
    • Login
    • Search
    • Categories

    event.drag x, y data for multiple points

    General Questions
    3
    5
    127
    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.
    • H
      harris rosendahl last edited by harris rosendahl

      I am trying to implement a multi click-drag area inside a panel to control a parametric eq's frequency & gain.

      There are 8 dots, each dot is XY pad itself. I painted dots & picked knobs with arrays. But I can't figure out how to get x, y data for each one individually.

      this.data.x = Math.range(event.x / this.getWidth(), 0, 1);
      this.data.y = Math.range(event.y / this.getHeight(), -1, 1);
      
      HiseSnippet 2513.3oc2Z0DaabbEdojWWSJqDkfDzlaKDJJnhkT2eHEEqagorjXhPhrnMUcrggQxncGRNvK2kZ2kxhUQ.1GJPaNzhhhhBilCo.E8R5kBTfhBzf3CI2JPKP6kdyW58bnGKP6a1gK2Y+gRjxMNxZAzOyaduY9du27duY1cp4XqiccscDxjc6dcvBYtnX8dVdsVsEhXIrwZBYDEWY8qKb0dcPttXCgLYl7MnckI64D7e9hqbUjIxRGGRRP3l1Dc7aSZS7BoVqxaQLMqhLvaSZywcgJanaaspsocW.FSJJKzAoeOTS70PT1lPTHy4W2f3Y6T2C4gcExbtqZazqdK66aw3+lDWxNlXZCEg5v.wHW01zfhXJUgUaQLMpEnttBfhUKT4mjo7uh3lDCx.5gFgY76PJTBd6QlIhBuIi.OEd3IyAuTfTFNHcNFjdIw55NjNdg8PwyThaX4gcZf.yNOTX7JLwtmWbUafCKuEaitGtpCzXfD4UTjkmWpXQ44tbtb4.iuqmzdHGoac6ZHiZVlReOo.oah8V0tcGaKnQ9YCXXVPvPwpgb.OkmCY20utBHq+BHpjq2nAVGDKBCyFaRQNNndXipN3cAYuycubx9nK3Rz2sRUhaywatF1NR4IPK4KKQj9tRKC+4RWZtbGjSBd3l36Pt6P0YZ+ydo7j4.byIFcdNJwn8yKVJS4htTIr7brMWEYZtCrpO+5WuZWK8Tmpij8CAaZt.2CkyZfPd2vtqGwBmuAvjGw1Jey4NHDMMWrADPthoYd49SXS1bPiDyy9i6h8vll12OPKxNLaZ1CxkkxwsBsmahfkANHql37wTbvTcSjYWb94j91RpxvizqK40h3R64cHFdsxO27RvZzXzVPghT+4ggF5uucnqHf82DSZ1xCF8ERADAlyXffCAAhOujRw4SPM.AreyLhqaZR53hyem.0e9AvBFjRzet6bW1WnCGX+yk6P+XAd21l1ccwCbuC7a38fEUAKbIMjXDVT2jneOrgz6+9RLBFNnly4yzA4xEXl7U.CjGZw8i5UXxrOn9oY6U56yiND8RaH5wMDgFuEThNHI+mgsXJn+CB802hKng417W275bJG+RiayEzDv9BvOb72aNdAFL95snJlQ9TGMtNk3dFzHv4lKrAyGOfirT+N8gXYBglRAtXIVnbd8fTHyC4y.bCNcl.G5OLCX215Z1d3srxSWUjEh+kh2UiFo1W+THlXmT6lVa14nDLuU216fcBgGiQnfUzpfhCuJHeQZcV1SNFss1vh3sUGr0vJcKzOkKTwbl9nBX0yud4KzudYcShA1Qf.kE+ZhTeqrfOfGruiJ+zJBirvJQD9idz+5CGCgUiNyO30d7XHrVLg+U+wwP3BQDth1m94igvEiH7i+K+lOcLDdoXV6m76FCgKEQ32629gipAiFlF2OKze8xHIrxSivpOMBq8zHbg3BKMFFrhwE9KtxnK7ROMBWJEg+9arFjbltW39A4PfeGriGglSIyZ38fCVv1YbVw0vt2yytiOu8yZBGfgMoSGruYjE1zeNeQwMg4jNpve.brOustGei6SqBNff7OqRK+ZZgTdXkcrc.coN4GDwiwndCjAoqaD5MCNdSNQkkJUpjpRQAO79doPl3gayeXnv1pLBYlXTz1WVr519sFeE9AePJJ7whVUpGQqbgREWVNhRDRcnlmTMlcPNfJxoqwcfYljqyo85eBNlgnpoMB15aysIPIGl2mmj5QXL5utisHCDiXBmaZMhaGSTONO4ThkkKqoVTQtTD08hhJkKuTgBEUJqE07.8TpPgRKqosjpf+p7LKKdvzvVClcP0sMLl86HE6.Sy6yxFVF38gNWPY5bGdrdrmzsR3bqQcBpKWtfhpRRyZJqTD359EFKCq1naXWoqAwdEKjYOWXJCMrfYRYI4xfYpPTK6ThEJuTQsxKKGKpf1gllRwxEz5aW0R2tFLawsopmDS5EEKntrh7xETkGMqJeHzThEk0zjkUKWNh0dpgEOmSL3XBOEwwfJfnmlK3.Ft99ASSoPBcr6zsyVV2fJ2pziWvR5LNYvF2UXSO7L1ukk8NGaBrGrWkiKisjwWkYrO9LYyjbIvQrQ1gs.nPkTlonlv17u5tBUZiBGqezeuRaaCLcsIcZ5hsz6I35g6vYy9nG8n+zUZSLLLw0rcIzSFvugZCbCTWS1AthsQ6QV8T3UOTkyZpGekmmz4Lm5wm+uSuybpWA9EmO7Lm5UjS8p7COyodKwod6+iOyodk3Wb9SdtS8xdrGreX0+u43pdOlW8nZqu5QOPoNYGXyGCQQXahcjA7PqjcZEvCs1zoU.OzpMmVALe8iYd3yA.dnUDNsBX9b7OfOGekSo.dnYselZgS9gmmQbSaitlHuneGbJj62AcL3+3yzOvrEL183egd+e6iiOpP7kDqQ7zakNFmHELJH7kBF6ekBlVj8UvCA34Dqdqujt+.SvM+KD7VRWsqyd3020eteQwHuZoHv3ZcaydWWzOdSlK.ZyUQVFx7FJJAkfJ94+2GVgRPsOgG7O+4S5SPK5kCwxnPHgY74nX7Acofw3O29C74nT7wX43DJGePURB0.r9Dw+wufwiZ7gQIAZUR.WkD3UY.f+qu1ulwSBDqj.xJIvrZBLqFf4J+xu0Gy3IAlUSfY0DXVMAlUCvrvmr6efwSBLql.ypIvrVBLqEf4Gu6+4SX7j.yZIvrVBLqk.yZAX989809LFOIvrVBLqEAyUqt85VHH.hErM4HGrobzw5rKWQyMQPvDj1UDhepa20QGCg5VVXS+vnInECXskosoPpN1OrRLy+Ed52oBscl9cpDzIe9DQV7bNwAuxT1EAZv6zLRv7U6BYch81tdbkZN38H362OyPXN5mWsIuJSSlR7cP6g8u1Q9FkW0ucCam1RuAFJSRKPnbDWgs+1ndE15LxWgssz8.HrsCxxsisKVgeji0mJeeqg85ZEkcFoHbQUupf5ww2EpDPTkmXMjUjACZGYj1jvsigmbEVfRcLnMFa4pCJK01wuVoVWSWr+0DQgWvPxp7jeSjiA3WziTscxi517obBuMem+T2s464f8TE4BGlM.i0Is6XhW2ZOroMPghwWF1Co+I3CnFMbZSaK6NsrsHQbz2ftMilMwQV+jpBshmGh9kFBn7JUtA1Dib4Bw9lUdaXGuHmMY6o8jXKTF6KeYp9qugHCtRzb.RO+tW3IOSuW3QO5CRAd51K90EgTwpR9tRouZ7kOKpq+rXNZizcreWc1ETgFzeAeJfda4eYyyJtIsszf6Ajnn7hxzCNSdWcc550EfpOoKi5IPFsSfLENAxT7DHyRm.YJcBjY4iTFZk5U55Y2lslGHTac123OC2t5E9ezQNaoJ
      
      ulrik 2 Replies Last reply Reply Quote 0
      • ulrik
        ulrik @harris rosendahl last edited by

        @harris-rosendahl I only took a fast glimpse in the code and got errors and saw this:

        XFreq[i].setValue(20000*this.data.x);
        YQ[i].setValue(20-(20*this.data.y));
        XFreq[i].changed();
        YQ[i].changed();
        

        XFreq and YQ seems to be ordinary arrays so you can't use "setValue()", and you use .changed() on components not on arrays
        Try:

        XFreq[i] = 20000*this.data.x;
        YQ[i] = 20-(20*this.data.y);
        

        You also have set to callbacks that doesn't exist in you code
        so you need to declare the XYPad and EQFunc callbacks

        arrayedFreq[i].setControlCallback(XYPad);
        arrayedQ[i].setControlCallback(EQFunc);
        

        Hise Develop branch
        MacOs 12.4, Xcode 13.0
        http://musikboden.se

        1 Reply Last reply Reply Quote 1
        • ulrik
          ulrik @harris rosendahl last edited by

          @harris-rosendahl I know there is a thread somewhere regarding multi drag, I'll look for it

          Hise Develop branch
          MacOs 12.4, Xcode 13.0
          http://musikboden.se

          H 1 Reply Last reply Reply Quote 1
          • H
            harris rosendahl @ulrik last edited by

            @ulrik

            Thank you so much for the advices, my bad, I've corrected the issues, edited but still can't usable for this way.

            HiseSnippet 2532.3oc2Z07aabbEeojWWSJqDkfDz1KEKDZKnhkT2OHEEqagWY8QhPBsoEUcrggQxncGRNvK2kd2kxhQQ.1GJPaNzhhh1h.TTz.DzKsWJPOz.jfnCs2BPKP5kdy+IjCs2JP6a1gK2Y2kThTowQVKf9Xdy6Myu2adeLytSUWGCrmmiqPlra2sMVHyEEq001u4pMQDagMWSHin3JqeCgq1sMxyCaJjIyjuLsqLYOmPvymckqhrP1F3HRBB2zgXfeMRKheD0p5uJwxZCjIdaRKNtKnuogi8pNVNc.XLonrPajw8PMvWCQYaBQgLmecShuiaMejO1SHy4tpiY2ZMcdfMi+aR7H6XgoMTDpACDi7FNVlTDSoJrZShkY0P00S.TrpQJ+jLk+EDqPLI8oGYDlInCoHI3sGYlHN7lLF7T3gmLG7F.jxvAoywfzyIVyvkz1OpGJdlRbSaeracDX14gBiWgIduyKtpCvgs+hsP2CugKznuD4UTjkmWpXQ44tbtb4.iumuztHWoac6pHyp1VReeoPoaf8W0oUaGanQ9YCYXVPvHwphbgUJeWx8W+FJfrANPTIWudcrAHVLFlMwjhbcQcwla3huOH6ct6kS2G0gKUe2ZfRbaNdyU2wUJOAZIeYIhz2SZY3OW5Ryka+bRvC2DeGxcGpNS6e1KkmLGfaNwnyyQIFsedwFvTtnGUBaeWGqUQVV6.d84W+Fazw1XfS0Qx9AfMMW3xCkypfP9a4zwmXiyWGXxm3Xmuwb6GglFKVGBHWwxJubuIrAaNnQh4Y+wawtXKKmGDpEYGlMM694xR43VQ1yJHvMvEY2.mOghClpahr5fyOmz2QRUFdjdII+lDOZOuNwzuY94lWB7QSPaAEJRClGFZn+91QKEgr+JXRil9vnuv..Qn4LAH3PPn3yKoTb9TTCQ.62Li35VVj1d372IT8muOrfAoD8m6N2kCD5f91+b4NHHVfeYqhSGOb+k29qa3cAmpPGWRcIFgEMrHF2CaJ81usDifoKpwbALsetbglo.EvD4iVbu3qJLY1CT+AY6U5slGeH5NngnK2PDY7VPI9fj9eFlyTX+6GsVmJZ0Kb4Kv+4k3TRdWjTQqbhs.7CmbcmKsuU7+KgWrQSpIvL+vmOdVj3d52HzYHWTClOQeNxR8SnODaKHTVJzkPhE5m2HLky7P9OPu.mDl.GDLL8Y2w9ZN93qamm5EkExWHkrq50GXe8R4XgcGX2zZ4tGkf4s6zZGraD7XLBE3hW0Tb3UM4Kpavx1xwni8l1D+q2FaOrR8B8RQCUXmoGp.V8Cpu9L8puVyhXhcEHPYzuhHcEVVH.v81mhtl2V5BirvJID9S2YLDVMlvuY8252LFBqkXlq7KGCgKjP3O9uNFBWLlvG9Iu+GOFBuTLgEDd7eXLDtTbC1u6We3HJLMLUNwLC6GczEVIgN+IeqwP3Dqy+4uw3Hb704C+24yOFBWHoNKMFBWLove1UFcgW5yivkFfv+fMWCRdS26bufbHvuM10mPyojYM7tvAQX6jNq3ZXu646zNf2dYMgC7vlzoC2mMxFaELmOqXEXNoiJ7G.G6we.mt7Md.spYeBx+L8lA0.in7H8cbbAcoF4shcLIF0sPljNdwn2H73P4DUVpToRpJEE7w64O.xDebK9COE0VkQHyDih197harcPqwWge36L.E9XQqJcEQqbgREWVNlRDQcnlmAZLaibAUjSWSt.lYRtNm1u2I9XFhMrbPvVkarMAJ4vV84IodDFid9cLmLPLhEbNq0HdssPc4VImRrrbYM0hJxkhotWTTob4kJTnnRYs3lGnmREJTZYMskTEB7xyrr39SCaMX19U21zb1uqThCXMe.KaZah2C5bAkoycvwth83N5QysFcQPc4xETTURaVGfmh.W2OyXYX0FcC6JcLINqXir55ASYjgELSJKIWFLSEhaYmRrP4kJpUdY4DQEzNzzTJVtfVO6p1fsqgyVRap5IwjdQwBpKqHubAU4QypxGBMkXQYMMYY0xkiYsmZXwy4DCOVwmi3XPEPzS+EdfDuf0AKKoHBscZ2o80s2hJ2pziivR5LNYvFWOroGdF6W01YmiMA1C2U+3xXKY9kYF6iOS1LocANhMxNLGfB5CXlhaBaw+p9Jn2BEMV+nOUukiIl5aRmlNXaitBd931b1re669tevUZQLMsvUc7HzSFzWd8eptItNpiE6.Y7zEFC0SgW8P5m0TO9JOOt8YN0iO+e6tm4TuB7NmO5Lm5UjS8z+gm4Tuk3Tu89wm4TuR7Nm+jm5TurG6A6GV8+aNtp2g7pGUaCTO5AJMH6.a9XHJBaSriLfGZkrSq.dn0lNsB3gVs4zJf4qeLyidJ.vCshvoU.ymi+g7430OkB3gl09IpEN8GpdFwJNlcrP9w+t4TH2qC5Xv+wpoePZaXr6x+B89+1GSeTg3yIVk3azbvXbhAfQAguPvXuqfvzhruZdD.Om3F25Kn6avDby+BgukzU63tKd86GL2OqXrWsTLXbsNsXuqK5GuIyE.s4pHaSYdCEkfRXE+7+qCzoDT6Q3g+ye9jADzheYRrMKDQXl.NJlbPWJbL9vVuS.GkRNFKmjP4jCpRZnFh0GK9O9ELdTSNLJoPqRJ3pjBuJ8A7e6q+dLdRgXkTPVIElUSgY0PLq+q91+dFOovrZJLqlBypovrZHlE9n6+mX7jBypovrZJLqkByZgX9v6+e9HFOovrVJLqkByZovrVHley+X0+BimTXVKEl0hg4M1X60sQP.DKXaxQNXS4ni0YWFiFUPPvDj1UDhep4zw0.Cg511XqfvnInECXskosoPpFNHrRLy+Ed50oBscldcpD1Ie9DQV7bNw9uxT1EGp+6zLVv7U6.YcR71tNTupKdWB9A8xLDki9oUaxKxzjoDeczt3fqoTfQ4ECZW2wskzKigxjzBDJGwUd6uOpW4s1i7Ud65F9.D11EY601wCqvOxI5Skuu0v9criyNiTLtnp2Ff5ww2EzCIpxSrJxN1fAsiMRUHb6X3wWgEnTCCZi408L.kkZ638Up1wxCGbsRT3ELhrJO4WA4ZBqKFwp1N4Qc6+TNg29uyep61+8TvdphcAEyFhwZjVssvqauK1xAnPw3yC6gL3D7gTiGNUww1ocSGaRrE5snaynQCbL+mApPq36ineogPJuf9VXKLxiKD6ap+ZvNdQtUX6o8jXKTF6Kq4.Wu9ZhL3JQyAH8z6dgm7L8dgG8nOHE3o6UwupHjJVUJXoT5Km0xmD00eRLGsPFtNugA6BpPC5uP.EPusCtb5YEqPaK0+d.IJJunL8fyj2vvf5ut.T8YvxndBjQ6DHSgSfLEOAxrzIPlRm.YV9HkgVodkN9NsX97.gpqy9F+Y31Uuv+y1G9VS
            
            ustk 1 Reply Last reply Reply Quote 0
            • ustk
              ustk @harris rosendahl last edited by ustk

              @harris-rosendahl

              Line 53, column 35: This expression is not a function!
              

              Can you spot why?

              Once this is fixed, you'll see that anywhere you click/drag, all of the 8 parameters are changing. This is because you don't know which point is being clicked/dragged.

              The reason for this is that the overall approach isn't the good one.
              Don't try to set any parameters at first, and just focus on the widget itself. Put your knobs aside, the parameters will come later. For the moment, you need a way to store the nodes so you can find one reliably when you click on it based on a certain area around its coordinates. Hint -> store them in an array of objects that represents their position (but not only, you need to know if the node is clicked or not).

              Then and only then, you can start to think a mouse CB that can detect where you have clicked, and resolve the "is there a node under the cursor?" question so the node in question can be focused and updated

              Then once you have this and are able to update the coordinates and repaint the nodes, you are ready to implement the parameters you want

              Tired to press F5 in the forum...
              Studio427 Audio - Audio Instruments & FX Plugins for music production. Website - Facebook

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

              20
              Online

              741
              Users

              5.4k
              Topics

              50.4k
              Posts