HISE Logo Forum
    • Categories
    • Register
    • Login

    Remake stock Phaser Module in Scriptnode

    Scheduled Pinned Locked Moved General Questions
    18 Posts 4 Posters 1.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • griffinboyG
      griffinboy @Christoph Hart
      last edited by griffinboy

      @Christoph-Hart

      About frame processing, why do you recommend it here? I've yet to find many use cases for frame processing aside from cases where you need access to both channels simultaneously to process each sample... You said something to do with smoothing? I'm just curious

      The default c++ node has frame processing set up, same as the snex node. Yet I always end up just using process in 95% of my dsp because I can vectorize each channel and do things much more efficiently when not interleaving them.

      Christoph HartC 1 Reply Last reply Reply Quote 0
      • Christoph HartC
        Christoph Hart @griffinboy
        last edited by

        I've yet to find many use cases for frame processing aside from cases where you need access to both channels simultaneously to process each sample...

        As soon as you do modulation that should be sample accurate (delay line modulation or FM), you absolutely need to do frame processing. You might get away with a small fix_block container (eg. fix_block8 or 16) for slow modulation changes.

        Most of the delay modulates are not smoothed by design so that you can implement these effects properly, but they rely on a smooth modulation signal which will get zippered if you're resorting to block-based modulation.

        Christoph HartC griffinboyG 2 Replies Last reply Reply Quote 0
        • Christoph HartC
          Christoph Hart @Christoph Hart
          last edited by

          @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.

          1 Reply Last reply Reply Quote 1
          • ChazroxC
            Chazrox
            last edited by

            🍿 😸

            1 Reply Last reply Reply Quote 0
            • griffinboyG
              griffinboy @Christoph Hart
              last edited by griffinboy

              @Christoph-Hart

              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.

              Christoph HartC 1 Reply Last reply Reply Quote 0
              • Christoph HartC
                Christoph Hart @griffinboy
                last edited by

                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.

                1 Reply Last reply Reply Quote 1
                • DanHD
                  DanH @Christoph Hart
                  last edited by

                  @Christoph-Hart

                  • 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?

                  DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                  https://dhplugins.com/ | https://dcbreaks.com/
                  London, UK

                  Christoph HartC 1 Reply Last reply Reply Quote 0
                  • Christoph HartC
                    Christoph Hart @DanH
                    last edited by

                    @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.

                    DanHD 1 Reply Last reply Reply Quote 0
                    • DanHD
                      DanH @Christoph Hart
                      last edited by

                      @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
                      

                      DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                      https://dhplugins.com/ | https://dcbreaks.com/
                      London, UK

                      1 Reply Last reply Reply Quote 0
                      • DanHD
                        DanH @Christoph Hart
                        last edited by

                        @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?

                        DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                        https://dhplugins.com/ | https://dcbreaks.com/
                        London, UK

                        Christoph HartC 1 Reply Last reply Reply Quote 0
                        • Christoph HartC
                          Christoph Hart @DanH
                          last edited by

                          @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?

                          DanHD 1 Reply Last reply Reply Quote 0
                          • DanHD
                            DanH @Christoph Hart
                            last edited by

                            @Christoph-Hart no I'll do that asap

                            DHPlugins / DC Breaks | Artist / Producer / DJ / Developer
                            https://dhplugins.com/ | https://dcbreaks.com/
                            London, UK

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            21

                            Online

                            1.8k

                            Users

                            12.0k

                            Topics

                            104.5k

                            Posts