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-GXcode
to 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.
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-docs
repository (e.g. for debugging documentation generation)EIGEN_PATH
location of the Eigen libraryHISS_PATH
location 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 cpu with AVX instructions (most modern x86 CPUs). 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).
f788b7ad2620d80d9fd6e787e2300e7c3acaa2a8
34a5435159015945b4a29ab924340f8ad25c8644
ef87dd873d4f63f30f37b904cf75103ef176eb8b
386d174a592084416343c38670f22e6f538a557b
5bb42457607590b3431421c8e1e80e132d81c209
401cc00339d7a072add0293e05cec938f3cdf5f0
39860d14d7669d37ce4a0d0e3661f3227ecb8646
2ca6e583ca0766318bc710922b83bdbfc6ec5851
322c4454df0c16e3b2a522e82fdf2bf88cfc807e
6bd82bfe12b95261a70ef36d77274900995217ef
229b46b11d7c5072b3342e6579fc428f80d674d0
f171d57ef80bc569f8a049a8d554573259dda8c0
aabbe2d58d123bc129dc94414bd2fef09291f6c2
e5c75cf3bb636a41a4b69fef03d34ba88833b6b2
6cc68275a5ec36bb878c73430d917cfe1fd361df
3fbe279b9b1b3af77cf29e8f0faaabab6f0e4808
b9408a11e37e39f4a032fb0fad630a4bd731e55c
d4648c06a142666166b0e2c16d6c80e6cc89e686
8b3a78a2f9615470775d74bb9c529a2c70d37c28
6926dd29f1b83afb38dc4d24e6009f814bdba8a0
25c2c44d6591b0858b559ddb4c1112684db89337
25ffc7ce3d9a3253881a1791461c35a30ed43d48
1bd89ac84881cdaa3e4095c9c6bc0ea230687661
de6fa021e6591f776948093b1d21b525fba0de8b
5bc063c6c79e8aa8f5905b4e300c9f1dadbde212
f14012e486158278fbd1e0ed60f3daf80fff312c
e94c9e48ecb52b87b1af779391c1fca0a9312135
4d8f6c543190a9f96f2569ba937cf48bd0eb1ee8
5706617a820efb8c5622f0ac107b6f87e54dfb1b
a10c3c5db165618bfdf39da2f225476d3bd6452f
1a8d5333f8cf531c8f7dc6827726b90d82097485
71b53f13d44a837fccb64cffb333a372ee2f8809
d4183ff4afba03378765e977be4262d8f14ba4a9
590035abc9fcf1c0109805191190bc8ee6928b67
e28eb3e9d9afef9b08ef9ed299b3a32f6d2ad55c
353b35f3da3fb53dbc039a122ff26328f5868fa7
f821f2b374851d1d81f2172fad4a88e4c92b1f0b
9497dd566f6fdac54942c04392ae14b03b1b752d
eab93b3b838638ea59335afc07972d848c460664
e4a4ce1f8402997d7e4af7c115a886a4b3d6afbf
c5ae47037ee0bd6eba41ec44738b011dbcefdfc7
0917682a805c1a39f4bb8e86e66932bbd18386b0
bde0a18a07e705887fea487180448bae4b7f54c5
a529281d2abc0d998e9e73543fd4b9f13270f5f1
Repository
URL
https://github.com/flucoma/flucoma-sc
Since
2018-07-10
Last update
2024-10-31
Current version
nightly