VTT: Import Fontlab hinting

Frode Bo Helland's picture

Is there a way to import Fontlab's hinting in VTT?

John Hudson's picture

You can't do a direct full conversion, but you can convert aspects of FL hinting to VTT compatible format. But you have to roll your own: there is no publicly available solution, to my knowledge.

Richard Fink's picture

The silence is deafening, isn't it?

Frode Bo Helland's picture

Not so wierd actually. Iceland is the only Typophile that matters right now.

John Hudson's picture

Sorry for delayed response.

This is what we did: we hired a Python programmer to write scripts that run from within FontLab that write out FL hinting in a format that is recognisable by VTT. I wasn't closely involved with this, so I can't give much in the way of detail. Our goal was to reduce the manual workload in VTT by automating the actual stem hints, while leaving the resulting VTT source in a state that enabled flexibility in subsequent editing. The scripts can take a variety of input from within FL, including PS stem hints, so we can leverage the Adobe PS autohinter.

Basically, what you need is someone who can program and who can analyse the data structures for FL and VTT hinting and figure out how to map from one to the other.

Richard Fink's picture

Oy Vey.

Rob O. Font's picture

Sounds promising. Can the format that is recognizable by VTT, be writable into an open format? Or writable back to FL 'ints?

John Hudson's picture

There are some incompatibilities between FL's internal representation of hints and what VTT does, so for example 'DoubleLinks' need to be translated into something that VTT will recognise before we do the export. And there is a lot one can do in VTT that simply isn't expressible in FL terms. So while you can translate from FL to VTT and probably at least some data from VTT to FL, you can't do lossless round-tripping.

On the VTT side, there are multiple ways of representing hinting (visual, VTT Talk, raw instruction code), not all of which are perfectly able to express each other, e.g. there are some things you can only do in the raw code. If I recall correctly, our FL-to-VTT tools write VTT Talk.

Jens Kutilek's picture

How do you import the VTT Talk code into VTT? I guess copy&paste for each glyph is not an option ;)

Or are you writing the VTT-specific tables (TSI*) directly into the TTF?

John Hudson's picture

To be honest, I don't know exactly how our FL-to-VTT process works, since I didn't spec the scripts and I'm not the person who uses them. I'm also not sure how much detail Ross is comfortable sharing: I just wanted to confirm for Frode that it is possible and give some indication of what is necessary in order to do it.

Tom Phinney mentioned to me that he's aware of four independent FL-to-VTT workflows, including ours, and I suspect they all differ in various ways: there are quite a lot of options in terms of how it can be done, and some of the decisions will reflect hinting strategies, i.e. what you want to be able to do in VTT with the imported data and how you like it arranged. For example, do you want to try to write CVTs based on the FL hinting, or do you want to map to existing CVTs in a VTT source, or do you want this to be an option?

Jens Kutilek's picture

That's fine, I was just curious. If I would plan something like that, I'd probably go for the extra font tables. At a glance, their format seems easy enough to figure out.

Frode Bo Helland's picture

Thanks John. Just out of curiosity, who are “we”? You can PM if necessary.

John Hudson's picture

Jens, I agree. The VTT private table structure is fairly straightforward, so writing those directly makes sense (and is likely what our tools do, although I note an export option to write to a log also). I'm aware of some other VTT table munging tools that colleagues have developed over the years, e.g. to modify the glyph order of a font that contains VTT tables without mucking up the hint sources.

Frode, we in this case is Ross Mills and me, i.e. Tiro Typeworks. Ross does all our VTT hinting work -- which is why I'm a bit vague about some of the details of our FL-to-VTT workflow --; we hired a Python programmer to analyse the data structures with Ross and write the export scripts for us.

Syndicate content Syndicate content