Version 1.0.2 of NI's Kontakt was reviewed in SOS back in August 2002, and has since become a major player amongst software samplers (see the review at www.soundonsound.com/sos/aug02/articles/nikontakt.asp). To recap briefly, Kontakt is a sophisticated software sampler, offering sample creation from compatible file formats, sample manipulation and performance capabilities similar to programs such as Tascam's Gigastudio, Steinberg's Halion and Emagic/Apple's EXS24. Samples can be streamed directly from disk and processed by a large variety of effects: time-stretching, filtering, modulation, looping and beat-slicing are just a small selection of the armoury of tools on offer. Version 2 has had a major cosmetic overhaul, with loads of new features and a much improved interface.
Kontakt 2 is a cross-platform application, although it only runs under Windows XP and Mac OS X from revision 10.2.6 and up. NI recommend a minimum spec of 512MB of RAM on both platforms, and that Pentium PCs should have processors no slower than 1GHz (Athlon XP-based machines have a suggested minimum speed of 1.4GHz, though). Mac users can apparently get away with 800MHz G4 processors, although my test was carried out on a PC, so I can't comment further!
The program is provided in stand-alone, DXi, VST, RTAS, and Audio Units flavours, and installation proved straightforward. Note that version 2 of Kontakt installs into its own folder, so anyone nervous about upgrading from version 1.xx can relax — your old installation remains unharmed. This is very reassuring if you wish to return to using the earlier version for any reason. For reasons I'll explain later, if you are a Sonar user (like myself...) and would normally install the DXi plug-in version, it is advisable to install the stand-alone, DXi and VST versions. As is now customary with current NI products, you have full functionality of the program for 30 days, after which you must authorise the software using NI's key code system. This can be done on line (via any computer) or by snail-mail.
Version 2 employs a 192KHz, 32-bit sample engine able to replay samples up to 24-bit resolution. The polyphony is theoretically unlimited, depending on your PC's capabilities. It is also 64-part multitimbral, having four 16-part banks, or Multi-pages, each of which is addressable on its own physical MIDI port when run as the stand-alone version. When run as a plug-in within a host sequencer, you will need software capable of supporting virtual MIDI ports to access all 64 channels. Even when Kontakt is addressed through only one physical or virtual port, all 64 parts can still be used to layer sounds — although only 16 MIDI channels are available between them.
As before, the Kontakt screen is divided into two main windows — the Browser and the Instrument Rack, and the Browser still provides the means to navigate your computer's drive directories. However, there are now five tabs at the top bringing new functions into play. Firstly, an improved Database system offers extensive search and file-management facilities, a crucial necessity for anyone with a burgeoning library of sounds (for more on Kontakt's file architecture and hierachy, see the box below). The Database can be configured to show exactly the file types that you wish to see — simply choose the desired hierarchical levels (ie. Multis, Banks, Instruments, Samples) and select 'Build Database'. Cataloguing a large library can take quite a while the first time you do it, but by selecting 'Rebuild' you can subsequently add new library content to the Database very quickly. Custom 'views' can be created — for example, you could 'tag' all the guitar instruments in your library, and create a category called 'All Guitars'. When that view is selected, only those Instruments appear in the Browser. A Search function makes finding specific instruments a breeze — simply type 'bass' into the search box, and all Instruments with 'bass' in their titles will be displayed. If a sound's author is included as part of its embedded description, that too can be used as a search term.
The Browser's Modules tab displays Kontakt's processing tools in three selectable categories: Effects, Filters and Modulators, as you can see on the left. When an Instrument is in Edit mode, these processing modules can be dragged from the Browser pane and dropped onto the desired destination. If you attempt to drop a module onto an 'illegal' destination, Kontakt doesn't let it happen — for example, you cannot drag a modulator (say an LFO or envelope) into an Effects slot. This is a vast improvement on the previous version's drop-down menu routing system, and speeds the workflow considerably.
The Engine tab contains information on memory status, CPU and DFD usage (NI's direct-from-disk sample-streaming mode), as well as two buttons — one to restart the Kontakt engine if it stops for any reason, and one to put Kontakt into Offline Bounce mode, which some DAWs need to do in order to get a clean, glitch-free result when bouncing down or 'freezing' Kontakt's performance in non-real time to an audio track. Finally, the Auto tab displays the current parameter automation assignments.
Kontakt's hierarchical structure begins at the lowest level with the humble single Sample.
Samples are placed onto the keymapper and given key and velocity ranges — the resultant entity is then known in Kontakt nomenclature as a Zone. Any number of Zones can be placed into a Group.
Groups are rather like sub-Instruments, having their own independent parameters such as filters, envelopes, insert and send effects, and output routings. You can define as many Groups as you like to create the final Instrument. So a piano, for example, might have all of its pedal-up Zones in Group 1, its pedal-down Zones in Group 2, and its release Zones in Group 3. By selecting only Group 1 for editing, only the pedal-up samples will be affected.
All the Groups are combined into an Instrument. In traditional synthesizer terms, this could be compared to a Patch. Insert and send effects can be applied to the entire Instrument, or to the individual Groups that make it up.
A collection of Instruments pre-loaded into single Instrument slots that can be altered with program changes — just like a Bank on hardware synths.
Up to 16 Instruments/Instrument Banks can be loaded into one Multi Page (each instance of Kontakt has four Multi Pages) and can be addressed on their own MIDI channels (and MIDI ports, if available).
When an Instrument (ie. a collection of keymapped, ranged samples in Groups) is loaded into the rack, it is displayed in its minimised form — a narrow strip showing a Wrench icon, Instrument name, Mute, Solo, Volume and Pan controls, and level meters. Clicking on the '+' symbol at the far right of the strip expands the view to include MIDI port/channel, output, polyphony and memory info, part-polyphony setting, tuning and a mysterious button named 'Purge' — of which more on page 86. Clicking on the 'Aux' button to the right adds a small strip below containing four Auxiliary Send faders, also explained in detail later. Clicking on the '-' button minimises the Instrument, keeping the rackspace neat and tidy. To edit an Instrument, you click on its Wrench icon, and the Instrument expands to fill the entire rackspace (all other instruments disappear from view) revealing the parameters for the currently 'active' sample Group. Opening the new-style Group Editor (one of five buttons at the top of the edit window) provides a clear overview of all the Groups in an Instrument, and selecting one or more Groups can be done either with the mouse or automatically simply by playing notes on your MIDI keyboard. Groups can be edited globally, individually or in specifically selected combinations. The Mapping Editor now supports two different views — the 'normal' key range/velocity range view, and List view, which is a great help in isolating specific Zones where two or more Zones are layered over the same key range.
The Loop Editor is the place to edit a sample's start, end and loop points; it also functions as a 'beat slice' editor for any samples being played in Beat Machine mode (see the box above). Both the Mapping and Loop Editors can be 'broken away' into their own floating windows (for display on a second monitor, say) when running Kontakt in stand-alone mode — very useful for intensive programming sessions.
As can be seen from the screenshot below, the Edit window is substantially different from previous versions. Most notably there are three groups of Effect rows, each with eight 'slots'. Highest up are the Group Insert slots, where effects can be inserted on an individual Group basis. This includes effects such as Compressor, Saturation, Filters and EQ. The seventh and eighth slots in this row can be configured either as pre- or post-Amplifier.
The middle Effect row is for Instrument insert effects — that is, if a chorus is added here, it will affect the entire Instrument, not just individual groups, and the third Effects row is for Send Effects. Either individual Groups or the entire Instrument can be routed through these effects. To this end, both the Group Insert and Instrument Insert effect rows can have Send modules added to enable you to route the desired amount of signal to these effects. Assigning effects to the slots couldn't be easier — you just drag the required effect from the Browser onto the slot.
Kontakt now offers two further effect routing options — global Auxiliary Sends and global Insert Effects per output port. Certain effects, such as reverb, can be CPU-intensive, so rather than repeatedly insert a reverb into each Instrument that needs it, especially if the reverbs are all the same, wouldn't it be better to have one global reverb that can be addressed by any Instrument in the rack? Now you can, thanks to the new Output Configuration window, which enables you to configure Kontakt's virtual outputs how you want them, including surround-capable ones (yes, Kontakt is fully surround-compatible!) and Aux channels if you wish. Each of the Aux channels has four (in-series) effect insert slots; thus any effects inserted into one of the stereo channels will be applied to all Instruments routed to that output. Any effects inserted into one of the Aux channels can be 'sent to' by any Instrument in a Multi. Remember the four Aux faders that can be displayed beneath each Instrument? This is what they are for.
On the synthesis side of things, Kontakt's filters have undergone a few changes. Gone are the one-pole band-pass and two-pole notch filters; instead, there are new four-pole band-pass and four-pole notch variations. The Pro 53 filter from NI's excellent Pro 53 virtual Prophet 5 also makes an appearance, as does a four-stage ladder filter — bringing the total up to 13 'synth-style' filters. The Vowel A, Vowel B and Phaser effect filters and the one-, two- and three-band EQs have been retained from previous versions.
The Effects have been augmented by the addition of two new features, a convolution reverb and a Surround panner. The reverb (below) offers control over a variety of parameters, such as early reflections, reverb tail lengths and pre-delay time, and impulses can be reversed. An optional eight-stage envelope can be superimposed upon the IR window to further tailor the amplitude shape of the reverb. A 130MB library of impulse responses is provided to get you going, and of course you can drag impulses onto the IR window from your own collection. There are many IRs available for free on the internet — try visiting www.noisevault.com and www.voxengo.com for starters! The process is fairly CPU-hungry, but you can compensate for this by reducing its sample rate and selecting 'Preserve Length'. This way you can trade off CPU usage against sound quality.
Logically enough, the Surround panner is used as an Insert Effect, and it can be applied at the Group or Instrument level. 42 Surround types are catered for, from simple 1.1 mono through quad, 5.1 cinema, 6.0 hexaphonic (shown below), all the way up to 16-channel theatre setups. Depending on the Surround format chosen, an appropriately configured virtual output channel needs to be present — for example, 5.1 cinema needs a six-channel output configuration for the left, right, left surround, right surround, centre and low-frequency channels. Fortunately, the Kontakt 2 manual provides a chart showing the channel assignments for each Surround format. There is a choice of constant power, sinusoid and logarithmic pan curves, which when used in conjunction with the Divergence and Distance controls, can alter the subjective directional impression. Air Absorption and Size combine to simulate high-frequency damping effects according to source distance, whilst the Delay Effect automatically calculates the distance of each sound source for each loudspeaker in real time. The Surround panner's X-shift, Y-shift, Angle and Distance parameters can be automated by external MIDI controllers, host automation and internal modulators, allowing for such niceties such as circling or random-positioning effects. The possibilities here defy detailed description — ultimately it's down to your specific mixing environment and, of course, your own judgement, but the tools are there if you can use them. However, I did find a stability issue here — altering certain parameters whilst inputing MIDI notes caused Kontakt (and Sonar) to crash repeatedly. I hope this will be addressed in a future update.
Any Group within an Instrument can use one of six sample-playback modes, as follows:
This mode loads complete Samples into RAM, and is suitable for Instruments using short samples, when disk streaming is not necessary.
DFD, or Direct From Disk, is a disk-streaming mode used on many other NI products. As its name suggests, it conserves RAM when playing long samples by playing them from hard disk. It's essential when using large commercial libraries.
The Tone Machine imposes an overall musical pitch onto a sample (drum and percussion loops work well) whilst keeping its tempo constant or sync'ed to the host. It's a slightly unearthly effect, rather like the classic 'drums through a vocoder' trick popular in the '80s, but it's great for rhythmical chord parts.
A real-time time-stretch function that allows samples to be played back sync'ed to the host tempo whilst following pitch changes. It also allows the tempo to be changed without changing pitch.
TIME MACHINE II
Similar to the above, this offers greatly improved quality, with parameters specially optimised for rhythmical loops.
The Beat Machine takes a rhythmical loop and slices it up into segments — very similar to 'Acidised' loop-slicing. The loops will then sync to the host DAW's tempo changes. If desired, each segment can then be mapped to discrete keys for individual triggering.
The keymapping process generates a small (exportable) MIDI file which represents the loop as a sequence of notes. When imported into your host sequencer of choice, this sequence plays back the individual loop segments exactly as the original loop sounded. This is strikingly similar to Spectrasonics' Groove Control concept, as seen in the likes of their Stylus instrument, and allows you to change the tempo much further than by time-stretching, as well as affording you the possibility of re-arranging the note orders to produce different patterns from the same sample data. Beat Machine can also work directly on existing REX and Acidised files.
Virtually any parameter with a knob or fader in Kontakt can be automated, either live or from within a MIDI sequence, using MIDI controllers or host sequencer parameter numbers. Selecting the Auto tab in the Browser brings up two lists — one of MIDI controller numbers, or one of host parameter numbers. Assignment is a doddle — for example, to automate a filter's cutoff frequency with the modulation wheel, click on MIDI controller CC1, then drag and drop it onto a filter's cutoff knob in the Instrument edit window. The Browser changes to reflect what has occurred — CC1 now displays 'cutoff', and the small pane at the bottom of the Browser tells you which Instrument has the assignment, as well as which Groups are affected. Each assignment can be given a minimum and maximum operating range (the default is 0 to 100 percent) but you can narrow this down to as specific a range as you need, which is very useful, say, for exercising subtle control of a very narrow filter range. Any MIDI/host controller can be sent to multiple destinations if desired. Even some Effect parameters which cannot be assigned modulators can still be assigned MIDI controllers — thus practically anything in Kontakt can be animated one way or another.
If you've ever had too many redundant samples loaded, or if your mega-orchestra setup has caused you to run out of RAM, even when using disk streaming, you need Kontakt 2's Purge function. Consider this scenario: you've loaded an entire violin section, complete with five different keyswitched articulations, yet you actually need only a handful of notes using one articulation. No problem — once you've finalised the part and recorded it into your sequencer, simply play back the sequence, click the Purge button on that particular Instrument and choose 'Update Sample Pool'. Kontakt 2 then unloads from memory all the samples that were not used, freeing up a considerable amount of RAM. The Purge function can also be performed globally — a 'master' Purge button above the Instrument rack cleans up an entire Multi's redundant samples in a single pass. Purging will of course leave Instruments with gaps on the keyboard where samples are now missing. So what if you subsequently wish to change a part so that it includes some of those missing samples? Kontakt makes this a no-brainer; you simply select Purge again for the Instrument whose part you wish to alter and choose 'Reload Samples'. All the samples for that Instrument will then be reloaded, returning it to normal. Once you've re-recorded your new part, you can of course Purge that Instrument again to clean up the RAM. Interestingly, a similar facility was available on Roland's S700 and S760 hardware samplers, and its appearance in Kontakt 2 is very welcome indeed.
Down At The Library
Kontakt 2 comes supplies with a 15.3GB library on two DVDs — and it's no trivial grab-bag of sundry bits and pieces, but a well-presented affair containing many sumptuous, top-quality instruments (detailed contents and descriptions can be found at www.native-instruments.com/index.php?id=kontakt2samlib_us&ftu=5503f1bb2b). Pride of place must go to the orchestral selections supplied by VSL (the Vienna Symphonic Library). A 30-piece orchestra to go? I'm loving it... Along with this are numerous pianos, electric and acoustic guitars, basses, organs, synths and drums. Many of these have been painstakingly programmed to take full advantage of Kontakt 2's new Kontakt Script Processor feature (for more on the KSP, see the box on the last page of this article). Notable KSP instruments include the 'Akkord Guitar', which is designed to replicate strummed acoustic guitar parts. This instrument employs 3500 samples and a pattern-based user-programmable 'sequencer' to reproduce 43 individually sampled chord types in several playing articulations and in every key! Also of note is the 'Elektric Guitar', which uses some natty KSP programming to vary the neck position and picking styles, creating realistic-sounding guitar parts that would be otherwise unattainable using a traditional sampled guitar patch. PDF documentation is supplied for the library and explains every instrument in detail, including full instructions on how to use the KSP scripts for those instruments that employ them.
The Master Kontrol view, located at the top of the main window, shows the master tempo for all sync'able parameters and effects, and can be switched from internal to external (host) sync. A Tap button allows the internal tempo to be set by clicking with the mouse, and an optional metronome is also provided, together with its own volume control. Master Tune sets the overall tuning offset for the entire Multi. The built-in reference tone is a great help in the absence of a tuner, and can be set to whatever reference pitch you like.
The optional Keyboard view displays not only an Instrument's keyrange (in blue), but also shows which keys are acting as keyswitch triggers (in pink) — a very handy visual reference when an Instrument has several articulations loaded.
Splendidly, Groups can be copied and pasted between different Instruments in a Multi — as well as between different instances of Kontakt 2. When a copied Group is pasted to a new location, you have the choice of pasting with or without samples — the latter choice is extremely useful if you simply want to copy a Group's parameters to another Instrument.
The Instrument Options menu allows for further customising of individual Instruments, including settings such as global transpose, key range, and velocity range. The behaviour of the sustain pedal (continuous controller message 64) is definable per Instrument, unlike older versions where this was a global setting that applied to all instances of Kontakt. This is good news for those wanting to use Kontakt to combine instruments from Garritan Personal Orchestra, say, which use CC64 in different ways. Finally, category-based icons can be assigned to Instruments. They serve no real function other than being cute, but they're fun nevertheless.
More On Instrument Banks
Instrument Banks are visually differentiated from normal Instruments by their grey colouring. Double-clicking on any instrument loaded in the Bank opens it for editing, and individual Instrument Banks can be archived to disk for subsequent re-use. Note that Instrument Banks do not have the four global Aux Send faders found on 'normal' Instruments.
Normally, individual Instruments in a Multi do not respond to MIDI program changes. However, when an Instrument Bank is inserted into the rack, it can be pre-loaded with up to 128 Instruments that do respond to program changes on the MIDI channel assigned to that Instrument Bank. In theory, If you have several Instrument Banks in a Multi, and as long as your computer's RAM is up to it, a staggering number of Instruments could be made available. However, Kontakt appears to only receive program changes in the Stand-alone version — it certainly refused to respond to them while I was running it under Sonar. Additionally, the Kontakt user forum on NI's web site reports that program changes can only be received on MIDI channel 1 (for each MIDI port). Subsequent tests proved this to be true, so it looks like a little further work is due in this area.
What would an SOS review be without negative points? Some bug-related issues inevitably raised their heads during the review period, and one matter in particular has to be mentioned. I call it the DXi Tempo Bug. As this suggests, only the DXi plug-in version (for use under Sonar) suffers from this problem. When playing back a sequence that contains smooth (sloped) tempo changes, the recorded note lengths are corrupted throughout the course of the tempo change. As a rule, notes tend to become excessively lengthened during an accelerando (often hanging indefinitely) or shortened during a rallentando. Apparently the DXi version can't make the calculations to change them to fit the constantly varying tempo. This is why I suggested also installing the VST version, which has no such problems. In fact, why bother with the DXi version at all? NI have been aware of this issue for at least a year and a half, so it's a mystery why they haven't given the matter priority. Incidentally, the DXi version of Kontakt Player provided with Garritan Personal Orchestra (and therefore presumably any other similar package) suffers from the same problem.
The Akkord Guitar KSP script has problems when running with Kontakt as a plug-in with sequencers such as Sonar or Cubase. If, after recording an Akkord part, you interact with the Kontakt or sequencer interface in any way, the KSP grinds to a halt — it appears to ignore all incoming note data. Closing and reopening the Akkord instrument restores functionality, but only until you attempt to tweak something else. This bug was mentioned on the NI user forum, in response to which a thread has been posted which contains a new downloadable script to cure this (see www.nativeinstruments.de/forum_de/showthread.php?t=24317. Well, I say 'new' but in fact, it's an older version. Nevertheless the 'new' script is a big improvement over the one supplied on the library DVD, although it's still not entirely reliable.
After noticing unusually high CPU usage when playing mod-wheel crossfade instruments, further tests revealed a major bug — also a hot topic on the NI user forum! Any modulation-driven events (such as crossfading samples with the mod wheel, or controlling filter cutoff with a fader) create a hefty CPU spike whenever the controller returns to zero. The more notes you're playing at the time, the higher the CPU spike. So, playing a piano patch (which tends to use a lot of notes) and releasing the sustain pedal (thus causing continuous controller message 64 to output a value of zero) can sometimes max out the CPU completely, resulting in the audio being muted until all the keys are released. This has been made known on the user forum, but no response from NI has been forthcoming at the time of writing. This is a serious bug that needs to be afforded immediate priority.
Finally, the sample 'D_D3_UP_3.wav' in the Elektric Guitar patch is corrupted on the original disc — and there may be other similar corruptions elsewhere, but I haven't found any others yet. Hopefully this and the above problems will be fixed and offered as updates on the NI web site at the earliest opportunity.
Kontakt 2 is compatible with a satisfyingly large number of sample and sampler formats, including Apple/Emagic's EXS24, Tascam Gigastudio, Steinberg's Halion, Akai S1000/3000, Akai S5000/6000, Akai MPC, Propellerhead REX I & II, Emu Soundfont2, NI Battery 1 & 2, Emu EOS/E48, Roland S7xx and S5xx series, AIFF, WAV, SND, Acid WAVs and Apple Loops. Files can be imported individually, directly from their native CD-ROMs or DVDs. You simply insert the source sample CD, and refresh the Kontakt Browser's File view. The disc now appears in the list, and expanding the item displays the file architecture appropriate to the parent sampler format. You drag the item (Patch, Program, or whatever) that you wish to load onto the instrument rack, and conversion begins. When complete, the item is ready to play, and can be re-saved in its new Kontakt format if desired. Batch (bulk) conversions are also possible, whereby complete CD-ROMs are automatically converted and saved in Kontakt format.
NI bravely claim that their file conversions are very accurate, so I put this to the test by importing some of my sizeable Roland S-series libraries. The results were variable — simple patches tended to work very well, although the filter settings almost invariably needed some adjustment. However, only the most minimal tweaking was required to achieve perfectly acceptable representations of the original versions. Some of the more complex patches, such as those on commercially produced discs, threw up some unexpected issues (silent Zones, iffy tunings, occasional missing samples) and required rather more intensive troubleshooting to bring them into line. Converting Gigastudio files was generally quite successful, although when problems did occur, it was usually due to incorrect sample groupings or mis-translated keyswitch functions. Nevertheless, the results were on the whole no worse (and occasionally better) than those produced by Chicken Systems' Translator, which I have been using for the past couple of years. It's a terrific bonus to have this facility available within the one software program — full marks to NI!
Version 1 of Kontakt was always an impressive and user-friendly program. By the time it had reached version 1.5, it bristled with flexible and easily accessible features that, frankly, made working with other software samplers seem like boot camp. Now, Kontakt 2 is simply stunning, and current bugs notwithstanding, it is extremely intuitive to operate, especially to anyone already familiar with earlier versions. So much was this the case that the only reason I read the manual from end to end was to make sure I hadn't missed anything!
Inevitably, there are always going to be some 'wish-list' items in any software, however packed with features it may be. For example, I would like to see a 'smoothed' random waveform in the LFO modulator, a multi-tap delay, shelving options in the EQs, some alternative waveform options included within self-modulating effects such as the phaser, chorus and flanger, and the means to route external (or the host sequencer's) audio through the convolution effect. But these requests seem somewhat petty in the light of what Kontakt 2 already provides, both in terms of features and flexibility. The long-standing DXi tempo bug and the 'zero-modulation' CPU spikes really do need to be addressed, but these are the only serious criticisms I can level at an otherwise brilliant and inspirational piece of software. The Universal Import facility alone may well persuade many prospective software-sampler buyers to take a good look at this package. In tandem with its fine sample library, Kontakt 2 is an amazingly versatile, one-stop music-production tool that is bound to become the centre of any studio. For many people, it could quite conceivably be their studio.
KSP — The Kontakt Script Processor
Instrument-specific KSPs include automatic harp glissandi and bisbigliandi, and a script that simulates the una corda, sostenuto and sustain pedals of a grand piano. As mentioned elsewhere in this article, many of the Instruments in the supplied Kontakt sample library utilise their own specifically written KSPs to great effect, such as legato and repetition tools for monophonic instruments, and the Akkord Guitar and Elektric Guitar programs. Full details and instructions for the included KSP library can be found as PDF documentation in the Kontakt installation folder. Many of the supplied scripts are 'open source' and can be edited and re-saved as your own variations. If you're into Boolean operators and Array functions, you'll be delighted to know that scripts can even be written from scratch — a very friendly tutorial is provided as PDF documentation. However, I suspect that many users (myself wholly included) might opt to hide behind the sofa of the KSP library presets...