after getting synchronisation of my 2 machines managed via dropbox another problem pops up: wheras regular kontakt-libraries (those which occour in boxes on the left side of the kontakt window) are loaded seemlessly on both machines libraries that are loaded by using the “file-open” dialog make trouble. A window with this text pops up:
“content missing, xxxx files could not be found”.
The files are listet and it reads:
“File… assumed at …”
The places mentioned are places on drives of the machine the racks were created on (please keep in mind that both machines share the rack-files via drop box).
This means storage places are obviously bound to the racks. If I’d change this on the second machine by tweaking the racks I’d most probably get the problem on the first machine in response as racks are sychronized.
How do you manage this in your setups (or don’t you use these typs of libraries)?
If you can, make sure the libraries are on the same Drive Letter and Path. Since they are not you can change the disk drive letter and volume label in windows disk utilities for one of the machines to get the Drive letter the same. If it’s the path and the drive letters are already the same then move the library files to the same Path on both machines (make an arbitrary choice which machine will be changed) and then correct the missing files on C3 startup and re-save your all your racks and songs (open the racks and re-save them as well if they have kontakt in them). That’s how I had to do it. Otherwise you have to “correct” Kontakt and re-save the song rack files etc for all missing files each time you upgrade each machine.
You need to open Kontakt standalone on each machine, go to File/Options and the Database tab and explicitly hit the “Add” button and add the folder where the samples exist for that sound. Then hit the “Update” button.
This has nothing to do with Cantabile - that was a coincidence that the racks were in that mentioned drive location, methinks.
Terry, This is something new to me, do you only need do it once and then no more worries? Does the 1 machine need this fix each time? Please explain more.
first off: thanks for also chiming in here, Terry. I tried what you described but unfortunately had no success so far as kontakt still doesn’t find the samples and pretends on the paths taken from my laptop.
But I confess: I only trid this on the machine making troubles.
What I remember: when I first used these libraries by simply copying the racks from laptop to PC by hand I could fix the problem by re-storing the rack. But this is no way to go as it needs two non-identical racks (atm my racks reside inside drop-box with physical copies on both machines).
I also tried to create a new drive with the same drive letter as the one the samples reside on my laptop also with no success so far. But this could probably have a completely different reason: when I set up my laptop some years ago I decided (for a reason I don’t remember today) to place the c3 exe files to drive f: instead of c:. So it is probably impossible to leave samples in an adequate relative branch on my ssds.
However: I will try to further investigate this and report back.
Kind regards, Volker
Edit: after some attempts I got it managed. The method Dave described works (if one follows carefully his instructions ). It is really the drive letter & path that has to fit completely.
Thanks for helping out and have a nice week, Volker
Well, you actually have to KNOW where you installed the samples. That is the whole point of using the “Add” button there - to show Kontakt where the samples are. It cannot “guess” for third-party sounds.
And yes, once you have Kontakt set up for that machine, it is its own database that handles knowing where stuff is placed. It does not get any information like that from Cantabile. Be sure to do this adding and updating from the standalone version of Kontakt. Do it once and never need to do it again unless you reinstall in a different location. Most people put Kontakt and other NKS stuff into their C:\users\Public\Documents folder.
Terry
EDIT: Ahh - just saw your edit - glad you have it working!
I am picking up here on this old thread, because this is exactly the problem I am having and do not have a good solution. My symptoms in C3 with Kontakt 6 are exactly the way @humphrey described in his initial post on this thread.
The solution proposed by @dave_dore - to set up drive letters and paths identically (I am guessing using an ASSIGN command) - does not work for me. I have one machine where my samples are on C: (the only SSD) and the other where the large SSD drive is D:. Development was done on the first machine, so all rack references are to sound libraries on C:.
The solution proposed by @terrybritton - to add my third-party libraries to the Database tab of the File/Options dialog - does not seem to have any affect on my problem. And, in any case, the list of directories on the Database tab only seems to relate to Kontakt libraries … not third-party (non-Native Instruments) libraries.
The way I deal with it, and it’s not ideal but it’s the only way to do it (as far as I can work out).
When you open the files on the 2nd machine, when kontakt moans about not finding the files, point it at the location where they are. Save the racks. Then when you open the songs again on the 2nd machine, kontakt remembers where the samples are.
It takes a little time but once you know it happens you can prepare for it…
Yes @Toaster … I was afraid of that. However, when I then move the files back to the first machine, I’ll have to do that work again (in reverse). There’s gotta be a better way (that’s a rhetorical …)
This is a problem whenever Kontakt is used as VST in any DAW, not just Cantabile. This was first posted as a big issue 4,954 days ago on the Native Instruments Community Forum, and met with major teeth gnashing by many users for the last 4,953 days. So, it looks like no “better way” will be available any time soon.
This is a few years later, and I have learned a few new tricks - and this one is in-line with Dave Dore’s suggestion.
Create a SymLink (a symbolic link) to your folders containing samples on each machine that match. A SymLink is like an advanced shortcut that actually masquerades as the folder structure. So, you can point the database in Kontakt to that same-letter SymLink on both machines and Kontakt won’t know there is any difference.
So this has worked like a charm. Specifically (and as a good example):
I am porting from a Win10x64 laptop that uses two C:/SoundLib_XX directories for sound libraries, to a desktop with those same directories on D:
My Cantabile song files have Kontakt/VST plugins that use Kontakt Multi Racks.
I set up / install all needed VSTs on the desktop. I configure Cantabile and Kontakt for those VST locations.
I copy the Song files and Set List files from the laptop C:/Cantabile to the desktop D:/Cantabile en masse … without altering the structure of the directories within that copied structure. I believe it may be possible (in the future) to shadow this directory between the two hosts (with, for example, Dropbox), but I have not yet tested this.
I configure Cantabile Tools => Options => File Locations for the locations of my Song files, Rack files, Set List files, and Template files. (This step, as @brad described in Moving Your Cantabile Setup to a New Machine, means that Cantabile’s JSON files do not need to be edited. )
This is the point where things were failing badly (Kontakt was not finding the sound sample files when I launched my ported Set Lists), before @terrybritton 's suggestion.
I created two Directory Junctions (Windows Hard Links to Folders - like Unix Symbolic Links to Directories) in a Command Prompt that has Administrator access. For each of my sound libraries, the command is:
C:> mklink /J C:\SoundLib_XX D:\SoundLib_XX
Bingo, presto, and with the stroke of two commands, all of my laptop Cantabile projects work without any issues (that I have seen).
Some potential downsides of this solution that I can think of:
There could be a performance hit when using Directory Junctions (Windows Hard Links) … however I doubt it.
If your target system does not have the needed drive letter to create the Directory Junction, you may be out of luck. For example, to go in the other direction … i.e. port Cantabile files from my desktop to my laptop … I would need to create the Directory Junctions on the laptop’s D: drive. If the laptop has no D: drive (or D: is used for transient devices such as cameras SD cards), then this scheme may no be workable.
I am running (sprinting) over to the Native Instruments forum to post this technique … Thanks!!
There is a way to deal with this as well - it’s the windows “subst” command - it allows you to map a directory to a drive letter. I usually have my Dropbox (including my Cantabile folder) at d:\Dropbox, but on those devices that don’t have a D drive, I simply create a folder on the C drive called “D-Drive” and map it to D: using subst D: C:\D-Drive
The only caveat: this isn’t permanent, so I need to add a script with this command to my automatic startup routine and wait until the script has run before I start Cantabile.
But at some point in the future, I may change things to work the other way: keep my Dropbox wherever I want it and use a hard link on drive C to point to my Cantabile directory instead. Reduces the hassle and the potential of things going wrong…
One thing you need to be aware of: no matter if you use hard links or subst, there are still now TWO locations for the same file; be sure you only use the one that works across your machines when you put together Kontakt patches or Cantabile songs.
I’ve fallen into that trap a couple of times, drag-and-dropping backing tracks to Cantabile media players from my Dropbox, just to find that they only work on half of my machines (because from Dropbox’ perspective the path is “C:\D-Drive\Dropbox…” instead of “D:\Dropbox”).
Glad you got it sorted! However, I have samples all over the place on 3 different drives in both machines so until I get round to re-installing everything on both machines, I’m going to deal with it…
I’ve had bad luck when I “try to remember” some specific niggly whenever I do work. There are many gotchas that could trip you up, including Kontakt library installs done prior to implementing this (what what we call it?) “Directory Junction Scheme”.
So if your approach (I might call it the “single reference approach”) is to use a single, primary directory (which could be the real directory or a directory junction/hard link) for all file references, and be careful when establishing any reference, then I might call an alternate scheme the “permissive reference approach”: All hosts have exactly the same set of paths to the referenced files, whether they be the actual location of the files or accessed through directory junctions.
So, in my earlier example:
On my laptop, I have the sound libraries on C:/SoundLib_XX and a directory junction on D:/SoundLib_XX.
On my desktop, I have the sound libraries on D:/SoundLib_XX and a directory junction on C:/SoundLib_XX.
As @Toaster points out, this scheme only works if you organize your sound libraries in a (relatively) small set of curated directories. If you’ve splayed your sound libraries across your file system, then it would probably be worthwhile to re-organize rather than creating a further spaghetti-web of Directory Junctions …
I like - good idea. Not the cleanest approach (you can - and probably will - create a wild mix of C: and D: references in your song files), but at least things will work without nasty surprises. Classic musicians’ “gaffa tape”-type solution
But it is not unlike, if you go one level lower, the wild mix of references in the NTFS file system to disk blocks that are spread all over the platter. However, the client of the file system (program or person) never sees that complexity - and we envision it as a nicely ordered sequence of bytes (or some even higher level of abstraction such as blocks or records or paragraphs or sections of a photograph).
The downside of a mixed set of Drive references (eg. C: and D: mixed) is that, if we’re ever in an environment where we cannot establish the needed Directory Junctions (e.g. the Plan 9 OS has no Symbolic Links! - see a diatribe at Symlinks are an abomination) we’re seriously toast …
I keep my actual sound libraries in either /SoundLib_NI (Native Instruments - installed via Native Access) or /SoundLib_3P (all other sound libraries, with custom installs).
The /SoundLib directory does not actually hold sound libraries - it holds all the “configuration” files and metadata such as Cantabile Mappings, Racks, Recordings, RecordSets, Set Lists, Songs, and Templates, Kontakt racks and customized instruments (.nki and .nkm), KSP scripts, Presets for my drum pad, SoftStep, snapshots and workspaces for TotalMix (to set up my RME Babyface) … things like that.
The /VST Directory holds VSTs that are placed by hand rather than a dedicated install program. Notice that this is copied by hand between systems. This is represented by the [copy] spider in the center. I could do this via Dropbox, but I hesitate to do so because the files are actual executable VSTs which would be problematic if Dropbox decided to updated them while they were running …
The Dropbox setup is more complex because Dropbox will not synchronize anything outside of its dedicated /Dropbox directory. Sigh.
The real gotcha is thinks that should belong in /SoundLib, but must live somewhere in C:/Users o C:/Program Files, or C:/Program Data because these paths are not configurable. An example is the Respiro user “variants”, which live in C:/Users//Documents/Imoxplus/Respiro/Variants/.
In my current scheme, these need to be copied by hand (ugh). This is like the /VST directory, except I have to research and know (and keep a separate list of) those locations that are specific to each application, plugin, etc. This could possibly be handled by creating more Directory Junctions (symlinks) from those directory locations into Dropbox, but I hesitate to do this.
It’s two years down the road for the Directory Setup using Junctions, and all seemed fine … until today.
Here’s the rub: I have the same linked rack accessible (via Junctions) from C: in Song 1 and from D: Song 2. Cantabile treats them as two different racks. The “RackFile” (or “RackFileRelative” … not sure what that is) field in the JSON file of the two songs differ only in their leading C:\ or D:\.
Treating the linked rack in the two songs as two different racks causes heartburn:
On Load bindings keep getting triggered in a switch between the two songs.
There are two different in-memory contexts for the racks, so Rack settings made in Song 1 keep getting reverted when a switch is made to Song 2.
I’m sure there are many other issues …
My intended solution is to write a script (in perl) to “hack” all my .cantabileSong files to standardize them on C:
My friends, back to this topic… Kontakt has two options to save the sounds/sample:
Absolute
Relative
My question is simple, can’t find the answer tho: why the Relative option does not work? Syncing my two laptops one or the other are always looking to the Absolute path, so on one laptop or the other samples are always missing… can’t get this. So, the Relative works or not?
Cannot share a simple instance of Kontakt containing one single WAV file because the path is always like Absolute, starting from C:\user\ …