{"id":43739324,"url":"https://github.com/flucoma/flucoma-core","last_synced_at":"2026-02-05T11:25:28.450Z","repository":{"id":37906176,"uuid":"259451883","full_name":"flucoma/flucoma-core","owner":"flucoma","description":"Core algorithms and objects for the Fluid Corpus Manipulation Library","archived":false,"fork":false,"pushed_at":"2025-12-06T11:45:02.000Z","size":76251,"stargazers_count":92,"open_issues_count":72,"forks_count":18,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-12-08T22:50:47.070Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flucoma.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-04-27T20:55:30.000Z","updated_at":"2025-12-06T11:45:05.000Z","dependencies_parsed_at":"2025-08-18T14:37:14.870Z","dependency_job_id":null,"html_url":"https://github.com/flucoma/flucoma-core","commit_stats":null,"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/flucoma/flucoma-core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flucoma%2Fflucoma-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flucoma%2Fflucoma-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flucoma%2Fflucoma-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flucoma%2Fflucoma-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flucoma","download_url":"https://codeload.github.com/flucoma/flucoma-core/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flucoma%2Fflucoma-core/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29120496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T10:47:47.471Z","status":"ssl_error","status_checked_at":"2026-02-05T10:45:08.119Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-05T11:25:27.528Z","updated_at":"2026-02-05T11:25:28.442Z","avatar_url":"https://github.com/flucoma.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fluid Corpus Manipulation Library\n\nThis library comprises a suite of C++ algorithms used by the Fluid Corpus Manipulation (FluCoMa) project. Alongside these algorithms, are encapsulations into *clients* that, using a bit of glue code, allow us to deploy these clients across a range of creative coding host environments (Max, Pure Data, SuperCollider).\n\n# Dependencies\n\n\n* [CMake](http://cmake.org) (\u003e=3.18)\n* [Eigen](https://gitlab.com/libeigen/eigen) (3.4)\n* [HISSTools Library](https://github.com/AlexHarker/HISSTools_Library)\n* [Spectra](https://github.com/yixuan/spectra)\n* [Memory](https://github.com/foonathan/memory.git)\n* [fmt](https://github.com/fmtlib/fmt)\n* [nlohmann JSON](https://github.com/nlohmann/json)\n\n\n\n# Building\nIt is unlikely that you will need or want to build this repository directly. Rather, the pattern is to build from one of the repositories for a specific creative coding host, which uses this library as a dependency:\n\n* [Max](https://github.com/flucoma/flucoma-max)\n* [PureData](https://github.com/flucoma/flucoma-pd)\n* [SuperCollider](https://github.com/flucoma/flucoma-sc)\n* [Command Line](https://github.com/flucoma/flucoma-cli)\n\nWe also host pre-built binary releases for each supported platform in these repositories (check https://www.flucoma.org/download/ for the latest binary releases).\n\nYou may however be interested in using this library in your own C++ program or creative environment. Example C++ programs can be found in the `examples` folder.\n\nTo build these, clone the repo, change to its directory, and run CMake:\n```\nmkdir -p build \u0026\u0026 cd build\ncmake ..\n```\nBy default, CMake will download the dependencies above directly at this point. This is the simplest option, and guarantees that the versions used match the versions we build and test against.\n\nHowever, to use versions already on your file system, you can set CMake cache variables `EIGEN_PATH` and `HISS_PATH`:\n\n```\ncmake -DEIGEN_PATH=~/code/eigen -DHISS_PATH=~/code/hisstools_library ..\n```\nBecause CMake is a system for generating build scripts, rather than a build system in and of itself, the other choice you have is about what sort of build system it produces output for. The default on macOS and Linux is to use `make`, and on Windows, to use the most recent version of Visual Studio installed.\n\n* On macOS, you can instead use Xcode by passing `-GXcode` with the `cmake` command.\n* On Windows, Visual Studio can consume CMake projects directly. When used this way, the cache variables are set in a `JSON` file that MSVC uses to configure CMake.\n\n# Portability\nThe code base uses standard-compliant C++17 and, as such, should be portable to a range of platforms. So far, it has been successfully deployed to macOS (\u003e= Mac OS X 10.9); Windows (10 and up, using MSVC); and Linux (Ubuntu 20.04 and up, using GCC), for 32-bit and 64-bit intel architectures, as well as Apple Silicon. Please check that your compiler version supports the full C++17 feature set.\n\nIn principle, it should be possible to build for other architectures, but this has not yet been properly explored.\n\nIf you find objects causing 'illegal instruction' segmentation faults, it is likely that our default vector instruction flag isn't supported by your CPU.\n\n### I'm in a hurry...\n\nAnd *only building for your own machine*? You want to enable the maximal set of CPU features for your machine without worrying? Using Clang / GCC?\n\nPass `-DFLUID_ARCH=-mnative` when you run CMake. This tells the compiler to figure out what instruction sets your personal CPU supports, and enable them. This implies a possible performance gain in return for a portability loss.\n\n\n\n\u003c!--### More Detail\nBy default, on Intel / AMD, we enable AVX instructions (`-mavx` on clang/GCC; `/ARCH:AVX` on MSVC). These should work on all relatively recent CPUs (from, say, 2012 onwards). On ARM (with the Bela platform in mind), we use the following architecture flags:\n\n```\n-march=armv7-a -mtune=cortex-a8 -mfloat-abi=hard -mfpu=neon\n```\n\nIf your needs are different, then these defaults can be overridden by passing the desired compiler flags to CMake via the `FLUID_ARCH` cache variable.\n\nIf your Intel / AMD chip is too old to support AVX, it probably still supports SSE. On macOS and Linux, `sysctl -a | grep cpu.feat` can be used to produce a list of the various features your CPU supports.--\u003e \n\n## Credits \n#### FluCoMa core development team (in alphabetical order)\nOwen Green, Gerard Roma, Pierre Alexandre Tremblay\n\n#### Other contributors (in alphabetical order):\nJames Bradbury, Francesco Cameli, Alex Harker, Ted Moore\n\n\u003e 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).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflucoma%2Fflucoma-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflucoma%2Fflucoma-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflucoma%2Fflucoma-core/lists"}