HISE Logo Forum
    • Categories
    • Register
    • Login

    Adjusting sample start position in one sample affects another

    Scheduled Pinned Locked Moved Bug Reports
    5 Posts 2 Posters 956 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 d.healey

      I just found that changing the sample start position in one sampler in a container affects another in the same container - both samplers are sharing the same samples so I think this has something to do with it. Basically in my release sampler I want to use the same samples as my sustain sampler but have them play back from near the end of the samples only.

      alt text

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

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

        Nice catch. This is the disadvantage of sharing references of samples vs. duplicating them.
        I'll need to add explicit support for this which is not totally trivial so maybe you should look for a workaround until then.

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

          I'll just make some extra release samples, shouldn't use too much RAM. I noticed this also affects purging, if the release samples are purged then so are the sustain.

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

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

            Yes, that's right. If you're interested in the gory details: there are two types of sampler sounds (I'll call them by their C++ class name): StreamingSamplerSound and ModulatorSamplerSound. The first type is the more low level sample and just handles the streaming / purging. The latter is one abstraction layer above and contains a reference to a StreamingSamplerSound (or even multiple references for multimic samplers) and all properties (volume, MIDI mapping, etc).

            The global sample pool is a list of StreamingSamplerSound. If you load a sample into the sampler it checks the pool if it already exists and then just copies the reference. However this means that all streaming related properties are shared among the ModulatorSamplerSounds:

            • purge state
            • sample start / end
            • loop points
            1 Reply Last reply Reply Quote 0
            • d.healeyD
              d.healey
              last edited by

              That makes sense, I can see how it will be a little tricky to solve

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

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

              52

              Online

              1.7k

              Users

              11.7k

              Topics

              101.8k

              Posts