So positioning options for Chord Symbol Accidentals and Chord Symbol Suffix Accidentals has always been high on my wishlist, probably since the first week I started using Dorico. Unfortunately I don’t think they look balanced correctly with basically any text font other than Academico. There are actually 2 different sized glyphs for suffix accidentals, so for sharps these are called comp.csymAccidentalSharp and comp.csymAccidentalSharpSmall. The small glyph is used for scaling factors of 75% and lower and the larger glyph for 76% and up. The small one is too small to be used professionally due to legibility issues IMO, but here it is with all the default settings:
Once I switch to 76% to invoke the larger glyph, and switch to literally any font other than Academico, the positioning is poor. Here’s 76% and Times:
The suffix sharp and the number are poorly positioned both in relation to each other, but also within the parentheses. Additionally, I’ve never been happy with the root accidentals either. They share a physical baseline with the root, rather than an optical one, so seem slightly out of balance to me. There aren’t any user settings to adjust these either.
Ever since @benwiggy alerted me to the power of using doricolib files instead of modifying factory files, I had wondered if there was a way to accomplish some chord symbol accidental modifications without using Dorico’s painful method of having to modify each suffix for each root. It took a lot of poking around, but it turns out there is!
As Daniel has said many times, any editing of Dorico system files is unsupported and not recommended, but editing doricolib files seems a bit safer to me as all the system files remain intact. The system files are also overwritten with any update, but your user doricolib files will not be. The user doricolib files should live at C:\Users<your name here>\AppData\Roaming\Steinberg\Dorico 4\DefaultLibraryAdditions in Windows.
- To fix the root accidental baseline positioning, paste the following under compositeDefinitions. The yOffset value modifies the vertical positioning so you may want to play around with it to find a setting that works well with your default font.
Root Accidental compositeDefinitions
<CompositeDefinition>
<name>csymAccidentalFlat</name>
<entityID>comp.csymAccidentalFlat</entityID>
<parentEntityID/>
<inheritanceMask>0</inheritanceMask>
<category>kChordSymbols</category>
<components array="true">
<component>
<componentId>glyph.csymAccidentalFlat</componentId>
<componentType>kGlyph</componentType>
<xOffset>0</xOffset>
<yOffset>0.25</yOffset>
<xScale>100.000000</xScale>
<yScale>100.000000</yScale>
<zOrder>0</zOrder>
<maxOpticalScale>100</maxOpticalScale>
<componentInstance>0</componentInstance>
<colour>kDefault</colour>
</component>
</components>
<relativeAttachments array="true"/>
<scalingRules array="true"/>
</CompositeDefinition>
<CompositeDefinition>
<name>csymAccidentalSharp</name>
<entityID>comp.csymAccidentalSharp</entityID>
<parentEntityID/>
<inheritanceMask>0</inheritanceMask>
<category>kChordSymbols</category>
<components array="true">
<component>
<componentId>glyph.csymAccidentalSharp</componentId>
<componentType>kGlyph</componentType>
<xOffset>0</xOffset>
<yOffset>0.5</yOffset>
<xScale>100.000000</xScale>
<yScale>100.000000</yScale>
<zOrder>0</zOrder>
<maxOpticalScale>100</maxOpticalScale>
<componentInstance>0</componentInstance>
<colour>kDefault</colour>
</component>
</components>
<relativeAttachments array="true"/>
<scalingRules array="true"/>
</CompositeDefinition>
After that the root accidentals seem more balanced to me, but the suffix accidentals are still off:
- To fix the suffix accidentals, you’ll need to do it for each suffix you use, although they obviously follow a pattern. Here’s the code for a #5 that works for me. You’ll likely need to modify both xOffset and yOffset values to find something that works with your font.
#5 Suffix Adjustment
<CompositeDefinition>
<name>smufl.glyph.alteration.prefix.sharp5</name>
<entityID>comp.csac.smufl.glyph.alteration.prefix.sharp.5</entityID>
<parentEntityID/>
<inheritanceMask>0</inheritanceMask>
<category>kChordSymbols</category>
<components array="true">
<component>
<componentId>glyph.csac.smufl.glyph.alteration.prefix.sharp</componentId>
<componentType>kGlyph</componentType>
<xOffset>0</xOffset>
<yOffset>0.7</yOffset>
<xScale>100.000000</xScale>
<yScale>100.000000</yScale>
<zOrder>0</zOrder>
<maxOpticalScale>100</maxOpticalScale>
<componentInstance>0</componentInstance>
<colour>kDefault</colour>
</component>
<component>
<componentId>text.csac.5</componentId>
<componentType>kText</componentType>
<xOffset>0</xOffset>
<yOffset>0</yOffset>
<xScale>100.000000</xScale>
<yScale>100.000000</yScale>
<zOrder>1</zOrder>
<maxOpticalScale>100</maxOpticalScale>
<componentInstance>0</componentInstance>
<colour>kDefault</colour>
</component>
</components>
<relativeAttachments array="true">
<relativeAttachment>
<xOffset>0.5</xOffset>
<yOffset>-0.4</yOffset>
<componentRelativePair1>
<componentInstanceId>glyph.csac.smufl.glyph.alteration.prefix.sharp.0</componentInstanceId>
<componentAttachmentPoint>kBaselineRight</componentAttachmentPoint>
</componentRelativePair1>
<componentRelativePair2>
<componentInstanceId>text.csac.5.0</componentInstanceId>
<componentAttachmentPoint>kBaselineLeft</componentAttachmentPoint>
</componentRelativePair2>
</relativeAttachment>
</relativeAttachments>
<scalingRules array="true"/>
</CompositeDefinition>
It takes some playing around with settings, but you can do similarly for other suffixes, so I can end up with something more balanced like this:
The entire list of editable “composites” is in the composites.xml file in the main program folder, but I would not recommend editing that. In any case, it is possible to make suffix positioning adjustments using a doricolib file instead of tediously modifying every alteration for every root in Project Default Appearances. My previous “working default” file had hundreds of chord overrides that took hours and hours to do, while modifications done in a doricolib file can be done in just minutes and work for every root.