Difference between revisions of "Humdrum Lab 1"
Line 67: | Line 67: | ||
chor325.krn::1 17=5B1-24=6B4 | chor325.krn::1 17=5B1-24=6B4 | ||
− | This means that the melodic pattern "cdefgabc" occurs in two chorales (190 and 325). In both cases, the bass part (::1) has the pattern. The pattern occurs from note 58 to 65 in the bass part to chorale 190 which is from measure 10 beat 2 until measure 11 beat 3. | + | This means that the melodic pattern "cdefgabc" occurs in two chorales (190 and 325). In both cases, the bass part (::1) has the pattern. The pattern occurs from note 58 to 65 in the bass part to chorale 190 which is from measure 10 beat 2 until measure 11 beat 3. Similarly, the pattern occurs in the bass part of chorale 325 in measure 5 to 6. |
+ | |||
+ | The search matches can be marked in the original data: | ||
+ | themax -p "cdefgabc" chorales.index --loc | theloc -m | less | ||
+ | Each matched note will be prefixed with an "@" sign. Search for these marks in measure 10/11 and 5/6 in the two chorales. | ||
+ | |||
+ | To pull out the measures which contain the matched notes: | ||
+ | themax -p "cdefgabc" chorales.index --loc | theloc -m | myank --marks | ||
+ | |||
+ | To display matches highlighted in graphical notation: | ||
+ | themax -p "cdefgabc" chorales.index --loc | head -n 1 | theloc -m \ | ||
+ | | autostem | hum2muse | muse2ps | ps2pdf - - > output.pdf |
Revision as of 18:03, 11 March 2014
Contents
Bach Chorales
Download
A Humdrum Edition of the Bach Chorales is available at http://kern.ccarh.org/browse?l=371chorales
The data files can be downloaded using the humcat and humsplit commands:
mkdir chorales cd chorales humcat -s h://370chorales | humsplit
This should create 370 files in the format chor001.krn, chor002.krn, chor003.krn, etc.
MIDI rendering
Convert a particular chorale into a MIDI file with this command:
hum2mid chor001.krn -o chor001.mid
Graphical Music Notation
Key
Each chorale is hand-labeled with a musical key. To generate a histogram of key designations in the chorales:
extract -f 1 *.krn | grep '\*.*:' | sort | uniq -c | sort
Questions:
- What is the most common key?
- What is the most common major key?
- What is the most common minor key?
- What is the least common major key (other than zero counts)?
- What is the least common minor key (other than zero counts)?
- How many chorales are labeled as being in a modal key?
Vocal Range
To count all of the notes by pitch-class for each vocal part, use the prange command. Here is a sample command which extracts the bass part data:
extract -f 1 *.krn | prange
or alternatively extracting by text pattern (Bass, Tenor, Alto, Soprano):
extractx -g Bass *.krn | prange
For the bass part, the lowest note is CC (C2) and the highest note is e (E4), with a total vocal range of 28 semitones. The average (base-12) pitch is E- (E-flat 3), which is both the mean and median.
Do a similar vocal range analysis on the other three parts.
Questions:
- Which voice has the widest range?
- What is the highest and lowest note for each vocal part.
Searching
Create a search index for the chorales:
tindex *.krn > chorales.index
Search for the melodic sequence "C D E F G A B C", counting how many times it occurs:
themax -p "cdefgabc" chorales.index | wc -l
To locate the pattern within the music:
themax -p "cdefgabc" chorales.index --loc | theloc
which should return the result:
chor190.krn::1 58=10B2-65=11B3 chor325.krn::1 17=5B1-24=6B4
This means that the melodic pattern "cdefgabc" occurs in two chorales (190 and 325). In both cases, the bass part (::1) has the pattern. The pattern occurs from note 58 to 65 in the bass part to chorale 190 which is from measure 10 beat 2 until measure 11 beat 3. Similarly, the pattern occurs in the bass part of chorale 325 in measure 5 to 6.
The search matches can be marked in the original data:
themax -p "cdefgabc" chorales.index --loc | theloc -m | less
Each matched note will be prefixed with an "@" sign. Search for these marks in measure 10/11 and 5/6 in the two chorales.
To pull out the measures which contain the matched notes:
themax -p "cdefgabc" chorales.index --loc | theloc -m | myank --marks
To display matches highlighted in graphical notation:
themax -p "cdefgabc" chorales.index --loc | head -n 1 | theloc -m \ | autostem | hum2muse | muse2ps | ps2pdf - - > output.pdf