How to create a complete font?

Music notation symbols, fonts, font sources and font creation, SmuFL.
User avatar
OCTO
Posts: 1751
Joined: 05 Oct 2015, 06:52
Location: Sweden

How to create a complete font?

Post by OCTO »

Hello everyone.
I am curious what is the way to create a complete new font from zero.
There are two approaches as I understand:
1. To design manually own symbols,
2. To "copy" font from a publication.

Questions:
1. How difficult is to manually create a font? Is this the way one create a music font? What are tools (both analog and digital), what are tests that one must pass in order to create a sufficient working font pallete?
2. If one wants to create a "copy" of font, let us say Peters 1880, isn't it difficult to find all symbols that would be scanned and digitally outlined? I mean, it is hardly that one music piece includes all symbols of complete music font.

Just curious.
Freelance Composer. Self-Publisher.
Finale 27.5 • Sibelius 2024.3• MuseScore 4+ • Logic Pro X+ • Ableton Live 11+ • Digital Performer 11 /// MacOS Monterey (secondary in use systems: Fedora 35, Windows 10)
User avatar
tisimst
Posts: 419
Joined: 08 Oct 2015, 17:57
Location: UT, USA
Contact:

How to create a complete font?

Post by tisimst »

OCTO wrote:I am curious what is the way to create a complete new font from zero.
This is a great question. Personally, I would say the hardest part of creating a music font from scratch is achieving the proper b/w balance between glyphs. This is more than just the glyph design, too, because the truth is, in the end, you'll need to decide on engraving settings that match the font as well (e.g., staff line thickness, stem thickness, etc.). These together make the font a truly beautiful. Now to your questions specifically...
OCTO wrote:1. How difficult is to manually create a font? Is this the way one create a music font? What are tools (both analog and digital), what are tests that one must pass in order to create a sufficient working font pallete?
It can be very challenging to start from a clean slate, especially if you've never done it before. I've done it this way as I'm sure Knut and others have as well. My tools include Inkscape and FontForge exclusively. I usually create the curves in Inkscape, export as EPS file, and then import the EPS to FontForge's "Guide" layer (since all glyphs can see it) and then one-by-one moving each glyph's curves to the "Foreground" layer for final positioning. It depends on the intended app exactly which glyph goes where, but the idea is the same.

For starters, as a usable minimum, I'd say that a font should contain the following:
- Rests: whole to 128th
- Flags: 8th to 128th (up and down)
- Note Heads: whole, half, quarter, and augmentation dot (.)
- Clefs: treble, bass, alto
- Time Signature: 0-9, C and cut-C
- Accidentals: double flat, flat, natural, sharp, double sharp
- Dynamics: f, m, p, r, s, z
- Articulations: staccato (.), sforzato (>), tenuto (-)
- Ornaments: trill (tr), wiggle (~), and arpeggio (vertical ~)
- Standard Fermata (up and down)
- Sustain Pedal Marks: P, e, d, Ped., * (end sustain star)
OCTO wrote:2. If one wants to create a "copy" of font, let us say Peters 1880, isn't it difficult to find all symbols that would be scanned and digitally outlined? I mean, it is hardly that one music piece includes all symbols of complete music font.
In many ways this is a lot easier than creating a font from scratch, but you're right that it can be a challenge to find all the symbols you'd like to. Usually, I find that by consulting various piano and orchestral scores I can find most symbols I would like to. The remaining are either omitted or carefully crafted to match the rest.

Here are some thoughts about "copying" a font from historical scores:
1. Scan in originals at no smaller than 600dpi if you have a choice. I have worked at MUCH lower resolution when that wasn't possible, but you want to make sure you can properly see all the important features of the symbols.

2. Use as few points as possible, but don't be afraid to add more as necessary to get the right shape.

3. Wherever possible make curve end-points smooth and constrain the off-curve points to be vertical or horizontal. Just trust me on this one. The shapes will be cleaner and you'll have more control over the final designs.

4. Avoid using the "S" shape of a single curve if you can. It is good design practice to break the curve into two smaller ones at the inflection point. This is particularly critical when you know you might save the font as a TTF since they mostly use quadratic curves (which can't do "S" curves).

5. Avoid automatically outlining the shapes. Unless the symbol's image has REALLY clean edges or you want a grungy look, you'll more than likely be re-doing most of the work anyway.

That's about all I can think of at the moment. Those are some of the things I've learned from making my own fonts and replicating others. Hope that helps!
Music Typeface Designer & Engraver - LilyPond | Sibelius | Finale | MuseScore | Dorico | SMuFL | Inkscape | FontForge
User avatar
OCTO
Posts: 1751
Joined: 05 Oct 2015, 06:52
Location: Sweden

Re: How to create a complete font?

Post by OCTO »

Thank you, it is really a great answer. I like also Inkscape and FontForge and I will see if and how I will progress. But I see it as a very demanding task, actually.
For your point 5. you believe that Portrace and Autotrace is not working well? I have tried it before, I don't remember how was the output, but the symbol was very clean.
For point 4. - I am not quite sure what you mean, but I guess to have two dots that produce S curve?
Freelance Composer. Self-Publisher.
Finale 27.5 • Sibelius 2024.3• MuseScore 4+ • Logic Pro X+ • Ableton Live 11+ • Digital Performer 11 /// MacOS Monterey (secondary in use systems: Fedora 35, Windows 10)
Knut
Posts: 867
Joined: 05 Oct 2015, 18:07
Location: Oslo, Norway

Re: How to create a complete font?

Post by Knut »

Great questions and answers already here. I'll only add to tisimst list of excellent suggestions that you should take the time to read up on good practice bezier curve construction, as well as study a few high quality text fonts before you begin your own design process.

Start small, with only a few essential and unique symbols. Test them thoroughly and, as tisimst suggested, experiment with different settings within your scoring application until you find the balance you're looking fore. With this foundation, it will be much, much easier to make appropriate decisions in the design of the rest of the font.

Also, it can be a big help to keep the different parts of your glyphs as separate shapes until your designs are complete. That way, they can more easily be tweaked and reused or for other relevant glyphs, which will result in a more cohesive design.

Good luck!
User avatar
tisimst
Posts: 419
Joined: 08 Oct 2015, 17:57
Location: UT, USA
Contact:

Re: How to create a complete font?

Post by tisimst »

OCTO wrote:For your point 5. you believe that Portrace and Autotrace is not working well? I have tried it before, I don't remember how was the output, but the symbol was very clean.
For point 4. - I am not quite sure what you mean, but I guess to have two dots that produce S curve?
Maybe I need to give Potrace and Autotrace another chance, but I find I have better results when I do it by hand. I've done enough that I'm pretty fast at it now.

As for the S curve, here's what I mean. A cubic bezier curve (which is what's used in virtually every editor that supports curves) can create an S curve all by itself with its 4 control points, but this creates an inflection point along the way (i.e., the point at which the curve changes its direction):
cubic-bezier-s-curve.PNG
cubic-bezier-s-curve.PNG (18.73 KiB) Viewed 11730 times
This isn't _really_ a problem if all you want to generate are OTF fonts, but if you ever need to generate a TTF font from the same source, it needs to be able to down-convert to quadratic bezier curves. The problem? Quadratic bezier curves use 3 points and can't make S curves, so a down-convert causes the final curve shape to be COMPLETELY different because it fails to approximate the S curve, looking more like a straight line instead.

So, what does the font designer do? They break up the S curve into two smaller curves by inserting a point at (or near) the inflection point:
cubic-bezier-split-s-curve.PNG
cubic-bezier-split-s-curve.PNG (14.98 KiB) Viewed 11730 times
With the inflection point gone, now the curves can be more successfully down-converted in the TTF format. It may not be perfect (it usually isn't), but it will be MUCH better.
Music Typeface Designer & Engraver - LilyPond | Sibelius | Finale | MuseScore | Dorico | SMuFL | Inkscape | FontForge
User avatar
OCTO
Posts: 1751
Joined: 05 Oct 2015, 06:52
Location: Sweden

Re: How to create a complete font?

Post by OCTO »

Thanks for clarification, I guessed it correctly! :)
Why should we not use just one type? Why TTF and OTF? I know a bit what difference is, but if we use OTF in Finale, Sibelius and others, wouldn't it just be OK?
User avatar
tisimst
Posts: 419
Joined: 08 Oct 2015, 17:57
Location: UT, USA
Contact:

Re: How to create a complete font?

Post by tisimst »

OCTO wrote:Thanks for clarification, I guessed it correctly! :)
Why should we not use just one type? Why TTF and OTF? I know a bit what difference is, but if we use OTF in Finale, Sibelius and others, wouldn't it just be OK?
I agree. I think OTF is a great format, but TTF fonts are still popular. Most music fonts are in OTF format.
Music Typeface Designer & Engraver - LilyPond | Sibelius | Finale | MuseScore | Dorico | SMuFL | Inkscape | FontForge
Knut
Posts: 867
Joined: 05 Oct 2015, 18:07
Location: Oslo, Norway

Re: How to create a complete font?

Post by Knut »

OCTO wrote:Thanks for clarification, I guessed it correctly! :)
Why should we not use just one type? Why TTF and OTF? I know a bit what difference is, but if we use OTF in Finale, Sibelius and others, wouldn't it just be OK?
I may be wrong, but I don't think the braking of S-curves only has to do with compatibility with the TTF format. As far as I know, it is also related to good hinting practice, since missing points at extremiums can lead to faulty on-screen display.
User avatar
tisimst
Posts: 419
Joined: 08 Oct 2015, 17:57
Location: UT, USA
Contact:

Re: How to create a complete font?

Post by tisimst »

Knut wrote:
OCTO wrote:Thanks for clarification, I guessed it correctly! :)
Why should we not use just one type? Why TTF and OTF? I know a bit what difference is, but if we use OTF in Finale, Sibelius and others, wouldn't it just be OK?
I may be wrong, but I don't think the braking of S-curves only has to do with compatibility with the TTF format. As far as I know, it is also related to good hinting practice, since missing points at extremiums can lead to faulty on-screen display.
That is correct. That's why most (all?) font editors have the capability to identify extremums and inflection points and gives users the ability to automatically (and accurately) put points there if desired. My workflow has gotten to the point that I tend to put points on the left/right/top/bottom extremums and inflection points now.
Music Typeface Designer & Engraver - LilyPond | Sibelius | Finale | MuseScore | Dorico | SMuFL | Inkscape | FontForge
e_del
Posts: 16
Joined: 22 Jun 2016, 09:18

Re: How to create a complete font?

Post by e_del »

My personal learning curve started from an online tool : http://www.glyphrstudio.com/online/
There I learned the basics about char size, composing with multiple shapes etc...
VERY basic, but easy, and after that I imported it in Font Forge and started tweaking ...
There are other online font editors, that avoid the need to install programs and morover working in a web browser, are not tied to a particular OS/platform ...
Post Reply