Some of the instruments, especially ‘multi’ instruments, within the Berlin Series by Orchestral Tools have a very high RAM footprint. This is in part due to the number of samples available for things like legato and shorts round robins. It is also affected by the number of microphones loaded.
However, there are elements of the multi patches that can be influenced by the user to reduce Object Memory and TM Pro Voice memory. This article explains what these things are and how to reduce them where desired.
Object Memory
While the microphones and articulations are something that the user can control, there is an inherent cost of loading these Kontakt instruments due how they are mapped, what graphics are used and the weight of the CAPSULE engine used by Orchestral Tools’ instruments. This is called ‘Object Memory’ and will be affecting your RAM usage, even if you have all samples purged. This issue is why running a large orchestral template with these instruments can be prohibitive, even for machines with very large RAM. Additionally, it can contribute to longer DAW saves. Object memory typically consists of:
- Kontakt Scripts and resources such as graphics
- Kontakt Groups
- Kontakt Zones
- Kontakt Parameters
- Group Effects
- Instrument Effects
- Bus Effects
This can be as much as 305Mb for a Berlin Brass multi patch. While Orchestral Tools and Kontakt both optimise this highly, in terms of graphics referenced in multiple patches and the like, this can still stack up substantially.
When using Berlin Brass and Berlin Woodwinds Legacy, I generally only use the Close 1 and Tree or Mix from each library. It occurred to me that there was some extra data in the instrument for microphone positions that, while the samples are not loaded, the mapping is still required in case the user wanted to load them and that this could have a cost. In fact it does.
Background Testing
The Kontakt Scripts cannot be edited, due to the scripts being locked. This is understandable as the technology here could be reverse engineered by other developers. The Kontakt Parameters are also linked into this.
Orchestral Tools very thoughtfully did not lock the instrument itself. One can observe that there are very few Group Effects, Instrument Effects or Bus Effects and removing them has a negligible effect (~.5Mb) effect on the Object Memory of the instrument.
I attempted to remove the Kontakt Groups, since Orchestral Tools has thoughtfully named and arranged the groups used by microphone position. In deleting what I typically don’t use for the Horn 1 multi patch in Berlin Brass (groups from Close 2, AB, Surround and ORTF), I found that the instrument started to play weird releases and samples. This is not surprising, as each group has an ID associated. It is likely that the script looks for these IDs and therefore plays different samples when they are removed.
I noted that I could still remove the zones from these groups without removing the groups themselves. This resulted in a substantial reduction in Object Memory (almost half) with no discernable effects to the sound or functionality of the instrument, besides being unable to use the microphone positions I removed zones for.
Removing Kontakt Zones by Group
Because Orchestral Tools have organised their groups by microphone position, it is in fact very easy to remove zones mapped to those groups by editing the instrument. Below are instructions on how to do this, but it is extremely important that you save the patch as a new patch before making changes and keeping a backup of your patches.
- Save a ‘Light’ version of the patch. Note the Object Memory Used field in the ‘Expert -> Engine’ tab
- Use the Wrench to edit the instrument then use the ‘Expert -> Groups’ tab to search for microphone positions and then select them
- Open the Mapping Editor for the patch. Ensure ‘Selected Zones Only’ is active, then right click to ‘Select All Zones’, then right click ‘Delete Zones’
- Note the Object Memory Used field in the ‘Expert -> Engine’ tab and save the instrument again
Results
In my testing, I have managed to see the below results:
Horn 1 Multi Patch
- ~305Mb Object Memory Used before removing zones
- ~168Mb Object Memory Used after removing zones for Close 2, AB, ORTF and Surround groups
Horn 1 Legato Single Patch
- ~155Mb Object Memory Used before removing zones
- ~84Mb Object Memory Used after removing zones for Close 2, AB, ORTF and Surround groups
Reducing TimeMachine memory usage
Memory allocated to TimeMachine is generally quite high depending on whether you have the repetitions articulations (16ths, Triplets) loaded, especially in a Multi patch. The Multi patches, if these articulations have not ever been loaded, are already efficient in this regard. However, if one loads one of these repetitions articulations, then removes it, not all values are cleaned up.
- This issue is only pertinent to patches that make use of Time Machine (Berlin Brass and its expansions, possibly Berlin Strings)
- If there is no TM Pro Voice Memory allocated in the Engine tab when the library is loaded, then this issue is not pertinent
Berlin Brass Trumpet 1 Example
- Load a Trumpet 1 Multi patch from Berlin Brass
- In the Expert -> Engine tab, observe the object memory and TM Pro Voice Memory. These should be around 245MB and 54MB
- Click the Wrench to edit the patch, then select Instrument Options
- Click the Voice Handling tab
- Observe the voice limits for Standard and HQ modes, both set to 1 by default
- Close the wrench and in the Multi patch, load one of the 16th repetition articulations
- Observe that the object memory and TM Prop Voice memory in the Engine tab are now higher, around 400MB and 211MB respectively
- Again, click the Wrench and Instrument Options, then check the Voice Handling tab
- Observe the voice limits for Standard and HQ modes, now set to 32 and 8 respectively
- Close the Wrench and remove the the repetitions articulations
- Observe the voice limits for Standard and HQ modes remain at 32 and 8 and the Object Memory and TM Pro Voice Memory do not return to original values
Adjusting these Voice Limits will have substantial impacts on the Object Memory and TM Pro Voice memory of the Multi patch. The values specified feel appropriate for using multiple microphone positions as well as chords. However, if you use these articulations as a single voice or only two microphone positions you might not need the Voice Limits as high as they are. Additionally, if you have loaded one of these articulations and since removed it, the patch may still retain its original voice limits. This is likely a bug within the patches themselves.
Other Considerations and Suggestions
Here are some other tips for reducing Object Memory usage:
- Single patches are always cheaper than a multi patch with the same number of articulations loaded, in terms of Object Memory usage. The main disadvantages of doing this is that it makes editing microphone balance harder and uses more MIDI channels in a Kontakt instance
- Multi patches are vastly more convenient for maintaining a microphone balance across multiple articulations and in terms of keeping the number of channels low
- If Object Memory is not a concern, there are still several reasons not to use a multi patch, when it comes to certain articulations such as Legato with multiple styles and vibratos, Sustains with vibratos, the Trills Orchestrators and Playable Runs. The user interaction cannot be exactly mimicked in the multi patches but in most cases a decent alternative interaction is available
- If one wants to have all possible styles in a single Kontakt instance, such as Trumpet 1 with senza sordino, con sordino and 2 different harmon mute styles for legato, sustains, shorts etc. it is best to use a multi for the styles that don’t have different vibrato effects first (harmon, con sordino) so that functionality is maintained for styles with different interaction (swapping between vibrato, slur vs re-tong etc.)
- If using a multi patch without legato for that instrument, ensure ‘Purge Legato’ is used in the microphone settings to reduce Sample Memory