Keeping it Open: Rethinking Open Source Part 2

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.



Facebook Comments

Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments
Would love your thoughts, please comment.x