Forum

    • Register
    • Login
    • Search
    • Categories

    Knob.setRange

    General Questions
    3
    4
    283
    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.
    • Jay
      Jay last edited by Jay

      Is there a way of doing it the right way?

      This is my situation: I got 3 buttons (small, medium, large) and a knob (gain)

      when I pressed small button I would like to set the range of the knob(gain) to a specific value but I want it to be fixed to the value.
      when I pressed medium button I would like to set the range of the knob(gain) to a specific value but I want it to be fixed to the value.
      when I pressed large button I would like to set the range of the knob(gain) to a specific value but I want it to be fixed to the value.

      example:

      small(range):
      c_wetKnb.setRange(-100, -55, 0.1); // I don't want this knob to go over the -55and I want the default value to be -10

      medium(range):
      c_wetKnb.setRange(-100, -75, 0.1); // I don't want this knob to go over the -75 and I want the default value to be -10

      large(range):
      c_wetKnb.setRange(-100, -10, 0.1); // I don't want this knob to go over the -10 and I want the default value to be -10

      This is what got so far and is not working for me

      // -----------------------------------------------------------------------------------------------
      const var smallBtn = Content.getComponent("smallBtn");
      const var medieumBtn = Content.getComponent("medieumBtn");
      const var largeBtn = Content.getComponent("largeBtn");

      inline function onsmallBtnControl(component, value)
      {
      if(value == 1)
      {
      rsLbl.set("text", "Small");
      c_wetKnb.setRange(-100, -55, 0.1);
      c_wetKnb.changed();
      }
      };
      Content.getComponent("smallBtn").setControlCallback(onsmallBtnControl);

      inline function onmedieumBtnControl(component, value)
      {
      if(value == 1)
      {
      rsLbl.set("text", "Medium");
      c_wetKnb.setRange(-100, -75, 0.1);
      c_wetKnb.changed();
      }
      };
      Content.getComponent("medieumBtn").setControlCallback(onmedieumBtnControl);

      inline function onlargeBtnControl(component, value)
      {
      if(value == 1)
      {
      rsLbl.set("text", "Large");
      c_wetKnb.setRange(-100, -10, 0.1);
      c_wetKnb.changed();
      }
      };
      Content.getComponent("largeBtn").setControlCallback(onlargeBtnControl);

      Joansi Villalona

      orange 1 Reply Last reply Reply Quote 0
      • d.healey
        d.healey last edited by d.healey

        setRange() can't be used after initialisation has completed (I don't know why) but you can use set("min") and set("max"). Since the minimum and the default value is the same for all of the modes there is no need to change these via scripting and they can just be set in the interface designer. The only value that needs to change is the knob's max.

        This is how I would do it

        HiseSnippet 1157.3ocsW0saaaCElJIJa1atXcXWtKHB1ExHooxNMsCKanYw4GXjkDi5zfMTTTPKQYSXJRCIpT6UDf9Zr8lrqVdT1ivtZ2tcn9wRNyIwpCiWX6yee5SGd3gG2IP5PCCkAHiJmOYDEY7olcmHTCZMfvDn16iLdf4IjPEM.mnZuIiHggTWjgwxGoUXTYET75Oe9dDNQ3PyUgPWHYNzef4yT4Z6r6wLN+PhK8bleAuextscjhVRtLB3yxl1nQDmgj9zSIZ2VxDYr5AtLkLnqhnngHiU1S5No6.4aEI9eAKj0iS0BMPcAfRTenj6pYrVKp0.F2sS16cHBPoSdVX4jrvWXdBykMUed13yhMfyinX9vXo6hdMte5YOO5YTfdqjPuGZ10IfMRkaQysOwrs.1n7HvVPQZk3KZoubEyVRvCgZSexP5gAfvzHrdps8F3sssquSsp0pFWDroK0iFzhv48fMhPKUPDMwLrOEpvWRBvCExd3uCmAbeppkzejT.BVqcLXrwZ2LjdQJEH.Q8pWClREek8quUb1K1kDjxbuw84dyYbu4849Vo7Lf1Gyfe4ICvVLHH6cvL72h2B9Z80qWq56pUECqLfY2GvqstEa8F00nOabaFp8VnBj7rbrky.hnOUm2dg9G02o5UZRwDblfh8hDNJlTfugaVNIvrAje4vdzTRxkNDNl4NF3X5CdSlvkN9LurXpuC9wO9HpBGqGK8vNblyPpaZ.I.k7IyCak8DzxoOE8J7sLky.Hi4Ntdt1BNnWNjPJ19alUodoqhzoCq07IiWaC7i1d6r7UwUu.JY3NyAyFKBlOqbX1bQvrg8si4T0Wk3Q5WUuZ51nTbpTQOSXUu56pVo5UUuoEOu4YJsngSClmUcS0f6HLKQjeOZPVsRpePukYads5h07xIoxufiRQaASc1HZp7c28EkdzQ2GNkffqp31bOHsMWx4HDC.ohYZu.TL6QFlFw2cThPa9gG5VYglem2sFdWNykFDG9GYF2H7lA+UWidY68IJhtIeZZ.RMinAJldGvXe5kvsmIs7qXtOMbnRNJNOk1hAdGVfL037G4t6NIW3zcCHtL4QAxnQYaOkA4lEP9O5W.42+eE4sJfbmKKh7Y2Ix0t2sfbbutHiA5GplnqtWM1QjOy0kS6HCY5COE1v+cXVnQcY+b793u9K50u8b+hyA8SWC8F.wU+q+NYEF44wFGO.iGi6Gp.t01GlqAY74luD5z.WyRh3Jb3P.GnQOz78bYr+oVtXlBm2e70n+8LAvjIR2HNQM63J5YzRMneQJNWf9teA7BNoX8bIlgwdgGwZQo6CM6nuEY97co4vW3jy+27MchvZlG34QcT4jcEyC+wOzw+JAUdgLRwD8Og.kMPQj4oQ9cgAjcn.SDBJOT2HaIcerDY6rFacoB2XAcMXpwFZYiTiMxLh7INAx2jNPfdlyONVCvIQ7n2Uf+C.Him1BSya3HB6MNN5Dwi.lO+HZV5H1pzQ7jRGw1kNhmV5HdVoi3quiHz+qiuORI8SNV.J5bP7UGFFGHHPUUbEH5eDfJxt.
        

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

        1 Reply Last reply Reply Quote 2
        • orange
          orange @Jay last edited by orange

          @Jay
          Here is another example with multiple version. In this example, knob value is stable (in order to prevent from possible crash problems), but buttons change the range of the controlled parameters. On each button pressed, it changes the range with predefined values and recalculates the new value upon the knob's latest position. So one knob, controls multiple parameters with variable ranges (Simple Gain is used in this example) 😉

          HiseSnippet 1980.3oc0Y08aajaDeW6rswpmKxc3d7dfPOzacqhOsR2WnGJhh+HAFo9CD4jb.FFoT6RIwy6RJPx0NpAA3dnu2+g5CG5eI8g9GPe3tmuaH49AkkrpbJthKxFIhCmY3uY3LC4PehfGSjRtvyeiSmNg34+dA8mxTi2cLlx7NXOO+FAGez9O4ni2IxamoSvRIIwy2e8Gqm2ei63Y97edvN3TLKlTSxy64bZL4OSynpZpmz6IzzzGgSHmRyb39S6cPLmsKOkmCXY8f1dSvwWfGQNBqYas.O+e09ITEWzWgUDom+c1gmLs+X9ULK+OmJoCRI5AQd8AEYI+HdZhFwZpd6NlllbRoMK8.sbRsGXcqG3CCNjlPqnW6ItmYBTsDt9C+0VF7hbgW6EBu1KBd9Nv6NV389A8iEzIp5YzX62Db.SQDCwvVfKrr75s1VuWvtbfClZ6L7EjGIfAURD9Esa2BE0o8Ve0lM1rwm7In9DERwQJQNQ++SDTFPXLAcINMmHMyAifsLIOkr8lMzeSAyJP6syiQ+IzPbpjXzV8LRZ1jThNvAXvDks8HhZ+gCIwpvl8qlsoFF0hkAjdBiO.DpzD.w1kmMgyfAgMO7gGbzK0QnMqwOrSPLPbPtRwYHAYHQPf.TIBVdL7qPfmtM5zwTI5JHjDocKHpxHdlVZBVNUanRh0ziyEfFToSQ4fyEIvrQDWbZHriY4j.VOawf8oZthZtUqMaftwOKQzNu8h1s4VmOuCx.aqWAMJkO.mBVHNVGagg.VqixHyAJD3rxxSUPZPFgIobFNEc0XZ7Xi6SZTXJeDMFBYHJ0TiSbNmzwSTzBmD5ryfPuOq84sPnytejINTO3rHyWNeo1pU3NsMB.B2B00pHid51d0jOpP9tkhaVb3qmipbW0gIxJGWc7fjjBgv0wDBxnxYMNdvPaazzRfhYYfZM.6IF0OLmEqcSlbMcrIFcVFk0B7zu5b6tBRxsxQUerDRFylfU5hL.RUiMJgQtpRQRz.RJ+pMaPYoTlyBv3hLbJEBpOkavaXMkmqy2aYMrs1rwqs1.r2lKXVpm09bze.cMIP+dTnc1nyQ2uhQc94abcoUXv3aG.NUH7Cb.CE7Lz.dgUbgN6WOy.3LAivXX2f.R3jgWNuo3jIYVOYFOIGbHSvB3bDnbmzHtTANOHhWNkECwuDFZJOGEa790IEy6oxmj.U2MVnDJglsqylbXs6AVgQEEMLJBv5GKls.BkMxxaJG.dQR3o7mI0AKtIIm4FHoiGsAKkKi.OvMXzTrz5uLUpcWCCAP6k0S0kHLlR3VyoVxLU6GxEPhLjjW4Fq3DBUTDDbLGXiEUMLRZiO0wg.dpHr0L3IB.y7wdW5DwY8HEANNR1YUkL55R1cUkry4y5UnCCgS1JLfWWmJuawQfliHCadYzeD0DxGtLpT7EwTmBl5rLl5VvT2kvz8gOvod5YLr7FWHWed61vYXOToDTHWgD5P+EzD03VknciUPB8+zp.4qB+6QRwSaYrhFuYYU.mOaCT4LIXwkmm0BxcSHuZlDtmYRMmIWvl6Am5P0GjUw4QNQrwvMAfSyMhIgP6ppH1X9KIhoE0WpDGyRPeSNbblzMIAMXJT+fDeAjXanZPHxF7WIakETdppl90Nov8ZDaazxwCqM84RUcrabrJuLOWZKqUWBxVbSZka40w9ppZzUW84l8J.kPg1NcwcQZhPGUnuPhfmtagJBu1tp8JaWequrFUkTN68F6al89WPr6HZXZvq09PPopw7DzX3lesfrA31e0WPoR3wX8AifuRNlNTYO7UnuR6J5nr6FUEUWfEeciwZx5eprWNSGUdLKbqFutwFMdybyLb3hlpXkRIhEMqtCKwRDKjkmMfHJ8nE7AMZLamLMt4NYbazJ1dwSGF4rCXT0wSHUisFYIk1dUFmKoZixkpwXV.a0jlu8IuhKCq6yqfcfUkoMpeaQaT8SoIDgGMQ2CUUmDdFWRQ6oe2OD9Odf2Mo.aHuQA2Mvd69RoC7M81t5R14sVxtyfXSG4dO6f8vJrtKxB+.3alPDJpdW0eOxkP641dJ2HXOh7BEeBzocUWCfSakbUupZQ+tI8lVM3aOtmmittqUWaV18JlQRKL.y2ibziWSG83E16J8oTUDP+sdiIzQiqeUgu8w8FvE.15S+qy7BDVpOEmPyktz8Wedjsr8SGngbg1GcMn4874fVudvklf0wcAKsXA.L9iE77I0Z3tKxqsrHFG2+W+KKr00Eai94Gay+VI2K3P88+wpYeFG8ESJl.JHNy6kneSDnwV0T2Lo+meamE8zSqJbe+fSnp3wKFuqs.7Bg2+bi2hWJay.6i2TC16D7nu9s8Ywhd6dVrec06VVcoSCTlgvM7xk+quO7e+.yMTKH7W96+y606EyFa965sf21ze8Ysq0WM65+xKPt73.yKm8NSb6GDXbruKAXyF+6N.9d55g+B.tOkmqf1dNDCs+AU7CNJOqOOWDSzOmETvVpuOyZ5qyXG2t79M8IrDyfeD9TLYjdrewjQkS9+k0HCGK3uL1dmKcp4cMT.6lY9iPrQvg5wnp62o8MYzD5Kii0k9tO3cVrDct0Rz8VKwmdqk3yt0R742ZI9hasDe4RjP+2e4g4JdlMdGHbx9l6356uOS2juIz26mPV4e3T
          
          

          develop Branch / XCode 13.1
          macOS Monterey / M1 Max

          Jay 1 Reply Last reply Reply Quote 0
          • Jay
            Jay @orange last edited by

            @orange Thanks buddy, you are a genius

            Joansi Villalona

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

            10
            Online

            983
            Users

            6.6k
            Topics

            60.8k
            Posts