Kontakt Workflow & Scripts for Batch Compression

Discussion in 'Software' started by thickchez, May 4, 2016.

?

Did this help you ?

  1. Yes

  2. No

  3. This makes no sense.

Results are only viewable after voting.
  1. thickchez

    thickchez Kapellmeister

    Joined:
    May 13, 2015
    Messages:
    42
    Likes Received:
    44
    QUICK NOTE I ADDED AFTER I TYPED THIS ALL UP AND GOT TOO LAZY TO GO BACK AND FIND ALL OF THE REFERENCES
    In the attached 7z file, as long as you leave the folder in your downloads folder after unzipping it, the paths for the scripts will be fine. But if you move these files or folder, you need to change those locations in the master script because it won't know where to locate the python scripts.


    Things to Consider:
    1. This Tutorial is designed for Mac OS X using bash and Python 3 scripts.
      In the interim, i will be searching for a way to converting this into a working Windows script. Sorry for the inconvenience.​
    2. I’m writing this assuming the end user has little to no experience with command line/python programming. So please excuse my thoroughness.
    3. This is still a work in progress, it is far from perfect. I am more than open to suggestions or work arounds of sorts.
    4. If you use this the way it is intended, exactly how I have given it to you, this will not harm your computer in any way. But, if you choose to alter the code, besides the lines that I direct you to, without knowing what you’re doing, I cannot be held responsible for any possible damages or data loss.
      The reason is because we are only working on user defined folders and files.​

    Python Notes:
    1. If you have never used or even seen anything pertaining to ‘Python’ please refer to the documentation and/or follow this link
    2. I understand that this is lengthy and requires a bit much but please trust me. It’s worth it to know exactly what we’re going to be doing with your computer.

      The reason I am warning you to be so careful is being OS X and all Apple computers are shipped with a version of Python that is used by the operating system. Misuse or replacement of this version could cause severe issues with your operating system and lead to a re-install of Mac OS X.​

    with all of that being said ..

    Let's Begin !

    Scripts can be downloaded here






      • Kontakt Work Script.sh
        Our main script that we'll be working on the most throughout this walk through. I'll commonly refer to this as the 'Master'.​
      • build directories and flatten.py

        Used for one, but very important, step throughout the process.​
      • midi folder rename.py

        Could have easily been replaced by a bash script, but I feel a lot more comfortable with Python when it comes to such simple processes.​


    Some terms I may use but aren't exactly clear:






      • Directory just means 'folder'
      • 'Terminal' -- this is the application we're running all of this in, which resides in '/Applications/Utilities/Terminal.app'
      • '~' -- you'll find this is file or folder path references, it just refers to /Mac HD/Users/Your_Name. It's just a little easier to type out.
      • If you need to find the path to a certain file or folder, you can just drag it into terminal and it will tell you exactly where that is.
    Working in 'Master'
    Code:
    
        #!/bin/bash
    
        ##For work processes concerning the compression and organization of Kontakt libraries & instruments
    
    
        #change to new kontakt libraries directory
        cd ~/Desktop/ks
    
        #Calls python file that flattens every folder inside of CWD so Kontakt doesn't need to go through multiple directories to find necessary files
        python3 ~/Dropbox/[Programming]/Scripts/build\ directories\ and\ flatten.py
        echo "Directories Flattened."
    
        #Copies the folders from the original directory and places them in the master kontakt synced folder so we have somewhere to move the new compressed formats
        rsync -a ~/Desktop/ks/* /Volumes/Extendo/k_temp/ --include \*/ --exclude \*
        echo "Clone Directories Created."
    
        #find and copy certain files, that are not copied when batched compressed, into their respective directories
        find . -name '*.nkr' | cpio -pdm /Volumes/Extendo/k_temp/
        find . -name '*.nkc' | cpio -pdm /Volumes/Extendo/k_temp/
        find . -name '*.nicnt' | cpio -pdm /Volumes/Extendo/k_temp/
        find . -name '*.mid' | cpio -pdm /Volumes/Extendo/k_temp/
    
    
        echo -e "\nSpecial Files Copied\n"
    
        echo -e "\nProcess Complete"
    
        cd /Volumes/Extendo/k_temp
    
        find /Volumes/Extendo/k_temp/ -name '*.mid' -maxdepth 2 -exec sh -c 'mkdir -p "${0%/*}/${0##*.}" && mv "$0" "${0%/*}/${0##*.}"' {} \;
    
        python3 ~/Dropbox/[Programming]/Scripts/midi\ folder\ rename.py
    
        echo -e "\nNecessary MIDI Folders Created"
    
    This is more or less the direction the workflow follows


    [​IMG]


    We will be using 5 directories in this walk through. Please create these before you start following this as they will be needed to make sense. As noted in my code:






      • ~/Desktop/ks

        This is just my working directory for this project. Make a directory on your desktop, or anywhere, just as long as you know where it is.​
      • /Volumes/Extendo/k_temp

        This is a folder which holds all of my instruments being compressed in the folder 'ks'. This can be skipped if you plan on just directly copying these to the folder that holds all of your Kontakt instruments. I just prefer to keep them separate until they are all worked out. To keep the clutter to a minimum.​
      • /Where/Ever/These/Scripts/Are

        You're going to see a lot of '~/Dropbox/[Programming]/Scripts/' Which will obviously not exist on your computer, unless of course you have an identical folder path where you saved these. And then i'm going to have to reset my network infrastructure and make it more secure. :flushed:
        This is where the scripts live and will be ran from. To keep things running smoothly, i recommend that you keep everything in one folder so it doesn't throw you an error message yelling about not being able to find certain things.​
      • A temporary directory. It's not mentioned in the script but when you batch compress with Kontakt, it asks you to select a directory to compress and save to.. I always thought it was easier, rather than clicking through where it was before and where you need to go, was to have it always on the same one. When it was done converting or flattening, copy the files and then delete them from the temporary folder. But thats just me, this is 100% optional.
      • Finally, wherever your primary folder of all the kontakt libraries that you have are, mentioned in number 2.
    Line 1:
    The 'shebang line'. This tells terminal which compiling engine to use to run the contents of the script.
    Line 8:
    cd ~/Desktop/{YOUR_WORKING_DIRECTORY_HERE}
    'cd' means change directory. We change to a working directory on the desktop that will contain all of the kontakt instruments that you would like to batch compress.
    Note:







      • I never usually run this on more than 10 instruments at a time. Not because the script can't handle it, but because i don't want things to get too messy when i'm moving things around later.
      • Some instruements can't be compressed for reasons that i am unaware of.
    Line 11: Here we'll be flattening all of the directories in the above folder. Meaning, we can move all of the folders to the parent directory and make it easier for Kontakt to find the necessary files. Instead of traversing through multiple levels of subdirectories and in turn, turning your chip and cpu into useless silicone.
    If you feel this is unneccesary for what you're doing, feel free to put a '#' in front of line 11 and continue on.
    Example !
    Code:
        /Users/Chris/Desktop/ks/
        ├── Angelic\ Harp
            │   ├── Angelic\ Harp.nkc
            │   ├── Angelic\ Harp.nki
            │   ├── Angelic\ Harp.nkr
            │   ├── Demo\ Songs
            │   │   ├── Harp\ Duet.mid
            │   │   ├── Harp\ Duet.mp3
            │   │   └── Read\ me.txt
            │   ├── Documentation
            │   │   ├── Angelic\ Harp\ -\ User's\ Guide.pdf
            │   │   └── Read\ me.txt
            │   └── Samples
            │       ├── harmonic [283 entries exceeds filelimit, not opening dir]
            │       ├── misc [57 entries exceeds filelimit, not opening dir]
            │       ├── mute [1353 entries exceeds filelimit, not opening dir]
            │       └── sustain [1487 entries exceeds filelimit, not opening dir]
        └── Soundiron\ Traveler\ Organ
            ├── Documentation
            │   └── Soundiron\ -\ Traveler\ Organ\ -\ User\ Manual\ -\ 1..pdf
            ├── Instruments
            │   ├── Custom
            │   │   ├── Traveler\ Organ\ -\ Bloom\ Dark.nki
            │   │   ├── Traveler\ Organ\ -\ Dirty\ Harmonica.nki
            │   │   ├── Traveler\ Organ\ -\ Dynamojo.nki
            │   │   ├── Traveler\ Organ\ -\ Elektrokeyz.nki
            │   │   ├── Traveler\ Organ\ -\ Free\ Candy.nki
            │   │   ├── Traveler\ Organ\ -\ Gloriosa!.nki
            │   │   ├── Traveler\ Organ\ -\ Growler.nki
            │   │   ├── Traveler\ Organ\ -\ Little\ Wheezy.nki
            │   │   ├── Traveler\ Organ\ -\ Monster.nki
            │   │   ├── Traveler\ Organ\ -\ Motor\ City.nki
            │   │   ├── Traveler\ Organ\ -\ Mysterio.nki
            │   │   ├── Traveler\ Organ\ -\ Parisian\ Street\ Organ.nki
            │   │   ├── Traveler\ Organ\ -\ Retro\ Synth\ Arp.nki
            │   │   ├── Traveler\ Organ\ -\ Steam\ Pipe.nki
            │   │   ├── Traveler\ Organ\ -\ Tanky.nki
            │   │   └── Traveler\ Organ\ -\ Testify.nki
            │   ├── Traveler\ Organ\ -\ 01\ -\ Main.nki
            │   ├── Traveler\ Organ\ -\ 02\ -\ Dynamic.nki
            │   ├── Traveler\ Organ\ -\ 03\ -\ Amb\ Fuzzion.nki
            │   ├── Traveler\ Organ\ -\ 04\ -\ Amb\ Glitch.nki
            │   ├── Traveler\ Organ\ -\ 05\ -\ Amb\ Gypzum.nki
            │   ├── Traveler\ Organ\ -\ 06\ -\ Amb\ Singotone.nki
            │   ├── Traveler\ Organ\ -\ 07\ -\ Amb\ Transience.nki
            │   ├── Traveler\ Organ\ -\ 08\ -\ Amb\ Warm.nki
            │   ├── Traveler\ Organ\ -\ 09\ -\ Sound\ Effects.nki
            │   └── Traveler\ Organ\ -\ 10\ -\ Main\ Lite.nki
            ├── Samples
            │   ├── ambiences
            │   │   ├── fuzz
            │   │   │   ├── trvorg_mp_orbital_decay_fuzz_01.av
            │   │   │   ├── trvorg_mp_orbital_decay_fuzz_02.wav
            │   │   │   ├── trvorg_mp_orbital_decay_fuzz_03.wav
            │   │   │   ├── trvorg_mp_orbital_decay_fuzz_04.wav
            │   │   │   ├── trvorg_mp_orbital_decay_fuzz_05.wav
            │   │   │   ├── trvorg_mp_orbital_decay_fuzz_06.wav
            │   │   │   ├── trvorg_mp_orbital_decay_fuzz_07.wav
            │   │   │   └── trvorg_mp_orbital_decay_fuzz_08.wav
            │   │   ├── glitch
            │   │   │   ├── trvorg_mp_orbital_decay_glitch_01.av
            │   │   │   ├── trvorg_mp_orbital_decay_glitch_02.wav
            │   │   │   ├── trvorg_mp_orbital_decay_glitch_03.wav
            │   │   │   ├── trvorg_mp_orbital_decay_glitch_04.wav
            │   │   │   ├── trvorg_mp_orbital_decay_glitch_05.wav
            │   │   │   ├── trvorg_mp_orbital_decay_glitch_06.wav
            │   │   │   ├── trvorg_mp_orbital_decay_glitch_07.wav
            │   │   │   ├── trvorg_mp_orbital_decay_glitch_08.wav
            │   │   │   ├── trvorg_mp_orbital_decay_glitch_09.wav
            │   │   │   ├── trvorg_mp_orbital_decay_glitch_10.wav
            │   │   │   ├── trvorg_mp_orbital_decay_glitch_11.av
            │   │   │   └── trvorg_mp_orbital_decay_glitch_12.wav
            │   │   ├── gypzum
            │   │   │   ├── SN_amb_01_needsloop.wav
            │   │   │   ├── SN_amb_02_needsloop.wav
            │   │   │   ├── SN_amb_03_needsloop.wav
            │   │   │   ├── SN_amb_04_needsloop.wav
            │   │   │   ├── SN_amb_05_needsloop.wav
            │   │   │   ├── SN_amb_06_needsloop.wav
            │   │   │   ├── SN_amb_07_needsloop.wav
            │   │   │   ├── SN_amb_08_needsloop.wav
            │   │   │   └── SN_amb_09_needsloop.wav
            │   │   ├── single-tone
            │   │   │   ├── trvorg_mp_orbital_decay_singo_01.av
            │   │   │   ├── trvorg_mp_orbital_decay_singo_02.wav
            │   │   │   ├── trvorg_mp_orbital_decay_singo_03.wav
            │   │   │   ├── trvorg_mp_orbital_decay_singo_04.wav
            │   │   │   ├── trvorg_mp_orbital_decay_singo_05.wav
            │   │   │   ├── trvorg_mp_orbital_decay_singo_06.wav
            │   │   │   ├── trvorg_mp_orbital_decay_singo_07.wav
            │   │   │   └── trvorg_mp_orbital_decay_singo_08.wav
            │   │   ├── transience
            │   │   │   ├── trvorg_gs_transience_01.av
            │   │   │   ├── trvorg_gs_transience_02.wav
            │   │   │   ├── trvorg_gs_transience_03.wav
            │   │   │   ├── trvorg_gs_transience_04.wav
            │   │   │   ├── trvorg_gs_transience_05.wav
            │   │   │   ├── trvorg_gs_transience_06.wav
            │   │   │   ├── trvorg_gs_transience_07.wav
            │   │   │   ├── trvorg_gs_transience_08.wav
            │   │   │   ├── trvorg_gs_transience_09.wav
            │   │   │   └── trvorg_gs_transience_10.wav
            │   │   └── warm
            │   │       ├── trvorg_mp_orbital_decay_warm_01.av
            │   │       ├── trvorg_mp_orbital_decay_warm_02.wav
            │   │       ├── trvorg_mp_orbital_decay_warm_03.wav
            │   │       ├── trvorg_mp_orbital_decay_warm_04.wav
            │   │       ├── trvorg_mp_orbital_decay_warm_05.wav
            │   │       ├── trvorg_mp_orbital_decay_warm_06.wav
            │   │       ├── trvorg_mp_orbital_decay_warm_07.wav
            │   │       ├── trvorg_mp_orbital_decay_warm_08.wav
            │   │       ├── trvorg_mp_orbital_decay_warm_09.wav
            │   │       ├── trvorg_mp_orbital_decay_warm_10.wav
            │   │       ├── trvorg_mp_orbital_decay_warm_11.av
            │   │       └── trvorg_mp_orbital_decay_warm_12.wav
            │   ├── marcatos
            │   │   ├── loud\ marcatos [122 entries exceeds filelimit, not opening dir]
            │   │   ├── ppp\ marcatos [49 entries exceeds filelimit, not opening dir]
            │   │   └── soft\ marcatos [98 entries exceeds filelimit, not opening dir]
            │   ├── releases
            │   │   ├── loud [122 entries exceeds filelimit, not opening dir]
            │   │   └── soft [98 entries exceeds filelimit, not opening dir]
            │   ├── sfx
            │   │   ├── glitchy\ keys [42 entries exceeds filelimit, not opening dir]
            │   │   ├── keys\ down [61 entries exceeds filelimit, not opening dir]
            │   │   ├── keys\ up [61 entries exceeds filelimit, not opening dir]
            │   │   ├── pedal\ pump\ long
            │   │   │   ├── torg_pump_long_01.av
            │   │   │   ├── torg_pump_long_02.wav
            │   │   │   ├── torg_pump_long_03.wav
            │   │   │   ├── torg_pump_long_04.wav
            │   │   │   └── torg_pump_long_05.wav
            │   │   ├── pedal\ pump\ short [54 entries exceeds filelimit, not opening dir]
            │   │   ├── pedal\ pump\ vent
            │   │   │   ├── torg_pump_vent_01.av
            │   │   │   ├── torg_pump_vent_02.wav
            │   │   │   ├── torg_pump_vent_03.wav
            │   │   │   ├── torg_pump_vent_04.wav
            │   │   │   ├── torg_pump_vent_05.wav
            │   │   │   ├── torg_pump_vent_06.wav
            │   │   │   └── torg_pump_vent_07.wav
            │   │   ├── stop\ knob\ pull
            │   │   │   ├── torg_stop_01_out.wav
            │   │   │   ├── torg_stop_02_out.wav
            │   │   │   ├── torg_stop_03_out.wav
            │   │   │   ├── torg_stop_04_out.wav
            │   │   │   ├── torg_stop_05_out.wav
            │   │   │   ├── torg_stop_06_out.wav
            │   │   │   ├── torg_stop_07_out.wav
            │   │   │   ├── torg_stop_08_out.wav
            │   │   │   ├── torg_stop_09_out.wav
            │   │   │   ├── torg_stop_10_out.wav
            │   │   │   ├── torg_stop_11_out.wav
            │   │   │   ├── torg_stop_12_out.wav
            │   │   │   └── torg_stop_13_out.wav
            │   │   └── stop\ knob\ push
            │   │       ├── torg_stop_01_in.wav
            │   │       ├── torg_stop_02_in.wav
            │   │       ├── torg_stop_03_in.wav
            │   │       ├── torg_stop_04_in.wav
            │   │       ├── torg_stop_05_in.wav
            │   │       ├── torg_stop_06_in.wav
            │   │       ├── torg_stop_07_in.wav
            │   │       ├── torg_stop_08_in.wav
            │   │       ├── torg_stop_09_in.wav
            │   │       ├── torg_stop_10_in.wav
            │   │       ├── torg_stop_11_in.wav
            │   │       ├── torg_stop_12_in.wav
            │   │       └── torg_stop_13_in.wav
            │   ├── staccatos
            │   │   ├── loud\ staccatos [244 entries exceeds filelimit, not opening dir]
            │   │   ├── soft\ staccatos [196 entries exceeds filelimit, not opening dir]
            │   │   └── vox_humana_stac [144 entries exceeds filelimit, not opening dir]
            │   └── sustains
            │       ├── sustains\ loud [122 entries exceeds filelimit, not opening dir]
            │       ├── sustains\ soft [98 entries exceeds filelimit, not opening dir]
            │       └── vox\ humana\ sustains [78 entries exceeds filelimit, not opening dir]
            ├── soundiron_traveler_organ.nkc
            └── soundiron_traveler_organ.nkr
    

    Now, there are two instrument libraries in this file tree.





      • Angelic Harp
      • Soundiron Traveler Organ
    Now, after i run the script to flatten them, you'll see a difference in what has changed.

    Code:
    /Users/Chris/Desktop/ks/
        ├── Angelic\ Harp [3183 entries exceeds filelimit, not opening dir]
        └── Soundiron\ Traveler\ Organ [1715 entries exceeds filelimit, not opening dir]
    

    I set the tree print to only print the directory contents if it had less than 20 files.
    As you can tell, that wasn't happening.

    This is because now all of the directories in the working folder are just full of all of the sub-sub-sub directories files, and so on.

    Line 12: Just prints to the terminal that the directories are flattened.

    Note — You will be able to find a video of me doing all of the following and where it goes so you can understand what is going on more.


    Line 15: We’re using rsync with the -a argument

    ’a’ argument meaning
    "archive" mode, which ensures that sym-bolic links, devices, attributes, permissions, ownerships, etc. are preserved in the transfer.
    Please replace all k-temp values with whatever folder you chose to use as your temporary holding folder for this part. Remember to replace the entire folder path and not just k_temp, if you need to, refer back to the part where i mentioned this.

    This is a copy/sync utility built into UNIX or OS X, but what is important is the arguments that follow this.

    Code:
        —-include \*/
    

    is going to include only the folders in the first argument ie. ‘~/Desktop/ks/*’

    which is exactly what we want. Because we will be handling the other files later.
    Code:
        —-exclude \*
    

    is going to exclude any and all files. because, well, that defeats the purpose of this entire thing.

    We are simply cloning the directories to our new temporary destination.

    This is just a block of laziness. I just got tired of making new folders and having to re-type all of the names over again. So why not make the computer do it ? Right ?
    Again, we echo (print) to the terminal, telling us that the ‘Clone Directories Created’

    A lot of the echo commands were used for debugging in making this script and are just for confirmation on what exactly is going on.
    Lines 19 ~ 23:
    We’re using the find function in bash to look for files with the extensions “.nkr, .nkc, .nicnt, .mid and .midi” and once we find them, we’re using ‘cpio’ to copy them to the exact mirrored directory in which we found them. Now what we did on line 15 makes a lot more sense.

    We do it this way because when Kontakt batch compresses your instruments, the only thing that it batch compresses is the .nki files, the new compressed audio in the format of .ncw and most required wallpaper files.

    The required resource (.nkr) and container (.nkc) files aren’t copied, therefore sometimes forgotten when you’re 30 libraries in.

    I’m not sure what ‘.nicnt’ stands for, but i know that it’s required when adding a Library instrument to the engine, so these are important as well.

    MIDI files are the most important, but if your library is shipped with them, you might as well use them right ? Or at least reference them.

    cpio arguments (for anyone who gives one shit)

    ’p’
    Pass-through. Read a list of filenames from standard input and
    copy the files to the specified directory.
    ’d’

    (i and p modes) Create directories as necessary.
    ’m’

    Set file modification time on created files to
    match those in the source.
    These arguments make it so that these files now mirror the source they were found in, but now copied to (my version) /Volumes/Extendo/k_temp from the working directory ~/Desktop/ks

    Now, If You’re Still With Me And Haven’t Taken An Axe To Your Computer

    We’re almost done.
    Lines 25 & 27:
    Just some more echo’s. Yup.
    HEY. WE’RE CHANGING DIRECTORIES. PAY ATTENTION.

    We’re going to ‘cd’ into the /Volumes/Extendo/k_temp directory, and dear god i hope you’ve changed it by now or something has gone terribly wrong.

    Line 31:

    Okay, don’t even ask me to explain this one. I’m not even sure when/how/where i made this line, but it does what it needs to and i can explain that — But thats about it.

    I know, what an awful, satan spawned programmer I am.
    This jumbled mess of arguments and awfulness literally.. i mean literally,






      • Looks for ‘.mid’ files in a folder.
      • If the folder contains any ‘.mid’ files, it makes a directory called ‘MID’
      • And then puts said files inside said directory.
    AND THAT’S IT. HOW USELESS.
    And then the next script will take any folder named ‘MID’ and change it to the parent folders name - MIDI

    Say you have Kontakt’s Alicia’s Keys and it had .mid files. The previous line would find the files, put them in ‘MID’ and then this line would change it to ‘Alicia’s Keys - MIDI’.

    Just so you don’t have 1,000 ‘MID’ folders flying around. Trying to keep things as organized as possible over here.
    Below you will find video files of the workflow as best as i can make it. If i was at any point unclear in my descriptions, please private message me, so i can help you 1 on 1 rather than answer to a bunch of forum replies. Cause those get messy, and it also annoys anyone who has subscribed to the post waiting for an update or something.

    If you find any bugs ! Please let me know !

    This is far from perfect. But it works, as far as i know. So long as you follow what i said, change the directories as noted. This will be a lot easier for you and your instrument libraries.




    Thanks !

    I also wanted to put it out there that if you have an idea that you think something like this could be implemented by, feel free to message me. I'm really looking into doing as much as i can with this. And i'd be more than willing to help or teach anyone make that happen.
     
    Last edited: May 4, 2016
  2.  
  3. kingchubby

    kingchubby Rock Star

    Joined:
    Oct 14, 2011
    Messages:
    691
    Likes Received:
    429
    Thanks for all your hard work, sir!
     
  4. thickchez

    thickchez Kapellmeister

    Joined:
    May 13, 2015
    Messages:
    42
    Likes Received:
    44
    Not a problem at all !
     
  5. phaeron

    phaeron Newbie

    Joined:
    May 4, 2016
    Messages:
    1
    Likes Received:
    1
    Explain, please. What is it for?
     
    • Like Like x 1
    • Funny Funny x 1
    • List
  6. ed-enam

    ed-enam Rock Star

    Joined:
    May 21, 2015
    Messages:
    427
    Likes Received:
    409
    Thank you very much. It is indeed helpful. I will read it in my free time.
    Regards.
     
  7. fiction

    fiction Audiosexual

    Joined:
    Jun 21, 2011
    Messages:
    1,889
    Likes Received:
    687
    Thank you Thickchez for making your work available here.
    And thank you for the thorough explanation!
    Although I have never felt the need for s/th like this because I get along with Kontakt's built-in behavior quite well and don't mind to copy a few files manually afterwards.
    One thing I *do* wish for is an .nki and .nkm decryptor that makes these files readable in xml or whatever format.
    As of now, any conversion to Kontakt format is a one-way process, and there's no chance to convert back to any other format.
     
  8. thickchez

    thickchez Kapellmeister

    Joined:
    May 13, 2015
    Messages:
    42
    Likes Received:
    44
    Please read it before asking a simple question..
     
  9. thickchez

    thickchez Kapellmeister

    Joined:
    May 13, 2015
    Messages:
    42
    Likes Received:
    44
    i'll definitely look into this. It's seems like a challenge and an obstacle that any Kontakt super-user will face at some point.
     
  10. Lean

    Lean Producer

    Joined:
    Mar 8, 2016
    Messages:
    204
    Likes Received:
    110
    Yeah nice one thanks for this :yes:

    Python becoming more & more popular & as you outline you can actually script in python so it's definitely worth having a look at if your interested in kontakt & scripting.

    BTW you can extract the contents of NKI by certain methods which I can't outline here.

    There was a very handy program that used to do it nicely but NI soon got rid of that company & program like permanently I believe.

    After 4.2.4 they updated and made things a lot harder. However in many cases it is possible.

    Check out using programs such as Chicken Sys Translator (Full version) & extreme sample converter and similar types and have a look around.

    There are some interesting articles but I can't link them :no:

    A universal decryptor (legal of course) is NEVER going to happen while NI around as far as I can see but there are certain ways you can extract the contents in most cases.

    Nice work & thanks :bow:
     
  11. thickchez

    thickchez Kapellmeister

    Joined:
    May 13, 2015
    Messages:
    42
    Likes Received:
    44
    Ahhhhhh. Very interesting. I don't want to break any rules or laws. But that seems extremely tempting. I may just have to look into such things. :wink:
     
  12. modelarmy

    modelarmy Ultrasonic

    Joined:
    Apr 13, 2016
    Messages:
    88
    Likes Received:
    33
    Thanks for this and your work!!:like:
     
  13. gorri

    gorri Ultrasonic

    Joined:
    May 8, 2014
    Messages:
    134
    Likes Received:
    39
    Location:
    Earth
    will go through this when my head is up for it. Thanks for a fantastic "class"! :)
     
  14. fiction

    fiction Audiosexual

    Joined:
    Jun 21, 2011
    Messages:
    1,889
    Likes Received:
    687
    Oh yes, indeed.
    It's part of the protection system that many commercial sample lib producers rely on, so I believe NI does not really want anybody to be able to decode the files.
     
  15. thickchez

    thickchez Kapellmeister

    Joined:
    May 13, 2015
    Messages:
    42
    Likes Received:
    44
    If it ends up not being fruitless, i'll have to make sure you're not working for Native Instruments and just a mole here :winker:
     
  16. thickchez

    thickchez Kapellmeister

    Joined:
    May 13, 2015
    Messages:
    42
    Likes Received:
    44
    Oh it's definitely a mind-full. Let me know if it helps or not ! Looking to further push this and see where i can end up with it.
     
Loading...
Similar Threads - Kontakt Workflow Scripts Forum Date
Is there a tut or workflow for installing Kontakt 6 over legit Komplete Kontakt Sep 10, 2021
How to Check Bit Depth of Samples in Kontakt? Samplers, Synthesizers 30 minutes ago
NEW: Fluffy Audio - The Zen Garden (Kontakt ) Software News Today at 10:03 AM
Is there a new library validator for Kontakt that I'm missing? (7.8.1) Kontakt Monday at 2:28 PM
Old ableton live set : recovering a previous VST version of Kontakt Live Monday at 9:59 AM
Loading...