HISE Logo Forum
    • Categories
    • Register
    • Login

    Scriptnode cpu ?

    Scheduled Pinned Locked Moved General Questions
    46 Posts 12 Posters 2.7k 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.
    • ?
      A Former User
      last edited by

      Just found this

      @Christoph-Hart said in Trying to create a random pitch detune effect in HISE:

      Also be aware that scriptnode patches which use frame-based processing are supposed to be compiled into a C++ module for production builds - if you compile it to C++ that particular patch shouldn't take more than 0.5% - even in the HISE CPU meter.

      I'm not using frame-based, but how do we "compile to C++"? Does that just mean exporting the project to a binary? Or is this to do with meta nodes or something? πŸ˜•

      Any scriptnode gurus out there? 😏 @ustk

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

        What are you doing that eats up 30% CPU? You can send me a screenshot of the full patch per PM if you want to keep your magic private :)

        Again: scriptnode is being heavily rewritten at the moment and there are a few occassions where the CPU usage was excessively high, which is now more optimised (IIRC a modulation connection caused an UI update per sample which was unnecessary). However using a scriptnode patch in the compiled plugin is not advised because there are limits what a interpreted DSP graph can achieve regarding performance.

        In order to get a reasonable performance from scriptnode you need to create a C++ node from it - this is where the real magic of scriptnode comes in as it allows you to transform the DSP algorithm that you've designed within scriptnode into a fully optimisable C++ class. I did that for some of the effects in PercX and there is no difference regarding performance to the ones that I've handwritten in C++.

        Unfortunately the code generator is broken in the current scriptnode branch (it did work before I started the rewrite, but now it's in a nimbus state until I get this overly massive rewrite done).

        ustkU ? NatanN 3 Replies Last reply Reply Quote 0
        • Christoph HartC
          Christoph Hart
          last edited by

          Ah also that entire custom node location thing will be removed. You will just export all the scriptnode patches as a dedicated .dll that will be loaded by HISE for each project during development and when you export your final plugin it will be embedded into the code (so you donβ€˜t have to drag another dll around).

          1 Reply Last reply Reply Quote 2
          • ustkU
            ustk @Christoph Hart
            last edited by

            @Christoph-Hart said in Scriptnode cpu ?:

            it's in a nimbus state until I get this overly massive rewrite done).

            And you receive an overly massive encouragement for the titan work this represents! πŸ‘
            Really happy to see all those commit notifications every day! :)

            The new node exporting system seems to be easier than the actual export, and I can't complain! 😎

            Can't help pressing F5 in the forum...

            1 Reply Last reply Reply Quote 0
            • ?
              A Former User @Christoph Hart
              last edited by

              @Christoph-Hart said in Scriptnode cpu ?:

              What are you doing that eats up 30% CPU? You can send me a screenshot of the full patch per PM if you want to keep your magic private :)

              Nothing too crazy, I'm okay with showing some snippets if it helps other people learn (although I'm probably doing it wrong since it's using so much CPU).

              d9c05310-80dc-4138-beba-ad77d71c2cea-image.png

              eb8f0710-b565-4936-ba37-c51b26df37df-image.png

              These are 2 of 3 node trees for this one Exciter plugin, I've already read the threads about Transient Shaper node using a bit of CPU, but the other plugins (FET Compressor, Saturator, Basic EQ) all have around 9% in ableton. I can't run more than 2-3 copies of each before my audio hangs.

              However using a scriptnode patch in the compiled plugin is not advised because there are limits what a interpreted DSP graph can achieve regarding performance.

              In order to get a reasonable performance from scriptnode you need to create a C++ node from it

              Unfortunately the code generator is broken in the current scriptnode branch (it did work before I started the rewrite, but now it's in a nimbus state until I get this overly massive rewrite done).

              Damn that's tragic, thanks for explaining though :) Do you have a rough eta for us? I really do appreciate all the work you're doing.

              1 Reply Last reply Reply Quote 0
              • ?
                A Former User
                last edited by

                I'm stupid, I didn't expect the oversampling nodes to have that much impact, I'll have to lower them to 4x... πŸ€”

                I wonder what the ideal middle-ground is for anti-aliasing and performance. I assume 16x will have diminishing returns for aliased frequencies.

                1 Reply Last reply Reply Quote 0
                • NatanN
                  Natan @Christoph Hart
                  last edited by

                  @Christoph-Hart Dear Christoph
                  Could you point Me to a version of scrptnode that the export To Cpp Still Works?

                  @ustk And you said that it was workong Before you start to dosome changes.

                  Thank You

                  1 Reply Last reply Reply Quote 0
                  • NatanN
                    Natan @A Former User
                    last edited by

                    @iamlamprey Mate, in what version you did export Nodes to Custom cpp?
                    Do they increase the Cpu usage?

                    ? 1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User @Natan
                      last edited by

                      @Natan I haven't done it, I exported them to meta nodes, which don't affect CPU and are also being deprecated.

                      NatanN 1 Reply Last reply Reply Quote 0
                      • NatanN
                        Natan @A Former User
                        last edited by

                        @iamlamprey In The Latest Version, I Succesfully Exported To Cpp Meta Node.
                        They Work In Hise, But In Exported Plugin, They Get Muted, Or Do'nt DO Anything To The Input Signal, Kinda Bypassed Or Not Integrated :(

                        ? 1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User @Natan
                          last edited by

                          @Natan What kind of node setup are you using? I brought mine down by a significant amount by adding a button that disables oversampling nodes.

                          For simple stuff like compression/filters/dry-wet chains and saturation, you should be able to bring the CPU usage down to reasonable and competitive amounts, not sure about more modulation-based stuff though.

                          NatanN 1 Reply Last reply Reply Quote 0
                          • NatanN
                            Natan @A Former User
                            last edited by

                            @iamlamprey It's That Flanger, Yo Can Find It In The Forum

                            It Just Have A Oscillator, And 2 Delays, Nothing Crazy
                            But It Makes Some Artifacts, Which Will Get Disapper With Only Using Oversampling,
                            And It Causes CPU Spikes In Other hand

                            LindonL 1 Reply Last reply Reply Quote 0
                            • LindonL
                              Lindon @Natan
                              last edited by Lindon

                              @Natan I built a flanger (well I gave it a go) and posted here somewhere, it only uses 2x oversampling...maybe try it..I never exported it or compiled it so it might be a dud..in HISE on my system its using about 2% CPU

                              HiseSnippet 2002.3oc6b0sTaaDEVByBXCISZmjI4ROY5EjYR8HIafvzoSH7WJSAhGLIo2wrHs.6frjpzZ9oc5SSuuyzmh7Hza6iPeCZO6tRVqLFv3DL1TwM38r+nu867ydNFsTOz2lDE4GpoWb2yCHZ5yfZbtG6nUNBS8z1XUPN5.Wr2gjPskOO.GEQbzz0K7Vd25EGWS7y+75kwvfrIohzz9fO0lrIsIkkJs9R+H00ccrCYWZSkQWaoMr88Vw20uE.kBHCs.r8w3CIai4CaLjl9Dq4PY9gMXXFIRSe7k8cNuwQ9m5IG+GnQz8cI7FlZMfERJdceWGNh4R0V4HpqS8jsbjllNpdJATPR.OFsE0g1VdJQ7HQGkSmgJenO1UAOSU3YzyvSSAciKQG.BemVtXVVjwUGwcP88xfrM7XDuHJ6bU00cJb+JTcJy9nti2w5BdAE0sMdiU9O.s1AGPrYofcbz5+zsulVW+hbWITC6PZ.Cd9bfTBstzOzLCbjiQS+OPkKWdMuCodjJ1gD.aqFErMgcpe3wy973o97W7ckOnkmMmzKGDRBvgjc8q6hOe1Hby.WxNv7dY48c8sOtA8WHunzuVpXoeqj5jDvbY9Hl09HrmGwM5hCi6K6wB8cm0qUy8Igur7IX2Voq2EbmKb4rnp6bWTh632hQ8NbKLKjdF3QucqlMfnH1jUhQGHSeLM9TEsM3s41TMHdNhF+K7Sbml715wcZlzoFeyP7Xf7XFUnxh+L7IYbxXRl2iuC.8oVGaCawyqiYGws5gHbLvrhDVwts4khVE.dJjKfrz1D33NDZnwWZ03jq32rIGZ7Xjwe9iTG9CDgpZXDaqrCnc4Qb2havhrfscAfDCHgLJgSh7UUtmDHeRNzd.5.5YlyumvZPKyd4oJ6E0Ac6rE5Ar9Pj+IjPoMr0YYA6yT.alQcmg1IQQAtvwhWp8gr6AJ9JDayJ07mFhCDFollZWiU7vfYqJ3KgBI1D5IDqNQdnLRQk39uKQtHdOuEbJWAIk+FGmc8aPOzC6p8AdvRYru5s12kZGG8K8HycwgGRXhCwvgPNRLR7wHIsf.Ra3AV6L4gNFZaQ8ZurPK7YJOjM8OkDFmpFu22GDnzFB.yHA7yCfv1HiJFffiImJYW4.hCkQHN6C4skfe9fmqlTM0NnRpok0PkCvXJ1PShj11i.l9Sn.6o4Qr2yg.mmmE5OBfdHoRZu2kH+ZMhG6laDOAxz..vUYGGOjTSYDXcl0RtHHopgoQUMIatJmqDEpD+XPHqJKpf1aD9rpcs3CFRJ9DNdc2OKo9IkmklhcPwjPf4Q.uii.1oloDR3+sma0rplGfhXGWItugauSUBtTuQviCl1WICKFfpkuQW42IkdjpjamvMt.qLNCIzZNiOXXbH8VQ0SY36G1N3CuygpHOyff567HhJWS1oogPuQgeTogIPMa4NeVVnDpI76JPGiNlbC5nnShjqX6ybgjHubVdJYpZliZ4pMSZtZl4IqcajrlvgcXOUs1UqZlmq1PP0pUM6d5ZV4IOLfRdnMkalS4e1TdQTsJK7pZKLeOm0l0HcVaJQS+7Raag7z19LSaS7c+Y1AMeYbtz1q58CaOqans20jYa0QgLaGS4q3cZTSemtkT9iUfdxPFreGuHILKJygwOxl5J9aS2kuIZHC7z9Grbb5edW9hbMlhEQuOhvewDTOl8lkFVg9IpQsqIpQujd7D72Nfad95xZARAChWrPF3HnQU7LIHHaAEcIRVIPjk0hKZLWbIEqGR94VDO6zySGuze86AeeoO85drvByrmwOeGjlYmmwOeOvZyHvU4c3pT0buylEUD8PKvI6BmmKNHKty7Cy5wCy5rpMQNBUyyQ3ylVMuHstXNs9kH0KqDlsnbDAD7wcDLXZ4wb7dFdNfqaLs9XWr7kY3XYCmL0n2VEvkmTJz6BZ+5TQXRFZMO79tIuLV2NEnMEWaYzE80ZmEDRhh3INxYMsdYmYNRty5wL+scI3vrFlyH84k8j60eCNi5Zpkn1nasDVCa0RLQlWXpzZEpNTUKQd0CCOUOvmjUO+5ibmW5P07RGtsxwct7bb+BSqHD1woqrJW9nOqNN5aMG.zp3wbAy0Wkat9EnjrZK1kRxpdutjrp22JIK8kI6daEYSIqHyLujragRx5mFueiUwLLemEeMjT3Cc8UImPsIRythfYXzwL+fLWssmH6bZzGwmPDWtSAVehn8A9gMK+VBTFEu1DyK8Nd9os+yd8NdFzy2wy2Yy.HraH1KJvOhXptxczmkZeqRXs7xNbonLihu8VG1dJi6QKkHTcjKUG6kYwf1YVos3Wrrjl+8qktzMHvtw4co00ob8Jq2xMhHLtMUmXpXKUw+.NzAzK1YtviE54aY3M35tNQ90c85tsgFW4sMLy8zrXBFaP42nr0fXMtfmo.ieM3Jd.tkKKQZVWqs787CNx2ilQouCgEROTbEBSwdW2Pugw3u4Rsk73k1g.gliTb29lk1j5AQq2RlxQ+vEl8NWbU5qmgjvsLOdP46GWS4B+u7ZJ26dnPHyQGM8SQPXbqxB0c46d88f3FMOHdFMw1g96YKuH37.FSIj.6aOw+UGJh1h2tro1Ioe0bFZMgic1y1NoXztOGq9XNU6i4TqOlyb8wbluOlyB8wbd0UNG9I9uoEyuoz9GDTeMQxm55sqiQuf1+Ax+JVoB
                              

                              HISE Development for hire.
                              www.channelrobot.com

                              1 Reply Last reply Reply Quote 0
                              • ?
                                A Former User
                                last edited by

                                @Natan Could you try this again? Or did this not work out?

                                459943c4-7b9f-4743-a1d0-5f8171e7e9d3-image.png

                                NatanN 1 Reply Last reply Reply Quote 0
                                • NatanN
                                  Natan @A Former User
                                  last edited by

                                  @iamlamprey It Has Its Own CPU Usage Story, It Removes The Artifacts,
                                  And Another Wierd Issue With This, It'll Add Around +5 dB :/ To The FX Plugins Output.

                                  L 1 Reply Last reply Reply Quote 0
                                  • L
                                    LeeC @Natan
                                    last edited by

                                    @Natan @iamlamprey For me, use of the transient shaper is the worst culprit. As @Natan mentioned, the 'Export To Cpp Meta Node' method reduces CPU significantly in HISE but the nodes become inaudible when used in exported plugins.
                                    Guess we'll just have to wait until @Christoph-Hart roles out the scriptnode revamp - Can't be an easy task mind!

                                    1 Reply Last reply Reply Quote 1
                                    • L
                                      LeeC
                                      last edited by LeeC

                                      Still think it would be good to know the last known version of Scriptnode when 'Export to CPP Meta Node' worked end to end ( from within HISE all the way into DAWs).
                                      If anyone has this info please chime in ☺

                                      1 Reply Last reply Reply Quote 1
                                      • NatanN
                                        Natan
                                        last edited by

                                        Prety Stocked Here :(
                                        @Christoph-Hart Could You Please Help Out Our Hise Buddies :(

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

                                          Still think it would be good to know the last known version of Scriptnode when 'Export to CPP Meta Node' worked end to end ( from within HISE all the way into DAWs).

                                          Now that I think about it, it never worked full end to end. In PercX I took the generated C++ code and wrote some custom wrappers around it, but there never was a proper export when you compile plugins.

                                          I'm afraid you need to wait until the revamp is ready. I am closing in on a first prototype for the SNEX workbench. It's kind of nice because you can export any node now into a custom dll that will be loaded as plugin without having to restart the app (also the compile time is a fraction of the full HISE compilation, so the development cycle is quite efficient this way).

                                          ? d.healeyD 2 Replies Last reply Reply Quote 4
                                          • ?
                                            A Former User @Christoph Hart
                                            last edited by

                                            @Christoph-Hart Watching git like a hawk ☺

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

                                            19

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.5k

                                            Posts