HISE Logo Forum
    • Categories
    • Register
    • Login

    Bipolar LFO's

    Scheduled Pinned Locked Moved Feature Requests
    14 Posts 6 Posters 846 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.
    • 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

                            17

                            Online

                            1.7k

                            Users

                            11.9k

                            Topics

                            103.4k

                            Posts