FluCoMa
Fluid Corpus Manipulation: SuperCollider Objects Library
This repository hosts code for generating the SC objects and documentation resources for the Fluid Corpus Manipulation Project. Much of the actual code that does the exciting stuff lives in this repository's principal dependency, the Fluid Corpus Manipulation Library.
You can also download the most recent release or the most recent nightly build.
Note that on macOS you may need to dequarantine the binary files.
Pre-requisites
- C++17 compliant compiler (clang, GCC or MSVC)
- cmake
- make (or Ninja or XCode or VisualStudio)
- git
- an internet connection
- SuperCollider Source Code
CMake will automatically download the other dependencies needed
bash
mkdir -p build && cd build
cmake -DSC_PATH=</path/to/sc> ..
make install
This will assemble a clean package in release-packaging/FluidCorpusManipulation.
An alternative to setting up / running CMake directly on the command line is to install the CMake GUI, or use to use the curses GUI ccmake.
Also, with CMake you have a choice of which build system you use.
- The default on macOS and Linux is
Unix Makefiles. On macOS you can also use Xcode by passing-GXcodeto CMake when you first run it. - The default on Windows is the latest version of Visual Studio installed. However, Visual Studio can open CMake files directly as projects, which has some upsides. When used this way, CMake variables have to be set via a JSON file that MSVC will use to configure CMake.
The DOCS option
The CMake option DOCS controls whether or not to generate the documentation for the FluCoMa objects. It is on by default. However, building the documentation is slightly involved and requires that you have a working Python 3 installation, among other things (see https://github.com/flucoma/flucoma-docs).
If you just want some binaries, it could be simpler to disable this and just take some documentation from a release download:
bash
mkdir -p build && cd build
cmake -DSC_PATH=</path/to/sc> -DDOCS=OFF ..
make install
Using Manual Dependencies
In some cases you may want to use your own copies of the required libraries. Unless specified, the build system will download these automatically. To bypass this behaviour, use the following cache variables:
FLUID_PATH: location of the Fluid Corpus Manipulation LibraryFLUID_DOCS_PATH: location offluid-docsrepository (e.g. for debugging documentation generation)EIGEN_PATHlocation of the Eigen libraryHISS_PATHlocation of the HISSTools library
For example, use this to us your own copy of the Fluid Corpus Manipulation Library:
cmake -DSC_PATH=<location of your SC source> -DFLUID_PATH=<location of Fluid Corpus Manipulation Library> ..
To find out which branches / tags / commits of these we use, look in the top level CMakeLists.txt of the Fluid Corpus Manipulation Library for the FetchContent_Declare statements for each dependency.
Compiling for different CPUs
The build system generally assumes an x86/x64 cpu with SSE instructions or Apple Silicon. To build on another kind of CPU (e.g. older than 2012) you can use the FLUID_ARCH cache variable to pass specific flags to your compiler. For example use -DFLUID_ARCH=-mcpu=native to optimize for your particular CPU.
For ARM, we use the following default set of flags (with the Bela in mind):
-march=armv7-a -mtune=cortex-a8 -mfloat-abi=hard -mfpu=neon
This will assemble a package in release-packaging.
Credits
FluCoMa core development team (in alphabetical order)
Owen Green, Gerard Roma, Pierre Alexandre Tremblay
Other contributors (in alphabetical order):
James Bradbury, Francesco Cameli, Alex Harker, Ted Moore
--
This project has received funding from the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation programme (grant agreement No 725899).
ba24128a0b5a4edbf3eae3c371cef72756b96a9accc42f28a05f6a8e3e5367fc261ebe8bab0e97ac25b1383749f33b7f4cb77629dce0d27e0e8e1172f788b7ad2620d80d9fd6e787e2300e7c3acaa2a834a5435159015945b4a29ab924340f8ad25c8644ef87dd873d4f63f30f37b904cf75103ef176eb8b386d174a592084416343c38670f22e6f538a557b5bb42457607590b3431421c8e1e80e132d81c209401cc00339d7a072add0293e05cec938f3cdf5f039860d14d7669d37ce4a0d0e3661f3227ecb86462ca6e583ca0766318bc710922b83bdbfc6ec5851322c4454df0c16e3b2a522e82fdf2bf88cfc807e6bd82bfe12b95261a70ef36d77274900995217ef229b46b11d7c5072b3342e6579fc428f80d674d0f171d57ef80bc569f8a049a8d554573259dda8c0aabbe2d58d123bc129dc94414bd2fef09291f6c2e5c75cf3bb636a41a4b69fef03d34ba88833b6b26cc68275a5ec36bb878c73430d917cfe1fd361df3fbe279b9b1b3af77cf29e8f0faaabab6f0e4808b9408a11e37e39f4a032fb0fad630a4bd731e55cd4648c06a142666166b0e2c16d6c80e6cc89e6868b3a78a2f9615470775d74bb9c529a2c70d37c286926dd29f1b83afb38dc4d24e6009f814bdba8a025c2c44d6591b0858b559ddb4c1112684db8933725ffc7ce3d9a3253881a1791461c35a30ed43d481bd89ac84881cdaa3e4095c9c6bc0ea230687661de6fa021e6591f776948093b1d21b525fba0de8b5bc063c6c79e8aa8f5905b4e300c9f1dadbde212f14012e486158278fbd1e0ed60f3daf80fff312ce94c9e48ecb52b87b1af779391c1fca0a93121354d8f6c543190a9f96f2569ba937cf48bd0eb1ee85706617a820efb8c5622f0ac107b6f87e54dfb1ba10c3c5db165618bfdf39da2f225476d3bd6452f1a8d5333f8cf531c8f7dc6827726b90d8209748571b53f13d44a837fccb64cffb333a372ee2f8809d4183ff4afba03378765e977be4262d8f14ba4a9590035abc9fcf1c0109805191190bc8ee6928b67e28eb3e9d9afef9b08ef9ed299b3a32f6d2ad55c353b35f3da3fb53dbc039a122ff26328f5868fa7f821f2b374851d1d81f2172fad4a88e4c92b1f0b9497dd566f6fdac54942c04392ae14b03b1b752deab93b3b838638ea59335afc07972d848c460664e4a4ce1f8402997d7e4af7c115a886a4b3d6afbfc5ae47037ee0bd6eba41ec44738b011dbcefdfc70917682a805c1a39f4bb8e86e66932bbd18386b0bde0a18a07e705887fea487180448bae4b7f54c5a529281d2abc0d998e9e73543fd4b9f13270f5f1Repository
URL
https://github.com/flucoma/flucoma-sc
Since
2018-07-10
Last update
2025-08-31
Current version
1.0.9