Hi,
I’m really enjoying exploring this incredible tool – thank you! I noticed it ended with a question that sparked my interest: given that there is already a CLI, I was wondering if a library or shared library using the same algorithms would be feasible.
Found this post (Using FluCoMa Core with JUCE, iPlug2 etc - #2 by weefuzzy) from 2 years ago, but I haven’t found much other information…
Upon reviewing the sources, the compilation structure appears to be relatively complex, and I’m curious about the potential challenges. What would be the main bottlenecks or questions to consider when creating (well, try to create, probably) such a library?
Do you recommend any path to understand better the code structure (I see I really need to understand better some CMake related concepts, like header-only libs).
Thanks!
Hi @zepadovani
Thanks for the kind words. Not much has changed since that post, although there is another example in the examples folder now.
In principle, the algorithms plus a small amount of supporting machinery are meant to be able to operate as their own header-only library, albeit not self-contained because there are a couple of dependencies, like EIgen.
There is some very high level documentation, aimed more at helping people who are developing new ‘clients’ (i.e. objects for Max/PD/SC): Navigating FluCoMa’s Code — FluCoMa Developer documentation. But it does help demystify the CMake a bit. The include folders algorithms/public
and data
should be regarded as the public interface.
The very short answer is that, if you have a project that’s already using CMake, then pulling in flucoma-core
using CMake should probably Just Work, in terms of automatically downloading dependencies and allowing you include the headers and get going. It’s by no means impossible to do it without CMake, but definitely more work (and CMake is certainly worth the time to learn, IMO)