{
  "source": "fux ch.pdf",
  "selectedPrintedPages": [
    81,
    94
  ],
  "selectedPdfPages": [
    6,
    19
  ],
  "chapter": "Exercitii II. Lectio Prima. De Nota contra Notam in Tricinio.",
  "normalization": [
    "Long s (ſ) rendered as s; æ and œ ligatures retained.",
    "Line-end hyphenation removed and cross-page split words joined in ebook mode.",
    "Running headings, printer signatures and catchwords remain in the source images, not duplicated as body text.",
    "Historical semibreve and breve noteheads engraved as modern whole notes and breves.",
    "Original C/F/G clefs retained. Cut-C encoded as cut time when printed; no meter invented for unmetered fragments.",
    "Synthesized piano and 96 quarter-note BPM are playback defaults, not source markings.",
    "Example IDs and panel labels are editorial; the source does not assign these example numbers."
  ],
  "textIssues": [
    {
      "page": 81,
      "description": "A handwritten correction appears over the printed word tertiæ. The printed reading is retained; the handwriting is preserved in the page image."
    },
    {
      "page": 86,
      "description": "Arhsi is retained as printed rather than silently regularized."
    }
  ],
  "musicChecks": [
    {
      "id": "82-a",
      "events": 3,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "82-b",
      "events": 18,
      "figuredIntervalsChecked": 12,
      "intervalDiscrepancies": []
    },
    {
      "id": "83-a",
      "events": 18,
      "figuredIntervalsChecked": 12,
      "intervalDiscrepancies": []
    },
    {
      "id": "83-b",
      "events": 3,
      "figuredIntervalsChecked": 2,
      "intervalDiscrepancies": []
    },
    {
      "id": "84-a",
      "events": 3,
      "figuredIntervalsChecked": 2,
      "intervalDiscrepancies": []
    },
    {
      "id": "84-b",
      "events": 2,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "84-c1",
      "events": 6,
      "figuredIntervalsChecked": 4,
      "intervalDiscrepancies": []
    },
    {
      "id": "84-c2",
      "events": 6,
      "figuredIntervalsChecked": 4,
      "intervalDiscrepancies": []
    },
    {
      "id": "84-d1",
      "events": 6,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "84-d2",
      "events": 6,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "85-a1",
      "events": 18,
      "figuredIntervalsChecked": 12,
      "intervalDiscrepancies": []
    },
    {
      "id": "85-a2",
      "events": 18,
      "figuredIntervalsChecked": 12,
      "intervalDiscrepancies": []
    },
    {
      "id": "85-b",
      "events": 4,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "86-a",
      "events": 6,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "87-a",
      "events": 33,
      "figuredIntervalsChecked": 22,
      "intervalDiscrepancies": []
    },
    {
      "id": "87-b",
      "events": 15,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "88-a",
      "events": 15,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "88-b",
      "events": 33,
      "figuredIntervalsChecked": 22,
      "intervalDiscrepancies": [
        {
          "voice": 2,
          "position": 8,
          "printed": 15,
          "encoded": 12
        }
      ]
    },
    {
      "id": "89-a",
      "events": 33,
      "figuredIntervalsChecked": 22,
      "intervalDiscrepancies": []
    },
    {
      "id": "89-b",
      "events": 30,
      "figuredIntervalsChecked": 20,
      "intervalDiscrepancies": []
    },
    {
      "id": "90-a",
      "events": 6,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "90-b",
      "events": 30,
      "figuredIntervalsChecked": 20,
      "intervalDiscrepancies": []
    },
    {
      "id": "91-a",
      "events": 30,
      "figuredIntervalsChecked": 20,
      "intervalDiscrepancies": []
    },
    {
      "id": "91-b",
      "events": 36,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "91-c",
      "events": 36,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "91-d",
      "events": 36,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "92-a",
      "events": 42,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "92-b",
      "events": 42,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "92-c",
      "events": 36,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "93-a",
      "events": 36,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "93-b",
      "events": 36,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "93-c",
      "events": 36,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    },
    {
      "id": "94-a",
      "events": 36,
      "figuredIntervalsChecked": 0,
      "intervalDiscrepancies": []
    }
  ],
  "reviewItems": [
    {
      "id": "91-b",
      "reason": "The B-flat is printed in the fifth position; the following unmarked B is encoded as natural across the barline. Historical accidental scope needs an expert check before playback is enabled."
    }
  ],
  "validationResults": [
    {
      "id": "82-a",
      "parsed": true,
      "notes": 3,
      "beats": 4,
      "renderPages": 1
    },
    {
      "id": "82-b",
      "parsed": true,
      "notes": 18,
      "beats": 28,
      "renderPages": 1
    },
    {
      "id": "83-a",
      "parsed": true,
      "notes": 18,
      "beats": 28,
      "renderPages": 1
    },
    {
      "id": "83-b",
      "parsed": true,
      "notes": 3,
      "beats": 4,
      "renderPages": 1
    },
    {
      "id": "84-a",
      "parsed": true,
      "notes": 3,
      "beats": 4,
      "renderPages": 1
    },
    {
      "id": "84-b",
      "parsed": true,
      "notes": 2,
      "beats": 8,
      "renderPages": 1
    },
    {
      "id": "84-c1",
      "parsed": true,
      "notes": 6,
      "beats": 8,
      "renderPages": 1
    },
    {
      "id": "84-c2",
      "parsed": true,
      "notes": 6,
      "beats": 8,
      "renderPages": 1
    },
    {
      "id": "84-d1",
      "parsed": true,
      "notes": 6,
      "beats": 28,
      "renderPages": 1
    },
    {
      "id": "84-d2",
      "parsed": true,
      "notes": 6,
      "beats": 28,
      "renderPages": 1
    },
    {
      "id": "85-a1",
      "parsed": true,
      "notes": 18,
      "beats": 28,
      "renderPages": 1
    },
    {
      "id": "85-a2",
      "parsed": true,
      "notes": 18,
      "beats": 28,
      "renderPages": 1
    },
    {
      "id": "85-b",
      "parsed": true,
      "notes": 4,
      "beats": 8,
      "renderPages": 1
    },
    {
      "id": "86-a",
      "parsed": true,
      "notes": 6,
      "beats": 12,
      "renderPages": 1
    },
    {
      "id": "87-a",
      "parsed": true,
      "notes": 33,
      "beats": 48,
      "renderPages": 1
    },
    {
      "id": "87-b",
      "parsed": true,
      "notes": 15,
      "beats": 24,
      "renderPages": 1
    },
    {
      "id": "88-a",
      "parsed": true,
      "notes": 15,
      "beats": 24,
      "renderPages": 1
    },
    {
      "id": "88-b",
      "parsed": true,
      "notes": 33,
      "beats": 48,
      "renderPages": 1
    },
    {
      "id": "89-a",
      "parsed": true,
      "notes": 33,
      "beats": 48,
      "renderPages": 1
    },
    {
      "id": "89-b",
      "parsed": true,
      "notes": 30,
      "beats": 44,
      "renderPages": 1
    },
    {
      "id": "90-a",
      "parsed": true,
      "notes": 6,
      "beats": 12,
      "renderPages": 1
    },
    {
      "id": "90-b",
      "parsed": true,
      "notes": 30,
      "beats": 44,
      "renderPages": 1
    },
    {
      "id": "91-a",
      "parsed": true,
      "notes": 30,
      "beats": 44,
      "renderPages": 1
    },
    {
      "id": "91-b",
      "parsed": true,
      "notes": 36,
      "beats": 52,
      "renderPages": 1
    },
    {
      "id": "91-c",
      "parsed": true,
      "notes": 36,
      "beats": 52,
      "renderPages": 1
    },
    {
      "id": "91-d",
      "parsed": true,
      "notes": 36,
      "beats": 52,
      "renderPages": 1
    },
    {
      "id": "92-a",
      "parsed": true,
      "notes": 42,
      "beats": 60,
      "renderPages": 1
    },
    {
      "id": "92-b",
      "parsed": true,
      "notes": 42,
      "beats": 60,
      "renderPages": 1
    },
    {
      "id": "92-c",
      "parsed": true,
      "notes": 36,
      "beats": 52,
      "renderPages": 1
    },
    {
      "id": "93-a",
      "parsed": true,
      "notes": 36,
      "beats": 52,
      "renderPages": 1
    },
    {
      "id": "93-b",
      "parsed": true,
      "notes": 36,
      "beats": 52,
      "renderPages": 1
    },
    {
      "id": "93-c",
      "parsed": true,
      "notes": 36,
      "beats": 52,
      "renderPages": 1
    },
    {
      "id": "94-a",
      "parsed": true,
      "notes": 36,
      "beats": 52,
      "renderPages": 1
    }
  ],
  "sourceSha256": "e1bd852e4a9a53c62ff5cbbe1d8bbbdd5f9a2d2ffc0331e2328ab36e90cf311e",
  "verificationNotes": [
    "All 19 PDF pages were inspected to select the complete lesson.",
    "All 14 selected pages were visually transcribed; the 49 source paragraph fragments join into 46 ebook paragraphs.",
    "All 33 MusicXML assets passed XSD validation, playback parsing, exact ledger note-count and duration checks, and Verovio rendering.",
    "All 33 renderings were inspected against their source crops on comparison proof sheets.",
    "186 printed diatonic interval figures were compared with the encoded notes; one apparent source-annotation mismatch on p. 88 is explicitly retained.",
    "All 32 enabled examples loaded in OSMD in the browser. Playback produced nonzero audio signal and a moving cursor; pause produced zero signal.",
    "Browser layouts were checked in 390px and 1440px frames; document scroll width equaled frame width.",
    "No separate Astra API conversion job ran: this is an in-session vision-assisted conversion and not a measured API cost/latency benchmark."
  ]
}
