Giter VIP home page Giter VIP logo

Comments (6)

sevagh avatar sevagh commented on May 27, 2024

Where did you have difficulty? Installing dependencies? https://github.com/sevagh/pitch-detection#build-and-install

from pitch-detection.

apatait avatar apatait commented on May 27, 2024

I agree with liuruyi1991. The dependencies are too complex and impossible to build. I am on Windows environment and ffts does not have any Windows build script.

I want to include pitch-detection in my Android project, which I am developing using Android Studio on Windows. So the only option is to include the sources of pitch-detection and ffts manually to my native library of Android project. I did that and it resulted in so many errors, that I am about to give up after spending 8-9 hours on it.

ffts build has too many configurations, with an extremely complex CMakeFiles.txt, which I can't understand. I have no idea how to configure my own native CMakeFiles.txt based on that. I know it's not your (pitch-detection) problem, but realize that it still makes your library pitch-detection unusable.

The second dependency is mlpack in your code. I have no idea what it is. If it's Google's ML toolkit, why is it included in the main source files? That is also throwing compilations errors, and I have no idea how to fix it.

If you have a cleaner solution without all these dependencies, please let me know. Otherwise, I am about to give up.

from pitch-detection.

sevagh avatar sevagh commented on May 27, 2024

Try this for a simpler Android version of the McLeod pitch method: https://github.com/sevagh/pitcha

There are native Java, and C++ NDK examples of McLeod in it.

The second dependency is mlpack in your code. I have no idea what it is. If it's Google's ML toolkit, why is it included in the main source files?

This is mlpack: https://www.mlpack.org/ - I'm not sure if it's affiliated with Google.

Probabilistic YIN and Probabilistic MPM (two pitch detection methods included in this project) use Hidden Markov Models which rely on mlpack.

This project is very Linux-centric (as are most of my projects) - I only own Linux computers, and I rely heavily on traditional Linux distribution package managers, which should contain mlpack.

ffts, in my experience, has been painless to build with CMake on Linux. From everything I've heard about C++ development on Windows, it's not as easy. However, given the licensing situation, using ffts is essential: #27 (comment)

Consider this project as an experimental/educational collection of code, and not a polished cross-platform library that you can easily drop into any project.

Those hours both of you spent on figuring out how to use this project are - although painful - beneficial to your personal knowledge and development. I'm proud of both of you, and don't give up.

from pitch-detection.

apatait avatar apatait commented on May 27, 2024

Thanks for responding. The pitcha code is useful, but itseems to depend on pitch-detection.so, which it's unable to find. Is that built using this repository?

from pitch-detection.

sevagh avatar sevagh commented on May 27, 2024

It should be built using the NDK: https://github.com/sevagh/pitcha/search?q=pitch_detection.so&unscoped_q=pitch_detection.so

Pitcha is pretty old so I don't know if the NDK method I used still works.

from pitch-detection.

mavavilj avatar mavavilj commented on May 27, 2024

I found ffts for Android. MLPack seems like it could be a very complicated port. I used to believe that one needs to design a library with platforms in mind.

Anyways, the Pyin is also as C++ library: https://github.com/xstreck1/LibPyin, but the license is GPL. This one doesn't use MLPack.

from pitch-detection.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.