Photos: Mark Ewing
Native Instruments' Kore is an integrated software and hardware system that acts as a universal 'front end' to other VST/Audio Units instruments and effects installed on your computer. Plug-ins are hosted within the Kore software 'shell', which appears as a plug-in in your sequencer, or runs as a stand-alone host. Kore plug-in instances, or the stand-alone host, are controlled with the hardware unit. In addition to providing a standardised hardware control system, and a means to construct patches from multiple plug-ins, Kore has a powerful patch and preset cataloguing system, creating a centralised database of all the sounds and effects at your disposal. This rather dry description may not blow your skirt up, but believe me it's this last feature that could have a profound impact on your desktop music production, and bring your computer much closer to feeling like a musical instrument.
Kore's announcement was greeted with a cautious reaction in some quarters, and an excited one in others, probably because of the lack of agreement on what it was actually going to do. Let's start by taking a quick look at what it doesn't do. Kore is not a sequencing or recording package; it is more like an instrument that draws its sound sources and effects from other plug-ins. It does not provide any DSP hardware: your plug-ins still run using the host computer's processing power. The controller is not a generic MIDI control surface, and is purely meant to control the Kore software and plug-ins hosted in it. There is, however, a MIDI interface built into the controller allowing MIDI controllers and keyboards to be connected to the computer via the same USB cable. A two-in, four-out, 24-bit/96kHz audio interface is also built in.
Like many innovative new products (the iPod is a good example) Kore addresses needs that you may not have been fully aware you had. However, anyone who predominantly uses a computer to make music will have come across the same frustration: you have a number of soft synths, samplers, drum machines, effects and sequencer/recording packages, and it can be a pain trying to integrate these into some kind of workflow. It's no wonder that keyboard workstations are still popular, because they allow you to compose in one place, with all your sounds together and controlled with the same knobs, laid out in the same way. Workstation sound sources are blended, have appropriate effects, and are available as presets. Native Instruments probably felt particularly close to the problems of computer-based composition and performance, as their flagship Komplete 3 package installs no fewer than 13 separate instruments and effects. Not only does this mean 13 different user interfaces, but also 13 different places to look for the sound you want. If you want a warm pad, you could use Reaktor 5, FM7, Pro 53, Kontakt 2, Kompakt and more. In terms of hardware control, you would need to spend endless hours setting up templates to control all these instruments and effects from a traditional MIDI device. Kore confronts all these challenges in an attempt to combine the advantages of computers with those of hardware synths and effects.
As well as being close to the problem, Native also had the solution right under their nose with Guitar Rig. If you haven't seen it, Guitar Rig is a computer-based effects unit that uses a software host controlled by a hardware foot controller. The host software lets you build patches from a suite of effects modules in a virtual rack, then assign the hardware controls to any parameters on the modules. This patch is then used stand-alone, or inserted as a plug-in into any recording/sequencing package's mixer. Kore works in exactly the same way, except that instead of building patches from a selection of internal modules, Kore patches (called Kore Sounds) are constructed from other VST or AU plug-ins. NI realised they could integrate their entire Komplete 3 package into a single environment, and third-party plug-ins could come too. What's more, this environment (the Kore plug-in) can be used in any software that supports VST, Audio Units, RTAS, or DXi plug-ins, creating a totally portable patch format. And yes, that does mean you can run VST and AU plug-ins in Pro Tools, VSTs in Logic, and so on. The final — and perhaps ultimately most significant — step was to add a patch library system that classifies sounds based on their sonic attributes instead of which plug-in made them.
Kore On Stage
Kore has several features specifically aimed at live use: the Song List, Performance Presets, and the Live View. The Song List is a folder in your Kore directory that contains links to any Performances that you wish to use live. This list is accessible from the hardware controller, allowing you to load up Performances without resorting to the mouse/trackpad. However, with a little clever use of the Preset functionality, you can reduce or possibly even remove the need to load new Performances. Presets are snapshots of the configuration of a Performance (see screen below). They store the state of all panel controls including channel on/off switches, levels, mutes, sends, pans and effect controls, but not the fundamental architecture such as routing, or which channels are present. A great feature of Presets is that you can set up fades so that the Presets morph into each other. You can also specify automatically sequenced Preset changes, which you can use to prepare small, automated pattern changes, or even sequence whole tracks or sets. In the current release you can only set times in minutes and seconds, although you will soon be able to use bars and beats. Presets can be recalled from the controller, which you can arrange so that the Control button toggles between Presets and controller views. You can also change Presets using program changes, which works perfectly, although you have to remember to filter these messages so they don't get passed on to the plug-ins that Kore is hosting —— otherwise they all change their patches too! What makes Presets so useful is the ability to switch channels off instead of just muting them. This frees up the CPU power they were using, so you could build a large Preset with everything you need for a show, and use Presets to activate just the channels you need at any time. This means never having to stop and load new Performances. Finally, Live View (top) switches Kore to a simplified full-screen display, which only shows the most important things you would need when playing live.
My Kore came bundled with the Komplete 3 package, which required installing first. This is because the Kore installer updates several of the plug-ins and libraries included with Komplete in order for them to work properly with Kore and the Kore Sound library. It's probably fair to say that to get close to seeing the full potential of Kore you need Komplete, or at least several NI plug-ins. As you'll see, much of the power of the system comes from the Kore Sound library, and the more NI plug-ins you have, the more pre-programmed sounds you can access out of the box.
The controller connects to the computer via a USB2 cable, which handles bi-directional communication of control and display data, and connects the integral MIDI and audio interfaces. The unit also takes its power from the USB port. In order to launch the Kore application (or insert a Kore plug-in) the controller must be connected. Although the software side of Kore would still be useful without the hardware, NI stress that the integration between the components is key. This is also, of course, an effective way of copy-protecting the software, and who can blame them for that? Firing up the stand-alone Kore application wakes the surprisingly small controller (it's 30cm wide) revealing its bright red display and button lights. You are presented with an empty rack-style or mixer-style display (depending on the selected view option), with a master parameters area above, and the sound browser below. The application has the standard NI Audio and MIDI Settings page for choosing a soundcard and MIDI connections. Although the controller has built-in audio and MIDI interfaces, you don't have to use these. I opted to use Kore's MIDI input for my keyboard, and use my Digidesign M Box for sound output, which all worked without a hitch. The stand-alone Kore application does not currently support Rewire, although I think this is on the cards. This would provide useful flexibility of operation, as Kore works differently in stand-alone and plug-in modes.
There are several ways to open up sounds and instruments in Kore, but I started with the main Kore Sound browser. NI describe one of the main concepts of Kore as 'thinking in sounds' and this patch browser is what they are talking about. As you can see in the screenshot on the previous page, the Sounds browser presents five columns with families of words to describe sounds, which, in Kore-speak, are called Attributes. Above this are options for choosing between Instruments and Effects patches (with different lists of attributes for each) and a text search. In the picture I'm searching for an Instrument patch. The first column lets you choose the kind of instrument you are looking for — piano, synth, and so on — while the second, Source, describes the method used to generate the sound. These attributes are clumped into mutually exclusive pairings or groups, such as Synthetic or Sample-based, Analogue or Digital. Further down this column are attributes that describe other properties of the patch, such as whether it is a Solo or Ensemble/Kit instrument, Layered, Looped, and so on. In all but the first column you can select more than one attribute, so you could choose a Synth that is Digital and Layered for example.
The third column lets you choose the character of the sound, and is populated with words like Warm, Dissonant, Bright, and so on. Column four is Articulation, and describes the way the sound is played (for example, Chord or Arpeggiated), the way the sound evolves (Slow Attack, Pulsating) and more traditional patch categorisations (Pad, Lead). Finally, the fifth and most subjective column is Genre, with listings such as Film Music, Techno/Electro, Rock and Pop. Categorising sounds by a musical genre is of course problematic, although useful at times, but you don't have to choose attributes in every column to use the browser. Each time you add or remove attributes to your search, the list of Kore Sounds to the right updates to list the patches that have been tagged with all your selected items. Some useful preferences alter the way the browser displays this information, such as allowing you to see the number of patches in each category, and to hide attributes that don't appear in combination with those you've already selected. You can also reorder the patch list alphabetically by any of the columns (Vendor, name, and so on) and add or remove columns by right-clicking.
In the example I've opted for the Kore Sound called Velvet Pads, which, as is indicated in the Plug-ins column, is made with FM7, Kontakt 2 and Reaktor 5. I've deliberately chosen a complex patch as it shows up several features of Kore. The majority of patches in the library are made with single instruments (for more about this, and other aspects of the Kore Sound library, see the 'Inside The Library' box). Double-clicking the patch opens it up into the first spare slot in the rack, and makes it immediately available for playing via MIDI, and controlling with the hardware.
The screen above, top, shows the Kore Sound loaded into the rack, with the Browser closed to save some space. To the left of the rack are three buttons that alter the display of channels. Instead of this sideways view, you can display channels vertically like mixer channels (as in the screen above, for example) or a combination of the two. The channel represents the entire Velvet Pads Kore Sound, and appears as a generic device that gives no clue to what plug-ins are generating this sound. The channel has an on/off switch, input/output assignments and gain controls, a MIDI File player section, four insert slots, and a central area showing assigned knobs and buttons. The master section can be switched to reveal four send controls, which are always visible in channel strip view (while the controller assignments are not). Right-clicking an insert slot lets you add or replace Kore effects.
Double-clicking another Kore Sound in the Sounds browser will open up a new channel in the rack. The parameters currently being controlled by the hardware appear in the main section at the top of the window (more on this soon). By default, the keyboard will play both channels, but by opening the Mapping window, you can split keyboard ranges, map velocity ranges, and assign different MIDI channels to each Sound, which is obviously particularly useful for live work. As well as adding insert effects to any channel, you can create Group (submix) channels and buss several Sound channels to them. You can also add Send (effects return) channels and share reverbs, delays, and so on. Each Sound Channel, Group, Send and Effect has its own hardware controller assignments, often spread across two or more pages each. The device and page which the controller is addressing can be selected either from the controller itself, or on screen. Importantly, you can create extra User Pages, and assign parameters from different devices and channels to the same page, allowing you to control several channels with the controller at once without changing pages. This entire configuration of Sound channels, sends, groups, inserts and controller assignments is called a Performance. And it's only half the story.
Double-clicking the Kore icon in the middle of the Velvet Pads channel brings up the display below. You are now looking at how the Velvet Pad Kore Sound is constructed (note that the main display strip indicates you are now viewing a Sound instead of a Performance). The Sound has its own internal rack, which can accommodate individual instrument plug-ins. In this example there is one FM7 and one Kompakt 2. The third channel is a Group channel, where both plug-ins are being mixed in order to go through a filter plug-in. Notice that the instruments also have their own FX insert slots too. A Kore Sound has its own routing, effects, sends and key/velocity maps, all of which collapse to a single device when viewed from the Performance layer. Channels at the Sound level can use any VST or AU plug-in in the FX inserts, as well as the built-in Kore effects. There are also different controller assignment pages at the Sound level, although some special pages called Easy Access (EA) pages appear in the Performance too. This dual-layer, 'nested' nature of Kore's environment makes very flexible configurations possible and easier to manage. It also contributes to Kore's fairly steep learning curve, and causes some confusion early on! You can move between the Performance and Sound layer from the hardware controller, although it takes some practice to be confident about where you are, and you will want to simplify things with User pages when playing live. An important footnote to this section is that when you use Kore as a plug-in in a sequencer, the Performance layer does not exist. In a host you are always looking at the Sound layer, so when you open a Kore Sound you see all its separate components. This is because you would tend to use the host's mixer environment to open multiple Kore Sounds instead of Kore's Performance mixer.
NI Service Centre
The Kore installer includes the new NI Service Centre application, which comes as standard with all NI software from May 2006. This small application will be a welcome addition for all NI users, as it greatly simplifies the registration and activation of software. This was previously a fairly complicated and time-consuming procedure carried out at the NI web site. Now, Service Centre stores all your details, and connects to NI's server in the background. The utility scans for all installed products, and lets you activate or deactivate them in bulk. Updates are also taken care of by Service Centre, another major bonus as keeping a computer full of NI software up to date has always taken quite a bit of time and effort.
Kore's hardware controller is a sturdy wedge of metal that, if dropped, would probably come off considerably better than whatever it landed on. A strip of glossy black plastic across the middle houses eight rotary encoders, the display, cursor buttons, a data wheel, and several mode buttons. The cursor and mode buttons are large and inset into the surface, and their size means that they rock about a bit and occasionally fail to engage unless you press them in the middle. The demo unit had small, rubber, glued-on feet which all fell off during the review, but I'm assured that the more up-to-date production runs have larger, securely affixed feet. The rest is all good news. The all-important knobs feel great, moving with a smooth, light action. The touch-sensitivity is immediately apparent, as red lights ringing the bottom of each knob light up while you touch the knob. Whenever you are touching a knob, the display becomes dedicated to that parameter, showing the parameter's full name (all parameters can be given long and short names for different display purposes). Values are displayed in real units (ms, dB) when provided by the plug-in, or otherwise as a percentage, a value between 100 and +100, or between 0 and 1. A large horizontal display like a progress bar shows the position of the knob within its range. Cleverly, if you are using more than one knob at a time, the display changes to show an overview of all knobs and their current positions within their ranges. I'd have liked the option to show this display even when you are only using one knob, because when you are holding one knob you can no longer see what the other assignments are until you let go, or touch another knob.
The knobs are endless encoders as opposed to normal pots, so they don't have end stops. Parameters don't 'jump' to the position of the knob when moved, they pick up smoothly from the current value. What's more, there is an ingenious option in the Assignment Properties screen (see screenshot on next page) that lets you set the sensitivity. For example, mapping the parameter across 360 degrees sets the assignment so that one turn of the knob moves the parameter through its entire range. This relationship can be set between 30 and 3600 degrees, so a parameter can be set so that it takes 10 turns of the knob to move through the whole range, providing ridiculously fine tuning. The knobs are high-resolution (ie. not MIDI!), with 500 steps per revolution, which, combined with the sensitivity option, means it's not unusual to see the display showing values with six decimal places. Finally, using an approach that's similar to the assignment system in Reason's Combinator, you can specify the maximum and minimum values that an assigned knob will act between, and you can create reversed polarity assignments. You can also set multiple assignments for the same knob. Put all these ideas together and you could, for example, have a knob dramatically increasing cutoff frequency, while subtly reducing gain to compensate. Assigning a control and range is easy: click the assignment and range buttons, select a knob, then turn the target parameter through the desired range. In short, the knobs, and assignment flexibility, are better than anything I've seen before.
Two main display modes are toggled between with the View button. One shows only the knob assignments with a miniature value display. The other shows all knob and button assignments, without the values. The buttons all have integral lights, which are unlit on unassigned buttons. Assigned buttons are lit brightly when the parameter they control is in the nominal On position, and are dim when Off. This is the kind of invaluable benefit of having bi-directional control between hardware and software, because when you switch pages you can instantly see the state of the parameters. Button assignments can be set to toggle a value at each press, or only act while they are held down. They can also be inverted. In another parallel with Reason's Combinator, buttons can be assigned to change a continuous parameter (knob, fader, and so on) between two values, but they can't be set to step through multiple values. As well as the main eight controller buttons, the Kore controller has transport buttons that are used to start and stop the internal clock in the Kore software. These can't be used for your sequencer.
It's obviously great to have hands-on control, but all too often, hardware control systems end up being more frustrating than they're worth because it's too difficult to follow what is mapped to what, and you get lost when trying to move between different groups of target parameters. Often controllers that look great on paper are relegated to writing the odd automation pass, or for use with a single page of assignments in a live setup. Kore has some distinct advantages up its sleeve, however. The first is that it hosts all your plug-ins in a standardised environment that has the same layout on screen as the knobs and buttons on the controller. NI have also tried to make their factory assignments conform to a standard model. Every Kore Sound starts with two Easy Access pages at the Performance level with volume, cutoff, resonance, tuning, and so on, in the same locations. Each channel has the same Mixer page with levels and sends, followed by pages for any effects. At the individual component (Sound) level, each plug-in starts with a mixer page, then two Easy Access pages, then pages specific to that plug-in. Finally, having a display with all the assignments in front of you, while not unique, is only usually seen on devices costing three times as much or more.
However, even with Kore you can't get away from the fact that you have to learn how to change pages to address more than eight knob and button assignments. Clearly, a lot of thought has gone into trying to make this as painless as possible, and NI have done quite well here. The truth is, though, that you'll need to put in a fair bit of practice to get fluent with moving around. Crucially, you need to understand thoroughly how Kore works, and be familiar with the patches you are working with. I went through a painful learning curve with this (the manual is not brilliant, but makes sense if you try first, fail, then look at the manual). However, you do soon reach a breakthrough point. The frustration is put into perspective when you remember what it's like learning to get around in a new sequencer package, or learning the complexities of a powerful synth workstation. It does require some patience, and some determination to get away from the comfort zone of the mouse.
Here's how the navigation system works: when you're running Kore stand-alone, you start off in Performance mode. The left and right arrow buttons move the controller between the channels in your performance, plus a User page section at the leftmost 'position'. The up and down arrows (or data wheel) move you between the pages for the current channel (or the User pages). Pressing the Sound button switches you to the Sound layer, with access to the separate devices that make up each Performance channel. The same principle now applies, with the left and right buttons moving between the user page area, and the channels in the Sound. Up and down, or the data wheel, again step between the various pages in each channel.
Inside The Library
The Kore Sound library, as installed, consists exclusively of patches made with Native Instruments instrument and effects plug-in, and Kore's built-in effects. When you first run Kore, it scans your system for all installed VST and AU plug-ins, which takes a few minutes. The Sounds browser then only displays patches that are made from plug-ins that you actually have on the system. Third-party plug-ins are also detected and listed in the Plug-ins browser, and can be used freely in Kore, but with no NI-created patches. This is partly due to licensing issues, and partly because it would obviously be impractical for NI to create Kore Sounds for every possible combination of plug-ins on a user's system. This is not to say that third-party plug-ins won't be supported by the controller, though: they are, and you can load and edit the plug-ins' own presets. Also, the installed library is only a starting point. You can save your own patches as Kore Sounds, and add Attribute tags so that they will be found at a later time. No doubt users, and maybe some manufacturers, will publish Kore Sound versions of the preset libraries of most popular plug-ins. You will probably also see many layered and processed combo patches and Performances appearing for download on the Web.
If you have Komplete 3 installed, the Kore library contains over 9000 Kore Sounds, of which about 7000 are instruments and 2000 are effects. These basically fall into two categories: basic, single-device patches that open up a factory preset for a Komplete plug-in, and more complex patches that take advantage of Kore's layering, routing and effects. The vast majority of patches are of the first kind, which make all the presets in the Komplete bundle accessible to the Attributes library, and add Easy Access controller assignment pages.
At this point there are only 200 patches (plus 12 Performance examples) that really use the sound-design features of Kore such as layers, splits, insert and send effects, groups and stacked controller assignments. This is a bit disappointing, because there's so much more spectacular stuff that could be done with this huge armoury of plug-ins. However, it's early days, and I'm sure we'll see many more updates with more sounds. Up to the launch, Native Instruments have focused on getting the thousands of basic presets from the Komplete plug-ins running in Kore Sound, and most of these presets use effects within the plug-ins themselves, and sound good on their own. It could have been tempting to stick Kore effects or Reaktor effects on most patches, but this would be hugely wasteful in DSP resources. One thing that is true, though, is that until we see some Kore Sound libraries for third-party plug-ins, you'll be missing one of the best aspects of Kore if you aren't running it with NI plug-ins.
Unless you are lucky enough to be able to devote a separate computer to it, most studio-based work will involve running Kore as a plug-in in one of the main audio and sequencer applications. During testing, I mainly ran Kore in Pro Tools as an RTAS plug-in, and in Live as an Audio Units plug-in. I also tested in Logic Express. One of the beauties of Kore is that it doesn't matter what host you run it in — all the same Kore Sounds work, and you can still load up other VST and Audio Units plug-ins. In Logic and Pro Tools this gives you access to plug-in formats you couldn't normally use. However, Kore can't load RTAS plug-ins due to Digidesign's licensing rules, so you can't host the plug-ins that come with Pro Tools, or Digidesign's RTAS instruments like Xpand! or Hybrid. Similarly, Logic's and Live's bundled plug-ins are unavailable to Kore.
When running in a host, Kore only has one layer (the Sound layer) so the controller works slightly differently. Instead of toggling between the Sound and Performance layers, the controller's Sound button brings up a list of Kore instances in your mixer. Selecting an instance and pressing Enter switches the controller to address that instance. The lack of two layers certainly makes Kore easier to use in a host, but does slightly limit how easy it is to set up complex patches. This is because it's not currently possible to layer two Kore Sounds outside of a Performance (although this may change). If you load one sound from the Sounds browser, then try to load another, it replaces the first one. You can, however load additional instrument plug-ins into blank channels and layer these on top of the Kore Sound. You could also, of course, set up the same layering by using two tracks in the host application's mixer. Although the Kore Sound browser is one of the advantages of Kore, you don't have to use it. You can load plug-ins straight into Kore, and use them with the controller. The controller will map to automatable parameters on most plug-ins, and some third-party instruments have already had Easy Access pages added (like the Korg Legacy package). You can load a plug-in's presets from the Kore channel, or you can open up the plug-in's own interface. One problem, however, is that while the plug-in is open, you are locked out from doing anything else, so can't leave plug-in windows open. Another problem, visible in the screenshot on the previous page, is that any plug-in hosted by Kore appears as 'Kore' in the host application's mixer.
A further consideration when deciding to using Kore instead of just inserting the raw plug-ins is that there is some CPU overhead. Kore doesn't use much CPU power, but it adds up when you use several instances. I did some tests in Live and Pro Tools to see what the difference was. I set up a six-note chord MIDI sequence in Pro Tools, over a four-bar loop. I then inserted a Pro 53 plug-in on several stereo instrument tracks, all playing the same patch, and kept adding tracks until I reached the point where Pro Tools couldn't play back reliably without CPU overload errors. With raw Pro 53s I got to 19 tracks (with a 512-sample buffer, which is about 12ms output latency). With Kore running AU instances of the same Pro 53 patch I could run 14 instances. Pro Tools managed 15 Kore plug-ins when running VST versions of Pro 53.
I then tried running multiple instances of a complex Guitar Rig 2 effect, with a drum loop bussed through each instance. Pro Tools managed 12 RTAS instances on its own, while running within Kores it overloaded at seven. For comparison, I ran the Pro 53 test in Ableton Live, with the same buffer settings and MIDI sequence, and running with the Core Audio driver via the Digidesign M Box. I got to 14 instances before slight popping crept in. Running via Kore, the Pro 53s started crackling at eight instances. The conclusion is that Kore does have a noticable impact on you CPU load, and on larger projects you'll probably want to ration your use of it for tracks where you want to use the controller or the browser. Native have said that there is still room for optimisation of Kore, with future updates promising performance increases.
Kore is a difficult product to sum up succinctly, because it does so many different things and covers a lot of new ground. There's really nothing to compare it to! There are a number of areas where Kore could make a considerable difference. I can see film or TV composers knocking out hours of music simply by loading up a few complex patches based on sonic descriptions. If you're a fan of Native Instruments' heavyweights like Reaktor or Kontakt but can't get to grips with using them, this is the front end you need. If you want to play live, or you're frustrated by the hands-on control of instruments offered by most MIDI controllers, you're unlikely to find a better option. Above all, the simple idea of Kore Sounds, and browsing for sounds instead of instruments, makes you approach music-making differently. It reveals whole areas of your sonic arsenal that you didn't even know were there. For example, Kompakt gets to stand up as a great tool when it's usually overshadowed in the Komplete bundle, and Reaktor becomes a much more versatile instrument. It's this creative angle that really gets you into Kore, and keeps you going through the learning process. Native Instruments have realised that what the world doesn't need is another new soft synth, but a way to make them behave more like musical instruments. Their solution, Kore, is a strong step in the right direction, and could well be a landmark. I hope it will continue to develop as it gets used and abused in various environments. It's certainly renewed my enthusiam for making computer-based music by putting me back more into the role of musician, and less that of a sound engineer or programmer. After spending some time with Kore, I'm developing that familiar feeling that came with iPods and mobile phones. The feeling you get from a product that you didn't really know you needed, but can't imagine how you got on without it.