Keyscape with Cantabile Performer 3


thanks Brad. As I thought, the “tips&tricks” from Spectrasonics support page didn’t help me - actually not some golden advice from them. lol

I’ll try to write them. hoping they will reply me…

in the meanwhile, I’ll keep testing… :+1:


Here’s my understanding of how sampler streaming works:

Streaming samplers get their efficiency from:
a. Loading the initial “attack” into RAM (say 100 ms), and playing it from RAM. In this model, all “possible” attack samples are loaded into RAM so they can be quickly accessed (which also means that you’ll get a better “response” when playing - different from generic latency, but that’s another discussion).

I believe that some samplers (Kontakt?) let you determine how much sample is preloaded. This lets you ramp up or ramp down your memory.

b. If the sound is longer than the initial attack (e.g., you hold the key down for 4 seconds), the remainder of the samples for the keys that are in use (being played) will be into RAM and played from there, then they’ll be released by the sampler, or the OS (depending on the model).

In most cases only part of a long sample will stay in memory, but there are potential optimizations that may be made to help performance.

A piano patch with 3 levels of velocity (1 sample per level) will take up less RAM (non-streamed samples) than a patch with 7 levels of velocity. In fact, since attacks are where you get the greatest variation in “tone”, some libraries use some tricks on the remainder of the sample (e.g., open the filter for higher velocity notes, but use the same underlying sample).

Some libraries come with “lite” versions of the patches.

A couple tricks (and I’ll use Kontakt as an example):
I have a split with bass (24 notes) on the bottom, a grand piano in the middle (36 notes), and violin on top (28 notes).

Setup A: I use Cantabile to manage the splits.
Result = I load the attack samples for all three instruments across their entire range, regardless of whether I can play them (e.g., high piano notes , low violin notes). Let’s say all three instruments had an 88 note range with one velocity - I’d have to load 264 samples for those attacks (more if you have velocity switching in any of the libraries).

Setup B: I edit all three patches so that I only have the samples for the ranges I need. I save them (must do that) and rename them. Cantabile simply maps to the channels without needing to have any range filtering.
Result: Only the initial samples for the ranges in the reduced patches are loaded. I only load 88 samples , reducing my RAM usage greatly.

There are other tricks (that I remember from my Emulator II days) like:
Stretching a sample across multiple keys -
Stretching a sample across multiple keys at extreme ends of the keyboard (where they’ll be used less and less noticeable)
Turning off “release” samples, or overtones, or using patches without “sostonuto” and other “overlayed” samples.

Here’s an article on this if you want to read more.


It sounds like disk performance is simply too slow and as you play keys, Keyscape adjusts for this by loading more of each needed sample into RAM. Are you using a fast dedicated SSD?


no, 5400 mechanical drive. I know it’s a problem in speed, but it’s not a matter of speed here, it’s the way Keyscape loads samples.

Anyway, it’s only matter of time of knowing how to tame it down. Simple optimizations, nothing more.


What I’m saying is that KeyScape loads part of the samples in its RAM buffer (as most if not all DFD samplers do), but that when you start playing it notices the buffer is too small to compensate for the low drive speed. So it adjusts by leaving more of the played samples in RAM. This would account for both the occasional dropouts and the slowly increasing RAM usage. Spectrasonics “recommends” an SSD for KeyScape btw. That means you don’t NEED one but of course a 5400RPM traditional HDD is at the other end of the spectrum.

You say it remains more or less constant around 5.3GB, perhaps you can find a preload buffer setting somewhere and aim for that number.


ah, got it, you are saying that Keyscape adapts sample load depending on hardware. Well, it could be, but personally I never found this function/feature/anything in any software - and I really doubt we could have any explanation from Spectrasonics about this type of things.

I’m planning to buy an SSD this month or the next, I’ll let you know if something changes (but surely will do, obviously).

what I was wondering, btw, is: I was searching a way to make Rhodes Classic (for example) not load Rhodes LA Custom’s Release samples. I found that this info are stored in .db file (you don’t say?? lol) but can’t open 2 GB of .db file with NotePad++, don’t know why. I slimmed the library down and kept only Rhodes Classic for Rhodes, but I have the annoying message of “noise pedale release sample not found” (because it was from the Rhodes LA Custom that I removed), so I thought I could make a patch not load some samples. :face_with_raised_eyebrow:



Steve Steele explains how to optimize Kontakt to only use the samples for the notes you actually USE, plus many other optimizations, in this video. He explains how the DFD loading works, and how to set up your preload buffer settings. Quite educational and informative. Much of what he talks about may apply to Keyscape also, but you’ll better understand what sanderxpander is talking about for sure.