Under the Hood

The Josquin Research Project combines three components:

  1. The website
  2. Digital score files and generated assets stored in Cloudflare R2
  3. A separate musical search service

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



Digital Scores and Cloudflare R2

The authoritative musical sources are Humdrum files maintained in the JRP scores repository. A shared set of local tools, used by both the Josquin Research Project and The 1520s Project, generates the files used for display, playback, downloads, and analysis.

The generated assets include:

  • PDF scores, with and without editorial accidentals
  • MEI and MusicXML scores
  • MIDI and MP3 audio, with timemaps for synchronized playback
  • Score incipits, vocal-range plots, and activity plots

These files, together with published copies of the Humdrum sources, are stored in Cloudflare R2 and served through assets.1520s-project.org. The two projects share storage, with separate paths for their assets. The hostname serves individual files; it is not a browsable directory.

When a score or relevant publication metadata changes, the local build workflow generates its assets, validates them, and uploads them to R2. Successfully published files are recorded so unchanged scores can be skipped on subsequent runs. Visitors retrieve prepared files directly, rather than requesting conversions from the Humdrum data. Existing JRP PDFs are retained until a replacement is published.


Musical Search

Pitch, interval, and rhythm searches are handled by a separate service running on Google Cloud Run. The website sends search requests to this service and displays the results. Cloudflare Turnstile provides a human check before submission to help limit automated abuse.


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://assets.1520s-project.org/jrp/score-assets/Agr1001a-incipit.svg

Filename interpretation:

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

Master Metadata Index

Metadata is maintained in a master spreadsheet.

This spreadsheet catalogues information such as composers, work titles, manuscript sources, catalogue numbers, work scoring, and editorial metadata. The update workflow downloads its tabs directly as CSV and converts them into JSON data used by the website.

The update workflow retrieves this data and saves local JSON snapshots with the website. These snapshots power metadata search, composer browsing, work listings, and catalog navigation, while the spreadsheet remains the authoritative metadata source.