HISE Logo Forum
    • Categories
    • Register
    • Login

    ExternalData SliderPack seems to be limited to 128

    Scheduled Pinned Locked Moved C++ Development
    16 Posts 3 Posters 1.4k 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
      last edited by

      Actually it affects sliderpack data objects as well - I'm sure it never used to.

      const sliderPack = Content.addSliderPack("Sliderpack", 10, 100);
      sliderPack.set("min", 0);
      sliderPack.set("max", 100);
      sliderPack.set("stepSize", 1.0);
      sliderPack.set("sliderAmount", 200);
      sliderPack.showControl(true);
      
      const sliderPackData = Engine.createAndRegisterSliderPackData(0);
      sliderPack.referToData(sliderPackData);
      
      sliderPack.setSliderAtIndex(127, 10);
      Console.print(sliderPack.getSliderValueAt(127)); // 10
      
      sliderPack.setSliderAtIndex(128, 10);
      Console.print(sliderPack.getSliderValueAt(128)); // 1.0
      

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

      ustkU 1 Reply Last reply Reply Quote 1
      • ustkU
        ustk @d.healey
        last edited by

        @d-healey Oh good one! or bad one...
        This explains the issue I have, I'm pretty sure it's a data object that is passed to the ExternalData so that object limitation has a good chance to be the root cause

        Can't help pressing F5 in the forum...

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

          @ustk Have you made a github issue?

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

          ustkU 2 Replies Last reply Reply Quote 0
          • ustkU
            ustk @d.healey
            last edited by

            @d-healey I'm trying to fix the issue atm, but it's not looking easy...

            Can't help pressing F5 in the forum...

            1 Reply Last reply Reply Quote 1
            • ustkU
              ustk @d.healey
              last edited by

              @d-healey adding sliderPack.setUsePreallocatedLength(200) to your code seems to work.
              I still have to test with my particular case

              I have seen in the source code a preallocation limit of 128 when in backend. This limit might not be sticking around in the binary, I have to test it.

              Can't help pressing F5 in the forum...

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

                @ustk oh interesting, I wasn't aware of that function

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

                ustkU 2 Replies Last reply Reply Quote 0
                • ustkU
                  ustk @d.healey
                  last edited by

                  @d-healey But it doesn't fix my problem... Opening an issue

                  Can't help pressing F5 in the forum...

                  1 Reply Last reply Reply Quote 0
                  • ustkU
                    ustk @d.healey
                    last edited by

                    @d-healey Ok it's definitely buggy... I just made it to work by using the preallocation thing, removing it, and setting the nb of sliders manually, and after a restart it's gone again...

                    Can't help pressing F5 in the forum...

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

                      @ustk Yeah it's giving me super weird behaviour too, and it seems like the data objects have a "memory" so even when you change the number of sliders it shows a previous number that was being used.

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

                      1 Reply Last reply Reply Quote 0
                      • ustkU
                        ustk
                        last edited by

                        @Christoph-Hart Any news on this ExternalData SliderPack size limitation?

                        Side question, is this the best way to send a shaper curve to third party C++? Or is there another data object I can use to directly send an array of values?

                        I am also thinking about directly sending the curve control points to C++ and compute the curve there instead of interface script. But then how do I send the points? external table?

                        Can't help pressing F5 in the forum...

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

                          If you want to create the curve from the points I would suggest using a global_cable with its new feature to send any kind of data through it - assuming you don't use this in the audio thread.

                          Otherwise I would suggest using an audio file slot for the waveshaper if you need more than 128 points - it's also just a bunch of float numbers with any kind of size. I'm not entirely sure where that limitation comes from, but a Slider pack is designed to be a user controllable interface element and pushing it beyond this amount of sliders is a hack that is prone to regressions even if I fix that thing now.

                          ustkU 1 Reply Last reply Reply Quote 1
                          • ustkU
                            ustk @Christoph Hart
                            last edited by

                            @Christoph-Hart I wondered about using an audiofile as well, seems a nice solution especially if I am creating the curve in the script interface.

                            But a global cable seems promising too, I need to wrap my head around the data type it can send. Just sending the control points and creating the curve in C++ node is surely a more efficient solution...

                            Can't help pressing F5 in the forum...

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

                            38

                            Online

                            1.8k

                            Users

                            12.1k

                            Topics

                            105.2k

                            Posts