One error that the humdrumValidator.js script does not seem to catch (and humdrum_.c does not catch it either) is when the join happens between two spines, rather than between two subspines of one global spine.
Here's an example of this error, followed by the kern:
!!!COM: Scriabin, Alexander
!!!OTL@@FR: Mouvement no 2
!!!OTL@@EN: Movement No. 2
!!!OPR@@FR: Sonate no 4
!!!OPR@@EN: Sonata No. 4
!!!OPS: 30
!!!ONM: 2
!!!ODT: 1903
!!!AGN: Sonata movement
**kern **kern **dynam
*clefF4 *clefF4 *
*k[f#c#g#d#a#e#] *k[f#c#g#d#a#e#] *
*F#: *F#: *
*M12/8 *M12/8 *
=48 =48 =48
*k[f#c#] *k[f#c#] *
4r 8EL .
. 8c#J .
8r 8r .
8r 8G#XL .
8r 8A .
8CC# 8C# 8BJ .
* *^ *
4.FFFn 4.FFn 4E 4A 8eL .
. . 8c#J .
. 8r 8r .
4.FFF#X 4.FF#X 4.C# 4.E 4B .
. . 8E .
*v *v * *
* *clefG2 *
= = =
*- *- *-
!!!system-decoration: {(*)}
!!!filter: flipper -a
!!!RDF**kern: > = above
!!!ENC: Bryan Jacob Bell
!!!END: November 2021 to April 2022
!!!PED: Günter Philipp
!!!PTL: Ausgewählte Klavierwerke (Edition Peters)
Here is the correct version of above:
!!!COM: Scriabin, Alexander
!!!OTL@@FR: Mouvement no 2
!!!OTL@@EN: Movement No. 2
!!!OPR@@FR: Sonate no 4
!!!OPR@@EN: Sonata No. 4
!!!OPS: 30
!!!ONM: 2
!!!ODT: 1903
!!!AGN: Sonata movement
**kern **kern **dynam
*clefF4 *clefF4 *
*k[f#c#g#d#a#e#] *k[f#c#g#d#a#e#] *
*F#: *F#: *
*M12/8 *M12/8 *
=48 =48 =48
*k[f#c#] *k[f#c#] *
4r 8EL .
. 8c#J .
8r 8r .
8r 8G#XL .
8r 8A .
8CC# 8C# 8BJ .
* *^ *
4.FFFn 4.FFn 4E 4A 8eL .
. . 8c#J .
. 8r 8r .
4.FFF#X 4.FF#X 4.C# 4.E 4B .
. . 8E .
* *v *v *
* *clefG2 *
= = =
*- *- *-
!!!system-decoration: {(*)}
!!!filter: flipper -a
!!!RDF**kern: > = above
!!!ENC: Bryan Jacob Bell
!!!END: November 2021 to April 2022
!!!PED: Günter Philipp
!!!PTL: Ausgewählte Klavierwerke (Edition Peters)
One error that the
humdrumValidator.js
script does not seem to catch (andhumdrum_.c
does not catch it either) is when the join happens between two spines, rather than between two subspines of one global spine.Here's an example of this error, followed by the kern:
Here is the correct version of above: