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. Any software that incorporates, links to (including dynamically), or forms a combined work with OpenScofo and is distributed must also be licensed under the GPLv3, with its complete corresponding source code made available.

Non-compliance automatically terminates the license rights granted under the GPLv3 and may constitute copyright infringement.

Full license text: https://www.gnu.org/licenses/gpl-3.0.html

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.5a3-cp312-abi3-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12+Windows x86-64

openscofo-0.2.5a3-cp312-abi3-manylinux_2_39_x86_64.whl (1.1 MB view details)

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

openscofo-0.2.5a3-cp312-abi3-macosx_10_15_universal2.whl (1.8 MB view details)

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

openscofo-0.2.5a3-cp310-abi3-win_amd64.whl (890.8 kB view details)

Uploaded CPython 3.10+Windows x86-64

openscofo-0.2.5a3-cp310-abi3-manylinux_2_39_x86_64.whl (986.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.39+ x86-64

openscofo-0.2.5a3-cp310-abi3-macosx_10_15_universal2.whl (1.7 MB view details)

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

File details

Details for the file openscofo-0.2.5a3-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: openscofo-0.2.5a3-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for openscofo-0.2.5a3-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b42edba84d8d882c4853c04dcafe550fed400944d89882f416c31a112943b84f
MD5 80896880a2de6c68f538a6889520c883
BLAKE2b-256 4bad54dbbf8bf564f7f98738cc4bacbacc0458e070255795d985f8b62bd967e5

See more details on using hashes here.

File details

Details for the file openscofo-0.2.5a3-cp312-abi3-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for openscofo-0.2.5a3-cp312-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 4f3cbe0fab3a4625e63286c375990b96b10a2fd5c96b4d9b9ad103ac386f9604
MD5 36a87228bee0ba5dc85d73dabee658b9
BLAKE2b-256 13dc4527e43c44a761d463968b846d9e8dcf16da0dc59f6705147a6c08c5f7d8

See more details on using hashes here.

File details

Details for the file openscofo-0.2.5a3-cp312-abi3-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for openscofo-0.2.5a3-cp312-abi3-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 0183a2fe4920a46ba0c4ceeebabe48a67f4980401aadad7353ec8496f179f778
MD5 2060c2146d4bdcf966345cd5db35358f
BLAKE2b-256 2a52a6a6ebc4e9a81788b0b5dfcff45c218aadb1b877d9704b6f75ebebf7551f

See more details on using hashes here.

File details

Details for the file openscofo-0.2.5a3-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: openscofo-0.2.5a3-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 890.8 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for openscofo-0.2.5a3-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 07efd7f99c8b03bc8a0ed48c68798847b11f9dfea48326e6d59cbb767c86ed1e
MD5 091e0026f14903d9b7f2a939cff48e41
BLAKE2b-256 3c767985a86cf47c54ff9e4536a1f0ee908bda87f227e0331ce949ab614e0906

See more details on using hashes here.

File details

Details for the file openscofo-0.2.5a3-cp310-abi3-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for openscofo-0.2.5a3-cp310-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 055b1ed3f418d0614015bc4df505e57cf4cfe7a17a90b193db50399c6205d3c4
MD5 bd8bf3ee9268639b0dd2acbbc849c89d
BLAKE2b-256 ce8d7ab5919e2c19a37c81e927156d54932249100cee1698ba6648d2f32cf127

See more details on using hashes here.

File details

Details for the file openscofo-0.2.5a3-cp310-abi3-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for openscofo-0.2.5a3-cp310-abi3-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 4f0fe8d821171f26b1b3439d829f702e94dbcc1bb1b3beb48ffd22c27ad7f6a7
MD5 006cc53c0ad814ff8ece73989e5817b4
BLAKE2b-256 f4a5f9f9ac12d5f2a51c8871b7848a2a995e79cde6c8bdec8be948f36f98631a

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