Skip to content
David Garfinkle edited this page Dec 11, 2019 · 13 revisions

Content-based symbolic music retrieval (CBSMR) Wiki

This wiki will overview the CBSMR system built to integrate with SIMSSADB as part of the ELVIS-project.

This system searches corpora of sheet music by musical query and returns highlighted excerpts of the sheet music where the query was found.

New pieces can be added to the database of searchable scores. The intention is that this system will extend SIMSSADB by storing searchable indexed data and providing highlighted excerpts of the same pieces in SIMSSADB.

A Flask application implements the API, interacting with the postgres database and our search micro-service to handle two primary functions: adding a piece and searching through pieces.

A web client uses the Verovio Humdrum Viewer and Ace text editor to write musical queries in **kern notation and sends requests to the backend system.

Dependencies

We use postgres to store piece data, golang and gRPC to implement a search microservice, a search algorithm written in C included as a submodule, and we service web requests with python and javascript.

We heavily rely on:

  • verovio humdrum viewer in the front-end web application to let users type out their queries
  • music21 to parse a variety of symbolic music encodings
Clone this wiki locally