Chord symbol fonts

• Jul 19, 2023 - 17:37

I'm importing a score into MuseScore3 from XML. I need to use a specific font for use in the chord symbols that clearly isn't a default/expected selection in MuseScore. From reading around a bit it seems that to correct kerning of items such as sharps and flats, you need to edit an XML file called chords_sup.xml. I've sourced this and can see it in a text editor, and the documentation within the file is rather limited. Has anyone seen any good tutorials or further documentation for setting up MuseScore3 to work with particular font choices?


Comments

Actually, the best way to get good reproduction of the flat and sharp is to simply make sure the font in question contains those characters at the correct locations. But if the font itself is incomplete, you can indeed hack it by creating a custom XML file. The specifics of how to do this, though, will depend very much on the specific font and the look you wanting (standard or jazz). So, please provide more information so we can understand and assist better.

chords_sup, btw, is not a thing. Well, it might be something some created, but it's not a supported file from MuseScore.

Also, unless you specifically need the engraving or playback to be substandard, much better to use MuseScore 4 than 3.

In reply to by Marc Sabatella

It's not the flat and sharp that are the problem, though I'd like to ultimately use whatever font I choose for those too. Initially I want to use a different font for the 'B' and the 'maj7' of a chord such as Bbmaj7. The problem is that the sharp and flat alterations to the tonal centre of the chord are kerned horribly with much space either side when I change the chord symbol font to e.g. Adobe Minion.

The XML file I looked at was called "chords_sup.xml" but obviously as you point out, it could probably be called 'whateveryoulike.xml', the fact is that it seems alteration to chord kerning seems only possible via xml.

I can't use MuseScore4 for compatibility reasons.

In reply to by Rumbledethumps

Compatibility with what? You mean an older computer?

My point about the naming is the start point for editing should be one of the supported files - and unless your custom font is based on MuseJazz, you should pretty much expect to use chord_std. Anything else could have who know what other sorts of stuff in it that may or may not work and would more likely cause problems.

But, I'm not understanding why you are saying the problem isn't the flat and sharp when everything you just described is about the flat and sharp. The reason they don't appear to kern correctly is lmsot certainly that the font is simply missing those characters and therefore your system is substituting something else with entirely different metrics. If you choose a font that was actually designed to be used for music, it should have these characters with appropriate spacing built in. Or at worst, you might need to have them copied between the Unicode and SMuFL codepoints.

So again fi you can describe the situation in more detail - what the font is and what specific problems you are trying to solve that aren't solved by simply copying the glyphs to the proper locations, we can understand and assist better.

In reply to by Marc Sabatella

I cannot use MuseScore4 for other reasons on which I'm not seeking support. It's just not an option.

OK so what I've learned today is that that chord symbols (the whole thing, Bmaj7, F#m9) are, and have to be, by design, generated not from different fonts such as of a 'letter' font (for the Bmaj) and a 'music font' for the accidentals (the 'b' in Bbmaj7), but from a single font. This is a major step forward in my understanding of the situation. Thank you. The problem as a beginner is sometimes not knowing what to ask, or asking something that presumes to much, I'm obviously doing both but thanks for bearing with me and helping me make progress. If I have too, I'll make the font I need so no problem there. The fonts that I want to use for chord symbols will not have accidentals in them, so I will have to create something that I like. I was thinking that the XML file contained information about how to kern a 'notation' font against the 'letter font'.

In reply to by Rumbledethumps

Hmmm, I guess I was confused by a couple of your statements like "It's not the flat and sharp that are the problem, though I'd like to ultimately use whatever font I choose for those too" - which sounds like you're talking about a) something bigger than just flats and sharps, and b) a font that has yet to be identified. Also mention of compatibility compatibility means one needs to be careful about which unsupported features one relies on, because those unsupported features change from release to release (eg, what works in 3.6.2 won't necessarily work in 3.5, etc). Which is why it's really important we understand the project requirements well.

If it truly is as simple as wanting to use Adobe Minion but wanting the flat and sharp to look good, as I've already explained, you may not need to mess with the XML at all - you can probably fix the font by copying the existing glyphs to the proper Unicode/SMuFL codepoints within the font itself. That will prevent MuseScore from substituting characters from another font as I explained.

But if you've already tried that and have now identified a problem with the actual Adobe Minion flat and sharp other than them not being available in the expected location, then you'd need to edit the XML. If that's literally the only problem, and if you've already identified the font whoe flat and sharp you want to use instead, then it's as simple as making a copy of the official chords_std.xml and editing the lines that tell MuseScore how to find the accidental. And once we know where you want to find it - which specific font you've chose - we can guide you better. The answer does depend on the font for the same reason it matters for Minion - we need to know the correct codepoint.

The thing is, there is no documentation on this - we can only assist by basically;y telling you exactly what to do. Which in turn we can only do if we fully understand the problem.

In reply to by Marc Sabatella

Hi Marc, thanks for this. Apologies for any confusion, as a noob sometimes you don't even have the app knowledge to know what question you should be asking! Anyway, I've made some clear progress, thanks to reading and re-reading your pointers, since last night. I don't want to mess with a copyright font so found a very close version of the text font that was public domain, and added some glyphs from another public domain music font for # and b, and then played around with the kerning, and already have some far, far, far better results without even touching the XML as you suggested. I'll continue to work on this a bit and also experiment with the XML (just out of interest!). When I looked at the XML code and comment again today I understood a little more after figuring out that some of it is hex unicode references, and there is another post you made on the forum that fills in on some of the info about what the other attributes are in the document. I'm enjoying the side research into these related fields! Thanks for the notes about compatability, not much I can do about that, it's something to bear in mind with most software isn't it.

In reply to by Rumbledethumps

Glad you're making progress. Speaking of compatibility, do note that if you are relying on a particular font, you've instantly cut off compatibility with all systems that lack that font. So presumably you're already planning to distribute your special font (whether customized or not) along with your scores when sharing with whomever you are needing to maintain compatibility with.

The change to the XML file is simple, but again, we would need to know the specifics of the font to really advise. Basically, it's the "sym" declaration for flat and sharp you need to change, either to specific a different font (see chords_jazz for examples of how to do that) or - much preferable - a different codepoint within the current font. Also, for maximum compatibility, you may need to change from the "0x266d" syntax to the more HTML-like "♭"

Do you still have an unanswered question? Please log in first to post your question.