Designing a typeface requires too much technical information and efforts which are barriers to the designer. The interface of most type design programs are created with a mind which is more a "Developer/Programmer" mind rather than a "Designer" mind. This made the learning of these programs much harder for designers. I've worked with some complex CG programs like "Maya" but I found their interface much more satisfying and easier to achieve project goals. So I was thinking about how a Type design program should be and came up with an "Imaginary Program". Maybe my Idea is idealistic and too far from what we could have in near future but I thought some Ideas might be interesting for you and/or program developers. I had to get it out, so here is the idea:
The Imaginary program has a general window named "Text Editor" and couple of secondary windows which will appear in middle of design process. in the Text editor The software puts a predefined text that will be used for examining the typeface and creating glyphs and other stuff (we could have three text models: "Basic" which only includes a couple of glyphs which are required for designing the basic Idea e.g. humburgefonts and "Advanced" text which contains all glyphs of the language(s) in actual words and "Extended" text which contains all possible combinations which are required for the language. I think this should be the main window when a designer works with a typeface (instead of glyphs list window which is now the main window when we open a font). There are some reasons for this argument: 1. I (as a designer) wouldn't be interested in glyph names and encoding and digitally related information behind glyphs and so many other technicalities. I just want to design letters (or glyphs) and examine them in the intended context 2. I could create complex OpenType lookups in the context without any knowledge of programming (I'll explain it later) 3. I always wanted to design in words not just individual glyphs. In this window I could simultaneously design a glyph and watch it in the combinations and full body text. I can edit and redesign glyphs and examine them interactively. (The "Glyphs" program has implemented similar kind of behavior but the text window is restricted; we can't have lines of text, there is no predefined text there and your text shouldn't be too long. so you can't test too many combinations) 4. When I want to find a glyph I just have to type it in the "find" window dialogue, no more crappy names for glyphs to find them or other issues. So the basic Idea is to replace the glyph list with a sophisticated text editor window as a main window to find and organize glyphs and justify text and everything. Glyphs list window will not be vanished and it would be in background, and every time I want to go in depth I'll call it.
Everything is incorporated in the "Text Editor" window. But it's not packed. We could have the "Text Editor" as the main window and some buttons that would be used for creating ligatures and other sophisticated OpenType typographic features. We still have the toolbar and other path related operations like merge counters and whatsoever. When I open the program, it would ask me in which language(s) I want to design. I click the language and hit next, then it asks which template I want e.g. Nastaliq (or Cursive hand writing in Latin) or Naskh (or Roman typical typeface in Latin) and so on.When I open the template I see the "Basic" text with basic elementary components in grey color (they could be in the mask). Name of these components are simple and human readable. In first step I only design these elementary components and in the final process the software adds the final glyphs with their production names. These templates could be expanded or edited later by users and shared on the net. I also thought that there would be a guideline for users in order to develop such smart templates, which will be used to automatically creating a whole bunch of glyphs.
. In the Text Editor I could define and design ligatures. I highlight the glyphs which I want to be replaced, then I hit "create ligature" button. A window will appear and I design the ligature. There is an ok and cancel button on the window, cancel will override the works and ok will automatically create the required OpenType lookup for the ligature .In the Text Editor I could create contextual alternatives. basically I click on the glyph(s) that I want to be replaced; then I click "create contextual alternative" button, then I highlight the context, and finally I hit enter to proceed or escape to cancel; subsequently contextual alternatives window would come up. In the window we see a grey representation of the surrounding glyphs and the base glyph in the middle, now I can redesign the middle glyph to suit it to the situation. If I want to change the context I highlight it in the Text Editor. There is an ok and cancel button on the window, cancel will override the works and ok will automatically create required OpenType lookup for the contextual lookup.In the Text Editor I could define connections between glyphs in cursive typefaces (like cursive handwriting or Arabic script). There is a "Basic" text which contains all possible combinations of the components. I click two unconnected parts and click "create cursive connection" button, and a window will appear; in the cursive connection window we see a grey representation of the two unconnected parts, so I only have to position the parts (if I have to) and design the connection between the parts. The software will automatically generate the required rule in OpenType language. This will be done in a contextual alternatives and a cursive attachment lookup. There is an ok and cancel button on the window, cancel will override the works and ok will automatically create required OpenType lookups .In The Text Editor I could define spacing. I have the "Extended" text for every possible combination. So software is able to auto kern the text. Finally I have to examine the text and tune it up a little. If software generates every possible combinations based on the elementary components then the generated text might be much smaller than the actual final glyphs.
Ok here comes the too idealistic part!
Base on the components the software creates the final glyphs for the intended languages (what Decotype does now for the tasmeem Arabic templates). The software will also expand contextual and ligature lookups to the new created glyphs and also creates class-kerning for the new glyphs. Mark positioning for placing the dots (in Arabic) and diacritics (if required) are also auto generated. All of these auto generated stuff are editable by hand (I don't know if the last part is achievable in tasmeem before shipping the font, Thomas would you please help on this?) .In the Text Editor, I could run a command which will examine the text in the intended languages (by using the "Advance" or "Extended" text) and it will mark the collided glyphs in the window. The software would examine the mark positioning and kerning data. I can click next or previous button to jump to any collision. The program could have a button like "fix kerning collisions" and it will create kerning exceptions, and "fix mark positioning" button would create contextual mark positioning lookups.
If there is anything left it should be handled manually.There is a script editor which echoes all the commands which are executing. So it's much easier to create scripts because I can find any command I want just by clicking a button or by doing it manually.
Maybe some of the ideas already exist in some font programs but in a different implementation which I'm not aware of. If there is anything, please mention it. Also there are so many other things I didn't discuss because I think they already exist in the present programs.
I bet there are other features which you always wanted to be in a program. I didn't say anything about Multiple Master, because I thought with Superpolator there isn't anything left.