Open derkveen opened 9 months ago
I suspect it is spine splits, and also more likely spine merges which are causing the problem. With music without splits/merges the semitones
filter is working;
So I will check out what the problem is (I created that filter a while ago and haven't used it since, so I have never noticed that problem).
On the command-line terminal, the output of semitones
is visible (VHV suppresses displaying it since it had invalid syntax):
humcat h://chorales/chor001.krn | semitones | rid -G
Output:
**kern **tti **kern **tti **kern **tti **kern **tti
*ICvox *ICvox *ICvox *ICvox *ICvox *ICvox *ICvox *ICvox
*Ibass *Ibass *Itenor *Itenor *Ialto *Ialto *Isoprn *Isoprn
*I"Bass *I"Bass *I"Tenor *I"Tenor *I"Alto *I"Alto *I"Soprano *I"Soprano
*>[A,A,B] *>[A,A,B] *>[A,A,B] *>[A,A,B] *>[A,A,B] *>[A,A,B] *>[A,A,B] *>[A,A,B]
*>norep[A,B] *>norep[A,B] *>norep[A,B] *>norep[A,B] *>norep[A,B] *>norep[A,B] *>norep[A,B] *>norep[A,B]
*>A *>A *>A *>A *>A *>A *>A *>A
*clefF4 *clefF4 *clefGv2 *clefGv2 *clefG2 *clefG2 *clefG2 *clefG2
*k[f#] *k[f#] *k[f#] *k[f#] *k[f#] *k[f#] *k[f#] *k[f#]
*G: *G: *G: *G: *G: *G: *G: *G:
*M3/4 *M3/4 *M3/4 *M3/4 *M3/4 *M3/4 *M3/4 *M3/4
*MM100 *MM100 *MM100 *MM100 *MM100 *MM100 *MM100 *MM100
4GG 12 4B 0 4d 0 4g 0
=1 =1 =1 =1 =1 =1 =1 =1
4G -3 4B 1 4d 2 2g 7
4E 2 8cL -1 4e -2 . .
. . 8BJ -2 . . . .
4F# 1 4A -2 4d 0 4dd -3
=2 =2 =2 =2 =2 =2 =2 =2
4G -5 4G -1 2d -3 4.b -2
4D 2 4F# 1 . . . .
. . . . . . 8a -2
4E -4 4G 5 4B 5 4g 0
=3 =3 =3 =3 =3 =3 =3 =3
4C -1 8cL -1 8eL -2 4.g 2
. . 8BJ 1 8d 2 . .
8BBL -2 4c 2 8e 2 . .
8AAJ -2 . . 8f#J 1 8a 2
4GG 7 4d 0 4g -1 4b -2
=4 =4 =4 =4 =4 =4 =4 =4
2D; -7 2d; 0 2f#; 1 2a; 2
4GG -1 4d -5 4g -5 4b 3
=5 =5 =5 =5 =5 =5 =5 =5
4FF# 1 4A 2 4d 2 2dd -2
4GG 2 4B 1 4e 2 . .
4AA 2 4c 2 4f# 1 4cc -1
=6 =6 =6 =6 =6 =6 =6 =6
4BB 1 4d 2 2g -1 4b -2
4C 2 4e -2 . . 2a -2
4D -7 8dL -2 4f# -4 . .
. . 8cJ -1 . . . .
=7 =7 =7 =7 =7 =7 =7 =7
2GG; 0 2B; 3 2d; 5 2g; 4
=:|! =:|! =:|! =:|! =:|! =:|! =:|! =:|!
*>B *>B *>B *>B *>B *>B *>B *>B
4GG 0 4d 0 [4g -1 4b 0
=8 =8 =8 =8 =8 =8 =8 =8
4GG 2 4d -2 8gL] . 4b 1
. . . . 8f#J -2 . .
4AA 2 4c -1 8eL 2 4cc 2
. . . . 8f#J 1 . .
4BB 0 8BL -2 [4g 2 4dd 0
. . 8AJ 2 . . . .
=9 =9 =9 =9 =9 =9 =9 =9
4.BB -2 8BL 1 8gL] . 4.dd -2
. . 8cJ 2 8aJ -2 . .
. . 4d 0 8gL -1 . .
8AA -2 . . 8f#J 1 8cc -1
4GG 7 4d 0 4g -1 4b -2
=10 =10 =10 =10 =10 =10 =10 =10
2D; 2 2d; -3 2f#; -2 2a; -2
[4E -2 4B -4 4e 0 4g 4
=11 =11 =11 =11 =11 =11 =11 =11
4E] . 4G 4 4e 2 2b 1
4D -2 4B 5 8f#L 1 . .
. . . . 8gJ 2 . .
4C -1 4e -2 4a 0 4cc 2
=12 =12 =12 =12 =12 =12 =12 =12
4.BB 1 2d 0 4a -2 2dd -2
. . . . 4.g -1 . .
8C 2 . . . . . .
4D -7 4d 0 . . 4cc -1
. . . . 8f# 1 . .
=13 =13 =13 =13 =13 =13 =13 =13
8GGL 2 2.d -2 2g -2 2.b -4
8AAJ 2 . . . . . .
4BB -4 . . . . . .
4GG 5 . . 4f -1 . .
=14 =14 =14 =14 =14 =14 =14 =14
2C; -5 2c; 2 2e; 3 2g; 4
4GG -1 4d 0 4g 2 4b 3
=15 =15 =15 =15 =15 =15 =15 =15
4FF# 1 8dL -2 4.a -2 2dd -2
. . 8cJ -1 . . . .
4GG 2 4B 1 . . . .
. . . . 8g -1 . .
4AA 2 4c 2 4f# 1 4cc -1
=16 =16 =16 =16 =16 =16 =16 =16
4BB -4 2d 0 2g -1 2b -2
4GG 7 . . . . . .
4D 2 8dL -2 [4f# -2 4a -2
. . 8cJ -1 . . . .
=17 =17 =17 =17 =17 =17 =17 =17
8EL -2 4B 1 8f#L] . 4.g 2
8D -2 . . 8eJ 0 . .
8C -1 4c 2 8eL 2 . .
8BB -2 . . 8f#J 1 8a 2
8AA -2 4d 0 4g -1 4b -2
8GGJ 7 . . . . . .
=18 =18 =18 =18 =18 =18 =18 =18
2D; 5 2d; 0 2f#; 1 2a; 2
[4G -1 4d 0 4g 2 4b 3
=19 =19 =19 =19 =19 =19 =19 =19
4G] . 2d 2 2a -2 2dd -2
4F# -2 . . . . . .
[4E -2 4e 0 8gL -1 4cc -1
. . . . 8f#J 1 . .
=20 =20 =20 =20 =20 =20 =20 =20
8EL] . 2e -2 2g -1 4b -2
8DJ -2 . . . . . .
4C 2 . . . . 2a -2
4D -7 8dL -2 4f# -4 . .
. . 8cJ -1 . . . .
=21 =21 =21 =21 =21 =21 =21 =21
2GG; . 2B; . 2d; . 2g; .
== == == == == == == ==
*- *- *- *- *- *- *- *-
Checking this output on the command line:
cat input.krn | semitones | rid -G | humdrum | head
The first error is:
humdrum: ERROR 22: Exclusive interpretations do not match for designated
join spines in line 198, file STDIN.
Checking that line in the output:
The problem is as I expect: There are four *v
in a row, and the loose interpretation of these lines are to merge all four of the first spines into a single spine. But this merges **kern
and **tti
, which is bad. This line should be split into two lines with two separate merges for the the two spines. Not backwards compatible with the original Humdrum Toolkit, I could have VHV filters and conversion to notation not allow merging spines of two different data types. One related output option I could generate is creating **tti
analysis data where as a single spine for all notes on the "staff" (all subspines of a given **kern
spine, which would avoid spine splits and merges in the **tti
data).
The semitone filter often results in a red screen. Is there a way to use this filter more flexibly? For example, I couldn't find any errors in the following file, but the semitone filter doesn't work for this file.