# Difference between revisions of "Humdrum lab 5"

This lab is about the wikifonia data.

## Basic information

How many files

```   ls *.krn | wc -l
6710
```

How many have lyrics:

```    grep -l "\*\*text" *.krn | wc -l
5460
```

How many have chords:

```    grep -l "\*\*text" *.krn | wc -l
6282
```

How many have two or more verses:

```    grep -l "\*\*text.*\*\*text" *.krn | wc -l
2006
```

## Polyphonic versus monophonic

How many contain more than one **kern spine (i.e., are polyphonic, probably piano):

```   grep -l "\*\*kern.*\*\*kern" *.krn | wc -l
58
```

WF5118.krn is an example:

This one is interesting because it has invisible chords in the top staff which are realizing the harmonic chords above the staff.

## Duration

What is the duration of all songs if played back-to-back and at the specified tempo without repeats?

```   gettime -T *.krn | tail -n 1
286:50:23.1354 hours
```

What are the longest songs:

```    gettime --simple -T *.krn | sort -k2 -nr | head -n 10
WF6618.krn:	3120
WF0181.krn:	3120
WF0182.krn:	1864
WF3616.krn:	1420
WF6336.krn:	1134
WF5131.krn:	909
WF6068.krn:	785
WF5004.krn:	696
WF3226.krn:	671
WF1249.krn:	664
```

The -k2 option means to sort by the second column of data. -n means to sort numerically rather than alphabetically, and -r means to sort by highest first.

What are the shortest songs:

```    gettime --simple -T *.krn | sort -k2 -nr | tail -n 10
WF2814.krn:	16
WF2806.krn:	16
WF2795.krn:	16
WF2785.krn:	16
WF2856.krn:	14
WF2852.krn:	12
WF2799.krn:	12
WF6338.krn:	8
WF5609.krn:	8
```
``` The shortest song in VHV:
```
```    cat WF5609.krn | pbcopy
```

## Meter

What sort of meters are in the database and how much of each type?

```    beat -Ca *.krn | beat -Ua  | extractx -s '\$1-\$'  | ridx -H | sortcount -p
65.89	4	4
15.44	3	4
11.67	2	2
3.24	2	4
2.78	6	8
0.52	12	8
0.16	5	4
0.14	9	8
0.09	6	4
0.06	3	8
0.01	3	2
0.01	7	4
0     	2	8
0     	7	8
0     	9	4
0     	10	8
0     	17	16
0     	1	2
0     	5	8
0     	1	4
0     	4	8
```

The most common meter is 4/4, where 65% of the music is in that meter.

-C means extract the count of the meter (the top number).

-U means extract the duration unit from the meter (the bottom number).

-C and -U are output once for each measure, so using these are a simple way of counting the number of measures in the scores. If you add -F option with these two options, every data line will display the metrical information.

-a means to append the analysis to the end of the lines (keeping the original input score).

The extract option:

```    -s '\$1-\$'
```

means to extract from one before the last spine to the last spine. \$1 is one before the last spine, \$2 is two before the last spine, and so on.

## Chord labels

How many unique chord labels are there?

```   extractx -i mxhm  * | ridx -H | sortcount | wc -l
1399
```

What are the most common ones:

```   extractx -i mxhm  * | ridx -H | sortcount -p | head -n 10
7.21	C major
6.14	F major
4.94	G major
4.83	G dominant
4.07	C dominant
3.55	D dominant
3.28	B- major
2.81	E- major
2.3	D major
2.25	F dominant
```