assign FX to Effect slot
-
@ulrik Love this!
-
@ulrik Do you mind sharing the working example?
-
@Fortune I had to rethink about this, this is my progress so far.
You can assign any fx in any slot, you can drag to swap with other fx or empty slot.
You can set them bypassed/active and, I hope, be able to edit each one of them separately in the "EditPanel"I have not figured out how to know what kind of values all Attributes have, is it ms, percent, db etc.. I don't know how to automatically retrieve that information.
I could use suffix, min, max values...HiseSnippet 2662.3oc6ZktbabbDdAIWWBqhcjcTkJ4ei2JoJfPPH.dHkHFFQIJBGVwTBEA0UwHoZwtC.FoE6rdO3QEyGB89jejGg7HjGA+Fjz8L6wrfKAgojbIEKpKLc2yLeSeLcOMT2.tMMLjGnUo59m3S0p7Kz6chWznsFYw7z149ZU9U5cdJomKOJjzgGP1iZ4pcuS7sBCoNZUpL+2fBVo5BZhe9g6bOKWKOaZNIMsGyY1zukMlEkSs6l+MlqaGKG59rwJRu5l6Xy81h6xiAPMudKMeK6WaMj9.KTr4z0p7Ya6vh3A8hrhngZUV3dbmS5MhejmT9GyBY8co3f1Z8fERRtC20AQLRUaqQLWmtoG9PMsJ5cyUEyKUEWWeWlCKidtJ4ZBFj7YnpOpL2zfWaU30pT30pL3UQAdKHg2Wp2yNf4GkyAw1U02wKhFLvBLApvRJq1bO4qz2hCR3E0br0qocBfAYyn1Ma0pAYsVsputgAXFBiHGZEP.GfMHGXXt8X+nSLaXXtUbvgzs+N7i8Xi8co6QOjFzOeL5TfitO00RLCg0mFHoML.L6h0YDOHND+T2QVgzNOUrBVQwAVfFTH7IdViY1BY5MxxGkw34EPmz2DAnvys4PZDRpySqYt8fAT6HgDsMq2XpBr7EIvJWj.qdQBrFJ..9p3ODweUPK20xi5BmjTCDrJawG6y8fA0LS3aB1l7Ig9ZSeZYRfSzv3F2nZuir7ICh8riXbupKc1eLXdtLOZlLjPXF0XNG2tAA96kqa7OLp5xssbICNtMryBSvAn.3oKkyxpbVF4XTEjuoX0.10ETRNVMCn9fSSTMf5oqKvY28TAmQpfgT37.RtGONBPYsTTVan.WCaN.tX4ttt0hFwBQkQMy9CkWnXVWtmnl6H.coR7DlSzHbmEbFov4uRYCGI.UxzBgCDveD4FxyVSWp2vnQB9RIXvmG.2TViAx0ZcBi7mKJJgs3h0MpBXUH+fiy0SOWX7hCB.SmzwQr0B4hnGGIOFoTfPCJL2AGiyZGGonIDw+oYXb+vn.l2vZhgLOG5wObPMyWZVmrHArlBxRXIlL7a1.BXbZxBSu8nVcx2+8I60FjjKA.7KN.UyQErolsN9V2pi3GSb4NE9C0MjVpv4lmbxl0SmF76gnoVRWwVBWiLV0ZlhYgDNVQVMscY1ul5P95MHrLbJcK.eFPG3rGnXs7F5RqcvxMHKC5BgY8OPXM.+hkHq1PR.9zyaPVQrMEgSFhS44DXczccYC8nN6CLEJ7FjCZ0PcokCfkzzFLvATm7yqpZZFwJ7w7CMr+Ce16QzW5lc9mmSMNstLJd2st2j2wnFJuKONjtkkqaeHMedrLjOwKRDOSlRHIIg84GThRHVqli3PJJxcTNERJaP10BtwdfKmGH21lm.qCtj0I2lXZlrJnOljc.ML1E.WUBZsHvg.tmehksQxthdqnFUf1SMJrNo9oPzkj.pVyV1hxnh6TZyBxQnqtmiQ08i7wvBw1TsfUk66eAqqveQlO3L.pwYWqD4KC6K0VxCQBF.Lo6EHRtV4YqmIgRdBbhotY8nQxDfGGECYeFS8hqN8bZX3Pp70rBBrNQIuFZ2jEUT0bIxD+BJFopIExqRnh6nEig0iv8tAev.wv.5XvOf.N1hgkuF3mXdgzfnTRIYIEoO.H.bIIPSb0f.VM8iCGIXi5.zoRIdploO2O1eW37uCJrYC4Yo4q3LuZl+cOwslXF1hJfNOMQQpnDmVMBSQsBQCPBe49JTogGwhrGIOQIGDanbORIZkaWfmhtAYTse.050qmIhpIPvGIH2coi2DxqXhDhKM08SxyoVsRY4gKjRTr7SWbX2xj+qS2jRwkhuh.WByeHZ6E6.FrJSLTMDBfnVAI6+okrVxzy2dB3oNqxl.TU8LMEG5.K3tuIkENpIG6buxoTX2141spytmkhwUs9yKxrkUPpW736FAUC0OFdWVVYSOPkphzVphdPdYsGZ4FOIMH09qThayK6qvVpV22D6QFZxjFpliIz843PF1mMNotPDMRNSrBv7SLDovj2+UjMj6uY9xZdakyZCjmbQA5xO.qg3vk8PBzb+XjUMXEw8HmipsN2T6KdfRwx4SsxEV0oUW+kplcj0gJrjvNkCXdfxfhG6EJKuuohxVVAA4uPZeSH4atjvhsFjbs.gUWuvaCNBRVNwRm+njVGuxJxJjyeSQ.+HgOibjsXdIDLjEt0giOkKI5CtR+OUujGYTB9U84lwxoSJ9DicNHo3OIhxpEDfq7yKsZ5+97zJwKeSTKvOYSlrhSUvCuCBJ9b12775O2m6adNav1dCAuplN739tz848juK5vlRmbwVtb8oss3KlZMK6sbpKtnxiSXjeeAWlMTGsDoc1yTf8QNwpEbCxJoN61Pt2C3QzG5USDb.QajIYMXPo7v76AbWWZPorwtwELsIVCPder.WghKSPsJKTruW5meeuTaKmsroEJBx81wiE8Pep240rNsjNc.e5Q6benhQrAYIz.47gZFXHDpbe5gLaprcYU0uOM70QbesJyk0dDfbjf6mm1LM7pHMlCJeRBLsiU6N4IpCNBuCJmvK1bj3pmLJ+qfMyc8Ape1+E9AY.o54Gk9pG.o+Rc3tARNgh0voU4epelRkLTp9wHuxFi7hILN6bJVTkgH2uQR27LTakmQde7LDMwyHoCdFIsuyP16NijF2Yj00NizV1YjzuNzbkotMNO08U0yxDnnv+O1SSgCp2ypvuHUaZufPywadyadLNs7KAQpu3EuPXjJ2zoc1NwdM8c4Nwt3oWsIwnxKgADAUnarXGW8BYQmn14725NGWZrxLB2uTuKVjd43ctRvKDy89FuI8g+y0k0xkC1EfXy2sMc+hfxWHgxU06AIQD83U.jesXL4IVPD22P8nhHf1S46G4eOqe+H9y72OxCsifse+.KuPedXgEtGcLaeHxKTk3if30.52sGZkUouE2JnTV+vc5.GxRmSRTO3tb2w7XunBtGyOy1jeDeOMK7Ay2SyaSz1a+kCyOav8B9pjplhQ408a6cH0ExeJv3WAILE0alRsne8tbOt+HtGyV0nuGEpqZ3PZfJ1K8.AOTAtONmx02bOJ7jSUG3e2leK33YE.5I5kTWzd10ESyd8azkvkfAij++3R84+X6R8KuKeIe4tWQW9EzI15uPW8aJrHHl+8gu17o0jlz8EAJtdAT7RAq2OXQS9F6g6ZAQqP0V5OHdbOHghMELGdPIXX86UlCSJHG2BGKyn34HFfkCkvrMNtRBy1oL+IYO9wXWW9CB65xext9N1ttxGD10U9jc8crcc0eBrqWI6+zSYO2U.jeaAf7REtmeo8ZZhGJqR3IE6Ovy1rjh+2AptJHpK20JXxTwuyNxKLy0KfGoOdpuAKQET4eLAXgKwGO.9Z5cs9Pvg3miW.t1GDI1V6SI19YzdL1xNf+RaYq9QmkqHn.1OOw++aqpuKNlzVSz9eXd5sZ1RaLyg8Raa7QbKAwukOmkuDyYkKwbV8RLm0tDy4lWh4bqKwb9iScNXKttabDer79YfP2sEemHUprsmEDEJhX09efiH6N.
-
@ulrik I would like Thank you sincerely. I was looking around exactly the same.
I asked about it in one of my posts. https://forum.hise.audio/topic/4540/how-to-change-order-of-the-stacked-effects/5?_=1631765949078
@ustk taught me the theory and logic behind it but I am not a HISE expert . Suddenly your post and your practical Example showed me the way to achieve it . FINALLY. :) (y)God bless you @ulrik
-
@ulrik Now my Question is How can I add Knob Slider with it? If I want to modify the parameter of Effects with Knob Slider from the EDIT interface how to do it?
-
@DabDab that is what I'm also thinking of, to find a smooth way to edit all parameters without to much scripting :)
If you come up with a good way, tell me how you did it. -
@Christoph-Hart is there a way to dynamically check an effect modules attributes type (suffix), max and min values?
-
@ulrik You are the hammer Ulrik. You get everything out of HISE one after the other. Unbelievable. Admirable. It's fun to learn from you. :-)
-
@ulrik Does the factory method of creating panels, buttons and knobs when they are needed help?
HiseSnippet 1615.3ocsX0saZbDEdWGuowzRUhTkxsi3ltnPI7aRSnQIwXSiaisQkjzJEEEMr6.LMKyh1c1XPQ9cnW0mj9X0K50UUp8blYWXw1PAr.Ii2YlyOemu4bl8vzNv2gEF5GXXt2qlLhYX9EVclHjCZNfxEFGc.NQKpizOXB40GYr+jQzvPlqgo4M9dTBy810P84ud59TOpvgMaJCi23ycXujOjKmMa6m8ibOuVTW1q3CSIcsmcjiunoumeDflaXUxXD04Cz9rSnnX6XYXdyCc4.R5HoRVng4t666Noy.+yDZ4eCOj20igCJazALjd5V9dtHhwYMZNf641NIpCM.qzdFGbCMG7UVGyc4SmeFWba0BjYZjlOL2YYvqbZ3UZ0gmYJ3sqFd2wpiS.ejb1JH19bqiDRVPOJrEjFVZYM14O9Lql9fDBYwgzOvZE.Clpg8CKUp.odoR4ajMS1L2+9jel80ddjnPFY.BvfPRnO4LFwgJHTGzuD4.1PBiFx8lP7fXNf3KxlA1DCkjORCHiDduPoK4Ij29tFoWpqTrnk75dAsTv4UCXjdw4gCYxA9tYyvEdbALcjvQx8EDm.Ffh1TAyyV.IMEHiKPljOymxlg.e.qbLrQRFgBPrOi61mIyqVxy2g5Qzy.tMgmnttWxZMzFS+chfgLbyXDKPxYg.yN7G5b5IwZQhcO9I2.Fu+.YtGSJC7cp4AWKGfSWujZxym2OZjUzkJoE61WWi.3rz3VspT4QOpd8FJwRKKBIHZk+jejDXI6DVxtuNj+zTm2uXOnf74dd1xA7v4cR9FWEb.lDnFbSj.7IjFn4zTTItzb739QRI3bjRH2ijaeoHWAfDv+l21SyLJNJJbfMLbco7Y1eNpeDM.zqo+vQ9B3AfrU6OojPxFmLMZCBZjkD9dztPdzBH.HKddB3knzSw2K65EG+0tP7OM8WG+vvMI901eEh+4iO0WALYTfHNOpQlyajAqAmUfJ5pJJBg36AIkmMUkdDZHYHULIV2Pb7D+HhfwbSHJ8oIJkhB4h9DZ7TjeMBbvn.1GAzoTqGDUjyB3RTrJkHX0dXwhEylome.wl+jRMH7uKANvy26d4ylTsiH0IJXtXN0NB.uoSamSYgb.wwmmr48H1W1HOgDIbY8.z3leFAO8zt2xeG3nzGFkx9EHvd9zsb.1r02BWDQXvXmabt7KZoI4xCExmi6UHuep.NvFVFNK2yqK7RVBxmvypMntpJ0vKe7pu.JHP9Kv2y1IwCE.l1KhoI98zI+b2w.9mUIyA5Z7o8loDF+wxFhusDjVYExSI4N8jbjGC+qUqbnTnfcmxKtieGl4aqqUKn0Fs14MhyJ5hIZSccdRWT9XT2LNdsSGJn1ohwS7krSE1vaMxrWlyyPt3R85ckqEaLOVvUtL1pSvxTzVDMrKKHgMSDDdm+7MUXs3lJR2yiiNMOkf9hiDb4oiXhE0pgQbsAzzwMiQEHpT0xwWF2xg9XbCtK1ugJmrDvjFJPmtwOiU2.kutFnx00.UutFn100.0uZC75iN.dYL1DX7VyrS7g4Nf8Qn6ZcKg6Yc.K7CR+Qp8t3pL3YsiylzvH5KkeuU7lmwXHkx7eLMLlfObWvopVQ.KdyeOFE5dVvYbimwbmK6i+mLDkexXD6G7ArBF+0EZYvW1ZbgWQkBlFKNnTuXcN+Au76B9yFdXwFWiDKK3Hmk4nKwdk0d4uSXueaavdkWA1q7RYuxqE6Ud8XuxaL6UQ6klId4O2FrWkUf8prT1qxZwdUVO1qxFydU0d4t6D6k1laA1q5JvdUWJ6UcsXupqG6UciYuZZubPhW3aC1q1Jvd0VJ6UasXuZqG6UaiYu5Zu7hDujaaT4VeEXu5Kk8puVrW80i8pOO6c4Ko41VG66F4Qkye+Q3klEu.z+2bWTCdYLhPtbR5KUaqboRqJbuiUatzYvUi2ctB7haxaY7FeEcYsNrWOlibFX20p0ur8uONC88oz+XpLfioKmDMrieTfCCPh.+cnXlyNX2e5wkvwHyzgIbUC9W3S7hkwwlwKVNYQigTm.+26naeDuDvaolAvjPcWn6YcLNlTNomQKqREKYLj6xeuiCREeCf8qVmJafNU2.cpsA5TeCz4AafNObCz4aWpN30B+7Ho+PcYBLQ6CU8taZdnfBYYpLRi+Cr0gNYA
-
@MikeB thank you Mike!
and thank you for the factory method, it might be useful :) -
@ulrik Man! This is awesome...
-
@UrsBollhalder thank you, but beware, I'm only experimenting with this, maybe I'm doing something really stupid 🤪
-
@ulrik Of course... I'll just study your code and then try to come up with something myself. That way I learn how to do it myself and am also responsible for my own stupid mistakes!
But just seeing the possibility of it is really nice!
I would want to have the boxes move while dragging for example, even if there's no mouseUp happening, so you get a preview of things so to speak.
-
@UrsBollhalder said in assign FX to Effect slot:
I would want to have the boxes move while dragging
If you're refering to the "not dragged boxes" I agree, this is a swap so it would take some maths to calculate though, consider moving the last fx to slot 2 for instance :)
-
@ulrik I am studying keep practicing from the Practical Examples /projects. If you come up with the actual solution Drag Knob Button etc Panel and Swap FX Slot do share the snippet. I really want to study your works. Another Work I am big fan of yours.. That is Color Chart. I guess you made it few months ago. You are a big inspiration for us.
-
@d-healey @ustk how would you decide what type of value, the min and max, and suffix, to get from getAttribute()?
Would you make a long, long, very long array with the attribute names from all Effects and use as a look up table, or would you use another way, which?
This what I have so far, as you can see I can manipulate all values and set them with setAttribute, but I don't know what type it is, is it a boolean, values from a cmb, etc...
-
@ulrik Thank you man, you're great!!!
-
@ulrik I would almost certainly use a 2D array. I don't see where it would be very long, FXs don't have hundreds of parameters…
But why would you access min and max values? They are fixed values, so you just need to know if you are building a gain or a freq parameter or anything else. All gain are -100 to 0, all freq 20 to 20000, etc… -
@ulrik Once again a perhaps pointless suggestion from me
Maybe via LAF (obj.valueSuffixString) and obj.text?if (obj.text.indexOf("group2") != -1){ g.setFont("GUI-Barlow-Medium", 17.0); g.setColour(grau); g.drawAlignedText(obj.valueSuffixString, [0,-4,90,36], "centred"); g.setColour(hellgrau); g.setFont("GUI-Barlow-Medium", 17.0); g.drawAlignedText(text , [0,32,80,20], "centred"); };```
-
@MikeB I don't have any knobs, I get all values from the module directly, and there is no information about type, suffix or anything, I have to create them myself so I will go with ustk's suggestion with arrays or objects per parameter