• SONAR
  • Programming a Single MIDI Part Requiring Multiple Kontakt Instruments (p.3)
2017/01/16 10:32:51
bitflipper
PeteL
Do you have a feel for the CPU/Memory impact of 30 nki's loaded vs. 5 with keyswitches?

It depends on the instrument(s), but consider this: a single instrument with many articulations necessarily has the same total number of samples as separate instruments with one articulation each. 
 
There is some additional memory overhead for each instrument, but compared to the RAM requirements of the samples themselves, it's trivial. You might even save some memory using individual instruments, at least until you purge unused samples, because that big do-everything library is likely to load articulations you won't be using.
 
More significant might be the additional CPU usage of each Kontakt instance. It is more efficient CPU-wise to have 16 instruments loaded into 1 instance than it is to have 16 instances of Kontakt with 1 instrument each. It logically follows then that 5 instruments in one Kontakt instance will be more CPU-efficient than 30 instruments in 2 Kontakt instances.
 
But it won't be twice as CPU-expensive, though. Maybe only 5-10% less efficient (that's just a guess). Not enough of a cost to trump ease-of-use. For example, you may find it necessary at some point to start freezing tracks. Then you'll be glad you have multiple Kontakt instruments that can be frozen independently.
 
On the subject of giving keyswitches their own MIDI tracks, I too am a fan of the technique. There are many benefits.
 
Say I'm doing a string arrangement; I'll have 8 or 10 tracks in a track folder:  1st violins, 1st violin keyswitches, 2nd violins, 2nd violin keyswitches, etc. I can then show just what I need to show in the PRV. For example, I might overlay my 1st and 2nd violin keyswitch tracks to make sure their articulations match.
 
Sometimes, the keyswitches are mapped so low on the keyboard that it's impossible to see them and the instrument notes at the same time. But because my keyswitches are on their own tracks, I can move them up in the PRV and transpose them down to their proper values in the track header.
 
And, as noted earlier, you can use drum maps to keep them straight when there are a bunch of them.
2017/01/16 11:14:31
PeteL
IGNORE THIS MESS ... The formatting is fixed in the next post! Sorry!
 ---------------------------------------------------------------------------------
Thanks Bit!  Your explanations are always enlightening!  I appreciate the time you took to explain that.
 
But here's an issue with the library in question:
 
bitflipper
It depends on the instrument(s), but consider this: a single instrument with many articulations necessarily has the same total number of samples as separate instruments with one articulation each. 
[/quote

The library in question has 5 instruments of 6 unique keyswitched articulations each.  The only way I currently see to make tracks correspond to a single articulation is to load each of the 5 instruments 6 times each, and manually pressing the appropriate GUI button to set the desired articulation for the track/instrument instance.   That will lead to the 30 tracks previously discussed.  But, unfortunately, each of the 6 instances required to separate the articulations within the instrument will also contain the samples for the other 5 (unused in the single-articulation track) articulations.  That will obviously take up more memory!
 
Ideally one could purge the 5 unused articulations per single-articulation track, but I'm not sure how readily that is done.  I envision having to first write and play a "Prepare for Purge" sequence a particular articulation track in order to exercise every single sample within the articulation to be contained in the track, and then purging and saving the single-articulation-instrument.  Not only would I have to determine how many velocity levels need to be exercised within the "Prepare for Purge" sequence, I'd also have to exercise round robins, legato/non-legato, and probably other samples within the articulation.
 
Boy this is getting complex!  Maybe I should just stick to a single articulation/velocity and create "robot music!"
 
Seriously, though, I'm currently leaning toward 5 tracks for the 5 instruments (and associated keyswitch tracks), as I keep finding ways to make that scheme work easier.  For instance I've found (thanks to this thread) that I can now quickly copy-cut/paste from one track to another in PRV at the exact same timing by (1) selecting notes, (2) SHIFT-G to automatically set the Now Time to the start of the selection, (3) CTRL+C, (4) click the destination track in PRV, and (5) CTRL+v.  That is actually quicker done than said.
 
But still thinking and optimizing the workflow ...
 
Pete
 
[EDIT - For some reason the formatting has gotten all dorkec up when displayed, even though everything looks OK in the edit mode.  I'll try posting it again below.]
2017/01/16 11:24:57
PeteL
Thanks Bit!  Your explanations are always enlightening!  I appreciate the time you took to explain that.
 
But here's an issue with the library in question:
 
bitflipper
It depends on the instrument(s), but consider this: a single instrument with many articulations necessarily has the same total number of samples as separate instruments with one articulation each. 
 

The library in question has 5 instruments of 6 unique keyswitched articulations each.  The only way I currently see to make tracks correspond to a single articulation is to load each of the 5 instruments 6 times each, and manually pressing the appropriate GUI button to set the desired articulation for the track/instrument instance.   That will lead to the 30 tracks previously discussed.  But, unfortunately, each of the 6 instances required to separate the articulations within the instrument will also contain the samples for the other 5 (unused in the single-articulation track) articulations.  That will obviously take up more memory!
 
Ideally one could purge the 5 unused articulations per single-articulation track, but I'm not sure how readily that is done.  I envision having to first write and play a "Prepare for Purge" sequence a particular articulation track in order to exercise every single sample within the articulation to be contained in the track, and then purging and saving the single-articulation-instrument.  Not only would I have to determine how many velocity levels need to be exercised within the "Prepare for Purge" sequence, I'd also have to exercise round robins, legato/non-legato, and probably other samples within the articulation.
 
Boy this is getting complex!  Maybe I should just stick to a single articulation/velocity and create "robot music!"                        
 
Seriously, though, I'm currently leaning toward 5 tracks for the 5 instruments (and associated keyswitch tracks), as I keep finding ways to make that scheme work easier.  For instance I've found (thanks to this thread) that I can now quickly copy-cut/paste from one track to another in PRV at the exact same timing by (1) selecting notes, (2) SHIFT-G to automatically set the Now Time to the start of the selection, (3) CTRL+C, (4) click the destination track in PRV, and (5) CTRL+v.  That is actually quicker done than said.
 
But still thinking and optimizing the workflow ...
2017/01/16 11:35:02
bitflipper
Ah, I misunderstood your challenge initially. I thought the problem was that the instruments were not keyswitched but required separate instruments for each articulation. That used to be a common practice before Kontakt became the standard it is today. But if the instruments support keyswitching, even partially, then that greatly simplifies the solution.
 
If switching articulations requires manually clicking on a button in the UI, then I'd suggest automating that button push. Pretty much any control in Kontakt can be linked to a MIDI CC value and automated.
2017/01/16 11:52:46
PeteL
I understand your misunderstanding, Bit!    Many people probably have not quite understood - I found this to be a very difficult problem to put into clear, concise words.
 
To add a little more information: each of the 5 instruments contain 6 different articulations (of the 30 total), ARE keyswitched between the 6 articulations contained within.  One complication, though, is that the keyswitches within each instrument reside on C0-F0 and not remappable.  So articulations 1-6 are on C0-F0 on instrument #1, articulations 7-12 are on C0-F0 on instrument #2, and so on.
 
In itself, this is not that bad, until it comes to workflow.  I typically would write a section of melody, and then assign keyswitch articulations to some notes.  But with the 5 instruments required to get all 30 articulations at your disposal, I have to assign to first an instrument (differentiated by MIDI track) and then the keyswitch within the instrument.  And for editing purposes I need to PRV to clearly display (via color) which instrument and keyswitch a note is being sent to giving me both a coherent view of the melody and how it is articulated.  That last sentence is the puzzle to be solved.
 
And as I said, using 5 instrument and 5 keyswitch tracks shown on the PRV is looking more and more workable.  I just need to work out a few awkward editing actions that probably could be optimized or streamlined.
 
Maybe someday I'll make some actual music - haha!
 
Pete
2017/01/16 12:05:25
Bristol_Jonesey
You should be able to create a drum map to control the articulations.
Just map them in groups of 5 to address the different instruments in Kontakt: they can then all be displayed simultaneously in the map which you can show above your regular Midi (Note) tracks below in the PRV.
2017/01/16 12:05:33
Bristol_Jonesey
You should be able to create a drum map to control the articulations.
Just map them in groups of 5 to address the different instruments in Kontakt: they can then all be displayed simultaneously in the map which you can show above your regular Midi (Note) tracks below in the PRV.
2017/01/16 12:17:09
PeteL
You mean when creating the drum map set up 30 unique keyswitches (one for each articulation), route them to the appropriate MIDI channel (instrument), and remap the notes to the appropriate note in the range of C0-F0?
 
If so, THAT IS BRILLIANT!
 
I was just setting up something similar, but not with all the conveniences you mention (if I'm understanding correctly).  Time to go edit that ...
2017/01/16 12:36:45
bitflipper
I don't know if this will help you or not, but you'll probably find it interesting regardless. He's using a large number of individual instruments, many for specific articulations. This particular collection utilizes a technique I like a lot, using velocity rather than keyswitches to change articulations. (Start saving up, it's a $1700 library.)
 

2017/01/16 13:20:46
Slugbaby
PeteL
You mean when creating the drum map set up 30 unique keyswitches (one for each articulation), route them to the appropriate MIDI channel (instrument), and remap the notes to the appropriate note in the range of C0-F0?
 
If so, THAT IS BRILLIANT!
 
I was just setting up something similar, but not with all the conveniences you mention (if I'm understanding correctly).  Time to go edit that ...


That would make sense - you can specify the sending channel for each note within the map.    ANOTHER good idea from this thread!
© 2026 APG vNext Commercial Version 5.1

Use My Existing Forum Account

Use My Social Media Account