HISE Logo Forum
    • Categories
    • Register
    • Login

    The HISE Color Palette Tool

    Scheduled Pinned Locked Moved Feature Requests
    16 Posts 7 Posters 216 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 @aaronventure
      last edited by aaronventure

      I created a demo for this, with a function that you can use immediately even if you're code-illiterate. It will give you basic colour palette functionality, but it's still missing the great features that a proper native tool can have for a quicker and easier designing, iteration and continuity.

      The demo (paint routine) is a bit lazy but it gets the point across.

      colourpalette.gif

      Snippet:

      HiseSnippet 2652.3oc6Z06aajbEeoj3kPFe24CvU4.NLGKLVYSSQR8gkrhfs0WQJmjkfnyk.Hn3Lb2gjSzxcH1cnj3Ynt7GPpRSJyeBFH0AoJMoN0AHtwUoHoIEQ26My9I0JYYIaFbAw.GNNuYdu2u4807lQ6tdBKluuvyHWwmOnGyH2sx2XfqryJcnbWiMW0H2mjeapuj4QzjVdPOpuOy1HWtw+wHgbElvP8u+wiWl5PcsXwjLL9ZA2hsEuKWFSc2m7UbGm0o1rmy6lX0y7jMsDtqHbD8A7Ld9pF8nVGRaydFEW1X4M1f52wH28xWuUSq5sd3zyWagZK7vYVnVsYmu4LUqaYO6BSO8bSa2p97z4lGX5iVylKEdMjTIy2H2DKKrGzni3XWsB9ZtOuoCCGTynAnYM40EN13VDoZrRGti8tgFJeCPJ6Fa1FWa1tS9s417H5wluaqlfDyQRCXtwRCuwSAuZIgW0DvKCHkKAjlPCoOKeCKOdOY7LHd9A42zE7lsnfeJITzq0Xr72I+JBXEtxJcoGxV2CFDwg4bUqVlLc0pStXwhSM0WR1k5vj.zwQjm2gQ3tbIm5v+FpjKbIs56Zo9A0qc+tfPIc66KIMYDpKQz7WwrjDvmKAqE2sMomVbDWvg6Sn9jddhdLOIGz.nfc5gxh53LfH6v7YIllXABTKVpmGc.4XtrCoeOhTPlATAFSEHVfoi3f6EkuuzCzquZ0bWTpZ1KVDPE.TcvXvtjrT71ikZFeyhurXgRaKbEVc7DcYkdDY+RqR8NrTYRoko9L7+ug3HlG9iUb3VGV5fxEJ.LsEiZe0VNr3kgDh1dh9tHKsnN9rxEOU6LHKMh92+qpqB5P5FLY+dEKxcc3tr3.3KzyGDytE2W9neRicd1jXnfivh5fA3PLyKOcwhEfeVwGkbHgDjpjPDvzIFoVGXB1FxOHneumNKwk4fA1GxX8HbIAxHHRt8.RPHrknaOgKls4.BIolBkwtJQrDILUmZaqHYVJ8tCB+fDdLcuP3RAAsaTZGTdnKtoyfuhE.6PgRGyskcff0pHkBk5v3s6HUiwgMEd1LuFfUcHR6Qs488iHdjtPXbPOPi4RARIRDJfYBZCVXFa.RGPV1SPssTGjkzdnKL.UqcayRrDvxrlaav+WwxiAklSLkIrqHjRbTukBTil+RkUy.U57U4yQdALGNnR0.72GQc5yT4yvxkT8xOHB95XmlV.Hdq.MX+tGqGDgnCDhTqOgAEPfRkvgrDppFnGgCUJUBwNLXIHbqXglVXX.F1wbQqjIZjA7BlyRP0Q+RAErAxujfF4tLI0lJo.gBbavbDBimBvXkHXf1kBE54wEdb4.viBRzKDvsPqsBZ9jNziXPMblKwG9kMFgi.L3XB.tBXnmJlFQnOH1SUQUgIolQ68xgGMLnLQYtmDQMhiVfQvjiRKLftMSB.NFulkJMItb85KvAOfqcvVaa3fTngDSzSAZun5+hh5VQErnyO8InlXTqNQmpQcgybjRjDrQ5Ft+ZlLzTAuSP3knLvj5bIcfA2tg5PKH7HcR2KJQtO4DDXQgM6Gt3CxJWObx3bbXa7Vxyi4IzfNTF9vo3YkimcRdlY4YklCD6Q8.LF4yvbwgK.oVGFHso6tdPyBxjR3zvcK30BcIhfTDc9g+4xOTIHp09bQjliMQlwF6xP1ey1Z.gI7bIqaVipiCkrSjASBLBwd.xNMHfpAzaHSGDEzBCbRjNqViRhu.O.Hn4GF0mC8FQsv98fDn99XbRhbHen0d5IuOR00HSeXCBLc3NNFLAsay7RzN2vE.pg5gcBypuDy2agRJnfv4Ro2G.xAWk75indg5aSaHZOhEL+1DqWOYEPINXWrCm2DZ1CjRbSkKcccjKRBkF20lcBdpdjTqnHsSKyvshV0JSaKh4Wx8Wk0BN6w1D166GsmNPWTpPZhgsSDyuDZ9WzxLytKRJMnuJRIsatD4t2kjRsWJq6q1.Yim8uhLi.W4.UXGJWxxRXANJrvlohu6WaxTbFU80CTom5JEKV7zh++9ge+0O7prthvqC4Pak3fDcuQagmJskPb3ScsWmAGqfWGAVHjs0FKv3sd3oykr8nGumPR8FzvAtAFlDEczMbhB37TMOC6wsf.whEZiQR5P.UPoEdQHnt1iSeurJw26ph5tRjGo5bpCdApKawpaXAK9BW.dULc7ElJSC5HCN6gtnlzw.I590OHXXG0voCGh2f34c..4B0igolUIp1UZwcb1Cx6L2+3op+fTqZp5pSiSQqLoyAwc1J74nAKDT8D9anNvEjespKFQ7mgmJCzlNAM7plaC8mBmrsDodZ5gqOh0Gjli6Mz5iTZL.xhiqkSDM6Y5C8qzkeh4ExGdC5xWtXAqakYm7x74nPPq8PtI8tSYZPejYsGfvSeFD4dDyNOHxPLY4nkVN17D3BuplCzNdEhlUKK63X0TgQvW1tAptlxw8V1cme4ICgJmN.IXWqejhguSst.htVfuoa+tYe2YUWwPO6KQptHgS9QDXkvOt+8C5KFOzfOTGtekqnoYofxL2mCtc.1bXqLKjcUqptaWMinCwLnK1xv7mapfFZyhuyU7CJ7oaf6zvZl95sG1RRpsas5StXjkP39LgjsiqoxB.LSFdpVsxbNbK6IbbfKll0z3Cr5cYLhV8lLuntoBVnQtIR+xj4u3WlL4CmZo8.IVnvcSWtbmdL2K54TMBbaFF4tU.pfkJUug4mD7FlZilA21HWg75AUMTPN4iMa7NvdsaF60uYrOcJ1+i+Ky+9ieWXelal1m8lw9b2L1e3Mi84Sa59889KuSltERw9uboh+0qD6ECCatlgcQ7mUb2OcyUg6VguhePpP7sJAZqxNhawzuoeg7qx7OTJ5AJI5Nnfz058iCewe758J09o4SclfwIPlbNTkCB+wQgIx5gA21NbnppHn1OJDp5ZgIoDe89ySUeA+jzMRf5u2UHGOMfsge.sT1KPanE7I+su4W+3HXV+bvz9Zo3ZZEWejq35ZEaOxU7zZE+aG4JdFsh+yibEOqVw+6QthmSq3x4F0J9gZE+KF4Jddsh+MibEufVw+oQlhSbNgRy+yQulCpcc2wd+p4K7Llam9LF++6eHStwSf6O8hv8OLMteQ7c.+PrCF5Eqyvr8tsGCeVRj1FarwYHs3GjDo9pW8pgnVGI+5W+ZE43mqDo9l27lyF1iegVt6LjkCut220rYFF6jgM6K9h9YYy97O+OjgMapo9OmylcqqZzV7eI+uKX4RuwO6ry9c5ujmy8Qmb67aKr66Pko+FXvuTnfIfqel5COA+3Rb84xAI+Rhdu8gwbUg3mkeWtzpS1XbrLvHTk4CAFC9bh937q0pEyRFCvIxu9O+Cy2Njwdh9Rta6soRONFK9r9ca.dZK0eWa7OkIF3MFFmqGWMLPrAy0VM.BHNKXxZ33bASVKbRitTKOwKrzWTB+fk99JJ.lbUebWExuMNljw0i5xs4uvxJsnNGi0utLN80kwYttLN60kw4ttL9vqKiy+1YD+71dZeonqNswvX6cWScc1b4VKrtUtwM9V.xrTSH
      

      Usage

      1. Copy the Palettes and the Setup section to your interface script. You can tuck the function into an external script file and create the object with the function call in your main script.
      2. Define your palettes in the object and pass it as the argument for the initialization function
      // The initialization function argument must be an object containing palette names as properties
      // Optionally these properties can be an array with up to 4 colour names provided as strings within the array
      
      const ColourPalette = initializeColourPalettes(
      {
      	"Monochrome": ["Dark", "Base", "Hover", "Click"],		
      	"Lead": ["Dark", "Base", "Hover", "Click"],
      	"Background": false,
      });
      
      1. Refer to your colours via whatever naming you decided on .
      	g.setColour(obj.clicked ? ColourPalette.Monochrome.Click : obj.hover ? ColourPalette.Monochrome.Hover : ColourPalette.Monochrome.Base);
      

      How It Works

      There's a setup object inside the main object that the initialization function returns. The setup object contains the panel references and the broadcaster that's attached to each palette panel's colour properties.

      This is all set up automatically based on the palette list that you provide. The broadcaster is triggered on init for each property of each palette panel which creates the object hierarchy based on your palette list.

      The component properties are not saved in the script, but in your preset xml file, so they are persistent.

      If you don't provide any custom Colour names, they'll be named Colour1-4. After that, all components in the component list of your project are repainted by the broadcaster.

      What It's Missing

      These are the features it's missing, that a dedicated Colour Palette tool could bring to the table.

      1. If you delete the components from the component list, you lose your colour scheme
      2. You can only have 4 colours per palette, as you interact with the palette via the component list. While you can definitely tweak the setup to create multiple panels (maybe child panels) if more colours are specified, you'd still have to navigate to a different component to change the colours, which would increase the complexity of mentally keeping track of which colour is which because...
      3. There is no visual link between your colour name and the colour itself in the component property editor
      4. The whole idea is to use the property editor to set the colors using the colour picker, so hardcoding colors breaks the whole idea, which makes porting your palette to other projects a bit of a pain (copying the components in the xml and copying the list in the script) and definitely not very shareable with the community
      5. Quickly switching to another colour scheme is impossible; you need to manually adjust each colour. Or if you're handy with git or any of its UIs that provide the functionality, you can play around with the stashing of preset.xml but that's far, far from ideal
      6. There's no way to have a custom palette library, like the script library, that we can make into e.g. a git project and work with, and have it be accessible from all projects or even share
      7. It spams the Component list and is hacky solution with a tacky workflow
      griffinboyG LindonL 2 Replies Last reply Reply Quote 1
      • griffinboyG
        griffinboy @aaronventure
        last edited by

        @aaronventure

        I agree.
        At the moment I end up with a bunch of variables to achieve the same thing. But it would be nice to have it integrated so that I can try different schemes.

        It may also open the door for themes and user editable pallets? But I guess you can do that quite simply with scripting...

        Anyhow, I'd like this feature as well. It makes sense considering all the fiddling with color tags I end up doing when I'm working on LAF.
        I'm someone who ends up tweaking things a lot rather than designing an ultimate UI goal in an external program.

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

          @aaronventure I asked for this a couple of years ago 😆

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

          1 Reply Last reply Reply Quote 0
          • LindonL
            Lindon @aaronventure
            last edited by

            @aaronventure yeah - understood - and my vote is No - until more useful stuff (bugs actual features etc.) are done. This is easily doable using a "skin" object- that also allows user defined and loadable versions of palettes/skins. You just reference these skin colours in your LAF code...

            HISE Development for hire.
            www.channelrobot.com

            A 1 Reply Last reply Reply Quote 3
            • d.healeyD
              d.healey
              last edited by

              CSS should be the way to go for a themeable UI, but it's not quite there yet in HISE.

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

              oskarshO 1 Reply Last reply Reply Quote 1
              • oskarshO
                oskarsh @d.healey
                last edited by

                @d-healey you can achieve the same with LAF already using fully themed plug-ins since 2023 😎

                HISE Developer for hire :)

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

                  @Lindon I too would like to have bugs prioritized, hell I authored a third of the total repository issues on the Github tracker, and have 50+ active, 18 of which (19 if you count the ScriptNode one here) are feature-breaking, and some of these don't event have a workaround.

                  This is by no means a priority request, nor is it worded like one, this is an idea out for discussion like a lot that I already threw out here, a number of which sit in this very subforum collecting dust with 0 replies.

                  Chris may or may not ever get to it. If or when he takes an interest, this post will be here. In the meantime, If I ever figure out how to add something like this to HISE, I'll make a PR.

                  LindonL 1 Reply Last reply Reply Quote 2
                  • d.healeyD
                    d.healey @oskarsh
                    last edited by

                    @oskarsh said in The HISE Color Palette Tool:

                    you can achieve the same with LAF

                    Yeah but it's a pain because some laf functions don't have access to all the component colour properties so you have to track things in external variables.

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

                    1 Reply Last reply Reply Quote 0
                    • LindonL
                      Lindon @aaronventure
                      last edited by

                      @aaronventure said in The HISE Color Palette Tool:

                      @Lindon I too would like to have bugs prioritized, hell I authored a third of the total repository issues on the Github tracker, and have 50+ active, 18 of which (19 if you count the ScriptNode one here) are feature-breaking, and some of these don't event have a workaround.

                      This is by no means a priority request, nor is it worded like one, this is an idea out for discussion like a lot that I already threw out here, a number of which sit in this very subforum collecting dust with 0 replies.

                      Chris may or may not ever get to it. If or when he takes an interest, this post will be here. In the meantime, If I ever figure out how to add something like this to HISE, I'll make a PR.

                      Well I dont want to fall out with you but I think its incumbent upon all of us to use some judgement about posting feature requests, especially ones that are at best QoL and that can be worked around with a little effort from the user side. If for no other reason than its adding to the noise and potentially drowning out stuff that clearly is required - such as the bugs you have added to github. I understand Christophs desire to work on new and interesting things, and I'm not trying to put too much of break on that, but its frustrating to see stuff that is at best nice-to-have getting attention when more mainstream problems get pushed down the queue because of it.

                      HISE Development for hire.
                      www.channelrobot.com

                      Christoph HartC A 2 Replies Last reply Reply Quote 1
                      • Christoph HartC
                        Christoph Hart @Lindon
                        last edited by

                        @Lindon said in The HISE Color Palette Tool:

                        I think its incumbent upon all of us to use some judgement about posting feature requests, especially ones that are at best QoL and that can be worked around with a little effort from the user side

                        I like how this implies that I cannot judge if a feature is a optional QOL feature and have to be shielded against feature suggestions.

                        I'm well aware of the bug list and they will be addressed, there were just so many halfway implemented things lying around on my hard drive that I needed to push out before getting to that.

                        LindonL 1 Reply Last reply Reply Quote 2
                        • LindonL
                          Lindon @Christoph Hart
                          last edited by

                          @Christoph-Hart well let me apologise if your read that implication - it wasnt intended.

                          HISE Development for hire.
                          www.channelrobot.com

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

                            @Lindon I don't mean to presume to know what the man's vision for the framework is, what stuff he's got lying around unpublished or that he needs me to type less so as to not get distracted.

                            The forum has self-moderation tools that anyone can use, and even if you're not registered you can create uBlock filters and never see posts with any keyword or username you add to it.

                            It's also a fully moderated forum where the admins are online every day, if they have a problem with my feature requests, I'm sure they'll put me on cooldown.

                            If you want me to make noise about the bugs instead, sure thing, I'll join the protest 😆

                            EDIT: Ah, I'm late with replying. The protest offer still stands, though. We can make it a bug tier list even!

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

                              @aaronventure said in The HISE Color Palette Tool:

                              We can make it a bug tier list even!

                              Yes please, I kind of lost track lol. A topic with one link to a github issue, then upvote the ones that you want fixed. I'll sort by upvotes, hack through it and we're all happy again.

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

                                @Christoph-Hart That's the kind of funk this rainy day needs. Would you kindly open the thread!
                                E: maybe there's a better tool for voting on content than creating 155 posts in a forum thread, though I see how vote counting could be an issue.

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

                                  @aaronventure I requested a proper bug tracker a couple of times, something like Mantis. It would prevent bugs being lost in the ether of the forum, or being lonely on github.

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

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

                                  44

                                  Online

                                  1.7k

                                  Users

                                  11.7k

                                  Topics

                                  102.2k

                                  Posts