New music notation font
Hi everyone,
I have been making a new music notation font. Parnassus is a haskell program I am making for
experimenting with music layout, but there hasn't been much progress. But I have a useable font,
and Nicolas has helped me porting it to MuseScore. It's not complete, but it has all the basic glyphs.
You can read more about it on my website: http://www.resonata.be/archives/117
Regards,
Kristof Bastiaensen
Comments
Good work Kristof :)
From the sample on your site, I'd say it looks very promising!
Hey Kristof, as you are looking for the right font license, check out SIL Open Font License (OFL): http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ofl
As a reference, the recently created Bravura font is also licensed under OFL http://www.smufl.org/fonts/
In reply to Font license by Thomas
As a matter of fact, I have already decided to use the OFL. It seems the only reasonable choice for use in MuseScore. Also I have created a github repository with the source and musescore files: https://github.com/kuribas/parnassus
In reply to font licence by kuribas
Hello, how is the work doing on Parnassus? Did you read about SMuFL ?
In reply to Hello, how is the work doing by [DELETED] 5
SMuFL looks very nice, especially since there is no standard for music fonts. My work on parnassus is currently halted, since I am working on an interactive metafont editor.
Ooooh, I really like the accidentals in the Parnassus drafts/examples, they're not as hole-y/open and with more defined strokes.
I don't quite like the bleeding, though... guess I'll stick to MScore (Emmentaler) for now, I've been looking at musical fonts tonight and, given that even creators of alternatives praise it, and it looks "larger", not as filligrane, making it easier to read during a performance, really helps (though I never liked its natural accidental at all).
In reply to Ooooh, I really like the… by mirabilos
I’m currently trying to merge the Parnassus accidentals into Emmentaler. (The microtonal ones are going to be a chore…)
Any chance of that going to be accepted and merged?
In reply to I’m currently trying to… by mirabilos
Meh. Some scaling needed.
While I like the new ♯ already, the ♭ is rather weak. (And I need a ♮ for comparison, because that one utterly sucks in Emmentaler.) I suspect Parnassus is pre-SMuFL. I really need to understand its
bbox
values in the provided XML file… but probably just do size comparisons to noteheads and scale things to match SMuFL.Incidentally,
parnassus-mscore.sfd
is provided under the correct licence to merge individual glyphs over ☻ (GPL with font exception, same as Emmentaler/MScore).In reply to Meh. Some scaling needed. … by mirabilos
Why merge Parnassus into Emmentaler rather than having it as a separate font?
BTW: A new font, Leland, is currently being designed/developed for MuseScore, by a staff member, AFAIK it is planned for MuseScore 3.6, and is planned to be come the new default for MuseScore 4 (and part of its development builds already, in an early form)
In reply to Why merge Parnassus into… by Jojo-Schmitz
I actually like Emmentaler but hate its accidentals (and the 8vb clef bug). I don’t like the overall look of Parnassus, but its accidentals are much closer to the engraved music I collected over the years.
I saw the development of the new one (by Tantacrul on Twitter) but, as I said, I like Emmentaler per se.
In reply to I actually like Emmentaler… by mirabilos
Regard "the 8vb clef bug" - is there a specific issue in the tracker you are referring to? I'm not aware of any particular known issue with this clef in Emmentaler.
In reply to Regard "the 8vb clef bug" -… by Marc Sabatella
Yes: https://musescore.org/en/node/309309
In reply to Yes: https://musescore.org… by mirabilos
or #309309: F8vb clef in Emmentaler (used in score) has the 8 disconnected, Bravura (which is used for the palette) doesn’t ;-)
In reply to or #309309: F8vb clef in… by Jojo-Schmitz
That’s what I wrote ☻
But I decided to split these and deal with the accidentals first.
My WIP is at https://github.com/mirabilos/MuseScore/commits/parnassus-accidentals in case someone wants to have a look at it (this branch may be subject to force pushes); I also had to fix a couple of other issues in the font (nōn-integral points, open paths, missing/outdated hinting information, etc) but learnt tons about fonts and SMuFL during it and had a blast ☺ (well as much as one can while ill in bed).
In reply to That’s what I wrote ☻ But I… by mirabilos
OK, this is quite… well, the ♮ is a definite improvement (except for hinting of the rightmost vertical line at small sizes, like 100% view on my 91 dpi laptop in the software itself), the sharps are not much of a change (but go well), and the ♭… hmm… if sitting in a space it cuts the lower stave line somewhat fierce, but at a distance or smaller sizes it’s great. I think I’ll either increase the advance width of the accidental-opening-parenthesis a bit or move the ♭ so it begins at position 0, depending on how well MuseScore deals with the advance width (it seems to not honour it for the ♭+closing-parenthesis sequence… might be useful to investigate that instead or additionally).
MScore with Emmentaler accidentals:
MScore with Parnassus accidentals, WIP:
Check it from a slight distance. Zooming in you see more details than normally visible.
I think I also should investigate the differences between parnassus.sfd and parnassus-mscore.sfd regarding the ♭ vs. notehead size.
But, all in all, this is much closer to professionally typeset notation from the last century. (Looking at some real notation, the cutting the baseline is not a problem. I need to check the hinting and thickness of the vertical line in the ♭ as well. But this is only apparent on low-DPI devices.)
In reply to OK, this is quite… well, the… by mirabilos
I’m reasonably happy with tonight’s WIP version (commit 4cd5fbefdeb324e2605043d86095b8f29142c755 in my branch). Screenshot:
(It turned out kerning was ignored, but slightly adjusting the ♮ glyph helped.)
PNG export (full resolution):
I’ve patched the accidentals renderer to honour the lower advance width of the ♭ accidental before the closing parenthesis.
The new font is also a native TrueType font (quadratic splines), not one dynamically auto-converted into TrueType by FontForge from cubic splines (PS font), which allowed me to optimise the splines quite a bit and make use of relocation (e.g. all the clef variants are now stored only once, and the ottava clefs just embed the normal glyph). This saved 25% (!) of the TTF size, and it can also reduce the size of the generated PDFs/SVGs/etc. (I’ve also removed over 12½ KB of redundant spaces at end of line from the font SMuFL JSON files… this all shaves off quite a bit from the binary size, too… we could save more by using tabs for indenting it, but I’ll leave that open for another discussion, while redundant whitespace at EOL can just be killed.)
And, of course, doing an almost-full review of the font, I found quite some places where glyph edges were… suboptimal or even just plain wrong (one even possibly triggered a renderer error, though not in MuseScore/Qt); for example in the treble clef:
Needless to say, I’ve fixed those which either I or the automated testing tools of FontForge found.
In reply to I’m reasonably happy with… by mirabilos
Nice to see another user experimenting with the fonts. The FontForge experience is interesting to say the least. Personally, I'd like to see in the future some more MuseScore users contribute to some alternative font formations/choices and have the 'open-source' attitude trickle even further with community font formation choices, kind of like with what is found the SoundFont (SF3/SF2) forum every now and again but for notation fonts :)
In reply to I’m reasonably happy with… by mirabilos
Amazing work! I can't wait to try it out!
In reply to Amazing work! I can't wait… by ecstrema
I’ve asked in dev chat whether a PR has a chance of being merged now. I’m satisfied enough with the current WIP.
In reply to I’m reasonably happy with… by mirabilos
removed over 12½ KB of redundant spaces at end of line from the font SMuFL JSON files
Please don't, we get those straight from https://github.com/w3c/smufl
Better tell them about this (and provide them with a PR. And bring along a lot of patience, they are not moving fast at all :-()
But maybe it makes it into SMuFL 1.4, due end of this year (bit move there from end of last year, IIRC)
In reply to removed over 12½ KB of… by Jojo-Schmitz
oic, good point…
… but changing the whitespace is easily automated, so we can just do that after each download of the next version; I’m assuming we don’t change these files ourselves?
In reply to oic, good point… … but… by mirabilos
I don't think we change them. And don't think we should...
In reply to I don't think we change them… by Jojo-Schmitz
Indeed, we shouldn’t (at least other than the one-time whitespace fix).
I saw you comment on https://github.com/musescore/MuseScore/pull/6742#issuecomment-715885497 and brought this to SMuFL.
Maybe for master we can build-depend on jq which can remove all optional whitespace from these files at build time. A Windows version of jq exists. Not sure whether an extra dependency will fly with people wanting to compile, though, which is why I’d suggest to leave this as-is for 3.x and consider that separately for master.
In reply to I saw you comment on https:/… by mirabilos
Also it won't be needed for any local build (at least there would be optionsl), needed just for those on CI.
In reply to Also it won't be needed for… by Jojo-Schmitz
You mean something like, embed the full files in debug builds and strip it in release builds?
In reply to You mean something like,… by mirabilos
Yes
In reply to Yes by Jojo-Schmitz
Works for me. Something like cmake -E copy_files to copy the files from the source tree to the build directory for dev builds then, and a loop over all files converting them, like…
mkdir -p $objdir/fonts/bravura $objdir/fonts/gootville $objdir/fonts/mscore $objdir/fonts/musejazz $objdir/fonts/petaluma $objdir/fonts/smufl
for file in fonts//.json; do
jq -c <"$file" >"$objdir/$file"
done
(or srcdir-relative in objdir)… for release builds (and the equivalent batch magic for Windows).
In reply to removed over 12½ KB of… by Jojo-Schmitz
And bring along a lot of patience, they are not moving fast at all
I take that back!
In reply to I’m reasonably happy with… by mirabilos
Bravo for fixes like this! I recall MuseJazzText has a really alarming number of similar problems, in case you are looking for something else to do.
In reply to Bravo for fixes like this! I… by Isaac Weiss
Ouch. No, I’m actually, not, I’ve sunk multiple person-days worth into this already and even have a text font of my own that maybe needs some treatment… and I don’t like Jazz and “handwritten”-style musical fonts even… sorry.
In reply to Ouch. No, I’m actually, not,… by mirabilos
@mirabilos: Any possibility of addressing the concerns of the OP found in this thread (https://musescore.org/en/node/313196)? It looks like some would want you to change the design of Parnassus' accidentals to fit their perception of weight/sharpness with Emmentaler's design, but that'd probably involve some unenjoyable detailing.
In reply to @mirabilos: any possibility… by worldwideweary
I’ll answer there in detail. tl;dr: “as designed”
Oo, I really like your noteheads. Very, very nice.
Looks good! I hope MuseScore supports installing external SMuFL fonts in the near future (and that the team is implementing the new Leland font already thinking on getting MuseScore ready for any SMuFL font)
In reply to Looks good! I hope MuseScore… by elerouxx
Well, MuseScore us using SMuFL fonts since long, Bravura, and now also Petaluma and Leland. But also Emmentaler and MuseJazz that got made SMuFL complaint.
Still all these need to get compiled into the program, to make sure they are available on the target machine too