Forum

    • Register
    • Login
    • Search
    • Categories

    Round Robin + Group XFade

    Feature Requests
    3
    12
    526
    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.
    • d.healey
      d.healey last edited by

      With the current system you can have either RR groups or you can have XFade groups. But what if you want both...

      Current solutions:

      Use velocity to separate RRs (I'm currently using this) - downside is you lose the basic velocity functionality for triggering samples.
      Use multiple samplers - eats CPU.
      Use multiple xfade groups and script the RR - currently limited to 8 xfades

      The last one I think is the most flexible. Lets say you have 2 dynamic layers you want to XFade and 3 RRs. You can map your dynamics in groups 1/2, 3/4, 5/6 set up group XFades for these groups and write a simple RR script to trigger the groups. I haven't tested this but I assume it will work. The main limitation to this is that currently we can only have up to 8 xfade groups - @Christoph-Hart any chance of bumping this number up? I have 4 RRs and 3 Dynamics so that needs 12 groups.

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

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

        Another possibility would be to use a note offset for the RR group. This works of course only for sample sets which don't span the entire keyboard (but for normal orchestral instruments with their limited range you should be fine).

        Let's say you have 2 dynamic layers and 3x RR with a sample set that goes from C2 to B4 (3 octaves = 36 notes). Then you can map the RR1 group to the notes C-1 to B1, RR2 to C2 to B4 and RR3 from C5 to B7 and implement the RR logic like this:

        reg octaveShift = 0;
        
        function onNoteOn()
        {
            local thisShift = (octaveShift-1) * 36;
            Message.setTransposeAmount(thisShift);
            octaveShift = (octaveShift + 1) % 3;
        }
        

        With 3 RR groups you have 127 / 3 = 42 note slots available using this trick.

        d.healey 1 Reply Last reply Reply Quote 0
        • d.healey
          d.healey @Christoph Hart last edited by

          @christoph-hart I will use this technique! Very good suggestion 🙂 thanks

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

          Casey Kolb 1 Reply Last reply Reply Quote 0
          • Casey Kolb
            Casey Kolb @d.healey last edited by

            @d-healey I know this is quite an old post, but we're running into a similar situation now and I'm wondering if there's a cleaner solution. We currently use the xfade groups for dynamics, but we may also have round robins + velocity layers in our next expansion pack and our samples span the entire keyboard length, so we can't use Christoph's note offset RR solution.

            Use multiple xfade groups and script the RR - currently limited to 8 xfades

            It seems like this option might still be the best bet?

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

            d.healey 1 Reply Last reply Reply Quote 0
            • d.healey
              d.healey @Casey Kolb last edited by

              @Casey-Kolb Do your samples also spread over the velocity range?

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

              Casey Kolb 1 Reply Last reply Reply Quote 0
              • Casey Kolb
                Casey Kolb @d.healey last edited by

                @d-healey Yes.

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

                d.healey 1 Reply Last reply Reply Quote 0
                • d.healey
                  d.healey @Casey Kolb last edited by

                  @Casey-Kolb I should have worded that differently. Are you using multiple samples at different velocities on the same key, or is it the same sample covering the entire velocity range?

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

                  Casey Kolb 1 Reply Last reply Reply Quote 0
                  • Casey Kolb
                    Casey Kolb @d.healey last edited by Casey Kolb

                    @d-healey ah yes, I see. We will have multiple velocity layers (ie a sample for velocity 0-27, 28-56, 57-80, and so on)

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

                    d.healey 1 Reply Last reply Reply Quote 0
                    • d.healey
                      d.healey @Casey Kolb last edited by

                      @Casey-Kolb If you're not using velocity crossfades you could compress the range of velocities you are using to map those samples and use scripting to remap the incoming velocity to the correct one. That would free up the rest of the velocity range for repetition samples.

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

                      Casey Kolb 1 Reply Last reply Reply Quote 1
                      • Casey Kolb
                        Casey Kolb @d.healey last edited by

                        @d-healey That's an interesting idea. Do you think that's cleaner than switching dynamic groups (1/2, 3/4, 5/6, etc) with scripting?

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

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

                          @Casey-Kolb there is an inbuilt solution for this now:

                          https://docs.hise.audio/scripting/scripting-api/sampler/index.html#setmultigroupindex

                          Casey Kolb 1 Reply Last reply Reply Quote 2
                          • Casey Kolb
                            Casey Kolb @Christoph Hart last edited by

                            @Christoph-Hart Killer! Thank you.

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

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

                            11
                            Online

                            854
                            Users

                            5.7k
                            Topics

                            53.0k
                            Posts