I've just read Joseph Burrell's comments on another thread:
Originally Posted by Joseph Burrell
Well, let me clarify... I'm on the beta team and the stuff coming is amazing. You have no idea what's in store. Tom is a genius and a madman. There's so much stuff!
I just had this idea to optimize the use of RAM when using GPO, I don't know if this idea has ever been considered or if it's even technicaly possible but here we go!!!
When using a given sound in GPO (for example Violin 1 Gagli solo) the samples of ALL the notes of that sound are loaded in the RAM, right.
The range of the Violin 1 Gagli Solo is from a low G to a high D, it totals 44 different notes/semitones, right.
My guess is that there are 44 different samples loaded into the RAM, one for each note of the range of that instrument, right (?).
If that is the case, every instrument you load has it's FULL RANGE loaded in RAM, (44 samples for Violin 1 Gagli Solo, 44 samples for Violin so and so...) right?
My question is then, how often do you use EVERY NOTE of the range of a given instrument once it's been loaded in RAM??? (I mean use every note at least once and in the case of Violin 1 Gagli Solo this would mean 44 different ones).
Now here's da crazee idea:
An Analyze & Selective Loading Function (huh???)
Let say you have a score/sequence of a FULL orchestra loaded in your sequencer but don't have enough RAM to load ALL the instruments for it
Well the "Analyze" function could take into account ALL the notes that needs to be played back (of each instrument) for that given score/sequence (obviously not EVERY NOTE of the full range of every instrument).
Then the "Selective Loading Function" would load in RAM ONLY the samples of the REQUIRED NOTES of every instrument. NOT, for example, the 44 samples of Violin 1 Gagli Solo but, let say, the 12 notes/samples the Gagli violin would need to play in that particular sequence.
This would optimize the use of RAM by loading only the samples that NEEDS to be played (for that particular sequence).
This doesn't sound crazy to me. It sounds like properly optimized behavior of DFD...demand loading of individual samples. These things can be tricky to tune because of the instantaneous demand they put on the CPU and I/O subsystem. This would speed up the loading of a project and probably reduce total memory requirements at the expense of some CPU and I/O.
Tom Hopkins, if you're tuned into this thread, is this behavior implemented in the DFD capability?
That's not what we were referring to - the new update to GPO will add DFD in the Kontakt player... Here we are talking about a "smart" scan of the material that would DELETE unused notes from Ram - say you have a three note melody out of a possible 44 notes - click RAM save and the other 41 notes are removed from RAM.
In other environments this is usually referred as "cache". Think of it as a memory management enhacment, or a network protocol addressing cache, or whatever.
And I don't think it should have much CPU/IO impact neither. Keep in mind that our daily work consists of loading a sequence and working on it over and over (I'm excluding real time performance, of course). This means that the set of notes been played remains more or less constant. This is something a cache can easely handle if properly tuned.