Tonality system disappearing

On my Mac (10.14) I upgraded to Dorico 4.3.11. As a result, one of my tonality systems disappeared for a piece I created in an earlier version. The section of the piece that uses it defaults to another tonality system I created. Opening the same piece with an earlier version of Dorico has no problem: all its tonality systems (and others) appear, as they should.

Is there a way to get Dorico 4.3.11 to restore the tonality system that disappeared? Or, what am I missing?

Would you be able to post the project here (in its original form from the earlier version)?

Dorico file posted below.

Steep Imitation 5 fragment.dorico (470.6 KB)

These are the first two measures of one movement of a large piece. In Dorico 3.5, it is correct. In Dorico 4.3.11, the tonality system is missing from the list, as detailed above.

The tonality systems in that file look fine for me in both v3.5 and v4. Here’s what I see in v4:

Could you choose Help > Create Diagnostic Report in v4 and post the resulting zipfile here too? Just in case there is something about your v4 set-up that is interfering with the file.

Thanks for that. Still a problem here: opening the music in v4 presents 31-equal, which is used in another piece but not this. The system that has disappeared is 35 - 5 equal. The system 35 7-equal still appears and is used elsewhere in the piece. Diagnostic attached below.

Dorico (2.1 MB)

Right, so the basic problem is that at some point you have saved some of your tonality systems as defaults, but the internal IDs used by the “31-equal” system in your saved defaults seem to be getting confused with those used by “35 - 5 equal” in your project. I’ll have to look into this a bit more during (my) working hours tomorrow as I’m not quite sure how that’s happening.

If you need an urgent workaround, the fix is to quit Dorico, temporarily rename your userlibrary.xml file (which is in %appdata%\Steinberg\Dorico 4 on Windows, or ~/Library/Application Support/Steinberg/Dorico 4 on Mac) and restart Dorico. That will prevent any of your saved defaults from loading and the values from the project will be able to load instead. If you need the defaults back again for another project then you can quit Dorico again and rename the file back to userlibrary.xml.

Actually I have a better fix - try replacing your existing userlibrary.xml file with this one, which I’ve manually edited to change the IDs.

userlibrary.xml (58.8 KB)

(You might want to keep a copy of the old one in case I’ve messed up, but I think it should be OK.)

Thanks again. I’ll have a look. The problem isn’t terrible as long as Dorico 4 lets me recreate the tonality system, which isn’t hard to do.

Just in case it’s helpful, I’ve pinned down the problem a bit more. It occurs when an old project (here a v3.5 project) is being updated by a new Dorico version (in this case Dorico v4). So an alternative workaround would be:

  1. move the userlibrary.xml file out of the way and restart Dorico
  2. open the project file and re-save it, so that it will now be saved in the v4 format
  3. put the userlibrary.xml file back

Sorry, forgot to report back. That last set of instructions is simple. Removing the user library and restarting Dorico etc. worked. Putting the library file back caused the problem to recur. Now the music, which is in Dorico 4, seems permanently without the right tuning. It will be easy in this case to recreate the tuning and, if necessary, redesignate the places in the music where it’s to be used. I also have a backup file, of course.

I don’t know exactly what is in the library file.

Hmm, that’s curious - that procedure worked for me. Could you attach the project in the form that it is in now?

I’ll try to explain a bit more of the background here.

The userlibrary.xml file contains a user’s saved defaults - in your case, it contains some saved tonality systems, because you have at some point pressed “Save As Default” in the Edit Tonality System dialog. The information in this file is separate from the tonality information in each individual project - the user library is mainly used when creating new projects, whereas once a project is created the information can be saved in the project file itself.

The problem comes with a fix we made in v4 for a bug in previous versions of Dorico. The original (pre-v4) bug meant that some project files didn’t contain all the tonality information that they should have done. We prevented the bug happening for new projects, and we also tried to repair any old projects by forcibly re-copying the tonality information from the user library when updating old scores. However, in your case this fix-up of old scores is doing the wrong thing: the information in your project file is already correct, but it gets overwritten with the information from the user library anyway. This is why moving the user library out of the way stops the problem from happening - it means there’s nothing to get copied into the project.

What I can’t work out is why it should be going wrong if you follow my steps - once you’ve saved the project file in v4 format (step 2), it should be safe to reinstate the userlibrary.xml file (step 3), because the project file should only copy information from the user library at the point it’s updating the file format to the latest version.

(We are working on tweaking the previous fix in a forthcoming version, so it would be good to work out what’s going wrong if I can, in case it affects the extra fixes here.)