Skip to content

Crowdsourcing sheet music recognition, one measure at a time.

Notifications You must be signed in to change notification settings

CS-565-SP-2023/Obbligato

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Obbligato

Obbligato is a web application that tackles the task of optical music recongition (OMR) through the power of crowdsourcing. Automated OMR systems still tend to struggle with handwritten sheet music, so the question we set out to answer was if we could employ people (including those without prior music experience) to digitally transcribe sheet music instead. This website hosts a simple study that we ran to test the crowd's capabilities on some test sheet music. We found that, despite most participants having little musical experience, the crowd was able to correctly digitize measures with 95% accuracy. There is still much work to be done given that Obbligato was launched with a very limited musical vocabulary (three types of notes and three types of rests), but it is a promising example of the crowd's capabilities with respect to digitizing sheet music.

The website can be found here.

Created by Runyao Fan, Mohit Gupta, Naman Jain, Chris Kull, Weili Li and Yutao Zhou from the University of Illinois Urbana-Champaign.

Contents

Implementation Details

This repository contains the frontend code for the website, written using Typescript and React. The sister backend repository can be found here.

Development Environment Setup

Install nvm, node.js, npm (MacOS/Linux, original reference):

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash

# The below command may be needed so that nvm can be found by your shell
export NVM_DIR="$HOME/.nvm"
\. "$NVM_DIR/nvm.sh"
\. "$NVM_DIR/bash_completion"

nvm install --lts

Note that Windows will have to install a different way, see here.

Install all node packages:

npm install

Running the Server

To run the server for development:

npm start

Deployment

Deployment is done via GitHub pages. In order to deploy:

npm run deploy

About

Crowdsourcing sheet music recognition, one measure at a time.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published