Let's build a font editor from scratch!

Diner's picture

My curiousity has gotten the better of me and I've decided to peek behind the curtain to find out what level of programming skill is required to build a working font editor.

There is too much I rely on Fontographer and too steep of a transition curve for me to use Font Lab. So I figure it's worth looking into building my own.

Since I'm already a hard core FOG user, I can't help but want to base my origins on this application and improve it as I have always wanted to see it improved.

However due to my own technical limitations, I have always assumed making a font editor is heavy business until I found out about RealBasic. I have only dabbled in this program a few times and I'm not sure what it's capabilites are but I'd be interested in finding out if it has the ability to cobble something like this together.

Are there any programmer types on the list that have any insight?

Stuart :D

graficartist's picture

I assume you're talking about building one for the Mac platform.

There is a great shareware font creation program called 'The Font Creator Program' by a guy named Erwin Denissen from the Netherlands. His website is http://www.high-logic.com. This software is for pc's only right now and costs about fifty bucks.

I use it at work here because I only do very rudimentary font creation and this software is cheaper than fontographer. But it is quite hefty for shareware. As a matter of fact, as far as shareware goes it is one of the best in any category.

I would love to see it 'ported' to OS X so I would have an inexpensive (did someone say cheap) alternative to stretch my puny typographic wings on.

Anyways, I think he would be a great resource to start with even though it is a different platform.


Diner's picture

Thanks for the tip Tom, I have e-mailed Erwin and await his reply . . .

Yes, I intend this to primarily be on OS X but RealBasic has the ability to export to classic as well as all flavors of Windows including XP.

Stuart :D

Diner's picture

Well, after further research and inquiries, RealBasic does indeed have the ability to create a font editor! When I get some time I will explore the application further to see how to do some things with it.

I did hear back from Erwin but he essentially linked me to the microsoft/typography site to read up on generating true type fonts.

Stuart :D

johnbutler's picture

GUI programming is hard. Creating custom GUI controls like Bezier curves and handles is even harder. Using RealBASIC to build a font editor is purely insane.

My suggestion: learn Python, start playing with TTX, and slowly move into FontLab scripting. By the time you have these things down, contact me privately. Avoid RealBASIC at all costs. Learn Python and/or Objective C.

Diner's picture

Thanks for the tips John!

Last evening I opened up FOG in ResEdit on the mac and looked for ways to "hack" away at this baby but even after spending some time playing with the app, I was unable to do little more than change some dialog boxes and a few images. I thought I made big changes and then ran the app and no different or little different.

I was hoping to get deep enough into the application to figure out how to alias all the cursors and just see how much I could do with it - Like soupin' up my old bike. Let me know if you have found any good hacks for it.

Otherwise, perhaps RealBasic isn't the best editor for this type of project, but with little serious programming experience other than HTML I truly wonder how difficult it really is to create an application that can do what FOG can. It's surprising how very basic it is and I would imagine some folks already have a good start on vector apps from RealBasic.

The thing that frustates me is that it would seem there is a way to build applications but because I don't have the knowledge, I am severly stuck with what's our there vs. what I can create. It's alot like font creation but in a different industry.

Anyhow, thanks for the insight,
Stuart :D

jay's picture

There's a saying in sailing circles: build a boat only if you want to build a boat. If you want to go sailing, buy a boat. (Or steal one, but that's another story.)

I think the same applies in the software world. If you want to build fonts, build fonts. But if you want to write an app, be prepared to give up font building for a while.

Best of luck, regardless of which direction you decide!


kennmunk's picture

I think Jim Gallagher (Prev. Macromedia Fontographer support guy) might be interested in this. He mentioned building a new font editor or buying fontographer from Macromedia.
Maybe the RoboFog guys too...

Diner's picture

I am currently engaged in about 4 open ended discussions with folks I'm wanting to build a font editor with and unfortunately there has been no progress. Jim is one of the first folks I spoke with but hasn't revealed any plans of this nature. There has also been no progress trying to convince the Font Lab guys that they need to revise the interface of the application.

Jay, I think you may be right and thank you for the nice analogy . . . I think my visitors would prefer I spend more time making new fonts than building a font editor.

In the interim, I've at least begun opening up FOG in ResEdit to see what sort of hacks I can impart to the application to affect the gui somewhat. If anybody has any nice hacks not already shown in the manual or the obvious starting screen hack/dialog boxes hack, I'd love to get in there and change the icons, edit my toolbar, and "alias" the application to have a smooth look.

Stuart :D

Mark Simonson's picture

It's not really possible to change the behavior of FOG using ResEdit, just the surface appearance (and even that only in a limited way). ResEdit was created mainly as a way to separate the "look" of an application from the code to facilitate localization. The CODE resources that you can see in there are in a form that's not practical to modify--it's already compiled and linked. Making even the tiniest change in one of those could totally hose FOG.

My ideal font editing program: The basic interface would be like FOG's metrics window, but you would be able to edit the outline too. Having a separate window to edit each glyph has always seemed rather limiting to me, and that they're done this way because that's the way it's alway been done. Apple's old bitmap font editor (FontEdit) was an exception. It would be especially handy for scripts.

Mark Simonson's picture

Something like this:

Dream Font Tool

Of course, it would work in the latest OS and the glyphs would be anti-aliased, etc., but that's the idea in a nutshell.

rs_donsata's picture

Very nice, how much would this cost to be developed

Diner's picture

I'm with you Mark, it is really lousy that making JUST GUI changes to an application can make such a big difference yet there doesn't seem to be a developer that's interested in making this happen.

It kills me that there's all this super powerful and useful source code sitting underneath Font Lab but I can't get there without the GUI being tuned to my needs and I know I'm not the only one who feels that way.

It also kills me that just because it's not a priority for them to make those simple changes that I feel compelled to have to handroll my own font making application.

I have an idea . . . Stay tuned . . . .

Stuart :D

Aaron Sittig's picture

Mark, I work in roughly the manner you've illustrated, using FontLab, by working with the preview panel open. I can set words using the glyph I'm editing and see how my changes work in context. I can edit the side bearings in the outline editing window. If I decide that I need to edit another glyph in the sample word, a double click in the preview window makes it the current glyph in the frontmost editing window.

WRT building a font editor from scratch - I've spent enough time writing code to know a bit about estimating the possibility of a project. My heuristic is such:

A) If I think the project is going to be a piece of cake, then it's going to take a very long time.
B) If I don't know how hard the project will be, then it's far beyond my abilities at this point.

The "build a boat only if you want to build a boat" comment is dead on. I can guarantee that the learning curve for productive use of FontLab is miniscule compared to the learning curve for comfortable exercise of UI programming skills. You just have to attack FontLab with the same enthusiasm which I'm sure you had on first contact with FOG.

Diner's picture

Aaron, how have you gotten through the kerning editor? It seems totally silly to have the metrics information ABOVE the specimen showing.

Also, I know in FOG there are key tricks to tab from kern to kern and increase the kern amount all on the keyboard. Does FL have that or a way to change the keys that do this?

Stuart :D

Aaron Sittig's picture

> It seems totally silly to have the metrics information
> ABOVE the specimen showing.

Having not used FOG, I can't see the benefit of having it
below. I wasn't bothered by it up above.

> in FOG there are key tricks to tab from kern to kern and
> increase the kern amount all on the keyboard

You can adjust the kerning by hitting the arrow keys to
increase or decrease the kern size, but there's no way that
I've found to quickly travel along a list of kern pairs.

I can say that I would find kerning completely impossible if
I didn't have the great class based kerning tools in FontLab.
This has to be at least one reason to upgrade.

eolson's picture

I'm with you Aaron on the FL drawing. Actually I'm not sure how I ever drew in Illustrator before. It's very imprecise. As for the kerning, FOG has a class based kerning system that is much better than FL. It's dead simple. FL class kerning is weird, over designed but ultimately very powerful. I'm still in the process of converting my handy simple text files that I used to feed into FOG for kerning.

eolson's picture

Mark's FOG fantasy picture brings up some interesting points. Most font design time is spent drawing, tuning and spacing. Sure kerning and hinting take some serious time, but wouldn't it be amazing to have a minimal and simple program similar to Mark's faked FOG image for just the basics. I don't mean Type Tool either. Just drawing tools and a window like Mark's for spacing. With smoothing, of course.

Mark Simonson's picture

The gist of that mockup is the idea that you should be able to see the effect of the glyph designs in context as you draw.

Imagine being able to drag parts of glyphs from one to another in a single window, for instance. It just seems like it would streamline the process. This is one of the reasons I like doing my glyph design work in Illustrator. I can see everything in context.

Aaron's suggestion of keeping two windows open is a good one, but I think it would be even better if the two could be consolodated. It reminds me of the early versions of Illustrator where you couldn't draw and preview at the same time in the same window, so you would have two windows open--one to draw in and one to see what it looked like.

I think this "one glyph--one window" idea is just something that's been around so long that it's never been questioned. Imagine if drawing programs worked like this. Each object would be stored in a library and could only be edited in its own window and could only be seen in context in a "layout" mode. It would be a real impediment.

I'm not going to stop making fonts just because the tools could be better. The tools we have are light-years beyond what people used to create metal or photo type. But they could be better.

Mark Simonson's picture

Also, this idea could apply just as well to FontLab. I don't mean to suggest by the illustration that it's a FOG-only "fantasy".

speter's picture

Stuart, if you still have a burning desire (a year later) to hack a font editor, there's FontForge. Unfortunately, my X programming skills are virtually nil.

vaissi's picture

yes, there is already an alternative to fontlab on the mac, that is fontforge, and it is free


kakaze's picture

I'd love to see an application based on the Adobe interface/controls.

Basically Illustrator with the ability to do fonts.

I wonder if someone could programme a plugin for Illustrator that would do that?

Thomas Phinney's picture

I think too many of the folks involved in this discussion don't quite understand the number of person-hours required to develop good software. If your goal is to make fonts, I'd focus on either that, or incremental improvements to existing tools (FontLab or FontForge). If you want to get into the font editor business, then be prepared to spend a huge portion of your time for the next few years to do it.

That being said, FontLab's drawing capabilities are fully exposed to Python. That means that you can do additional drawing tools yourself and add them to FontLab. They already added FOG-like tools to FL 4.6 by doing this. If you don't like the way they did it, why not start by modifying their Python code?

It would be easier to change the drawing UI of FontLab than to get Fontographer up to FontLab's level of capabilities, IMO.

My two cents.


P.S. Jim Gallagher is back at Macromedia, apparently.

Mark Simonson's picture

Thomas, I don't know if you realize, but most of the above discussion was from about a year ago.

Anyway, it looks like Yuri is working something along the same lines as my "fantasy" suggestion for FontLab (see here).

BTW, I totally agree with you about the impracticality of making a new font editor from scratch. Especially if all you want to do is make fonts. I gave up on that idea myself when FOG was released in 1985. :-)

After finishing my most recent batch of fonts last Fall, I switched cold-turkey to FontLab and I'm getting very used to it now. I really like the fact that they listen to customer suggestions and keep improving it. I have no doubt that it will just keep getting better (and it's already very good). It just takes some getting used to after working with FOG for so many years.

Thomas Phinney's picture

I was wondering how I'd missed the discussion. It was only after I posted that I read the whole thread more carefully and saw that we jumped from May 23, 2003 to May 31, 2004.



yar's picture

This is a small illustration for Mark. Is it close to your fantasy?

(This is actual FL Studio 5 screenshot with Font Window iconized behind Glyph and Metrics windows).

FontLab Screenshot

Mark Simonson's picture

I must be dreaming. :-)

So, what is that? It looks like you've put the Preview/Metrics string into the Glyph window. This would be a great feature.

Mark Simonson's picture

Another thought: I think the preview mode should match in the Glyph window with the current glyph and the adjacent glyphs. In other words, if the glyph is not in Preview Mode, the adjacent glyphs should not be either. If the glyph is in Preview Mode, then the adjacent glyphs should be too. Does that make sense?

Mark Simonson's picture

Yet another thought: I assume that all those adjacent glyphs are just for looking at and not directly editable. However, what would be cool is if you double-click on one of them, the Glyph window would switch to that glyph (similar to using the glyph palette at the bottom of the Glyph window), and the preview glyphs would shift left or right accordingly. (I don't think you'd want this to be invoked by a single click since it might cause difficulties in cases where glyphs overlap.)

yar's picture

Mark, both your ideas are already implemented. You have an option to fill or not fill shape group (or you can tell it to follow glyph's filling mode) and certainly if you double-click glyph in the group, it will become editable (and jump to the middle of the group string).

speter's picture

That is very cool, Yuri. :-) I look forward to FL Studio 5.

Mark Simonson's picture

Yuri, you have made my day.

(What was that other font program we used to use called again?)

nickshanks's picture

Hi, I'm a typophile newbie with a problem (other than the fact that i can't find the 'new thread' button):
I have got several PC-originated fonts that are encoded all wrongly. For instance 'Cyrillic ' fonts with the Cyrillic characters being mapped to ABC..abc.. instead of U+0400 to U+04FF, ligatures not being correctly marked and so ae doesn't become

pablohoney77's picture

to start a new thread: scroll down to the bottom of the section you're in, ie general discussion, build, etc., then click on the grey bar where it says "start a new thread" after that you're in business!

Syndicate content Syndicate content