Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split acoustid_compare.c into PostgreSQL + non-PostgreSQL portions #1

Open
genotrance opened this issue Sep 29, 2017 · 5 comments
Open

Comments

@genotrance
Copy link

I'm leveraging the match_fingerprintsX() algorithms in my project and have to currently comment out the PostgreSQL specific code in order to build. It would be much better to split out the code into two chunks such that you can continue to build your project per usual while simultaneously allowing projects like mine to simply checkout your code and only include the non-PostgreSQL content to do the comparison.

I can submit a pull request if you are interested.

As an aside, my project autodup is to find duplicate files and I've been able to leverage fpcalc (standalone binary) along with the code in this repo to compare audio files successfully.

@lalinsky
Copy link
Member

The reason why I never made a standalone library for matching audio fingerprint is that I was never happy with any matching function. I have been working on many prototypes in Python over the last years, had some good results, but never finished any of them.

Here is the latest approach that I'm mostly happy with:

https://github.com/acoustid/notebooks/blob/master/fingerprint-matching.ipynb

And one of the most recent versions I have implemented in C++ is this:

https://github.com/acoustid/chromaprint/blob/master/src/fingerprint_matcher.cpp

On the other hand, if you are fine with the matching this C code does, feel free to create the pull request.

@genotrance
Copy link
Author

Thanks for the info. Is the C++ version an implementation of the approach documented in the iPython notebook?

I'll try to get the C++ version working within Nim.

@lalinsky
Copy link
Member

lalinsky commented Oct 1, 2017

More or less, but note that the code does not give a yes/no answer to whether two fingerprints are the same. You get a list of matching segments with scores and need to make a decision based on that. The last missing piece is to learn a decision tree or something like that to take the matching segments and make the yes/no decision.

@genotrance
Copy link
Author

In that case, it might be better to rely on the C version for the near term. Once you have the missing piece, I can move over to using this instead.

Now I'm on the fence on whether I should submit a pull for this enhancement. If this missing piece isn't coming out anytime soon, I can work on it. If not, I'd rather wait it out. Please let me know how it looks from your end.

@lalinsky
Copy link
Member

lalinsky commented Oct 2, 2017

I have no real plans to work on this in the near future. So if you are fine with the C version, I'd suggest to use that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants