HISE Logo Forum
    • Categories
    • Register
    • Login

    Bipolar LFO's

    Scheduled Pinned Locked Moved Feature Requests
    14 Posts 6 Posters 802 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.
    • lalalandsynthL
      lalalandsynth
      last edited by

      This is needed to create a synth that adheres to conventional modulation.
      Should be default.
      Can "almost" be done in Scriptnode but not fully.

      https://lalalandaudio.com/

      https://lalalandsynth.com/

      https://www.facebook.com/lalalandsynth

      https://www.facebook.com/lalalandsynth

      1 Reply Last reply Reply Quote 2
      • Casey KolbC
        Casey Kolb
        last edited by

        BUMP! BUMP!

        Casey Kolb
        Founder & CEO of Lunacy Audio
        Composer | Producer | Software Developer

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

          I hear you guys, however the modulation system in HISE is so fundamental that I can't go around and change the behaviour of things without breaking every single project made with HISE and any addition I will do has to be with the minimum amount of overhead.

          To be honest when I designed the modulation system, I tried to mimic the way KONTAKT is doing it's modulation as close as possible to make the transition more smooth (LOL), but I agree that while this modulation system works well for sample libraries, it's not as versatile as you need it to be for proper synth design.

          I might have a solution that allows total flexibility and this is to just add a small SNEX snippet that processes the modulation signal as you need it to be that can be inserted to any modulator. In the end, every single modulator creates a signal between 0 and 1, and HISE tries to convert this range into a "sensible" range depending on the context with the intensity being applied correctly.

          This code mimics the conventional HISE (gain) modulation way:

          /*  the modSignal is a float array, the intensity the value from the slider.
          */
          void process(block modSignal, float intensity)
          {
              for(auto& sample: modSignal)
                  sample = (1.0f - intensity) + intensity * sample;
          }
          

          So in order to get a truly bipolar modulation for the LFO, all you need to do is to change this

              sample = (1.0f - intensity) + intensity * sample;
          

          to

              sample =  1.0f + (sample - 0.5f) * intensity;
          
          lalalandsynthL 1 Reply Last reply Reply Quote 4
          • lalalandsynthL
            lalalandsynth @Christoph Hart
            last edited by lalalandsynth

            @Christoph-Hart said in Bipolar LFO's:

            his code mimics the conventional HISE (gain) modulation way:

            Not entirely sure how to apply this , do I need to use a scriptnode modulator and use this as a SNEX/Jit or can I somehow place a SNEX snippet into the normal lfo ?

            @Lunacy-Audio Do you understand how to use this ?
            @orange . thoughts ?

            https://lalalandaudio.com/

            https://lalalandsynth.com/

            https://www.facebook.com/lalalandsynth

            https://www.facebook.com/lalalandsynth

            Casey KolbC orangeO 2 Replies Last reply Reply Quote 0
            • Casey KolbC
              Casey Kolb @lalalandsynth
              last edited by

              @lalalandsynth Was going to ask you :face_with_tears_of_joy:

              @Christoph-Hart Could you possibly upload a simple snippet? Would be greatly appreciated!

              Thanks!

              Casey Kolb
              Founder & CEO of Lunacy Audio
              Composer | Producer | Software Developer

              1 Reply Last reply Reply Quote 1
              • orangeO
                orange @lalalandsynth
                last edited by

                @orange . thoughts ?

                I haven't used that yet.

                develop Branch / XCode 13.1
                macOS Monterey / M1 Max

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

                  It's not implemented yet, so a snippet would make no sense, but the idea is to be able to click on the modulation bar (maybe a context menu on the intensity slider) which opens a small popup where you can edit this code.

                  C 1 Reply Last reply Reply Quote 5
                  • C
                    crd @Christoph Hart
                    last edited by

                    @Christoph-Hart

                    Did this ever get implemented? This would be super helpful.

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

                      ycdiws (you can do it with scriptnode) :)

                      C 3 Replies Last reply Reply Quote 1
                      • C
                        crd @Christoph Hart
                        last edited by

                        @Christoph-Hart

                        Is there an example I could look at of how to do this with scriptnode?

                        Is this something that could be easily changed in the Hise source code for those who want it?

                        Thanks!

                        1 Reply Last reply Reply Quote 0
                        • d.healeyD
                          d.healey
                          last edited by

                          There are some scriptnode LFO examples in this thread which might help you get started.

                          Libre Wave - Freedom respecting instruments and effects
                          My Patreon - HISE tutorials
                          YouTube Channel - Public HISE tutorials

                          C 1 Reply Last reply Reply Quote 0
                          • C
                            crd @d.healey
                            last edited by crd

                            @d-healey

                            I will check out those examples but I'm not sure that will help me.
                            I think the issue is not with the LFO but how the modulator target behaves.

                            Now it goes from 0 to the cutoff amount rather than plus or minus around the filter cutoff amount.

                            I see how I could create a filter in scriptnode with LFOs to modulate the cutoff amount in the way that I want but now how I would integrate that into the rest of the instrument. Especially since if you want a filter to respond to voice events like polyphonic envelopes they need to be attached to a sampler/synth module.

                            1 Reply Last reply Reply Quote 2
                            • C
                              crd @Christoph Hart
                              last edited by

                              @Christoph-Hart

                              Do you recommend I build a filter as a polyphonic scriptFX that includes a poly adsr and lfo all in one scriptFX? Is there a way yet to route global modulators into a scriptFX?

                              I am having some success with mono envelopes in scriptnode but haven't had much luck with poly envelopes or the mod chain in general.

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

                                @Christoph-Hart

                                regarding ycditwsn, I have rebuilt the kind of modulation system I want for filter's in scriptnode but I don't see how this approach helps me in a larger project. I have 3 samplers and a sine wav generator. Each sampler and the sine wav generator get a hpf and lpf filter, being modulated by three global lfos, MPE envelopes, and an AHDSR envelope.

                                This all seems like a lot of trouble to go through just to change the modulation from starting at 0 rather than the cutoff amount. As it is now the poly filter is giving me pops and clicks when modulated. My best guess is the pops and clicks come from the filter returning to zero rather than the cutoff amount when I release a key.

                                Is there a way to pass a global modulator as a value into scriptnode? This would solve some of my problems but wouldn't address using mpe, or other poly envelopes as a modulator within scriptnode.

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

                                54

                                Online

                                1.7k

                                Users

                                11.7k

                                Topics

                                101.8k

                                Posts