HISE Logo Forum
    • Categories
    • Register
    • Login

    Scriptnode clock-sync - is there a preferred solution???

    Scheduled Pinned Locked Moved ScriptNode
    17 Posts 3 Posters 321 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.
    • OrvillainO
      Orvillain
      last edited by

      Sorry if this is a bit of a dupe. But most topics on this seem a few years old at least.

      033da938-b755-4651-9fe0-3da481e60316-image.png

      I figured out two ways to get a clock sync'd ramp signal. But is one of these preferred?

      I like the Clock Ramp node because you can get very slow LFO's that way by using the tempo division and the multipler control. But if you want free-time, it seems like it might be tricky to do. Whereas the tempo_sync node has a switch that can go between the sync'd and unsync'd time.

      Long-term I'd also be looking for:

      • Sync Yes/No
      • Retrigger Yes/No

      More or less, both of these solutions seem to work. But which do you think is best?

      Musician - Instrument Designer - Sonic Architect - Creative Product Owner
      Crafting sound at every level. From strings to signal paths, samples to systems.

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

        @Orvillain

        I often use the clock ramp, since it tracks the transport position as well as the tempo.

        However I wish there was a node with more time (bigger than a bar) so that we can track discrete position over the span of 4 bars for example.

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

          @griffinboy you can use the multiplier to get a longer time.

          @Orvillain you can container.branch between a normal ramp and the clock sync one for switching between unsynced & synced time.

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

            @Christoph-Hart

            Thank you!
            I was wondering what that multipler was supposed to be for 😆

            1 Reply Last reply Reply Quote 0
            • OrvillainO
              Orvillain
              last edited by

              Yeah as I said, the multipler feature is great for those super slow LFO's. Awesome when you start combining different expressions to shape the ramp too, to create some organic modulation shapes beyond the basics.

              @Christoph-Hart said in Scriptnode clock-sync - is there a preferred solution???:

              @Orvillain you can container.branch between a normal ramp and the clock sync one for switching between unsynced & synced time.

              Right gotcha, and just sack off the tempo_sync node altogether when using the regular ramp?

              Musician - Instrument Designer - Sonic Architect - Creative Product Owner
              Crafting sound at every level. From strings to signal paths, samples to systems.

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

                @Orvillain yup

                1 Reply Last reply Reply Quote 1
                • OrvillainO
                  Orvillain
                  last edited by

                  Sorry, two more things.

                  For retriggering... is it better to just use the monophonic/polyphonic button for the modulator in the module tree....

                  de896074-85f0-480d-87f0-13872e4f095f-image.png
                  3900fb3c-de63-40ca-b42c-ca9369d8c335-image.png

                  Or should I attempt to build the retrigger functionality into the custom envelope modulator scriptnode that I am building?

                  I'm intending on compiling it once the network is done.

                  Also, am I right in thinking for the clock-ramp it just syncs to the incoming clock no matter what, and that there is no concept of retriggering or free-running to think about??

                  Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                  Crafting sound at every level. From strings to signal paths, samples to systems.

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

                    Or should I attempt to build the retrigger functionality into the custom envelope modulator scriptnode that I am building?

                    if you're loading that network into a hardcoded envelope you cannot replicate the monophonic with retrigger behaviour as it will follow the voice allocation logic of the sound generator.

                    Why don't you want to use the inbuilt function?

                    OrvillainO 1 Reply Last reply Reply Quote 0
                    • OrvillainO
                      Orvillain @Christoph Hart
                      last edited by

                      @Christoph-Hart

                      @Christoph-Hart said in Scriptnode clock-sync - is there a preferred solution???:

                      Why don't you want to use the inbuilt function?

                      You mean the built in LFO block??? Coz I'm adding a bunch of waveshaping and warping and fun things to the LFO shapes.

                      Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                      Crafting sound at every level. From strings to signal paths, samples to systems.

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

                        @Orvillain No I meant the inbuilt monophonic / retrigger function. This effectively turns a polyphonic envelope that only runs when a voice is active to a constantly running, monophonic time variant modulator (basically exactly like the stock LFO).

                        OrvillainO 1 Reply Last reply Reply Quote 0
                        • OrvillainO
                          Orvillain @Christoph Hart
                          last edited by

                          @Christoph-Hart Gotcha. No, I'm fine using that function. Just didn't know if there was a reason to do it another way.

                          Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                          Crafting sound at every level. From strings to signal paths, samples to systems.

                          1 Reply Last reply Reply Quote 0
                          • OrvillainO
                            Orvillain
                            last edited by Orvillain

                            @Christoph-Hart I'm a bit confused here.

                            I put a regular ramp into my network. I put it inside a no_midi container. When I play and hold some low notes, and crucially then I play and hold some high notes afterwards, I get the same speed ramp out of this.

                            But if I try the same with a clock_ramp, the high-notes change the speed of the ramp I get from it, for all of the voices.

                            In fact, it doesn't really matter if I play low and high notes. If I play any notes, then while those are held, I play some others... the speed of the clock ramp will change. Why is this??

                            This only happens in polyphonic mode. Does not happen in monophonic mode.

                            Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                            Crafting sound at every level. From strings to signal paths, samples to systems.

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

                              @Orvillain ah damn, that's a real problem - I've never used the clock ramp in a polyphonic context and the fact that polyphonic nodes are only processing audio when a voice is rendered make the synchronization super hard.

                              I can fix the double speed by adding a polyphonic state, but then it still resyncs every time you start a voice, so it's not synchronized to the clock position at all. I need to think about how to address this best, but this might get complicated.

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

                                If I add a monophonic modulator that uses a clock ramp and sends it through a global cable I can pick that up in an envelope with the proper synchronisation, but that's rather hacky.

                                HiseSnippet 1840.3oc2YssaaaCFVxILMmZQ6V251PGftXWjNDDX6bnsaWjyoMX0IFwNo6t.FI5XBKQJHQmDug8Rsmf9HrGgh8Dja10c+jTxRx1wM1MmZSAJL+4oO9e36+mhkC31jvPdfg4jUa4SLLmFUoESTe85XJyX6MLLe.pDNTPBrzhVqkONLj3XXZNxqjBLmXTC0emu7ZXWLyljHxv3.N0l7FpGUjHs7J+F00cKrCoJ0K0nWXkss4r04t7l.dFAk2vGa2.eLYGrbX4PFuFGV2v7mQOuvKW5EjWle94e4REHKr.oXgEWbwhym+n4ymu3hKLuC9n7O+EKYXN1lNTAOnh.KHgvhtF2oUk57SY5M3.ZH8HWhrQAiJvNqEardcpqS4XkSnArPkSTUinUUOFUh5PaKOQk8PUGVIyHsRyLW+fTgA.RlofznZH8HTE6.puHoGIdlBsMCrf0vfsIMTzi0v7cn04v.Xh47vMHaE.MZOgYVJe9Ysf+6Y+ZslLaAkyr3rc3BxtrYd1j+4jSL4eMoUmcUqVO6StMAbWWRPO6V5NDzuINCqo2QjfYsNA61jzdfvwOqNcrKmN0VepSMPNaaFUrqOIp8VbWGotR96ts.FQpM3W6u8FXAVZThjAiymDHnR3XtA4DHLPahl.sAIrgf6CABcY+.OGtSSWrHq6jLPKpCPejwFJMTrPpnU5.wAvGKee8wtrP7QnxTgc8diwb8.ifl55.iQQl2GsYsZDaQB.GEs0uOrggW9seb81+CnW4xOB6lnn.eB.IDc33OF0sU69sZOfB8gf8etrDr9WZB1NCbFdxnQuE3GuZ7c+5tLGg2fQXl4RAywzv7oQr3Rq2A3.JlIZiMEjmFsG1yuBXF6fQumXcMpO2EGjlw+eQIrq9ADeb.oJurKt0LgvB6R1CNUyZo+cXYRvZtb6FcSL6qgtp2YNpIDyEbgoDtxyV7wxIfthbsSwxuCQbJOngJ4azugfdsEI.TVgZKxptt7SWm64SiHCAMuRVYtaK+5bF0VJROBB3IxXD2U83MgMwDYlC1oDlTkxsB8OHxtjFTnHnpXpqjXsRyPHUkytrJv5nHFLG4.RPnZOuGJ+bv+.Orc3NPWisE1FzGsJiE0kL11wbNyY2NVHywHsiktDrLcKW0XtDMxfCjmTQIKUybjTY.00pHaANl4zaz1gGH60F6ZbfzxIOOp0TETDAY8PskpfCkasQWmg.xbo5tWPNU2eDHOZZHmxDTEGbLQDFkcmQr0FUEH21QVh7wJFjCswROpxXXyHP8Sx9tGRe5j6DDLcVbYBaPC8g3s0TAMgcIQplXNjyj37CveaB93NPoHpoGIKYijyG0tE3RVhxhTpIYJJgOqCYEWohf3q8sRnKpzfbpVMmVpzRbOTUhmO2nJ4LQUtZw.8wIfFStoSg1GPbMvixwniM5wqrAoFtoqnK4F8G0mub2nN+.h5oQkfcl56RgMYfg94K2ane9xFCtBGf4.A86iV0woJuB8XFDlLvX2vn2XWla7ZG6Si122AndKIijucU6FCnGyjv8kfNnmPtR04o3z5fwHCq12hB3MET1wykYLcSs0whjlbahw9a1q+v.yImhcKB9OHh9LT6B1KRwrzPloLOSL7dVFF8iFRu.WgNUq1Tv8.mU00UxbfLViya3gUI8+jukWz8C99n561D.sKr.YKt6gn0kpbq3dyX4KwY73JHRzU6QDAziOlDbAk80yxBiqEbVzc1ppdJJTAxCIQ5hC8hUUEtjUYk6NXUV88X0cbdeG9MUUXeIwXcAkwgPXGmKn5sKjia7Oa33Rm+QeTyXDmDADf0mSJuaCmd7eDesbYJe9ylrBWbF6anrBC8GVajur+vZ6oIUJggjaxKBsSSO8m7HhKOLlFOpc9XuxJ.ac93aIE0YAYaynNKz9JT5EWa+Redeh97NE5s3SHpWDQcZ+FU6Z7.OqWQ.R8toru1+jc6ZK.HTM.yB84gjBYhNHdzpbFILizNlQwdNihYCHDMYYWZsnLiRpJ1BTEoF23qDKrXZgkwrLKFzNyJURZeia99k2jISOTg.mbmcCsAECti.9xMcCIuk5HpWH8DSDWLs3WiCb.aXlRlLGIqa5nWtBYx9k3SM96HOYzUymD8V7EGx7pVSDiwJT4GOocEwRL9UnHZ6XoEF1Bk64AZUg.a2H8mpXOhKAGlJ17mV4MP9Dbf5FtCmtXvegudZu9NjFtVRxCqOeeonq4DZYzmSEeWL8W+u22E6owuMPb2IORPgO86k00Ci8t+al2u79gjppxiU5CUALpsPIT+8+fpsRWA6r86Ak9kNtM4Ul24cn2cq+bYP1k61wDOAAY4JZoBLrtcJ06lnVqah8vCaGvOzV+QLjg7iqj.mal5hLSfJIaaUv3jNq12CR.ensc1kpqIVbXm37C6DWXXm3hC6DWZXm3yG1I9hO9Dk0GEcgLYrATzX4M0rgl55EUgIF+OghS8tA
                                
                                Christoph HartC 1 Reply Last reply Reply Quote 0
                                • Christoph HartC
                                  Christoph Hart @Christoph Hart
                                  last edited by

                                  Alright, I've fixed it - the solution was surprisingly simple as I could simply hook into the callbacks that resync the clock when a note on is received in poly mode.

                                  It should work now correctly.

                                  OrvillainO 1 Reply Last reply Reply Quote 3
                                  • OrvillainO
                                    Orvillain @Christoph Hart
                                    last edited by Orvillain

                                    @Christoph-Hart You legend! Thanks very much! Will test here and report back if any problems. But I've got quite a cool LFO thing here now!

                                    Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                    Crafting sound at every level. From strings to signal paths, samples to systems.

                                    1 Reply Last reply Reply Quote 0
                                    • OrvillainO
                                      Orvillain
                                      last edited by Orvillain

                                      Just to report back, it worked perfectly. It even now picks up the lastest value properly, whereas I'm pretty sure it didn't before. Very nice!

                                      So here's my take on how to do switchable LFO's:

                                      You primarily rely on the built in modules monophonic/polyphonic flag for reset/retrigger behaviour. Don't bother even building it for your own network.

                                      Do your sync this way:
                                      0bc0eeef-5d7a-4c85-822a-a9b901fc0519-image.png

                                      A branch container, containing two chains. Each one has its own ramp source in it. Make one of them the regular ramp source, the other one the clock_ramp source.

                                      You can even write a simple math expression to adjust the phase.

                                      Musician - Instrument Designer - Sonic Architect - Creative Product Owner
                                      Crafting sound at every level. From strings to signal paths, samples to systems.

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

                                      19

                                      Online

                                      1.9k

                                      Users

                                      12.4k

                                      Topics

                                      107.7k

                                      Posts