Compare files or versions

Will (or does) Dorico have the ability to compare 2 files or flows or versions of works? As a composer I often want to try out some new ideas or variations but still have the ability to go back to an earlier version and perhaps try something else.

No, at the moment it doesn’t have any features like this, but it’s certainly something we’re interested in looking at in the future.

Hi, Folks –

Daniel, might you be willing and able to share an update on this feature? (Or related features, like track changes or something I haven’t considered)

As a copyist, it’s not something I’d use often, but it sure came in handy yesterday to ensure that I had captured all of the revisions between versions my composer colleague sent to me in Sibelius. Highlighting differences between any two versions and outputting the result to a text file (RTF is a weird choice, but it’s fine :stuck_out_tongue:)? Very slick.

At the moment, one alternative is to keep dated versions of a project in PDF format, so that I can – when necessary – convert all pages of that layout to images, and compare each of those to the corresponding page-image of a more recent version of the project using a quickly written Python script and ImageMagick’s compare utility.

If the revisions are such that a system or page break occurs, of course, that approach doesn’t work.

I’m currently keeping a MusicXML version of my work in progress in Git – the diffs are hideous, and in a real piece, the same measure in adjacent instruments can be thousands of lines apart. With some grep, it’s better than nothing for a spot check or two, but not for any substantial revision.

I haven’t yet explored an XML-native, tree-based diffing solution (using xmllint, xmlstarlet, xmldiff, or something like Music21) in earnest. As much as I enjoy side projects, I thought I’d check in with your talented team (and the Dorico user community at large) before I dedicate any significant effort toward planning and trying build a workable solution.

Anybody else working on something like this?

FWIW, the Sibelius feature works in a similar way to how Microsoft Word (and LibreOffice Writer, etc) offer the ‘compare document’ feature. Trying to port LibreOffice’s implementation of that to MusicXML would require me to have a lot more C++ skill than I currently have (which is zero), but it seems like a decent place to start. The Word-Writer implementations are excellent, too.

Thanks!

1 Like

I actually think the way Dorico stores the music, such a comparison feature might be easier to realize, with the option to only compare content and ignore changes in engrave mode, or include them.

Welcome to the forum, Iain. I’m afraid there’s currently nothing like this in Dorico, though it does remain something we are interested in adding in future, certainly.

1 Like

Would be wonderful to be able to compare files. I have started engraving and mysteriously the stats show that I just lost 8 notes while I am very sure I have not purposefully deleted a single note. Earlier today I lost 12 notes. Now where have they gone? Id like them back, but I don’t know where they are missing from and what they were. EDIT: I think it is because if I change note duration (perhaps only if involving crossing/no longer crossing. bar line) stats interpret it as one more or one less note. Not easy to guess. Still would be fantastic to be able to compare, as small mistakes will always happen, and checking manually is virtually impossible!

Assuming that the two files being compared have the same page size and layout, etc., the following procedure might work for you. I use it often.

Print the two files to PDF. It is helpful if the file names are non-identical when writing down any differences which you might find.
Open both files.
Size the windows so that they are exactly the same.
With both files open at the same page, flip rapidly between the two windows. Most (all?) applications which can have multiple windows open will have a key command to do that - just hold it down until it auto-repeats. Differences between the two will appear to flicker as the windows rapidly alternate.
Do the same for each of the following pages.

Apparently this method is one of the many techniques used by forensic art fraud detectives. High-resolution images of the two paintings being compared are superimposed on a screen. Any visual differences are fairly easy to detect.

Fascinating!