Scripnode 101
-
Can someone explain to me the best way to smooth a delay node that is connected to a tempo sync node?
I've tried many combinations of values. I can get tempo sync to modulate the smoothing node, I can get the smoothing node to modulate the delay node, but I can't get the tempo sync to modulate a smoothing node to modulate a delay node.
-
@dustbro There's a x1000 factor issue. In this snippet, the multiply parameter of the PMA is set to 0.001 so it divides the ms by 1000. I don't know why the smoother doesn't take care of this conversion itself... Bug or intended behaviour, that is the question :)
HiseSnippet 1298.3ocwX8zaaTDEeV6LI0tIEpHGQHeLUJDYWJEj3PbhSLxh5TqroQ8VXxtiim5cmY0tiShAwAtgTOvINzSvG.NxENAW3S.bse.3DUhyH3M6rd+i8VWa2zfODk4Mu4898dueu2L1c7EVzf.gOxnzQC8nHiUwlC4xdM5QXbTq8PF2B2lDHo9Uzh1cnGIHfZiLLJ9oJAFkVBE94EauKwgvsnIhPniELK5CXtLYhzN0+LliSShM8HlaJsuW8VVBdCgiX.fmh3pHOhUexYzCHJ0JfQFKuuMSJ7MkDIM.YrztB6gl8DWv05eLKfcpCUsnFxDLjVbSgisBwJonF8XN1cFE2AHvJcRxBE0Yg0wsY1rX4IYi2NbiJImHc9vnPV3ULC7pkFdUSAubfjQJHsjFR2FaZ4y7jI6nvyMws3PwoKAR6oghVWjwuhaH.E3xsbI8oM8gEwGXi6Ws5lUf+bmOo6.tkjI3UD7CDR5C4abmxeY4Rk+pxUFeqtcycOka7ENNT+b2VUo8m1A2fOv8Tp+lUNm3LfFqHD9Yyo3WdNMcI2RG0oTTvawYxG5Q4uLh.JJUA+2iZsGQRTEhHYfddTeISAAi8nmCrZcYoDdOZPeovC30STy.1hvdfCQlkBo5ah1.xAYpaphCOfIGltuZbd0RyFuZ5z9YEt2F2gIs5kOdKjCdgr1aZ7F0ktFd+tcoVxDvtDt4imZK4bCkYs8rbT6I3eEPVMZYklOtVtMleCNoIvym5Q7oGI53PFtQ.w0ygdHf2MqbpivpuI6KnS143ogvtJM1vpGgyoNAKRC1xy7PqZScnE5Pw.IieVahzmcIzodv.WSXTtEsQD5.YFET8Y50UUqU7ESJ2Nbw+Beh1rlZsQzl0FsYpVzCnxKD98CKGQ+OTLz49fvj7IcurFZGGGwEMDtdrH1KTCBk0Q3LzqmfyrThzZLBo63JF.NIBtFENPXCI.bShEjnF1gH6o5KTyX.hG0eKqXBXFemttqLwnq1zQM3RWUnDdwVwTCXz7K0Jnqpf1psBNVsqEwAcrp9o58PJaFdAVD9zpJotdhSBFxsPY.75g.FXBakRiEEhnj4AGQ7OiJChFVxoV5zbXRqEXXL1ykf5P7gawgadThVAqChDo56gGsBHksY7n.MYtRaxkiI6t0MkTOUCR54kl8oWnC8zRUYmUvGohczXlY85no66Wr8j9t5b56UwsG3HYdNLvISXez7G7fylK.TBuOm.sx1WEdu92Nd3+CO6Y+7T79svOhqnbT6vW8MlGX0QoHwZJSF16ZwrW0VWCz10wAtBgrG09Du3jyLvhKlJUtxBlJC+LMVr1.wlY4u96Z7ze74auy.ovEFiGd07qhR+KyFiZZ.o7HJ8vQXYEb0spVsF5Zv4X7N1SPkUWLjvixsFlgV8twzpbz7Ja98xpGVEWuVC+.3VChekCga5mGJ4MvOwlBOQHKM7lvKPAggcUutTw4tHLAU7m96+4Ot7O+sYmJFN130e7xagMCKfvCPxY9BXt+mGvlhUFWFGa.2SrC71JZq4f5UHy.tLDfBWAi0ym.74uyd+dDAP+s6mZ9dk2L9NMyO1T+02+7fmhdu5uDBnJGsqPz2kD91wE6a5cc7RWWhku3jnoSph4MBk.c07veNjR31p0UpgNWG5X0nWjKylchkk5qB89vX37OycWfy7AKvYt2BblObANy8Wfy7QKvY93odF0uLTDqSM2FDzY+Pxkgwn4BP2L5+.DfbWHE
-
@ustk thank you so much!
-
@ustk said in Scripnode 101:
There's a x1000 factor issue
Any ideas on how to deal with values over 1000ms?
Say 10000ms? Setting the PMA to multiply by .0001? I can't seem to find a meaningful ratio between the tempo sync time and the delay node time.EDIT
The skew factor of my delay time knob was set to .3 :/ setting it to 0 resolves the issue :) -
@dustbro said in Scripnode 101:
setting it to 0 resolves the issue
actually causes a $h!t ton of issues... haahahah!
Getting a break point debugging. What should the skew factor be set to for a slider? Is there some kind of general rule to follow?if (range.skew == 0.0f) { // You have some weird ranges going on here... jassertfalse; range.skew = 1.0f; }
Found the issue. A couple knobs on my interface had a middle position that was not in their range. oops!
-
Is there a node available in scriptnode to invert phase?
-
@dustbro Not sure, but doesn't the all-pass filter node do that?
-
@dustbro use a
math.mul
node and set the value to -1 -
@dustbro As @Matt_SF said,
*-1
is the way to go -
Thanks!
Should nodes like Tempo sync and PMA need to be placed in a modulator chain? -
@dustbro no need, you can put them in the graph as is (or put them in a
container.offline
)@christoph-hart said in Scripnode 101:
What the modchain actually does is creating a monophonic and downsampled signal which will not be fed into the original audio signal and thus is suitable for modulation if you put a core.peak at the end of its nodes.
-
@Christoph-Hart is there an equivalent to Engine.getSampleRate() in SNEX? I'm getting an error saying it Engine can't be resolved. Come to think of it, Console.print() doesn't work as well. it's supposed to, right?
-
@dustbro No but you can use the
prepare
function to store it to a member variable:void prepare(PrepareSpecs ps) { sr = ps.sampleRate; } double sr = 0.0;
-
@christoph-hart Thank you!
-
Okay some beginner scriptnode questions for you all.
What's with the beaker glass?
What is the best way to access scriptnode parameters? Create a midi script above the scriptnodeFX like this? If I have logic for callbacks having to do with the scriptnodeFX is the midi script controller script where I should put it?
HiseSnippet 1431.3oc6X0saaTDEdW6LkF2RoEUgf6VEwENsgTanTPpTkebrqrZchUV2.2UMY2w1ixryrL6XmXgxi.OE7hvK.R7HviPeCfyL6tdWm5X4ZVJbA9BKOyYNm467+YbWoviDEIjV1q2aRHwx91H2Ib0vFCwTtU6CrruEhQvRNkOnt09SBwQQDeKa6xOWe.60Wyx74M6rOlg4djrsrrNQP8HujFPUY61c2WPYrVXeROZPtS+3ca6I3MDLwH.LkQ0rBwdmgGPNDqOVIjk8MZ5SUBoqBqHQV1qsuveh6Pw473yeBMhdJinWT2xEDT71sDLeMh06Z0XHk42MUoirrrQcyLAkiMA2G0g5Smtelo3tFBNYbj2dXWZV3UdF3UOO7pkCdyARkxAo0hgz8PtdRZnJiRrqoMWQj8wfYOOThOqk8uhZHfCvUaGfOizRBKlxP0mTq1VNvWa9z9i3dJpf6H3GJTji3U2rxOUY8JWVw4pj52etzzWiTvXD4bIq8zxEwXU9nfSIxsbFiYiHSOHn9yZSQWuMMuK2KVqycPAuMmpNJjvut.AqDSE7qW09.rBCNB6j8fyERjJpFB1GPFCQ0wtk0QGPhNSIBg35kzm8QHBebGgehlOO+VoetDpBnCQJvdHchOeLMtvm37LGSJ51CHJfvHFFrPU23pGaiMeZkJo9eru+K3hSqtQWrDxmfXf5arkSss.uetaJiHbGorB2RCQPnfCKlges7qP4LJmj2klchTmqWJ648uWEtaGQT6oTR5oiTjpuE0i3jTtgq8xbp10iOsHSvPCLicJTOo5bvmVfO5AU5KjNUoOq1ScneW7E2jOlv.O+Tibc8kc3nfo3Lp5lvwe3CMZDHtHAircnjBHYQhXJ+s8qR2Dt+Kq7fG8+YgyjEFm7oyPrKqL4S2IIexkQ8IRKputYUl2zxf5jFJ+wuD9a6rRIx5ylDMAJ9xcyW.1DacSrIo+XNkCflGoAA46nnailP.bFyTNPWqlGQUSx2l8psYVa4Zyr3tfKKbuGpKU4Mb93szbvqta1+v3Moo8GhZ1uOwSkA10Ps9gE1gtvgxchgxsPtPMQSMZCP9DyZmuGOl37bBmHMEBVvvT+9xNLU3ROL0QdJ356Iw7nPQzLB1kDP6AA7Q427UQv7Bje7XsWN+9MDX4bI8lcZAJ4b4wEqFIMgK6EHFwUyDdTdo8IuCC0s1+4Fp68WAgUetS6tu0qAtKD5FDxHo8wLX7ighk8wiXS6tMarbGAWDNTvod4czGSfddCFPj4w9bUHn6HzoNam6u6wD3IH4CZ+7ceIDrgkfchrh1h5KusXQ9qOEECWGcBny+J9sBo3c4kp3cwDacyXP9YnqYFojfrqNC3pFjsOMTvvxqsCU5qk1B8tLSDpfhzx8tiCIpyExyLlqjeCdz3pBtbZXHQ07BrNczZOFSbdWAaRpMPeMlM0SuPS7ufcJdIAhB3bBKs9Kxtjw6dnI+4FsvdfpLoKFZXAgI5A2ffFhbaub0ktBBxbFFeOn4SGHJJFNZgm1BJdpH.LAl4pzulurltI7MiOn24zUIpNBAi9a0gxOId7NDp110r5fuX555v5YHZF2iSLdxYtfohr24hkWj0WBQ9AndCkDRwJzafZoMdEsLoiKXbhflDWTz1SWxX3YBErPaRGLTUzFzCo7B2f1qn08ahZxJ.KZ16mhKoqWAESKouhaiZGchlpGlkJFnNy9BwYAXSYs+1+yJq9r9qd20iEiTT9fNXn0h9gdv6+cgzRuzZpQokSSVWKsZmKg6aV7mvmDh00qsSHVOk36k6H.6IEu1Ktsl1+cSyNfdyM+Cqqi5nW6L8gzwwGAvvwu1ySah+BXV64yyWtB77Uq.OOdE34qWAddxJvy2rB77sKjG86R1ajRDD2MG1naSS9iscSNFhdMQ5V+kZam2d
Also if possible we should rename this thread "Scriptnode 101" rather than Scripnode 101 so it comes up in a search.
-
No tips on how to best access script node parameter's from midi processors?
-
Okay more basic scriptnode questions, what is the difference between creating a embedded dsp network and creating a new DSP network file? (The 3d square vs. the page with a corner turned graphic on the scriptnode front page.)
-
@crd The embedded one is part of your project XML, the network one is a separate XML that can be compiled to C++ or shared with other projects.
-
@d-healey What would the advantage of ever using the embed one? Is that for smaller scripts?
-
@crd Useful for prototyping and for small scripts that you don't plan to use in other project and that don't need compiling.