Scripnode 101
-
@matt_sf ha! I've had to remove and add a bunch of stuff to get everything to behave. I ended up taking this node out of the oversampling container for a quick fix.
Do we have access to individual nodes via script? I can't seem to find a way to bypass the oversampling. . -
@dustbro to my knowledge, there is no way to acces individual nodes or bypass a container via script -except for the
container.bypass
-
Maybe with this? I don't see it in the docs so I'm unsure how to use it.
-
@dustbro I've never used these function... and won't be able to tell how they work But I guess, if you can do the bypass connection in the network graph, you can't do it by script...
-
@matt_sf I think I figured it out... snippit incoming shortly
-
I feel crippled using the new layout
How do I access the interface designer for a scripfx? -
@dustbro What I did is go to "View" > "Show custom workspace" and in the empty tab I displayed a "Script content". There you can select the interface designer for the scriptFx, like in the old days
-
@dustbro Click "onInit" and start adding components. You shouldn't use the interface designer for scripts that aren't the main interface, you should do it through scripting.
-
Thanks for all the help!
I've created a combo box in a script effect, but the parameter isn't available in the main interface. Only knobs that I create in the dsp network show up.I thought I was able to access these in the past?
-
@dustbro Any script processor that hosts a DSP network will forward the parameters by default to the network as this is what 99% of the use cases will require. If you don't want to do it, you need to call this method.
-
@christoph-hart I'm trying to bypass individual nodes in a network.
here's what I got.HiseSnippet 1206.3ocyW81aaTCF2WZuxxAA1D7Bd4o7pqRcUIisARSHZSRCDAMMZoTMIzzjiOmFq3y9jOm1FP6CDeM3SDeCfG66tdNzzptLXhnpp3m+9yOO94mcFojDZVlTg7pe5xTJx6S7GuTnm0cFlIPC5YDLYYJNKanLlh5X+JMF44s02arvq91H6m+765f4XAgVIBgNSxHzehkvzURGcvOx3793X5orDGqe5ACHRQWIWt.PyV9sPoXxb74zgXiY07Qd6bTLSKUi0XMMC4scGY7xwyjWJxs+LVFaBmZVzFMFBTt39RdrAwFontyX73Qk65LDDkQU0fsxqAeg+wrX10xqpEOzpHrxC25gWsUg2Vq.u1tvqkC7VCj7bfz14P5Q9iIJVptRiAOer+.glplhIq1ZxsE48G9ckfAB89I34z9JXw0ND87Vs1KD92tunQvzEBhlIEgRwPoldhHZ2feKndvaCB+mplNcs5LIRI4bpZspM8Z0c4XjXQxDpZuvKv7EzqMDJ.qVU8u8ppaSmjuucLTJFHX5SRoha6n.pnXY5.EnBLUaq+Orn92UlLQ1QdEhAE5F94EcqPjE3tCDnedPOrFWFNHxP1RoJMyrQ75Qu.lNxau086QylqkoVaSRkBCN79n6cxupJwwGrzcQBFz46UCVvzzDHyOv+j98CNYHJsbyOH1N3aSRX+WAEmadBDN6KiWvw5UGHLr.EJf94JmBMG0DYL8R2hx+ZSI2WH9H+QLMY15wXs0fQne8eAFK3VZ3ezzoThtBfa62+Ue3HRBJZyPNyY2c55qgBo1uWyOrjDIip+AJ67Y5n1FZifPXJKSCSrpv3rzvuM7Hw4LAcehhBHuWV5Pp9RoZdTypu2zP2zHv3fId8kpKwp3hwsrSkivJfuG3nxhlh4YTi4gMbS0Ii0xbjBY7Wdcg9Jo6mtHaVjI9mS0QMkW.wBmjxoO4pl6ZC28x11EFuRty8JelCxdYgAGGWNaF0LyV4bFNatW3yf+JhV.SvghjKE3M7njSjTRE3RKNUphjgLgy1X2PooXV1+hrFG931PO5suHHnDlvd7Zxk0gycMAoH2cwb9D3B3naGdPzgcT8FNz4oJZJVQg1HGuLJuT9R3rvdgS3Rx7wrekdy6.Jng5XrHhLCKDTd1lbUwN264l128X6KkKzLw4Gi0Jlg8b3hjwvyRHztEnqjQsXcKyZCywXpH1t3ufOEJaaV6Unrcox24Ka9b+azGVyUNESY1g+huCi94S5UCgnC4b4klyBrBNQXh2JajjuLclTvHFQ4VTtqOLQtvbqT9V2ql8Egd6zGSfh9xQX8LCaq4lWfZip1m37FRmbWwxX4uf9S0LetLSfKeHXdcE.Rh8FQyy.2xnOqBA9lT7o9tCunU.0W5.pUrxkv6dlTjCXs76kWnmy1ZVA2kTKeWOH6LiVBliNKuUAkNGP+Yq.51+eF0u2AniTNOAaOZ99+vncdGGTrOAxGx7xxubGOK5Cx3eBlnjugTbuGTJdfUBzxD1euSc+iMqCaWNj662Z+VnD32e7FBw7pgG2FgVuOOYC74q1.ed5F3yy1.ed9F3yWuA97M2oOle52gKzxjbFSPvnirGi87NRfgKVrCjn+FPE9LE.
What method would you suggest to connect this to the main interface?
-
@dustbro Ah I see. It seems that the parameters from the scripted UI do not show up in the interface designer when you want to connect them.
The solution: add a dummy parameter to the network, then the combobox will show up. HISE. No hacks required.
-
@christoph-hart got it! so... how do I use a combination of UI controls and regular callback scripts on a dsp network?
By calling setForwardControlsToParameters(false), the dsp parameters are no longer accessable. They appear as empty.Ultimately, I'm looking to use a combo box to bypass all of my oversampling on a dsp network.
-
@dustbro Grab a reference to the network parameter and call it manually in a control callback.
HiseSnippet 1251.3ocuW0raabCDlqroRrZZPSQd.V3Sx.tFRsIoEvnvwV1JPHUNBQNB4lA8tTVDhK4hkTwVIn.8Ped5qPK5k9Jzq8MHW541YHWocksparPZ0AokCmY427y22tpWlNhaL5LRvFmLMkSBtGs+TkcTqQLghz4PRv8ocYFKOKza5fooLigGSBBV6YngfMVm39798NfIYpHdgIBYfVDw+NQhvVXs2SetPJayh4mHRJ48idZmHspkVpm.3YMZCRJKZL6b9wLzsJTRP0ihEVcVeKyxMfOGnim1ej9Bk2+ABi3LIGWzjzGtQdyjViDx3dyxUCgDrduhLeMel+PZWQrXt8hJvm41HrHhx0ffJ2DjZdKfTPIHstGROf1OJSjZK1AwymP6nfFxPFTpKCEuujfeg1RCNnr6jvFyamAKlGP8mznw1gvWas6vIpHqPqB0pi0V9KT02p16psQsuuV3U2Z3vktGdLYZojmszswta1MEXc0jjy3YaG9FlbBetiP5uXMs5GVMMxm0kbTq5nD1WjxyW2VKiwZEd806.j7xFb0q5bHyxvlRtMvuTdlUfvI3P9afoZeKZC5gbyXqNElquV+ClbzwSjL6hiSHuIeCndrPODaTJivNsLu5VLi03Fmw9Pg3Cn8D1nQKGiUVBFgJ0+EXLmY9oziFNjGYK.35z1udUogMt0zvZ4zP3LwC+d4KCa+5lKi.V42BnvrnwBy0YgwlzvuM7H04BEemnLNfuCMoGysWnyFWeSiKlSGdYyM2Z2Z0JhCiBhcmy41E8BszikAZh.mt9lyuzEOFggaaqytfkEmyyLmnm6ko9PlzvQeKcXOWoOCNuY5Fr3XzR8M6NE+cysCAQiFXLBkDxixbYmiQ5jTsBBsLW1gjA3R3QJQ08arqiiWCiB2NGgsXR4YfXec+8qj3TZFOkkwgLPxlV2vRRk7WB0vsCOSpiF2W7V90UXR8svCPOpGMhoTboYUDhp9QRbm7R8DqPcdWlMSbIIfd7jj9vi4h3sxQGXKnBpA4W2.Wi7p9bUraweAex2rItNHeyly1rP9xqZA4E.GqaB994ir8khXdFQ.iq2k5atDWNmSk+ge8O+88H4CmN1P90.WvO5WLIR1WJ0WzB57hbQBfB3r0SKmlNRqDQnIuGyRz8SzS.LlmsAUNVGCGd01rHnNOsGyNBkePobfqyy1IZNmegyFCa1aJ3KTvwjfYO9dBKPJg1UwzOpeErVI0bOgGWAxYU7mSGy.b2HljLvWb.vhmnuh3PLEckRAlBYArWil.+hLnaAFCpTFQjRvEg2rUjf6zUnFTpc49zkc4Ur8985a4oH0nre8GyuvC0xdhowcn9av0t06OwpgzwK6+OCqp92JovxGeXN3pCotYbE2QjM4i74Kymp5DOqAMGXnoYIK4.sdbByMluROuG8MW0CFZ924YWNaJX5rKL1on3QUpa+DQbrj2SCOY0kDyS9e1TpL8tG9SO6Od6OtWR4W8lPRXWVtbYlLbHpy.yYCExDCn5j1IAdUZRvmSekgGFyGxlHsglwv8AjzGyiOQ67++EopDVTl9zn7GOA0865r.5UJ265uA7mNf0gMmoNQoM1oAVhDmFEgO++KZRHKOlubEh4qVgXdzJDyiWgXdxJDyWuBw7M2XL3eAJWN.mNAC8NxwYBBNRwfGB5DxH+MrSKeD
-
-
@christoph-hart I think that works the same as I posted above.
I've added another node to your example. It seems that all nodes can only be controlled by control callbacks.HiseSnippet 1432.3oc0X0raaaDDdoroarZbfSQd.H7IY.WCI2zzBDTXE+iBDRkiPjiQtYrlbk0BQtKK2UwhInmZOzWgbqm6gdumZu0S8TeB5aPt2CsyrjRbokRhfPS.JOXvc1Y39MyNy2LxcSj9LkRlPbV+zzXFw4lt8RE5AGNfxEj1GQbtkaGpRyR7xDcPZLUoXADGmUdHJvY8UIlmWu+AzPpvmUHhPNSx8YeMOhqKj1s4i3ggsnArS4QVZe2ls8khCkgxQ.dVwsNIl5OjdI6DJpVEWhyZGGv0xjdZploHNqdfLHs2.4UhL8Oiq3WDxvEMH8fOTl3Vxv.DwnTxgC3gAcm32JB7U5VDEVIKJbG2N7.9T4EQiMMa3UXgc7voRY3sRI30vFd0sf2bfjiEjVMCR21smeBOVWrChmO1ss.tb5SgvtMTxzk37atGJAED5cinCYsRfESMn18pWeGO3Oae+9iD9ZtT3IEmH0rGKpsc0WVc8peaUuquU+9ycO7XRjggrj4tMdSm71LrlXTzErjc7dNMbDaphf6WNl59lio1W49YdskhRQaAW+3Xl3MkHPxCUP7uRNp.U0ln+sxi98B4ArDBGBxej6iDxKZPL.1NmmrvFu2bL9osOhpoXNPNb.HFyRzbz6cNh8bnfJKiXc2iXpgZYrAuQwRABdma8NQ7XHL572vYkhu7SvKJcJFCWyn.IhGDDx5JUb7NxpB+WAhf3d7WXP7KuyO+v+5Ee+9Q1j.DRDcrMmfZT+97wlp297vHkFvT6Hnnl37ItOUw7BX8oiB0dpgv2IjKFxBNUZzOdxcS6.Cujwc7Z8rF.uPBPI.ow3N2vsSpA1DqfvFuyHeAJaJalV.YQy+mELHyxU.rTxfQgTcYpKjuNeCzUr4KPRAA3ho1v8+L9rEEh21sKW6OX9XrxbvHVp9d.i4cA1v8398Y95B.tpaqm8gixuZ90Lbl3gW5VeNj8U9cGWf2SoANzDu.Ur2W4cr3RtfsqeBCv2Qp3SX5qjICqskxXy48G2Xqsue0pE1gVA1t6kLcYsPIcmT3UaqouZrGsPwzsjIWQSBxI.UmJmpkpVeZnhg5ZcXXEFbdS5QQCBPI01Jqhdqc7fFT0Qa3BnZfY22vnn+jJd69FFjbFtDFkwuV1F22zOoJZEtcNBOjFFdALjQsrumUiv3DFvxv.OHjlVSQihCYOAhg63cQnzeHV2Oa2r7hzCPMp4OfJDrP0xzzasENqpwaOo9IxQZt3xNTfpAo8OYTTOX7Je1g4nC6.TA6YkstNtFqq5wDAlE+C7juYCbsS9lMlroUaSmEny2T55Ya8kmbZpFxeGpExR8KxDIOHLTdEx0yyIIfR.irtxvz3ARA2GEkowDG8AQxQXigLu0oxIx.jiuE0Ghyoco5AH8CN1.TqyR10eZMeoyFMaxDpYAJ3XhLsb.R5REkv0UQ1Oxe4rhUq7rBdbEPmUI6bZqNC20mFRNKK3.fEOQUAhcQUq5dAvSlLRMfTxA1vs+3cmt0hiUmJ1HiXAaDlSVA8N6vEmU9Zaylcniulr5M6Y0ZDD7iu5U+x98FxtJCs18XxbmC35iXwfKLyW5AizxHnJHXZvHOFrga7.phcd.CJPKGF1DCC169AIRb2YiD+vetXQhleWzere137sRXeyHlvO85ghzqEJJAsJVPasrOTgjYgJgL6k1q2+ZP07L+KsY9blJeAyPuoJuLOyEGawJssq8DbV2+jq6H2rvQ168um.y7rPdR4juRNi8UH4.obXD0PosbC16XMSq66lSc7j76zIunJGJZhCo9AoqPD0OQdte9j.faeCiDn0fv7y4W2sCt1a5Ofx0s9t0wws4m66iiZ8oMHj4aydKgMe1RXycWBa97kvl6sD17EKgMe4a0F7+rQNGClsCB5drIk0w4XAEl2vvPR9W.jKz6uC
My prototype dsp network has about 100 parameters and I'm too lazy to write 100 callbacks :)
-
I guess a more direct question is: how do I bypass the oversampling from the Main Interface in this example?
HiseSnippet 1246.3ocuW0raaaDDdorV2Zk3.mhdnG0QG.WCoTmzBzCVVxVsBIVVHzUH2bWQtJZgH2kgbksXJJPA5k7FTja80n2xKPuz9Lz64MnclkThjxx+TA25CFb1Ylc+14muYUuPkCOJRERr13z3.Nw59T6XodTqQLgjz4Ph0CnGyhz7vpIK0LNfEEwcIVVq8M3BVaTlX96C62j4wjN7rkHj9JgC+4BegNa0dMdlvyqMykepvOm060niiR1R4ol.3YMZMR.yYL6U7tLzrRTh05G4JzpPaMSyi.aZpbisGotPlXeeQjXfGGEpSrgMJYYRqQBO2dytqQDhU4dY270Rt4eJ8XgqX95YQfsLJpl4Q9XfUoqCR0+W.IqbPpbBjdH01ITDnyzf34dzNRHgLjAg57PIwVh06osTfAR8t9rw71gfvbG19o0psSU3eO5qGNQ5nEJYUkrqRyOQt8ip7CU1nxOVo5hpFNbo5viIT44wCWpZL6FdcNtsbh+.d3NUOm4MgO2P35WLlt9sKl5jbqyYnR1QJzmDvSkaq7bwXE98ky.jzvFjKJkhPvTsIS7fzLgsmvkGRDvl7QzmIUCpSLfOeMOYQm2J04VJ+AplpoF2qPSxcmXu3N7g8IeWmCYZFVTjhI.mA7Ps.CGVGxOG5pRJQ1fdHOZrVE.mFr+AJIdCrt+MB6oDKp0eAGWL9we.e3Kbc838TQBLMg3wBgSvuz.5+CrEuo.F8YSmK91+rQzjgCE3dRq9sugDLKr1w0PoX.Q01urNzRGBcyP0Hp4dz1g7WOgKchI9JW9BqjmcYuFjbWu0ucA1LD9duFwyE99nFFzSsJARBM2GhpeB8HICppbqLumZIm3lom3yYC3doG2I1mkHdEG2O85FbndlYJYgZB9TMlYN4bdXDyOvSHeEPJdolef1Q4NwioKxEgjtoJvrTdB.rKWBYu374oEInJe0MS0x0LcCsJ2R39PZOg1YzxwaokfWr26+X7lR2uI8ngC4N5LvVl19kWK2d4aGOTFTts77URqpfyGARgFlkwv+VZFaZPHG5o3mp54wh21TPweAf2cpNvS4LFaauLEbZ+YSzhscFwjRtWzpvTu9czzOxKTSzPivwLcngFo6Dea3c.N7VonaV6ZpbMTFqWr4RWiveC+kprNJakpr9LkY76jtb8EpvwlzQ52PxHoAKIf2EniNkGoIG34ot.IBDoUvPdvrVOkWbvHkT3fKkXwLzdfuZBxZj.YqRcMjaz1LGHXE2ioGg8F3.Kn3iGtqStF7ENe7iYuIJ4FCGkugSBdQDFq6MiREmMTxZsbyJRp1PInGqTRsUmn9nVGlGoexfG.j3ojDMLHsbxK+Tynn3OdJo.3+rbfufUWObu6.2lzfQrH9YtbnruH11hNb5t40dCXpTdLQxEMQ.NSBFbdrP1O2jZJNT5X1z9EldCiBsKNs7We269s8sGyuHAjoq13m8+88SdMW1DuhaEItwASzJen0xPWV.ZWMNWewc8tG2WZ6LuSQxMrFQoOaIULs5GG2WLm06pdI.ooRM1mYZOWoWB8+BYhOyITclSB+Hdm+XyJPItz7yU1.9cSfb04OPjRqsaM7QVhybbvoMeNLoZ4973UvmuXE7YuUvmmrB97zUvmubE74qtVeveEWZCEVWBKz6HSwkkU5S+Phbx+.ioCEBB
-
@dustbro
HiseSnippet 1615.3ocuX0raabCDlqjnikRcZRQAZQOsvmjAbEjRSRKPPfkkrUqPhsEhbMxMWpcohX0tja1kJVJEAn.8RdCJxs7Zza8Enm5KPeDReBZGt+nkqjrpspi8gfPxYH+3Ley2vUc7EVzf.gOxn3wS7nHiOB2cBWNn4.BiiZuGx3Kv1iBj87El8l3QBBNpqIcLw0yghZDNA0FYXj+aU1aTr.J7u2uSChCgaQSmBgNQvrnOg4xjoy1o9iYNNsH1ziYtZVeu5ssD7lBGwH.a4wUQdDqgjmSOjnLKGFYr191LovuqjHoAHiBMD1S5NPbFOx9SXArd.HgA0PcgMJZ5VBGaEhUyhZNf4X2IIFDffcoSZDIeTD4SwGvrYSmOMxb6vELS8POdXjKK7xmAd0zgWUM3s.HYnAoBQP5N3tV9LOY5JJ7bSbatj52mXkM0DYKJ2eafaJ.K3xJtjgzV9vfodT9AUqtsI7Oa8vRkfPefz7kDeyHea8rZlOxLjXT44T4986Ssjk2LZQSX0MUdUhwcXbpY+QbKISvME7FwTF045KbJaIb8Db.AaC6tyH5Vk9oREY8MKGNx7QOxr1VEKUr3zisR.UtqT5y5MRRKmNczFuMX9CKUj5DPuLNotiuF.bRz.tRMS.V4MSv7lao1mXj2j33zCXfkm6NA6k1E9PgjdDub38pzqKYN6R86uv0h2KGp+BWVUa3uLGKyG41i5qGUUFBDlrrP74yB0KRrhBLZFJ3s4L4QdT94U5fhil.iMWLp.Skg70aEyW65vro9HFPKuA9wbQuZnP.qqRfl04aG6Ljh5IZHFG5dIbRZXtcnN56auGQRTkNwXBvoG0WxTg.i8nuDzghJjJh2iFLTJ7fSaJE.DA+Og83oG36bpOY5f5+XcWlssCsiHfoRQSWw6WqGHodcYuhpKS5RR2o27m0CF0uOClAiM+tWg7RBussCElmVtAhg9fNHT5pV4l3V9zWLhxslfbE1zYlQWW9d0QZWy0tXA3TD96520eHndH5wF4fQLI0EhteBdeNAXT1klp.sfSbi3S7IjdTm3i6ntmFM7bNte9E0o.WlDRWAtAcrTkgN5kT+.U6HF+4P6j4jJAQZg8HGhLqxspcU7BprjtboRRjCYuI54oYkyKbwjyWd2lKJbuCtCSZMXw3M2BvqpF7CLdiaNtANpYPJXKfa8rquNgkvIx6gGdlhjEzCz3M3T0SOeJTGQOVzwgLobHIh9T.iaa1yQXMTUpNujabMYCkEksFP3bn6ypnLu1ENpTaoQEzSEij.4+.BzvSUNd3H2tvqlrnMiQWRIZ73ppwJNRWJ2Nbv+.+EuXM0Xi3EqkrXp1N5Pp7Lg+vvzQ7+GRFQEUQA7CAInioARztNNhyTE+rXVKjGBmqivYh2.AmYolJxhDztqqXjRoHBxF4NLTPasVDKHXMoCQNPUOnZPADNpeEKsh5YNe0+I4EjQ2X3nbC0gf2Oph0cRjQU8ExkgzlWqmQDySMBpwxEwyZGbhZUKhC5jnFP.fUmnx77QnFqLcc739DU6iLWgaGdE.9Qk3UWNXy.sBYfVtYf1GqH.ZWrXzEEOQyX7ZJ4FZhMqieBDSI9HTpTywDe34QJdV2yThPSGajSeh3lsbZH8OH6P3bTWOUupMvAh9xSi9TBTG81XIcbfa4AL9IY6p+W6b.Y7Ly89c5NsiZAbk6i5NjdVTTV2HzpfyaoiyZWS.UKqonbIifWcL+4.4nkdNo1s3CSk8uANZClaq2cjT3B5R1SY0wj4YBKYnzelVUodR9Byry8+qnyHCNEIuKfd2wYw4mqgyLVcIJAux.5FXuAj.5o1TnGzrRD8GWQe0KA9xoiuKNuBqdg3b7J3coyvqd2ae6usyb7p5+h6erSzGhl97yY3VSpmkaoCsrCxDjz4SWsjt7WkjNsrUsq8j4ZyKR7AOYd94O.0ZPa1M5pm2M21sTc9bo8izSJcNuOqBM6kY83d.nKuxb3C5Vnl7bNsz6vMRtCSegQF3mHte025X+wvKmCBhBjPrtgPLzkD9lvU5SuuVdAqKwxWbZ7itTwx0CmARG7veQwh3CTiMm9KRfwUqTE95Ya1oVVp91eI7IQK1m6tB97UqfO2aE749qfOOXE74qWAe9lk5i5GWMtYghpASzY+PxkgQ7uwfRcD8u.ZSmJoA
Not sure why but
(value)
for the comboBox doesn't work with the xFader, probably because they go in steps of .5 or something /shrug -
@iamlamprey That's definitely one way to do it. The issue is I have about 10 areas that need oversampling (each containing 1-3 nodes). It might not be the most economical way to handle a dsp network that is already pushing 100 nodes.
What I really need is a way to access this parameter on the main interface: -
@matt_sf said in Scripnode 101:
With latest versions you can compile a dll with the workbench, then just compile your plugin with HISE and the dll network will be embedded into your plugin.
Can you give some more info on this? I've already created a network in HISE. Do I need to open this network in workbench and export a .dll? How do I do this? I don't see that option:
Is it this one:?
if so, that just makes Workbench crash