For doing a drumkit - 1 sampler for the whole kit, or multiple samplers?
-
I just wanted to put out a thought experiment. If I was gonna make a small drumkit plugin, would it be better to have 1 sampler or multiple samplers?
If we said the spec was something as basic as:
- Ability to switch between different kick, snare, tom, or cymbal drums.
- Ability to load/save a custom selection of drums.
- Ability to have proper hihat open>closed choking behaviour.
To my mind the 1 sampler approach would require:
- Custom function to clear away all samples mapped to a known list of keys for a particular drum.
- Custom function to load all samples required for a particular drum.
- Ability to perform RRgroup assignment as part of this load operation.
- Ability to perform velocity split assignment as part of this load operation.
But the limitations of this approach would be:
- Inability to adjust the routing of multi-mic channels where you have channel mismatches across the drums (kick doesn't have a snare channel for example)
- It isn't immediately clear to me how the choking behaviour would work when wanting to choke keys for a single sampler.
Whereas the multi sampler approach would potentially be a bit simpler:
- One sampler per drumkit slot.
- Each slot could have custom max and soft limits to bring memory usage down.
- Each slot gets its own envelope, which would be beneficial because not all drums need to have the same super long envelope tails.
- Clearing and loading individual drums become simple calls to the sample map clear/load functions for the sampler.
- Loading an entire drumkit is an array of sampler id's and samplemap names that get processed in a loop. Pretty simple code.
But the limitations of this approach would be:
- Higher RAM usage because of the multiple samplers. Although it isn't clear to me how serious an issue this would be.
- No dynamic allocation of the number of drum slots.
It is worth bearing in mind that drum sample libraries quite often do not have the same channels for every single drum. Sometimes you don't have bleed channels, sometimes you don't have a cymbal direct channel, sometimes you don't have a specific room channel for a specific drum, etc etc.
Just thinking aloud really, but what do you think would be the best approach??
-
Multiple samplers
-
Definitely multiple samplers with a reduced voice count per instance (depending on the decay time of the drum, a voice between 16 and 64 should be enough).
Having 8-12 sampler modules is totally fine.