PDA

View Full Version : Info on developing Kontakt sample libraries?


Harmony
10-20-2009, 07:51 PM
I'm interested in learning the nitty-gritty of developing a Kontakt-based sample library. Everything from non-Kontakt specific ideas like proper recording/processing techniques, to more Kontakt-related stuff like arranging samples into zones/instruments/multis, scripting, and developing a user interface. The manual gets into some of this, but not much and not well, imo. I would love to know, for example, how some of the more detailed user interfaces that come with the Kontakt core library are developed.

Does anyone know of any online tutorials, books or other resources that could give me the scoop without having to get a degree in audio production?

audio fidelity
10-20-2009, 08:44 PM
brandon i'm very interested as well in doing this - my roommates are becoming obsessed with sampling just about everything - so i'd def be interested in taking this to the next level

besides zirc and busta i don't really know who else to turn to who has had experience with doing this in a serious manner

Harmony
10-20-2009, 09:10 PM
I think your roommates and I are catching the same bug. Maybe you could ask them and post any good suggestions they have here.

In addition to Andy and Will, Mattias (http://ocremix.org/remix/OCR01845/) might have a few good suggestions ;)

Meteo Xavier
10-21-2009, 02:35 AM
What kind of sample library are you looking to do?

Harmony
10-21-2009, 06:15 AM
I'd honestly be interested in learning for the sake of learning, but I've also had a few percussion library ideas in mind. Fortunately, I would think that those are the easiest types to work with.

dannthr
10-21-2009, 02:40 PM
Percussion is real easy if you just want some quick percussion.

You just need to plan it out from the start.

How many round robin samples, how many velocity layers, how many hit variations (location of hit, strike type, etc).

Multiply those together, that's how many recordings you need to capture and edit.

Then in the group editor create round robin groups (1, 2, 3, 4, etc) under the Group Start Options when editing all groups, select cycle round robin, then set the round robin position of each of the groups individually.

Then select each group, one at a time, and in the mapping editor select "Selected Group(s) Only" view style, and drag and drop your samples onto the desired key, resizing it for pitch range and velocity range. Do this to each round robin group individually.

There you go, a simple percussion instrument.

Might want to adjust the envelopes to give your percussion instruments a bit of a tail, but that's all up to you.

Harmony
10-21-2009, 03:09 PM
Cool, thanks. I've built small percussive instruments before, but your tips are definitely a good start.

I'm interested in a bit more detail though. For example, if I worked for NI and was producing a Kontakt Conga library (inevitably called Kontakt Konga), what all goes into that process? There is so much power bottled up in Kontakt that most end users will never take advantage of, but I'd imagine that the people trying to make money off of these libraries do (or should) exploit more of the features to make the library more versatile, playable, tweakable, and user-friendly.

And even if I was just thinking about making instruments for personal use, and even if it was just percussive, I can't imagine that just sampling hits with RR could give the potential of all of the expressiveness of a conga. I mean, have you seen some of the greats play!? They make those drums sing. And making a singing sampled performance is what I'm after :)

Dj Mokram
10-21-2009, 05:15 PM
I've been making my own samples for some time, and have build a personal sample-bank over the years. But I've never actually thought of creating a Virtual Instrument.
Meanwhile, I've gotten used to the ease of VSTi, compared to say, the tedious and old-fashioned task of importing each audio sample one by one into a sequencer.
Plus, no matter how good algorithms are, pitch-bend clearly isn't as practical and precise as having each note assigned to a velocity sensitive key.
Very good idea you had here Harmony. I'll research on how to create a kontakt library. This should be a great opportunity to learn something useful. ;)

dannthr
10-22-2009, 06:13 AM
You have to understand what you want to achieve first.

Do you want an instrument where you can pound on a Zen Drum and get a beautiful conga quality?

You have to have the idea before you can make it happen--no one's going to tell you first.

Flying Hand Percussion has a legato script for their drums, so that it sounds like it's one drum head being pounded on.

Some of the tonal qualities based around playing the conga depend on where the player hits the drum head, how hard, and what their hand or fingers do when they reach the head.

How do you represent that on a keyboard? Or a Zen Drum MIDI Controller.

Developing a sample library for consumers is about engaging those kinds of questions, finding solutions, and creating a product that you can stand behind.

For me, I am not a performer, so my sample libraries must give me total control over nuance. I'm highly anal about getting exactly what I want out of the library and am often frustrated by built in performances or stiff patches that have no flexibility.

big giant circles
10-22-2009, 06:35 AM
I'm sure the option can't hurt, and I'm only speaking on behalf of myself here, so don't draw too deeply into this, but I personally don't know anyone who owns a Zen drum. So while I'm sure it's a nifty feature, it seems more practical to just write it like 99% of all the other Kontakt libraries and not worry so much about that particular feature. At least, not initially. You can always add stuff like this on later.

zircon
10-22-2009, 06:40 AM
The most important thing is good source material. Kontakt's ability to load basically unlimited velocities and RRs means you can get extremely realistic sounds simply by recording a ton of samples and just mapping them normally. For percussive libraries, that is honestly the main thing. Careful editing of the WAVs themselves and tweaking of envelopes is also good to do, but most Kontakt features aren't needed for simple drums.

Scripting is best done with Nils Script Editor, a free program that is a scripting reference and editor all in one. I believe it's only compatible with Kontakt 2 and higher, so you won't get K3/K4 scripting features, but K2 is very, VERY powerful by itself. The thing is, there isn't much scripting you need to do unless you find Kontakt's built-in features lacking.

Here is how I approach building a library...

1. Define the goal of the library.
2. Establish the instrument(s) to be recorded, and who is playing them.
3. Study the instruments carefully. Listen to lots of music and watch videos to see what the key playing techniques are. Discuss with performers the most important articulations to include.
4. Review existing libraries of the same type.
5. Establish recording setup. What mics? What room? What studio?!
6. Record tons of material. Always do MORE than you think you will need. It's easy to edit down, but if you didn't get enough RRs to begin with, you'll regret it.
7. Edit and name samples using REAPER, Wavelab and Goldwave.
8. Map into Kontakt.
9. Optimize and polish.

Harmony
10-22-2009, 06:41 AM
You have to understand what you want to achieve first.Certainly. No sample set will do everything well, and if it did, no one would have the money to afford it, or the system specs to run it :)
Flying Hand Percussion has a legato script for their drums, so that it sounds like it's one drum head being pounded on.Are you talking about their "Legato Drumming"? If so, I've often wondered when an instrument based in a proprietary sampler like Kontakt has a proprietary script/algorithm/whatever, is that piece of code hidden from the user? Can the user see and manipulate the scripting for "Legato Drumming" or are there other methods besides scripting to add custom functionality to Kontakt?
For me, I am not a performer, so my sample libraries must give me total control over nuance. I'm highly anal about getting exactly what I want out of the library and am often frustrated by built in performances or stiff patches that have no flexibility.Interesting. Where percussion is concerned, I'd consider myself a performer, but I feel the same way about performance patches or patches that lack versatility. While performing via midi, the more control I have over the subtle nuance that I would get playing the real instrument, the better. Put another way, as a performer, if the articulations are detailed and representative of the real instrument, it doesn't matter to me how playable the instrument is.

EDIT: Thanks for the tips Andy, I'll check out Nils tomorrow.

zircon
10-22-2009, 06:49 AM
Legato is actually a really broad term when it comes to samples. There are many ways to do it, and it's very dependent on the instrument. Kontakt obviously has its own legato built in; just limit the voices to one and add some portamento, like any old synthesizer. That's one way of doing it. Another way is to use a script. There is one that has been floating around for awhile which basically interpolates between two notes of ANY patch, doing a combination of pitch-bending and crossfading to both in order to achieve a legato effect. Will uses this (or some variation) with great results, and I've messed with it too.

Some libraries have specific legato samples. To be honest, I haven't ever recorded or edited such a library myself, but the jist is that you record a lot of slides, bends and tranasitions and use scripting tools to cobble it all together. The end result (ie. Kontakt VSL) sounds amazing, so this way is probably the best of all. For percussion, I find it hard to conceive of how you would record legato playing, so a script or just the built-in Kontakt monophony seems like it would be the best way...

Harmony
10-22-2009, 03:26 PM
...I personally don't know anyone who owns a Zen drum. So while I'm sure it's a nifty feature, it seems more practical to just write it like 99% of all the other Kontakt libraries and not worry so much about that particular feature. At least, not initially. You can always add stuff like this on later.According to their website, sSounds like the people at Flying Hand Percussion took the easy road out and handled that by providing Zen Drum specific mappings on top of their standard sample set. I suppose that's not to say that the library isn't already optimized for live performance though.

7. Edit and name samples using REAPER, Wavelab and Goldwave.
9. Optimize and polish.With so many samples, I've heard of people writing scripts to handle naming and common tedious edits. Do you do anything like that? Why the 3 different wave editors; what gets done in which?

Legato is actually a really broad term when it comes to samples. According to the description of "Legato Drumming":
Legato Drumming™ for superior realism and dynamic replication of a live performance.
I'm thinking it's not 'legato' in the standard sense, but more of a marketing phrase to mean some type of algorithm that's supposed to make the performance sound more fluid than you would normally get with triggering a sequence of one-shot samples.

zircon
10-22-2009, 04:13 PM
Here's my typical workflow; I know Will works a little differently. Usually, you start with a massive WAV file that contains tons of oneshot samples. The first thing I do is load that up into REAPER and begin slicing out the individual samples. This pass is usually a little messy, and I don't bother with fades here. The goal is simply to separate all of the oneshots with digital silence, and have them edited reasonably well. At this stage I also organize the hits into a sensible sequence and cut out any bad ones. I then save this new WAV file as something else.

The new WAV file is loaded into Wavelab, which can auto-split a file based on various parameters, including silence between notes. Since I just created digital silence (pure -140db or whatever) this auto-splitting typically works well. Wavelab also allows you to set up a list of file names in plain text, which it will assign to the resulting auto-split WAV files. This part is really quite easy; lots of ctrl+v.

GB_Snare_v1_rr1
GB_Snare_v1_rr2
GB_Snare_v1_rr3
GB_Snare_v1_rr4
GB_Snare_v1_rr5

Typing all that just now took me less than two seconds. I just make one template line, copy it a lot, and then quickly go down the list with arrow keys and change digits when necessary.

Anyway, after I have all the auto-split WAV files, I use Goldwave to batch-normalize and convert (if I need to make them mono, or something) though Wavelab could also do that. Wavelab is then the editing tool of choice for individual sample tweaking.

Harmony
10-22-2009, 10:02 PM
Very helpful, man. Thanks. I'm fairly certain that there are free utilities out there to accomplish similar tasks, with not too much additional hassle. The batch renaming especially seems like an easy tool to program, but maybe not in high enough demand that a free one has been made available.

zircon
10-22-2009, 11:34 PM
Well, the issue isn't batch renaming. It's batch splitting and naming simultaneously.

dannthr
10-23-2009, 07:57 PM
Yeah, Brandon, you can lock the scripting code out from the user--there's a password protect feature on the scripting if you like.

Some scripts are very powerful, so it's important to protect your implementation to prevent others from duplicating your work--if you want.

Harmony
10-29-2009, 06:23 PM
Simple example of sampling a hardware synth and turning it into a Kontakt instrument. Nothing amazing, but still relevant to the discussion.

http://www.youtube.com/watch?v=6XgSw0NLqjc