Humdrum lab 4

From CCARH Wiki
Revision as of 17:07, 26 April 2018 by Craig (talk | contribs) (→‎Sonority)
Jump to navigation Jump to search

This lab introduces the digital scores of the Josquin Research Project


Download the data

First download the data by genre:

    cd ~/Desktop
    mkdir jrp
    cd jrp
    mkdir masses
    (cd masses; humsplit h://jrp/Zma)
    mkdir motets
    (cd motets; humsplit h://jrp/Zmo)
    mkdir songs
    (cd songs; humsplit h://jrp/Zso)

There are three basic genres: secular songs, religious songs (motets), and music for the mass ordinary.

You can also download works by composer, such as Jean Mouton:

    humsplit h://jrp/Mou

Ockeghem:

    humsplit h://jrp/Ock

Josquin securely attributed works:

   humsplit h://jrp/Joa

Josquin not securely attributed works:

   humsplit h://jrp/Job

All of Josquin works:

   humsplit h://jrp/Jos


Alternatively, the JRP database is available on github at https://github.com/josquin-research-project/jrp-scores

How much data is there?

How many files:

    cd ~/Desktop/jrp
    ls masses motets songs | grep krn | wc -l

(Github is more recent).


How many notes:

    cat */*.krn | extractx -i **kern | census -k

There are 803,046 notes

By genre:

   for i in masses motets songs
   do 
      echo "$i:"
      cat $i/*.krn | extractx -i **kern | census -k | grep "Number of notes"
   done
Masses 472,034
Motets 258,323
Songs 72,689

Longest songs:


  $ scordur songs/*.krn | sort -k 2 -nr | head -n 10


songs/Jos2918-Nymphes_des_bois__Requiem.krn:	1240
songs/Jos2720-La_belle_se_siet.krn:	1192
songs/Jos2713-Helas_madame.krn:	1144
songs/Jos2723-Lheure_est_venue__Circumdederunt_me.krn:	1048
songs/Jos3009-Regretz_sans_fin.krn:	1040
songs/Jos3011-Se_congie_prens.krn:	792
songs/Jos2905-Du_mien_amant.krn:	736
songs/Ort3006-La_mi_la_sol.krn:	728
songs/Ock3012-Ma_maistresse.krn:	680
songs/Jos2811-Dulces_exuviae.krn:	680

(units of quarter notes)

Shortest masses:

$ scordur masses/*.krn | sort -k 2 -nr | tail -n 10
masses/Ock1004.3a-Missa_Cuiusvis_toni-Kyrie-on_F.krn:	316 
masses/Ock1004.2a-Missa_Cuiusvis_toni-Kyrie-on_E.krn:	316
masses/Ock1004.1a-Missa_Cuiusvis_toni-Kyrie-on_D.krn:	316
masses/Ock1002a-Missa_Au_travail_suis-Kyrie.krn:	304
masses/Jos0904e-Missa_Rosina-Agnus.krn:	296
masses/Rue1005f-Missa_Ave_sanctissima_Maria-Loco_Deo_Gratias.krn:	288
masses/Jos0904d-Missa_Rosina-Sanctus.krn:	276
masses/Rue1020e-Missa_Nunca_fue_pena_mayor-Agnus.krn:	264
masses/Jos1312-Crucifixus.krn:	200
masses/Ock1001a-Kyrie_Gloria_Credo_Sine_nomine-Kyrie.krn:	144

Longest Sanctus sections of masses:


 $ scordur masses/*-Sanctus.krn | sort -k 2 -nr | head -n 10
masses/Ock1003d-Missa_Caput-Sanctus.krn:	2160
masses/Ock1005d-Missa_De_plus_en_plus-Sanctus.krn:	2052
masses/Agr1004d-Missa_Malheur_me_bat-Sanctus.krn:	1968
masses/Mou1020d-Missa_Da_pacem-Sanctus.krn:	1960
masses/Jos0302d-Missa_Da_pacem-Sanctus.krn:	1960
masses/Jos0902d-Missa_Mon_seul_plaisir-Sanctus.krn:	1832
masses/Rue1031d-Missa_Tous_les_regretz-Sanctus.krn:	1808
masses/Jos1102d-Missa_La_sol_fa_re_mi-Sanctus.krn:	1728
masses/Jos0901d-Missa_Malheur_me_bat-Sanctus.krn:	1728
masses/Jos0403d-Missa_Pange_lingua-Sanctus.krn:	1708


Final tone

 $ finalis songs/*.krn | sortcount
58	G 
36	D
27	A
13	F
10	C
7 	E
1	B-

One song with a final on B-flat.

Scale degrees

The music is not in major/minor modes as modern tonal music is conceived, so there is no key designations in the files. There is a script in Humdrum Extras which will add a key designation based on the final tone of the music so that scale degree information can be extracted from the scores:

$ finalis-tonic songs/Jos2724-Madame_helas.krn | less

Calculate scale degrees patterns of length 5 in the B-flat song:

$ finalis-tonic songs/Jos2724-Madame_helas.krn | deg -at | serialize | context -n 5 | ridx -H | sortcount
6	5 4 3 2 1
4	1 7 6 5 6
4	2 3 r 2 3
4	4 3 2 1 4
3	1 7 6 7 1
3	6 5 4 3 4
3	6 5 6 5 1
3	1 7 1 7 1
3	7 6 5 6 5
3	6 2 1 7 6

Calculate scale degrees for all songs:

$ finalis-tonic songs/Jos2724-Madame_helas.krn | deg -at | serialize \
         | grep -v = | context -n 5 | ridx -H | sortcount | head -n 10
6	5 4 3 2 1 
4	2 3 r 2 3
4	1 7 6 5 6
4	4 3 2 1 4
3	4 3 2 1 2
3	6 5 4 3 2
3	2 1 7 6 5
3	1 7 1 7 1
3	3 4 3 2 1
3	5 6 5 4 3

Length-5 scale degree patterns in songs:

$  finalis-tonic songs/* | extractx -i **kern | deg -at | serialize -L \
          | egrep -v '=|r' | context -n 5 | ridx -H | sortcount | head -n 10
427	5 4 3- 2 1
302	3- 2 1 7- 1
297	4 3- 2 1 7-
236	2 1 7- 6 5
219	2 3- 2 1 7-
219	1 2 3- 4 5
198	7- 6 5 4 5
196	1 2 3- 2 1
193	7- 1 2 3- 2
185	1 7- 6 5 4

Exercise: How do the most common scale-degree patterns compare to masses and motets?


Keyscape

The B-flat song has an interesting harmonic structure:

$ mkeyscape -ln Jos2724-Madame_helas.krn | convert - out.png; open out.png
Jos2724-Madame helas.png

Stronger focus on E-flat major triads in the first part, then more B-flat major chords in the second part.


Sonority

The Humdrum Extras tool sonority can be used for basic triadic analysis of sonorities.

$ sonority Jos2724-Madame_helas.krn | ridx -H | sortcount | head -n 10
26	X
16	incmaj:0:B-
13	incmajx3:0:B-
12	incmaj:0:E-
11	maj:0:F
10	incmin:0:D 
9	maj:0:B-
8	maj:0:E-
8	note::B-
7 	incmin:0:G

Only roots:

  sonority -ra Jos2724-Madame_helas.krn | sed 's/qual/cdata/' | pbcopy
Jos2724-Madame helas-roots.png


The "roots" of the first half of the piece:

$ myank -m 1-37 Jos2724-Madame_helas.krn | sonority | ridx -H | sortcount | head -n 10
12	X
7	maj:0:E- 
6	incmajx3:0:B-
6 	incmin:0:D
6	incmaj:0:E-
5	note::B-
5	maj:0:F
4	incmaj:0:B-
4	incmin:0:G
4	min:0:C


The "roots" of the second half of the piece:

$ myank -m 38-$ Jos2724-Madame_helas.krn | sonority | ridx -H | sortcount | head -n 10
14	X
12	incmaj:0:B-
7	maj:0:B-
7	incmajx3:0:B- 
6	maj:0:F
6	incmaj:0:E-
6	incmaj:1:E-
5	maj:1:F
4	incmin:0:D
4	note::F