HISE Logo Forum
    • Categories
    • Register
    • Login

    LAF SliderPack Bug

    Scheduled Pinned Locked Moved Unsolved General Questions
    35 Posts 5 Posters 1.5k 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.
    • d.healeyD
      d.healey @ulrik
      last edited by d.healey

      @ulrik Use Content.getAllComponents instead. This will return an array, just use the first element.

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

      1 Reply Last reply Reply Quote 0
      • Christoph HartC
        Christoph Hart @ulrik
        last edited by

        However I'm not sure it's a good idea to use "Content.getComponent" from inside a LAF, someone else have to respond to that.

        Nope, bad idea. The paint call should be as fast as possible and getComponent() and especially getAllComponents() should be avoided as it has to iterate over all components and find the one with the matching id. If you have less than 50-100 components this might be OK, but for bigger projects it's recommend to create a reference on init and then use this instead. If you have multiple sliderpacks, you can create a JSON object with the id as key:

        const var SliderPacks =
        {
          "SliderPack1": Content.getComponent("SliderPack1"),
          "SliderPack2": Content.getComponent("SliderPack2")
        };
        
        function drawRotarySlider(g, obj)
        {
            var numSliders = SliderPacks[obj.parentName].getNumSliders();
        }
        
        DanHD 1 Reply Last reply Reply Quote 2
        • DanHD
          DanH @Christoph Hart
          last edited by

          @Christoph-Hart Thanks, I'm still struggling to understand how to implement this into that code.... :face_with_tears_of_joy:

          	// linear interpolate each slider
          	// unfortunately you have to hardcode the slider amount
          	// (if it's dynamic, use obj.parentName to fetch the parent slider pack)
          	var c = Colours.mix(l, r, parseInt(obj.Arpeggiator1) / 16); // this is normally parseInt(obj.id)
          
          	g.setColour(c);
          

          DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
          https://dhplugins.com/ | https://dcbreaks.com/
          London, UK

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

            @DanH Console.print(trace(obj)); Will show you all of the data that is available to you in the obj object.

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

            DanHD 1 Reply Last reply Reply Quote 0
            • DanHD
              DanH @d.healey
              last edited by

              @d-healey what am I looking for? I was hoping something like this might work

              	// linear interpolate each slider
              	// unfortunately you have to hardcode the slider amount
              	// (if it's dynamic, use obj.parentName to fetch the parent slider pack)
              	var c = Colours.mix(l, r, parseInt(obj.parentName) / numSliders); 
              
              	g.setColour(c);
              

              DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
              https://dhplugins.com/ | https://dcbreaks.com/
              London, UK

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

                @DanH obj.parentName is a string (the I'd of the parent control) why are you trying to convert that to a number? Use Console.print everywhere to figure out what the code you're writing is doing.

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

                DanHD 1 Reply Last reply Reply Quote 0
                • DanHD
                  DanH @d.healey
                  last edited by

                  @d-healey I'm not.... Maybe this doesn't make sense without context...

                  
                  const var SliderPacks =
                  {
                    "SliderPack4": Content.getComponent("SliderPack4"),
                    "SliderPack5": Content.getComponent("SliderPack5")
                  };
                  
                  function drawRotarySlider(g, obj)
                  {
                      var numSliders = SliderPacks[obj.parentName].getNumSliders();
                  }
                  
                  SPLAF.registerFunction("drawLinearSlider", function(g, obj)
                  {
                  	// ID is the number of the slider
                  	var a = obj.area;
                  	var v = obj.valueNormalized;
                  	var l = 0x7FE903D9;
                  	var r = 0xA502A3A3;
                  		
                  	g.setColour(0x7302A3A3);
                  	g.drawHorizontalLine(a[3] / 2, a[0], a[2]);
                  	
                  	// linear interpolate each slider
                  	// unfortunately you have to hardcode the slider amount
                  	// (if it's dynamic, use obj.parentName to fetch the parent slider pack)
                  	var c = Colours.mix(l, r, parseInt(obj.id) / 16);
                  
                  	g.setColour(c);
                  	
                  	if (v >= 1)
                  	{
                  		a[1] = a[1] + a[3] / 2 * (1.0 - v);
                  		a[3] = a[3] / 2 - a[1];
                  	}		
                  	else
                  	{
                  		a[1] = a[3] / 2;
                  		a[3] = a[3] / 2 - a[3] / 2 * (2.0 * v);
                  	}
                  
                  	g.fillRect(a);
                  
                  });
                  

                  DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                  https://dhplugins.com/ | https://dcbreaks.com/
                  London, UK

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

                    @DanH are you trying to get the index in an array?

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

                    DanHD 1 Reply Last reply Reply Quote 0
                    • DanHD
                      DanH @d.healey
                      last edited by

                      @d-healey ok let's rewind a bit, this is the line I don't understand:

                      // (if it's dynamic, use obj.parentName to fetch the parent slider pack)
                      

                      Am I supposed to replace obj.id with obj.parentName? And don't I also need to replace the number of sliders with something dynamic?

                      DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                      https://dhplugins.com/ | https://dcbreaks.com/
                      London, UK

                      Christoph HartC 1 Reply Last reply Reply Quote 0
                      • Christoph HartC
                        Christoph Hart @DanH
                        last edited by

                        @DanH The 16 is hardcoded in this example.

                        var c = Colours.mix(l, r, parseInt(obj.id) / SliderPacks[obj.parentName].getNumSliders());
                        

                        @d-healey If you're using drawLinearSlider to paint SliderPacks, the id property will just contain the slider index so it's valid to parseInt() that bad boy...

                        DanHD 1 Reply Last reply Reply Quote 1
                        • DanHD
                          DanH @Christoph Hart
                          last edited by

                          @Christoph-Hart Thanks! - still a bit janky, however!

                          HiseSnippet 1760.3ocwX01SabDD9LvQqcJMPZj5WWwGZMINN1.kl1HZrM1j3FCXESnQBghVtaO6s9tccuaOCNUHk9GJ+EZ+Ik+Aoyrme4LuEGWhp+vYMyryrOyb67xd08kVrf.ouQhj62qCyHwWY1nmP0ZqVTtvnZYiDoLaTmrekF6SLJ0qCMHfYajHwrOEkmH4bF5eu+IkntTgEaDKCiCjbKVMtGWMha8BOm65tM0lsO2K1pWuPUKoXKoqLDvxrl4L5PsZSax1khKaFSiDyWwlqj9MTTEKvHwbkj18ZzRdhHZ8GvC3G6xPh7FM.CEwdaoqMhXjqwVs3t10G3yAFfUpOJBLaTD3tl6vs4C4OJRrnV.YjFwiGIlYb3M6XvKeb3kKF7tDHMSLHMWDjVxrgkOuiZjDDO2xrpPw7cnPXONThVqwLqYZtkDVgPk0i1lssOPLTizajKWFB7XkGmJED5CTjtTehK0grIohnIWvxZ4y.m4otxiotQFslT1tnvdaFyM83J1vkay7qCuzxCFXv91jo1R50QJ.hzKGaMKeNsqWq31wzKZmqIsntSxVFP1L0elhPFaG94IAEYRk5Lvn58OqOqIO.hOaGJrTboH8x19zSpAgBpejVKmg3LPXyLD4w+9JvFm7gOjTsLgGPTsXDQn2wLehzQSEn0KURDvTvCAUxRAu6wQr51mUWpaHaWouG0k+Flceot5PBlSDjsCWztOa+XrOFzCXmLUxlYCP+DYmdfzSZwULHpABQW4YRe9affBDUAmJM8v0Nh7PxpYHzCycD9b0ivEqcHWsaS33AlNRW30AgQsZMzgfkDJbj9pPAHysGomLjzh1kQTR3eeaKoMKVHfP8jgBkVwzbGBW88AD6dBpG2JCILfoiCcfXiPgI8nYbXJXGQaDwefovZCqDgSLdXEKd3wOMsaFheFTk.FbdOMZWt8JfmleiH26SRoXGyNbbHdDdxZ2PunUDjdkUdLA7tcq7ajZU2sBrSi+VwRu6oRBde5tjeYSRdvIfiOIoGl+H.N5+tOYvqEx8HoymMG4AjtnhI072bj3GnU.jbF95m4FvNm0hV2Uo5nMYUXStWzlbVJLn1LqCTk9ELKUZZzoGMM79Cpkhrohltv4mLj0QwD3WpyvjyX4VneegDXcdFrvAIQDoXWohsmHsNOJ0YoHmWjiykJCys8kttL+KUL1cw+5TLcTZZFhNya3BgRtiWG27pqiGuMiUTolXKTJpJ3p85vDWUyGi90mvZ98QEr8JcE+6zuh+n.pAGJtufYrHrgF5.DSbavX1TE0HwglardV3W4hagOqAO1sK7PjEoKgzkQ5rZ5e54Y6+y495+JiOpizYKBOJgz0P55EKFgWMHmMBje8XfTCvuv74B4wCg1f164JX7xpkQDBMn561PnnCyWwwnbhxrtvvBQc6RZVlEzVI6niK8qaCs69DhLmNZqqVn2Ph2RKbB2V0ZHiBusPKFuYqXSnzqfW7Iadz+nXmpFLXRx4e26d2GP9PehNMfR0wmAxiFaeeTgNCdWW0FiUE86vZ1jSgCW3ogQN1W+QilWg6j6uJDn5gGFmWuPCOtssKqtLfiG1iAs+dDbMMgZJFi4iFFig7bEBBcb3mpG6BR78BT.tp5ASigg+WBkpsYNzPWndbavNPmh1L68k50ecNMT4DpZB8SPY21DqbhvJxeMt3jXKDWc8HOmyfiM.1rS7.X4u1AvhkV9MW0I9RgJEDf4ZeLBE8YctC9FWcVSLarf4KXP4xOYSD6nx4CmWLAbBLxsLQKnwxzghE0FnQa9U.i2+jIIb.VAlq34rdA+WhHfyzgwr0IFmy.e2EiFK12.Pd4wxRxS0l.p0v9iPFbulgrmbGJFTVvbOnmYW1Kf9lroyaRZ1nEjU5xltSX2xrhfBG+2mytNW3569bWHb3w2GJaESv+aMg9XX8.lqzhq5cQrNpr3X3049kJhvA1u0BqeyPOw38Nl0XhlpVSNZai61A+JrauRV+lg1XxRKVxDtTrPvbavbggAkSRZ9kZnu0buPUmP0Mj4Vxbm5Uf5+9CL3ExUlv79aiFphv9JLy0TLMVJ27lOS5ZeIoqW798KZtizNzEapE+yMfeik9Bv14w61g2iW.s46EOJci8MHlTHtjYcNbCsKGiybIXDG08y.FGNuPEGG3DzH.Nm41u5yymow.tMjhKZtCEFNBFUR29ElQDZUDcnAu6PhYvpyQz4PZLBzfIr0De.90WXdjNQeg4GHDFKyxW9ZqnyZ32F5K0b.LIzeVrjl6fzjQWEvLmd3Na9qsrP2+A4MLtbcVcJzYsoPm0mBc9goPmMlBc9woPmGcs5fegvhgJoWT5.vndE88dRjHpAr9Tnw+16qWeJ
                          

                          DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                          https://dhplugins.com/ | https://dcbreaks.com/
                          London, UK

                          1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User
                            last edited by

                            Has the bipolar fix been merged yet? Just noticed this on my arp sliderpack

                            DanHD 1 Reply Last reply Reply Quote 0
                            • DanHD
                              DanH @A Former User
                              last edited by

                              @iamlamprey no but see the snippet for a workaround in laf

                              DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                              https://dhplugins.com/ | https://dcbreaks.com/
                              London, UK

                              DanHD 1 Reply Last reply Reply Quote 0
                              • DanHD
                                DanH @DanH
                                last edited by

                                Need some help with this LAF. Trying to draw the rectangle with drawRect on a bipolar SliderPack (+/- 24) and it will only draw on the + side when the Slider hits the max value (24). The - side is fine, as in the uni-directional SliderPack below... Thanks!!

                                Screenshot 2022-10-07 at 10.27.44.png

                                HiseSnippet 1307.3ocsW0rbaaCDFTwzSoRSmlN8TOgwmjSTTnjr7OSlzZY8iiScrThbRsGOdx.QBIgXR.URHYqzwuA8de.5KRO1Gm9Fjt.TRjxV10VyTdfh6t3C3aWrXwplABGZXnH.YXc3n9TjwWa1ZDW1qROBii1qJx3aLeCITRCvQp1YTeRXH0EYX7fcUJLrVBoe9meZGhGg6PiUgPePvbn6y7YxXsM29mYdd0ItzCY9IF8ZaumifWQ3IF.74Al1n9DmyHcoGPTCKkIxX4ZtLoHnkjHogvX1Q3NpUOw47nw+AVHqsGUIjG0BlnH0nJ8XdtMm3qgHjwRMi87GD44eu4aXtro5ii.eq1.NFQxXfQpaiR4uGTxHAkVJhRO1rkS.quL1hhOOzbONrgzg.g5jTIZrnT+foYEALBtLmO4LZ8.PXJhLqaamECuV8EoSCg6PIdHI.2xi4RCZBw60vuDOAdWprhvuufCBYVIwXVAPOOvktCfKo.mdlEu49kqm.oS.EBl6KbHd6KDmUl6VmR8xL6ZpvT3NAJsdr4BncYpD45C3NRlfmYE2.x46y3TRPD6VIKtyDicyhEs+zpo+szVO+438phYgXYOJlOvuMbXPzQKEpwk1RwHBPF.RNBPjWDoZ3XUCIdCnGHB7IdrOScAJY0MWnJ9nx0yXewFEsKTtX4h.aAKJd8JQ.6yfqAdCvvLjSJdJ943BYwjSrOU8tvoqNcd1Mf3xffPc3bUlSrunVknoKKNOrYaqckbLI0OZAyGoOusczbv5fyLD+iuDme0zVfCaQNI+o.00+7T7j0F+Dbl74rwOCOTwSKs9WFa9YZ.fkKsrRaQ8BoWY1hF2MAMdQJ.KxShVjK0tXGvudG0Qlgnzckf2QS713fmdrS1KxlW4jWpSDhyfUyv0RVzIJSyXJrvoLyea4nMpWaK6hU25NtsLwAz6Bw4Vp.0zch4jcMNsXZLaBt4E5lvnaKzYggmqF+JcywuBq9hIgDrfefPRavynOHk9xz3qZpSm4ZScpNP34QClqY0EGA2FvLQmSyh0AmoCDprNa45kuakqchJxjXfB9dblrQe5X45BOWUYX02Wu3NZbUJnLepwLDnhTWj+6FWjON3hXvD8HyDYqHsafLLMT2U5RjDjwIlquVN0S4J4x0r59vWGODd8IkbmZUgOa1Dd0tbY38tJ41J4gwxuWIKut8H9dOIYoXR9vYI4qpI2ZqOsyuzXCF75hFpOeZ6M4C2n0qau4Pk7fs3G6cbI1gEKIZDrK.3nFut85sJV5s1M7.SOUKWY8218WandsUND586UUsHvceiCuPHuOMPxT6rFUoCgdOhtH0xrJM7LonuN9O9RI3lz6wNvEIaqYTrvwa6mrKnM+KeRhgt41P8i9sfykQoFmybk8TgniRgP8nrt8jJo+FFZbgfB.9k+Cj4WPynVo8OQKetdhS3EKeO1htIuXz12.y9ccGaWqyDnmHg6.Ohb1FkTcDN1.bbbltSTcfvCYxQI6X7dz8j8s18zckhO1rIS5za9bL0b3n5D6+CbbbOmOxrVmNPE2XBtjY8iVzFL+OV92IFHY7tugHCXPdf4AC7aAoUNTX04b39Z09cJUtUjrsRVEAZQ4tZgu.OiMlWIaL1X9IFQ9Dm.wGchpdn5p8qzZ.Nw0MwaA+aBPFmeZwBS6b1HenA6O53nb+mA0OmOlBK.lhK.l0V.LkV.Lqu.X1XAvr4shQ8eaJOPJ7iNN.JZVSWV0vnFm.YV5rPz+NhzdOO
                                

                                DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                https://dhplugins.com/ | https://dcbreaks.com/
                                London, UK

                                DanHD 1 Reply Last reply Reply Quote 0
                                • DanHD
                                  DanH @DanH
                                  last edited by

                                  @DanH encountering a similar issue with this snippet. Only works if the slider is at max value on the + side... Really strange as this has been working fine for weeks and I haven't touched it!
                                  Screenshot 2022-11-22 at 17.45.50.png

                                  HiseSnippet 1112.3ocsV0uSiaDDeMfqpc6U0q5d.VweYNBFGBkODh1P9hx0.jdg6NjhPmVr2D1C6ciVuIPtS7t0Go9FzNqsC1vEN0F0KxxQyG+142N6Ly5NRgOMNVHQFVmMYHEY78lcmvUWU+JBiiNpAx3GLOlDqnRbppZSFRhioAHCiEOTqvvZITxu+5WqQBIbeZtJD5sBlOsMKhox01o5uyBCaQBnmwhJ38lUOxWvqKBEi.9rnoGZHw+Zx.5IDsaKXhL9llALkP1UQTzXjwR0DAS5dk3Fdp+ukEytLjpEJi5BKTp5Vhv.Mi0ZQ0uhEFzY59NFAqRm7rvhoYgWXdLKfcu97rwOlX.minX9vXgGRuEe.8JWjddEn2LnjQAJsTJkdtYWeIanJ2hlOem4Qb3voOAR6EoRpunEBWzrt.7fqbiHWSaIAg6Q3rkmWIL7Zk8rsgTerBOlHwc6z9fV38wSA5Kov9osvmD1VHt9.dPKJMzA.U.SHKfJ6.mWkKfb.UUWDMTvAAmkK3yx5HZamDIWIc.SWg0ZD2WwDbmkCjjaZy3ThLEyxkv8mZbPIr3xOrh8mrsszQl.wCT3R.VtWppwYpFSBGQOQHiHgrORCfPZMvMVyIcIli2saWwaiCpbPEfMfEcT+Mgj8Qf8vVEhuCoWkKvqi2nDlzy6B86MtPScK3g0G6LF+K6iKuhs0mrsrH8JeAD4j+VEOEJ9kXmxtd30vi0gwJQ+94lWKA.X4NKKaKZXL8QqVpeOEz7frADjWlFj6x1nGJIALH22B52b54cay5o62R3xvAu947sa0bWuJM1MUUYOuKRSF8AHul5qbHZ4Gk3Ne5Bkm3dsXDGZxzPH7AgTmomIIwor1w0WOyU8xlaVay9N8qBEH5n8YUbIkKqr2zRArfehPQOk6nqFrruyF+XS86OSa55SoHLjJmoY8XI4WBnCeTzkTYIbRE18NB8pOb.f4SO.n37I+z1kBNJ3GwYpSGR4O0TKTVOldXQFqfvqRFU7SYiJxymHFLU3YlERvnDpmO78EUCHJBxnm4Va5tCerm6MdrZMZ355dVmD4lu6zW41Fja2QdXS0piCNqxt025OFLYj1U2C012lU6cqNpoJ3CIx0t7zWc4NiR72EgdyQMzAIix.6gczPpTwzIKiFzwvkEoS6rLaPiuVIFl3a1HDX9++gM3s4aNZ0I2KzQUMp30VN+YDofqNUQe9rWXpuHXTHQ8vqBz2+kY.JOdv7W8LVdLSMo38i+uc+v+VJ9byNLk+UyliKLCNBGMeM3X1spOyrY+9PyeNAWxr04ectBEACjTL9fiIJICNeMOYTTWX3kOEhNmCyYAcFKnajRk8zx5LPWJOHQ3ugeYFKqkMxLVdpQTDwWJdueZ6m9d6uMQCvIdxmrXAe6DHiuuayzzy0CEAeBw6880a+0fd6YiYi4.Sk4.ylyAledNvr0bfY64.yNeQL5ud6fQJQTZ6.nnSyjYRFFM4DnxJoJD8Or4D+2J
                                  

                                  DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                  https://dhplugins.com/ | https://dcbreaks.com/
                                  London, UK

                                  ulrikU 1 Reply Last reply Reply Quote 0
                                  • ulrikU
                                    ulrik @DanH
                                    last edited by

                                    @DanH works here, I'm on develop branch from Nov 15, 2022

                                    lafsp.gif

                                    Hise Develop branch
                                    MacOs 15.3.1, Xcode 16.2
                                    http://musikboden.se

                                    DanHD 1 Reply Last reply Reply Quote 0
                                    • DanHD
                                      DanH @ulrik
                                      last edited by

                                      @ulrik Thanks - yes worked on my other machine too, weird! Got round it by using fillRoundedRectangle with 0 corners...

                                      DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                                      https://dhplugins.com/ | https://dcbreaks.com/
                                      London, UK

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

                                      29

                                      Online

                                      1.8k

                                      Users

                                      12.0k

                                      Topics

                                      104.3k

                                      Posts