2021 is a year of rethinking. In March, this year, I thought about closing the source code of some of my Open-Source libraries in the first “Rethinking Open Source” post. Now, I think it is a mistake. At the very least, the pitch-detection code should remain open. And indeed, while I said that the pitch-detection source code will be closed by mid-April, it never happened. It is my gift to the world, and it shall remain open.
One rationale for closing the project is, quoting my previous post: “My code is heavily tuned for a very specific purpose: the multichannel guitar, and I no longer have time to provide support for other use-cases.” But that is not necessarily a problem if there’s a community behind it, as most of my previous Open-Source projects had. So, this month, I am reaching out to interested parties in the hope of starting a small group with interest in the libraries and willing to collaborate in further development. If you are interested, email me, or send me a message via Discord or Facebook, and let’s work something out.
I’ll need help in a couple of areas. One is documentation. I value good documentation and I am sorely lagging! Another is testing. I have a good set of tests, but you just can’t have enough tests! And, as I said, my tests are limited to the multichannel guitar. I’d love to go beyond that.
Of course, I also welcome additional hands willing to do some coding. For example, it came to my attention that the pitch-detection code is not performant enough on small microcontrollers because it requires a CPU intrinsic function (__builtin_popcount) that is only available on more advanced architectures, and implementing the intrinsic function in straight C++ is much slower. I do have a newer pitch-detection algorithm that is potentially more performant and does not require such special code. Right now, I have the new pitch-detection code in a private repository, including an excellent algorithm for onset detection, and cool things like cross-talk elimination. I’d gladly share the code to a small group of people willing to contribute back some time to further develop the code, as well as testing and of course, documentation.
If there’s sufficient interest, and if a small community forms, I can probably be swayed to open the code. Tell me what you think! Let’s see how it goes. Consider this a trial balloon.