diff --git a/audit/classify.py b/audit/classify.py index 08f7c537..e98a05e2 100644 --- a/audit/classify.py +++ b/audit/classify.py @@ -24,6 +24,8 @@ class in O(n), fully reorder-invariant. See D enum-bug text/attr value is a known missing enum member E missing-attribute a partial feature's attribute was dropped F pipeline-error LOADFAIL / GETDATAFAIL / CREATEFAIL (no actual produced) + G supported-drop a dropped element class is marked support="full"/"partial" + (an impl round-trip bug or an api.features.xml overstatement) unknown a FAIL that matched none of the above """ @@ -56,11 +58,12 @@ class in O(n), fully reorder-invariant. See "D": "enum bug", "E": "missing attribute/element", "F": "pipeline error", + "G": "supported-element drop", "unknown": "unknown", } # Categories that are actionable feature gaps (ranked in the worklist). -_ACTIONABLE = frozenset({"B", "D", "E"}) +_ACTIONABLE = frozenset({"B", "D", "E", "G"}) # --------------------------------------------------------------------------- # @@ -375,8 +378,18 @@ def support_of(tag: str) -> str | None: ): cats.append("E") - # Primary = first match in priority order; the rest are secondary. - primary = next((c for c in ("B", "C", "D", "E") if c in cats), None) + # G -- a dropped element class the audit marks support="full"/"partial". + # Either a genuine impl round-trip bug or an api.features.xml overstatement; + # both need human triage (issue #219). Without this the file falls through to + # "unknown", since B requires *every* dropped class to be support="none". + supported_missing = sorted(t for t in missing if support_of(t) in ("full", "partial")) + if supported_missing: + cats.append("G") + + # Primary = first match in priority order; the rest are secondary. G is last + # so a precise enum/attribute finding still wins when one applies; otherwise + # a dropped supported element is surfaced instead of hidden in "unknown". + primary = next((c for c in ("B", "C", "D", "E", "G") if c in cats), None) if primary is None: warn(f"{entry.rel}: unclassified FAIL (missing={rec['missing_elements']}, " f"mismatch={rec['mismatch_type']})") @@ -388,6 +401,8 @@ def support_of(tag: str) -> str | None: # Blocking features: what, if fully supported, would unblock this file. if primary == "B": rec["blocking_features"] = sorted(missing) + elif primary == "G": + rec["blocking_features"] = supported_missing elif primary in ("D", "E") and div is not None and div.element: rec["blocking_features"] = [div.element] @@ -464,7 +479,7 @@ def print_summary(report: dict, out_path: Path) -> None: total = report["summary"]["total"] print(f"Classified {total} files from {report['dump_dir']}\n") - for cat in ("A", "B", "C", "D", "E", "F", "unknown"): + for cat in ("A", "B", "C", "D", "E", "F", "G", "unknown"): n = counts.get(cat, 0) if n == 0 and cat == "A": continue @@ -473,7 +488,7 @@ def print_summary(report: dict, out_path: Path) -> None: ranked = _rank_blocking_features(records) if ranked: - print("\nTop blocking features (ranked by files unblocked; B+D+E):") + print("\nTop blocking features (ranked by files unblocked; B+D+E+G):") for feat, files, single in ranked[:15]: print(f" {feat:<24}{files:>4} files ({single} single-blocker)") diff --git a/audit/tests/test_classify.py b/audit/tests/test_classify.py index b72f6d0a..e80e3da9 100644 --- a/audit/tests/test_classify.py +++ b/audit/tests/test_classify.py @@ -144,6 +144,35 @@ def test_missing_attribute(self) -> None: self.assertEqual(rec["primary_category"], "E") self.assertEqual(rec["mismatch_type"], "attribute-count") + def test_supported_element_drop(self) -> None: + # backup is support="full" but vanishes. That is not category B (which + # needs *every* drop to be support="none"), so it must surface as G + # rather than fall through to "unknown". + self._pair( + "wild/supdrop.xml", + _wrap("1C"), + _wrap("C"), + ) + rec = self._classify()["wild/supdrop.xml"] + self.assertEqual(rec["primary_category"], "G") + self.assertEqual(rec["missing_elements"], ["backup"]) + self.assertEqual(rec["blocking_features"], ["backup"]) + self.assertTrue(rec["is_single_blocker"]) + + def test_mixed_supported_and_none_drop_is_g(self) -> None: + # A supported drop (backup=full) mixed with an unsupported drop + # (credit=none) is G, not B -- and only the supported tag is a blocker. + self._pair( + "wild/mixed.xml", + _wrap("1c"), + _wrap(""), + ) + rec = self._classify()["wild/mixed.xml"] + self.assertEqual(rec["primary_category"], "G") + self.assertEqual(rec["missing_elements"], ["backup", "credit"]) + self.assertEqual(rec["blocking_features"], ["backup"]) + self.assertEqual(rec["secondary_categories"], []) + def test_pipeline_error_with_status(self) -> None: self._pair("wild/load.xml", _wrap(""), None) self._status("wild/load.xml", "LOADFAIL") diff --git a/data/api.features.xml b/data/api.features.xml index 5d0de421..c15e9ea9 100644 --- a/data/api.features.xml +++ b/data/api.features.xml @@ -752,8 +752,12 @@ for-part / part-clef (4.0) not modeled. - - api::PartGroupData; ScoreReader/ScoreWriter. + + + + + + api::PartGroupData via ScoreReader::startPartGroup/ScoreWriter::makePartGroupStart. Round-trips type, number, group-name, group-abbreviation, group-symbol (->bracketType), group-barline (->api::GroupBarline), and group-name-display/group-abbreviation-display as best-effort plain text (->displayName/displayAbbreviation). Partial because group-time and editorial (footnote/level) are not modeled, and formatting attributes on group-name/group-symbol/group-barline/display names (color, default-x, font-*, etc.) are dropped (value only). A part-group start with no matching stop is dropped by design: api::PartGroupData models a complete start..stop span, and an unmatched start is semantically invalid (a constraint beyond XSD). Drives ScoreData.parts ordering; ScoreReader/ScoreWriter. diff --git a/data/synthetic/accent.3.0.xml b/data/synthetic/accent.3.0.xml index 7b294d1d..9c35cd4c 100644 --- a/data/synthetic/accent.3.0.xml +++ b/data/synthetic/accent.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/accidental-mark.3.0.xml b/data/synthetic/accidental-mark.3.0.xml index e1e44d17..4e4c24bf 100644 --- a/data/synthetic/accidental-mark.3.0.xml +++ b/data/synthetic/accidental-mark.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/accidental-mark.3.1.xml b/data/synthetic/accidental-mark.3.1.xml index f5b37b0f..c7ce8c05 100644 --- a/data/synthetic/accidental-mark.3.1.xml +++ b/data/synthetic/accidental-mark.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/accidental-text.3.0.xml b/data/synthetic/accidental-text.3.0.xml index c8db27fe..523b3b3f 100644 --- a/data/synthetic/accidental-text.3.0.xml +++ b/data/synthetic/accidental-text.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/accidental-text.3.1.xml b/data/synthetic/accidental-text.3.1.xml index f62df926..672a2af0 100644 --- a/data/synthetic/accidental-text.3.1.xml +++ b/data/synthetic/accidental-text.3.1.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/accidental.3.0.xml b/data/synthetic/accidental.3.0.xml index ac9da80f..05cb4867 100644 --- a/data/synthetic/accidental.3.0.xml +++ b/data/synthetic/accidental.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/accidental.3.1.xml b/data/synthetic/accidental.3.1.xml index 2a6ede1e..99aa4044 100644 --- a/data/synthetic/accidental.3.1.xml +++ b/data/synthetic/accidental.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/accordion-registration.3.0.xml b/data/synthetic/accordion-registration.3.0.xml index aa74bdef..e55ad8c0 100644 --- a/data/synthetic/accordion-registration.3.0.xml +++ b/data/synthetic/accordion-registration.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/accordion-registration.3.1.xml b/data/synthetic/accordion-registration.3.1.xml index 393d1fa7..d695b3a3 100644 --- a/data/synthetic/accordion-registration.3.1.xml +++ b/data/synthetic/accordion-registration.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/arpeggiate.3.0.xml b/data/synthetic/arpeggiate.3.0.xml index c000ff41..99f2a1dc 100644 --- a/data/synthetic/arpeggiate.3.0.xml +++ b/data/synthetic/arpeggiate.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/arpeggiate.3.1.xml b/data/synthetic/arpeggiate.3.1.xml index 5a137e9d..87f38e71 100644 --- a/data/synthetic/arpeggiate.3.1.xml +++ b/data/synthetic/arpeggiate.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/arpeggiate.4.0.xml b/data/synthetic/arpeggiate.4.0.xml index 9e3618f9..5d1b4c43 100644 --- a/data/synthetic/arpeggiate.4.0.xml +++ b/data/synthetic/arpeggiate.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/arrow-style.3.0.xml b/data/synthetic/arrow-style.3.0.xml index 5d5e97be..f9e77984 100644 --- a/data/synthetic/arrow-style.3.0.xml +++ b/data/synthetic/arrow-style.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/arrow.3.0.xml b/data/synthetic/arrow.3.0.xml index 949dd40a..ae4c8050 100644 --- a/data/synthetic/arrow.3.0.xml +++ b/data/synthetic/arrow.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/arrow.3.1.xml b/data/synthetic/arrow.3.1.xml index 1a16958e..3c1df1d4 100644 --- a/data/synthetic/arrow.3.1.xml +++ b/data/synthetic/arrow.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/arrowhead.3.1.xml b/data/synthetic/arrowhead.3.1.xml index f4e08ba7..693514b7 100644 --- a/data/synthetic/arrowhead.3.1.xml +++ b/data/synthetic/arrowhead.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/articulations.3.1.xml b/data/synthetic/articulations.3.1.xml index cbce83ac..3a1775e6 100644 --- a/data/synthetic/articulations.3.1.xml +++ b/data/synthetic/articulations.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/assess.4.0.xml b/data/synthetic/assess.4.0.xml index 8fd058c1..d0c60d63 100644 --- a/data/synthetic/assess.4.0.xml +++ b/data/synthetic/assess.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/bar-style.3.0.xml b/data/synthetic/bar-style.3.0.xml index 87fbf7f3..6f71eaf2 100644 --- a/data/synthetic/bar-style.3.0.xml +++ b/data/synthetic/bar-style.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/barline.3.0.xml b/data/synthetic/barline.3.0.xml index 00f5978a..e6178ad0 100644 --- a/data/synthetic/barline.3.0.xml +++ b/data/synthetic/barline.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/barline.3.1.xml b/data/synthetic/barline.3.1.xml index 67cd22c2..b4db0af2 100644 --- a/data/synthetic/barline.3.1.xml +++ b/data/synthetic/barline.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/barre.3.0.xml b/data/synthetic/barre.3.0.xml index b485e0a3..3b22c9d7 100644 --- a/data/synthetic/barre.3.0.xml +++ b/data/synthetic/barre.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/bass-alter.3.0.xml b/data/synthetic/bass-alter.3.0.xml index f13f5bd1..46b36733 100644 --- a/data/synthetic/bass-alter.3.0.xml +++ b/data/synthetic/bass-alter.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/bass-separator.4.0.xml b/data/synthetic/bass-separator.4.0.xml index 9a3db5a0..ae68b607 100644 --- a/data/synthetic/bass-separator.4.0.xml +++ b/data/synthetic/bass-separator.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/bass-step.3.0.xml b/data/synthetic/bass-step.3.0.xml index 44a55c95..9ceb4bf8 100644 --- a/data/synthetic/bass-step.3.0.xml +++ b/data/synthetic/bass-step.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/bass.4.0.xml b/data/synthetic/bass.4.0.xml index d30321af..ee09f2b8 100644 --- a/data/synthetic/bass.4.0.xml +++ b/data/synthetic/bass.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/beam.3.0.xml b/data/synthetic/beam.3.0.xml index c84c0883..90c3ff17 100644 --- a/data/synthetic/beam.3.0.xml +++ b/data/synthetic/beam.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/beam.3.1.xml b/data/synthetic/beam.3.1.xml index d2f31190..2b440eef 100644 --- a/data/synthetic/beam.3.1.xml +++ b/data/synthetic/beam.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/beat-repeat.3.0.xml b/data/synthetic/beat-repeat.3.0.xml index c08a8494..27d38edb 100644 --- a/data/synthetic/beat-repeat.3.0.xml +++ b/data/synthetic/beat-repeat.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/beat-type.3.0.xml b/data/synthetic/beat-type.3.0.xml index 4e1ec39f..0e7a6fd4 100644 --- a/data/synthetic/beat-type.3.0.xml +++ b/data/synthetic/beat-type.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/beat-unit-tied.3.1.xml b/data/synthetic/beat-unit-tied.3.1.xml index f26f8bb0..400b4de7 100644 --- a/data/synthetic/beat-unit-tied.3.1.xml +++ b/data/synthetic/beat-unit-tied.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/beater.3.0.xml b/data/synthetic/beater.3.0.xml index 4017c26d..b9a4ebbf 100644 --- a/data/synthetic/beater.3.0.xml +++ b/data/synthetic/beater.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/beats.3.0.xml b/data/synthetic/beats.3.0.xml index 4e1ec39f..0e7a6fd4 100644 --- a/data/synthetic/beats.3.0.xml +++ b/data/synthetic/beats.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/bend.3.0.xml b/data/synthetic/bend.3.0.xml index 42d092be..33fcca0e 100644 --- a/data/synthetic/bend.3.0.xml +++ b/data/synthetic/bend.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/bend.4.0.xml b/data/synthetic/bend.4.0.xml index 7c86e785..f117bca5 100644 --- a/data/synthetic/bend.4.0.xml +++ b/data/synthetic/bend.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/bookmark.3.0.xml b/data/synthetic/bookmark.3.0.xml index 4ca7f5a6..9527d599 100644 --- a/data/synthetic/bookmark.3.0.xml +++ b/data/synthetic/bookmark.3.0.xml @@ -12,7 +12,7 @@ x - + x x diff --git a/data/synthetic/bracket.3.0.xml b/data/synthetic/bracket.3.0.xml index 335355a9..5d6b5627 100644 --- a/data/synthetic/bracket.3.0.xml +++ b/data/synthetic/bracket.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/bracket.3.1.xml b/data/synthetic/bracket.3.1.xml index 1fbbfdf4..bef41fc1 100644 --- a/data/synthetic/bracket.3.1.xml +++ b/data/synthetic/bracket.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/brass-bend.3.1.xml b/data/synthetic/brass-bend.3.1.xml index 391f6778..fa320a49 100644 --- a/data/synthetic/brass-bend.3.1.xml +++ b/data/synthetic/brass-bend.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/breath-mark.3.0.xml b/data/synthetic/breath-mark.3.0.xml index 1f7c149b..215a723a 100644 --- a/data/synthetic/breath-mark.3.0.xml +++ b/data/synthetic/breath-mark.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/caesura.3.0.xml b/data/synthetic/caesura.3.0.xml index 19eb4130..f56c18cf 100644 --- a/data/synthetic/caesura.3.0.xml +++ b/data/synthetic/caesura.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/circular-arrow.3.0.xml b/data/synthetic/circular-arrow.3.0.xml index 8d435a9f..ea572899 100644 --- a/data/synthetic/circular-arrow.3.0.xml +++ b/data/synthetic/circular-arrow.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/clef.3.0.xml b/data/synthetic/clef.3.0.xml index 7843319d..26378018 100644 --- a/data/synthetic/clef.3.0.xml +++ b/data/synthetic/clef.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/clef.3.1.xml b/data/synthetic/clef.3.1.xml index 240cc887..83b9b0bf 100644 --- a/data/synthetic/clef.3.1.xml +++ b/data/synthetic/clef.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/coda.3.0.xml b/data/synthetic/coda.3.0.xml index 4e91e18f..ed43bd69 100644 --- a/data/synthetic/coda.3.0.xml +++ b/data/synthetic/coda.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/coda.3.1.xml b/data/synthetic/coda.3.1.xml index b7c11962..42a935af 100644 --- a/data/synthetic/coda.3.1.xml +++ b/data/synthetic/coda.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/concert-score.4.0.xml b/data/synthetic/concert-score.4.0.xml index dc9f978a..9f9c9f5f 100644 --- a/data/synthetic/concert-score.4.0.xml +++ b/data/synthetic/concert-score.4.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/creator.3.0.xml b/data/synthetic/creator.3.0.xml index 364c7cfb..4f72bd53 100644 --- a/data/synthetic/creator.3.0.xml +++ b/data/synthetic/creator.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/credit-image.3.0.xml b/data/synthetic/credit-image.3.0.xml index eef8916f..e8ea6b23 100644 --- a/data/synthetic/credit-image.3.0.xml +++ b/data/synthetic/credit-image.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/credit-image.3.1.xml b/data/synthetic/credit-image.3.1.xml index 32ab54b0..ad7135be 100644 --- a/data/synthetic/credit-image.3.1.xml +++ b/data/synthetic/credit-image.3.1.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/credit-symbol.3.1.xml b/data/synthetic/credit-symbol.3.1.xml index ab0af6d5..3085f132 100644 --- a/data/synthetic/credit-symbol.3.1.xml +++ b/data/synthetic/credit-symbol.3.1.xml @@ -12,7 +12,7 @@ x - + x x diff --git a/data/synthetic/credit-type.3.0.xml b/data/synthetic/credit-type.3.0.xml index 75cc1af0..4bab75ef 100644 --- a/data/synthetic/credit-type.3.0.xml +++ b/data/synthetic/credit-type.3.0.xml @@ -12,7 +12,7 @@ x - + x x diff --git a/data/synthetic/credit-words.3.0.xml b/data/synthetic/credit-words.3.0.xml index bb1400f1..ae2db5f7 100644 --- a/data/synthetic/credit-words.3.0.xml +++ b/data/synthetic/credit-words.3.0.xml @@ -12,7 +12,7 @@ x - + x x diff --git a/data/synthetic/credit-words.3.1.xml b/data/synthetic/credit-words.3.1.xml index b9b1383e..114c276f 100644 --- a/data/synthetic/credit-words.3.1.xml +++ b/data/synthetic/credit-words.3.1.xml @@ -12,7 +12,7 @@ x - + x x diff --git a/data/synthetic/credit.3.1.xml b/data/synthetic/credit.3.1.xml index fe7703d5..243a32d7 100644 --- a/data/synthetic/credit.3.1.xml +++ b/data/synthetic/credit.3.1.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/damp-all.3.0.xml b/data/synthetic/damp-all.3.0.xml index da3cdd8c..bee09808 100644 --- a/data/synthetic/damp-all.3.0.xml +++ b/data/synthetic/damp-all.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/damp-all.3.1.xml b/data/synthetic/damp-all.3.1.xml index 2a4ff3ee..a1f60e22 100644 --- a/data/synthetic/damp-all.3.1.xml +++ b/data/synthetic/damp-all.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/damp.3.0.xml b/data/synthetic/damp.3.0.xml index 67409af5..7b8322dc 100644 --- a/data/synthetic/damp.3.0.xml +++ b/data/synthetic/damp.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/damp.3.1.xml b/data/synthetic/damp.3.1.xml index 905f820f..41d18f93 100644 --- a/data/synthetic/damp.3.1.xml +++ b/data/synthetic/damp.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/dashes.3.0.xml b/data/synthetic/dashes.3.0.xml index 9d120d37..e8ccf91a 100644 --- a/data/synthetic/dashes.3.0.xml +++ b/data/synthetic/dashes.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/dashes.3.1.xml b/data/synthetic/dashes.3.1.xml index 50dbeee6..b414dfa7 100644 --- a/data/synthetic/dashes.3.1.xml +++ b/data/synthetic/dashes.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/degree-alter.3.0.xml b/data/synthetic/degree-alter.3.0.xml index 2ee9775a..5ee373d4 100644 --- a/data/synthetic/degree-alter.3.0.xml +++ b/data/synthetic/degree-alter.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/degree-type.3.0.xml b/data/synthetic/degree-type.3.0.xml index 73f0ee8d..ea814579 100644 --- a/data/synthetic/degree-type.3.0.xml +++ b/data/synthetic/degree-type.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/degree-value.3.0.xml b/data/synthetic/degree-value.3.0.xml index 0f360e20..409b67bc 100644 --- a/data/synthetic/degree-value.3.0.xml +++ b/data/synthetic/degree-value.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/delayed-inverted-turn.3.0.xml b/data/synthetic/delayed-inverted-turn.3.0.xml index d1ffc8c9..175c9b5f 100644 --- a/data/synthetic/delayed-inverted-turn.3.0.xml +++ b/data/synthetic/delayed-inverted-turn.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/delayed-turn.3.0.xml b/data/synthetic/delayed-turn.3.0.xml index 5cb48a5c..c33f7a16 100644 --- a/data/synthetic/delayed-turn.3.0.xml +++ b/data/synthetic/delayed-turn.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/detached-legato.3.0.xml b/data/synthetic/detached-legato.3.0.xml index 56fa8313..be5c0be5 100644 --- a/data/synthetic/detached-legato.3.0.xml +++ b/data/synthetic/detached-legato.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/direction-type.3.1.xml b/data/synthetic/direction-type.3.1.xml index 384555fc..4bf5e809 100644 --- a/data/synthetic/direction-type.3.1.xml +++ b/data/synthetic/direction-type.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/direction.3.1.xml b/data/synthetic/direction.3.1.xml index 71406e2d..0a466d75 100644 --- a/data/synthetic/direction.3.1.xml +++ b/data/synthetic/direction.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/direction.4.0.xml b/data/synthetic/direction.4.0.xml index fdd1fb73..2577fd0d 100644 --- a/data/synthetic/direction.4.0.xml +++ b/data/synthetic/direction.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/directive.3.0.xml b/data/synthetic/directive.3.0.xml index f087d8d0..9a9d5938 100644 --- a/data/synthetic/directive.3.0.xml +++ b/data/synthetic/directive.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/display-text.3.0.xml b/data/synthetic/display-text.3.0.xml index b1ea121e..c0932746 100644 --- a/data/synthetic/display-text.3.0.xml +++ b/data/synthetic/display-text.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/doit.3.0.xml b/data/synthetic/doit.3.0.xml index f5ffbf2e..7adb29fc 100644 --- a/data/synthetic/doit.3.0.xml +++ b/data/synthetic/doit.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/doit.3.1.xml b/data/synthetic/doit.3.1.xml index dd41e72d..cfe9fc62 100644 --- a/data/synthetic/doit.3.1.xml +++ b/data/synthetic/doit.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/dot.3.0.xml b/data/synthetic/dot.3.0.xml index 7cf43b23..ed9f9b89 100644 --- a/data/synthetic/dot.3.0.xml +++ b/data/synthetic/dot.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/double-tongue.3.0.xml b/data/synthetic/double-tongue.3.0.xml index af9b6db2..2af57551 100644 --- a/data/synthetic/double-tongue.3.0.xml +++ b/data/synthetic/double-tongue.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/double.3.0.xml b/data/synthetic/double.3.0.xml index 59a2a5f8..764df3e1 100644 --- a/data/synthetic/double.3.0.xml +++ b/data/synthetic/double.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/double.4.0.xml b/data/synthetic/double.4.0.xml index f2c36156..baf78a28 100644 --- a/data/synthetic/double.4.0.xml +++ b/data/synthetic/double.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/down-bow.3.0.xml b/data/synthetic/down-bow.3.0.xml index 7b53b9d1..c8dfab24 100644 --- a/data/synthetic/down-bow.3.0.xml +++ b/data/synthetic/down-bow.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/dynamics.3.1.xml b/data/synthetic/dynamics.3.1.xml index eda25140..80c0e1dc 100644 --- a/data/synthetic/dynamics.3.1.xml +++ b/data/synthetic/dynamics.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/effect.3.0.xml b/data/synthetic/effect.3.0.xml index 3905e143..d20a982d 100644 --- a/data/synthetic/effect.3.0.xml +++ b/data/synthetic/effect.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/effect.4.0.xml b/data/synthetic/effect.4.0.xml index 4ea9593a..8f7545a4 100644 --- a/data/synthetic/effect.4.0.xml +++ b/data/synthetic/effect.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/elevation.3.0.xml b/data/synthetic/elevation.3.0.xml index f98e9fa4..e4c80369 100644 --- a/data/synthetic/elevation.3.0.xml +++ b/data/synthetic/elevation.3.0.xml @@ -11,7 +11,7 @@ 1 - + x x diff --git a/data/synthetic/elision.3.0.xml b/data/synthetic/elision.3.0.xml index 25d8148a..fdb78896 100644 --- a/data/synthetic/elision.3.0.xml +++ b/data/synthetic/elision.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/elision.3.1.xml b/data/synthetic/elision.3.1.xml index 40d4e3b4..f5306cf5 100644 --- a/data/synthetic/elision.3.1.xml +++ b/data/synthetic/elision.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/encoder.3.0.xml b/data/synthetic/encoder.3.0.xml index b60ed499..d09b82ed 100644 --- a/data/synthetic/encoder.3.0.xml +++ b/data/synthetic/encoder.3.0.xml @@ -13,7 +13,7 @@ x - + x x diff --git a/data/synthetic/encoding-description.3.0.xml b/data/synthetic/encoding-description.3.0.xml index 3a0c7664..12fc1acc 100644 --- a/data/synthetic/encoding-description.3.0.xml +++ b/data/synthetic/encoding-description.3.0.xml @@ -13,7 +13,7 @@ x - + x x diff --git a/data/synthetic/ending.3.0.xml b/data/synthetic/ending.3.0.xml index 7529fbb5..be3dcdc5 100644 --- a/data/synthetic/ending.3.0.xml +++ b/data/synthetic/ending.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/ending.4.0.xml b/data/synthetic/ending.4.0.xml index b9f0603d..90dc3caa 100644 --- a/data/synthetic/ending.4.0.xml +++ b/data/synthetic/ending.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/except-voice.3.1.xml b/data/synthetic/except-voice.3.1.xml index d529704b..51b61e64 100644 --- a/data/synthetic/except-voice.3.1.xml +++ b/data/synthetic/except-voice.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/extend.3.0.xml b/data/synthetic/extend.3.0.xml index f4316c71..907ab83e 100644 --- a/data/synthetic/extend.3.0.xml +++ b/data/synthetic/extend.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/eyeglasses.3.0.xml b/data/synthetic/eyeglasses.3.0.xml index 5bbe8932..241b392f 100644 --- a/data/synthetic/eyeglasses.3.0.xml +++ b/data/synthetic/eyeglasses.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/eyeglasses.3.1.xml b/data/synthetic/eyeglasses.3.1.xml index a2e8d680..7de16a9d 100644 --- a/data/synthetic/eyeglasses.3.1.xml +++ b/data/synthetic/eyeglasses.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/falloff.3.0.xml b/data/synthetic/falloff.3.0.xml index 0dd6ba16..98c23c4c 100644 --- a/data/synthetic/falloff.3.0.xml +++ b/data/synthetic/falloff.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/falloff.3.1.xml b/data/synthetic/falloff.3.1.xml index 7bb9cf69..3d424d3e 100644 --- a/data/synthetic/falloff.3.1.xml +++ b/data/synthetic/falloff.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/feature.3.0.xml b/data/synthetic/feature.3.0.xml index a60f1ebc..8bf67858 100644 --- a/data/synthetic/feature.3.0.xml +++ b/data/synthetic/feature.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/fermata.3.1.xml b/data/synthetic/fermata.3.1.xml index 12c90fea..8232c4a0 100644 --- a/data/synthetic/fermata.3.1.xml +++ b/data/synthetic/fermata.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/figure-number.3.0.xml b/data/synthetic/figure-number.3.0.xml index c2398897..f4dbdcb0 100644 --- a/data/synthetic/figure-number.3.0.xml +++ b/data/synthetic/figure-number.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/figured-bass.3.0.xml b/data/synthetic/figured-bass.3.0.xml index 89a4e71d..dfed5fcf 100644 --- a/data/synthetic/figured-bass.3.0.xml +++ b/data/synthetic/figured-bass.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/figured-bass.3.1.xml b/data/synthetic/figured-bass.3.1.xml index 15abafac..c55b1481 100644 --- a/data/synthetic/figured-bass.3.1.xml +++ b/data/synthetic/figured-bass.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/figured-bass.4.0.xml b/data/synthetic/figured-bass.4.0.xml index 826df7ec..6a1126fc 100644 --- a/data/synthetic/figured-bass.4.0.xml +++ b/data/synthetic/figured-bass.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/fingering.3.0.xml b/data/synthetic/fingering.3.0.xml index b49fa7f2..a4b48f66 100644 --- a/data/synthetic/fingering.3.0.xml +++ b/data/synthetic/fingering.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/fingernails.3.0.xml b/data/synthetic/fingernails.3.0.xml index 8912fd33..31a76df9 100644 --- a/data/synthetic/fingernails.3.0.xml +++ b/data/synthetic/fingernails.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/first-fret.3.0.xml b/data/synthetic/first-fret.3.0.xml index b80be7b1..5cd6f59a 100644 --- a/data/synthetic/first-fret.3.0.xml +++ b/data/synthetic/first-fret.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/first.4.0.xml b/data/synthetic/first.4.0.xml index 043361d1..6a37a2cf 100644 --- a/data/synthetic/first.4.0.xml +++ b/data/synthetic/first.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/flip.3.1.xml b/data/synthetic/flip.3.1.xml index 5680603f..b88d631a 100644 --- a/data/synthetic/flip.3.1.xml +++ b/data/synthetic/flip.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/footnote.3.0.xml b/data/synthetic/footnote.3.0.xml index 5444fa1a..6b90c75d 100644 --- a/data/synthetic/footnote.3.0.xml +++ b/data/synthetic/footnote.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/for-part.4.0.xml b/data/synthetic/for-part.4.0.xml index af847036..cd3e2b22 100644 --- a/data/synthetic/for-part.4.0.xml +++ b/data/synthetic/for-part.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/frame.3.0.xml b/data/synthetic/frame.3.0.xml index 7719ae34..2a01d3f6 100644 --- a/data/synthetic/frame.3.0.xml +++ b/data/synthetic/frame.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/frame.3.1.xml b/data/synthetic/frame.3.1.xml index 81061087..14afd182 100644 --- a/data/synthetic/frame.3.1.xml +++ b/data/synthetic/frame.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/fret.3.0.xml b/data/synthetic/fret.3.0.xml index e99e1cbf..4982cd15 100644 --- a/data/synthetic/fret.3.0.xml +++ b/data/synthetic/fret.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/function.3.0.xml b/data/synthetic/function.3.0.xml index e01a05d1..b93fadf3 100644 --- a/data/synthetic/function.3.0.xml +++ b/data/synthetic/function.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/glass.3.0.xml b/data/synthetic/glass.3.0.xml index 7a728369..de1c92d7 100644 --- a/data/synthetic/glass.3.0.xml +++ b/data/synthetic/glass.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/glass.3.1.xml b/data/synthetic/glass.3.1.xml index 5ef7a4aa..33be6048 100644 --- a/data/synthetic/glass.3.1.xml +++ b/data/synthetic/glass.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/glissando.3.0.xml b/data/synthetic/glissando.3.0.xml index 87ce6da7..f43830db 100644 --- a/data/synthetic/glissando.3.0.xml +++ b/data/synthetic/glissando.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/glissando.3.1.xml b/data/synthetic/glissando.3.1.xml index 80b2f81c..85d88b1c 100644 --- a/data/synthetic/glissando.3.1.xml +++ b/data/synthetic/glissando.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/glyph.3.1.xml b/data/synthetic/glyph.3.1.xml index 976b5884..f92f0dd1 100644 --- a/data/synthetic/glyph.3.1.xml +++ b/data/synthetic/glyph.3.1.xml @@ -13,7 +13,7 @@ x - + x x diff --git a/data/synthetic/golpe.3.1.xml b/data/synthetic/golpe.3.1.xml index e2d29433..86f12af8 100644 --- a/data/synthetic/golpe.3.1.xml +++ b/data/synthetic/golpe.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/grace.3.0.xml b/data/synthetic/grace.3.0.xml index 00503032..accfdf52 100644 --- a/data/synthetic/grace.3.0.xml +++ b/data/synthetic/grace.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/group-abbreviation-display.3.0.xml b/data/synthetic/group-abbreviation-display.3.0.xml index 412d72b2..53c387c8 100644 --- a/data/synthetic/group-abbreviation-display.3.0.xml +++ b/data/synthetic/group-abbreviation-display.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/group-abbreviation.3.0.xml b/data/synthetic/group-abbreviation.3.0.xml index 4d1d67c3..a99f10f2 100644 --- a/data/synthetic/group-abbreviation.3.0.xml +++ b/data/synthetic/group-abbreviation.3.0.xml @@ -9,7 +9,7 @@ x - + x x diff --git a/data/synthetic/group-barline.3.0.xml b/data/synthetic/group-barline.3.0.xml index f2a1e50a..a8b28734 100644 --- a/data/synthetic/group-barline.3.0.xml +++ b/data/synthetic/group-barline.3.0.xml @@ -9,7 +9,7 @@ x - + x x diff --git a/data/synthetic/group-link.4.0.xml b/data/synthetic/group-link.4.0.xml index 01a13531..acafb224 100644 --- a/data/synthetic/group-link.4.0.xml +++ b/data/synthetic/group-link.4.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/group-name-display.3.0.xml b/data/synthetic/group-name-display.3.0.xml index b7fc01da..509bfa90 100644 --- a/data/synthetic/group-name-display.3.0.xml +++ b/data/synthetic/group-name-display.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/group-name.3.0.xml b/data/synthetic/group-name.3.0.xml index 3515e751..a8c0d89a 100644 --- a/data/synthetic/group-name.3.0.xml +++ b/data/synthetic/group-name.3.0.xml @@ -9,7 +9,7 @@ x - + x x diff --git a/data/synthetic/group-symbol.3.0.xml b/data/synthetic/group-symbol.3.0.xml index 08237550..0f9b2aeb 100644 --- a/data/synthetic/group-symbol.3.0.xml +++ b/data/synthetic/group-symbol.3.0.xml @@ -9,7 +9,7 @@ x - + x x diff --git a/data/synthetic/group-time.3.0.xml b/data/synthetic/group-time.3.0.xml index 7f0d4aa9..146143e7 100644 --- a/data/synthetic/group-time.3.0.xml +++ b/data/synthetic/group-time.3.0.xml @@ -9,7 +9,7 @@ x - + x x diff --git a/data/synthetic/group.3.0.xml b/data/synthetic/group.3.0.xml index 58a64dfa..69ec0ab6 100644 --- a/data/synthetic/group.3.0.xml +++ b/data/synthetic/group.3.0.xml @@ -9,7 +9,7 @@ x 1 - + x x diff --git a/data/synthetic/grouping.3.0.xml b/data/synthetic/grouping.3.0.xml index 23f95d8f..19343f71 100644 --- a/data/synthetic/grouping.3.0.xml +++ b/data/synthetic/grouping.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/grouping.3.1.xml b/data/synthetic/grouping.3.1.xml index 4134433c..bb3f63b8 100644 --- a/data/synthetic/grouping.3.1.xml +++ b/data/synthetic/grouping.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/half-muted.3.1.xml b/data/synthetic/half-muted.3.1.xml index 2164ec75..1c02e089 100644 --- a/data/synthetic/half-muted.3.1.xml +++ b/data/synthetic/half-muted.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/hammer-on.3.0.xml b/data/synthetic/hammer-on.3.0.xml index 5450cf5b..2ec663a9 100644 --- a/data/synthetic/hammer-on.3.0.xml +++ b/data/synthetic/hammer-on.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/handbell.3.0.xml b/data/synthetic/handbell.3.0.xml index 6b918764..2e97934c 100644 --- a/data/synthetic/handbell.3.0.xml +++ b/data/synthetic/handbell.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/harmon-closed.3.1.xml b/data/synthetic/harmon-closed.3.1.xml index 55f8a43c..e71ca82f 100644 --- a/data/synthetic/harmon-closed.3.1.xml +++ b/data/synthetic/harmon-closed.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/harmon-mute.3.1.xml b/data/synthetic/harmon-mute.3.1.xml index 4479540e..5afc011c 100644 --- a/data/synthetic/harmon-mute.3.1.xml +++ b/data/synthetic/harmon-mute.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/harmonic.3.0.xml b/data/synthetic/harmonic.3.0.xml index 1aab46ec..3eaa686f 100644 --- a/data/synthetic/harmonic.3.0.xml +++ b/data/synthetic/harmonic.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/harmony.3.0.xml b/data/synthetic/harmony.3.0.xml index 59703b6f..ebddc353 100644 --- a/data/synthetic/harmony.3.0.xml +++ b/data/synthetic/harmony.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/harmony.3.1.xml b/data/synthetic/harmony.3.1.xml index 0d110002..5da69e31 100644 --- a/data/synthetic/harmony.3.1.xml +++ b/data/synthetic/harmony.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/harmony.4.0.xml b/data/synthetic/harmony.4.0.xml index c709aa65..00cdefb3 100644 --- a/data/synthetic/harmony.4.0.xml +++ b/data/synthetic/harmony.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/harp-pedals.3.0.xml b/data/synthetic/harp-pedals.3.0.xml index cbd72648..620a2ce2 100644 --- a/data/synthetic/harp-pedals.3.0.xml +++ b/data/synthetic/harp-pedals.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/harp-pedals.3.1.xml b/data/synthetic/harp-pedals.3.1.xml index 31f6ba87..2cc3fb6f 100644 --- a/data/synthetic/harp-pedals.3.1.xml +++ b/data/synthetic/harp-pedals.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/haydn.3.1.xml b/data/synthetic/haydn.3.1.xml index 4786adf5..a4fe73b0 100644 --- a/data/synthetic/haydn.3.1.xml +++ b/data/synthetic/haydn.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/heel.3.0.xml b/data/synthetic/heel.3.0.xml index 15496698..fced318d 100644 --- a/data/synthetic/heel.3.0.xml +++ b/data/synthetic/heel.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/hole-closed.3.0.xml b/data/synthetic/hole-closed.3.0.xml index 17809340..e4f157cf 100644 --- a/data/synthetic/hole-closed.3.0.xml +++ b/data/synthetic/hole-closed.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/hole-shape.3.0.xml b/data/synthetic/hole-shape.3.0.xml index c20e252e..fb10b2da 100644 --- a/data/synthetic/hole-shape.3.0.xml +++ b/data/synthetic/hole-shape.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/hole-type.3.0.xml b/data/synthetic/hole-type.3.0.xml index bac3a434..48bfc078 100644 --- a/data/synthetic/hole-type.3.0.xml +++ b/data/synthetic/hole-type.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/hole.3.0.xml b/data/synthetic/hole.3.0.xml index fcfa8c3c..114fbd5a 100644 --- a/data/synthetic/hole.3.0.xml +++ b/data/synthetic/hole.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/humming.3.0.xml b/data/synthetic/humming.3.0.xml index a6186ed9..e6c599fe 100644 --- a/data/synthetic/humming.3.0.xml +++ b/data/synthetic/humming.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/image.3.0.xml b/data/synthetic/image.3.0.xml index 4d068b06..c4149dd4 100644 --- a/data/synthetic/image.3.0.xml +++ b/data/synthetic/image.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/image.3.1.xml b/data/synthetic/image.3.1.xml index 3de9a6f5..4e1d6fe9 100644 --- a/data/synthetic/image.3.1.xml +++ b/data/synthetic/image.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/instrument-abbreviation.3.0.xml b/data/synthetic/instrument-abbreviation.3.0.xml index a8640ec5..4152bee7 100644 --- a/data/synthetic/instrument-abbreviation.3.0.xml +++ b/data/synthetic/instrument-abbreviation.3.0.xml @@ -13,7 +13,7 @@ - + x x diff --git a/data/synthetic/instrument-change.4.0.xml b/data/synthetic/instrument-change.4.0.xml index deb9c43d..a752c3ae 100644 --- a/data/synthetic/instrument-change.4.0.xml +++ b/data/synthetic/instrument-change.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/instrument-link.4.0.xml b/data/synthetic/instrument-link.4.0.xml index 3648e6b5..1d15584b 100644 --- a/data/synthetic/instrument-link.4.0.xml +++ b/data/synthetic/instrument-link.4.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/instrument-name.3.0.xml b/data/synthetic/instrument-name.3.0.xml index 1ae378ae..76048069 100644 --- a/data/synthetic/instrument-name.3.0.xml +++ b/data/synthetic/instrument-name.3.0.xml @@ -12,7 +12,7 @@ - + x x diff --git a/data/synthetic/instrument-sound-enum.3.0.xml b/data/synthetic/instrument-sound-enum.3.0.xml index 01da5399..b0074247 100644 --- a/data/synthetic/instrument-sound-enum.3.0.xml +++ b/data/synthetic/instrument-sound-enum.3.0.xml @@ -13,7 +13,7 @@ - + x x diff --git a/data/synthetic/instrument-sound.3.0.xml b/data/synthetic/instrument-sound.3.0.xml index 5f9ba689..205c8db0 100644 --- a/data/synthetic/instrument-sound.3.0.xml +++ b/data/synthetic/instrument-sound.3.0.xml @@ -13,7 +13,7 @@ - + x x diff --git a/data/synthetic/interchangeable.3.0.xml b/data/synthetic/interchangeable.3.0.xml index 6be8018d..dc771272 100644 --- a/data/synthetic/interchangeable.3.0.xml +++ b/data/synthetic/interchangeable.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/inversion.3.0.xml b/data/synthetic/inversion.3.0.xml index 1ee29fb1..cde569f7 100644 --- a/data/synthetic/inversion.3.0.xml +++ b/data/synthetic/inversion.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/inversion.4.0.xml b/data/synthetic/inversion.4.0.xml index 916c2c79..c7108a8a 100644 --- a/data/synthetic/inversion.4.0.xml +++ b/data/synthetic/inversion.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/inverted-mordent.3.0.xml b/data/synthetic/inverted-mordent.3.0.xml index 6fc0c6f9..47ef7c39 100644 --- a/data/synthetic/inverted-mordent.3.0.xml +++ b/data/synthetic/inverted-mordent.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/inverted-turn.3.0.xml b/data/synthetic/inverted-turn.3.0.xml index 779e67ee..ed249730 100644 --- a/data/synthetic/inverted-turn.3.0.xml +++ b/data/synthetic/inverted-turn.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/inverted-vertical-turn.3.1.xml b/data/synthetic/inverted-vertical-turn.3.1.xml index 40dd36cd..456ab4ef 100644 --- a/data/synthetic/inverted-vertical-turn.3.1.xml +++ b/data/synthetic/inverted-vertical-turn.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/ipa.3.0.xml b/data/synthetic/ipa.3.0.xml index 1d326f98..28158a4d 100644 --- a/data/synthetic/ipa.3.0.xml +++ b/data/synthetic/ipa.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/key-octave.3.0.xml b/data/synthetic/key-octave.3.0.xml index 34373008..8ab07c6d 100644 --- a/data/synthetic/key-octave.3.0.xml +++ b/data/synthetic/key-octave.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/key.3.0.xml b/data/synthetic/key.3.0.xml index 854b5c5b..9511ae3f 100644 --- a/data/synthetic/key.3.0.xml +++ b/data/synthetic/key.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/key.3.1.xml b/data/synthetic/key.3.1.xml index 94d3c738..10d38b37 100644 --- a/data/synthetic/key.3.1.xml +++ b/data/synthetic/key.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/kind.3.0.xml b/data/synthetic/kind.3.0.xml index c959121f..f9b49949 100644 --- a/data/synthetic/kind.3.0.xml +++ b/data/synthetic/kind.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/laughing.3.0.xml b/data/synthetic/laughing.3.0.xml index ea958585..d177a96c 100644 --- a/data/synthetic/laughing.3.0.xml +++ b/data/synthetic/laughing.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/left-divider.3.0.xml b/data/synthetic/left-divider.3.0.xml index 4037e7bb..b60f03cf 100644 --- a/data/synthetic/left-divider.3.0.xml +++ b/data/synthetic/left-divider.3.0.xml @@ -16,7 +16,7 @@ x - + x x diff --git a/data/synthetic/level.3.0.xml b/data/synthetic/level.3.0.xml index 032167b1..f9cd4957 100644 --- a/data/synthetic/level.3.0.xml +++ b/data/synthetic/level.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/level.4.0.xml b/data/synthetic/level.4.0.xml index 189e98d8..dd33b701 100644 --- a/data/synthetic/level.4.0.xml +++ b/data/synthetic/level.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/line-detail.4.0.xml b/data/synthetic/line-detail.4.0.xml index d55332f8..2b3208df 100644 --- a/data/synthetic/line-detail.4.0.xml +++ b/data/synthetic/line-detail.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/link.3.0.xml b/data/synthetic/link.3.0.xml index 304d1dfb..981ee6bb 100644 --- a/data/synthetic/link.3.0.xml +++ b/data/synthetic/link.3.0.xml @@ -12,7 +12,7 @@ x - + x x diff --git a/data/synthetic/listen.4.0.xml b/data/synthetic/listen.4.0.xml index e972e68c..d498b006 100644 --- a/data/synthetic/listen.4.0.xml +++ b/data/synthetic/listen.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/listening.4.0.xml b/data/synthetic/listening.4.0.xml index c615dbc8..fc238370 100644 --- a/data/synthetic/listening.4.0.xml +++ b/data/synthetic/listening.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/lyric-font.3.0.xml b/data/synthetic/lyric-font.3.0.xml index fed34b79..1436916b 100644 --- a/data/synthetic/lyric-font.3.0.xml +++ b/data/synthetic/lyric-font.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/lyric-language.3.0.xml b/data/synthetic/lyric-language.3.0.xml index d188d52d..75262ffd 100644 --- a/data/synthetic/lyric-language.3.0.xml +++ b/data/synthetic/lyric-language.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/lyric.3.0.xml b/data/synthetic/lyric.3.0.xml index e45bafc7..36649729 100644 --- a/data/synthetic/lyric.3.0.xml +++ b/data/synthetic/lyric.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/lyric.3.1.xml b/data/synthetic/lyric.3.1.xml index 3990ea04..b5903f5e 100644 --- a/data/synthetic/lyric.3.1.xml +++ b/data/synthetic/lyric.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/measure-distance.3.0.xml b/data/synthetic/measure-distance.3.0.xml index a252c032..4346eab0 100644 --- a/data/synthetic/measure-distance.3.0.xml +++ b/data/synthetic/measure-distance.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/measure-layout.3.0.xml b/data/synthetic/measure-layout.3.0.xml index 9d52ab26..f6beb76f 100644 --- a/data/synthetic/measure-layout.3.0.xml +++ b/data/synthetic/measure-layout.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/measure-numbering.3.0.xml b/data/synthetic/measure-numbering.3.0.xml index 526b5aa6..b8205549 100644 --- a/data/synthetic/measure-numbering.3.0.xml +++ b/data/synthetic/measure-numbering.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/measure-numbering.4.0.xml b/data/synthetic/measure-numbering.4.0.xml index 98c4e2e7..67514362 100644 --- a/data/synthetic/measure-numbering.4.0.xml +++ b/data/synthetic/measure-numbering.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/measure-repeat.3.0.xml b/data/synthetic/measure-repeat.3.0.xml index d57811af..b85a3d97 100644 --- a/data/synthetic/measure-repeat.3.0.xml +++ b/data/synthetic/measure-repeat.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/measure-style.3.0.xml b/data/synthetic/measure-style.3.0.xml index 589db95f..b40406d6 100644 --- a/data/synthetic/measure-style.3.0.xml +++ b/data/synthetic/measure-style.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/measure-style.3.1.xml b/data/synthetic/measure-style.3.1.xml index c831d2e7..e2ea98b7 100644 --- a/data/synthetic/measure-style.3.1.xml +++ b/data/synthetic/measure-style.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/measure.3.0.xml b/data/synthetic/measure.3.0.xml index 1c1cbe1f..d8573bb3 100644 --- a/data/synthetic/measure.3.0.xml +++ b/data/synthetic/measure.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/measure.3.1.xml b/data/synthetic/measure.3.1.xml index 8407112c..a36caa75 100644 --- a/data/synthetic/measure.3.1.xml +++ b/data/synthetic/measure.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/membrane.3.0.xml b/data/synthetic/membrane.3.0.xml index 54978b6a..ac83ac68 100644 --- a/data/synthetic/membrane.3.0.xml +++ b/data/synthetic/membrane.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/membrane.4.0.xml b/data/synthetic/membrane.4.0.xml index 8883ce92..f9634981 100644 --- a/data/synthetic/membrane.4.0.xml +++ b/data/synthetic/membrane.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/metal.3.0.xml b/data/synthetic/metal.3.0.xml index 17487133..0b0e6310 100644 --- a/data/synthetic/metal.3.0.xml +++ b/data/synthetic/metal.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/metal.4.0.xml b/data/synthetic/metal.4.0.xml index 621e4c13..f6b79f0c 100644 --- a/data/synthetic/metal.4.0.xml +++ b/data/synthetic/metal.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/metronome-arrows.3.1.xml b/data/synthetic/metronome-arrows.3.1.xml index f7a8a7bc..a82a962c 100644 --- a/data/synthetic/metronome-arrows.3.1.xml +++ b/data/synthetic/metronome-arrows.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/metronome-beam.3.0.xml b/data/synthetic/metronome-beam.3.0.xml index 4d47e3d7..8980e0b2 100644 --- a/data/synthetic/metronome-beam.3.0.xml +++ b/data/synthetic/metronome-beam.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/metronome-dot.3.0.xml b/data/synthetic/metronome-dot.3.0.xml index ccba6ebc..06fa6732 100644 --- a/data/synthetic/metronome-dot.3.0.xml +++ b/data/synthetic/metronome-dot.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/metronome-note.3.0.xml b/data/synthetic/metronome-note.3.0.xml index e5cf7cd2..bfac891d 100644 --- a/data/synthetic/metronome-note.3.0.xml +++ b/data/synthetic/metronome-note.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/metronome-relation.3.0.xml b/data/synthetic/metronome-relation.3.0.xml index e5cf7cd2..bfac891d 100644 --- a/data/synthetic/metronome-relation.3.0.xml +++ b/data/synthetic/metronome-relation.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/metronome-tied.3.1.xml b/data/synthetic/metronome-tied.3.1.xml index 85063b66..09288c5d 100644 --- a/data/synthetic/metronome-tied.3.1.xml +++ b/data/synthetic/metronome-tied.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/metronome-tuplet.3.0.xml b/data/synthetic/metronome-tuplet.3.0.xml index 3c774736..3aade063 100644 --- a/data/synthetic/metronome-tuplet.3.0.xml +++ b/data/synthetic/metronome-tuplet.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/metronome-type.3.0.xml b/data/synthetic/metronome-type.3.0.xml index e5cf7cd2..bfac891d 100644 --- a/data/synthetic/metronome-type.3.0.xml +++ b/data/synthetic/metronome-type.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/metronome.3.0.xml b/data/synthetic/metronome.3.0.xml index 6c23ae61..bd06863c 100644 --- a/data/synthetic/metronome.3.0.xml +++ b/data/synthetic/metronome.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/metronome.3.1.xml b/data/synthetic/metronome.3.1.xml index 3c371a1e..14b04b45 100644 --- a/data/synthetic/metronome.3.1.xml +++ b/data/synthetic/metronome.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/metronome.4.0.xml b/data/synthetic/metronome.4.0.xml index f7b43905..b7e05bcc 100644 --- a/data/synthetic/metronome.4.0.xml +++ b/data/synthetic/metronome.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/midi-device.3.0.xml b/data/synthetic/midi-device.3.0.xml index 6e36857d..213f6c47 100644 --- a/data/synthetic/midi-device.3.0.xml +++ b/data/synthetic/midi-device.3.0.xml @@ -9,7 +9,7 @@ x x - + x x diff --git a/data/synthetic/midi-name.3.0.xml b/data/synthetic/midi-name.3.0.xml index 07add2fe..87b513d4 100644 --- a/data/synthetic/midi-name.3.0.xml +++ b/data/synthetic/midi-name.3.0.xml @@ -11,7 +11,7 @@ 1 - + x x diff --git a/data/synthetic/miscellaneous-field.3.0.xml b/data/synthetic/miscellaneous-field.3.0.xml index 521a1a28..c1d9f513 100644 --- a/data/synthetic/miscellaneous-field.3.0.xml +++ b/data/synthetic/miscellaneous-field.3.0.xml @@ -13,7 +13,7 @@ x - + x x diff --git a/data/synthetic/mordent.3.0.xml b/data/synthetic/mordent.3.0.xml index 11738937..a1fd0321 100644 --- a/data/synthetic/mordent.3.0.xml +++ b/data/synthetic/mordent.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/movement-number.3.0.xml b/data/synthetic/movement-number.3.0.xml index c7a71228..5c28898f 100644 --- a/data/synthetic/movement-number.3.0.xml +++ b/data/synthetic/movement-number.3.0.xml @@ -9,7 +9,7 @@ x - + x x diff --git a/data/synthetic/movement-title.3.0.xml b/data/synthetic/movement-title.3.0.xml index 08c9e489..6fe726d9 100644 --- a/data/synthetic/movement-title.3.0.xml +++ b/data/synthetic/movement-title.3.0.xml @@ -9,7 +9,7 @@ x - + x x diff --git a/data/synthetic/multiple-rest.3.0.xml b/data/synthetic/multiple-rest.3.0.xml index 6d759c0b..689bebe2 100644 --- a/data/synthetic/multiple-rest.3.0.xml +++ b/data/synthetic/multiple-rest.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/music-font.3.0.xml b/data/synthetic/music-font.3.0.xml index 22c923e0..73259908 100644 --- a/data/synthetic/music-font.3.0.xml +++ b/data/synthetic/music-font.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/mute.3.0.xml b/data/synthetic/mute.3.0.xml index aa244653..5c7697e2 100644 --- a/data/synthetic/mute.3.0.xml +++ b/data/synthetic/mute.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/n.3.1.xml b/data/synthetic/n.3.1.xml index dbdb0588..366d5b90 100644 --- a/data/synthetic/n.3.1.xml +++ b/data/synthetic/n.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/non-arpeggiate.3.0.xml b/data/synthetic/non-arpeggiate.3.0.xml index d577e37f..70fac18e 100644 --- a/data/synthetic/non-arpeggiate.3.0.xml +++ b/data/synthetic/non-arpeggiate.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/non-arpeggiate.3.1.xml b/data/synthetic/non-arpeggiate.3.1.xml index ac240eaa..648b30cf 100644 --- a/data/synthetic/non-arpeggiate.3.1.xml +++ b/data/synthetic/non-arpeggiate.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/notations.3.0.xml b/data/synthetic/notations.3.0.xml index 6ad92d5f..6028ba5b 100644 --- a/data/synthetic/notations.3.0.xml +++ b/data/synthetic/notations.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/notations.3.1.xml b/data/synthetic/notations.3.1.xml index 94b201f7..de6ee81d 100644 --- a/data/synthetic/notations.3.1.xml +++ b/data/synthetic/notations.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/note.3.0.xml b/data/synthetic/note.3.0.xml index 0d87fa2b..13640da3 100644 --- a/data/synthetic/note.3.0.xml +++ b/data/synthetic/note.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/note.3.1.xml b/data/synthetic/note.3.1.xml index 4f4bc436..7fd380a0 100644 --- a/data/synthetic/note.3.1.xml +++ b/data/synthetic/note.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/notehead-text.3.0.xml b/data/synthetic/notehead-text.3.0.xml index c918219c..aba55f4a 100644 --- a/data/synthetic/notehead-text.3.0.xml +++ b/data/synthetic/notehead-text.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/notehead.3.0.xml b/data/synthetic/notehead.3.0.xml index 0beabbfe..9a6d39fd 100644 --- a/data/synthetic/notehead.3.0.xml +++ b/data/synthetic/notehead.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/notehead.3.1.xml b/data/synthetic/notehead.3.1.xml index ba972831..47600956 100644 --- a/data/synthetic/notehead.3.1.xml +++ b/data/synthetic/notehead.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/numeral-alter.4.0.xml b/data/synthetic/numeral-alter.4.0.xml index 605c5abc..1b1518a3 100644 --- a/data/synthetic/numeral-alter.4.0.xml +++ b/data/synthetic/numeral-alter.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/numeral-fifths.4.0.xml b/data/synthetic/numeral-fifths.4.0.xml index da07bf4e..bf863055 100644 --- a/data/synthetic/numeral-fifths.4.0.xml +++ b/data/synthetic/numeral-fifths.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/numeral-key.4.0.xml b/data/synthetic/numeral-key.4.0.xml index 73b0c452..102ae419 100644 --- a/data/synthetic/numeral-key.4.0.xml +++ b/data/synthetic/numeral-key.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/numeral-mode.4.0.xml b/data/synthetic/numeral-mode.4.0.xml index da07bf4e..bf863055 100644 --- a/data/synthetic/numeral-mode.4.0.xml +++ b/data/synthetic/numeral-mode.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/numeral-root.4.0.xml b/data/synthetic/numeral-root.4.0.xml index 7db79f87..7891b4cc 100644 --- a/data/synthetic/numeral-root.4.0.xml +++ b/data/synthetic/numeral-root.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/numeral.4.0.xml b/data/synthetic/numeral.4.0.xml index b6146eb5..f6ea910b 100644 --- a/data/synthetic/numeral.4.0.xml +++ b/data/synthetic/numeral.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/octave-shift.3.0.xml b/data/synthetic/octave-shift.3.0.xml index 4e9b81b3..e82db6d4 100644 --- a/data/synthetic/octave-shift.3.0.xml +++ b/data/synthetic/octave-shift.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/octave-shift.3.1.xml b/data/synthetic/octave-shift.3.1.xml index f4c042b5..2de6770f 100644 --- a/data/synthetic/octave-shift.3.1.xml +++ b/data/synthetic/octave-shift.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/open-string.3.0.xml b/data/synthetic/open-string.3.0.xml index 4ca01859..9b6b5970 100644 --- a/data/synthetic/open-string.3.0.xml +++ b/data/synthetic/open-string.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/open.3.1.xml b/data/synthetic/open.3.1.xml index d7b08be0..d38871ee 100644 --- a/data/synthetic/open.3.1.xml +++ b/data/synthetic/open.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/opus.3.0.xml b/data/synthetic/opus.3.0.xml index 9df80f4b..a4fb0e68 100644 --- a/data/synthetic/opus.3.0.xml +++ b/data/synthetic/opus.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/ornaments.3.1.xml b/data/synthetic/ornaments.3.1.xml index 40cce9f0..4d2ac3de 100644 --- a/data/synthetic/ornaments.3.1.xml +++ b/data/synthetic/ornaments.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-appearance.3.0.xml b/data/synthetic/other-appearance.3.0.xml index 96cb571c..d8e63041 100644 --- a/data/synthetic/other-appearance.3.0.xml +++ b/data/synthetic/other-appearance.3.0.xml @@ -13,7 +13,7 @@ x - + x x diff --git a/data/synthetic/other-articulation.3.0.xml b/data/synthetic/other-articulation.3.0.xml index 902390f3..d4c95410 100644 --- a/data/synthetic/other-articulation.3.0.xml +++ b/data/synthetic/other-articulation.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-articulation.3.1.xml b/data/synthetic/other-articulation.3.1.xml index 39b0ff46..2967f720 100644 --- a/data/synthetic/other-articulation.3.1.xml +++ b/data/synthetic/other-articulation.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-direction.3.0.xml b/data/synthetic/other-direction.3.0.xml index 864fd914..37523be3 100644 --- a/data/synthetic/other-direction.3.0.xml +++ b/data/synthetic/other-direction.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-direction.3.1.xml b/data/synthetic/other-direction.3.1.xml index be72a6d0..f711f692 100644 --- a/data/synthetic/other-direction.3.1.xml +++ b/data/synthetic/other-direction.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-dynamics.3.0.xml b/data/synthetic/other-dynamics.3.0.xml index dca25676..28682dbd 100644 --- a/data/synthetic/other-dynamics.3.0.xml +++ b/data/synthetic/other-dynamics.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-dynamics.3.1.xml b/data/synthetic/other-dynamics.3.1.xml index f4868494..c2022a02 100644 --- a/data/synthetic/other-dynamics.3.1.xml +++ b/data/synthetic/other-dynamics.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-listen.4.0.xml b/data/synthetic/other-listen.4.0.xml index 2278569d..c4673aef 100644 --- a/data/synthetic/other-listen.4.0.xml +++ b/data/synthetic/other-listen.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-listening.4.0.xml b/data/synthetic/other-listening.4.0.xml index afd114b2..1cb7099b 100644 --- a/data/synthetic/other-listening.4.0.xml +++ b/data/synthetic/other-listening.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-notation.3.0.xml b/data/synthetic/other-notation.3.0.xml index a851b99b..d5891bae 100644 --- a/data/synthetic/other-notation.3.0.xml +++ b/data/synthetic/other-notation.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-notation.3.1.xml b/data/synthetic/other-notation.3.1.xml index 505b9f8c..75467238 100644 --- a/data/synthetic/other-notation.3.1.xml +++ b/data/synthetic/other-notation.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-ornament.3.0.xml b/data/synthetic/other-ornament.3.0.xml index 929999a6..d0a54398 100644 --- a/data/synthetic/other-ornament.3.0.xml +++ b/data/synthetic/other-ornament.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-ornament.3.1.xml b/data/synthetic/other-ornament.3.1.xml index 84580b8d..e5716c48 100644 --- a/data/synthetic/other-ornament.3.1.xml +++ b/data/synthetic/other-ornament.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-percussion.3.0.xml b/data/synthetic/other-percussion.3.0.xml index 1836a1cb..1c5fa130 100644 --- a/data/synthetic/other-percussion.3.0.xml +++ b/data/synthetic/other-percussion.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-percussion.3.1.xml b/data/synthetic/other-percussion.3.1.xml index 9605047b..ce83630f 100644 --- a/data/synthetic/other-percussion.3.1.xml +++ b/data/synthetic/other-percussion.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-play.3.0.xml b/data/synthetic/other-play.3.0.xml index 4f48c2b4..93090299 100644 --- a/data/synthetic/other-play.3.0.xml +++ b/data/synthetic/other-play.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-technical.3.0.xml b/data/synthetic/other-technical.3.0.xml index d08370e1..bc88edff 100644 --- a/data/synthetic/other-technical.3.0.xml +++ b/data/synthetic/other-technical.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/other-technical.3.1.xml b/data/synthetic/other-technical.3.1.xml index 55990509..656d7614 100644 --- a/data/synthetic/other-technical.3.1.xml +++ b/data/synthetic/other-technical.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/part-abbreviation-display.3.0.xml b/data/synthetic/part-abbreviation-display.3.0.xml index 9bb10d7d..e884dbb7 100644 --- a/data/synthetic/part-abbreviation-display.3.0.xml +++ b/data/synthetic/part-abbreviation-display.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/part-abbreviation.3.0.xml b/data/synthetic/part-abbreviation.3.0.xml index f4691822..419daed7 100644 --- a/data/synthetic/part-abbreviation.3.0.xml +++ b/data/synthetic/part-abbreviation.3.0.xml @@ -9,7 +9,7 @@ x x - + x x diff --git a/data/synthetic/part-clef.4.0.xml b/data/synthetic/part-clef.4.0.xml index 73bfcfef..b86a0f4c 100644 --- a/data/synthetic/part-clef.4.0.xml +++ b/data/synthetic/part-clef.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/part-link.4.0.xml b/data/synthetic/part-link.4.0.xml index 82a09f81..102ef78a 100644 --- a/data/synthetic/part-link.4.0.xml +++ b/data/synthetic/part-link.4.0.xml @@ -9,7 +9,7 @@ x - + x x diff --git a/data/synthetic/part-name-display.3.0.xml b/data/synthetic/part-name-display.3.0.xml index 40a31e07..eaad3150 100644 --- a/data/synthetic/part-name-display.3.0.xml +++ b/data/synthetic/part-name-display.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/part-name.3.0.xml b/data/synthetic/part-name.3.0.xml index ffed2ef8..163624c6 100644 --- a/data/synthetic/part-name.3.0.xml +++ b/data/synthetic/part-name.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/part-symbol.3.0.xml b/data/synthetic/part-symbol.3.0.xml index 9b25d5ae..4017ff4f 100644 --- a/data/synthetic/part-symbol.3.0.xml +++ b/data/synthetic/part-symbol.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/part-transpose.4.0.xml b/data/synthetic/part-transpose.4.0.xml index 2b1a2e3a..264b0164 100644 --- a/data/synthetic/part-transpose.4.0.xml +++ b/data/synthetic/part-transpose.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/pedal.3.0.xml b/data/synthetic/pedal.3.0.xml index ad300899..2896124d 100644 --- a/data/synthetic/pedal.3.0.xml +++ b/data/synthetic/pedal.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/pedal.3.1.xml b/data/synthetic/pedal.3.1.xml index 33e71508..95cbb41f 100644 --- a/data/synthetic/pedal.3.1.xml +++ b/data/synthetic/pedal.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/per-minute.3.0.xml b/data/synthetic/per-minute.3.0.xml index 8f64877c..b42ba4f4 100644 --- a/data/synthetic/per-minute.3.0.xml +++ b/data/synthetic/per-minute.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/percussion.3.0.xml b/data/synthetic/percussion.3.0.xml index e660fb1b..c33c2f27 100644 --- a/data/synthetic/percussion.3.0.xml +++ b/data/synthetic/percussion.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/percussion.3.1.xml b/data/synthetic/percussion.3.1.xml index a0950f13..7d0c8a5a 100644 --- a/data/synthetic/percussion.3.1.xml +++ b/data/synthetic/percussion.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/pf.3.1.xml b/data/synthetic/pf.3.1.xml index 0e16e165..5061f9ce 100644 --- a/data/synthetic/pf.3.1.xml +++ b/data/synthetic/pf.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/pitched.3.0.xml b/data/synthetic/pitched.3.0.xml index 6df6dd2a..77a13475 100644 --- a/data/synthetic/pitched.3.0.xml +++ b/data/synthetic/pitched.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/pitched.3.1.xml b/data/synthetic/pitched.3.1.xml index 2c00944f..b61c90a4 100644 --- a/data/synthetic/pitched.3.1.xml +++ b/data/synthetic/pitched.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/play.3.0.xml b/data/synthetic/play.3.0.xml index c05aee0a..1c8b4973 100644 --- a/data/synthetic/play.3.0.xml +++ b/data/synthetic/play.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/player-name.4.0.xml b/data/synthetic/player-name.4.0.xml index dfeec5a8..e915ff2a 100644 --- a/data/synthetic/player-name.4.0.xml +++ b/data/synthetic/player-name.4.0.xml @@ -11,7 +11,7 @@ 1 - + x x diff --git a/data/synthetic/player.4.0.xml b/data/synthetic/player.4.0.xml index dfeec5a8..e915ff2a 100644 --- a/data/synthetic/player.4.0.xml +++ b/data/synthetic/player.4.0.xml @@ -11,7 +11,7 @@ 1 - + x x diff --git a/data/synthetic/plop.3.0.xml b/data/synthetic/plop.3.0.xml index 089d0bc1..19930ab5 100644 --- a/data/synthetic/plop.3.0.xml +++ b/data/synthetic/plop.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/plop.3.1.xml b/data/synthetic/plop.3.1.xml index c876bd77..dbc1ef9f 100644 --- a/data/synthetic/plop.3.1.xml +++ b/data/synthetic/plop.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/pluck.3.0.xml b/data/synthetic/pluck.3.0.xml index f677364a..5b3417a0 100644 --- a/data/synthetic/pluck.3.0.xml +++ b/data/synthetic/pluck.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/prefix.3.0.xml b/data/synthetic/prefix.3.0.xml index 2919dcc5..ef0c02b0 100644 --- a/data/synthetic/prefix.3.0.xml +++ b/data/synthetic/prefix.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/principal-voice.3.0.xml b/data/synthetic/principal-voice.3.0.xml index fcfbc6b2..0da730ab 100644 --- a/data/synthetic/principal-voice.3.0.xml +++ b/data/synthetic/principal-voice.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/principal-voice.3.1.xml b/data/synthetic/principal-voice.3.1.xml index 72b2ee0a..5fa5a821 100644 --- a/data/synthetic/principal-voice.3.1.xml +++ b/data/synthetic/principal-voice.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/print.3.0.xml b/data/synthetic/print.3.0.xml index 665ad7e5..d8ebf4d7 100644 --- a/data/synthetic/print.3.0.xml +++ b/data/synthetic/print.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/print.3.1.xml b/data/synthetic/print.3.1.xml index e301f53b..9c7abce4 100644 --- a/data/synthetic/print.3.1.xml +++ b/data/synthetic/print.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/pull-off.3.0.xml b/data/synthetic/pull-off.3.0.xml index b76167a0..5e41167a 100644 --- a/data/synthetic/pull-off.3.0.xml +++ b/data/synthetic/pull-off.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/rehearsal.3.0.xml b/data/synthetic/rehearsal.3.0.xml index 45322596..a2df6fe5 100644 --- a/data/synthetic/rehearsal.3.0.xml +++ b/data/synthetic/rehearsal.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/rehearsal.3.1.xml b/data/synthetic/rehearsal.3.1.xml index f0d47397..38c45cbd 100644 --- a/data/synthetic/rehearsal.3.1.xml +++ b/data/synthetic/rehearsal.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/relation.3.0.xml b/data/synthetic/relation.3.0.xml index cd61c619..72d061dc 100644 --- a/data/synthetic/relation.3.0.xml +++ b/data/synthetic/relation.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/release.4.0.xml b/data/synthetic/release.4.0.xml index ae358d01..87bb435e 100644 --- a/data/synthetic/release.4.0.xml +++ b/data/synthetic/release.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/repeat.4.0.xml b/data/synthetic/repeat.4.0.xml index b35f30e2..ac55a82a 100644 --- a/data/synthetic/repeat.4.0.xml +++ b/data/synthetic/repeat.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/right-divider.3.0.xml b/data/synthetic/right-divider.3.0.xml index 3082cf8a..4593dd9a 100644 --- a/data/synthetic/right-divider.3.0.xml +++ b/data/synthetic/right-divider.3.0.xml @@ -16,7 +16,7 @@ x - + x x diff --git a/data/synthetic/rights.3.0.xml b/data/synthetic/rights.3.0.xml index 5d22792b..c250f265 100644 --- a/data/synthetic/rights.3.0.xml +++ b/data/synthetic/rights.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/root-alter.3.0.xml b/data/synthetic/root-alter.3.0.xml index f5da5813..70b68309 100644 --- a/data/synthetic/root-alter.3.0.xml +++ b/data/synthetic/root-alter.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/root-step.3.0.xml b/data/synthetic/root-step.3.0.xml index c0744557..fbc1961c 100644 --- a/data/synthetic/root-step.3.0.xml +++ b/data/synthetic/root-step.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/schleifer.3.0.xml b/data/synthetic/schleifer.3.0.xml index 0f445453..2e9340de 100644 --- a/data/synthetic/schleifer.3.0.xml +++ b/data/synthetic/schleifer.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/scoop.3.0.xml b/data/synthetic/scoop.3.0.xml index 421b4ae5..b9ef9e5b 100644 --- a/data/synthetic/scoop.3.0.xml +++ b/data/synthetic/scoop.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/scoop.3.1.xml b/data/synthetic/scoop.3.1.xml index df7829e2..38f7cc07 100644 --- a/data/synthetic/scoop.3.1.xml +++ b/data/synthetic/scoop.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/scordatura.3.1.xml b/data/synthetic/scordatura.3.1.xml index e3094bfd..0146fb38 100644 --- a/data/synthetic/scordatura.3.1.xml +++ b/data/synthetic/scordatura.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/second.4.0.xml b/data/synthetic/second.4.0.xml index 043361d1..6a37a2cf 100644 --- a/data/synthetic/second.4.0.xml +++ b/data/synthetic/second.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/segno.3.0.xml b/data/synthetic/segno.3.0.xml index 80b6f9ce..32036efd 100644 --- a/data/synthetic/segno.3.0.xml +++ b/data/synthetic/segno.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/segno.3.1.xml b/data/synthetic/segno.3.1.xml index 1954bb33..33b3e5b6 100644 --- a/data/synthetic/segno.3.1.xml +++ b/data/synthetic/segno.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/semi-pitched.3.0.xml b/data/synthetic/semi-pitched.3.0.xml index e560bd12..afd76072 100644 --- a/data/synthetic/semi-pitched.3.0.xml +++ b/data/synthetic/semi-pitched.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/senza-misura.3.0.xml b/data/synthetic/senza-misura.3.0.xml index 02daac4e..dc2ffe4d 100644 --- a/data/synthetic/senza-misura.3.0.xml +++ b/data/synthetic/senza-misura.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/sfzp.3.1.xml b/data/synthetic/sfzp.3.1.xml index d21dbf8e..cd73d8a1 100644 --- a/data/synthetic/sfzp.3.1.xml +++ b/data/synthetic/sfzp.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/shake.3.0.xml b/data/synthetic/shake.3.0.xml index 4874fbe8..caf50935 100644 --- a/data/synthetic/shake.3.0.xml +++ b/data/synthetic/shake.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/slash-dot.3.0.xml b/data/synthetic/slash-dot.3.0.xml index 3ea6484b..c079d649 100644 --- a/data/synthetic/slash-dot.3.0.xml +++ b/data/synthetic/slash-dot.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/slash-type.3.0.xml b/data/synthetic/slash-type.3.0.xml index 773a200a..8a8d65d9 100644 --- a/data/synthetic/slash-type.3.0.xml +++ b/data/synthetic/slash-type.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/slash.3.0.xml b/data/synthetic/slash.3.0.xml index cc200526..7ad00440 100644 --- a/data/synthetic/slash.3.0.xml +++ b/data/synthetic/slash.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/slide.3.0.xml b/data/synthetic/slide.3.0.xml index cd783b24..f4d722e3 100644 --- a/data/synthetic/slide.3.0.xml +++ b/data/synthetic/slide.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/slide.3.1.xml b/data/synthetic/slide.3.1.xml index 23a7563b..fcd761b1 100644 --- a/data/synthetic/slide.3.1.xml +++ b/data/synthetic/slide.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/slur.3.0.xml b/data/synthetic/slur.3.0.xml index 88d09719..41b8a646 100644 --- a/data/synthetic/slur.3.0.xml +++ b/data/synthetic/slur.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/slur.3.1.xml b/data/synthetic/slur.3.1.xml index ce0c68a8..0fd0ce9f 100644 --- a/data/synthetic/slur.3.1.xml +++ b/data/synthetic/slur.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/smear.3.1.xml b/data/synthetic/smear.3.1.xml index 435e79c6..464d8c1a 100644 --- a/data/synthetic/smear.3.1.xml +++ b/data/synthetic/smear.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/snap-pizzicato.3.0.xml b/data/synthetic/snap-pizzicato.3.0.xml index 3241aca9..e1577d16 100644 --- a/data/synthetic/snap-pizzicato.3.0.xml +++ b/data/synthetic/snap-pizzicato.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/soft-accent.3.1.xml b/data/synthetic/soft-accent.3.1.xml index bdf2f971..98d5d890 100644 --- a/data/synthetic/soft-accent.3.1.xml +++ b/data/synthetic/soft-accent.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/software.3.0.xml b/data/synthetic/software.3.0.xml index 09dbecd1..205d549f 100644 --- a/data/synthetic/software.3.0.xml +++ b/data/synthetic/software.3.0.xml @@ -13,7 +13,7 @@ x - + x x diff --git a/data/synthetic/sound.3.0.xml b/data/synthetic/sound.3.0.xml index 69855110..28d1fcf4 100644 --- a/data/synthetic/sound.3.0.xml +++ b/data/synthetic/sound.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/sound.3.1.xml b/data/synthetic/sound.3.1.xml index 5ee8bdcf..5f358066 100644 --- a/data/synthetic/sound.3.1.xml +++ b/data/synthetic/sound.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/source.3.0.xml b/data/synthetic/source.3.0.xml index 61390f01..3e204d6d 100644 --- a/data/synthetic/source.3.0.xml +++ b/data/synthetic/source.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/spiccato.3.0.xml b/data/synthetic/spiccato.3.0.xml index ced2b9cc..70c7acf0 100644 --- a/data/synthetic/spiccato.3.0.xml +++ b/data/synthetic/spiccato.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/staccatissimo.3.0.xml b/data/synthetic/staccatissimo.3.0.xml index 40e4aa82..07033829 100644 --- a/data/synthetic/staccatissimo.3.0.xml +++ b/data/synthetic/staccatissimo.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/staccato.3.0.xml b/data/synthetic/staccato.3.0.xml index 82abc705..98406c51 100644 --- a/data/synthetic/staccato.3.0.xml +++ b/data/synthetic/staccato.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/staff-divide.3.1.xml b/data/synthetic/staff-divide.3.1.xml index 8ed6f175..bcf70d35 100644 --- a/data/synthetic/staff-divide.3.1.xml +++ b/data/synthetic/staff-divide.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/staff-size.4.0.xml b/data/synthetic/staff-size.4.0.xml index c054072f..a141ee54 100644 --- a/data/synthetic/staff-size.4.0.xml +++ b/data/synthetic/staff-size.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/staff-type.3.0.xml b/data/synthetic/staff-type.3.0.xml index 43152fed..8c66cdf4 100644 --- a/data/synthetic/staff-type.3.0.xml +++ b/data/synthetic/staff-type.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/stem.3.0.xml b/data/synthetic/stem.3.0.xml index b427958b..845af1fd 100644 --- a/data/synthetic/stem.3.0.xml +++ b/data/synthetic/stem.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/stick-location.3.0.xml b/data/synthetic/stick-location.3.0.xml index d56cfbab..6dc462b7 100644 --- a/data/synthetic/stick-location.3.0.xml +++ b/data/synthetic/stick-location.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/stick-material.3.0.xml b/data/synthetic/stick-material.3.0.xml index cdec94b9..94aea58c 100644 --- a/data/synthetic/stick-material.3.0.xml +++ b/data/synthetic/stick-material.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/stick-type.3.0.xml b/data/synthetic/stick-type.3.0.xml index cdec94b9..94aea58c 100644 --- a/data/synthetic/stick-type.3.0.xml +++ b/data/synthetic/stick-type.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/stick.3.0.xml b/data/synthetic/stick.3.0.xml index eb96e532..6d3bef5f 100644 --- a/data/synthetic/stick.3.0.xml +++ b/data/synthetic/stick.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/stick.3.1.xml b/data/synthetic/stick.3.1.xml index d6150760..1a4eec32 100644 --- a/data/synthetic/stick.3.1.xml +++ b/data/synthetic/stick.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/stopped.3.0.xml b/data/synthetic/stopped.3.0.xml index cda033ae..5ce562ae 100644 --- a/data/synthetic/stopped.3.0.xml +++ b/data/synthetic/stopped.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/stopped.3.1.xml b/data/synthetic/stopped.3.1.xml index 0f195212..78d6ed08 100644 --- a/data/synthetic/stopped.3.1.xml +++ b/data/synthetic/stopped.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/straight.4.0.xml b/data/synthetic/straight.4.0.xml index ff2d7dcb..a760f5f4 100644 --- a/data/synthetic/straight.4.0.xml +++ b/data/synthetic/straight.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/stress.3.0.xml b/data/synthetic/stress.3.0.xml index c7171ef6..459eb5a3 100644 --- a/data/synthetic/stress.3.0.xml +++ b/data/synthetic/stress.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/string-mute.3.0.xml b/data/synthetic/string-mute.3.0.xml index 2d8f87d3..9998ba5b 100644 --- a/data/synthetic/string-mute.3.0.xml +++ b/data/synthetic/string-mute.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/string-mute.3.1.xml b/data/synthetic/string-mute.3.1.xml index 5ecaee9e..9bebb124 100644 --- a/data/synthetic/string-mute.3.1.xml +++ b/data/synthetic/string-mute.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/string.3.0.xml b/data/synthetic/string.3.0.xml index fb72087e..a7963e45 100644 --- a/data/synthetic/string.3.0.xml +++ b/data/synthetic/string.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/strong-accent.3.0.xml b/data/synthetic/strong-accent.3.0.xml index d4fc6767..4ef54c9f 100644 --- a/data/synthetic/strong-accent.3.0.xml +++ b/data/synthetic/strong-accent.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/suffix.3.0.xml b/data/synthetic/suffix.3.0.xml index 147f77e1..b2f61e3e 100644 --- a/data/synthetic/suffix.3.0.xml +++ b/data/synthetic/suffix.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/swing-style.4.0.xml b/data/synthetic/swing-style.4.0.xml index 3fe6ff09..10e33748 100644 --- a/data/synthetic/swing-style.4.0.xml +++ b/data/synthetic/swing-style.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/swing-type.4.0.xml b/data/synthetic/swing-type.4.0.xml index d0e6b554..ebd75684 100644 --- a/data/synthetic/swing-type.4.0.xml +++ b/data/synthetic/swing-type.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/swing.4.0.xml b/data/synthetic/swing.4.0.xml index ff2d7dcb..a760f5f4 100644 --- a/data/synthetic/swing.4.0.xml +++ b/data/synthetic/swing.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/symbol.3.1.xml b/data/synthetic/symbol.3.1.xml index f2b5967a..52267558 100644 --- a/data/synthetic/symbol.3.1.xml +++ b/data/synthetic/symbol.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/sync.4.0.xml b/data/synthetic/sync.4.0.xml index 44f2d3a1..952d8981 100644 --- a/data/synthetic/sync.4.0.xml +++ b/data/synthetic/sync.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/tap.3.0.xml b/data/synthetic/tap.3.0.xml index 920530f9..072b6cbc 100644 --- a/data/synthetic/tap.3.0.xml +++ b/data/synthetic/tap.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/tap.3.1.xml b/data/synthetic/tap.3.1.xml index b88a801e..383595d8 100644 --- a/data/synthetic/tap.3.1.xml +++ b/data/synthetic/tap.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/technical.3.1.xml b/data/synthetic/technical.3.1.xml index 082d756e..2a74b8e5 100644 --- a/data/synthetic/technical.3.1.xml +++ b/data/synthetic/technical.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/tenuto.3.0.xml b/data/synthetic/tenuto.3.0.xml index ffa47b36..fe3187c1 100644 --- a/data/synthetic/tenuto.3.0.xml +++ b/data/synthetic/tenuto.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/text.3.0.xml b/data/synthetic/text.3.0.xml index c6c24409..26fc5fe5 100644 --- a/data/synthetic/text.3.0.xml +++ b/data/synthetic/text.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/thumb-position.3.0.xml b/data/synthetic/thumb-position.3.0.xml index 58339f11..d834897a 100644 --- a/data/synthetic/thumb-position.3.0.xml +++ b/data/synthetic/thumb-position.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/tie.3.0.xml b/data/synthetic/tie.3.0.xml index 4fb8f958..3d5bb342 100644 --- a/data/synthetic/tie.3.0.xml +++ b/data/synthetic/tie.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/tied.3.0.xml b/data/synthetic/tied.3.0.xml index 62e8534c..86a04fd1 100644 --- a/data/synthetic/tied.3.0.xml +++ b/data/synthetic/tied.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/tied.3.1.xml b/data/synthetic/tied.3.1.xml index 038d8e7d..626ed225 100644 --- a/data/synthetic/tied.3.1.xml +++ b/data/synthetic/tied.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/time-relation.3.0.xml b/data/synthetic/time-relation.3.0.xml index 08461428..9be69c92 100644 --- a/data/synthetic/time-relation.3.0.xml +++ b/data/synthetic/time-relation.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/time.3.0.xml b/data/synthetic/time.3.0.xml index 37bfa55d..fa796dec 100644 --- a/data/synthetic/time.3.0.xml +++ b/data/synthetic/time.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/time.3.1.xml b/data/synthetic/time.3.1.xml index 3dcf8f37..ac3ac17b 100644 --- a/data/synthetic/time.3.1.xml +++ b/data/synthetic/time.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/timpani.3.0.xml b/data/synthetic/timpani.3.0.xml index ce76e328..2c833f7f 100644 --- a/data/synthetic/timpani.3.0.xml +++ b/data/synthetic/timpani.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/timpani.4.0.xml b/data/synthetic/timpani.4.0.xml index 3b71c84c..19d01276 100644 --- a/data/synthetic/timpani.4.0.xml +++ b/data/synthetic/timpani.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/toe.3.0.xml b/data/synthetic/toe.3.0.xml index 018971a1..aac1dfd9 100644 --- a/data/synthetic/toe.3.0.xml +++ b/data/synthetic/toe.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/transpose.3.0.xml b/data/synthetic/transpose.3.0.xml index 4a6fd509..ace03917 100644 --- a/data/synthetic/transpose.3.0.xml +++ b/data/synthetic/transpose.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/transpose.3.1.xml b/data/synthetic/transpose.3.1.xml index 26aeff4c..80a1bffd 100644 --- a/data/synthetic/transpose.3.1.xml +++ b/data/synthetic/transpose.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/tremolo.3.0.xml b/data/synthetic/tremolo.3.0.xml index ab46a6a2..db26cb10 100644 --- a/data/synthetic/tremolo.3.0.xml +++ b/data/synthetic/tremolo.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/tremolo.3.1.xml b/data/synthetic/tremolo.3.1.xml index ab7d863b..da03db47 100644 --- a/data/synthetic/tremolo.3.1.xml +++ b/data/synthetic/tremolo.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/trill-mark.3.0.xml b/data/synthetic/trill-mark.3.0.xml index 0d780b0d..60ebc2bc 100644 --- a/data/synthetic/trill-mark.3.0.xml +++ b/data/synthetic/trill-mark.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/triple-tongue.3.0.xml b/data/synthetic/triple-tongue.3.0.xml index 582aca51..4ed79d9b 100644 --- a/data/synthetic/triple-tongue.3.0.xml +++ b/data/synthetic/triple-tongue.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/tuplet-dot.3.0.xml b/data/synthetic/tuplet-dot.3.0.xml index 5a33db4c..b9ce6d6a 100644 --- a/data/synthetic/tuplet-dot.3.0.xml +++ b/data/synthetic/tuplet-dot.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/tuplet-number.3.0.xml b/data/synthetic/tuplet-number.3.0.xml index 486fe877..e238c93c 100644 --- a/data/synthetic/tuplet-number.3.0.xml +++ b/data/synthetic/tuplet-number.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/tuplet-type.3.0.xml b/data/synthetic/tuplet-type.3.0.xml index 14b56acb..9f56a7aa 100644 --- a/data/synthetic/tuplet-type.3.0.xml +++ b/data/synthetic/tuplet-type.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/tuplet.3.0.xml b/data/synthetic/tuplet.3.0.xml index 44d31115..e94a32c1 100644 --- a/data/synthetic/tuplet.3.0.xml +++ b/data/synthetic/tuplet.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/tuplet.3.1.xml b/data/synthetic/tuplet.3.1.xml index ac78b5f4..c2be3ce1 100644 --- a/data/synthetic/tuplet.3.1.xml +++ b/data/synthetic/tuplet.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/turn.3.0.xml b/data/synthetic/turn.3.0.xml index f36ec176..37e822a7 100644 --- a/data/synthetic/turn.3.0.xml +++ b/data/synthetic/turn.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/unstress.3.0.xml b/data/synthetic/unstress.3.0.xml index 2a545efb..6f363ed1 100644 --- a/data/synthetic/unstress.3.0.xml +++ b/data/synthetic/unstress.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/up-bow.3.0.xml b/data/synthetic/up-bow.3.0.xml index b7c845f6..51531409 100644 --- a/data/synthetic/up-bow.3.0.xml +++ b/data/synthetic/up-bow.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/vertical-turn.3.0.xml b/data/synthetic/vertical-turn.3.0.xml index a83182ca..5a7d262b 100644 --- a/data/synthetic/vertical-turn.3.0.xml +++ b/data/synthetic/vertical-turn.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/virtual-library.3.0.xml b/data/synthetic/virtual-library.3.0.xml index e109748c..1bc98e99 100644 --- a/data/synthetic/virtual-library.3.0.xml +++ b/data/synthetic/virtual-library.3.0.xml @@ -15,7 +15,7 @@ - + x x diff --git a/data/synthetic/virtual-name.3.0.xml b/data/synthetic/virtual-name.3.0.xml index 496c3490..a862d68a 100644 --- a/data/synthetic/virtual-name.3.0.xml +++ b/data/synthetic/virtual-name.3.0.xml @@ -15,7 +15,7 @@ - + x x diff --git a/data/synthetic/voice.3.0.xml b/data/synthetic/voice.3.0.xml index ee0e39a0..101aada1 100644 --- a/data/synthetic/voice.3.0.xml +++ b/data/synthetic/voice.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/wait.4.0.xml b/data/synthetic/wait.4.0.xml index 4f2fd16b..d37aead9 100644 --- a/data/synthetic/wait.4.0.xml +++ b/data/synthetic/wait.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/wavy-line.3.0.xml b/data/synthetic/wavy-line.3.0.xml index 5982c969..23dfdaa7 100644 --- a/data/synthetic/wavy-line.3.0.xml +++ b/data/synthetic/wavy-line.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/wavy-line.4.0.xml b/data/synthetic/wavy-line.4.0.xml index 26fbad7a..dcd9cd84 100644 --- a/data/synthetic/wavy-line.4.0.xml +++ b/data/synthetic/wavy-line.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/wedge.3.0.xml b/data/synthetic/wedge.3.0.xml index 5cb6099c..a7171e2a 100644 --- a/data/synthetic/wedge.3.0.xml +++ b/data/synthetic/wedge.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/wedge.3.1.xml b/data/synthetic/wedge.3.1.xml index 7449a233..c7bba4c8 100644 --- a/data/synthetic/wedge.3.1.xml +++ b/data/synthetic/wedge.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/with-bar.3.0.xml b/data/synthetic/with-bar.3.0.xml index cdec68c2..708df99c 100644 --- a/data/synthetic/with-bar.3.0.xml +++ b/data/synthetic/with-bar.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/wood.3.0.xml b/data/synthetic/wood.3.0.xml index 4eb12aeb..449a21f1 100644 --- a/data/synthetic/wood.3.0.xml +++ b/data/synthetic/wood.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/wood.4.0.xml b/data/synthetic/wood.4.0.xml index 347e2440..fd3ad96c 100644 --- a/data/synthetic/wood.4.0.xml +++ b/data/synthetic/wood.4.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/word-font.3.0.xml b/data/synthetic/word-font.3.0.xml index 4611c3eb..60d7885c 100644 --- a/data/synthetic/word-font.3.0.xml +++ b/data/synthetic/word-font.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/words.3.0.xml b/data/synthetic/words.3.0.xml index 75dd7f16..389ccb48 100644 --- a/data/synthetic/words.3.0.xml +++ b/data/synthetic/words.3.0.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/words.3.1.xml b/data/synthetic/words.3.1.xml index e284d8a6..131f3f9f 100644 --- a/data/synthetic/words.3.1.xml +++ b/data/synthetic/words.3.1.xml @@ -8,7 +8,7 @@ x - + x x diff --git a/data/synthetic/work-number.3.0.xml b/data/synthetic/work-number.3.0.xml index 6c35faad..918e4ca6 100644 --- a/data/synthetic/work-number.3.0.xml +++ b/data/synthetic/work-number.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/data/synthetic/work-title.3.0.xml b/data/synthetic/work-title.3.0.xml index 54609090..e5080335 100644 --- a/data/synthetic/work-title.3.0.xml +++ b/data/synthetic/work-title.3.0.xml @@ -11,7 +11,7 @@ x - + x x diff --git a/docs/ai/design/api-roundtrip-classifier.md b/docs/ai/design/api-roundtrip-classifier.md index e72c2efd..ab9c82bf 100644 --- a/docs/ai/design/api-roundtrip-classifier.md +++ b/docs/ai/design/api-roundtrip-classifier.md @@ -178,15 +178,25 @@ presence/absence of `.actual.xml` remains the FAIL-vs-pipeline-error signal; the `.status` sidecar only refines *which* pipeline error. The sidecar lives in the gitignored dump dir and is never checked in. -### A note on `support="full"`/`"partial"` drops +### Category G — `support="full"`/`"partial"` drops A dropped element whose `api.features.xml` support is `full` or `partial` does **not** satisfy category B (drop-only) — B requires *every* missing class to be -`support="none"`. Such a file falls through to `unknown` and is logged, because a -class that is supposed to round-trip but vanished is a genuine correctness bug or -a partial-drop, not an expected feature gap. This is the intended behavior: the -multiset makes the distinction provable across the whole file rather than hiding -it behind whatever the first positional divergence happened to be. +`support="none"`. A class that is supposed to round-trip but vanished is either a +genuine impl round-trip bug or an `api.features.xml` overstatement; both are +actionable and need human triage (issue #219). These files are assigned +**category G**, with the dropped supported classes as their `blocking_features`, +rather than being buried in `unknown`. G is evaluated last (after B/C/D/E), so a +precise enum (D) or attribute (E) finding still wins when the first divergence +matches one; otherwise the supported drop is surfaced. The multiset makes this +provable across the whole file rather than hiding it behind whatever the first +positional divergence happened to be. + +`part-group` was the motivating case: marked `support="full"` yet the single +most-dropped element, which turned out to be partly an audit overstatement +(corrected to `partial`) and partly malformed synthetic input (unmatched +start/stop, fixed in the corpus). Surfacing such drops as G instead of `unknown` +is what makes that triage discoverable. ## Dependency decision diff --git a/src/include/mx/api/PartGroupData.h b/src/include/mx/api/PartGroupData.h index b1719abc..8743865b 100644 --- a/src/include/mx/api/PartGroupData.h +++ b/src/include/mx/api/PartGroupData.h @@ -21,6 +21,17 @@ enum class BracketType square }; +// Whether the group should have common barlines, mirroring the MusicXML +// element. `unspecified` means the source carried no +// (and none is written back). +enum class GroupBarline +{ + unspecified, + yes, + no, + mensurstrich +}; + // The part-group element indicates groupings of parts in the score, usually indicated // by braces and brackets. Braces that are used for multi-staff parts should be defined // in the attributes element for that part. The part-group start element appears before @@ -46,7 +57,7 @@ class PartGroupData std::string abbreviation; std::string displayAbbreviation; BracketType bracketType; - // TODO - group barline + GroupBarline groupBarline; // TODO - group time // TODO - group editorial @@ -55,7 +66,9 @@ class PartGroupData // -1 indicates the absence of a number attribute int number; - PartGroupData() : firstPartIndex{-1}, lastPartIndex{-1}, name{}, number{-1} + PartGroupData() + : firstPartIndex{-1}, lastPartIndex{-1}, name{}, bracketType{BracketType::unspecified}, + groupBarline{GroupBarline::unspecified}, number{-1} { } }; @@ -67,6 +80,8 @@ MXAPI_EQUALS_MEMBER(name) MXAPI_EQUALS_MEMBER(displayName) MXAPI_EQUALS_MEMBER(abbreviation) MXAPI_EQUALS_MEMBER(displayAbbreviation) +MXAPI_EQUALS_MEMBER(bracketType) +MXAPI_EQUALS_MEMBER(groupBarline) MXAPI_EQUALS_END; MXAPI_NOT_EQUALS_AND_VECTORS(PartGroupData); } // namespace api diff --git a/src/private/mx/impl/Converter.cpp b/src/private/mx/impl/Converter.cpp index 3a1fd4dc..ecf1e656 100644 --- a/src/private/mx/impl/Converter.cpp +++ b/src/private/mx/impl/Converter.cpp @@ -370,6 +370,12 @@ const Converter::EnumMap Converter::br {core::GroupSymbolValue::square(), api::BracketType::square}, }; +const Converter::EnumMap Converter::groupBarlineMap = { + {core::GroupBarlineValue::yes(), api::GroupBarline::yes}, + {core::GroupBarlineValue::no(), api::GroupBarline::no}, + {core::GroupBarlineValue::mensurstrich(), api::GroupBarline::mensurstrich}, +}; + const Converter::EnumMap Converter::barlinePlacementMap = { {core::RightLeftMiddle::right(), api::HorizontalAlignment::right}, {core::RightLeftMiddle::left(), api::HorizontalAlignment::left}, @@ -1608,6 +1614,16 @@ api::BracketType Converter::convert(core::GroupSymbolValue value) const return findApiItem(bracketMap, api::BracketType::unspecified, value); } +core::GroupBarlineValue Converter::convert(api::GroupBarline value) const +{ + return findCoreItem(groupBarlineMap, core::GroupBarlineValue::yes(), value); +} + +api::GroupBarline Converter::convert(core::GroupBarlineValue value) const +{ + return findApiItem(groupBarlineMap, api::GroupBarline::unspecified, value); +} + core::FermataShape Converter::convertFermata(api::MarkType value) const { return findCoreItem(fermataMap, core::FermataShape::empty(), value); diff --git a/src/private/mx/impl/Converter.h b/src/private/mx/impl/Converter.h index 5d87bd78..37052855 100644 --- a/src/private/mx/impl/Converter.h +++ b/src/private/mx/impl/Converter.h @@ -22,6 +22,7 @@ #include "mx/core/generated/FermataShape.h" #include "mx/core/generated/FontStyle.h" #include "mx/core/generated/FontWeight.h" +#include "mx/core/generated/GroupBarlineValue.h" #include "mx/core/generated/GroupSymbolValue.h" #include "mx/core/generated/KindValue.h" #include "mx/core/generated/LeftCenterRight.h" @@ -142,6 +143,9 @@ class Converter core::GroupSymbolValue convert(api::BracketType value) const; api::BracketType convert(core::GroupSymbolValue value) const; + core::GroupBarlineValue convert(api::GroupBarline value) const; + api::GroupBarline convert(core::GroupBarlineValue value) const; + core::FermataShape convertFermata(api::MarkType value) const; api::MarkType convertFermata(core::FermataShape value) const; @@ -184,6 +188,7 @@ class Converter const static EnumMap endingMap; const static EnumMap lineStopMap; const static EnumMap bracketMap; + const static EnumMap groupBarlineMap; const static EnumMap fermataMap; const static EnumMap instrumentMap; const static EnumMap kindMap; diff --git a/src/private/mx/impl/NameDisplayFunctions.cpp b/src/private/mx/impl/NameDisplayFunctions.cpp new file mode 100644 index 00000000..d34f3530 --- /dev/null +++ b/src/private/mx/impl/NameDisplayFunctions.cpp @@ -0,0 +1,51 @@ +// MusicXML Class Library +// Copyright (c) by Matthew James Briggs +// Distributed under the MIT License + +#include "mx/impl/NameDisplayFunctions.h" + +#include "mx/core/generated/AccidentalValue.h" +#include "mx/core/generated/FormattedText.h" +#include "mx/core/generated/NameDisplay.h" +#include "mx/core/generated/NameDisplayChoice.h" + +#include + +namespace mx +{ +namespace impl +{ +std::string extractDisplayText(const core::NameDisplay &nameDisplay) +{ + std::stringstream ss; + for (const auto &c : nameDisplay.choice()) + { + if (c.isDisplayText()) + { + ss << c.asDisplayText().value(); + } + else if (c.isAccidentalText()) + { + if (c.asAccidentalText().value().tag() == core::AccidentalValue::Tag::flat) + { + ss << "b"; // TODO - support accidental text correctly + } + else if (c.asAccidentalText().value().tag() == core::AccidentalValue::Tag::sharp) + { + ss << "#"; + } + } + } + return ss.str(); +} + +core::NameDisplay makeNameDisplay(const std::string &text) +{ + core::NameDisplay nameDisplay{}; + core::FormattedText ft{}; + ft.setValue(text); + nameDisplay.addChoice(core::NameDisplayChoice::displayText(ft)); + return nameDisplay; +} +} // namespace impl +} // namespace mx diff --git a/src/private/mx/impl/NameDisplayFunctions.h b/src/private/mx/impl/NameDisplayFunctions.h new file mode 100644 index 00000000..0884c46e --- /dev/null +++ b/src/private/mx/impl/NameDisplayFunctions.h @@ -0,0 +1,31 @@ +// MusicXML Class Library +// Copyright (c) by Matthew James Briggs +// Distributed under the MIT License + +#pragma once + +#include + +namespace mx +{ +namespace core +{ +class NameDisplay; +} +} // namespace mx + +namespace mx +{ +namespace impl +{ +// Best-effort plain-text extraction from a MusicXML name-display element +// (, , etc.): the concatenated +// runs, with rendered as "b"/"#". Formatting +// attributes are not preserved -- the api models display names as plain text. +std::string extractDisplayText(const core::NameDisplay &nameDisplay); + +// Build a minimal name-display carrying a single run. The +// inverse of extractDisplayText for plain-text display names. +core::NameDisplay makeNameDisplay(const std::string &text); +} // namespace impl +} // namespace mx diff --git a/src/private/mx/impl/PartReader.cpp b/src/private/mx/impl/PartReader.cpp index 5e549b6f..b46fd3ce 100644 --- a/src/private/mx/impl/PartReader.cpp +++ b/src/private/mx/impl/PartReader.cpp @@ -28,6 +28,7 @@ #include "mx/core/generated/VirtualInstrumentDataGroupChoice.h" #include "mx/impl/Converter.h" #include "mx/impl/MeasureReader.h" +#include "mx/impl/NameDisplayFunctions.h" #include "mx/impl/PrintFunctions.h" #include "mx/utility/Throw.h" #include "mx/utility/Unused.h" @@ -191,30 +192,6 @@ void PartReader::parseScorePart() const } } -std::string PartReader::extractDisplayText(const core::NameDisplay &nameDisplay) const -{ - std::stringstream ss; - for (const auto &c : nameDisplay.choice()) - { - if (c.isDisplayText()) - { - ss << c.asDisplayText().value(); - } - else if (c.isAccidentalText()) - { - if (c.asAccidentalText().value().tag() == core::AccidentalValue::Tag::flat) - { - ss << "b"; // TODO - support accidental text correctly - } - else if (c.asAccidentalText().value().tag() == core::AccidentalValue::Tag::sharp) - { - ss << "#"; - } - } - } - return ss.str(); -} - void PartReader::parseScoreInstrument(const core::ScoreInstrument &scoreInstrument) const { myOutPartData.instrumentData.uniqueId = scoreInstrument.id().value(); diff --git a/src/private/mx/impl/PartReader.h b/src/private/mx/impl/PartReader.h index 7f381251..c0cec2d8 100644 --- a/src/private/mx/impl/PartReader.h +++ b/src/private/mx/impl/PartReader.h @@ -21,7 +21,6 @@ class ScoreInstrument; class VirtualInstrument; class ScorePartMIDIGroup; class MIDIInstrument; -class NameDisplay; } // namespace core namespace impl @@ -52,7 +51,6 @@ class PartReader int calculateNumStaves() const; void parseScorePart() const; - std::string extractDisplayText(const core::NameDisplay &nameDisplay) const; void parseScoreInstrument(const core::ScoreInstrument &scoreInstrument) const; void parseVirtualInstrument(const core::VirtualInstrument &virtualInstrument) const; void parseMidiDeviceInstrumentGroup(const core::ScorePartMIDIGroup &grp) const; diff --git a/src/private/mx/impl/PartWriter.cpp b/src/private/mx/impl/PartWriter.cpp index 8b7e0898..de41a370 100644 --- a/src/private/mx/impl/PartWriter.cpp +++ b/src/private/mx/impl/PartWriter.cpp @@ -33,6 +33,7 @@ #include "mx/impl/Converter.h" #include "mx/impl/MeasureCursor.h" #include "mx/impl/MeasureWriter.h" +#include "mx/impl/NameDisplayFunctions.h" #include "mx/impl/ScoreWriter.h" #include @@ -68,20 +69,12 @@ core::ScorePart PartWriter::getScorePart() const if (myPartData.displayName.size() > 0) { - core::NameDisplay nameDisplay{}; - core::FormattedText ft{}; - ft.setValue(myPartData.displayName); - nameDisplay.addChoice(core::NameDisplayChoice::displayText(ft)); - scorePart.setPartNameDisplay(nameDisplay); + scorePart.setPartNameDisplay(makeNameDisplay(myPartData.displayName)); } if (myPartData.displayAbbreviation.size() > 0) { - core::NameDisplay nameDisplay{}; - core::FormattedText ft{}; - ft.setValue(myPartData.displayAbbreviation); - nameDisplay.addChoice(core::NameDisplayChoice::displayText(ft)); - scorePart.setPartAbbreviationDisplay(nameDisplay); + scorePart.setPartAbbreviationDisplay(makeNameDisplay(myPartData.displayAbbreviation)); } core::ScoreInstrument scoreInstrument{}; diff --git a/src/private/mx/impl/ScoreReader.cpp b/src/private/mx/impl/ScoreReader.cpp index 4897956a..b1756cea 100644 --- a/src/private/mx/impl/ScoreReader.cpp +++ b/src/private/mx/impl/ScoreReader.cpp @@ -33,6 +33,7 @@ #include "mx/impl/EncodingFunctions.h" #include "mx/impl/LayoutFunctions.h" #include "mx/impl/LcmGcd.h" +#include "mx/impl/NameDisplayFunctions.h" #include "mx/impl/PageTextFunctions.h" #include "mx/impl/PartReader.h" #include "mx/impl/TimeReader.h" @@ -294,22 +295,37 @@ void ScoreReader::startPartGroup(int partIndex, const core::PartGroup &inPartGro grpData.name = inPartGroup.groupName()->value(); } + if (inPartGroup.groupNameDisplay().has_value()) + { + grpData.displayName = extractDisplayText(*inPartGroup.groupNameDisplay()); + } + if (inPartGroup.groupAbbreviation().has_value()) { grpData.abbreviation = inPartGroup.groupAbbreviation()->value(); } + if (inPartGroup.groupAbbreviationDisplay().has_value()) + { + grpData.displayAbbreviation = extractDisplayText(*inPartGroup.groupAbbreviationDisplay()); + } + if (inPartGroup.groupSymbol().has_value()) { Converter c; grpData.bracketType = c.convert(inPartGroup.groupSymbol()->value()); } + if (inPartGroup.groupBarline().has_value()) + { + Converter c; + grpData.groupBarline = c.convert(inPartGroup.groupBarline()->value()); + } + grpData.firstPartIndex = partIndex; - // TODO - group name display - // TODO - group abbreviation display - // TODO - barline, etc + // TODO - group time + // TODO - editorial (footnote/level) myPartGroupStack.push_front(grpData); } diff --git a/src/private/mx/impl/ScoreWriter.cpp b/src/private/mx/impl/ScoreWriter.cpp index a98a1547..8183918a 100644 --- a/src/private/mx/impl/ScoreWriter.cpp +++ b/src/private/mx/impl/ScoreWriter.cpp @@ -8,6 +8,7 @@ #include "mx/core/generated/GroupName.h" #include "mx/core/generated/GroupSymbol.h" #include "mx/core/generated/Identification.h" +#include "mx/core/generated/NameDisplay.h" #include "mx/core/generated/PartGroup.h" #include "mx/core/generated/PartList.h" #include "mx/core/generated/PartListChoice.h" @@ -20,6 +21,7 @@ #include "mx/impl/Converter.h" #include "mx/impl/EncodingFunctions.h" #include "mx/impl/LayoutFunctions.h" +#include "mx/impl/NameDisplayFunctions.h" #include "mx/impl/PageTextFunctions.h" #include "mx/impl/PartReader.h" #include "mx/impl/PartWriter.h" @@ -293,6 +295,23 @@ core::PartGroup ScoreWriter::makePartGroupStart(const api::PartGroupData &apiGrp mxGrp.setGroupName(groupName); } + if (apiGrp.displayName.size() > 0) + { + mxGrp.setGroupNameDisplay(makeNameDisplay(apiGrp.displayName)); + } + + if (apiGrp.abbreviation.size() > 0) + { + core::GroupName groupAbbreviation{}; + groupAbbreviation.setValue(apiGrp.abbreviation); + mxGrp.setGroupAbbreviation(groupAbbreviation); + } + + if (apiGrp.displayAbbreviation.size() > 0) + { + mxGrp.setGroupAbbreviationDisplay(makeNameDisplay(apiGrp.displayAbbreviation)); + } + Converter converter; if (apiGrp.bracketType != api::BracketType::unspecified) { @@ -302,11 +321,14 @@ core::PartGroup ScoreWriter::makePartGroupStart(const api::PartGroupData &apiGrp mxGrp.setGroupSymbol(groupSymbol); } - // TODO - make group barline configurable - - core::GroupBarline groupBarline{}; - groupBarline.setValue(core::GroupBarlineValue::yes()); - mxGrp.setGroupBarline(groupBarline); + // group-barline is only written when the source modeled one; the api no + // longer fabricates a constant "yes" (see issue #219). + if (apiGrp.groupBarline != api::GroupBarline::unspecified) + { + core::GroupBarline groupBarline{}; + groupBarline.setValue(converter.convert(apiGrp.groupBarline)); + mxGrp.setGroupBarline(groupBarline); + } return mxGrp; } diff --git a/src/private/mxtest/api/PartGroupRoundTripTest.cpp b/src/private/mxtest/api/PartGroupRoundTripTest.cpp new file mode 100644 index 00000000..267d3940 --- /dev/null +++ b/src/private/mxtest/api/PartGroupRoundTripTest.cpp @@ -0,0 +1,100 @@ +// MusicXML Class Library +// Copyright (c) by Matthew James Briggs +// Distributed under the MIT License + +#include "mxtest/control/CompileControl.h" +#ifdef MX_COMPILE_API_TESTS + +#include "cpul/cpulTestHarness.h" +#include "mx/api/DocumentManager.h" +#include "mxtest/api/RoundTrip.h" + +using namespace mx::api; + +namespace +{ +PartData makeSimplePart(const std::string &id, const std::string &name) +{ + VoiceData voice; + NoteData n; + n.tickTimePosition = 0; + n.pitchData.step = Step::c; + n.pitchData.octave = 5; + n.durationData.durationName = DurationName::quarter; + n.durationData.durationTimeTicks = DEFAULT_TICKS_PER_QUARTER; + voice.notes.push_back(n); + StaffData staff{}; + staff.voices.emplace(0, voice); + MeasureData m; + m.staves.push_back(staff); + PartData pd; + pd.uniqueId = id; + pd.name = name; + pd.measures.push_back(m); + return pd; +} + +ScoreData makeTwoPartScore() +{ + ScoreData s; + s.parts.push_back(makeSimplePart("P1", "Violin I")); + s.parts.push_back(makeSimplePart("P2", "Violin II")); + return s; +} +} // namespace + +// Regression test for issue #219. A well-formed part-group spanning two parts +// must round-trip through mx::api with full fidelity. Before the fix the writer +// dropped group-abbreviation and both display names, and fabricated a constant +// yes regardless of input -- so the marked +// CHECKs below were the red lines that the fix turns green. +TEST(partGroupRoundTrip, fullFidelity) +{ + auto in = makeTwoPartScore(); + PartGroupData grp; + grp.firstPartIndex = 0; + grp.lastPartIndex = 1; + grp.number = 1; + grp.name = "Violins"; + grp.displayName = "Violins (display)"; + grp.abbreviation = "Vlns"; + grp.displayAbbreviation = "Vlns (display)"; + grp.bracketType = BracketType::bracket; + grp.groupBarline = GroupBarline::no; + in.partGroups.push_back(grp); + + const auto out = mxtest::roundTrip(in); + + REQUIRE(out.partGroups.size() == 1); + const auto &got = out.partGroups.at(0); + CHECK_EQUAL(0, got.firstPartIndex); + CHECK_EQUAL(1, got.lastPartIndex); + CHECK_EQUAL(1, got.number); + CHECK_EQUAL("Violins", got.name); + CHECK_EQUAL("Violins (display)", got.displayName); // red before #219 fix (dropped) + CHECK_EQUAL("Vlns", got.abbreviation); // red before #219 fix (dropped) + CHECK_EQUAL("Vlns (display)", got.displayAbbreviation); // red before #219 fix (dropped) + CHECK(BracketType::bracket == got.bracketType); + CHECK(GroupBarline::no == got.groupBarline); // red before #219 fix (fabricated yes) +} + +// A part-group that carries no must NOT gain a fabricated one on +// write. (Previously every group was emitted with yes.) +TEST(partGroupRoundTrip, noFabricatedBarline) +{ + auto in = makeTwoPartScore(); + PartGroupData grp; + grp.firstPartIndex = 0; + grp.lastPartIndex = 1; + grp.name = "Group"; + grp.bracketType = BracketType::brace; + // groupBarline left unspecified on purpose. + in.partGroups.push_back(grp); + + const auto out = mxtest::roundTrip(in); + + REQUIRE(out.partGroups.size() == 1); + CHECK(GroupBarline::unspecified == out.partGroups.at(0).groupBarline); +} + +#endif