samer@0: # JRP Digital Scores # samer@0: samer@0: This repository contains digital music scores in the Humdrum data samer@0: format from the [Josquin Research Project](http://josquin.stanford.edu). samer@0: The primary web interface for these scores is http://josquin.stanford.edu samer@0: which allows online searching and browsing, conversions into other samer@0: data formats, such as MIDI and graphical notation, as well as samer@0: interfaces to some online analysis tools. These scores encompass samer@0: music of the early Renaissance (*c*1420 to *c*1520), mostly samer@0: representing the [Franco-Flemish samer@0: School](http://en.wikipedia.org/wiki/Franco-Flemish_School) and are samer@0: mainly intended for computational analysis. As a result only a samer@0: few works include text/lyrics suitable for vocal performance. samer@0: samer@0: A peculiar aspect in music of the sixteenth century (from a modern samer@0: viewpoint) is an incomplete notation of accidentals needed for samer@0: performance. Editorial accidentals have been added to these scores samer@0: to realize the performance practice of the time. An "i" character samer@0: immediately following an accidental indicates that it was not written samer@0: in the original notation. When written without an "i" after it, samer@0: the accidental is found in the original notation, either from the samer@0: key signature, or an explicit accidental written immediately before samer@0: the note. samer@0: samer@0: Another conceptual difference is the use of mensuration signs. samer@0: These evolved (decayed) into time signatures. The most common samer@0: mensuration in the music is Cut-C, from which modern cut-time samer@0: originates. In this mensuration the *beat* is at the whole-note samer@0: rhythmic level, and the metric cycle is two beats (a breve). Circle samer@0: mensuration is the second most common mensuration in the music. samer@0: This represents three whole-note beats per rhythmic cycle (dotted samer@0: breve). Mensuration signs also convey tempo, so MIDI files on the samer@0: [JRP](http://josquin.stanford.edu) website made from these scores samer@0: typically interpret tempo from the mensuration signs in the data samer@0: (with the tempo slowing down over the generations due to smaller samer@0: rhythmic values becoming more common). Modern time signatures are samer@0: present in the data as a result of using music notation software samer@0: for data entry and are of secondary concern (notice that they are samer@0: not displayed in the scores on the [JRP](http://josquin.stanford.edu) samer@0: website. samer@0: samer@0: Barlines had not yet been invented in the fifteenth century, so all samer@0: barlines in the data are interpreted; however, these are less open samer@0: to interpretation compared to editorial accidentals. Typically samer@0: barlines represent breves (double whole notes) durations, although samer@0: they sometimes represent longs (quadruple whole notes), and may samer@0: include patterns of dashed and solid lines to indicate the implied samer@0: long (solid lines) and breve (dash line) metric grid of the music. samer@0: samer@0: All parts are encoded in modern notation that is sensitive to the samer@0: original mensural notation intent of the fifteenth century. The samer@0: main difference is that all rhythmic durations and augmentation samer@0: dots are made explicit rather than dependent on a note's musical samer@0: context. Since the original parts were not written in modern score samer@0: layout during the fifteenth century (see an example of a samer@0: [partbook](http://www.loc.gov/exhibits/vatican/images/music13.jpg)), samer@0: mensuration changes sometimes do not occur at the same point in samer@0: each part. For example, one part may have a whole note in Cut-C samer@0: mensuration while another part has a dotted whole note in 3 samer@0: mensuration. This is represented in the data with the same rhythmic samer@0: duration in each part, usually as a whole note and a triplet dotted samer@0: whole note using an ```*rscale:3/2``` interpretation in the second samer@0: part to indicate that it is to be displayed with a rhythmic duration samer@0: 3/2 longer (i.e., convert the triplet dotted whole note into a samer@0: non-triplet dotted whole note). samer@0: samer@0: In mensural music (particularly in masses) the voices are sometimes samer@0: notated in conflicting note values. (Colloquially we refer to a samer@0: voice being "augmented" or "diminished" relative to the others.) samer@0: The most common situation is for a half-note in the tenor to have samer@0: the same duration as a whole-note in another part. The ```*rscale``` samer@0: rhythmic-scaling interpretation will also be used in these cases. samer@0: All parts in the data have a 1:1 rhythmic scaling against each other samer@0: for analytic purposes. Applying the ```*rscale``` factor will cause samer@0: a part to be displayed in its original rhythmic values (i.e., reverse samer@0: the resolution of the autmentation/diminution). samer@0: samer@0: Triplet brackets are given explicitly in the data using "V" and "Z" samer@0: characters (this will change in the future). Triplet brackets samer@0: indicate music that was originally in colored notation, which is a samer@0: mensural equivalent of triplets. Music in 3 mensuration (an alternate samer@0: mensural method of showing triplets) may be represented as modern samer@0: rhythmic triplets in the data, but will not contain triplet brackets. samer@0: samer@0: Ligatures are groups of notes with their heads attached to each other which samer@0: typically gives information about the rhythm of the notes in mensural samer@0: notation. Usually modern notation of mensural music will place brackets samer@0: around individual notes which were originally part of a ligature group. samer@0: However, ligatures are not indicated in this data. samer@0: samer@0: samer@0: # Composers # samer@0: samer@0: Individual composer's works are archived independently, and each of their samer@0: repositories can be viewed by clicking in the first column of the samer@0: table below. Each composer is assigned a unique three-letter code samer@0: listed in the first column that is the name of the directory in samer@0: the meta-repository which contains each composer's works. samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0:
Ano Anonymous (JRP) (Wikipedia)
Agr Alexander Agricola (JRP) (Wikipedia)
Bus Antoine Busnoys (JRP) (Wikipedia)
Com Loyset Compère (JRP) (Wikipedia)
Duf Guillaume Du Fay (JRP) (Wikipedia)
Jap Jean Japart (JRP) (Wikipedia)
Jos Josquin des Prez (JRP) (Wikipedia)
Mar Johannes Martini (JRP) (Wikipedia)
Mou Jean Mouton (JRP) (Wikipedia)
Obr Jacob Obrecht (JRP) (Wikipedia)
Ock Johannes Ockeghem (JRP) (Wikipedia)
Ort Marbrianus de Orto (JRP) (Wikipedia)
Pip Matthaeus Pipelare (JRP) (Wikipedia)
Reg Johannes Regis (JRP) (Wikipedia)
Rue Pierre de la Rue (JRP) (Wikipedia)
Tin Johannes Tinctoris (JRP) (Wikipedia)
samer@0: samer@0: Within each directory of the repository is a subdirectory samer@0: called ```kern``` that contains the actual scores in the **kern data samer@0: type of the Humdrum data file format. samer@0: samer@0: Currently, composers with complete (or nearly complete) sets of samer@0: encoded works include: Josquin, Ockeghem, La Rue and de Orto. samer@0: samer@0: samer@0: # Filenames # samer@0: samer@0: Each file in the database starts with a unique JRP catalog number. samer@0: This consists of a three-letter composer ID as listed above, samer@0: followed by a four-digit number to represent a specific work by samer@0: that composer. Typically the first digit of the catalog number samer@0: will indicate the genre of the work: 1 for masses, 2 for motets, samer@0: and 3 for secular songs (see the ```!!!AGN``` reference record samer@0: inside of the file for the actual genre designations). The music samer@0: of Josquin is an exception, where the first two digits indicate its samer@0: volume number in the New Josquin Edition, and the last two digits samer@0: indicate the enumerated position of the work within that volume. samer@0: samer@0: After the four-digit work number, an optional letter indicates that samer@0: a *movement*-level encoding of a work is found in the file. This samer@0: system is used for storing mass sections in separate files, where samer@0: "a" is the first section (usually the Kyrie section), "b" is the samer@0: second section (usually the Gloria section), and so on. samer@0: samer@0: Work-level variants are indicated in the catalog number by adding samer@0: a dot after the work number, followed by a variant number (of any samer@0: digit length). Variants at the movement level are indicated by samer@0: placing a dot after the variant letter(s) followed by a variant samer@0: letter (or more than one lower-case letter). If a file contains samer@0: an enumerable subsection of a movement, an optional digit will be samer@0: appended to the catalog number (which may itself be followed by a samer@0: dot and variant digits). Movement subsection numbers are not yet samer@0: present in any datafile (and neither are Movement sub-subsections samer@0: which would alternate back to letters like movement-level labels). samer@0: samer@0: After the catalog number, each filename contains a dash followed samer@0: by title information. The title information may have up to three samer@0: fixed fields, each separated by a dash from the other. The first samer@0: component of the title information is the title of the work. This samer@0: is optionally followed by the title of the movement (i.e., mass samer@0: section names, such as the standard sections: kyrie, gloria, credo, samer@0: sanctus, and agnus [dei]). A third optional section of the title samer@0: in the filename is variant information. Spaces in the title are samer@0: encoded as underscore characters in the filenames. Two underscores samer@0: in a row indicate a slash in the title. No accent marks are given samer@0: in the filename titles since they are samer@0: [POSIX](http://en.wikipedia.org/wiki/POSIX) compliant; see the samer@0: ```!!!OTL``` reference record within each file for the proper samer@0: accentuation of work titles. samer@0: samer@0: Title information in filenames are a courtesy for human beings. As samer@0: such they can be removed from filenames, leaving only the unique samer@0: catalog numbers. (Removing catalog numbers will not result in samer@0: unique filenames since a composer may write several songs with the samer@0: same title). samer@0: samer@0: samer@0: # Download # samer@0: samer@0: To download this Github repository using samer@0: [git](http://en.wikipedia.org/wiki/Git_%29software%29) in a terminal, type: samer@0: samer@0: git clone --recursive https://github.com/josquin-research-project/jrp-scores samer@0: samer@0: The ```--recursive``` option is needed to download each of the samer@0: individual composer repositories inside of the meta-repository. samer@0: samer@0: In a unix terminal, you can check to see if git is installed by samer@0: typing ```which git```. If the terminal replies with a path to samer@0: git, then you can proceed with the above cloning to download the samer@0: repository. If not, then typically you can use a package manager samer@0: to install git, such as ```apt-get install git``` or ```yum install samer@0: git``` in linux. On Apple OS X computers, git can be installed samer@0: directly from [here](http://git-scm.com/download/mac) or by more samer@0: experienced users from a mac package manager such as samer@0: [Homebrew](http://brew.sh). If you have a comicbook-like view of the samer@0: computer world, you can download GUI interfaces for git samer@0: [here](http://git-scm.com/downloads/guis). A [Github/git samer@0: plugin](http://eclipse.github.com) is also available for the Eclipse samer@0: IDE ([watch video](http://www.youtube.com/watch?v=ptK9-CNms98)). samer@0: samer@0: This repository cannot be downloaded in a very useful format from samer@0: the ZIP link on the Github website, since the included repositories samer@0: for each composer will not be included in that ZIP file. You must samer@0: either use [git](http://en.wikipedia.org/wiki/Git_%29software%29) samer@0: software or separately download each of the individual composer's samer@0: ZIP files linked from the table above. Use [this bash samer@0: script](https://gist.github.com/josquin-research-project/8177804) samer@0: to download manually using wget (usually for linux & samer@0: [cygwin](http://www.cygwin.com)), or [this bash samer@0: script](https://gist.github.com/josquin-research-project/8177884) samer@0: for OS X. samer@0: samer@0: samer@0: # Update # samer@0: samer@0: After you have downloaded this repository with `git`, you can check samer@0: periodically for updates for all composers' works using this command: samer@0: samer@0: samer@0: git pull --recurse-submodules
samer@0: git submodule foreach git checkout master samer@0:
samer@0: samer@0: Alternatively, the makefile in the base directory can be used to samer@0: run this command: samer@0: samer@0: make update samer@0: samer@0: If the scores were downloaded manually with one of the two gist samer@0: scripts below, you must re-download all files to check for updates. samer@0: Re-run one of these two scripts using either samer@0: [wget](https://gist.github.com/josquin-research-project/8177804) samer@0: (linux & cygwin) or samer@0: [curl](https://gist.github.com/josquin-research-project/8177884) samer@0: (Apple OS X). samer@0: samer@0: # Processing scores # samer@0: samer@0: The digital scores in this repository are designed to work with the samer@0: [Humdrum Toolkit](http://www.humdrum.org/Humdrum) samer@0: ([github](https://github.com/kroger/humdrum)) as well as [Humdrum samer@0: Extras](http://extra.humdrum.org) samer@0: ([github](https://github.com/craigsapp/humextra)). samer@0: A makefile in the base directory of the repository contains some samer@0: basic processing commands which either require samer@0: [Humdrum Extras](http://extras.humdrum.org) to manipulate the samer@0: data files, or commands (starting with "web") which download data samer@0: generated online by the [JRP website](http://josquin.stanford.edu). samer@0: samer@0: Here are some of the make commands which you can run in the base directory samer@0: of the downloaded repository: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0:
No additional software needed:
make List all of the possible make commands (i.e., this list). samer@0:
make update Download any updates to the online repository. samer@0:
make clean Delete directories of data created by this makefile, such as samer@0: kern-reduced, midi, pdf, samer@0: pdf-notext. samer@0:
make notitle Remove titles from files names and store in directory samer@0: called kern-notitle in each composer's directory. samer@0:
make web-pdf Download PDF files for graphical music scores for each piece from the samer@0: JRP website. samer@0:
make web-pdf-notext Download PDF files for graphical music scores for each piece from the samer@0: JRP website with lyrics removed samer@0: from all parts. samer@0:
make web-reduced Download version of the data file which divides all note durations samer@0: by a factor of four. This data is useful for doing rhythmic samer@0: analysis with the standard Humdrum Toolkit. samer@0:
Humdrum Extras samer@0: installation required:
make reduced Decrease all note durations by a factor of four. Output data samer@0: will be stored in a directory called kern-reduced within samer@0: each composer's directory. Similar to make web-reduced, but samer@0: much faster. samer@0:
make notext Remove lyrics from all parts. Resulting data samer@0: will be stored in a directory called kern-notext within samer@0: each composer's directory. samer@0:
make genres Download works organized by genre from kernScores. samer@0:
Humdrum Toolkit samer@0: installation required:
make census Run census -k on all works. samer@0:
samer@0: samer@0: samer@0: samer@0: ### Rhythm representation considerations ### samer@0: samer@0: For proper rhythmic parsing in the Humdrum Toolkit, some files samer@0: containing rational rhythmic values need to be diminuted by a factor samer@0: of four to convert whole notes (typically the rhythmic level of a samer@0: beat in the early Renaissance), into quarter notes (the typical samer@0: modern rhythmic level for beats). This can be done with the samer@0: [rscale](http://extras.humdrum.org/man/rscale) tool to apply a samer@0: rhythmic scaling of 1/4 to all notes in all scores: samer@0: samer@0: rscale -f 1/4 oldfile > newfile samer@0: samer@0: A makefile in the base directory of this repository ([this samer@0: one](https://github.com/josquin-research-project/jrp-scores/blob/master/Makefile) samer@0: contains instructions to generate reduced rhythmic versions of all samer@0: files. Type (if [Humdrum Extras](https://github.com/craigsapp/humextra) samer@0: is installed): samer@0: samer@0: make reduced samer@0: samer@0: or if humextras is not installed, type: samer@0: samer@0: make web-reduced samer@0: samer@0: to download the reduced form from the JRP website ([example](http://josquin.stanford.edu/data?a=humdrumreduced&f=Jos2721-La_Bernardina)). This will create samer@0: subdirectories in each composer directory named samer@0: ```kern-reduced``` with the reduced rhythmic versions of the data files. samer@0: samer@0: samer@0: samer@0: ### Other example processing ### samer@0: samer@0: Here are some other interesting processing actions: samer@0: samer@0: * Determine works that include text/lyrics: grep -rl '\*\*text' \*/kern/\* samer@0: samer@0: samer@0: # Alternate data access # samer@0: samer@0: ### JRP website ### samer@0: samer@0: The website http://josquin.stanford.edu is a high-level interface samer@0: to these scores, but also includes lower-level access to the data, samer@0: data conversions, and analytic tools using URL parameters in the samer@0: web address. On the JRP website, each score has a "work info" page samer@0: generated with this format: samer@0: samer@0: http://jrp.stanford.edu/cgi-bin/jrp?a=info&f=Jos2721 samer@0: samer@0: Where ```Jos2721``` is the JRP catalog number 2721 from Josquin's samer@0: collection of works, and ```info``` is the *action* being applied samer@0: to the given work (file) which causes the work-info page to be samer@0: displayed. A title may optionally follow the catalog number (with samer@0: exact spelling of the title in the database): samer@0: samer@0: http://jrp.stanford.edu/cgi-bin/jrp?a=info&f=Jos2721-La_Bernardina samer@0: samer@0: A file extension can also be given (.krn in this case) but will samer@0: always be ignored. Example Humdrum data file access by setting the samer@0: *action* to "humdrum": samer@0: samer@0: http://jrp.stanford.edu/cgi-bin/jrp?a=humdrum&f=Jos2721-La_Bernardina samer@0: samer@0: Example MIDI data file access by setting the *action* to "midi": samer@0: samer@0: http://jrp.stanford.edu/cgi-bin/jrp?a=midi&f=Jos2721-La_Bernardina samer@0: samer@0: Example graphical music scores in PDF format with four possible styles: samer@0: * Without editorial accidentals or text: http://jrp.stanford.edu/cgi-bin/jrp?a=notationnoedit&f=Duf1005a-Missa_Se_la_face_ay_pale-Kyrie samer@0: * Without editorial accidentals but with text: http://jrp.stanford.edu/cgi-bin/jrp?a=notationnoeditwithtext&f=Duf1005a-Missa_Se_la_face_ay_pale-Kyrie samer@0: * With editorial accidentals but without text: http://jrp.stanford.edu/cgi-bin/jrp?a=notationwitheditorial&f=Duf1005a-Missa_Se_la_face_ay_pale-Kyrie samer@0: * With editorial accidentals and with text: http://jrp.stanford.edu/cgi-bin/jrp?a=notationwitheditorialwithtext&f=Duf1005a-Missa_Se_la_face_ay_pale-Kyrie samer@0: samer@0: Scores are generated from the original Humdrum **kern scores found samer@0: in this repository for each work, so music notation in the PDF files samer@0: should match exactly. Online PDF files of the scores are created samer@0: using the [hum2muse](http://extra.humdrum.org/man/hum2muse) converter samer@0: which translates Humdrum files into MuseData file which can then samer@0: be converted into PostScript files with samer@0: [muse2ps](http://muse2ps.ccarh.org). samer@0: samer@0: samer@0: ### kernScores website ### samer@0: samer@0: The [kernScores](http://kern.humdrum.org) library of musical scores samer@0: for analysis in the Humdrum Toolkit has a page dedicated to the JRP samer@0: scores: samer@0: samer@0: http://kern.humdrum.org/browse?l=jrp samer@0: samer@0: samer@0: ### Humdrum Extras tools/library ### samer@0: samer@0: The [Humdrum Extras](http://extra.humdrum.org) tools/library samer@0: ([github](https://github.com/craigsapp/humextra)) contains internal samer@0: knowledge for how to download the digital scores on the command samer@0: line. To download from the JRP website, the filename is prefixed samer@0: by ```jrp://```. To download from the kernScores website, the samer@0: prefix is ```humdrum://```, or ```h://``` for short. KernScores samer@0: access requires the exact file name (catalog number, title, file samer@0: extension), while JRP access requires only the catalog number. samer@0: samer@0: Examples: samer@0: samer@0: humcat h://jrp/Jos/Jos2721-La_Bernardina.krn
samer@0: humcat jrp://Jos2721-La_Bernardina.krn
samer@0: humcat jrp://Jos2721
samer@0: samer@0: Since it requires the full filename for accessing individual samer@0: files, the kernScores downloading method is instead mostly useful samer@0: for downloading an entire set of composer's works. Try the following samer@0: humextra command to download all of the works for Ockeghem: samer@0: samer@0: mkdir Ock; cd Ock; humsplit h://jrp/Ock samer@0: samer@0: The kernScores website has five meta-collections of the scores: two for Josquin samer@0: authenticity levels, and three for the main genres of mass, motet and song. These samer@0: can be downloaded like this on the command line: samer@0: samer@0: samer@0: samer@0: samer@0: samer@0:
samer@0: samer@0: Secure Josquin set: samer@0: samer@0: mkdir -p Joa/kern; (cd Joa/kern; humsplit h://jrp/Joa) samer@0:
samer@0: samer@0: Not secure Josquin set: samer@0: samer@0: mkdir -p Job/kern; (cd Job/kern; humsplit h://jrp/Job) samer@0:
samer@0: samer@0: All mass sections: samer@0: samer@0: mkdir -p Zma/kern; (cd Zma/kern; humsplit h://jrp/Zma) samer@0:
samer@0: samer@0: All motets: samer@0: samer@0: mkdir -p Zmo/kern; (cd Zmo/kern; humsplit h://jrp/Zmo) samer@0:
samer@0: samer@0: All songs: samer@0: samer@0: mkdir -p Zso/kern; (cd Zso/kern; humsplit h://jrp/Zso) samer@0:
samer@0: samer@0: Type ```make genres``` in the base directory of the repository if samer@0: [Humdrum Extras](https://github.com/craigsapp/humextras) is installed to samer@0: download the Zma, Zmo, and Zso genre groupings from the kernScores website. samer@0: samer@0: Type ```make Joa; make Job``` in the base directory of the repository if samer@0: [Humdrum Extras](https://github.com/craigsapp/humextras) is installed to samer@0: download the secure and not secure groupings of Josquin music. samer@0: samer@0: samer@0: samer@0: