You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
James Bradbury 22c78371eb
Nightly Builds and Continuous Integration (#38)
* build macos supercollider to begin with

* build on nightlies

* compile all 3

* sloppy indentation

* remove ninja for configs

* try all the builds

* fix indentation and dependency

* try packaging

* make fully installation

* fix bigobj whinging in github

* move bigobj down

* remove huge pdb files

* remove pdb files

* build linux on ubuntu 18.04 LTS

* only build on dev branch and ci/nightlies branch

* parallelise zipping and correct the name

* use max cores on mac

* use windows-ly way of zipping files

* package things into non-nested zips

* download to here

* max -> supercollider 🤦

* use ninja and make release builds on windows

* sudo apt

* and Prs

* clone the dev branch of supercollider

* clone with https

* delete the old release before making a new one

* remove extraneous comment

* Revert "move bigobj down"

This reverts commit 5cd4a3532d6a629a071b1210e397f21fe416307f.

* Revert "fix bigobj whinging in github"

This reverts commit cb172b9c7ec2398ad0fbe6bb9456de91bfee990e.

* get core not SC

* use proper CMAKE variable for CORE

* use DFLUID_PATH not DFLUID_CORE

* update tags and remove make

* use choco to install ninja

* use ninja on windows

* update incorrect core link

* add working directory

* use composite action

* correctly point to the composite action

* specify toolchain for cmake

* use v2 of env flucoma action

* use an env variable to call CMAKE

* use composite action to build release

* remove env

* use flucoma actions to do building

* use sc not scbuild
4 years ago
.github/workflows Nightly Builds and Continuous Integration (#38) 4 years ago
include Introduce stricter ordering for access to mDone atomic in NRT wrapper (#30) 4 years ago
release-packaging fluid waveform features are stackable or not 4 years ago
scripts Remove references to manipulation repo and point to github for deps 5 years ago
src Named PCA, MLPs, UMAP 4 years ago
test FluidPlotter now allows > 1 identifier to highlight 4 years ago
tests Add compile-bundled targets for FluidManipulation objects (needed to share memory space between shared clients) 6 years ago
.gitignore Try and do something less stpuid for non-superbuild install 6 years ago
CMakeLists.txt Fix possible misconfuguration and crashes when user SC is built using system boost 4 years ago
LICENSE.md Upper case LICENSE 6 years ago
QuickStart.md updated the quickstart file 6 years ago
README.md fix reference to FLUID_PARAMDUMP (#43) 4 years ago
icon.png new icon! 7 years ago

README.md

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.

Pre-requisites

  • CMake >= 3.11
  • A C++ 14 compliant compiler for Mac or Windows (via XCode tools on Mac, and Visual Studio 17 >= 15.9 on Windows)

Dependencies

  • SC Source Code: this is the only dependency we don't (optionally) manage for you, so there must be a version available to point to when you run, using the CMake Variable SC_PATH (see below). It can live anywhere on your file system.

These will be downloaded and configured automatically, unless you pass CMake a source code location on disk for each (see below):

I'm in a Hurry...

...and you already have a development environment set up, understand CMake, and have the SC source available?

Cool:

mkdir -p build && cd build
cmake -DSC_PATH=<location of your SC source> ..
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 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 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

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).