HISE Logo Forum
    • Categories
    • Register
    • Login

    Dynamic reassignment of effect slots

    Scheduled Pinned Locked Moved General Questions
    37 Posts 8 Posters 1.8k 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 @Orvillain
      last edited by d.healey

      @Orvillain

      // In onInit
      Engine.addModuleStateToUserPreset("InsertNameOfModule");
      

      Free HISE Bootcamp Full Course for beginners.
      YouTube Channel - Public HISE tutorials
      My Patreon - HISE tutorials

      OrvillainO 1 Reply Last reply Reply Quote 0
      • OrvillainO
        Orvillain @d.healey
        last edited by

        @d-healey So Do I have it right then.... call that function for every module that I want to save to a preset.... save to a preset in the browser..... then when I load it, those things will be recalled both in the module tree and the connected UI parameters, regardless of if saveInPreset is enabled????

        Musician - Instrument Designer - Sonic Architect - Creative Product Owner
        Crafting sound at every level. From strings to signal paths, samples to systems.

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

          @Orvillain It will be recalled to the module tree, not sure about the UI parameters but Christoph seems to indicate that with this dynamic effect slot system that it will be.

          Free HISE Bootcamp Full Course for beginners.
          YouTube Channel - Public HISE tutorials
          My Patreon - HISE tutorials

          1 Reply Last reply Reply Quote 0
          • Oli UllmannO
            Oli Ullmann @Christoph Hart
            last edited by

            @Christoph-Hart
            When I try to follow your advice with a HardcodedMasterFX, I get the following error message:
            Can't store modules with child modules

            Is it not possible to use Engine.addModuleStateToUserPreset with a HardcodedMasterFX?

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

              those things will be recalled both in the module tree and the connected UI parameters, regardless of if saveInPreset is enabled????

              It will be recalled to the module tree, not sure about the UI parameters but Christoph seems to indicate that with this dynamic effect slot system that it will be.

              No UI parameters are not part of the module that is restored with its state so they won't update automatically. But you can call this method after loading a user preset to ensure that all connected sliders are synced to their internal values:

              https://docs.hise.dev/scripting/scripting-api/userpresethandler/index.html#updateconnectedcomponentsfrommodulestate

              Is it not possible to use Engine.addModuleStateToUserPreset with a HardcodedMasterFX?

              Do you have any modulation slots enabled? If yes then this is preventing you from restoring the hardcoded FX because currently you can only restore modules that have no child modules with this function. But I might have to change this to allow it for hardcoded modules as this would be very limiting.

              Oli UllmannO DanHD 2 Replies Last reply Reply Quote 1
              • Oli UllmannO
                Oli Ullmann @Christoph Hart
                last edited by

                @Christoph-Hart
                Ah, okay, that's where the problem lies...
                Yes, I have enabled modulation slots.

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

                  @Oli-Ullmann Alright this is fixed now - you can call this on modules with child elements now but the child elements will not be modified at all - the rule that rebuilding child elements is dangerous still stands, but this is a valid use case to restore a module without its modulation slots (which are restored by the script modulation matrix anyways).

                  Oli UllmannO 1 Reply Last reply Reply Quote 2
                  • Oli UllmannO
                    Oli Ullmann @Christoph Hart
                    last edited by

                    @Christoph-Hart
                    That's great, thanks! I'll try it out and give feedback if I encounter any problems. Thanks very much! :-)

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

                      @Christoph-Hart said in Dynamic reassignment of effect slots:

                      https://docs.hise.dev/scripting/scripting-api/userpresethandler/index.html#updateconnectedcomponentsfrommodulestate

                      What if the controls are not connected by Parameter ID etc but via scripting instead (as lots of mine are as they do more than one job...)

                      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 said in Dynamic reassignment of effect slots:

                        Just a small heads up that we have this now:

                        https://docs.hise.dev/tutorials/ui/index.html#draggable-fx-chain

                        I noticed one small anomaly about this example. If you add more effects to the example script, you need to set the panel's saveInPreset to false temporarily to update the JSON effect list, then reenable it again!

                        Sonic Architect && Software Mercenary

                        1 Reply Last reply Reply Quote 0
                        • OrvillainO
                          Orvillain @Christoph Hart
                          last edited by

                          @Christoph-Hart said in Dynamic reassignment of effect slots:

                          Just a small heads up that we have this now:

                          https://docs.hise.dev/tutorials/ui/index.html#draggable-fx-chain

                          As it turns out, that was reasonably easy to add.

                          Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                          Crafting sound at every level. From strings to signal paths, samples to systems.

                          HISEnbergH 1 Reply Last reply Reply Quote 1
                          • HISEnbergH
                            HISEnberg @Orvillain
                            last edited by

                            @Orvillain Agreed so far I am really happy about this! Very simple to use. Need to test it out in some real world examples still!

                            Sonic Architect && Software Mercenary

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

                              I'm bumping up against an issue I can't solve in this snippet. How do you filter the list of effects so only certain ones can be rearranged?

                              In my case I may have certain effects like Routing Matrices, or Input and Output Gains that I want in fixed places (beginning and end of chain).

                              **Edit I did resolve this with some back and forth with AI. I think someone can come up with a cleaner solution since it should hypothetically be fairly simple to filter the list of effects.

                              What A(I) did was make edits to the make() and onChange() functions.

                              On make() I manually created the Fx List and added a startIndex and endIndex. Then in onChange I you just need to offset the indices (add startIndex) so setEffectChainOrder() get's the right positions.

                              I'll spare the forum some AI slop but here is a sloppy HISE snippet in case anyone needs it and no better solutions present themselves!

                              HiseSnippet 3356.3oc4ZrzbabadokXhIyilzISaNhvoMyJKZZR4GwItJRzRhxrUxVURwwcT03AbWPxsd4hs6BpGoUyzi8VOma8uQukC8XNzYx0dno8T6o9On86C.6tXIWIqH6jFmROdnvGvG9d+..bqHtCKNlGYUp5tGGxrJ8pk243.wvUFR8Br5tJ.u7pQzA6xhEV283PZbLy0pToYVGmuTkYsje92KcWpOMvgkAxx5gbOG1Fdi7DYP2Z4elmueGpKaWuQFq9FK20gGrB2mOF3kYJ2zJj57D5.18o3xtTYq6QiGZU5Jku0s6078d+92t+BLVudNuO0s4MYLmaQ6068ZRasfae1scu40utUoWZMWOAOZGAUvhsJM6c4tGuyP9gAJB7PuXud9LbPKqc.Jq.2g66hhHB0Zkgd9taknjhsrJUdqLU1LJU1aUdSOWuT3Ypt2PNAICCSEXoKkm8lIG60xj8ZZvdEvRkLXoYUrzaVdGmHuPQ1LH+7Jk6FHXQ8ofcxjUTq05RW5sKuBGVQfnwH5SXchfAoXXeilMqSZ0r4b2oZ0pAfYIFLQLRmGg9GCXQU+MUqTsJXEiEjCnQjMau85cuOYQxBMuiA3U2t85OdmsVasUgoZ1n4MMmr8Facu1OtS6U18AaCS2pQtYe3Zaua2UZuALSepeLCYDu.eu.Fo+3.GgGOfvC1BT+B6Ayg7yfFwLgxqxt4Qc5rf7CHAvL8AGwsYNBawPu3FCXhM3NT+6xGG3Fa2bNbQUq3ivHdAtriXw.cSV6Co9iY1y0vwmG.earVZDiBKD2YZv.eVgauR2HogBqXuOgkr8tTAswArHgGNyRozzt1Pl2fghZyQ9.CfG54JFVyjE5wOZG09YK22qRry1XeuXQCeVv.wv4aMG4JZ6zbjqQJbQ422tnl.MbRvR0aGvKwt1FTAuF3ebiFMUp2LEu5q3FGNzSvT7I9u97HaO2i.kah9ctpU.allXB1QhbZDjm1CPXeXGN68uR1lz6zTpnYpQDaD+.zOezt7PasZCzt.9IelXcav5KRWXNRE6kiTwGRCCYtcUR1cRWVjStk4n38T4Ry13hxIVZR4021KdUVevk2ErsyAZLoJSiWHG8Q2jJF1HdDmKFFKXgF1dZf2HJFlTGi7.qkxXkfN0ObHUFUdSx7psg1KtH7AWJXQJbSvRt9P9g1R.0yEKi4LpHY+LenEAU1dM2GEAkLjngPmhES7I1CVTq82WgeEQu8JzZ1BhHZtOY9EkpfqPRLQnXnbukrZwtMdhgsQVVlg3VxO0U5h4znUruXThQqRknbFrzMbZ6rDmjcWgqhBmxF3jesJ+4dfCo6XGvEnkwdbRwZ3VmGMbyyqF9puHpge1TtndE+OCp3P.8qAMcgp0j28cMX6gPdhnT0ehoHKNsXZbhJ5t5SS8E4fAtsTJMcELrfBy0nbSu5jqqiqM2sHGMH2H5gmFV0IKnQcZ1QXtAs88F.4f1ELa1nsqNA2gZNPuCfnUSqQS+PRSsQ+pjQNozTZBYxojQN0ETki7cJNI4zrdsODpYQyy4DsAQp.RrfyOOHQmT8jhZ3.Z3KX.y1gOJDZFH.zEGfcGHa.IOyHgqqqNmtZWJZnpV0VQFnrhwing1Izz9f5pf2TIKhIFGoqiJcnTtHJvRNuZkqcMHFH.U3jHlOjF+.Fh.zidLQvAsPL2erHEVZ+LZ3OHxkEA1t8v.Rn1Mw1S1G.wi7SHlBF.Y940BWNjaDNNdnRGrmGjrlLgbFKnQBU7hjkA8OvvvFvZDFg8zUa6D9li62GPpAahhz+JtWfMXKqIE7IPqchnYfVdNKO5UqLAmEA0R67Hz.sV+9PLirEeIl1xFQqi9L6cphS8IkTVfpwf8kHliU.5WfSF1MgcHMf4WmftC0I88hvuhYP6wtRWMs4BLJxbmxEreZCl8RfqvXeUacF.f4o2QCRgK.oG.QR1hZpAcFjE8GAJu77ScU2.inGMwD6meCyZnPdVf7S5Hiqbw7EQiYoyI0q3oGiraIaAQANhEJa7uXEHOXS93XlM6.vHXntz8ca+Lz38bPyPKj1GcpBW0KVwarjKZbLrap+5HbORvWlzPAWVMQGJUbMFRHMJlAGRyFo20TxyUJtSdYJgSYajlqHYdrhVAT1odwa5UaoCVwximImd0VIQ0ST.cQsVvw2y4If892pGCIqGHcSS0G5ULkFA2l6lc3jhXf7xdlqk9fjJFKkPHo0TAfUn.8NlzwjAlnm7Cl9TixhixPZbBnbQ8SYqpWnnnal9qr3ehTJSkwQX.wGEVjXpUOYcsfynApY+yRWpoj1Pe1AlBLPdEpueOpySrkQlEcdCny9rKNHwonnE9gKJOUyjdHSk4B6+QVTN0wHVvCUoUzdzEK.XYTnCDnZBkHy7Pv9y.kNiL.JMEP5tJIntbLjwS.XBkMAXoC55RnAv+koiI79vjw3WHFLY4kXxw7wjCoABrvLx50knjLK.DZggGwZLk5Du2F6f5lTSUwvHmWnraX087L.auSWaxNPU7KDKzYWCrI7CSrLwXww199jL.IKNMiftBycRANc3urKj0YBnua+TwwKHu1JsTluemi55JqyTaUnz+wHSrCE5ogJ3Q3fUFxiFK4ssAm5nd3eg2LYM4wY.Z0A5lQt6xbanZFCsGP64mprSHW5Dc0MEY1qSefQPFUoJMtlB0QoRX0FxNvdPe45kAJd8Ixa43cPMf7jXSRGUaQvZR65Acwn9Ni8QuLY4Nk4G9eeniWo7jIFSzuFTLtqjmljNvg7RKNAElOqEkzfm51YlbMZ4OkPo8.nfTmnkkJoTIsY.EjzUbhgGTV6R.BpcJySJogIbJ0lNOoko+W+i1P4AdNLY8wsQdK2n6upitILXocr2Wc1s7jQYw5OkHnOBpNNP1xNPpOL2QOuGT.HYLbdi5D6iZLjBa2bjeLYgl2313EwI+NW7kpCTS9VdOvxQ1FA64hfioG.1rshXvHHx.6hJ2ll1QxhoWspI5fQ.vRdbvDHzipoRmXzRgdVY+Uq.hEOxtl7Jg8BFbOvuUACvK2EZUmrWy5M22XCj2aKbvTAHI15qwMk1X9pHteZghjSckt.E4ylVNNc1cyUkIWMGEGnO.UHlh+Dyawdq12eM7BmSula4UiaWaKL0eKLeSxyi.+8dOkrS6mb6mF8kdeNz4efpxGPZxjS0uegyoUH9X4pBlVWH6zQzNX7ndrHyyphKzpzr4eVhxm9yRX9pINp5IFKjGzMvS7fPVvo8VJV5hP3SXn4JXoB4CX7ZIOfApls7bsJc4xJUtkjgsJ88J+S24A2eO7VLqSVXeKqOp6pfScxlA6KPqPzCGEiRqxN.xcodcjJkWkE+Dnbubs5pe.3mJoOx7AqN1bf7r.o.9cGrb9pmH6lq5oEDJAJ2Ry.qVc3hLj+4KaF3hqpj7oyl5UddixaxcwpD4ezIr.ndBvjm6kdvWyIH1Sbr4S28b6knNur3aVdKOgyvh4wKU.OBF0uN3Q8628ZkMNUujAmsbmG80zi0Y99guhh9ubYYyMRJm72lDWBACnwq5JSo71KmNw14bfrdqk6vXtnelAFKe8q+EKk.2DAxu7O72WZC9gaADrSD6WmtO+9uX464METqUWdSuiL8e1kAgPPkHmbNUybt0XsNaClpjv.nGhHjtku+3Q6.0QbXXE.HrDSRU5RX5D03l3XjI1A5ZPN3+.ezS1JIbBmrUxjlNEurxn7JkSSkqe6zrw4d6TETzIVI8+wO8S+xk9XlnMb9p.goJAhmy+p4fyHOVLIrmaZthdX3BiG+gkyjBxyRliYOegEm8Sr++HC9kKqJWK0HoCLUAaCBoV5+rO+y+qK8w4x4CpijnqLX+skTgyeWHvnhRO85k2waTnOS0RiVaoGjSaw4ivGHJKr3etzpzQg.GmkQ5efQJa.H6m.6K+j+7RqFcrIrOa8u7ekSYK2KHoD6SXf2pAE9Su3pcub5O+Fo1c8jXyWRVN+L9o2.Ijy6hYYMgi4uX4B9w4zU9R.aw8oQSVp84V9mYO28Cfhz2Bx7bN42uupH8KRLrzk3EGF9MvNt++uRQudZuGvYfkmsWpM9AxwjOFNU.YcFbNeTY05LxI7WNu+b7BO2+b7dfi.H+tQzf3PdbtMdG1HucgyPEaB7ihYXaiailOS3qvwGrnfofxmfPVHNYcmLYSUSmsZ1yW1pmxuxuY+V2uxuW.N9Wt9Mqjvip5YqAka7giiml+rOcruHAZde4M4A7vg7.OGSC81LHFDu.FSduPApsPjqIr2Z4sY9LpoS6OZ4M.mMZjQ6CeU0EOm589sKqXWBF.Rdw8X6y7c6isaZNKqne0x6HXQLNPSj3updHoyix6NCUxL6Eaply9l2m6Yu55E2N9MQE0uInwHpSD+wNpqsDU9WVBAj6.4uX8Jk2DGSRuuxrfhQP4hG63jeqlBwEtnHd8KJh23hh3MunHdqKJhu2EEwa+zQDql2drfqdPYXAat0ZxaVtTo0BvmASFlX8eAjtAwbG
                              

                              Sonic Architect && Software Mercenary

                              ustkU 2 Replies Last reply Reply Quote 0
                              • ustkU
                                ustk @HISEnberg
                                last edited by ustk

                                @HISEnberg if it's just in the beginning and the end of the chain, then you can re-order them using the range parameter and an offset. In fact, even in the case you have fixed FXs in the middle, it should be possible to re-order in two chunks, before and after.

                                In the end it is just juggling with position numbers.

                                if you have 10 fx in total, and want to re-order from 3 to 7 (0 based, 3 fixed at start and 2 at the end)

                                the the slotRange is [3, 7] and chainOrder is for instance [4, 7, 6, 3, 5]
                                This leaves 0,1,2 and 7,8,9 untouched

                                If your chainOrder is based on indexes from 0 to 4, just add an offset of 3

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

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

                                  @HISEnberg Quickly looking at the snippet, it's more or less what it does 👍

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

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

                                    @ustk Nice ya I shouldn't have used AI for that it was actually simple enough. I think it's time I get a new T-Shirt :)

                                    Frame_214-removebg-preview.png

                                    Sonic Architect && Software Mercenary

                                    ustkU 1 Reply Last reply Reply Quote 2
                                    • ustkU
                                      ustk @HISEnberg
                                      last edited by

                                      @HISEnberg oh boy I missed that one so much 🤣

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

                                      HISEnbergH 1 Reply Last reply Reply Quote 1
                                      • HISEnbergH
                                        HISEnberg @ustk
                                        last edited by

                                        @ustk 😆

                                        Just trying to get his attention so we can finally have another HISE Meetup.

                                        If it's too audacious of me @Christoph-Hart I can remove the photo, just gave me a good laugh....

                                        Sonic Architect && Software Mercenary

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

                                          @HISEnberg Not sayin' Chris isn't strong... But having biceps as large as his brain might be the main reason you'll get banned...

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

                                          HISEnbergH 2 Replies Last reply Reply Quote 1
                                          • HISEnbergH
                                            HISEnberg @ustk
                                            last edited by

                                            @ustk Those are the kinds of biceps you can only get by writing enough Hisescript...

                                            Sonic Architect && Software Mercenary

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

                                            37

                                            Online

                                            2.0k

                                            Users

                                            12.9k

                                            Topics

                                            111.8k

                                            Posts