ibsh / is_keyfinder Goto Github PK
View Code? Open in Web Editor NEWMusical key detection software for digital DJs, for Mac OSX and Windows, released under GPL v3
Home Page: www.ibrahimshaath.co.uk/keyfinder
Musical key detection software for digital DJs, for Mac OSX and Windows, released under GPL v3
Home Page: www.ibrahimshaath.co.uk/keyfinder
KeyFinder is a tool for estimating the musical key of digital recordings, to aid DJs in harmonic mixing. It's primarily developed as Mac software but I try to maintain compatibility with Windows. Some users have reported success in building for Linux. KeyFinder began as my final project submission during an MSc in Computer Science at Birkbeck, University of London. My project report, which documents its algorithms in detail, is available along with a binary download at www.ibrahimshaath.co.uk/keyfinder Localisations are hosted at https://www.transifex.com/projects/p/is_keyfinder/ KeyFinder copyright 2011-2013 Ibrahim Sha'ath
https://qt-project.org/forums/viewthread/14848/
Very inconsistent. Overcome with XQilla for now but very slow. Fix whenever possible.
Maybe as a secondary function of the Run button, or maybe not.
This one leads to a crash.
QWidget::repaint: Recursive repaint detected
The bizarre thing is I'm not manually calling repaint. Ever. So this will be hard to fix I guess.
And I have no idea why not.
Keyfinder crashes when trying to move more than one file (at the same time or one after another) into the gui, literal translation in braces
Problemsignatur:
Problemereignisname (name of the problem): APPCRASH
Anwendungsname (name of the app): KeyFinder.exe
Anwendungsversion (version of the app): 0.0.0.0
Anwendungszeitstempel (time stamp of the app): 4ead85b5
Fehlermodulname (name of the crashing module): QtGui4.dll
Fehlermodulversion (version of the crashing module): 4.7.4.0
Fehlermodulzeitstempel (time code of the crashing module: 4e5523d2
Ausnahmecode (exception code): c0000005
Ausnahmeoffset (exception offset): 001a7813
Betriebsystemversion (version of the os): 6.1.7601.2.1.0.768.3
Gebietsschema-ID (country id?): 1031
Zusatzinformation/additional information 1: 0a9e
Zusatzinformation/additional information 2: 0a9e372d3b4ad19135b953a78882e789
Zusatzinformation/additional information 3: 0a9e
Zusatzinformation/additional information 4: 0a9e372d3b4ad19135b953a78882e789
Hope that helps, thanks a lot though! This app is awesome!
Affected Version: KeyFinder v1.1.9 (Windows).
# breakme@dev2 (~/brokenfiles): mp4file --list *.mp4 BRAND COMPAT SIZING FILE ---------------------------------------------------------------------- mp42 isom,mp42 32-bit 2LC-FDAU-dirty.mp4 isom isom 32-bit JessM-PixPeep.mp4 isom mp41 32-bit LosRab-Tengo.mp4 isom mp41 32-bit LuisM-Y.mp4
Note: the file names above are links to the actual files, which you may use to test. Files with <mp42|isom> flags have no apparent issues in KeyFinder and are only included for comparison purposes.
To Reproduce:
Result: There is no error reported by is_KeyFinder and key analysis will be performed correctly. However, tag metadata will be completely removed from those files.
Mp3tag (Windows) does read/write tags to these files successfully. Editing the properties using Windows Explorer built-in functions also works properly.
The files in question play properly with Windows Media Player 12 (and of course, VLC).
Probably due to the move from char to enum. Check this doesn't occur anywhere else in prefs.
Not totally simple. Could just skip over any file where chosen field has data, but that's not very smart.
With appropriate key on Mac and Win.
Energy levels reported by the Goertzel spectral analyser are inconsistent; a new normalising function is required. Reread information on Goertzel gain profiles.
Crashing on avcodec_decode_audio3 (decoderlibav.cpp:143), but no exception is being thrown so it's hard to fail gracefully.
Truncate to 3 chars since that's the specified limit.
In decoderlibav.cpp:
Line 52: if(av_find_stream_info(fCtx) < 0){
av_find_stream_info is deprecated, should be replaced by avformat_find_stream_info(fCtx,NULL)
In main.cpp:
Line 104: avcodec_init();
avcodec_init() is deprecated (now part of avregister function)
Maybe. M3U may be enough and I imagine the iTunes schema changes from time to time.
Immediately obvious if you do a detailed analysis of one
First off, Sweet stuff! Do you have a donation link anywhere? I'd like to throw some money your way as this is simple and wonderfully built software. I'm a huge automation freak and I'd love to set up a script to run batch analysis of a directory. Do you have any plans to incorporate something like this?
Hi, first of all thank you for making this excellent application and making it open source.
There is a problem reading Tags on filenames which is japanese (or non ascii)
It still could run analysis on them fine, So I believe the problem is that you converted the filename to ascii while you are calling Taglib, so it's an invalid path on those with non-ascii filenames.
I understand windows version is considered beta, but would really like to see this app become stable. It would be a major timesaver for mp4 video tagging. Let me know if you need help testing.
This happens with every mp4 video that I try to analyze:
Faulting application name: KeyFinder.exe, version: 0.0.0.0, time stamp: 0x4efe26af
Faulting module name: avcodec-53.dll, version: 0.0.0.0, time stamp: 0x4e873c4b
Exception code: 0xc0000005
Fault offset: 0x003bb9b7
Faulting process id: 0x2388
Faulting application start time: 0x01cce1420a5677cf
Faulting application path: C:\Program Files (x86)\KeyFinder-WIN\KeyFinder.exe
Faulting module path: C:\Program Files (x86)\KeyFinder-WIN\avcodec-53.dll
Report Id: 58d1af98-4d35-11e1-a43a-00248caf3eaf
I have installed the missing deps listed on your wiki.
machine specs: Core i7 975x @3.33, Win7 (x64) sp1, 12gb ddr3 1666, nvidia gtx 285, asus p6t.
Also, Is there a live binary snapshot at all for windows version?
Not much info on this. Assuming Windows.
As per report from Skitz at http://serato.com/forum/discussion/526065#5846925. Confirmed with his m4p file.
First idea is to return to QtConcurrent.
If I collect the various results of an analysis into a single result set object (a bunch of it could be null for a batch job) that takes care of the current signals implementation.
I can then use mapped to iterate over a container (QStringList of url strings? or just QList of QUrls?), returning this resultset, assuming that the QFuture it returns is cancellable. Otherwise not much good for batch jobs.
All of this will need measuring for CPU load and time taken. Start a branch for it and see how it goes.
App output sometimes inclues:
QObject::startTimer: timers cannot be started from another thread
when files are dragged onto window. Must be something to do with QtConcurrent tag reader. Maybe I should refactor that.
I need to get access to at least a Win7 instance, if not Vista too.
FAQ has details of known missing libraries.
Probably pretty straightforward, if the Library XML coughs them up. Start with hardcoded default paths for Mac and Win but allow the user to specify a different library (in a new Preferences tab?).
Other questions:
As per analysis.
File location?
Debug handler?
TagLib WIN32 doesn't expose File.name as a string, makes qDebug a pain at present; find an alternate.
Presumably front or back, and skipping if there's already a key there.
Sort columns?
Drag columns around?
Remember column widths?
Some code already for this on local but hadn't raised an issue
TagLib's default behaviour disagrees with Traktor and Media Rage. Fix.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.