There's an interesting paper by Casey Mullin: A Canon Within a Canon: The Influence of the 30 berühmte Quartette on the Contemporary Reception of Haydn's String Quartets that has some interesting data tables in it.
I decided it would be great to pry them out of the pdf. And also that code would be easier than a lot of cut and paste.
I surveyed the python options:
- Tabula (relies on java install)
- Camelot (doesn't)
- Earliest Editions of Haydn’s String Quartets (Single Opus Groups)
- Complete Editions of Haydn’s String Quartets (consisting of or including parts), 1801-2014
- Incomplete Editions of Haydn’s String Quartets, 1808-1918: Publication Details
- Incomplete Editions of Haydn’s String Quartets, 1808-1918: Contents
- this is where TCQ is enumerated
- Sequence and numbering of works in the TCQ
- volume breakdown - I: (14q), II: (16q)
- Total Frequency of Haydn String Quartet Recordings
- Good summary stats
- Average Frequency of Haydn String Quartet Recordings
- Summary Stats, not that useful
- Frequency of Haydn String Quartet Recordings, by Time Period
- Average Frequency of Haydn String Quartet Recordings, by Time Period
- Summary Stats, not that useful
- Frequency of Haydn String Quartet Recordings, by Time Period (incomplete opus samplings only)
- Average Frequency of Haydn String Quartet Recordings, by Time Period
(incomplete opus samplings only)
- Summary Stats, not that useful
- SKIPPED BY
camelot
!
- Appendix. Discography of Haydn String Quartets (on Tangible Media)
- Written as the 11th table by
camelot
- Written as the 11th table by
use Camelot
pip install camelot-py
pip install opencv-python
brew install ghostscript tcl-tk
pip install ghostscript
wget "https://cedar.wwu.edu/cgi/viewcontent.cgi?article=2108&context=wwuet" -O canon.pdf -nc
See parse.py
, which opens canon.pdf
and produces 3 files in the directory ./extracted
:
table6.csv
: the contents of table 6 (Total Freq)table8.csv
: the contents of table 8 (Total Freq by time period)recordings.csv
: the appendix
Then run clean.py
which merges Peters volume information with the data in recordings.csv, and does some other cleanup, before producing ./site/recordings.csv
, which should be suitable for visualization. Note: several (5) records in recordings.csv don't have valid / easily parsable Dates. They are skipped.
A crossfilter-powered exploration of './site/recordings.csv' * docs for dc.js are helpful.
Currently just using a single file since it's small and self-contained. TODO: think about pulling in dependencies. https://jsundram.github.io/haydn-canon/
Deploy to github pages:
- On Local Machine
git init -b main
git add .gitignore
# git add other selected files or just `git add .`
gh repo create
- On Github, configure custom action
- use static
- modify the script to point to ./site
- Magically, a site exists!
Please view the visualization here: https://jsundram.github.io/haydn-canon/