[3rd Party App]NI DB Editor

Options
beatN00B
beatN00B Member Posts: 8 Member

Hello everyone !

Before getting into the technicalities I would like to introduce myself a bit :)

I 'm Alex, a tech geek who likes music and decided to get into beatmaking because call of duty these days sucks :D (no joke ! I had to do something). So here I am, watching yt tutorials, downloading guides, making my research on the available options in order to start making my first "beat" and I decide to go for a maschine mikro mkii, a m32 keyboard, an apollo sound card ( :P), pair of headsets, ableton and everything!

Long story short... we do have a small studio and we are ready to roll! The idea is to use the maschine and the keys in stand alone mode (meaning natively through the maschine 2.0 software), do most of the job there and when ready pass the "maschine scenes" to ableton for mixing... Simple as it sounds... it is not :D Specially if you might want to edit a "maschine sound" in ableton (for whatever reason) and feed it back to machine... To put it clear, imagine the maschine 2 vst functionality in ableton (or any DAW) but without using the vst... pure DAW to DAW communication! But I will leave this for another post... Lets focus on our beloved collection of sounds and expansions packs where we spend money and time on...

I do have some OCD issues, I admit it! But lets be honest... Who does not love a well organized library in machine 2? With types, attributes, characters, THUMBS and everything... I guess all of us... Then why is so hard to do it maschine? Why do I have to use a space smaller than my cellphones screen to import and organize my files? Who have thought of this in NI? There are a couple of UI / UX courses out there that you might be interested to follow... And apart from this... We come to the so called nks format! yeeees! there is a way to organize my stuff... But again... NO! you have to make a special request for the dev kit, explain who you are and what you want it for and get in so many trouble for... organizing your stuff!

Jesus NI! This is next level experience!

I spent some time reverse engineering the file structure of maschine / komplete kontrol, went through the internet for more info, came across nimbank and all... Still not a clean way to edit and organize your library...

Did my research and decided to go on my own. My current approach is to import the library paths in maschine using the standard procedure and the have a GUI editing / mass editing the library fields. Its only a few days I 've been experimenting with it but it looks promising. I m able to retrieve info from the kontakt library and edit it as required.

Am I alone on this? Has anyone done it before? I came across a thread in the forum with an app which is basically a UI for the nimbank api but that was only for MAC and you had to have a 3rd party app and blah blah... I 'm on windows. I would like something cross platform... And something that I dont have to pay 300$ to host it :)

Although I 'm on windows and the easiest way would be to go with a winform app I thought that there might be more people wanting such a tool out there... and I know that mac users are a lot in the music industry. So I 'm giving a try using python and pyQt in order to (hopefully) make it a standalone, cross-platform app :)

I would be glad to have some feedback from you, let me know how you currently deal with tagging your library and if there is interest in the "project" in general.

Personally I have not decided if I 'll make it open or under a small fee but lets hear from you first :)

Concept idea:

A simple interface where we can dig through our sound packs and easily assign attributes to them...

PS: No, there is no metadata related (into WAVs) with your sounds being imported and removed from your contact user library :)

Sorry for the long post but I thought to give it a try!

Comments

  • drewhjava
    drewhjava Member Posts: 32 Helper
    edited February 2022
    Options

    Hey, I posted in the other forum but didn't really get any interest. I ended up making it anyway and just use it for myself for now. It tags the samples automatically using the file names and a tensorflow model I trained on a bunch of data I curated from my library. It was painstaking because even though something might be labeled a clap in the file name it's not really a clap. I mainly use it to determine the difference between closed hats and open hats, as well as claps vs snares vs clap/snare.

    I'm also the creator of https://drewh.gumroad.com/l/mpc-keygroup


  • beatN00B
    beatN00B Member Posts: 8 Member
    Options

    That tensorflow thing blew my mind dude :)

    In my daily life I 'm an embedded guy thus not much into high level stuff but I always enjoy mix and match techs and fields! What framework are you using? Are you planning to make it public or to share it with someone else in order to contribute to it?

  • wetdentist
    wetdentist Member Posts: 15 Member
    Options

    best of luck on this!

  • D-One
    D-One Moderator Posts: 2,935 mod
    edited February 2022
    Options

    Holy cow... If it either does what NimBank does but with a user-friendly GUI I am totally interested, sign me up if any of you guys need testers.

    Auto-detection via tensor flow is a whole other level, very interesting... Like a simplified version of XLN Audio's XO? It detects what the one-shots are and applies tags? Sheesh... that's bonkers!!! 😱

    If people don't show interest it's because they aren't understanding the potential and how all of this relates to creating custom expansions from your own kits, or kits downloaded from elsewhere, even for sound-design content creators this is a life-saver. The sample-pack market is gigantic yet it's totally detached from the Maschine universe.

  • JesterMgee
    JesterMgee Member Posts: 2,633 Expert
    Options

    Are you direct editing files of the database file?

    Maschine/Komplete database is just an SQLite database so really easy to edit however edits you make in it are obviously not written to files and if you do a full library rescan, all your edits will be lost so it is not recommended to edit the db file directly if that is what you are doing since at some point you may loose everything.

  • beatN00B
    beatN00B Member Posts: 8 Member
    Options

    You are right about the sqlite database but I disagree with the "loosing everything" statement!

    To my knowledge there is no metadata written to our WAV files. The trick is to import your folders through maschine / kontakt in first place! Doing so all relationships in the db are made from NI and from there on we can manipulate the data as in any db! That is all :) At least till now, I have failed to break the db :)

    @D-One Tensorflow approach to recognize sounds, instruments, (emotions ?) and tagging your library is a whole next level. I would give it a try as soon as I finish with the db editor and see with what I can come up with! Surely we need some proper training sets and a solid strategy in order to get good results. As soon as I have some progress on the editor I can definitely forward a copy to you :) None the less, I need to verify that it runs under mac!

  • JesterMgee
    JesterMgee Member Posts: 2,633 Expert
    Options

    To my knowledge there is no metadata written to our WAV files. The trick is to import your folders through maschine / kontakt in first place! Doing so all relationships in the db are made from NI and from there on we can manipulate the data as in any db! That is all :) At least till now, I have failed to break the db :)

    There is actually, I believe it is injected in a proprietary NI data block in the header of the file. We were discussing this very thing a few days ago in another thread, @D-One posted an example of what is injected in wav files that you can see if you view in a hex editor (or just notepad++)

    And you certainly can loose data in the database if file dates change, paths change or a forced full scan is done.

    If the db edit thing works for you then all good, just advising the database file is not a reliable way to edit metadata as it is not synched with files data. NI should really adopt the iXML standard for Wav files so other editors out there can be used to better manage the files metadata.

  • drewhjava
    drewhjava Member Posts: 32 Helper
    edited February 2022
    Options

    Haha awesome. Yea I originally started then gave up on it since I was thinking the name of the files could work ok. Then I realized I needed it to at least determine open hat vs closed hat because naming isn't very consistent. Then decided to do a generic drum classifier.

    My daily I'm Rails/React. Been in development professionally since 2008. I've been making these programs with Electron(sadly haha) and React. I tried QT and Flutter but just Electron is just easier. The only downside is the executable is huge. I have to ship binary for FFmpeg, TensorFlow and the model so even if I shipped a smaller application it would still be pretty large :\


    No, I write to the wav files themselves in the custom ID3 metadata header

  • D-One
    D-One Moderator Posts: 2,935 mod
    edited February 2022
    Options

    @beatN00B said:

    To my knowledge there is no metadata written to our WAV files.

    Writing the data to the files is mandatory IMO. AFAIK it's as Jester said, a bunch of things can cause the .db to go bye-bye.

    More details here in my comments: https://community.native-instruments.com/discussion/509/how-to-move-samples-to-another-folder-hard-drive-without-retagging-the-library


    I've seen some projects using this lib to detect what audio is quite successfully: https://github.com/aubio/aubio ; might be worth taking a look at, or not, I'm not a dev just a curious fool. 😁

    What is stopping you from sharing/selling your project? Just the app size due to the bundled stuff? How large are we talking here? 500mb? or 5GB? I feel like you should have your own thread about this if you're considering sharing/selling it.

    Note 3rd party commercial products might require approval here in the forum, not 100% sure how this works yet.

Back To Top