HISE Logo Forum
    • Categories
    • Register
    • Login

    The Sample Map of The Future: Escaping the 20th Century Sample Mapping Paradigm

    Scheduled Pinned Locked Moved Feature Requests
    65 Posts 8 Posters 2.3k 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 @Christoph Hart
      last edited by d.healey

      @Christoph-Hart I leave them as linear fades and rely on CC smoothing for the curvyness.

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

        @Christoph-Hart Me, 100% of the time. I adjust it until the xfade feels right. I also pretty much never want a linear fade from one to the other, but expand the dynamic range by making the lower dynamic fade down in the lower range.
        3e495ef4-f0a6-41ab-96cf-79598b9c50f5-image.png 3d0af043-964f-4f7f-8a49-d7f8c310c4c2-image.png

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

          This post is deleted!
          1 Reply Last reply Reply Quote 0
          • SimonS
            Simon @Christoph Hart
            last edited by

            @Christoph-Hart I would not at all be opposed to having the common curves as presets, but it's quite important to be able to adjust the curves for feel.

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

              @Simon Now you mention it I sometimes do that dipping technique as well.

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

                @d-healey alrighty, then I'll make two separate logic types for the fade (one called TableFade with the tables and one called XFade using the inbuilt fade types). I'll probably exclude the table fade for the MVP , as it's a lot of boilerplate and some UX annoyances to get there.

                Ideally you can then use multiple dimensions of fading layers, so you if you have a matrix of 3 dynamic layers and vib / no vib, you can then fade between all 6 samples using two different CCs.

                1 Reply Last reply Reply Quote 3
                • griffinboyG
                  griffinboy @Christoph Hart
                  last edited by

                  @Christoph-Hart

                  Lovely work, puts my sampler to shame 😂

                  1 Reply Last reply Reply Quote 0
                  • griffinboyG
                    griffinboy @Lindon
                    last edited by griffinboy

                    bitmask

                    Thanks for introducing me to bitmasking. Oh my goodness, I can't believe I didn't know about this before. So useful.

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

                      Alright guys, closing in on the MVP for this new system but this begs a few questions: there are a lot of half-baked / duct tape solutions for group management in the sampler which I would like to deprecate:

                      • cached round robin group collector. This is an internal optimization that can be enabled with Sampler.setSortByRRGroup(). The new system includes that optimization but is definable per layer / tag so I would love to remove that as a global option. If you're relying on this function you can just enable the new complex group system, use a single RR layer and activate the caching there. If there's a lot of people using that I can think of a migration tool otherwise I would just deprecate the function call and make it throw an error message when you try to call it from your script

                      • multi RR group: previously this was the "recommended" way to handle both XFade and RR groups within one sampler, but it's buggy, annoying and never really worked well, so I would suggest to remove it altogether. The new system 100% replaces this functionality with a better UX and more flexibility. This would affect all calls to Sampler.setMultiGroupIndex() / Sampler.setMultiGroupIndexForEventId(), which will be replaced by the generic Sampler.setLayerFilter() that you just need to pass the index of the RR group.

                      • RR group volume: not sure who requested that (David?), but this could also be handled more gracefully by the new system by defining a mixing layer that you can directly access and set its volume. This would affect the call setRRGroupVolume() so if you're using that you'll have to redesign it a bit (please let me know the exact use case there so I can cater in that functionality into the new system).

                      I would heavily suggest that I make everyone of the mentioned API calls throw at the compilation so you need to port the scripts over to the new API. If there is a 100% equivalent under the hood I can try to maintain the old call, but otherwise it will just be dead weight going forward.

                      Christoph HartC d.healeyD LindonL clevername27C 4 Replies Last reply Reply Quote 1
                      • Christoph HartC
                        Christoph Hart @Christoph Hart
                        last edited by

                        @Christoph-Hart forgot a few:

                        • Sampler.getRRGroupsForMessage() - this is also deprecated, if you have a samplemap with varying amounts of round robins, you can define multiple RR layers with a separate cycle length each.

                        • Sampler.enableRoundRobin() / Sampler.setActiveGroup() now that's a tough one as these are probably the most used one, so I probably will not throw an error but just print out a passive aggressive console message that will nudge you towards the new system, but you can now just either create a "RR" layer that will use the default cycle behaviour, or a "Custom" layer that does nothing by default and can be used for custom scripts.

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

                          @Christoph-Hart said in The Sample Map of The Future: Escaping the 20th Century Sample Mapping Paradigm:

                          Sampler.setSortByRRGroup()

                          I've never used it so bye bye to that. 👍

                          @Christoph-Hart said in The Sample Map of The Future: Escaping the 20th Century Sample Mapping Paradigm:

                          RR group volume: not sure who requested that (David?),

                          Sounds like something I'd ask for but I don't think I'm using it anywhere - at least it's not showing up in a quick search of my repos.

                          @Christoph-Hart said in The Sample Map of The Future: Escaping the 20th Century Sample Mapping Paradigm:

                          Sampler.enableRoundRobin() / Sampler.setActiveGroup()

                          These I use, but I'm happy to adapt to a new system as I upgrade my projects.

                          Will the new system come with documentation? I can also make a video once I understand it.

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

                            @d-healey said in The Sample Map of The Future: Escaping the 20th Century Sample Mapping Paradigm:

                            Will the new system come with documentation?

                            Sure if I crank that bad boy out without docs, Lindon will book the next plane to Europe and kill me.

                            I can also make a video once I understand it.

                            I expected nothing else.

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

                              @Christoph-Hart said in The Sample Map of The Future: Escaping the 20th Century Sample Mapping Paradigm:

                              @d-healey said in The Sample Map of The Future: Escaping the 20th Century Sample Mapping Paradigm:

                              Will the new system come with documentation?

                              Sure if I crank that bad boy out without docs, Lindon will book the next plane to Europe and kill me.

                              I beg your pardon? Im already in Europe.......tho I will give you its a little island floating off to one side full of people who a snooty about other europeans....

                              HISE Development for hire.
                              www.channelrobot.com

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

                                @Christoph-Hart said in The Sample Map of The Future: Escaping the 20th Century Sample Mapping Paradigm:

                                Sampler.setSortByRRGroup().

                                Also never used it,,so bye bye sorry I never got to know you....did you have good documentation???? Ironic if so...

                                Sampler.setMultiGroupIndex() / Sampler.setMultiGroupIndexForEventId(),

                                Als never went near these bad boys...tho clearly I was planning on doing so if this brand new good looking option hadn't a turned up...

                                setRRGroupVolume()

                                Really? never even knew it....

                                Sampler.enableRoundRobin() / Sampler.setActiveGroup()

                                OK now we are in business....I used these a lot in a project - that (ironically) Im currently updating for release, so I'm assuming these will still work in the new world? If not Im stuck back on an old version of HISE and wont be able to give much feedback on all these nice new toys - or even their lack of documentation, <-- so theres that in its favour....

                                HISE Development for hire.
                                www.channelrobot.com

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

                                  @Lindon huh, I vaguely remember you talked about living in Australia in the podcast with David at some point or did I get that completely wrong?

                                  so I'm assuming these will still work in the new world?

                                  yup as I said, I will probably not remove those for exact this reason.

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

                                    Happy to help with writing docs :)

                                    Sampler.enableRoundRobin() / Sampler.setActiveGroup()

                                    This is the only one that seems concerning to me. Being able to dump multiple sets of samples into the RR groups and switch between them in the script seems like a very useful, low barrier to entry to creating more complex instruments.

                                    Of course it depends how complicated it is to set up this new... whatever you're calling it. Looking forward to that github notification.

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

                                      @Christoph-Hart said in The Sample Map of The Future: Escaping the 20th Century Sample Mapping Paradigm:

                                      @Lindon huh, I vaguely remember you talked about living in Australia in the podcast with David at some point or did I get that completely wrong?

                                      nope you are completely right - but I moved back to the UK 10 years ago....and have been complaining about the cold ever since....

                                      so I'm assuming these will still work in the new world?

                                      yup as I said, I will probably not remove those for exact this reason.

                                      Then Im all good for a go - where's that big green button that needs pressing?

                                      HISE Development for hire.
                                      www.channelrobot.com

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

                                        Being able to dump multiple sets of samples into the RR groups and switch between them in the script seems like a very useful

                                        That will of course still be the case with the new system.

                                        1. Dump your samples in there
                                        2. Create a custom layer.
                                        3. Assign the samples to indexes within this custom layer (either by manually selecting parts of them and assign it to a certain group or by using the inbuilt file token parser if the file naming scheme is consistent).
                                        4. Call Sampler.setLayerFilter(MY_CUSTOM_LAYER, 4) to play only the samples that you have assigned to the 4th group within that layer.
                                        Christoph HartC 1 Reply Last reply Reply Quote 1
                                        • Christoph HartC
                                          Christoph Hart @Christoph Hart
                                          last edited by

                                          Then Im all good for a go - where's that big green button that needs pressing?

                                          Haha, that's literally the UX at the moment:

                                          c3bcaf8e-97b8-4e14-bc11-7959a28f2546-image.png

                                          1 Reply Last reply Reply Quote 3
                                          • clevername27C
                                            clevername27 @Christoph Hart
                                            last edited by

                                            @Christoph-Hart Improvements > backwards-compatibility.

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

                                            25

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.3k

                                            Posts