This is interesting but not quite what I need. I’m interested in comparing
musical differences, not visual changes.
I’d like something such as the pseudo code:
for(i, i < scoreA.bars.length, i++) {
if (scoreA.bars[i] !== scoreB.bars[i]) {
// bars are different, contrast the differences
} else {
// bars are identical, render normally
}
}
On Thu, Aug 13, 2026, at 2:17 PM, Fr. Samuel Springuel wrote:
> The Gregorio project uses ImageMagik to visually compare scores as part of
> our test suite. In our case we’re looking primarily to prevent small,
> unintended changes to scores unrelated to the change under consideration, but
> it catches larger changes too.
>
> The issue is that it is entirely visual. If you look at the attached image,
> you can see the kind of changes we’re looking at. If you’re looking for
> musically important differences, this may be too sensitive for your needs.
> If you’re interested though, I’ll post the series of ImageMagik commands that
> it takes to generate the attached (the process is automated for us, so I’ll
> have to dig them out of our test harness, which I don’t have the time to do
> right now).
>
> ✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝✝
> Fr. Samuel, OSB
> (R. Padraic Springuel)
> St. Anselm’s Abbey
> 4501 South Dakota Ave, NE
> Washington, DC, 20017
> 202-269-2300
> (c) 202-853-7036
>
> PAX ☧ ΧΡΙΣΤΟΣ
>
> > On Aug 13, 2026, at 10:58 AM, Ky Decker <[email protected]> wrote:
> >
> > I have two piano scores of identical length which have some harmonic and
> > rhythmic differences. I’d like to write each piece as a separate .ly file
> > and then programmatically combine them to highlight differences between
> > version A and version B.
> >
> > I’m imagining either:
> > • Combining / “merging” shared notes, and then highlighting (in a
> > different color) notes where the scores diverge.
> > • Displaying smaller, secondary staves (treble, bass, or both) for
> > measures which are not identical.
> > Is there a clean way to achieve this? Are there any existing examples of
> > this sort of score comparison?
>
>