How to move samples to another folder/hard drive without retagging the library?

Maschinista
Maschinista Member Posts: 9 Member
edited January 2022 in Maschine

Maschine Library information - All my taggings 😲

.... getting lost when shifting samples to another location

Part I (since the content has a limitation)

Hy folks,

since I'm rather new in the NI universe with my Maschine, I might not be aware of some other solutions although I tried to Google for it - So, sorry if this is a kind of a double post. As well I would state out that I don't take any responsibility for offering the best and right solution and, if you crash your Software.

However if you are not a complete newbee when it comes to computers you might manage that.


My issue:

I started tagging some of my samples in the Maschine software library. Then I came to the conclusion better moving my samples to another folder or harddrive location. Ups, I found no way inside the software to move the samples and just correct the path information - So I had to tag all again - Very frustrating 😡

- Good that I was just at the beginning but I though what will be if I spend in totals some hours in future to have a good tagged and informative library when I have to move once my software or replace some hardware? - I started thinking if it's then really worth while spending time to feed the library when I cannot transfer/move it in the future. Never the less,


My solution:

I thought NI has to store these library information somwhere and I just have to find it, get access and hopefully just replace the path info to let it run again. Short summarize: I manage it (very fast and easily).

Short info in between: I'm a Windows user however I assume this will work for MAC as well with some slight differences, which can be easily solved if you are a little bit more advanced.

First I where researching the internal Windows Registry if there are some information about - For shure there are NI data in, but not that what I need for the library data. So I where searching a little bit in my folders on my harddrive and found a database file where it seems that NI stores the whole library information (now the difference between MAC and PC - MAC users might have another path and you have to search for yourself). I found my responsible library database under:

C:\Users\YourUserName\AppData\Local\Native Instruments

There might be several NI subfolders - Probably depending on your NI products you have. One should be Maschine 2 (if the software is installed). So finally the folder is:

C:\Users\YourUserName\AppData\Local\Native Instruments\Maschine 2


If you open that folder and make absolutly sure that any NI software especially Maschine is not running you find a file called: komplete.db3

This is the library file where all information are stored. btw, I recommend to do a backup from this file from time to time to keep your library data available for any crashes.

Digging a little bit deeper into that database file, it seems that it's a least a kind of a sqlite library but I'm not that SQL guru/user and if your are more familiar I can at least post that dumpint to an text file, changing there the info and build it back again as sqlite db end up with some errors and the library didn't work anymore. So I end up doing the changes via the db software.

Tagged:

Comments

  • Maschinista
    Maschinista Member Posts: 9 Member

    Part II


    Now let's start:

    a)

    You need to download some database software to get access to the database file. I recommend DB Browser. It's open source and available for Windows, Mac and Linux. Please follow the link to download the needed software and install it.

    Link -> DB Browser for SQLite

    b)

    Make a copy from you database file - We better work with the copy first. So, for that reason I copy the kontakt.db3 file to another location to be on the safe side

    c)

    Now start the DB Browser Lite Software and then either grab the copied database file with the mouse and move it inside the DB Broser Lite window, or goto (top left) FILE, OPEN Database...and open the copied database file.

    Should look like this:


    In the yellow field there will be some data once you load the database (before it was empty) and if you have done it, open the red folder, saying: Execute SQL

    d)

    Now we switch to the Execute SQL folder and paste the following code there (green)


    Not necessary to read if you are aware about and trust me ;-)


    More clearer:

    The db file consist not only of "sheet" it's really a database similar like a probably more common Excel file (but Excel is not a db ;-). Which can have as well several table sheet (datatables). The same here with this database.

    What we do now is: We search in the relevant datatable for the relevant information and replace it by the new one. So (I figured out that) two data tables (out of 24 I guess) are relevant: k_content_path & k_sound_info.

    In these tables we have the path information we have to change.

    The k_content_path table keep the links you set by yourself when you tell the system where to search for data you'd like to have in the library.

    Then in the k_sound_info table which is much huger, because each (i.e) *.wav file (that might be some hundreds or thousands, depending on your samples) are logged here with it's path and some other data.

    In each table we have a closer look into the columns path & file_name , here are exactly the info we would like to change and replace the old information and replace by the new one. Since both table contain the same data what we need to change, we change it in both tables.

    Here is an example:

    My relevant sample data are stored in several subfolders ie.

    c:\Music\MySamples

    c:\Music\MySamples\Samples1\beats\

    c:\Music\MySamples\Samples1\pads\

    ..

    c:\Music\MySamples\Samples2\beats\

    ..

    c:\Music\MySamples\SamplesFromMyMate\The best sound\perc\

    c:\Music\MySamples\SamplesFromMyMate\The best sound\kicks\

    ..

    and so on...

    however now you see the system. Thyy all have in common that they are storeed so far under: c:\Music\MySamples................


    The Structure behind c:\Music\MySamples................ I'll keep, but I will move the complete data to a new folder and/or harddrive location like:

    d:\NewFolder\MyMusic\MySamples...........

    So I finally just have to replace the path information:

    c:\Music\MySamples by d:\NewFolder\MyMusic\MySamples

    That's it - Easy, isn't it?


    For your safety:

    1. We just replace data in these two tables and in these two colums, so other tables and data remain untouched.

    2. The longer and the more unique your replacement data is, the more you are on the safe side that only these informations gonna be replaced.


    Example:

    If your path is: c:\Music\MyMusic\Sampler.... and you want to move it to:

    c:\NewMusic\MyMusic\Sampler.....

    Then: don't just replace the word Music by NewMusic because the replacement works on the total path naming. If you just do it like this your filename won't end up in:

    c:\NewMusic\MyMusic\Sampler... it will end up in c:\NewMusic\MyNewMusic\Sampler...

    clear???? - Every part which fit's to the word Music will be replace but if you say like:

    Search for:c:\Music and replace it by c:\NewMusic everything works fine since this replacement structure is unique.


    So this is the (example) code what you have to type in:


    Please take care especially on case sensitive words and on every ; ' , sign.

    For your convenience: here is the code for copy & paste. Just replace the red parts: First is always what you search for (x) and second what it should be replaced by (y).

    update k_content_path
    set path = REPLACE(path,'X','Y');
    update k_sound_info
    set file_name = REPLACE(file_name,'X','Y');
    

    Once you have entered your program code, it's time to process...press the PLAY button (one line above) to start processing. It might take a while depending on your data but still much faster then you think and even more faster then re-tagging your library.

    If the processing is ready, go to FILE (top left), select WRITE CHANGE and close the database. Now you're almost ready. Just replace the original file (and keep it as backup) with your one.

    And one final reminder: Have you already moved your date we are talking abaout the whole time to the new destination. If no, then it's time now before everthing is DONE

    and we start the Maschine software - Have fun 

    😎

    

    btw. If you dig deeper into SQL and your database you can see and do there much more thinks besides the limitation of the library surface in Maschine might give to you.

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

    FInally: If you have issues, you can still go back.

    1. Close Mschine
    2. Replace your new database file by the backup one and you are back again where you started.

    Cheers

  • D-One
    D-One Moderator Posts: 2,811 mod
    edited January 2022

    Wait... You're going thru all this trouble because of the tags? They are stored inside the .wav files as metadata, moving them won't remove any tags.

    Also, if you're doing this due to a folder location in order to not have any missing samples that's not required either, as long as the new Folder is added to Maschine's Preferences > Library > USER samples should load just fine. At least that's how it works for me (MacOS).

  • CH7
    CH7 Member Posts: 17 Member
    edited January 2022

    There again, you do a little research on 'soft links' or 'symbolic links' and let your operating system do all the work for you..

  • Maschinista
    Maschinista Member Posts: 9 Member

    Hi D-One, that's new for me, that (mainly) *.wav files are tagged inside (with all information you see quite often in the filename) - MP3 i.e. does, but wave files?.

    They are mainly named like ie: "003 Lead 126bpm Gm - DubStep.wav" but there's no guarantee that they are all named similar and well. For sure I can start typing and the library show me which file namings contain my words. But a real tagging. And - correct me if I'm wrong, I didn't found any possibility that the maschine software is tagging wave files for me by hust pressing a button

    However, tagging was an example, but I where talking about shifting the complete content to another drive without having the library screening again and don't loose any previous taggings or whatever.

    Cheers

  • Maschinista
    Maschinista Member Posts: 9 Member

    Hi CH7, I'm using this already but, correct me if I'm wrong, On your folder/hard drive there has to remain at least one link all the time on the same position where your library refers to.

    So easy example:

    Before your libray data was physically store on c:\Samples

    Now you move it physically to d:\Samples

    Now you set a junction but this means that the c:\Samples folder (like a shortcut) has still to remain virtually while the c:\Sampler is redirected in the background to d:\Sampler

    Do you mean that? - Yes.possible but finally not a real shifting.

    However I just showed a possibility to change inside the library database the path data. How, what and if you need this info is finally up to you.

    Cheers

  • D-One
    D-One Moderator Posts: 2,811 mod
    edited January 2022

    Yes, I am 100% sure, real tagging.

    Wavs can have metadata too, some things are sort of standardized like "ACID Wav" metadata which holds things like BPM, LoopPoints, etc, it was widely used in the Sample CD era, still is, but not all Software offers support for it. Try it, tag a wav file and move it somewhere else, re-add it, the tags will still be there, even across computers or between Maschine SW and Maschine Plus. If you edit a tag you can see in your OS file browser that the "Modified Date" or "Creation Date" changes, this means the file has been edited.

    Metadata is a separate part of the data, technically you can put anything you want there, so NI chose to use it for Tag's, of course, other software won't be able to see it or use it. File-name has nothing to do with it, it's just the name of the file altho it can be used in some DAW's if they're smart enough.

    Tagging or whole lib, same difference, if the files are in a folder that is added to the User Libs, Maschine will find them. Feel free to test it, make a tiny lib with 3 or 4 files, use them in a project, change the path, add the new path and it should work.

  • Maschinista
    Maschinista Member Posts: 9 Member

    Hi D-One,

    with one thing you are right:

    Tagging the files in the library, moving them physically to a complete new folder, start rescanning, then telling the system where the files moved to (after error message), works - great - and keeping the tags. But why didn't it work for me in the past? - I don't know. now it does.


    Regarding the tagging - My wav samples are not tagged inside, you can test it with some free samples, when you follow the link.

    Just download some and check out. I see no tags inside the file except the bitrate and the frequence. Neither with the Maschine software, nor i.e. with vlcplayer, Audacity, MusicBee, mp3tag, IDTE- ID3 Tag Editor........ - No tags inside. And Maschine don't write tags inside after the samples are added and tagged in the lib.

    Afaik, from the early beginning when they start digitising music it was not planned or even in consideration that wav files have tags. There was afaik no player, looking and presenting these info. I think this came first into consideration when MP3 files appeared. But Yes, you are right, it's nowadays possible but still seems not to be very common. Even the Maschine library is not interested in what's inside - at least I tested it, I filled a wav file with some tags even generate a tag field according to the maschine library tags (ie.e): TYPES - The library remained completly uninterested in the (inside) tags.

    However:

    What can be: I assume, Maschine is generating for each sample a unique hashcode - When you check the SQLite database there are some IDs next to every file. So as long as you don't change anything inside the content of a wave file - renaming and/or moving is not inside, even tagging doesn't change the sample itself - the Maschine library probably remember in the file and connect the New file to the previous one and it's data, stores in the maschine library, not in the file.

  • CH7
    CH7 Member Posts: 17 Member

    yeah. using your example ... you place a softlink at C:/ It would be read as C:/sample put actually point to your D:/sample folder.

  • JesterMgee
    JesterMgee Member Posts: 2,533 Expert
    edited January 2022

    Tagging in Wave files is 100% a thing these days, they are often refered to as BWAV (Broadcast Wav)

    Both BWAV and WAV files use the .wav extension (some programs use .bwf). They both refer to the same audio format. The main difference is that BWAV files include more information in the file header than WAV files. So, for example, a BWAV file will include “time stamp” information, which allows a software application to place the audio files in the correct position in the timeline.

    If a given software application can not read the extra information stored in a BWAV header, it will still read the actual data contained within the file.

    This has been extended by Steinberg with what is classed as the iXML format header which can basically contain any data you like, but there are programs that specifically use this header info for data in sound design applications to store category information, mics, location data, timestamp info etc.

    I actually work with a company BaseHead who has software dedicated to managing the data within these files and integrating with DAWs out there so you can search. Way more advanced in the management of metadata than Maschine is and used by many companies, especially in the PC gaming industry. I am also a field recordist and use it to manage meta data:

    It is also p[ossible to embed artwork within wave files... anything you like, but it is useful only to the program that can read it. iXML is a standard anyone can make use of and has specifications. I am not sure if Maschhine is using iXML but if it was you would be able to see the data in something like Wavelab or BaseHead:

    Pro Tools I am pretty sure now shows the iXML chunk in the files properties. It's been a thing for over a decade. Wave files are just a container and basically any player ignores any data before the wav header so you can drop anything in there for other programs to use. FLAC are more restrictive currently and can only store basic ID3 tags (which are almost useless for production) but the industry is pushing for change there.

  • D-One
    D-One Moderator Posts: 2,811 mod
    edited January 2022

    @macchinista Geez bro... So much confusion over there... Here, from the WAV wiki page:

    Metadata

    As a derivative of RIFF, WAV files can be tagged with metadata in the INFO chunk. In addition, WAV files can embed any kind of metadata, including but not limited to Extensible Metadata Platform (XMP) data[25] or ID3 tags[26] in extra chunks. Applications may not handle this extra information or may expect to see it in a particular place. Although the RIFF specification requires that applications ignore chunks they do not recognize, some applications are confused by additional chunks.


    I have no interest in testing it your way since I've tested this many times before. Not sure why you're insistent on denying something factual. Here's a tagged file RAW data on a text editor:

    You can clearly see the metadata has no line #'s, since it's an extra chunk or whatever it's called in dev jargon, it's ignored by anything designed to playback Wav's unless the SW implements it. You can see it clearly in a human-readable format: the "Vendor", "Kick" Tag, and all other NI-specific stuff is there, not debatable.

    I mean the file changes "modification date" and file size when a tag is applied, it really couldn't be more obvious:


    Afaik, from the early beginning when they start digitising music it was not planned or even in consideration that wav files have tags.

    Well, that started as soon as computers were available to people, probably even before. You're tying metadata specifically to Audio Formats, it's not an Audio thing it's a computer thing. The same applies to .JPG and a ton of other formats, as things evolved some ways of storing and reading the data became a standard and other are exclusive to a developer, like NI's.


    But Yes, you are right, it's nowadays possible but still seems not to be very common. Even the Maschine library is not interested in what's inside - at least I tested it, I filled a wav file with some tags even generate a tag field according to the maschine library tags (ie.e): TYPES - The library remained completly uninterested in the (inside) tags.

    No, not "now"... Since forever. You're mixing things... where did you add those tags in? Maschine's way of storing metadata is proprietary, it's not supposed to be read by any other application other than itself. No one other than NI has any interest in reading it's very especific browser tags, that might even be illegal (?).

    WAV Loop points for example are indeed read by Maschine's Sampler for example, with the ACID standard if I am not mistaken.

  • JesterMgee
    JesterMgee Member Posts: 2,533 Expert
    edited January 2022

    ^^ covered pretty well there I think, way more in-depth than anyone else would bother (me included)

    So Maschine uses its own format in the data chunk which stands to reason as it's not storing data that really conforms to steinbergs iXML format. But another thing to note is that MULTIPLE chunks can be stored in there so you can have Maschine data, iXML, iD3 and even jpg data all up in that junk.

    Only the program designed to read the data will show it, but again as shown you can use a hex editor (or just notepad reading raw) to see the data within.

    WAV Loop points for example are indeed read by Maschine's Sampler for example, with the ACID standard if I am not mistaken.

    If a DAW is anyway decent it should read standard cue/loop points. I have never tested with Maschine but every other DAW reads embedded loop points I have tested (Reaper, Pro Tools, Ableton, Cubase, Wavelab). There are, however, different cue/loop markers available which are not all readable by every DAW.

    Generic Markers are most common, these are just a single starting point marker

    Loop Markers are the most common start-end point markers that determine a looping point in the file, usually only 1 is present

    Then you have a few not so common ones that some DAWs will read such as Pro Tools:

    Region Markers have a start/end point like a loop but just set the start and end of a region of audio like a punch in/out point mainly for multi-sound/take single files

    Then there are things like temp, exclusion, error markers which are basically the same as region/generic just different labels for editors.

  • D-One
    D-One Moderator Posts: 2,811 mod
    edited January 2022

    BTW, I do appreciate the effort put in this guide tho, I applaud that, it's a great positive initiative but unfortunately it turns out you're basically hacking paths that can be changed in the preferences. I guess it could still be a valid option for someone who has a huge amount of custom paths/libs.

    Pretty much. If Maschine preserves other's metadata when writing it's own IDK tho, I never tested it but in these things I tend t assume the worst.

  • JesterMgee
    JesterMgee Member Posts: 2,533 Expert

    Pretty much. If Maschine preserves other's metadata when writing it's own IDK tho, I never tested it but in these things I tend t assume the worst.

    Jeez you would want to hope so. I know it is possible to make a separate chunk for different data so should be no need to overwrite anything, I don't use any sampled of my own in Maschine nor would I risk tagging anything in there , if I were to test I would do it on a test library of files first.

Back To Top