Forum
    • Categories
    • Register
    • Login

    Which modulation routing method would you recommend for my project?

    Scheduled Pinned Locked Moved General Questions
    13 Posts 3 Posters 38 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.
    • observantsoundO
      observantsound
      last edited by

      The last few weeks I've been fiddling with the different ways of setting up and routing modulation. They all have their pros and cons and I'd like some feedback before I make a final decision, since I might be missing something.
      Thank you for your ideas and corrections!

      My instrument:
      NoteOn plays 3 samplers at the same time for 3 sections of an instrument (Attack, Body, Tail).
      Additionally User can crossfade each section between different instrument sources for color crossfading, and User can set crossfade order, so I need a dedicated sampler for each section of each instrument source.

      My goal:
      Set up 2 x 3 LFOs with comboBoxes for choosing 1 modulation target out of a list for each LFO
      (3 different instrument section samplers play at the same time and each section gets 2 LFOs).

      Method 1: Everything internal
      Most straightforward method would probably be to assign internal LFOs to all the parameters I want to control (volume, pitch, filter) and then only turn on the ones that have been set by the comboBox.
      Pro: best fidelity. Maybe...?
      Con: Lots of fiddly UI work that scales terribly in my project.

      Method 2: Built in modulation matrix.
      Seemed really promising at first but I wasn't able to set it up with comboboxes. I might (probably) be doing something wrong, but it seems like it expects you to use it with a drag and drop style while relying on the floating matrix tiles.
      Pro: Best all in one system
      Con: Requires me to change my UI layout and how I present what is possible and not possible to modulate. Maybe?

      Method 3: Global LFOs
      LFOs in global modulation container, sending to global cables
      Pro: Most straightforward method that stays in script
      Con: Lacking resolution

      Method 4: ScriptNode LFO
      TimeVariant Scriptnode in Global Modulator Container
      Pro: Bit better resolution. Intentionally low block sizes could sound interesting at high speeds.
      Con: Annoying to set up. Even with fix_block8 not as good resolution as native. Maybe?

      David HealeyD 1 Reply Last reply Reply Quote 0
      • David HealeyD
        David Healey @observantsound
        last edited by

        @observantsound said in Which modulation routing method would you recommend for my project?:

        Lacking resolution

        What do you mean by resolution?

        Free HISE Bootcamp Full Course for beginners.
        YouTube Channel - HISE tutorials
        My Patreon - More HISE tutorials

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

          @David-Healey

          He means the rate at which the LFO actually updates the DSP it's connected to, I assume.

          This does vary in HISE and affects the sound of High Rate modulation.
          I haven't measured every path myself so I cannot give a breakdown here.

          But it's definately possible to do a sweep with a good AI agent, or use the REST system to probe all the Hise processing paths and get the exact numbers for all the different scenarios.

          I started to do this myself, but I haven't covered all of them and I'm using lots of custom nodes, where HISE allows you to set the rate of modulation yourself and so this isn't so unknown.

          What I do know is that HISE doesn't seem to go faster than updating DSP every 8 samples.
          I might be wrong on that point but that's what I've observed for C++ nodes anyhow. Maybe it's different for native DSP.

          David HealeyD observantsoundO 2 Replies Last reply Reply Quote 0
          • David HealeyD
            David Healey @griffinboy
            last edited by

            @griffinboy said in Which modulation routing method would you recommend for my project?:

            He means the rate at which the LFO actually updates the DSP it's connected to, I assume.

            Not sure, that doesn't jive with what he wrote.

            Free HISE Bootcamp Full Course for beginners.
            YouTube Channel - HISE tutorials
            My Patreon - More HISE tutorials

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

              @David-Healey Really? He's talking about block and frame sizes though? DSP usually reads parameter values at the start of each block. Using larger blocks means you might not be reading the parameters / LFO modulation as frequently. (assuming the modulation / parameter callbacks are also being called fast enough by the modulator)

              David HealeyD 1 Reply Last reply Reply Quote 0
              • David HealeyD
                David Healey @griffinboy
                last edited by

                @griffinboy said in Which modulation routing method would you recommend for my project?:

                He's talking about block and frame sizes though?

                I only see that in Method 4, but he's mentions "fidelity" and "Resolution" in method's 1 and 3 as well.

                Free HISE Bootcamp Full Course for beginners.
                YouTube Channel - HISE tutorials
                My Patreon - More HISE tutorials

                1 Reply Last reply Reply Quote 0
                • observantsoundO
                  observantsound
                  last edited by

                  Hey guys. I do indeed mean the speed of the LFO modulation.
                  I should have been more clear.

                  Slow methods like the global LFO to cable will sound mushy and uninteresting at speeds higher than 20Hz. Native LFOs add some nice audio rate modulation distortion at those speeds, which the other methods do not.
                  At least the way I've set them up

                  David HealeyD 1 Reply Last reply Reply Quote 0
                  • David HealeyD
                    David Healey @observantsound
                    last edited by

                    @observantsound What about using global LFOs and global modulators, this is what we did back in the good ol' days before global cables. :)

                    Free HISE Bootcamp Full Course for beginners.
                    YouTube Channel - HISE tutorials
                    My Patreon - More HISE tutorials

                    observantsoundO 1 Reply Last reply Reply Quote 0
                    • observantsoundO
                      observantsound @griffinboy
                      last edited by

                      @griffinboy said in Which modulation routing method would you recommend for my project?:

                      But it's definately possible to do a sweep with a good AI agent, or use the REST system to probe all the Hise processing paths and get the exact numbers for all the different scenarios.

                      I have no idea what that means, sorry. Could you explain?

                      @griffinboy said in Which modulation routing method would you recommend for my project?:

                      What I do know is that HISE doesn't seem to go faster than updating DSP every 8 samples.

                      I used the fix_block8 node and put my oscillator inside of that container. But at 40Hz the native LFO to Filter Cutoff still sounds better than doing the scriptnode LFO to filter.

                      Here's the Scriptnode LFO I built
                      TimeVariantLFO.xml

                      1 Reply Last reply Reply Quote 0
                      • observantsoundO
                        observantsound @David Healey
                        last edited by

                        @David-Healey I thought that's what I did in method 3?
                        Can you route global LFOs in Global Mod containers to various targets without global cables?

                        David HealeyD 2 Replies Last reply Reply Quote 0
                        • David HealeyD
                          David Healey @observantsound
                          last edited by

                          @observantsound said in Which modulation routing method would you recommend for my project?:

                          I thought that's what I did in method 3?

                          Nope, method 3 uses cables.

                          @observantsound said in Which modulation routing method would you recommend for my project?:

                          Can you route global LFOs in Global Mod containers to various targets without global cables?

                          Yes. I'll make an example for you

                          Free HISE Bootcamp Full Course for beginners.
                          YouTube Channel - HISE tutorials
                          My Patreon - More HISE tutorials

                          1 Reply Last reply Reply Quote 0
                          • David HealeyD
                            David Healey @observantsound
                            last edited by

                            @observantsound Here's a simple project that shows how to dynamically assign a modulation target. The combo box in this case allows you to assign the global lfo to either gain, pitch, or filter frequency. You can play with this example and expand it to connect the lfo to more than one target at a time.

                            As you scale this up for a full size project you'll need to plan how to keep things organised otherwise it will get messy.

                            HiseSnippet 1679.3oc2YEtaSbDDdu3rnXSKEJzJZER8vp+vAnA6jPBTJBSbhSsZBwDanUBgPquas8pb2tWuauzDUgT+Y+WeW5SRk5KBuAsyd2Y68RLNNlDBfijk2cmY1YlcluY1M08EVzf.gOxHWy88nHiOA2XetraktDFGUaU0DtBaeQnjw6fVYeORP.0FYXjYcEEFYmFE840ObEhCgaQGLEB8LAyhtAykIGLqW4eh43TkXSaxb0ndwx0rD7JBGQHnMYvEQdDqcHcnOlnHaJL5GIAcQF2.em4uqkU6kKM+xyOucqkZ0Z9RKr3xEoKVjTr0hVsVb412a4kuSKjw4VylIE9MjDIM.D5JB68azU7a73M3Yr.VKGpZPITCXmimFUoKywtdOWS.BDT8ANpLwNpqf2jYy5O+.G1EiVvb.G5NMioFkJU5XnRFZpzzwpzkvMr7YdxAqnzmyiqwkT+1D3rQWUhoEM0KxfqH.J3x4bI6Pq5CC5yQgkJV7VlvWyd+b4fym.oYGGQKhylBaEWfQS8qYa9.y7qGMuIrPnCALQy9qm+9Ir5zVDS6FU2Z.g46KZHRqlc.PPTL3bcnxZ1avBjE5IbUHi4yH9LBWpIfY6sARhOvjRBO+EfTaCZQg8LY7DIOatrITLmWXP2B82l9hpvdyprzae6qaZ41BltYD8IhWeJXO541fQUDtdBNLnPdchhzLswyEnHkK8ENUHNNsfH7BBtNEIqpTBF2A7dlsC4VRlfaNTBKX0amuk4tDmP5r498bYYsMKb8jgYy5Skg9bPhYibHLP0KdeSl4OzyeMmCk2Q1El6l2DX.DPjD.BePrPM+NyRJI0y88b1KlCbIbpkroX8dADItvgEfbq3ydvrxlk5DPe6jUdkeM6qxkM4uWkSyI8XgjtEuPje.Vw7fK0t8PWKwe5P8G5xpHO+QwXAdnaKpu9ofhPH4LcF+4FuLdq3XKMBE7ZblbKOZx3pBGaUlr52GFe.kDbpPJRzPfTYDNwESvIff1VhUD6gXfXt.VO5BEYE5v6nmVaUhjzSdfngsyi5KYJqxXU5t.VeLNTV7pzfcjBuHZSBOAKe7288PFXiqA669perJ7CWRzbYfexjTWXKuLVUAJWclzpatpLG.wBgNLnH.G2KZRGiVwaxBvwXJfQE3GOfI2W27OF.2EGIv83phWBGYYCWGmZH5HbxbZniIk69T7ZsaConCTvowU+kIs113u8yDu8eM9.HC8wChzkqgeyUeFQSK+yIeSKGLcexKvO8YPOGmLgtW9PmFAuCSvR0YzkhUSLF53HR29LbpdONZ8ZElmvg3qVupO8WCobKs0morJnn1fXpx+U4elrKEJz5l.F1WRaP6.ao9LMo.3HzDhkd7WCWgP1E51Ncn1UJugP3sFm.NAacgTuKIPUUCZsHkX.w1TrII.vEq3Hr1QewZc3BeZbkR84qDFHEt8LfnttaHodQ.+FOGuzhyAeZeS022qB70BacxLFcx0W7TicPpJPn+QtJj33GjN83EjdDkpOVZb+fvO.z3QVCKyG20v1N9JyaRj9LUqKONzsATkvhB6NzrqSfpcloT4bwiKpFGk3R41QC9O3SxhkTiMRVrTuEQwBOtsLc68Bw164wMfBfQWxIxZ+hnwlpzay0oPowCg.dpWdbKKIr6M8I7.OQPJA2f5xZBsJFnO4SCnp.9sUQOo.pDD+gtzqeXUvFGJOMHv0fhBCejqHjmBszHyXmlni+jtKRM5+npd9YX2xofyy1SGavb8bnqw2k5.WAIApYUZaRnir+r5J4lBtvqqfyRUocaJj9zoC0WW0Gp87HojnWA8Jk2l5PI5Avea4Mf.OhO3lnSnq33+hOC835p3X0M90RdaN1NwKVjzMeu10UJXxq4LniLkI7M3Q9fOGsk.3FMIQpphfcgqoFSbzjwsy.81TI9YGT9FiaLhqP78o6Y7D6H8Cg5noB6xNlmeli97a9Qp+l4y+2ZscO0w+rDFdpbFcFzGwvb+eNttvY+X7rjG9PoDyfSF7lqniPG9NL+4+V9I5oNoAvtZ4mDRbREb8GkSNbFdfWlSiK.OpriuDmpm3yfhTFS.D2QjhrvoAF2oUdwnwtTgfluW+VaeENIhN51UueqqW.+jyHE7cwMZ9XYObIV9hWZE+v6JHhYhlA7s7n+clYwapFaV5fOzNB4Bc9+RKqzh5PLN+jx3BSJiKNoLdmIkwklTFWdRY7tGMipKl8nPovMN+Cg1r9ZwfsF8ebNiLn+G.TwalO
                            

                            I also have a video about using Global Modulators which might have some useful info in it: https://youtu.be/Y2XhAEE1IBI

                            Free HISE Bootcamp Full Course for beginners.
                            YouTube Channel - HISE tutorials
                            My Patreon - More HISE tutorials

                            observantsoundO 1 Reply Last reply Reply Quote 0
                            • observantsoundO
                              observantsound @David Healey
                              last edited by

                              @David-Healey thanks David! I’ll check it out before the end of the week and get back to you.

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

                              28

                              Online

                              2.4k

                              Users

                              13.9k

                              Topics

                              120.7k

                              Posts