TUTORIAL: How To Make Lite Versions of KONTAKT Libraries

Discussion in 'Kontakt' started by rollerball, Dec 27, 2021.

  1. Azzarok

    Azzarok Noisemaker

    Joined:
    May 13, 2021
    Messages:
    15
    Likes Received:
    3
    That's really insane man. Congrats !
    I'm not a dev but really often thinks of way to do random things with automatic programs lol. The thought without the skills. And as I was waiting for the tutorial past weeks, I already thought of automating it. Didn't think it would happen this quick, you're really fast bro ! xD
    For the slow part, I don't really understand the technical reason because I'm curious but not very skilled, but as I understood your words, all it needs is "optimization" like games and softwares and all, saying to the program to act "like this" or "this" to use the CPU properly ?
    For the resampler method, again I understand only the surface but I try. I understand that swr and soxr are different methods, that's clear. But I guess that these methods are more or less efficient from one to another in quality as you said.
    If you think that r8brain might be one of the best to use, I don't know if you already searched for this, but I found a Github with an open-source version of r8brain. Don't know what it's worth but hope it could help you.
    I've seen that posting links here can be bad so if you want to check it, just type "r8brain-free-src" on Google and you might find the direct Github.


    Thanks a lot, I'll take notes. I don't get the "Spot" things as I don't understand what is what but I'll test everything. But besides this, I really rely on the fact that the Reverbs mics are usually very good but really can be replaced by a reverb VST.

    Just for the info, I know that the guide talks about this a bit but not deeply, if I don't want to delete some mics, but just down-sample the whole lib, am I gaining more space than removing mics without resampling ? Just to know if it's always gainful to resample the lib even if it's a library where I want to keep all the mics.

    How lucky you are if you manage to hold yourself back. But you seem to be a big Kontakt maniac too, I'm not feeling alone anymore lmao.

    If you want a little tutorial at your turn, lol, feel free to send me a mp. I could explain simply the whole process I'm used too.


    Thanks bro, like for Meric's tips, I'll take notes. And thanks for the details, helps me a lot to understand. For the Mix I don't get it for now because I didn't have one on the lib I tested, but I'll see this later, and follow your tips. It was for information only, obviously I'll always test the lib before deleting anything. The thing is, I love Kontakt libs for their quality, detail and all. I'm afraid to delete a mic or modify the bitrate and regret it later. You know, imagine DLing a Spitfire-style lib with like 60+Go because it's the gold tier of orchestral libs, and degrading it... x)
    Again, I'm easily paranoid, so I'll test all the libs before.[/QUOTE]

    Really awesome, I'll come to PM land soon. Good job bro !

    Definitely want to try it. Of course it's an alpha ver. I understand that minimize the libs as a serious task isn't the thing to do for now. But we need to do it few times to help you improving the tool, and I will participate.

    Some questions about the tool:
    I've seen that you have one line for choosing the mic, even one for whitelist, very good idea. But how did you manage to do it ?
    As all libs are different and their mics aren't always labelled the same way etc. That's a huge trick.

    And then, did you make the tool to avoid unpacking at the first step when the lib's not packed in NKS ?
    For example, the lib I used for testing is 8Dio Symphonic Shadows, and in the Sample folder, instead of compressed NKS files to uncompress with TC, you'll find the samples already in NCW. Not a big deal you might say, that's just the first step of the tutorial which has to be avoided, and maybe the quicker step.
    But just in case you didn't prevent it, I don't know if it can break your script if the first step already blocks.

    Happy new year bros, wish you a happy and healthy 2022 mates !
     
  2. rollerball

    rollerball Platinum Record

    Joined:
    May 27, 2020
    Messages:
    288
    Likes Received:
    229
    No problem. It seems inNKX just defines how the NKX formats are structured, and all the other functions like packing, unpacking, etc. are handled by TC itself. Props to the original developer of inNKX though.
     
  3. rollerball

    rollerball Platinum Record

    Joined:
    May 27, 2020
    Messages:
    288
    Likes Received:
    229
    Definitely! Converting from 24-bit to 16-bit results in around 40-50% size reduction.

    His script doesn't handle packing and unpacking of NKX containers yet. Those functions have to be performed using Total Commander and inNKX.
     
  4. demberto

    demberto Rock Star

    Joined:
    Nov 27, 2018
    Messages:
    931
    Likes Received:
    325
    Nope, that's what packer plugin is for. inNKX probably fails somewhere when it tries to get a handle to the active Total commander window (I suspect from what disassembly I saw) or tries to access a callback I didn't set. Most probably its the latter since total commander receives progress data from the plugin (inNKX) to show us when we extract. Can you tell me what JDX and HU are? They were in one of the dialogs when I was translating innkx
     
  5. rollerball

    rollerball Platinum Record

    Joined:
    May 27, 2020
    Messages:
    288
    Likes Received:
    229
    I'm not exactly sure, but they seem to be some codes that appear in KONTAKT Player-compatible libraries. I've seen them in all official NICNT files. Also, if you install a library using the official installer, these entries are added to the Registry. Beyond that I have no idea what actual function these codes perform.
     
  6. Azzarok

    Azzarok Noisemaker

    Joined:
    May 13, 2021
    Messages:
    15
    Likes Received:
    3
    Thanks a lot for the info, and sorry for the NKX unpacking feature question, I thought I saw all the features on the Meric's post.
    I might have not seen this detail.
     
  7. jishnu

    jishnu Kapellmeister

    Joined:
    Aug 7, 2020
    Messages:
    116
    Likes Received:
    45
    Hi dont want to ruin this thread but if anyone is able to minify cinematic studio woodwinds like rollerball, please do share. I would like to try this tutorial on that but i dont even remotely have that kind of storage left on my hard drive (about a 100 gbs). Thanks :bow:
     
  8. DonaldTwain

    DonaldTwain Kapellmeister

    Joined:
    Mar 4, 2020
    Messages:
    126
    Likes Received:
    65
    I have done already and submitted it to the sister site but it hasn't been approved yet.
     
  9. jishnu

    jishnu Kapellmeister

    Joined:
    Aug 7, 2020
    Messages:
    116
    Likes Received:
    45
    thank you so much man, appreciate it :thanks:
     
  10. demberto

    demberto Rock Star

    Joined:
    Nov 27, 2018
    Messages:
    931
    Likes Received:
    325
    Hey @Meric I finally got inNKX to unpack :winker:. Will send it to you once I finish refactoring it. As I suspected, inNKX crashed when it doesn't have a callback. I tried to pack back the unextracted files, but it didn't work, again I think because it needs to contact with TC to show some GUI. It will be really easy for you to integrate since it is all Python.

    Also inNKX creates a cache of unpacked/opened archives somewhere, because opening the same archive again is blazing fast. I searched in a lot of places but couldn't find. @rollerball @Xupito do u know where it goes?
     
  11. Meric

    Meric Member

    Joined:
    Oct 14, 2020
    Messages:
    25
    Likes Received:
    10
    That's great! I'm not too familiar with how total commander caches stuff unfortunately
     
  12. toshfox

    toshfox Noisemaker

    Joined:
    Sep 15, 2012
    Messages:
    131
    Likes Received:
    6
    Hello @rollerball
    thank you for your guide.
    I thought of doing that in the past indeed,
    removing the mic positions after noticing that at final I always used close position;
    but I wanted to keep 24 bits because I have read that it allowed more sound treatment without damaging it but at final, I only used some Eq plugin and reverb so I guess the 16 bits can handle these plugins without any damage.
    But as newbie, I kept all and said " we never know ...."
    After reading your guide and some comments, I am convinced to do it

    But I have few questions.
    in your guide you say :
    "The only way to extract the samples from these containers is to use a plugin called inNKX for the program called Total Commander."

    Maybe you forgot, but Kontakt can do it also by resaving the instrument and checking the box "compress samples"

    upload_2022-1-5_12-50-16.png

    If we don't check "compress samples", it will extract the wav instead of ncw

    the good thing using kontakt is that extracts only the ncw from the nkc that the instrument nki needs.

    Is it important to repack the samples ncw as nkc ? for optmization?!

    I will use foobar2000 to convert 24 --> 16 bits, I hope it's good tool

    thanks
     
    Last edited: Jan 5, 2022

    Attached Files:

  13. Stanny5

    Stanny5 Noisemaker

    Joined:
    Sep 14, 2021
    Messages:
    8
    Likes Received:
    3
    Very kind,many thanks
     
  14. rollerball

    rollerball Platinum Record

    Joined:
    May 27, 2020
    Messages:
    288
    Likes Received:
    229
    Good catch! Maybe I should have worded it better. I meant to say "The only way to extract the samples from these containers apart from using KONTAKT is to use a plugin called inNKX for the program called Total Commander."
    Yes, KONTAKT can extract samples from NKIs, but as you said, it only extracts from the required NKI, meaning you have to repeat the process for the whole library which increases the number of steps unnecessarily. Also, IIRC KONTAKT is much slower at extracting samples than Total Commander.
    The most important point for me though is that when you extract samples using KONTAKT, it dumps all of the samples in a single folder. This is annoying because most developers place samples in a logical directory structure, and that means you have to arrange the samples again before packing. Also, too many files in the same directory slows down the file operations in that directory.


    Very important! Firstly, having the samples unpacked increases the time taken for file operations such as copying the library, since the OS has to copy many small files instead of one big file. And secondly, it drastically speeds up the loading of NKIs, probably because the it has to search for samples in the whole directory as opposed to loading them from a single container.
     
  15. toshfox

    toshfox Noisemaker

    Joined:
    Sep 15, 2012
    Messages:
    131
    Likes Received:
    6

    Ok it makes sense !! thanks :) I will be working on 8dio Insolidus for the try
     
  16. toshfox

    toshfox Noisemaker

    Joined:
    Sep 15, 2012
    Messages:
    131
    Likes Received:
    6
    Just for people who don't know in STEP 4 "Open a Command Prompt or PowerShell window in the main directory"
    - Go to your folder (in which you have conNCW)
    - type cmd (or powershell) in the address bar
    it will open the command prompt with already the directory u want to execute the command. ( here, conNCW)
     
  17. rollerball

    rollerball Platinum Record

    Joined:
    May 27, 2020
    Messages:
    288
    Likes Received:
    229
    Thanks a lot! That's a great tip and I didn't know about it. I generally used "SHIFT" + "Right click" but this seems faster.
    This thread has been useful and people have contributed quite a few good tips. I'll definitely be including them in an update to the guide. :bow:
     
  18. Meric

    Meric Member

    Joined:
    Oct 14, 2020
    Messages:
    25
    Likes Received:
    10
    Batch collecting samples is not the best tool for this IMO. For one you can only collect every sample at once, meaning you will end up needing like 2x the space of the library available to accommodate the wav files. If you're low on space already this is probably annoying. Using conNCW lets you extract and modify one file at a time.

    Also Batch collecting on very large libraries will often hang and sometimes crash. I've tried batch collecting a 60GB library and let's just say Kontakt did not enjoy doing that. It might work for others though, I for one just never had luck in getting it to work
     
  19. toshfox

    toshfox Noisemaker

    Joined:
    Sep 15, 2012
    Messages:
    131
    Likes Received:
    6
    @Meric Yes thank u, I have been realizing it while trying and organizing. ^^
    @rollerball yw !

    So far I have converted to 16 bits :
    Insolidus choir : 37.1 GB --> 19.1 GB
    Alien Drum : 3.47 GB --> 1.79 GB
    Aura Guitar : 8.33 GB --> 5 GB

    I have a question about some folders : Impulses and IR samples
    It's often (always?) wav files in it. Can we convert them to ncw ?
     
  20. Xupito

    Xupito Audiosexual

    Joined:
    Jan 21, 2012
    Messages:
    6,956
    Likes Received:
    3,830
    Location:
    Europe
    Yes, you can and even pack them in .nkr containers. You'll have to enable the option "allow other formats" when you resave the instruments in Kontakt

    @demberto I don't know about Total Commander/inNKX caches, but is worth checking
     
Loading...
Loading...