Under the Hood

The Josquin Research Project consists of two primary components:

  1. The website
  2. The data server and digital score files

Together these components provide public access to encoded musical scores, metadata, and derived analytical resources.


The Website

Source files for the client-side of the website can be viewed on GitHub. The website uses GitHub Pages and Jekyll, a static website generator. The following JavaScript libraries are used on the website:

  • Select2, a jQuery plugin. Form controls can now be styled in modern browsers, but cross-browser behavior is still inconsistent for some native elements, so the project uses Select2 for consistent dropdown UI and behavior.
  • ezMark, a jQuery plugin used to style check boxes and radio buttons.
  • qTip, a jQuery plugin used to manage tooltips.
  • Handlebars, which is used for content templating, such as for creating the tables on the Census page and the list of error reports on the Error reports page.
  • D3, used to visualize analysis data, such as on the Ribbon plot page.

The Data Server

The Josquin Research Project operates a separate data server to manage digital scores, format translations, and prepared analytical data:

https://data.josqu.in

The server provides API endpoints for retrieving musical data in various formats, including:

  • Humdrum, the primary archival format used for encoding musical scores
  • MEI
  • MusicXML
  • MIDI
  • analytical graphics

The authoritative files for all encoded scores are maintained in the repository:

https://github.com/josquin-research-project/jrp-scores

The data server automatically imports the contents of this repository into its internal framework. The server-side infrastructure that performs this processing is maintained in the repository:

https://github.com/craigsapp/jrp-data-server

This software handles data indexing, format conversion, API responses, and generation of derived files such as incipits and analytical datasets. Further documentation is available in the repository README file.


File Naming and Example Data Object

Each musical work uses a structured identifier, consisting of a three-letter composer code, a four-digit work number, and an optional section letter, which typically corresponds to the movements of multi-section works (e.g., a for the Kyrie in the mass ordinary).

Example incipit file:

https://data.josqu.in/Agr1001a-incipit.svg

Filename interpretation:

  • Agr — composer Alexander Agricola
  • 1001 — work number
  • a — first section of the work

List of composer codes:

https://bit.ly/renaissance-composer-codes

Encoding Standards

Encoding standards for the project ensure consistency across scores from multiple contributors. These standards define how Renaissance musical notation is represented within the Humdrum framework:

https://wiki.ccarh.org/wiki/Josquin

Topics include conventions for voice names, mensural notation, editorial accidentals, section boundaries, text underlay, and metadata documentation.


Master Metadata Index

Metadata is maintained in a master spreadsheet:

https://bit.ly/renaissance-metadata

This spreadsheet catalogues information such as composers, work titles, manuscript sources, catalogue numbers, work scoring, and editorial metadata. A Google Apps Script converts the spreadsheet into JSON data used by the website:

https://script.google.com/macros/s/AKfycbwuWnQ6O9AGgbBT7B2rLPwEQw9i7NRHtkA2Jq8A1L6drL9Th7PR-jARwDKP6kZEhED56w/exec?sheet=works

The website loads this JSON file dynamically to power metadata search, composer browsing, work listings, and catalog navigation. This setup enables the project to maintain one authoritative metadata source.