Dynamic reassignment of effect slots
-
@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.
-
@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!
-
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()andonChange()functions.On
make()I manually created the Fx List and added astartIndexandendIndex. Then in onChange I you just need to offset the indices (addstartIndex) sosetEffectChainOrder()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 -
@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 untouchedIf your chainOrder is based on indexes from 0 to 4, just add an offset of 3
-
@HISEnberg Quickly looking at the snippet, it's more or less what it does

-
@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 :)

-
@HISEnberg oh boy I missed that one so much

-
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....
-
@HISEnberg Not sayin' Chris isn't strong... But having biceps as large as his brain might be the main reason you'll get banned...
-
@ustk Those are the kinds of biceps you can only get by writing enough Hisescript...
-
@ustk Also I don't need to worry about being kicked off the forum, I know David will protect me.

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

-
@HISEnberg said in Dynamic reassignment of effect slots:
@ustk Also I don't need to worry about being kicked off the forum, I know David will protect me.

@HISEnberg Damn, I thought I'd burnt every copy of that picture
