HISE Logo Forum
    • Categories
    • Register
    • Login

    Massive instrument model - is messing with my mind.....

    Scheduled Pinned Locked Moved General Questions
    75 Posts 4 Posters 1.8k 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.
    • LindonL
      Lindon
      last edited by Lindon

      So I have a problem, a client wishes to move from Kontakt to HISE and they want to transfer over their comprehensive kontakt engine into HISE, and its boggling my mind a bit:

      The instrument can play up to 8 articulations all at the same time. Each articulation has a number of round robins in it, and up to 8 mic positions. These 8 articulations can be selected from up to 48 different articulations shipped with the instrument....

      So all do-able so far - I just have 8 samplers each with an articulation loaded, with its RRs and its Mic Positions....

      But examining their kontakt instrument I discover that each articulation has in effect two wav files for each note - and this allows them to cross fade between these two notes for "dynamics" either using the mod wheel or allowing velocity to do it for them.

      OK I hear you say - no problem 16 samplers - in pairs to handle this different dynamics thing.

      But.. they also want to do recorded legato on some of these articulations, so where am I putting
      these legato sounds? Especially given I dont actually know which 8 articulations will be loaded at any given time. SO these legatos would need their own samplers too - lets say another 4 or 5 samplers....

      All of a sudden I'm up to 21 samplers --- filled with fairly heavy weight processing - so I think this is a no go..... unless someone (anyone?) can offer me an alternative approach to this 2 wav files for dynamics thing at least. - I have to be able to cross fade the volumes of these two wav files somehow... any ideas?

      HISE Development for hire.
      www.channelrobot.com

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

        @Lindon said in Massive instrument model - is messing with my mind.....:

        OK I hear you say - no problem 16 samplers - in pairs to handle this different dynamics thing.

        What else are they using velocity for?

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

        LindonL 1 Reply Last reply Reply Quote 0
        • LindonL
          Lindon @d.healey
          last edited by

          @d-healey nothing. As far as I can see.

          HISE Development for hire.
          www.channelrobot.com

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

            @Lindon Good, that makes it much easier. You now have the entire velocity range to play with.

            So you can map your articulations, and round robins across the velocities and use HISE's built in group xfade feature to manage all the crossfades.

            If you run into issues with the large sample maps causing issues then we need to double down on nagging Christoph to fix it :)

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

            LindonL 1 Reply Last reply Reply Quote 0
            • LindonL
              Lindon @d.healey
              last edited by

              @d-healey said in Massive instrument model - is messing with my mind.....:

              So you can map your articulations, and round robins across the velocities and use HISE's built in group xfade feature to manage all the crossfades.

              I dont understand what you mean - I think I was sick that day group xfades was being taught....

              HISE Development for hire.
              www.channelrobot.com

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

                @Lindon You've been missing out. Check this video, the group xf part starts around 6 minutes I think but you might want to watch it from the start. https://youtu.be/0cn1l8231n4?si=FwVH2QOZA2lANNIT

                The feature has improved a bit since this video but it's mostly the same.

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

                LindonL 1 Reply Last reply Reply Quote 0
                • LindonL
                  Lindon @d.healey
                  last edited by

                  @d-healey yeah but see my first post

                  "The instrument can play up to 8 articulations all at the same time. Each articulation has a number of round robins in it"

                  So I need RRs and dynamics....and group xfades -- which I cant have with the xfade system

                  HISE Development for hire.
                  www.channelrobot.com

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

                    @Lindon Use RRGroup for the Xfades and encode RRs & dynamics into the velocity data slot. You probably don't have 127 velocity layers, so you can pack that information into one number.

                    So if you have eg. 4 dynamic layers and 8 RRs distribute them so that the first RR group goes from velocity layer 0 - 15 (0-3, 4-7, 8-11, 12-15) etc.

                    Then do the "decoding" in the script.

                    LindonL 2 Replies Last reply Reply Quote 0
                    • LindonL
                      Lindon @Christoph Hart
                      last edited by Lindon

                      @Christoph-Hart yeah...its ugly tho isnt it - and means there is a lot of messing with sample maps in a frankly unintuitive way - esp. for a customer who has no HISE experience....

                      I might try and convince them I can replicate and extend the idea of RRs with our script driven version (IRRE), but if not then its this unless theres another option.....colour me "unhappy"

                      HISE Development for hire.
                      www.channelrobot.com

                      Christoph HartC d.healeyD 2 Replies Last reply Reply Quote 0
                      • Christoph HartC
                        Christoph Hart @Lindon
                        last edited by

                        @Lindon just reread the novel of a first post from you and you don‘t really have velocities right? Because then you can cram it all in 8 + x samplers for legato and call it a day.

                        You just need to convert the RR value to a velocity without multiplexing other information into the 7bit.

                        But no matter what you do I would recommend trying to leverage the xfade feature here.

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

                          @Lindon said in Massive instrument model - is messing with my mind.....:

                          yeah...its ugly tho isnt it

                          I think it's elegant. It's actually an old technique from Kontakt. Greg from Orange Tree Samples wrote about it years ago and I've used it a number of times. https://www.orangetreesamples.com/blog/ksp-making-the-most-of-groups

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

                          LindonL 1 Reply Last reply Reply Quote 0
                          • LindonL
                            Lindon @d.healey
                            last edited by

                            @d-healey said in Massive instrument model - is messing with my mind.....:

                            I think it's elegant. It's actually an old technique from Kontakt.

                            Old...., Kontakt...., those were desperate days - I was hoping we could move on....

                            HISE Development for hire.
                            www.channelrobot.com

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

                              @Lindon Sometimes the old ways are good. What would you prefer?

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

                              LindonL 1 Reply Last reply Reply Quote 0
                              • LindonL
                                Lindon @d.healey
                                last edited by

                                @d-healey either:

                                a way to address the volume of a playing wav file

                                or

                                xfade groups, that are a subgroup of RR or better still teh other way round....

                                I realise its a massive ask.

                                HISE Development for hire.
                                www.channelrobot.com

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

                                  @Lindon said in Massive instrument model - is messing with my mind.....:

                                  a way to address the volume of a playing wav file

                                  You can do that using Message.setGain() or Synth.addVolumeFade()

                                  @Lindon said in Massive instrument model - is messing with my mind.....:

                                  xfade groups, that are a subgroup of RR or better still teh other way round....

                                  You might be able to effectively do this yourself by scripting the group management. I know this drop down for xfades only shows 8 groups

                                  0318eeeb-da3a-4638-a0ff-c05e794ac140-image.png

                                  But if you click this button you'll see all groups have a xfade table:

                                  5cf698d5-68e0-435f-868a-2422f7fd0a8a-image.png

                                  It would be cumbersome to set all the curves via the UI, but pretty simple to do it via scripting.

                                  I'd still explore the velocity route though, I think you're making it sound more complicated than it is. If you name the samples with the mapping in mind then the automapper will do all the work.

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

                                  LindonL 1 Reply Last reply Reply Quote 0
                                  • LindonL
                                    Lindon @d.healey
                                    last edited by

                                    @d-healey said in Massive instrument model - is messing with my mind.....:

                                    @Lindon said in Massive instrument model - is messing with my mind.....:

                                    a way to address the volume of a playing wav file

                                    You can do that using Message.setGain() or Synth.addVolumeFade()

                                    The problem here is these are fixed values, not relative and my previous experiments have resulted in volume jumps and dives depending on the incoming velocity....

                                    @Lindon said in Massive instrument model - is messing with my mind.....:

                                    xfade groups, that are a subgroup of RR or better still the
                                    You might be able to effectively do this yourself by scripting the group management. I know this drop down for xfades only shows 8 groups

                                    0318eeeb-da3a-4638-a0ff-c05e794ac140-image.png

                                    But if you click this button you'll see all groups have a xfade table:

                                    5cf698d5-68e0-435f-868a-2422f7fd0a8a-image.png

                                    It would be cumbersome to set all the curves via the UI, but pretty simple to do it via scripting.

                                    Im really not at all clear on what you mean - I have two dynamic layers only, and up to 8 round robins per sound, how would I approach that?

                                    I'd still explore the velocity route though, I think you're making it sound more complicated than it is. If you name the samples with the mapping in mind then the automapper will do all the work.

                                    The samples are already named, at least for the first few instruments - they want them converting from Kontakt instruments..... so the sampling got done a long time ago, as did all the trimming, balancing and editing, and naming...

                                    HISE Development for hire.
                                    www.channelrobot.com

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

                                      Here's an entire guitar with all RRs and articulations in one "group"

                                      122f3af4-e3f8-4e83-8683-7f47c42fef28-image.png

                                      Other strings are in other groups.

                                      This is incredibly simple because if a different guitar needs to be put in here, I just tweak the config script by defining the number of RRs, layers and the whole algorithm adjusts.

                                      In your case, I would probably do the same: lay out everything in a few groups (because you have 48 articulations). I'd probably spread it all across 48 groups (makes it that much easier to manage) if the high-group-count-UX in HISE has been fixed.

                                      When you have multiple dynamic layers, you would play both (by targeting them using your noteNum x vel scheme in the overall layout), and then use the newly added continuous per-event modulation to modulate the volume of each event, which allows you to define your crossfading curve using tables in ScriptNode. There's a snippet in the waiting room for it where you can see a UI slider modulating individual event's pitch. You can repurpose that to target the volume, define your tables in the modulator network and just select the different table based on the eventData value that you send with the event (which would, in this case, specify the layer number).

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

                                        @Lindon said in Massive instrument model - is messing with my mind.....:

                                        The problem here is these are fixed values, not relative

                                        If you use the current value too then it's relative: Message.setGain(Message.getGain() - 3);

                                        @Lindon said in Massive instrument model - is messing with my mind.....:

                                        Im really not at all clear on what you mean - I have two dynamic layers only, and up to 8 round robins per sound, how would I approach that?

                                        There are many ways you could do it - I wouldn't recommend any and would recommend the velocity method, but...

                                        You could put round robins for articulation 1, dynamic 1 into groups 1-8, then for dynamic 2 use groups 9-16. You setup the crossfade tables to that 1-8 fade out as 9-16 fade in - do this by scripting, not manually. Repeat for all the other articulations too, 16 groups for each. Then in your on note on callback you can choose which 16 groups are enabled based on the selected articulation.

                                        @Lindon said in Massive instrument model - is messing with my mind.....:

                                        The samples are already named,

                                        Rename them if necessary, in the long run it might be better and batch renaming is pretty quick even for large sample sets. If I have a complicated renaming to do I get ChatGPT to spit out a bash script.

                                        To match Aaron, here's one of my guitar maps, albeit quite a small one.

                                        a31624e7-d7a3-4c6b-ab2c-ae850abbcc66-image.png

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

                                        LindonL 1 Reply Last reply Reply Quote 0
                                        • LindonL
                                          Lindon @d.healey
                                          last edited by

                                          @d-healey said in Massive instrument model - is messing with my mind.....:

                                          You could put round robins for articulation 1, dynamic 1 into groups 1-8, then for dynamic 2 use groups 9-16. You setup the crossfade tables to that 1-8 fade out as 9-16 fade in - do this by scripting, not manually. Repeat for all the other articulations too, 16 groups for each. Then in your on note on callback you can choose which 16 groups are enabled based on the selected articulation.

                                          OK I think I get it...

                                          Lets use a real world example - I have a guitar articulation it has 5 round robins and cross fades between two set of 5 round robins. So I put set one in RR Group 1-5 and set two in RR groups 6-10.

                                          I set up a CC Modulator (assigned to CC1 - the mod wheel) and using a table, the table starts high and ends low -- how do I attach this so it ONLY applies to RR groups 1-5???

                                          HISE Development for hire.
                                          www.channelrobot.com

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

                                            @Lindon said in Massive instrument model - is messing with my mind.....:

                                            I set up a CC Modulator (assigned to CC1 - the mod wheel) and using a table, the table starts high and ends low -- how do I attach this so it ONLY applies to RR groups 1-5???

                                            Once you enable group xf mode for the sampler you can click this button to see the tables for all groups. Each group gets its own table.

                                            2e3dc4d0-bf37-47ec-877c-cedd73b6c9c2-image.png

                                            Then you add your CC modulator to the sampler's Group Fade chain.

                                            Peek 2025-01-27 16-44.gif

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

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

                                            17

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.5k

                                            Posts