Skip to main content

OpenScofo is an open-source score-following system specifically designed for contemporary music.

Project description

OpenScofo

OpenScofo: OpenScore Follower

OpenScofo is an open-source project designed to provide score following capabilities for contemporary music applications. Originally developed as a PureData (Pd) object, OpenScofo has now been expanded into a versatile C++ library that integrates seamlessly with multiple environments, including a Max Object, Python package, and others comming. Currently under development, OpenScofo is already functional and serves as a valuable tool for researchers and musicians.

Download

Examples

Goal

The aim of OpenScofo is to provide a straightforward and accessible tool for real-time score following. By keeping the software lightweight, it can run seamlessly on the web through the pd4web platform, thanks to the ability to use PureData directly in web browsers. With pd4web and OpenScofo will be possible to use the software in rehearsals with just a single click, eliminating the need for external libraries, compatibility issues, or complex installations -- ultimately facilitating the sharing and performance of contemporary music.

Collaboration and Contribution

I invite composers, researchers and developers to contribute to the OpenScofo project. Not just with code, but with theory, math, etc. I am trying to make OpenScofo acessible via a Python implementation, to test it should be easy. By sharing the source code, I am trying to provide access to the theories and mathematical formulas that drive the software, all this come from the amazing research work of Arshia Cont and Philippe Cuvillier at IRCAM.

Technical Foundations

OpenScofo uses several concepts developed by many researches (with focus on the research of Cont and Cuvillier).

  • Pitch Comparison: Utilizes the Kullback-Leibler (KL) Divergence method for pitch comparison as presented by Christopher Raphael (2006), Arshia Cont in 2008 and 2010.
  • Rhythm Synchronization: Integrates theories of rhythm synchronization developed by Edward Large and Mari Riess Jones (1999) and Edward Large and Caroline Palmer (2002), as presented for Cont (2010).
  • Forward Algorithm: For now, OpenScofo uses the equation presented by Arshia Cont (2010) and developed by Yann Guédon (2005).
  • Score Language: Based on the scofo (by Miller Puckette) and antescofo~ (by Arshia Cont, Philippe Cuvillier, and others) language.

Building

Requirements

  • On Windows, you need mingw64.

Optional

  • treesitter (npm install tree-sitter) (If you want to change/update score syntax).
  • nanobind: To build Python package.
  • PureData (optional): To build the Pd Object.

Build Options

  • OPENSCOFO_BUILD_ALL (ON/OFF): Build all OpenScofo modules, including Python, Pd, and Max. Default: ON.
  • OPENSCOFO_BUILD_PD_OBJECT (ON/OFF): Build the Pure Data (Pd) object. Default: OFF.
  • OPENSCOFO_BUILD_PY_MODULE (ON/OFF): Build the Python module. Default: OFF.
  • OPENSCOFO_BUILD_MAX_OBJECT (ON/OFF): Build the Max object. Default: OFF.
  • OPENSCOFO_BUILD_CSOUND_PLUGIN (ON/OFF): Build the Csound plugin. Default: OFF.
  • OPENSCOFO_BUILD_TESTS (ON/OFF): Build test suite. Default: OFF.
  • OPENSCOFO_BUILD_WITH_LUA (ON/OFF): Build Lua module embedded in OpenScofo. Default: ON.
  • UPDATE_OPENSCOFO_LANGUAGE (ON/OFF): Update OpenScofo language grammar (grammar.js). Default: ON.

Building Steps

git clone https://github.com/charlesneimog/OpenScofo
cmake . -B build
cmake --build build

GPLv3 Licensing Notice

OpenScofo is distributed under the GNU General Public License version 3 (GPLv3).

The GPLv3 is a free and open source license. Software distributed as a derivative work of OpenScofo, or as part of a combined work that is subject to the GPLv3, must itself be licensed under the GPLv3 and be accompanied by its complete corresponding source code.

The Free Software Foundation considers both static and dynamic linking to generally create such combined works.

Failure to comply with the GPLv3 automatically terminates the rights granted under the license and may constitute copyright infringement.

Full license text: GNU GPLv3 License Text

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

openscofo-0.2.10b1-cp312-cp312-macosx_10_15_universal2.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 10.15+ universal2 (ARM64, x86-64)

openscofo-0.2.10b1-cp312-abi3-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12+Windows x86-64

openscofo-0.2.10b1-cp312-abi3-manylinux_2_35_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.35+ x86-64

openscofo-0.2.10b1-cp312-abi3-macosx_10_15_universal2.whl (1.8 MB view details)

Uploaded CPython 3.12+macOS 10.15+ universal2 (ARM64, x86-64)

File details

Details for the file openscofo-0.2.10b1-cp312-cp312-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for openscofo-0.2.10b1-cp312-cp312-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 16035557a2e3ac4383ccab34fb79a9e5fa24798b45f4d7503cf01f9ec27bef34
MD5 b904e172796fbddbb0c024db37a5f61c
BLAKE2b-256 bf6b1c78b47b5c06418c984c6359486c6e3dce58a7f5c051d9056d6dd9919b3c

See more details on using hashes here.

File details

Details for the file openscofo-0.2.10b1-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for openscofo-0.2.10b1-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 692f28e86dd9743b399b7d8d235d83a9c0297f4bb6858f42a60f23c0209bf981
MD5 326d218c56916a5ece481f051b07e448
BLAKE2b-256 843955d5919ec976f719225914d781542599be6c947298e54f3214c4a74fb83f

See more details on using hashes here.

File details

Details for the file openscofo-0.2.10b1-cp312-abi3-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for openscofo-0.2.10b1-cp312-abi3-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 1372a3ac5b6f995a0fd395bf437f7f8629f654dd07891ba8b9614a200a2c2d0b
MD5 26fd14073664e73a3da4fa827859ae34
BLAKE2b-256 ce74a04eb73cf27527e74d33a7640226afe6fe0fad92772f7fe83df3384f7a13

See more details on using hashes here.

File details

Details for the file openscofo-0.2.10b1-cp312-abi3-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for openscofo-0.2.10b1-cp312-abi3-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 f84b297344aa767b57b33ec216f4f2f7ba7b5957feae96f973adc6fe3f055c35
MD5 daf6f8605143827fabcf7274793c512c
BLAKE2b-256 56b7f429a873c8a5fe74957c963822ab37d4bf50ccc22c839c53cac784dab507

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page