HISE Logo Forum
    • Categories
    • Register
    • Login

    What is a sensible number of samplers in a single plugin?

    Scheduled Pinned Locked Moved General Questions
    33 Posts 6 Posters 1.5k 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.
    • O
      Orvillain
      last edited by

      Could I get away with 128 samplers in a single plugin, or no?

      I mean, I tried it and HISE became very sluggish and started to crash often. Just wondering if I need to temper my expectations?

      Why would I want to do this? Because I want each individual sample to have its own distinct amplitude envelope, midi modulation settings, and effects routing.

      clevername27C 1 Reply Last reply Reply Quote 0
      • clevername27C
        clevername27 @Orvillain
        last edited by clevername27

        @Orvillain Why would you want that many samplers?

        EDIT: We've got sampling royalty in the house!

        O 1 Reply Last reply Reply Quote 0
        • O
          Orvillain @clevername27
          last edited by Orvillain

          @clevername27

          Because correct me if I'm wrong, but you cannot have gain modulation envelopes, pitch modulation envelopes, and FX sends assigned to individual samples inside a sampler. I'd love to be wrong on this!

          For example, see FXpansion Geist:
          e3c30d09-20d6-472a-ad6d-e97dc189da7c-image.png

          8 engines x 16 pads x 8 layers - with each layer effectively being its own sampler; with its own envelopes, filter, timestretch, and other tweaking parameters.

          clevername27C 1 Reply Last reply Reply Quote 0
          • clevername27C
            clevername27 @Orvillain
            last edited by clevername27

            @Orvillain Are you sure people want to do that? I don't see anyone going through the trouble of assigning 128 of anything. While I'm not familiar with your project, maybe keep everything the same for each layer. Personally, my goal is to always give the user fewer options — and make musical choices for them so it just sounds good.

            I'm wondering – as this is a percussion device, how are you using timestretch? As far as I know, the algorithm also stretches transients (as opposed to leaving the transient, and stretching the release portion of the sound, like zPlane 3). You'd end up with mushy-sounding samples.

            (And I obviously stand corrected on the choices issue.)

            O 1 Reply Last reply Reply Quote 0
            • O
              Orvillain @clevername27
              last edited by Orvillain

              @clevername27 said in What is a sensible number of samplers in a single plugin?:

              @Orvillain Are you sure people want to do that? I don't see anyone going through the trouble of assigning 128 of anything. While I'm not familiar with your project, maybe keep everything the same for each layer. Personally, my goal is to always give the user fewer options — and make musical choices for them so it just sounds good.

              I'm wondering – as this is a percussion device, how are you using timestretch? As far as I know, the algorithm also stretches transients (as opposed to leaving the transient, and stretching the release portion of the sound, like zPlane 3). You'd end up with mushy-sounding samples.

              Given that I used to work for FXpansion, yes I'm fairly sure people want to do that :beaming_face_with_smiling_eyes:

              Absolutely possible that I am using HISE for an unintended purpose, but in the world of drum samplers, this is very common functionality - AKAI MPC is another bit of software that gives you distinct layers, and all of the associated envelopes, voice management, and routing options, on a per layer basis.

              I'm just playing around right now, trying to discover the possibilities and the limits; trying to not have to jump into JUCE and C++ and learn both simultaneously, because really I just want to do some quick prototyping.

              RE: Timestretch. You'd be surprised what people can be happy with. The timestretching on the old AKAI Sxxx samplers was horrible... but at the same time it helped pioneer an entire genre and aesthetic of warbly and mangled drum sounds! A lot of early 90's drum and bass used it to great effect!

              clevername27C 1 Reply Last reply Reply Quote 1
              • clevername27C
                clevername27 @Orvillain
                last edited by

                @Orvillain Omg, that's awesome. Angus is a friend, and love catching up with him when I see him at NAMM. I was one fx's first endorsees, and love the brilliant work you folks did.

                O 1 Reply Last reply Reply Quote 1
                • O
                  Orvillain @clevername27
                  last edited by

                  @clevername27 said in What is a sensible number of samplers in a single plugin?:

                  @Orvillain Omg, that's awesome. Angus is a friend, and love catching up with him when I see him at NAMM. I was one fx's first endorsees, and love the brilliant work you folks did.

                  Oh wicked! Yeah, Angus is a good friend too! I'm Drew (ex-FX QA manager, tech-support manager, BFD content developer - now with inMusic and BFD still!)

                  You reckon I'm trying to bend HISE to whims that it wasn't really intended for??

                  clevername27C 1 Reply Last reply Reply Quote 1
                  • clevername27C
                    clevername27 @Orvillain
                    last edited by clevername27

                    @Orvillain Dude I know you! I'm Bill Evans. Good to see you again.

                    I remember @Christoph-Hart talking about the maximum number of samplers being pretty high, but maybe not that high. There may be more efficient ways to do what you're aiming at than individual samplers, though I don't know what that might be. I'm hoping you stick around here, because you KNOW drum sampling!

                    You might be interested in my research, which converts acoustic drum performances to MIDI data. The MIDI is so close to the original that, when played back, it phase-cancels the original. (This also involves artifact-free stem separation, and the real-time rendering of theoretical sounds that weren't originally recorded.

                    O 1 Reply Last reply Reply Quote 1
                    • O
                      Orvillain @clevername27
                      last edited by

                      @clevername27

                      haha!! Yes! Hi Bill, I definitely remember you. Definitely interested to see your research, feel free to pop it over.

                      I've switched from the full Sampler to the AudioLooper now... it seems to be a bit more stable here. I'll try that for now. As I say; just mucking around... trying out a few concepts. I've got some CMajor experiments on the go as well!

                      clevername27C 2 Replies Last reply Reply Quote 0
                      • clevername27C
                        clevername27 @Orvillain
                        last edited by clevername27

                        @Orvillain Here's a quick video…

                        Link Preview Image
                        PRISM Demo Preview #1.mov

                        Shared with Dropbox

                        favicon

                        Dropbox (www.dropbox.com)

                        The one also demonstrates the predictive audio to fill in parts of the recording that never happened, like if you pull two notes apart.

                        The technology, itself, is mostly physical modeling - but I've been using samples to demonstrate, because it's much faster to render in real-time.

                        You guys were the first people to make a believable sound drum machine. Geniuses, all around you folks.

                        1 Reply Last reply Reply Quote 1
                        • A
                          aaronventure
                          last edited by

                          Keep in mind that HISE has something like 256 internal MIDI channels.

                          If you then add a script envelope modulator (this is completely undocumented other than what you find on the forum here), you're now in the world of polyphonic modulation.

                          Then, use the MIDI node (with the default MPE set to on) to do any kind of modulation you want. Trigger it using CC. You'll have to call Synth.sendController in your UI controls, intercept it down the line in another MIDI processor and adjust its channel. This sounds like it'll be tricky.

                          But then you can use the channel-split controllers to communicate with your modulators. Controllers on each channel will only affect notes that were played on that channel. This sounds like it'll be quite the fun to set up and get working.

                          You can still use multiple samplers if you want like 8 engines, these can be separate samplers if for whatever reason something doesn't work. Already 40 is a bit crazy, will eat up memory and be a PAIN to manage.

                          @Christoph-Hart can you please give this a read and see if I hallucinated anything,,,, And do you think that there is an easier way to send a virtual polyphonic value (channel-based cc# value) to a polyphonic modulator than the current method of calling Synth.sendController() and intercepting it down the line because Synth.sendController() doesn't take MIDI channel as parameter?

                          O 1 Reply Last reply Reply Quote 1
                          • clevername27C
                            clevername27 @Orvillain
                            last edited by

                            @Orvillain Would love to check out what you're up to.

                            1 Reply Last reply Reply Quote 0
                            • O
                              Orvillain @aaronventure
                              last edited by Orvillain

                              @aaronventure

                              This sounds like an interesting path for exploration. But reading between the lines, this wouldn't give per-sample envelopes right? It might be a way to get per-voice envelopes, but that isn't quite the same thing no?

                              I have finished the night with my prototype up and running, in some sense. I don't know what I did, but my project started to compile much quicker after a while, and I have managed to have 128 samplers loaded up at once with no more stability problems. I'm perplexed.

                              @clevername27 - throw us a private message!

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

                                @Orvillain generally ----- 16 samplers is a point where HISE is comfortable, I once tried 32 samplers and HISE started to give up on me....but it depends on what's in each sampler..

                                HISE Development for hire.
                                www.channelrobot.com

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

                                  128 samplers is definitely overkill - the sampler module is designed for the purpose of streaming large sample sets so if you throw only a single one shot at it you’re definitely wasting a lot of resources (mostly RAM, take a look at your task manager after you created 128 instances)…

                                  Loopers are a bit less resource-hungry but if you want to scale that with a good performance you should look into creating a custom sample player with scriptnode. I‘ve created a drum plugin with 36 individual channels like this and the performance is very close to the optimum (which would be handcoded c++).

                                  O 1 Reply Last reply Reply Quote 1
                                  • O
                                    Orvillain @Christoph Hart
                                    last edited by

                                    @Christoph-Hart said in What is a sensible number of samplers in a single plugin?:

                                    128 samplers is definitely overkill - the sampler module is designed for the purpose of streaming large sample sets so if you throw only a single one shot at it you’re definitely wasting a lot of resources (mostly RAM, take a look at your task manager after you created 128 instances)…

                                    Loopers are a bit less resource-hungry but if you want to scale that with a good performance you should look into creating a custom sample player with scriptnode. I‘ve created a drum plugin with 36 individual channels like this and the performance is very close to the optimum (which would be handcoded c++).

                                    Nice one, cheers! I've not looked at script node yet, guess I'll start digging into that this week.

                                    O 1 Reply Last reply Reply Quote 0
                                    • O
                                      Orvillain @Orvillain
                                      last edited by

                                      Hmmm, So 128 ScriptNode Synths... each of them with a "file player" inside, gives about 500mb of RAM. Which isn't too bad I don't think.

                                      Building my own node network for the kind of playback sampler I am looking for, seems viable.

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

                                        @Orvillain that's a lot of RAM. Will users only load a single instance per project?

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

                                        O 1 Reply Last reply Reply Quote 0
                                        • O
                                          Orvillain @d.healey
                                          last edited by

                                          @d-healey said in What is a sensible number of samplers in a single plugin?:

                                          @Orvillain that's a lot of RAM. Will users only load a single instance per project?

                                          Well here an empty Groove Agent SE5 is coming in around 300mb by itself. I'd like to get that number down, sure. But 500mb is way more acceptable than the 3.2gb required to do this with the HISE Sampler.

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

                                            @Orvillain yeah 300 is pretty chunky too. Do you really need 128?

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

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

                                            24

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.8k

                                            Posts