HISE Logo Forum
    • Categories
    • Register
    • Login

    Round Robin + Group XFade

    Scheduled Pinned Locked Moved Feature Requests
    21 Posts 4 Posters 1.4k 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.
    • d.healeyD
      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 HartC
        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.healeyD 1 Reply Last reply Reply Quote 0
        • d.healeyD
          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 KolbC 1 Reply Last reply Reply Quote 0
          • Casey KolbC
            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.healeyD 1 Reply Last reply Reply Quote 0
            • d.healeyD
              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 KolbC 1 Reply Last reply Reply Quote 0
              • Casey KolbC
                Casey Kolb @d.healey
                last edited by

                @d-healey Yes.

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

                d.healeyD 1 Reply Last reply Reply Quote 0
                • d.healeyD
                  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 KolbC 1 Reply Last reply Reply Quote 0
                  • Casey KolbC
                    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.healeyD 1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      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 KolbC 1 Reply Last reply Reply Quote 1
                      • Casey KolbC
                        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 HartC 1 Reply Last reply Reply Quote 0
                        • Christoph HartC
                          Christoph Hart @Casey Kolb
                          last edited by

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

                          Link Preview Image
                          HISE | Docs

                          favicon

                          (docs.hise.audio)

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

                            @Christoph-Hart Killer! Thank you.

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

                            SimonS 1 Reply Last reply Reply Quote 0
                            • SimonS
                              Simon @Casey Kolb
                              last edited by

                              Bumping again to say that I have an instrument that runs into this constraint, without a way to work around it: lots of samples that need to be categorized into RR, dyanmic, and variant.

                              I'll just use lots of samplers, but it would be really cool if we could assign samples to both an rr and a dynamic layer, like if the groups used to set up "group fade" were separate from those to set up RRs.

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

                                @Simon Is there a reason you can't use the velocity range for round robins since you're using groups for dynamics?

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

                                SimonS 1 Reply Last reply Reply Quote 0
                                • SimonS
                                  Simon @d.healey
                                  last edited by

                                  Yes, because legato samples are mapped to velocity.

                                  d.healeyD SimonS 2 Replies Last reply Reply Quote 0
                                  • d.healeyD
                                    d.healey @Simon
                                    last edited by

                                    @Simon Why can't you have both mapped to velocity? You have 127 values to play with.

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

                                    1 Reply Last reply Reply Quote 0
                                    • SimonS
                                      Simon @Simon
                                      last edited by

                                      When the amount of rr x dyn is high, the samples don't fit, without doing something janky like offsetting some sets of samples in both note and velocity, which makes working with the maps more difficult. A two octave instrument, six playing styles, and two dynamics is enough to make it not fit comfortably in 127 notes or vels. Plus, my favorite thing about HISE is leaving behind the janky workarounds I had to use all the time in Kontakt. Not needing to manage duplicates of all groups just to have multiple mics is the best :)

                                      The point is not that having lots of rrs and dynamics is impossible, but that it would be very convenient if RRs and crossfade dynamics could be used separately and simultaneously, with a UI that makes the distinction easy to work with.

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

                                        @Simon said in Round Robin + Group XFade:

                                        six playing styles

                                        One sampler per style.
                                        Note range just for the pitches
                                        Groups for the dynamics
                                        Velocity for repetitions (and legato if you don't want to or can't use a separate sampler for them).

                                        @Simon said in Round Robin + Group XFade:

                                        it would be very convenient if RRs and crossfade dynamics could be used separately and simultaneously, with a UI that makes the distinction easy to work with.

                                        I agree, but in the meantime I'm trying to find solutions that avoid using lots samplers

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

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

                                          Actually I just checked and it's now possible in HISE to have lots of groups with xfade, and with the setMultiGroupIndex function you should be able to use RRs and dynamics with groups - I find the group management in HISE much worse than Kontakt's though so I avoid lots of groups where possible.

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

                                          SimonS 1 Reply Last reply Reply Quote 0
                                          • SimonS
                                            Simon @d.healey
                                            last edited by

                                            I tried a build from develop but it still looks like group xfade works on the first 8 rr groups. Maybe I misunderstood?

                                            d.healeyD 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            54

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            101.8k

                                            Posts