HISE Logo Forum
    • Categories
    • Register
    • Login

    Stock Table Upgrade?

    Scheduled Pinned Locked Moved General Questions
    37 Posts 8 Posters 131 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 @DanH
      last edited by Christoph Hart

      Alright, I've played around with the table component a bit. There was already a function that allowed you to customize the drag behaviour to a certain extend, but I thought it would be super funny to not add any documentation to that thing whatsoever.

      https://docs.hise.audio/scripting/scripting-api/scripttable/index.html#setmousehandlingproperties

      5a142fb0-b8cc-4497-be1e-e313c1dbb748-image.png

      This can be extended to allow pretty detailed customizations, so any input for more stuff is welcome. Here are the currently supported properties (I'll hold off with the docs for this method until we included all popular requests):

      Table1.setMouseHandlingProperties({
      	margin: 10, // adds a margin around the table so that points at the edges are not cut off
      	fixLeftEdge: 0.5, // sets a normalized fixed y-position for the left edge
      	fixRightEdge: 0.5, // sets a normalized fixed y-position for the right edge
          syncStartEnd: false, // if true, then the start and end y value will always be in sync
      	endPointSize: 12, // changes the size of the points at the edges
      	dragPointSize: 18, // changes the size of the draggable points
          midPointSize: 12, // changes the size of the curve node points (default = 0)
          allowSwap: true, // if true, then points can swap their position when dragged
          numSteps: 12, // this will enable a grid for snapping to the x-axis
          snapWidth: 10, // if numSteps > 0 is on, this will define the tolerance for the snapping in pixels
          useMouseWheelForCurve: false, // if true, it will use the mouse wheel for setting the curve. 
      	closePath: false, // if false, it will not create a boxed and filled version of the path (like above)
      });
      

      I've also made a few minor changes (remove that nasty green outline, why???) Note that the useMouseWheelForCurve property replaces the compile time constant HISE_USE_MOUSE_WHEEL_FOR_TABLE_CURVE but it's not a breaking change because the default value for this property will be picked up by the constant.

      Any ideas for more customizations are welcome now. Let's do this once right and then not think about that component for another 5 years...

      Oh and it's not pushed yet, so you can't try it out yourself yet.

      HISEnbergH DanHD d.healeyD 3 Replies Last reply Reply Quote 5
      • HISEnbergH
        HISEnberg @Christoph Hart
        last edited by

        @Christoph-Hart syncStartEnd is missing the boolean in your example!

        Sonic Architect && Software Mercenary

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

          @HISEnberg true.

          DanHD HISEnbergH 2 Replies Last reply Reply Quote 0
          • DanHD
            DanH @Christoph Hart
            last edited by

            @Christoph-Hart are those curve nodes in the example image?

            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 circle ones, yes, just like with the flex envelope. You can enable them by setting the midPointSize property to anything > 0.

              DanHD ustkU 2 Replies Last reply Reply Quote 0
              • DanHD
                DanH @Christoph Hart
                last edited by

                @Christoph-Hart ah cool, sorry I missed that on my phone!

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

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

                  @Christoph-Hart is there a way to reset a curve to exactly 0.5?

                  Hise made me an F5 dude, browser just suffers...

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

                    @Christoph-Hart any extra dragging resolution?! 😀

                    And can the ruler move more smoothly too?

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

                    1 Reply Last reply Reply Quote 0
                    • HISEnbergH
                      HISEnberg @Christoph Hart
                      last edited by

                      @Christoph-Hart My only comment is regarding beat/grid-syncing. It seems rather common that you can adjust and create a (wave)shape based on a fixed grid/timeline.

                      I imagine Shaper Box by Cableguys is the best example of this but there are plenty of plugins that have a similar feature.

                      Half of this can be done in HiseScript I am sure, but I am picturing the best system for sending the data in this scenario (multiple Tables with a menu of fixed shapes or just one table with fixed shapes to select from)?

                      Personally I would need to brush up on the Table API because I've always hated it (except that disgusting green box) and haven't used it in ages. Last I remember is it saves the coordinates in a huge array (presumably JSON) and recalls that?

                      ... As I wrote this I realize I am an idiot since you already included a numSteps and snapWidth , features which should cover the basics of this. The rest about "stored shapes" can be handled on the HISE side.

                      Sonic Architect && Software Mercenary

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

                        This post is deleted!
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        12

                        Online

                        2.0k

                        Users

                        12.8k

                        Topics

                        111.4k

                        Posts