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 322c4454df
[Release] 1.0.1 (#125)
* ignore more varieties of build folder

* deal with some warnings

* FluidWaveform 'lineWidth' argument now also affects feature lines

* add back the nmf-jit-classifier example

* novelty interface change in example

* resizable and layoutable guis (#83)

* resizable and layoutable guis

* FluidWaveform: rename 'win' to 'parent'

* FluidWaveform/FluidPlotter: update help

* FluidWaveform/Plotter: make views before forking

This way views are immediately available upon creation,
for example to be added to layouts.
Views are still correctly updated with data from within the fork,
whenever they are ready.

* Thanks @elgiano! + a few small edits

Co-authored-by: Ted Moore <ted@tedmooremusic.com>

* slicers: add enums for algorithms (#86)

* typo

* FluidBufNMF class: add resynthMode argument

* add PCA whitening parameter (#65)

* add PCA whitening parameter

* FluidPCA: Ensure whiten parameter is sent to kr query UGen

Co-authored-by: Gerard <gerard@bumblebee.lan>
Co-authored-by: weefuzzy <gungwho@gmail.com>

* Enhance/optional message args (#77)

* optional args: sc wrapper updates

* optional args: KDTree try out

* Enhance/choices param (#78)

* NRTWrapper: Add choices param (long <-> bitset)

* Update `FluidBufStats` with `select` control

* BufStats class: Fix bitfield for `select` and warn on duplicate items

* Update SpectralShape classes for new param

* `PCA.sc`: add batch `inverseTranform` method

* Wrapper: integer sign warnings

* Enhance/max params (#93)

* CMake: Centralise C++ version and set to 17

* Wrapper: handle new LongRuntimeMax param type

* POC for new LongRuntimeMax param with MFCC numCoeffs

* Wrapper: Make MSVC happy about constexpr lambda capture

* All scalers: replace 'invert' parameter with `inverseTransform` messages

* Wrapper: Work around 32 char limit for plugin commands

If too long, remove vowels. 
Sorry. 
Better ideas welcome

* fix #96

* typo

* Update SC classes for new style `max<X>` parameters

* SpectralShape SC class: maxFFT

* RealTime wrapper: play it safer with output channel count

This really relies on the SC class being correct, but then everything 
ultimately does...

* RT FFT Object SC Classes: Provide maxFFTSize default

* BufSTFT SC class: Add maxFFT (now needed due to core type change)

* Add select param to Loudness and Pitch SC clases (#101)

* Wrapper: workaround scsynth 32 char cmd length limit with extra dispatch layer 

also avoids need for formerly truncated plugin names in some cases

* removed invert from scalers class definitions (#102)

* Enhance/generate stubs (#104)

* CMake: generate .cpp stubs

* Remove old cpp stubs

* Ensure correct MSVC runtime by default

* CMake: invoke docs properly

* CMake: Tidy up

* CMake: Tidy up

* CMake: typo

* CI: Update nightly

* CI: remove lingering references to docs job

* CMake: belatedly add branch selection for flucoma deps upon which CI relies

* CMake: Actually commit important code for best collaborative results

* CMake: This file is now redundant, in fact

* cmake: missing slash in install

* bufnmf: added the maxFFTsize parameter in the server call

* FluidStats: Change where output Array reshape happens to keep SynthDescLib happy

* FluidBufNNDSVD: maxfftsize now needed in server call, or booooom

fixes #161

* BufNMFCross: Needs MaxFFTSize

* BufNNDSVD: Ensure activations buffer is queried at finish

* FluidBufToKr ensure that numFrames is an int (not a float)

* Added *(Buf)Feature objects to guide (and deleted old guide)

NNDSVD --> NMFSeed in Guide

fixed bad links in Guide

* change interface and file name (#113)

* hidden --> hiddenLayers in class definition (#114)

* reordered some max<X> arguments

* change interp to interpolation in nmfmorph class (#115)

* Feature/skmeans (#66)

* add PCA whitening parameter

* add FluidSKMeans

* SKMeans correction

* added RT query

* <fit>transform<point> -> <fit>encode<point>

* added to overview

Co-authored-by: Gerard <gerard@bumblebee.lan>
Co-authored-by: tremblap <info@pierrealexandretremblay.com>

* [CI] Update Release Workflow (#118)

* cleanup nightly.yaml

* use new release style

* refactor release

* remove workflow dispatch variables

* interface changes in 8c

* knearest interface change in 10a

* waveform help nmf interface change

* capitalise beatRemember

* two more changes of interface

* typo

* sign binaries

* add -nightly affix

* sign releases too

* enforce concurrency of jobs

* UMAP kr method should not allow user to pass numDimensions

* slicers: change algo/metric select to symbols (#103)

* slicers: change algo/metric selection to symbols

* slicers: algo/metric accept UGen

* FluidDataSetWr example code (#124)
4 years ago
.github/workflows [Release] 1.0.1 (#125) 4 years ago
include [Release] 1.0.0-beta7 (#119) 4 years ago
release-packaging [Release] 1.0.1 (#125) 4 years ago
sc-resources [Release] 1.0.0-beta5 (#73) 4 years ago
scripts [Release] 1.0.0-beta7 (#119) 4 years ago
test [Release] 1.0.1 (#125) 4 years ago
.gitignore [Release] 1.0.0-beta7 (#119) 4 years ago
CMakeLists.txt [Release] 1.0.0-beta7 (#119) 4 years ago
LICENSE.md Upper case LICENSE 6 years ago
QuickStart.md updated the quickstart file 6 years ago
README.md [Release] 1.0.0-beta5 (#73) 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.

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++14 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

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

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