HISE Logo Forum
    • Categories
    • Register
    • Login

    Syntax for Setting and Getting Array Data From a Panel

    Scheduled Pinned Locked Moved Scripting
    26 Posts 5 Posters 987 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.
    • A
      aaronventure @ulrik
      last edited by

      @ulrik Isn't accessing an object property slower?

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

        @aaronventure I've never thought about that, maybe you're right.

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

        1 Reply Last reply Reply Quote 0
        • A
          aaronventure @Christoph Hart
          last edited by

          @Christoph-Hart how to set an array, then? How to specify which element I'm setting? setValue only expects one parameter.

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

            @aaronventure that parameter can be an array or an object (the only illegal type is string because that can cause weird number conversion issues).

            ulrikU A 2 Replies Last reply Reply Quote 0
            • ulrikU
              ulrik @Christoph Hart
              last edited by

              @Christoph-Hart @aaronventure Would this be a better implementation?
              I store the min, max and range properties at init (so no more looking at properties at runtime)

              HiseSnippet 1600.3ocsWstSabDEdWfsJ1sQpQp+p+Z59ip0EXw1gP.Sog6ozvEKbZZpPnngcGudJqm0Z2wFPI7rzGi9Z02f1yYlc8NDLHDp0Bg8LmKy2bNemYNS6zj.VVVRpkck2d0.lk8W4z4Jgr2V8nbg0daaY+0NGSEQLRmXdHKkzzZyqFPyxXgV11S+ZTK6JyXo972uZSZLUDvJmxx5cI7.1979bY4rsW+M733cogr2x6an8hquWPhXqj3jg.hl1ot0.Zv4zH1gTTsobrr+hcB4xjzNRpjkYYOylIgW0oWxEBs9uimwOKlgCZX0Abjd5cShCQDiyZsUOdbX6hcdlE3k1kwgo0wguw4.dHe77lwCT.ozBy3g8T2DdSeC30vDd0Mf2DfjsAjlQCom4zIHkOPVJAwyW5rmPxR6RgvtITz5ZM0e8DmsR.MDR+9zyY6lBCFag2R0qOGA9WsUqVcgEpb7FG95cHc1eus24XR6MNbm8qL+C6SUHwkIIJtR6iIqQ5NTDH4IBunZU+X0JinoDJLsrGOyOhI2OIfFuYxPQXlGt5Upn0YjgNuiFOj4gB0x5yEuGDSOo4oKLxOUQK+Ah2H+QnhmT+Tx7jQ9fVnIJCnWdeFzvzfpUh7yXRM4yq.BdtmEomxsF50H+t.y8XD2rviYARvmwLuSfnH7GtP3+e9oKrH7i5Zna5W8WY9Wvk81HdPOpwJwkr9Eq0b5fPHUR86kLBJ7dEogecRKRc+kuWjfAIEXvM+73nYadaLgQGoQn1yUxtT5VD3xF1sK+RTte1vyxjobQjmzmCq0kG00ysUK2Znak9wLQjrWgcp35FYuE7EX7.ZZFC3ZFYnZjYKb9rD24HtvW2RsFFpUhVsOKCK8SFlw1FJsfPi451BPUJaPLRuQfNq1QvZ4d67wM2+2LSGlRuXiXdjfEhN1C0.hjfiBfpoTV3lIRYRezqWC7GiBfC1ZSyJ.1HP+wUA2EC+yS3qQT1oGspo7xcdgN.TiTNg2knWN+fXdv4rPxm9jgN0pVAPQQpBLunpXgwP523gxdd0f5DsYXhRUinqQu8J.9T4TkDiZw0PuONghJXrEB5oV10Tv3GIFl8JhKrXtPZzEXvt3phKaEVbF6tbxATYOe5YYFK+7vOpAd9VhZjKZBqy0Uy2e2dIVSqsZaXtG09WEC8fYmSGplybmidt.7Fm7LISK7qxMzKyOVTui0HITQVtdLeAH5vESRubNXNIDyuJhX9k1qQJtBHBY98GjHfAdtF5fr3pFiwZj1nqgSXjbAyK+jcPsOSqCP13Vz33yf6p8J3+n6pVkKhAaGWIPRDFFiXJMI1Kn.PyoqiUUJpz.bsWRW8jjuCRAIm8GvAct4r3X7JD7RAX+M1G5hYUtZ0RcnWNAcfrtRmx4yJpH+nxCsHpboRyVnSfeqxW5QyqkpfGLyIpgv7md83bjNuifE1rYIwL+AoX5RYS4ghqduJn4P.4DyvOfDo93MUrcbZYRAdUJxH0bXhjcjvSE9qdcUxmKpa2IJK2awrzIJF6vK89LzSLr+YrTyjOpHz1yM6kx4t6kxrUu.c.xPwDwdBt7nALwc0.nUdTE66JGUfpRUWWOsnqKpfEawCwYLhkVJTaY+FmeoyQGVvap6WeLuoY855gETmwSLl4r7KTSrxRvWmdsk0ut21vgOEnA.F.1ArTIGiC1ayFAsTq6Irhy1rrykICT5lyGft3eXX+xxVu+80uxbvE3s.kSvWuGiG0ynE9eZ8x1UvlPWtwJMZ1b4UV1BnbIWTP7.79sNagWTjMG4mU2q88jsgahhfNJrJuyEe3whMWYwUV5kMW4EJAnWU8i1pU+LKHVNdwW+OWOiNBZYncJC35vVeJqa2tLzndR3vXp7lcuiOYIW.PCuQKyXawhLt7Jymz7eVK8OTH9Lm1bYPuIiwol.FAdx+GXL+gPO0YmtcgScKA3LN699+ed0ik9xlH3lwTNjucNbX+N.6HfAqt.3v3w.PxFMUMtNNFi.cXhP0f+A9jKrAN1NWXiBg.SJHM4CA5xb7oVOQMCfIg5UlUbN.GSZTTZ63.kkV8gW88gf.b6OObFxjso4ivlm+HrYwGgMu3QXyROBad4ivlkuWavGbuwPnUac4.LQ6cTGPZauifBLKEKz5eAieFzFA
              

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

              A 1 Reply Last reply Reply Quote 0
              • A
                aaronventure @Christoph Hart
                last edited by

                @Christoph-Hart Alright, so what does it look like?

                I feel like I'm miscommunicating this -- I can't figure out how to write these two lines of code.

                What's the syntax for storing an array in a panel with .setValue(), and for getting it?

                1 Reply Last reply Reply Quote 0
                • A
                  aaronventure @ulrik
                  last edited by

                  @ulrik Sure? I mean, the other one also only gets executed once perhaps, at the very first run while it's undefined.

                  This is what I was referring to:
                  https://youtu.be/fV9hOZrNO_g?t=1360

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

                    @aaronventure said in Syntax for Setting and Getting Array Data From a Panel:

                    I have a panel that I want to use to create a horizontal range slider.

                    Why not use the built in range slider?

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

                    ulrikU 1 Reply Last reply Reply Quote 0
                    • ulrikU
                      ulrik @d.healey
                      last edited by

                      @d-healey said in Syntax for Setting and Getting Array Data From a Panel:

                      @aaronventure said in Syntax for Setting and Getting Array Data From a Panel:

                      I have a panel that I want to use to create a horizontal range slider.

                      Why not use the built in range slider?

                      Is it not broken?

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

                      Christoph HartC d.healeyD 2 Replies Last reply Reply Quote 0
                      • Christoph HartC
                        Christoph Hart @ulrik
                        last edited by

                        What's the syntax for storing an array in a panel with .setValue(), and for getting it?

                        setValue([0.5, 0.8]);
                        min = getValue()[0]; // case that panel is not initialised needs to be handled too though...
                        
                        A 1 Reply Last reply Reply Quote 1
                        • d.healeyD
                          d.healey @ulrik
                          last edited by d.healey

                          @ulrik said in Syntax for Setting and Getting Array Data From a Panel:

                          Is it not broken?

                          I never used it. But I just tried it and seems to be broken. I suggest we nag Christoph to fix it instead of hacking a panel (unless you need the panel method for some particular reason). :)

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

                          A 1 Reply Last reply Reply Quote 1
                          • A
                            aaronventure @d.healey
                            last edited by

                            @d-healey The default controls don't let me define custom modifier behavior (ctrl, alt, shift), don't have the useful .data functionality and don't have the mouse callback.

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

                              @aaronventure said in Syntax for Setting and Getting Array Data From a Panel:

                              define custom modifier behavior (ctrl, alt, shift), don't have the useful .data functionality and don't have the mouse callback.

                              Broadcaster would solve those issues I think (well not the data one).

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

                              A 2 Replies Last reply Reply Quote 1
                              • A
                                aaronventure @d.healey
                                last edited by

                                @d-healey True, but I still can't disable built-in modifier behavior.

                                1 Reply Last reply Reply Quote 0
                                • A
                                  aaronventure @Christoph Hart
                                  last edited by

                                  @Christoph-Hart Thanks.

                                  Is there a way to set only one element, or do I have to be defining all elements every time I'm setting the value?

                                  Is this done by setting these value somewhere else, like a local var which is an array

                                  local tempVal = [];
                                  

                                  and then passing the array itself every time I setValue

                                  setValue(tempVal);
                                  

                                  ?

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

                                    local v = this.getValue();
                                    v[1] = "New Value";
                                    
                                    // technically this is not required because the value is already == v
                                    this.setValue(v); 
                                    
                                    // this will fire the notification that the value has changed.
                                    this.changed();
                                    A 1 Reply Last reply Reply Quote 2
                                    • A
                                      aaronventure @Christoph Hart
                                      last edited by

                                      @Christoph-Hart

                                      Got it working. Thanks.

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

                                        @aaronventure FYI, I've added the ability to reassign modifier / mouse click types to different events.

                                        Docs:

                                        Link Preview Image
                                        hise_documentation/scripting/scripting-api/scriptslider/createmodifiers.md at master · christophhart/hise_documentation

                                        The markdown files for the online documentation. Contribute to christophhart/hise_documentation development by creating an account on GitHub.

                                        favicon

                                        GitHub (github.com)

                                        Link Preview Image
                                        hise_documentation/scripting/scripting-api/scriptslider/setmodifiers.md at master · christophhart/hise_documentation

                                        The markdown files for the online documentation. Contribute to christophhart/hise_documentation development by creating an account on GitHub.

                                        favicon

                                        GitHub (github.com)

                                        Dan KorneffD A 2 Replies Last reply Reply Quote 4
                                        • Dan KorneffD
                                          Dan Korneff @Christoph Hart
                                          last edited by

                                          @Christoph-Hart thanks! I was just about to request this :)

                                          Dan Korneff - Producer / Mixer / Audio Nerd

                                          1 Reply Last reply Reply Quote 0
                                          • A
                                            aaronventure @Christoph Hart
                                            last edited by

                                            @Christoph-Hart Nice! A few questions:

                                            1. This is just for re-assigning default modifiers, right? Or will mods.shiftDown return 1 if shift is down, therefore letting me do whatever?

                                            2. Is the CTRL modifier the same for Windows and Mac, or is the Ctrl on windows firing the CMD modifier?

                                            3. Given how we're creating an object here and there's no .data for a slider, what's the best way to approach encapsulation? I can set everything up within a single function, sure, but if the in-function reference is a local variable, I can't access it from e.g. the control callback in case I have one control that needs to do something else other than what I set up.

                                            In my case, I'm using the panel, and have a sizeable function that handles everything: I have a few timers for various types and parts of an animation that happens on user action, and these timers are stored into widget.data.someTimer, so I can access them from anywhere. Moving to a slider would require figuring out how to keep the same functionality of the timers, while keeping the workflow the same (set up one type of control with a single function, passing relevant parameters).

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

                                            26

                                            Online

                                            1.8k

                                            Users

                                            12.0k

                                            Topics

                                            104.4k

                                            Posts