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.

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 Library
  • FLUID_DOCS_PATH: location of fluid-docs repository (e.g. for debugging documentation generation)
  • EIGEN_PATH location of the Eigen library
  • HISS_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/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).

FluidAmpFeature
Extension
✗
Superclass:
FluidRTUGen
FluidAmpGate
Extension
✗
Superclass:
FluidRTUGen
FluidAmpSlice
Extension
✗
Superclass:
FluidRTUGen
FluidAudioTransport
Extension
✗
Superclass:
FluidRTUGen
FluidBufAmpFeature
Extension
✗
Superclass:
FluidBufProcessor
FluidBufAmpFeatureTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufAmpGate
Extension
✗
Superclass:
FluidBufProcessor
FluidBufAmpGateTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufAmpSlice
Extension
✗
Superclass:
FluidBufProcessor
FluidBufAmpSliceTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufAudioTransport
Extension
✗
Superclass:
FluidBufProcessor
FluidBufAudioTransportTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufChroma
Extension
✗
Superclass:
FluidBufProcessor
FluidBufChromaTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufCompose
Extension
✗
Superclass:
FluidBufProcessor
FluidBufComposeTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufFlatten
Extension
✗
Superclass:
FluidBufProcessor
FluidBufFlattenTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufHPSS
Extension
✗
Superclass:
FluidBufProcessor
FluidBufHPSSTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufLoudness
Extension
✗
Superclass:
FluidBufProcessor
FluidBufLoudnessTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufMFCC
Extension
✗
Superclass:
FluidBufProcessor
FluidBufMFCCTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufMelBands
Extension
✗
Superclass:
FluidBufProcessor
FluidBufMelBandsTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufNMF
Extension
✗
Superclass:
FluidBufProcessor
FluidBufNMFCross
Extension
✗
Superclass:
FluidBufProcessor
FluidBufNMFCrossTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufNMFSeed
Extension
✗
Superclass:
FluidBufProcessor
FluidBufNMFSeedTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufNMFTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufNoveltyFeature
Extension
✗
Superclass:
FluidBufProcessor
FluidBufNoveltyFeatureTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufNoveltySlice
Extension
✗
Superclass:
FluidBufProcessor
FluidBufNoveltySliceTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufOnsetFeature
Extension
✗
Superclass:
FluidBufProcessor
FluidBufOnsetFeatureTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufOnsetSlice
Extension
✗
Superclass:
FluidBufProcessor
FluidBufOnsetSliceTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufPitch
Extension
✗
Superclass:
FluidBufProcessor
FluidBufPitchTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufProcessor
Extension
✗
Superclass:
FluidServerObject
FluidBufSTFT
Extension
✗
Superclass:
FluidBufProcessor
FluidBufScale
Extension
✗
Superclass:
FluidBufProcessor
FluidBufScaleTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufSelect
Extension
✗
Superclass:
FluidBufProcessor
FluidBufSelectEvery
Extension
✗
Superclass:
FluidBufProcessor
FluidBufSelectEveryTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufSelectTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufSineFeature
Extension
✗
Superclass:
FluidBufProcessor
FluidBufSineFeatureTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufSines
Extension
✗
Superclass:
FluidBufProcessor
FluidBufSinesTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufSpectralShape
Extension
✗
Superclass:
FluidBufProcessor
FluidBufSpectralShapeTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufStats
Extension
✗
Superclass:
FluidBufProcessor
FluidBufStatsTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufThreadDemo
Extension
✗
Superclass:
FluidBufProcessor
FluidBufThreadDemoTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufThresh
Extension
✗
Superclass:
FluidBufProcessor
FluidBufThreshTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufToKr
Extension
✗
Superclass:
✗
FluidBufTransientSlice
Extension
✗
Superclass:
FluidBufProcessor
FluidBufTransientSliceTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidBufTransients
Extension
✗
Superclass:
FluidBufProcessor
FluidBufTransientsTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidChroma
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidDataObject
Extension
✓
Superclass:
✗
FluidDataSet
Extension
✗
Superclass:
FluidDataObject
FluidDataSetQuery
Extension
✗
Superclass:
FluidDataObject
FluidDataSetRead
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidDataSetWr
Extension
✗
Superclass:
FluidBufProcessor
FluidDataSetWrTrigger
Extension
✗
Superclass:
FluidProxyUgen
FluidFilesPath
Extension
✗
Superclass:
✗
FluidGain
Extension
✗
Superclass:
UGen
FluidGrid
Extension
✗
Superclass:
FluidModelObject
FluidHPSS
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidKDTree
Extension
✗
Superclass:
FluidModelObject
FluidKDTreeQuery
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidKMeans
Extension
✗
Superclass:
FluidModelObject
FluidKMeansQuery
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidKNNClassifier
Extension
✗
Superclass:
FluidModelObject
FluidKNNClassifierQuery
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidKNNRegressor
Extension
✗
Superclass:
FluidModelObject
FluidKNNRegressorQuery
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidKrToBuf
Extension
✗
Superclass:
✗
FluidLabelSet
Extension
✗
Superclass:
FluidDataObject
FluidLoadFolder
Extension
✗
Superclass:
✗
FluidLoudness
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidMDS
Extension
✗
Superclass:
FluidModelObject
FluidMFCC
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidMLPClassifier
Extension
✗
Superclass:
FluidModelObject
FluidMLPClassifierQuery
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidMLPRegressor
Extension
✗
Superclass:
FluidModelObject
FluidMLPRegressorQuery
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidMelBands
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidMessageResponse
Extension
✗
Superclass:
Object
FluidModelObject
Extension
✗
Superclass:
FluidDataObject
FluidNMFFilter
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidNMFMatch
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidNMFMorph
Extension
✗
Superclass:
FluidRTUGen
FluidNRTProcess
Extension
✗
Superclass:
Object
FluidNormalize
Extension
✗
Superclass:
FluidModelObject
FluidNormalizeQuery
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidNoveltyFeature
Extension
✗
Superclass:
FluidRTUGen
FluidNoveltySlice
Extension
✗
Superclass:
FluidRTUGen
FluidOSCPatternInversion
Extension
✗
Superclass:
OSCMessageDispatcher
FluidOnsetFeature
Extension
✗
Superclass:
FluidRTUGen
FluidOnsetSlice
Extension
✗
Superclass:
FluidRTUGen
FluidPCA
Extension
✗
Superclass:
FluidModelObject
FluidPCAQuery
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidPitch
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidPlotter
Extension
✗
Superclass:
FluidViewer
FluidPlotterPoint
Extension
✗
Superclass:
✗
FluidProcessSlices
Extension
✗
Superclass:
✗
FluidProxyUgen
Extension
✗
Superclass:
UGen
FluidRTMultiOutUGen
Extension
✗
Superclass:
MultiOutUGen
FluidRTQuery
Extension
✗
Superclass:
FluidProxyUgen
Extension
✗
Superclass:
UGen
FluidRealTimeModel
Extension
✗
Superclass:
FluidModelObject
FluidRobustScale
Extension
✗
Superclass:
FluidModelObject
FluidRobustScaleQuery
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidSKMeans
Extension
✗
Superclass:
FluidModelObject
FluidSKMeansQuery
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidSTFTPass
Extension
✗
Superclass:
FluidRTUGen
FluidServerCache
Extension
✗
Superclass:
✗
FluidServerObject
Extension
✗
Superclass:
✗
FluidSineFeature
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidSines
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidSliceCorpus
Extension
✗
Superclass:
✗
FluidSpectralShape
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidStandardize
Extension
✗
Superclass:
FluidModelObject
FluidStandardizeQuery
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidStats
Extension
✗
Superclass:
MultiOutUGen
FluidTransientSlice
Extension
✗
Superclass:
FluidRTUGen
FluidTransients
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidUMAP
Extension
✗
Superclass:
FluidModelObject
FluidUMAPQuery
Extension
✗
Superclass:
FluidRTMultiOutUGen
FluidViewer
Extension
✗
Superclass:
✗
FluidWaveform
Extension
✗
Superclass:
FluidViewer
FluidWaveformAudioLayer
Extension
✗
Superclass:
✗
FluidWaveformFeaturesLayer
Extension
✗
Superclass:
FluidViewer
FluidWaveformImageLayer
Extension
✗
Superclass:
✗
FluidWaveformIndicesLayer
Extension
✗
Superclass:
FluidViewer
TestFluidCorpusManipulationServer
Extension
✗
Superclass:
UnitTest
1.0.9
Date
2025-08-31
Git hash
ba24128a0b5a4edbf3eae3c371cef72756b96a9a
nightly
Date
2025-01-19
Git hash
ccc42f28a05f6a8e3e5367fc261ebe8bab0e97ac
1.0.8
Date
2025-01-07
Git hash
25b1383749f33b7f4cb77629dce0d27e0e8e1172
nightly
Date
2024-10-31
Git hash
f788b7ad2620d80d9fd6e787e2300e7c3acaa2a8
1.0.7
Date
2024-04-02
Git hash
34a5435159015945b4a29ab924340f8ad25c8644
nightly
Date
2024-03-01
Git hash
ef87dd873d4f63f30f37b904cf75103ef176eb8b
1.0.6
Date
2023-03-28
Git hash
386d174a592084416343c38670f22e6f538a557b
1.0.5
Date
2022-12-15
Git hash
5bb42457607590b3431421c8e1e80e132d81c209
1.0.4
Date
2022-08-16
Git hash
401cc00339d7a072add0293e05cec938f3cdf5f0
1.0.3
Date
2022-08-12
Git hash
39860d14d7669d37ce4a0d0e3661f3227ecb8646
1.0.2
Date
2022-07-07
Git hash
2ca6e583ca0766318bc710922b83bdbfc6ec5851
1.0.1
Date
2022-06-30
Git hash
322c4454df0c16e3b2a522e82fdf2bf88cfc807e
1.0.0-TB2.beta7
Date
2022-06-14
Git hash
6bd82bfe12b95261a70ef36d77274900995217ef
1.0.0-TB2.beta6
Date
2022-03-30
Git hash
229b46b11d7c5072b3342e6579fc428f80d674d0
1.0.0-TB2.beta5
Date
2022-02-22
Git hash
f171d57ef80bc569f8a049a8d554573259dda8c0
1.0.0-TB2.beta4
Date
2021-11-04
Git hash
aabbe2d58d123bc129dc94414bd2fef09291f6c2
1.0.0-nightly
Date
2021-11-04
Git hash
e5c75cf3bb636a41a4b69fef03d34ba88833b6b2
1.0.0-TB2.beta3
Date
2021-10-25
Git hash
6cc68275a5ec36bb878c73430d917cfe1fd361df
1.0.0-TB2.beta2
Date
2021-05-31
Git hash
3fbe279b9b1b3af77cf29e8f0faaabab6f0e4808
TB2-beta01
Date
2021-04-29
Git hash
b9408a11e37e39f4a032fb0fad630a4bd731e55c
TB2-Alpha08
Date
2021-01-17
Git hash
d4648c06a142666166b0e2c16d6c80e6cc89e686
TB2-Alpha07
Date
2020-12-22
Git hash
8b3a78a2f9615470775d74bb9c529a2c70d37c28
9dcd48e-8621e4e-8684031
Date
2020-10-06
Git hash
6926dd29f1b83afb38dc4d24e6009f814bdba8a0
TB2-Alpha06
Date
2020-09-24
Git hash
25c2c44d6591b0858b559ddb4c1112684db89337
TB2-Alpha05
Date
2020-08-06
Git hash
25ffc7ce3d9a3253881a1791461c35a30ed43d48
TB2-Alpha04c
Date
2020-07-19
Git hash
1bd89ac84881cdaa3e4095c9c6bc0ea230687661
tb2-alpha04b
Date
2020-07-18
Git hash
de6fa021e6591f776948093b1d21b525fba0de8b
tb2-alpha04a
Date
2020-07-17
Git hash
5bc063c6c79e8aa8f5905b4e300c9f1dadbde212
tb2-alpha04
Date
2020-07-15
Git hash
f14012e486158278fbd1e0ed60f3daf80fff312c
TB2-alpha03
Date
2020-06-12
Git hash
e94c9e48ecb52b87b1af779391c1fca0a9312135
f9fb-3e77-c874
Date
2020-06-04
Git hash
4d8f6c543190a9f96f2569ba937cf48bd0eb1ee8
tb2-alpha02
Date
2020-05-20
Git hash
5706617a820efb8c5622f0ac107b6f87e54dfb1b
1.0.0-RC1
Date
2020-03-30
Git hash
a10c3c5db165618bfdf39da2f225476d3bd6452f
1.0.0-cp1
Date
2020-03-19
Git hash
1a8d5333f8cf531c8f7dc6827726b90d82097485
TB2-alpha01
Date
2019-12-05
Git hash
71b53f13d44a837fccb64cffb333a372ee2f8809
beta02
Date
2019-10-08
Git hash
d4183ff4afba03378765e977be4262d8f14ba4a9
beta01
Date
2019-08-26
Git hash
590035abc9fcf1c0109805191190bc8ee6928b67
beta00
Date
2019-07-08
Git hash
e28eb3e9d9afef9b08ef9ed299b3a32f6d2ad55c
alpha08
Date
2019-06-15
Git hash
353b35f3da3fb53dbc039a122ff26328f5868fa7
alpha07
Date
2019-06-04
Git hash
f821f2b374851d1d81f2172fad4a88e4c92b1f0b
alpha06
Date
2019-05-19
Git hash
9497dd566f6fdac54942c04392ae14b03b1b752d
alpha05
Date
2019-05-09
Git hash
eab93b3b838638ea59335afc07972d848c460664
alpha04a
Date
2019-04-07
Git hash
e4a4ce1f8402997d7e4af7c115a886a4b3d6afbf
alpha04
Date
2019-04-04
Git hash
c5ae47037ee0bd6eba41ec44738b011dbcefdfc7
alpha03
Date
2019-01-31
Git hash
0917682a805c1a39f4bb8e86e66932bbd18386b0
alpha02a
Date
2018-11-17
Git hash
bde0a18a07e705887fea487180448bae4b7f54c5
alpha01
Date
2018-09-22
Git hash
a529281d2abc0d998e9e73543fd4b9f13270f5f1

Repository

URL

https://github.com/flucoma/flucoma-sc

Since

2018-07-10

Last update

2025-08-31

Current version

1.0.9

Quark info

Possible dependcies

Possible dependants

TimeStretch