Remake stock Phaser Module in Scriptnode
-
@Christoph-Hart oh and also when you use the routing nodes you'll introduce a latency of the current block size so in order to get that down, you also need frame processing.
-
-
Ah yeah yeah.
That's fine then, it's not an issue in my designs I don't think. I end up creating systems for the sample accurate parameters which smooth and then update the internal variables of the dsp. And sometimes I create per sample paths for when modulation is happening.But that's very interesting, i never thought about it that way, you could process left and right in one iteration if frame processing. For sample accurate changes that indeed is more efficient. I never thought of that.
Edit: oh that latency thing is interesting though I'll have to investigate. Although I've never used a routing node.
-
Usually as soon as you're doing more than just trivial stuff, the overhead of interleaving and deinterleaving the signal becomes irrelevant compared to the actual DSP workload and if you can't vectorize the stuff then operating on a per-sample basis is more straightforward.
So if you eg. have two rampers that smooth out the values for each channel, using one ramper will compensate the overhead of deinterleaving the channels.
-
- you need to use frame processing for the modulation source (or if you're relying on outside modulation, use a smoothed parameter that smoothes the frequency modulation for each sample, or you'll get zipper noises. This makes this a prime example of an effect that should be compiled to C++ before shipping.
- You can also play around with the clone container there to increase the amount of phase modules or introduce spreading
Ok going to dive into Cloning which I've not done before, but a couple of questions first:
- I'd prefer to modulate the Phase Delay Frequency via a Global Modulator once the effect has been hardcoded. Is this possible with clones?
- Do I need to compile the network as a node and put it inside of the clone container? If so do I do this via the export to cpp class option from the freeze icon?
-
@DanH said in Remake stock Phaser Module in Scriptnode:
I'd prefer to modulate the Phase Delay Frequency via a Global Modulator once the effect has been hardcoded. Is this possible with clones?
Yes, but you need to connect the global modulator output to the clone cable's value parameter that connects to the cloned nodes, you can't directly connect this.
Do I need to compile the network as a node and put it inside of the clone container?
No, in fact I would recommend desigining the entire network without compiling and then compile the entire thing when it's done.
-
@Christoph-Hart ok great, I'm not entirely sure where the best place to put some of the nodes are, like the minmax for example. Via my method the effect doesn't seem to be processing!
If you have a moment could you please take a look?
HiseSnippet 4697.3oc6c1DaiibkGmx1ze0t6o6McBxgr.BXygdRFXX9g9B4fU6u5wXZ01wxSOc1EX6vlpjEgoHUHo51NYWfA6dI2xk4RtsH2FfEA4Z18vNm1fff4RlK4Xtj.jaSNm.LoJ9kHknknzS1lbxqCPmlrXQ8p+UUu5U+dkzbrkoJw11zhqv5mdYOBWgM3adogSmc6nnYvc3dbEtGeCEaGhUQuasyk8TrsIs3JTXwmvtQg0Vhy8Oe916nnqXnRFbKNtmapoRdpVWMmA2835umlt9AJsHmp0MxSKW+PUSicM0M6SsmE42hqmh54JmQdlB6wVfm6cUr6vU3awWqsTspk2RQpUUUhppb6RUJKqHHKURgTSpshfJoRIQUpQt79szbLsZ5n3Pr4JrzNlstrYGy2X38A7bMasWoSXWHv0j9I6c6CL0awZhr6xsaGM8VGGHT1bbE3Odfrsnmr8P9FZszBu+.469tETbPMhJfEVHt4sXLySHp4sUDyKASpPDSZIOS5A7MUsz54LnDl8bG9CMn8lsUn8SQMEumkqvmvuqI8ALb1rqx4jCrnWDVgGUdqsdmhz+5s+Ns6an5nYZTzz3YlNjiLdzau9OZ80V+ee8hCWT61IVF6iwxTWmXkXwrgFViqhOxne2WQrdmhuVQuOI7AoM+3ZJ+UqoQ6xU8Z0QdPSiCMzbNpGw3pFHv4KUz+06e3dJNJrNB+6QetdDKGMlITXOxqoSC75VVieOh84Nl8nSDFoOiNZwrUecEm3CgXSz7KfpAw52XcNF1ZNWFch3babUZMwGverliZmjswERvFoJ00gM5Oa7t762tMQ0YfAtD+Au3ZZp2hipQq6O0i9Yx9v2v+xhG7BgDmz8i4GL.umEomhE4Tyi0Ut7Q1Jc6oSNgZiuSwWoapddSseHYzYE87LgcXOwiT6nXXPzsmkIOKmZUQX7cJmX12Qy3rFJNVZWPmE9r9caR8qqR1025n2qvBr4PdWuE6Z13hlDiVtW7Ez+3Wn.65B9EJDTXjoeOi37FSqyc8D5+u4JrBS6uK+wu6iat+Iu7z8adJ2i00Meytlc6o4OLk1I3duiM0urWGSCMU1s7dh.S8wcM6S+T7sW5ZPmpnoyFW2ruM06PqiLZReX2E9Jr3yIV1tu3U32ZS5+iNN+YlsnEsxAJpTk8xiUb5vlvvb3PGcRr1TMbTZbiM5HEuk.iWN68FrZom1Qs6tLAgsVIqW6XEKZ8nduYNgVvcjZfSIukLXWQmUtf2nzCseNqTUEctmyFWvpj6mhmt51LV1Klf1rWr3KcGRxEqk80izxh8Ti1bF50L91CLqOnSf8nqx6p3RbSnGYTCNrli2TCBef5kAjQubDIec9tls7rqXl8CiX1gOwnVdjpecJyKFwh2f2zVkFnGakhQkZKxlQJdTCNVsmFSlUD0k4EAqGumlcOpmzc5SWQvKToX2g0tLZQtHvox9T+hsn8dtUOvQSj4QzFW3UzwSMzL7UgAqr0P4hgt28q2zgzi45N5pzMOm7FOcI5cYR2xr0XIbi7l2izVoutyH2ma5MouYBlD0+5UZR2g+.KxOnO0M2kCaW+9sSzt9vyqOA65y2dT6ZqoTp1v0tJdBycN2Hu+jErOe6YPvnFwT1G9D5Zn23lz35CWg+3NJ1WuiqlVaZY2famBYJhGl03s0NSj5XKt6k6w2k9+uYPYi5aYP8lfikEh4XIlWfB2DcWdufz2cEQaVluGQYnkluimeW2BFUU7qwDjjkhIICB3+TEqyHN196.xfn5Edk65tG1x8s2UQZfFxtWPC751kc7KhDI.OynhqQ20c8TZHxaxJZTU5NrpTj4yQHsQALTfWSgnsJeWMitJWDW1VimNdSqa+tCMjbwHCIWMiLj7w8cLoyF8zgIsbv+GbCbc9FTyPqm9kyMOuyCyhm+wsZM0SjWwehbWEgYcPp3s3fTkKvAo+8zfTwoaP5Jr5bvNW+CPWi2hnRzdMI9Hz04OfPZ8JE5NOwgn+cxPTooaH5FtCQotQaLwXEup87OEiSoVitoA4kpJLDaIGoDNP8KyCTW1CBXzgAwFu9UCGuF8QRhSXzxAA7INJhU4a1yhnzBd7ASdD80Dvf6vPQuKSdr4F4UklQL4wYZyGC7IJcotIS4zrj210xduI5t4zbtZ9qdEmTHCdkLU7.GBAruEj.J0zP.Nnh2.PTW02PYCUGig5VbhFpaISNIA9yEX4yXtjxfECaH2OIuZrLEM85d7pGsQs1xezG8Qew7sGXoHFdn6qX178C8D6WZRIKvunoZzZR9UWNQ+p2iuGil2KaQzUtrbbuqQo0xM4ZWBTsk.UaYP0V.TsEGSsuRl+2T9++u+F+ys9K+5e21Ss++DLP45iXf+3OKEY.327u8mp7e18S21i1Z.1oQd4YHSzG5vHunqZk8TuJ5+0O8m9K2dlyixmr1G9a84cyJaf88sJ8S9G4z9zayzBPMI5yeimUfwEj157GapqXwNxHyTLzC1x+PqzX4crD1Ln3jRNPPYymjCbM4tHB8hv2ze8i+y+1F67GSoGiXqw4ttq3LmQbwqg.hVb37fuh2QOH1pdCsnb6K1LRwIFGQzxS8V5m895T4Vy02xH800CbqcE4d8ephzK+vqvw1k0SpydTErDpf.UPITAApfxnBBTAEPEDnBJhJXJUvqBpyx71DiQNIFAwa4VVRm4.2BllHsRH3gHazKv3CChahGD.+CzXD7BB4I7Dq4SYPHaymnBn8oWETsqMs09sh4acKXUW.V0mIDEqjQPTLgcJdKQk3lwplVPDH6gujvdX8f0dDt8gOrR1A9PB7Fjya7FpfQIBLN6pnBBTAqgJ3zqfCGQGJg.kPj3.XIDQN.E4vJtzCDxHLGhD22L.cPLOBcPLyAcH9TLIX68VFV0KAq5kgU8JvpdUj6.xc.4NjG4NHhbGFO2gR4.tCCuPFFqHvvswrLCVBwCKBXIDOwRfkPDBKXIDovNePOHl0POHNKnGjxinGjx3nGfcnCDgcnCDgcnCDEgUcXXWDkQzCH5AD8PdD8fDhdX7nGJm6POf4aFZ31hX9lAKgX9lAKgX9lAKgHFVvRHhgc9fdPJqgdPZVPOHmGQOHmsQOHB6bGHB6bGHB6bGHVEV0ggcQZKD8.hd.QOjGQOHinGFO5gJ4MzChX9lAGtMluYvRHluYvRHluYvRHhgEpDJgXXmOnGjyZnGjmEzCkxinGJksQOHA6bGHA6bGHA6bGHA6q6gDLrKRkQzCH5AD8PdD8PID8v3QOTMugdPBy2L3vsw7MCVBw7MCVBw7MCVBQLrfkPDC67A8PorF5gRyB5gx4QzCky3nGfctCjfctCjfctCjg808PFF1EY72XRD8.hdHWhdnLhdX7nGpk6POf4aFb31X9lAKgX9lgJgxX9lAKgHFVvRHhgc9fdnbVC8P4YA8Pk7H5gJYazCxvN2AxvN2AxvN2Axv95dHCC6hL9yLIhd.QOjKQOTAQObk+WeT20RG92Y9rO6AYLgyfi2FS3LXIDS3LXIDS3LXID4vBVBQNryG1CUxZrGpLKrGplGYOTMiyd.1AOnDrCdPIXG7fRv99dTBF2kR3uyjH6Aj8Ptj8PUj8vDXOHj6XOfYbFZ71kvLNCVBwLNCVBwLNCVBQNrfkPjC67g8P0rF6gpyB6gZ4Q1C0x1rGJA6jGTB1IOnDrSdPIXegOJAi6RY7GZRj8.xdHWxdnFxdXBrGDyarGJgYbFb71XFmAKgXFmAKgXFmAKgHGVnRXYjC67g8PsrF6gZoj8vaEkcvrbNPu8fOrtOBAgsx1zGJC6rGTF1YOnLrydPYXemOJCi7RY72ZRj9.ReHOQe3NAq.M5hIH9ggvOHk2vOTFS5L3PtwjNCVBwjNCVBwjNCVBQTrfkPDEKT7Cq5BRX3Xst03ODM5uYA.gPtD.gPFG.ArCfPYXG.gxvN.BUf8E+nBL3KUvewIQ.DH.h7I.BAD.wD.PHm6.PfYdFbP2XlmAKgXlmgJgUvLOCVBQXrfkPDF6bB.gPlC.gvLAfPLWBfPLaCfnBryfPEXmAgJvNCBUf8s+nBL3KUve2IQ.DH.h7I.BQD.wD.PTJuAfnBl6YvAci4dFrDh4dFrDh4dFrDhvXAKgHL14D.BwLG.BwYB.gTtD.gTFG.AryfPUXmAgpvNCBUg8E.oJL3KUwe7IQ.DH.h7I.BID.wD.PTN2Af.y8Lzftqh4dFrDh4dFrDh4dFrDhvXAKgHL14D.BoLG.BoYB.gbtD.gb1F.QUXmAgpvNCBUgcFDpB6K.RUXvWpg+BTh.HP.D4S.DxH.hI.fnRdC.QUL2yfC5Fy8LXIDy8LXIDy8LXIDgwBUBqgvXmS.Hjyb.HjmI.Dkxk.HJksAPTC1YPnFryfPMXmAgZv9BfTCF7kZ3OBkH.BD.Q9D.QID.wD.PTMuAfnFl6YvAci4dFrDh4dFrDh4dFrDhvXAKgHL14D.hRYN.DkFG.hXc.KL9.197Hg9yW39r.ylp.ZuC+y52cWFiB6gincq5ywX+4pOc10c4a1SWyoo1YFCBBavibEwQVO9+APQUmnXEuueCd5nlNa5URjd9E754CpSlN.6Q1pcJ2AxJdU9LVv0wUk6Pis1hr4YIGUcPUlG9SVb79S9deRBCc3Rk+jO4rewWst21FeBqcjZ04Jbkj1tu5+jz4u66+U16y7mx0rqooSGpCnzxkPt9Drq4gtsA+IDahyzN1JAeuq3460aabS+t334ab3KR+nMPHSWH1pEWzVoEw5p.l5WZRa6zunoZamKLjk9VLWwQTyPu5K3Jywe3k4avL7fmg+jFMo82uQyQsy.7qKD8FLsYvRR1wuLBhwkcmsGmrn+TJtY48E38HwW3zDqw0hqy+0+mC2Xgu8Oa6z4bHxfEeYZJbi5WiYeoEz24Wp8clx.BWIZqwaL8Amr+2Ufa9SqNrpeve9ydfvuR6JCHLcdB3460UIteff4ibI2nDuNaT+7u2+6qKdzOCXiZYViRHkspk3OXGt4umsvp9j8+OduU+l+gsmCMIwT1j7Vr9ZrMM9P9SaaJbI5z0pVk+oG8xce+SyPMrDrw28vrtMRGcbzdW+F3U4hcTCbGSyy6pXcN6e+9Gtmhih+PFG5JvQV5sPg8HuVSkb5k8by7xdD6ycL64FGlJw1lYNq5U3F7M051Sm3txIqQeO+aT7ItA9DcWltOSjUd1yETSj1wGn0hEIQ3STeGEcEC0Xs0CMdM0JCSDUjRJr39sznRUSG5ZxzFwh6X15xlcLeC8CcQdAtmqYq8Jch2EMoAgv9WaQi.gc7DBaYtGkfHsyk7Zm2m2OE+lV61Ins9.2.FJNH4+wB74PlrZGyHocIKjZibqwZjbozF+G3ck4rtQ510msMx6yerxsUm8IdL6Zn3XocA0yBcyRMoAQqRnlGcFttcvVk7udqfvqaRLZ4dwWP+iegBrqK3WnPPgQkgUBl4eLin5AufyK7S2qJdvKhOsNDfoPXa+62od3cECu6x++0CSNZXfk+5savZQQDs41z3BodzmWC6VoqMlUdeOqjm+oGbj+XN5+pXnMKLYCa.N4va9629.5p+GZDcmGefxqIsMs552QGV8mRNi9AE8NmR51yr4kFpwVXJXiHmp0MR8eX8mZZ1aeCEZSuUzWhq.eT61zsID60PesmZ1Pwltn4t5lgiK77zelAcCkOyzgbjQz6uaea59tBZ.tabjs1o6xYE9W3KKuI8Os+1r+t1tz+R5n4y0bSQe9DFYtPJGY9Ub69C6mYCDxfNF8rxvAd2zV4Mruw64oDzMiqYPnCfoQrvDgul60EYCKK9DhAwZz4qQi+4s+3Od6Dht44lzvtdpVWsHSS5U+8zz0YSgiOYSt9gplFAzTXhyQpNzO9SsTLr6YZGORRRWsScSzQja99Te6zdsSX97hMCyTwJwhntWnMxDqSSEm9VtNOebWy9FA1ewe9S9Si3ReozMwI.yI6tSHJsE85TdHeCsVZg2O5Z2rBJNnFQ6WFdn3Roan33MuzGUAaXws+ROqEXidguuOMLac5FBBigzcGFA2M935FlFl85XZnEaIhSHz4imcFINFxjZPO1wQIpq+GV+DhNQwN1A56ozAdJVtbemMsXNErvWm2ybKxlLBJjgazgYOf+XF85zaubbW61q+j16xue61zMoNvXWhmFx40+LzahENtI9L5pnZY9R+D0vFKup6cnsaC+iNYC10EE3d8vjC5R8J9RU03upQpn3rVQoYshxyZEKMqUr7rVwJyZEqN4JxVzxOKCrorbbMNdeu3bKDFjcgE49aToCLlC
-
@Christoph-Hart I just compiled this node on it's own as wanted to check cpu usage - it was flicking between 3/4% uncompiled. Compiled it's steady on 1%, however the stock Phase FX doesn't move the cpu needle at all. Is there a way to optimise the snippet you think?
-
@DanH there's a little overhead compared to the C++ effect, but it shouldn't be too critical, so not sure if spending time is worth it in order to get it down 0.5%.
Have you profiled it with the profiler to see the exact performance difference?
-
@Christoph-Hart no I'll do that asap