Sample Playback VS Resources
hello again :)
im a sampling guy . im not working with vst synths nor developing any synths for personal use . rather sampling synths for later sample manipulation . this is the way im constructing sound collages / structures / anything .
ive had some wonderings ,which leads me to make some tests considering sample playback and the resources .
the short story :
ive been developing for many years in NI environment . Patching their Reaktor and writing scripts for Kontakt to facilitate my work flow using very expensive DAW Cubase (too expensive :( ) . Ive done a lot of work to make everything CPU/MEMORY friendly . i love reaktor (mostly because ive been using it since Generator days – sentimental ). But Reaktor has one very ugly native behaviour – when it comes to sample handling (building sample maps) reaktor give me only the possibility to load samples into memory (has no implementation that allows you to clear the buffers) ,managing any I/O is actually not possible .
This is very bad ,and there is no statement/promise from NI guys that it will change . They even said that for sample library would be better to stick with Kontakt . But then you cant do all that crazy things .
And im working with my own huge sample libraries that has been managed in a dedicated way to suit my special needs . Most of the musical sounds has been tuned inside Kontakt and the same amount of work has been done for Reaktor maps (weeks to do) .
At one point i found that some of the things i want to do with my implementations and substitutions has already its place in Ableton . So ive switched from my old DAW to Ableton (demoed it at first). Ive been happy with the interface ,and that every device has its own ready to access directly (thats a huge help for everday work).
But ive been surprised a bit .
As im rely on my sample libraries i want to work with them as ergonomic as i can . Im not a browser guy ,i cant drag and drop(or swap) sample by sample into device everytime i want to check if its good for me (and tune it everytime – not possible).
So at first ive tried to convert my banks into Ableton multisampler device (Sampler) and i found that by storing your device Ableton starts to copy your sample files into its own Library folder (damn ,why it cannot use original source ?) which means its doubling your libraries plus it makes a huge mess in its own folder . Also converting Kontakt nki’s did not successed in 100% – it lost my tuning/panning/startpoint/loop/gain data .
So ive started to question myself if switching to Ableton is a good choice . Because if i want to work with my banks im probably forced to stick with Kontakt and Reaktor . Which also means that im not taking advantage of Ableton’s interface and its workflow .
Im forced to open and close VST windows everytime i want to access my tools (too bad) . Another thing is that when i work on a sound project im using few instances of Kontakt (to get around 20 – 30 channels for sounds – 16 channels per instance) then searching for a right kontakt instance is a huge headache and not ergonomic in many ways when it comes to such amount of channels .
And here comes the main part of the story.
MAX is here !
Ive rebuilded/substituted that Kontakt behaviour and my scripts inside M4L. Ive implemeted UI sample key mapping , bank creations with settings for each sample/key , quick loads – intuitive direct access browser. Even such thing like not loading samples into memory untill i press a key or
unloading unused samples from memory . And it has its own direct interface per channel .
Amazing ! it really works . But without YOU GUYS it would not be possible . Im really thankful for your input over the years and now !!!!!!
I love you !
But going forward
One thing ive noticed when it comes to audio/sample playback in M4L :
It hit the resources much more than natvie Ableton sampler devices (which is logic) . it even requires more resources comparing to Kontakt or Reaktor sampler !!! .
My CPU on PC is AMD Phenom II X4 955 / 3.20 Ghz . My audio interface is MOTU
One Core test (all other cores are disabled for the test purpose) . network services are on
1 x Sampler : 3 – 4% cpu
2 x Sampler : 5 – 6% cpu?
3 x Sampler : 6 – 7% cpu?
with assumption that M4L instance takes already 1%cpu
1 x [groove] alone (without additional implementation) : 6 – 7% cpu
2 x [groove] alone (without additional implementation) : 9% cpu ???
3 x [groove] alone (without additional implementation) : 13% cpu ???
those are strange numbers . ive not listed reaktor and kontakt comparations because are proportional to the amount of used instances (which is not in this specific case of m4l) and takes much less than [goove] alone .
Everything would be ok if im using just few instances of a sampler ,but when it comes to 16 -20 instances its a huge impact (makes no sense in a huge projects),it takes much much more resources than native ableton devices .
And the funny thing is that it takes much much more resources than NI implementations that are suited with tools/handlers and sample interpolation as default !!!!
Note that im comparing just a [groove] object itself with them (not a functional sampler implementation) .
So im wondering ,if any of you had some adventures considering sample playback , M4L . What could be done ,and if there is a chance to improve my scenarios . i really dont want to switch back to my old way of working with kontakt and reaktor . i found MAX much clever and much more suited for my imagination ,the same for Ableton .
But must it cost so much resources ?
Or im doing something obviously wrong ?
Possible to get some advices from C’74 ?