oscofo

OScofo is a library dedicated to the research of score following in contemporary music contexts.

https://github.com/charlesneimog/oscofo

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.1%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

OScofo is a library dedicated to the research of score following in contemporary music contexts.

Basic Info
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 1
  • Open Issues: 0
  • Releases: 5
Created almost 2 years ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

README.md

OScofo

OScofo: OpenScore Follower

OScofo is an open-source project designed to provide score following capabilities for contemporary music applications. Originally developed as a PureData (Pd) object, OScofo 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, OScofo is already functional and serves as a valuable tool for researchers and musicians.

Download

Examples

Goal

The aim of OScofo 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 OScofo 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 OScofo project. Not just with code, but with theory, math, etc. I am trying to make OScofo 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

OScofo 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, OScofo 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).
  • pybind11 (optional): To build Python package.
  • PureData (optional): To build the Pd Object.

Building Options

  • BUILD_ALL: Build all OScofo modules (Python, Pd, Max).
  • BUILD_ALL_OBJECTS: Build Pd and Max Objects.
  • BUILD_PY_MODULE: Build or not the OScofo python module.
  • BUILD_PD_OBJECT: Build or not the Pd Object.
  • BUILD_MAX_OBJECT: Build or not the Max Object.

  • PDLIBDIR: Where the Pd object will be installed.

Building Steps

bash git clone https://github.com/charlesneimog/OScofo --recursive cmake . -B build -DBUILD_ALL_OBJECTS=ON -G Ninja cmake --build build

To install use cmake --install build.

Owner

  • Name: Charles K. Neimog
  • Login: charlesneimog
  • Kind: user
  • Location: São Paulo - Brazil
  • Company: Universidade de São Paulo

Charles K. Neimog is a Ph.D. candidate at the University of São Paulo. I research Art/Music and Technology.

Citation (CITATION.cff)

cff-version: 1.1.0
message: "If you use this software, please cite it as below."
authors:
- family-names: K. Neimog
  given-names: Charles
orcid: https://orcid.org/0000-0002-9780-0041
title: OScofo, an Open-Source Score Follower
version: 0.0.0-alpha
date-released: 2024-10-29

GitHub Events

Total
  • Create event: 15
  • Release event: 6
  • Issues event: 4
  • Watch event: 4
  • Delete event: 7
  • Issue comment event: 4
  • Push event: 206
  • Pull request event: 5
  • Fork event: 2
Last Year
  • Create event: 15
  • Release event: 6
  • Issues event: 4
  • Watch event: 4
  • Delete event: 7
  • Issue comment event: 4
  • Push event: 206
  • Pull request event: 5
  • Fork event: 2

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • charlesneimog (3)
Pull Request Authors
  • charlesneimog (1)
  • nendonerd (1)
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/c-cpp.yml actions
  • Cyberboss/install-winget v1 composite
  • actions/checkout v4 composite
  • actions/download-artifact v4 composite
  • actions/upload-artifact v4 composite
  • geekyeggo/delete-artifact v5 composite
  • msys2/setup-msys2 v2 composite
Documentation/requirements.txt pypi
  • mkdocs *
  • mkdocs-material *
setup.py pypi
.github/workflows/deploy.yml actions
  • actions/checkout v3 composite
Resources/tree-sitter-scofo/package-lock.json npm
  • base64-js 1.5.1 development
  • bl 4.1.0 development
  • buffer 5.7.1 development
  • chownr 1.1.4 development
  • end-of-stream 1.4.4 development
  • fs-constants 1.0.0 development
  • ieee754 1.2.1 development
  • inherits 2.0.4 development
  • minimist 1.2.8 development
  • mkdirp-classic 0.5.3 development
  • node-abi 3.71.0 development
  • npm-run-path 3.1.0 development
  • once 1.4.0 development
  • path-key 3.1.1 development
  • prebuildify 6.0.1 development
  • pump 3.0.2 development
  • readable-stream 3.6.2 development
  • safe-buffer 5.2.1 development
  • semver 7.6.3 development
  • string_decoder 1.3.0 development
  • tar-fs 2.1.1 development
  • tar-stream 2.2.0 development
  • tree-sitter-cli 0.23.2 development
  • util-deprecate 1.0.2 development
  • wrappy 1.0.2 development
  • nan 2.22.0
  • node-addon-api 8.3.0
  • node-gyp-build 4.8.4
  • tree-sitter-lua 2.1.3
Resources/tree-sitter-scofo/package.json npm
  • prebuildify ^6.0.1 development
  • tree-sitter-cli ^0.23.0 development
  • node-addon-api ^8.0.0
  • node-gyp-build ^4.8.1
  • tree-sitter-lua ^2.1.3