1. IMPORTANT:
    We launched a new online community and this space is now closed. This community will be available as a read-only resources until further notice.
    JOIN US HERE

Please once and for all fix the missing samples bug

Discussion in 'Feature Suggestions' started by KFY, Feb 13, 2008.

Thread Status:
Not open for further replies.
  1. KFY

    KFY NI Product Owner

    Messages:
    134
    I've just spent something in the region of 5 whole days loading up old work for archival and at every single instance of the Kontakt VST, having to tell it where the samples are. I'd really love to have spent those days out on my bike or a walk along the beach checking out some new music on the ipod.

    NI Kontakt team - please all I ask is for a tick box in the preferences that says 'When samples are missing, always *first* look in the most obvious location - the subfolder adjacent to the loaded xxxx.NKI called xxxx Samples'

    Why does Kontakt even save an 'xxxx samples' folder next to the .NKI if Kontakt's default behaviour when loading up is to look through Terabytes of local and network storage first. Please don't make me use Kontakt's database for this, I don't like being presented with 23 different samples with the same name from various projects and having to guess which one belongs with my song.

    WHY IS THIS SO DIFFICULT?
     
  2. David Das

    David Das Moderator Moderator

    Messages:
    7,060
    Why not just use Batch Resave?
     
  3. KFY

    KFY NI Product Owner

    Messages:
    134
    Hi David

    Because, apart from the fact that Batch Resave crashes more often than it succeeds, it doesn't solve the issue. Reloading a song in your DAW when the song folder (containing kontakt's instruments and samples) has been moved makes Kontakt lose the samples.

    There's 2 things happening here:

    1) When you have loaded an instrument to use in a song, tweaked it a bit and you want to save a permanent copy along with your sequencer song, in it's folder, you tell Kontakt to resave, even with a new name, the .nki (and samples or monolith) and Kontakt appears to have done this correctly since the name on your instrument from there on is the new edited name. But at a later date, if the original samples in your library are moved and you try to load the sequencer song, the instance of Kontakt loaded tries to find the samples in their first location, rather than the song folder where you had resaved them. This is either a bug or bad design, it's been in Kontakt since v.1.

    2) In day to day use of Kontakt if you save an instrument, Kontakt defaults to saving the same named folder of samples next to the instrument. So for example if you had a blank instrument, dragged in some waves and wanted to call it 'mybass' then on save you'd get 'mybass.nki' and the folder of samples next to that 'mybass samples'. - When instrument and song folders get moved around Kontakt often loses track of where those samples are, because it's remembering the samples by full pathname rather than relative to the .nki. So you get a prompt on loading the .nki saving 'CAN'T FIND SAMPLES' with the various searching options. Not one of the options there, or in the Kontakt preferences is the option to simply 'assume samples are in the xxxx samples folder adjacent to xxxx.nki' This is so utterly frustrating and defies logic.

    For a DAW to load an instrument .nki it has to inform the Kontakt plugin of which instrument was loaded when the DAW's song was originally saved. This means that the information about the disk location of the .nki is passed to Kontakt. It then follows that Kontakt should be able to 'assume' the samples are adjacent to that .nki considering that is the default saving behaviour of Kontakt. But in reality Kontakt actually searches everywhere else on the hard disk first.
     
  4. zeno

    zeno NI Product Owner

    Messages:
    109
    I can't believe this bug is still present in version 3. This is just rather sad.

    Are NI trying to force me to use EXS?
     
  5. Steve555

    Steve555 Forum Member

    Messages:
    81
    I totally agree that these problems need fixing. Since the advent of computer-based samplers this has been one of the most frustrating issues, I can't believe it's still with us. As the other posters suggested, it wouldn't take cutting edge A.I. programming for Kontakt to search 2 or 3 really obvious places (... including the place you last showed them, 5 minutes ago!)

    It's a fantastic program that I use a lot less than I would if this was fixed.

    Steve

    P.S. Batch resave doesn't work AT ALL on Mac. (Tech support told me it would be addressed in the next update.)
     
  6. Kymeia

    Kymeia NI Product Owner

    Messages:
    6,268
    It is strange how Kontakt seems to have such difficulty locating moved samples compared to the EXS from Logic which I recall (back from the Windows version) had the ability to automatically find whatever was moved very quickly and without asking for your help.
     
  7. Josh @ NI

    Josh @ NI NI Team NI Team

    Messages:
    124
    I see the confusion here--it lies in the mechanics that occur when you save a project in your DAW. Your DAW is not passing the nki's info to Kontakt as one might assume. This is because once you save your host session, the relation to the original .nki no longer exists--your host is now in control of the sample location and is assuming the samples to be at an absolute path (wherever they are at time of save). This means that missing samples won't be found relative to wherever the original .nki was, as the session is no longer taking its cues from the .nki.

    There is an exception, and that is if the samples were coming from the Kontakt Library folder (as set in Kontakt's preferences) at the time the session was saved. In this case you can just change this location in Kontakt's preferences and it will still load the samples into your project without incident. In your case, since you likely moved the samples into the host project's folder before saving the session, you're not receiving the benefit of this arrangement.

    To summarize, there are thus two approaches:

    1) Save all your own content in one folder, the Kontakt Library folder. Then you can just change this folder in the preferences and know that it will work no matter where you move things. Btw this also means that you can move a session across machines (even platforms) and it will still find the right samples, and this is why we did it this way.

    2) If #1 is not possible, use the Samples Missing dialog to find the samples one time, and then do nothing except re-save the host session--it will work thereafter since you will be "brute force" re-populating the absolute sample path the host is expecting.

    Hopefully this clarifies things a bit ;) I am going to post this as a separate thread as this does come up somewhat often.

    Josh
     
  8. KFY

    KFY NI Product Owner

    Messages:
    134
    Hi Josh,
    Firstly, many thanks for replying about this issue:

    If you are talking about the host saving the 'full state' of the plugin and restoring that state on a reload I can see why this would result in a broken instrument if the source waves are moved. However, other VSTi's that use external or monolithic samples such as VSampler 3.52 do not exhibit the lost samples behaviour when a host project is moved along with the instrument files. In my experience of different VSTis this behaviour is unique to Kontakt/and or similar NI products such as Reaktor.

    What you are saying in essence is that the host is providing *all* of the instrument data to an empty Kontakt instance and instructing it as to where to find the raw sample data on disk. If that is the case then why have an .nki file at all if the host is capable of providing the full instrument parameters to Kontakt.

    Can we therefore have a new preference that forces Kontakt to only 'receive' the name and path of a *saved* .nki from the host, (ignoring any settings or further path data) and then do it's own loading of that .nki and associate samples. This would cure the problem for users who do not reference a permanent library.

    This illustrates what I've said all along and that is that Native Instruments didn't provide the user with choice here, but rather assumed everyone would work from a fixed library. As I said in an earlier post this may work for users who routinely load prebuilt instruments such as orchestral sounds or sample cds of loops but it is really inconvenient and contrary if you produce your own samples, or have to make complex edits to instruments that are unique to a composition/project.

    While you say it should be possible to move a session across machines using this method, I find it a really odd concept when many users like myself have hundreds of gigabytes of samples if not into the Terabyte, so the idea of bringing that from machine to machine just to ensure that a project loads equally on the other machine seems pretty illogical. Surely bringing just the DAW's project folder with only the *used* .nki's (and samples) in that folder makes more sense. Also, to follow the strange logic of Approach No.1 like you say would involve altering the Kontakt Library location in kontakt's preferences. Surely this would also mean a complete and time consuming rebuild of Kontakt's database the moment you swap out one users vast library for the one you just plugged into their machine, and since Kontakt doesn't support multiple named databases this will occur every single time you swapped those libraries.

    This is all fine and well but if you have 16 instruments in your host each sourcing samples from multiple locations, and you have a deep and detailed set of sample or project paths, then loading and repointing the Samples Missing dialog will take a hell of a long time for each DAW project, with a high likelyhood of missing or inserting the wrong samples in places. If you have two variations on the same instrument on your drive, and in one you've used Kontakt's destructive editing of samples to make alterations, the Samples Missing search dialog will not be able to tell which samples belong with which .nki without 100% manual intervention. Again, a lot of manual time wasting work to clean up a problem that shouldn't exist in the first place.

    ---------------

    You may think there is no way for the host to provide Kontakt with the 'current' location of the project folder. However, in my case, when I load an instrument from my long term library and edit it, making additions and adjustments to that instrument for use in a specific project, I always RESAVE that .nki into the new, specific project folder. This is my main gripe, this resaving is ignored. The moment a user resaves the .nki to their project folder, the path (which Kontakt becomes aware of since it is doing the saving, not the host) should become a parameter stored in the instrument. Then, when the host reloads the project later, if the host provides a path to Kontakt remembered from that dialog, Kontakt can have a behaviour (via preference if you like) that makes it ignore any further host data and simply load the .nki from that path. I hope this makes sense. In short, by resaving you are giving Kontakt the means to know where the new copy/version of an instrument is located, and it should be possible for this to be captured by the host for reinstating at the next load.

    Currently, resaving an .nki into your project folder doesn't do this, so even if you tweak an instrument to your liking and are meticulous about saving it (and all other used instruments) into your project folder, it's a wasted venture because reloading the song later results in Kontakt trying to load the old samples from their original location.
    ---
    Another alternative to getting Kontakt to ignore parameter data from the host if provided with the project/nki path:

    If there were a preference that said 'reload .nki after save' this would be a quick fix. When the user saves an edited .nki into their host project folder, part of the problem is that despite that saving, later in loading up the project again the host is passing parameter data and sample paths into Kontakt, and Kontakt isn't knowing to load that information from the .nki in the project folder.

    If there were a 'reload instrument after save' option, what would happen is if you have reached a happy plateau in your project and save all used instruments into the project folder just before saving the host project itself, each resave would instigate an immediate reload of the instrument from the project folder, meaning that the parameters saved in the host project would therefore be correct and will reload the instruments directly from the project folder.
     
  9. Steve555

    Steve555 Forum Member

    Messages:
    81
    With the greatest of respect, I think that's missing the point. With huge constantly changing libraries that get shifted across computers, DAWS, and OS upgrades, things DO go astray. (yes, even when they are in one Kontakt Library folder, often through relative/absolute path confusion) Also, sometimes as user libraries grow huge, it becomes necessary to restructure things in to different categories and folders, and again, even with the greatest of care, samples do go astray.
    One would hope that when this happens, Kontakt would at least look in the directory of the instrument file to find a folder full of samples.

    It's such a minimal amount of programming to add a failsafe that when the sample can't be found, look for a folder adjacent to the instrument file. This is where 90% of users would put their samples if for any reason a manual re-organisation had taken place.

    Steve
     
  10. Josh @ NI

    Josh @ NI NI Team NI Team

    Messages:
    124
    Hello all,

    Understood. EXS is a slightly different case--it is not a plugin, it is Logic. This effects a more significant degree of transparency when it comes to this kind of thing.

    I don't think anyone would sensibly advocate this. If you instead put only the sounds you need for your projects into the Library folder (wherever that directory happens to be on the target machine) they will always be found, irrespective of platform or host. The Library folder is the shared "playground" that Kontakt will always index regardless of the circumstances. Having said that, I am noting that you would rather have this kind of thing handled more arbitrarily...

    I see what you want to happen here, there is no misunderstanding about that. The problem with its implementation is thus:

    1) You save an .nki within a project folder
    2) You move the project folder
    3) You now reload the host session, which references the location of the .nki based on the last time the project was saved....which points to a folder that no longer exists, even if the samples are referenced relatively.

    Put differently: normally when loading an .nki (for instance via the Browser), it will just look for samples local to it if they are referenced relatively. If one were to instead implement the above, the host would be calling on the last known location of the .nki, and it won't be able to find the .nki (because it's gone), hence it won't find any relatively referenced samples.

    If you instead ask Kontakt to outright ignore the host, and directly reference any .nki's you have explicitly saved, this will of course still break as soon as you load a new session. Once again, if it can't find the .nki, it won't find any relatively referenced samples.

    What you are really asking for is this:

    1) You save an .nki within a project folder
    2) You move the project folder
    3) You reload the session, and if Kontakt can't find the samples, it attempts to query from the host the location of the current project's folder. If it can negotiate this location, it performs a full sweep of this directory (and all subdirectories) before presenting the Samples Missing dialog.

    I personally think this has caveats. I think a better implementation would probably be to have it deliberately fail, and then have a check box in the Samples Missing dialog that says "Use Project Folder" or something like that (and it would do so for all remaining references it can't find). This would reduce it to one click, while eliminating dangerous ambiguity.

    Whether this is technically (or logistically) feasible is another matter altogether ;)

    Indeed...the problem is that when you move things, by definition the reference to this instrument file is also lost (see above).

    FYI, the Sample Missing dialog is a topic that is always being considered. There are many solutions to a given problem, and each one has to ensure it doesn't create more potential problems. There are also many working styles out there, and every change to this dialog has to ensure it's not going to make things harder for someone else (or more complex in general!). This thread has been duly noted by the powers that be...

    Best,

    Josh
     
  11. zeno

    zeno NI Product Owner

    Messages:
    109
    Dear Josh:

    What I (and I believe many others) would like is a very simple functionality.

    This is the desired behaviour:

    1. The Kontakt instances within the host program (say, Logic) should remember where their respective Kontakt multis/instruments are stored RELATIVE to the host program project file. If one loads an instrument and resaves it into the project folder, the Kontakt instance should always reference that instrument, not the original; this does not currently work.

    2. Each of those saved multis/instruments, presumably (but not necessarily) stored inside the host program project folder, should remember where the relevant samples are stored RELATIVE to the locations of said multis/instruments.

    Therefore, a project becomes truly portable, either within one's own computer system, or to another studio altogether, without any of the dreaded "missing samples" dialogues.

    Of course, these two options can be designed as user-set preferences. In fact, Kontakt should already be able to do this, since there exists the check box to specify saving with relative or absolute sample paths, but said checkbox has no effect!

    Please put high priority on these features. To me (and surely to many others), this very basic functionality, while far from glamorous, would be far more useful than the addition or more high-gloss extras.

    Thank you....

    Zenon Marko
     
  12. KFY

    KFY NI Product Owner

    Messages:
    134
    I think, that what Josh has explained is that we are expecting Kontakt to know 'where it is' or rather where the nki is on disk, by somehow getting that information from the host.

    I can see where the problem lies in that we want the instruments to be referenced relative to the host project file or folder, yet Kontakt must still interact with the operating system in order to load audio files or .nkis and for that to happen it still has to know what the actual path is. We are expecting Kontakt to get this information from the host, but is there any support for that in the VSTi spec? I don't know.

    Josh,
    I agree with Zeno that any fix that involves the missing samples dialog isn't really a fix, and will still serve to drive us mad, particularly if you've moved 100 projects to another location but are still having to go through the samples missing dialog again and again.

    What I guess people are asking for is some sort of preference that defines their way of working, it may be contrary to how other Kontakt users behave, but I think we know how we want it to work, that is, to be able to save .nki's and their samples with a host project and have it 100% portable without ever prompting for missing files. The advantage of a preference based approach is that it need not have any effect on the 'other side' Kontakt users who will carry on blissfully unaware of any change.

    So I guess the question is, would it be programatically (i made that word up) possible to make Kontakt query the host's project folder location somehow, and thus connect that to a preference tickbox something like 'Search Host Project Folder First'.

    If it really is impossible to make Kontakt receive that information from the host, perhaps at the very least a dumb fix would be my other suggestion: A 'reload on save' preference, which would mean if you always remembered to resave your .nki's into the project folder, this is the location that would be remembered when reloading the project. --- That is, it would fix the problem of the original source/library having been moved, but it wouldn't fix the problem of the project folder being moved later.

    ------------
     
  13. Ashermusic

    Ashermusic NI Product Owner

    Messages:
    5
  14. theambertheatre

    theambertheatre NI Product Owner

    Messages:
    101
    Missing sample bug no excuses

    Apologies the Josh's quotes didn't translate so I've put them in manually.

    Josh, thanks for taking the time to discuss this issue with us and propose solutions

     
  15. zeno

    zeno NI Product Owner

    Messages:
    109
    Since the host has to load each Kontakt instrument each time it opens a given project, and each Kontakt instance has to load its respective instruments, presumably each instrument has to remember the location of its samples.

    Isn't a preference possible that Kontakt always looks for the samples of Instrument XXX in an adjacent Finder folder entitled "Instrument XXX samples"?

    Can we hope that some progress is made in this behaviour for the 3.5 release?

    Thank you....
     
Thread Status:
Not open for further replies.