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

                                    19

                                    Online

                                    1.8k

                                    Users

                                    12.0k

                                    Topics

                                    104.3k

                                    Posts