List of fonts with support for accidentals

• Jul 15, 2018 - 16:34

The available fonts that can be used as chords in MuseScore is quite limited, so I thought it would be cool to share fonts that have support for sharps and flats so they can be easily used in chords.

I've only managed to find these so far:

Linux Libertine
Nanum
Gothic A1
DejaVu
Lucida Sans Unicode


Comments

You shouldn't need to use special fonts, MuseScore automatically substitutes appropriate symbols from its built in fonts. Make sure you enter the flats and sharps as "b" and "#", not by trying to use the Unicode characters - that won't work nearly as well anyhow.

In reply to by Marc Sabatella

The problem is that these automatic substitutes usually don't fit well with the font. It is readable, yes, but there is no point in using different font if the result is ugly.

Here are a couple examples. Although Bahnschrift could be a great font for writing chords as its simple and sleek, the sharps and flats just look bad. Here MuseScore substitutes its own symbols, but it would actually look better if MuseScore just used a regular b and # from the font. (Bahnschrift2.png)

While I don't find Linux Libertine G to be an ideal font to write chords in, I do think it looks much nicer because it has its own Unicode characters for sharps and flats, and MuseScore uses those.

In short: I need to use special fonts because I want it to look good.

Attachment Size
Bahnschrift.png 2.59 KB
linuxlibertine.png 2.48 KB
Bahnschrift2.png 1.51 KB

In reply to by Marc Sabatella

I am curious to know what is not supported when I use fonts where MuseScore uses Unicode sharps and flats.

After some experimenting transposing works well. Double sharp signs are not displayed correctly but then again the only fonts that actually seem to be showing them correctly are freeserif and museJazz.

In reply to by fransfelix

Details depend on the version of MuseScore and which of the multiple Unicode symbols you are using. Basically, the code was never originally designed to handle that, but a few extra checks were added relatively recently to try to deal with them.

Basically, if you enter the flat symbol and then go back and double click the chord symbol to edit it and find it turned back into a regular "b", it means the extra code did it's job, and you aren't actually using the Unicode symbol you thought you were - MuseScore is just converting it for you.

In reply to by Marc Sabatella

As I was trying to say earlier, I'm not putting any Unicode symbols in there myself. I just write them as "b" and "#" and MuseScore changes them to the Unicode symbols if the font has them. You can tell when the Unicode characters are missing because then the flat sign doesn't look right. As Jojo-Schmitz pointed out, it looks bad mostly due to bad kerning.

In reply to by fransfelix

Yes, I get that now. Unfortunately I am responding to a couple of different sub-threads here. I do get what you're doing, and approve :-) Write chords with "b" and "#", let MsueScore do it's thing, and use fonts that look good when doing it.

FYI, kerning per se isn't used in chord symbol rendering. Positioning is handled at a finer level by MuseScore's chord symbol rendering algorithm and the code found in the chord description file (chords_std.xml, chord_jazz.xml). You could actually create a customized XML file for your favorite font that simply tweaked that rendering code, doing a position adjustment between the "":n" and the ":a", etc. Depends on how much you like to tinker.

In reply to by Marc Sabatella

Ah, I see! Sorry if my response sounded a bit agressive =)

I tried to tinker with those .xml files but didn't quite understand how it worked despite the nice explanations in there.

Is it possible to make such a chord description file that it displays the flats as "b" letters from the font? Or even from some other font altogether? If yes, I might try to do it.

In reply to by fransfelix

The main thing you need to do is fine the line that contains ":n :a" - this is what places the note and the accidental next to it - and then experiment with inserting "m:x:y" before the ":a", and maybe editing the one that is already there after, using different values of x & y. Probably you will want a negative value for x before the accidental, to close the gap a bit. You may or may not want to try different y values to raise or lower the accidental. Whatever amount you raise it by before the accidental, you'll want to add the converse afterwards so any extensions are back on the baseline. So for example, maybe

:n m:-2:-3 :a m:0:3

This says, "draw the note name, then move the cursor two units left and three units up, draw the accidental, then move the cursor three units back down".

And yes, you can make the flat sign display however you like, just edit the line with name="b" to use whatever Unicode value you like in place of the "0x266d". To use something from another font, look at how chords_jazz.mxl does things - it explicitly specifies a font name and scaling factor for various symbols.

In reply to by fransfelix

The main thing you need to do is fine the line that contains ":n :a" - this is what places the note and the accidental next to it - and then experiment with inserting ":m:x:y" before and/or after the ":a", using different values of x & y. Probably you will want negative values for x, to close the gap a bit. You may or may not want to try different y values to raise or lower the accidental. Whatever amount you raise it by before the accidental, you'll want to add the converse afterwards so any extensions are back on the baseline. So for example, maybe

:n :m:-2:-3 :a :m:-1:3

This says, "draw the note name, then move the cursor two units left and three units up, draw the accidental, then move the cursor one unit left and three units down".

In reply to by rmattes

The chord symbol code is designed to work with "b" and "#", and will produce correct results with respect to parsing, rendering transposing, exporting to MusicXML. Attempting to use Unicode flat and sharp signs might sometimes look OK for certain fonts, but will almost certainly look bad for other, and may or may not parse, transpose, or export correctly. Recent versions of MuseScore should be better than older ones, but no guarantees, since it wasn't originally designed to work that way.

In reply to by Jojo-Schmitz

There is no problem. I was just trying to explain that I am not inserting the Unicode flats and shaprs. MuseScore picks them from the font and I think it works rather nicely that way.

I began this topic to find and share fonts with the Unicode sharps. I find that they work well and look good.

In reply to by Jojo-Schmitz

Thanks for the link!

This is very interesting! When I add sharps and flats in that website the aforementioned Bahnschrift looks quite good. But when I use the same font in MuseScore the flat sign has an empty space around it. I saved it as pdf and took screenshot from that to make sure it wasn't just MuseScore showing it differently before printing.

The first is from the website, the second from pdf made with the same font in MuseScore.

From what I can tell all of the fonts on the website have sharps and flats. Does the website also add its own sharp and flat signs when the font doesn't have them? Or is it just that the fonts on my computer are poor versions, lacking the accidentals?

Attachment Size
bhnschrft.png 8 KB
bhnschrft2.png 9.05 KB

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