New open source key detection tool

Home :: General Discussion :: New open source key detection toolReply
New open source key detection tool
Posted on: 30.09.2011 by Kari Spindel
Hey all,

I just finished a computer science course and built a key detection tool for DJs as my final project. The tool is called KeyFinder. It's designed to work primarily with EDM, but it's highly tweakable and I've had decent results with various genres.

In addition to a batch key detection interface which can write to metadata tags, it includes a musical visualisation tool called a chromagram. I've found this quite useful for visualising chord structures, melodies and key changes, and I believe it's pretty unique in the DJ software world; I haven't seen any other tools that have something similar.

I got good accuracy during my experiments but unfortunately I didn't test it on a wide selection of music. I had very little time and had to key it all manually and then get the results verified. It would be great to improve KeyFinder to work on a wide variety of genres.

So I'm releasing it for free under the GPL, in the hope the community finds it useful. It's a bit primitive, and for Mac only at present, but it should be pretty simple to port to Windows if there's interest.

If you want to try it you can download a Mac binary here. My write-up which describes the algorithms is also there if you're into that kind of thing. If anyone has any interest in working on it, or any comments or questions, feel free to get in touch here or using the email address on that page.

Cheers
Brunilda Kora
12.09.2013
No,

But, the truth is, if you cannot tell if 2 tracks are key clashing using your ears, does it mater if the software you use isn't 100% accurate anyway?
Season Bergere
12.09.2013
Thanks for the free program. I tried it and it works fine as far as I can tell.

My question is how accurate is it compared to other programs, I checked your http://ibrahimshaath.co.uk/keyfinder/comparison.pdf but I don't understand the comparison test.

Is there any program that will get it 100% right all the time (not saying yours doesn't)?
Random X
11.09.2013
Ooh yeah!
Latoria Kavulich
10.09.2013
30 tracks in 5 mins. Boom
Random X
09.09.2013
Originally Posted by Jester
sweet. thanks
I'm with him.
Latoria Kavulich
09.09.2013
sweet. thanks
Kari Spindel
04.09.2013
New version 1.24 is up

It fixes a tagging crash on WAV files, adds a load of tests for tagging so fewer issues should appear in future, and includes some new localisations.

Enjoy!
Kari Spindel
06.08.2013
Version 1.23 is up.

It includes the option to filter batch jobs by file extension, which has been requested a few times. It also fixes a few tagging bugs.

Enjoy.
Isa Erik
21.07.2013
Originally Posted by ibsh
slayformoney:
I just fixed this language issue on Mac but Windows is less flexible. Can you let me know how all your language/location stuff is set up in Windows? Are your language and localisation settings consistent?
Yes, my language setting are to "blame" but I wanted to say that it would be nice if KeyFinder would have a manual language selection option. Deleting unecessary language files was just a shortcut for me
Kari Spindel
20.07.2013
Hey all, version 1.22 is up.

It includes a fix for a fairly serious batch crash (sorry about that one), improved behaviour for Serato libraries on secondary Mac volumes, and some UI bugs. Also, Mac localisations now obey the Language settings as opposed to Region.

I'm afraid I missed all the messages here since last week; DJTT seems to have stopped notifying me of new posts. So, a quick set of responses:

xerorane:
I'm not going to be supporting Mavericks until after launch, sorry. If you can't donate via the Paypal button on the site, you could consider buying some music at the bandcamp site in my sig.

niknok:
1: you're welcome.
2: it works here; have you tried right-clicking and using the option from the context menu?
3: that's fixed in this release.

slayformoney:
I just fixed this language issue on Mac but Windows is less flexible. Can you let me know how all your language/location stuff is set up in Windows? Are your language and localisation settings consistent?
Latoria Kavulich
19.07.2013
1.21 working perfect here mate.
Isa Erik
17.07.2013
tried 1.21 on winXP SP3 - works with no problem, loads faster

had a problem with language (don't like using my native language on PC) so I had no other option but to delete all language files but the ENG one
Pierre Massner
17.07.2013
If you have a Japan Paypal acct you can't donate..go figure...look at the reply my comment on the same problem above and you can buy something from Bandcamp instead.

3 things with new version 1.21

1. append key to track title tag - already! thank you so much!
2. select a track in KF and hit delete/backspace doesn't seem to delete rfom the list
3. dropping folders onto KF seems to work but if there's anything other than audio files in the folder KF crashes when I hit run batch analysis.

OSX 10.6.8

thanks again Ib
Mozella Valinski
15.07.2013
also where can I donate?
Mozella Valinski
15.07.2013
Hello I decided to be an early adopter to OSX mavericks now i'm having an issue when launching Keyfinder 1.21 it automatically crashes I also have v1.16 that runs fine but when I try to go onto Preferences nothing happens I can't edit any information for Keyfinder. Just wanted to give you a heads up.
Process: KeyFinder [8245]
Path: /Applications/KeyFinder 1.21.app/Contents/MacOS/KeyFinder
Identifier: com.yourcompany.KeyFinder
Version: ???
Code Type: X86-64 (Native)
Parent Process: launchd [323]
Responsible: KeyFinder [8245]
User ID: 501

Date/Time: 2013-07-15 17:36:47.431 +0900
OS Version: Mac OS X 10.9 (13A510d)
Report Version: 11
Anonymous UUID: C74AD602-AC58-50C5-73A9-5183F9A0E417

Sleep/Wake UUID: E4325257-9C93-48A4-89B0-E5B18E2F91A9

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00007fff5f3ffff8

VM Regions Near 0x7fff5f3ffff8:
CG shared images 00000001c2347000-00000001c234f000 [ 32K] r--/r-- SM=SHM
--> STACK GUARD 00007fff5bc00000-00007fff5f400000 [ 56.0M] ---/rwx SM=NUL stack guard for thread 0
Stack 00007fff5f400000-00007fff5fc00000 [ 8192K] rw-/rwx SM=COW thread 0
Kari Spindel
14.07.2013
v1.21 is up

It fixes a few memory leaks, and a bug with the cmd+comma sequence on Mac localisations.
Everything else is background stuff to make my life easier, and will hopefully lead to fewer bugs in the future =)
Kari Spindel
06.07.2013
KeyFinder 1.20 is now available.

This version allows you to write to the Title, Artist and Album tags, which has often been requested, though I do not know why =)
It also fixes the frame rate exception with video files, and should no longer corrupt mp4 tags.
Kari Spindel
05.07.2013
Originally Posted by Jester
New windows version working flawlessly on Win 7 x64 Ibsh. Cheers
Wicked news. You're welcome.
Latoria Kavulich
05.07.2013
New windows version working flawlessly on Win 7 x64 Ibsh. Cheers
Kari Spindel
05.07.2013
Anyone who had an immediate crash from yesterday's Windows build, please try downloading again, I've added some missed dependencies to the package. Works on all my Windows boxes now.
Latoria Kavulich
04.07.2013
Sweet! will do some testing and get back to you for the windows version
Kari Spindel
03.07.2013
Right, here are two things I didn't expect to be saying quite so soon:

* KeyFinder 1.19 is now available. It's just a patch release, I found a weird bug with certain decoders.

* After many, many hours of poking and prodding, it's available for Windows, sort of. As always, I can't guarantee complete compatibility, or even that it'll work on your machine. It doesn't work on my old XP laptop. But hopefully it's better than nothing; give it a try and see how you get on.
Kari Spindel
03.07.2013
Thanks man, much appreciated
Pierre Massner
02.07.2013
Thanks, O Fortuna bought just now.
Kari Spindel
02.07.2013
Originally Posted by niknok
Key tags in flacs - fantastic! That's one less process to my process.
Thanks so much always for your work, very much appreciate your way of doing things....I just tried donating again but PPal doesn't support donations from Japan...wtf?
Anyways, not for want of trying and of course purely personally motivated, one relatively straightforward feature I'd love to see would be the ability to append key info to the end of the track name tag rather than only the file name and key tag, reason being that in Traktor I always look at the track name for key info on current playing track before using the key tag column in the browser for possible next tracks - the current track is always in a fixed location so having current key there is a great help. Another advantage is that when converting files to use in another format/app ie Djay on the iPad, as there's no key tag available there that I currently know of, so having it simply appended to the track name would be a great start, even if track lists aren't searchable by tag.
Make sense? Thanks again and if there's a way I can donate I will.
That's a reasonable feature; I'll put it on the backlog.

In the meantime you should check out your deck display settings in Traktor; if you put whatever key field you're currently using in the top row, it will be visible no matter how tiny you make the deck display.

If you have more trouble with Paypal (weird huh?) and feel like donating, you could buy some of my production duo's tunes, if you're into UK drum and bass. Here and here.
Pierre Massner
01.07.2013
Key tags in flacs - fantastic! That's one less process to my process.
Thanks so much always for your work, very much appreciate your way of doing things....I just tried donating again but PPal doesn't support donations from Japan...wtf?
Anyways, not for want of trying and of course purely personally motivated, one relatively straightforward feature I'd love to see would be the ability to append key info to the end of the track name tag rather than only the file name and key tag, reason being that in Traktor I always look at the track name for key info on current playing track before using the key tag column in the browser for possible next tracks - the current track is always in a fixed location so having current key there is a great help. Another advantage is that when converting files to use in another format/app ie Djay on the iPad, as there's no key tag available there that I currently know of, so having it simply appended to the track name would be a great start, even if track lists aren't searchable by tag.
Make sense? Thanks again and if there's a way I can donate I will.
Latoria Kavulich
29.06.2013
Dang. Gotta admit, kinda gutted there are no plans to continue the windows versions, been using this since you released it and been very happy with it. Still, at least 1.17 works perfectly for me
Isa Erik
29.06.2013
glad to hear that
Kari Spindel
29.06.2013
Hey hey. Very sorry for the long silence, but the new version 1.18 is now available, for Mac only.

This includes:
* a slightly faster analysis process, with a much, much smaller memory footprint; it should be easier to run KF alongside other apps now (although it's still very CPU intensive, obviously)
* a hack for the key tag in FLAC files, using the de facto standard among DJ apps
* the preservation of ID3 v2.3 tags, rather than automatically upgrading them to v2.4
* lots of new localisations
* a load of bug fixes and minor new features.

The delay has been largely due to my working with a DJ software house to integrate the KeyFinder algorithm into their packages. The upside of this means that all the improvements I've made for them get passed on to you!

Also... this release is not for Windows. I still haven't got the time or the interest to do the Windows work, so it may be a long time coming unless a Windows dev steps up to help out. Sorry about that.

All intelligent feedback gratefully received.
Alfreda Muenster
01.06.2013
Just installed this on Windows 8, 64-bit, can't drag and drop audio files into window for analysis? Is there a write up for a how to use guide?
Dani Gutsche
22.05.2013
Likewise, thanks!
Valentina Joline
04.04.2013
Awesome, was very helpfull for me!

cheers
Rolando Chriss
15.03.2013
Hi guys,
I did this little translation of the key codes for Keyfinder, so you can use the famous Camelot Key codes from other key detection softwares to match your songs!
Hope can be useful, bye

keyfinder.JPG
Kari Spindel
27.02.2013
Originally Posted by Eric Zone
Just wanted to say that this program is awesome and I love every single point of it. It's easy to use, it reads the tags perfectly and best of all, it's free. It's much better in my opinion than the Rapid Evolution and a few programs I tested before them. I use it all the time, but I'm not sure will I use it when I get a hold of Traktor 2.6.1 version. Anyway, if you need some help with coding it, I'm your guy! Hit me up at [email protected] and I'll be honored to help you out or be a tester or something (I'm a Windows user, I have Windows 7 x64 Ultimate version on a laptop, Windows XP x86 Service Pack 3 on my desktop and I have Ubuntu 12 installed on my desktop as well but I don't use it frequently).

Pretty good with Visual Basic, Delphi and HTML/CSS/PHP (in case you need some fancy website or something). Also pretty good with Pascal and Basic, but that won't be very useful to you I guess. Solid in C and C++ programming.
EDIT: just re-read and caught your address. Will be in touch.
Percy Delcolle
27.02.2013
Just wanted to say that this program is awesome and I love every single point of it. It's easy to use, it reads the tags perfectly and best of all, it's free. It's much better in my opinion than the Rapid Evolution and a few programs I tested before them. I use it all the time, but I'm not sure will I use it when I get a hold of Traktor 2.6.1 version. Anyway, if you need some help with coding it, I'm your guy! Hit me up at [email protected] and I'll be honored to help you out or be a tester or something (I'm a Windows user, I have Windows 7 x64 Ultimate version on a laptop, Windows XP x86 Service Pack 3 on my desktop and I have Ubuntu 12 installed on my desktop as well but I don't use it frequently).

Pretty good with Visual Basic, Delphi and HTML/CSS/PHP (in case you need some fancy website or something). Also pretty good with Pascal and Basic, but that won't be very useful to you I guess. Solid in C and C++ programming.
Kari Spindel
27.02.2013
Originally Posted by SlayForMoney
any luck on fixing that bug that deletes the year field in ID3 v.2 when writing the key in comment field?
Not specifically, cos I couldn't recreate it. But I've made some changes to the handling of ID3 tags so, with any luck, it might get better as a side effect =)
Isa Erik
27.02.2013
Originally Posted by ibsh
Several bug fixes, some improvements for building on Linux, a hack for MP3s that get bad duration estimates, some other tagging stuff for ID3 v2.3 (primarily for Windows users, since they still can't see v2.4), and a few more interface translations. Plus some minor alterations to the core algorithm. Most of my work over the past few months has been invisible to the user; just improving the engineering of the core library really.

I'm toying with hiding the advanced preferences screen too. And I'm starting with a new Windows build box, so with any luck I'll start seeing some of the bugs people are reporting there.
any luck on fixing that bug that deletes the year field in ID3 v.2 when writing the key in comment field?
Kari Spindel
27.02.2013
Originally Posted by LocoFreek25
What else are you looking at including in the next release?
Several bug fixes, some improvements for building on Linux, a hack for MP3s that get bad duration estimates, some other tagging stuff for ID3 v2.3 (primarily for Windows users, since they still can't see v2.4), and a few more interface translations. Plus some minor alterations to the core algorithm. Most of my work over the past few months has been invisible to the user; just improving the engineering of the core library really.

I'm toying with hiding the advanced preferences screen too. And I'm starting with a new Windows build box, so with any luck I'll start seeing some of the bugs people are reporting there.
Vinnie Mantei
26.02.2013
Originally Posted by ibsh
There's no standard way of logging key to FLAC tags, but there is a de facto standard (that is to say, a hack) which will be available in the next version of KF.
That is great news. I use foobar2000 to pull the key out of the comment and into the INITIALKEY for all my flacs. Booting up a windows VM just to do that gets a little old.

What else are you looking at including in the next release?
Kari Spindel
23.02.2013
Originally Posted by niknok
Pretty much had enough of MIK's ...offensive online-only operation as well as a few other things and looking at other options and came across Keyfinder...fantastic! Good work sir! One question, processing flacs doesn't seem to write to the key tag, is this because flac doesn't have a native key tag? No way to implement in KF even by doing semi manually in KF? A little research suggests no key tags in flac....maybe I'll just prepend them all to comments then batch write them to the key field as and when.

Thanks again, look forward to donating if/when I get an MIK refund
There's no standard way of logging key to FLAC tags, but there is a de facto standard (that is to say, a hack) which will be available in the next version of KF. Don't know when it'll be released yet, I'm afraid.

Good luck with chasing that refund =)

<< Back to General DiscussionReply

Copyright 2012-2023
DJRANKINGS.ORG n.g.o.
Chuo-ku, Osaka, Japan

Created by Ajaxel CMS

Terms & Privacy