Microsoft Visual TrueType 6.10 with Autohinter, available for download

A new Version of VTT, (VTT 6.10) is available today. The download is available here

the download can be installed as a fresh install, or as an upgrade from the last release 6.01 August 2015.

some details below.

Mike

What’s new?
Version 6.10 [February, 2016 release]
The following are the changes since the 6.01 [August 31, 2015 release] release of VTT:
• New: Brand new Icon for VTT, & new icons for the Graphical Hinting interface.
• New: Autohinter for Latin and East Asian fonts. The new Autohinting modes makes use of a new lightweight hinting strategy, that is best suited to today’s rendering environments, such as DirectWrite. Most Autohinters generate low level hinting instructions that you cannot easily edit or improve. This new Autohinter generates high-level hints that you can easily edit via VTT’s graphical user interface. Some details below. 
Note: No Autohinter, including this one, is perfect; the intent is that this Autohinter works well enough for most glyphs. Autohinting for all glyphs in the font should be carefully checked and proofed, and certain glyphs may need to be re-hinted manually, either by using the Visual Hinting tools, or by editing the VTT talk. Please see the sample font VTTDemo.ttf, that ships with VTT as a reference on best practices for hinting.
• New:  Ability to automatically generate a ‘Control Value Table’ for Latin fonts, saving you time, so that you can begin adding ‘Visual hints’ to your font straight away, without the need to measure the font, and manually fill in the relevant CVT entries.
• New: Error and Warnings Limit. When you open a font, VTT will show a list of errors and warnings it detects in a font. If there are many errors and warnings in the font, this may slow down the process of opening a font file. To speed up opening time, you can set a limit on how many errors and warnings to display.
• New: Legacy Compile. Set this option to ensure that your font will compile exactly the same as it did in Versions 4 and below of VTT.
• New: Check box added to allow future suppression of Import binary hints message when opening a font with no source data.
• Various bug fixes related to performance.


Microsoft Visual TrueType (VTT) is a professional-level tool for graphically instructing TrueType and OpenType fonts. VTT 6.10 includes an Autohinter for Latin and East Asian fonts, that automatically generates a set of instructions for all glyphs in a font. The automatically generated instructions can then be easily edited via the Graphical User Interface, or by directly editing the High Level VTT Talk code. VTT 6.10 can now also automatically generate a ‘Control Value Table’ for Latin fonts, saving you time, so that you can begin adding Visual hints to your font straight away, without the need to measure the font, and manually fill in the relevant CVT entries. The Autohinter makes use of a new lightweight hinting strategy, that is best suited to today’s rendering environments, such as DirectWrite.


Light Latin Autohint
VTT 6.10 includes an Autohinter for Latin fonts. This Autohinter makes use of a new lightweight hinting strategy that focuses on fitting common heights, such as x-height, Cap Height, Ascender, Descender to CVT heights. This strategy, takes advantage of Windows symmetric rendering modes and anchors these key heights to the grid, thereby maintaining consistency in heights across a font family. This method of grid-fitting also helps to reduce blur, and minimizes distortion.
Follow these steps to Autohint a Latin font:
Autohint Latin
1.       Start Visual True Type.
2.      File > Open. Navigate to font file you would like to Autohint.
3.      Select Font File and Open.
4.     From the Tools menu, select Autohint > Light Latin Autohint.
5.     When Autohinting is complete choose Save from File Menu
Note: No Autohinter, including this one, is perfect; the intent is that this Autohinter works well enough for most glyphs. Autohinting for all glyphs in the font should be carefully checked and proofed, and certain glyphs may need to be re-hinted manually, either by using the Visual Hinting tools, or by editing the VTT talk. Please see the sample font VTTDemo.ttf, that ships with VTT as a reference on best practices for hinting.

East Asian Autohinter
VTT 6.10 includes an Autohinter for East Asian fonts. This Autohinter makes use of a new lightweight hinting strategy that focuses on the horizontal strokes common in East Asian scripts. This strategy, takes advantage of Windows symmetric rendering modes and locks the bottom of strokes to the pixel grid while letting the top of strokes float, by using a ‘Shift’ command. This strategy balances edge contrast vs. blur and produces a good distribution of strokes with balanced counters.
Note: When the East Asian autohinter is run, on an EA font, the Latin portion of the font will be automatically hinted using the same hinting stragety as used by the Light Latin Autohinter.
Follow these steps to Autohint an East Asian font:

1.       Start Visual True Type.
2.      File > Open. Navigate to font file you would like to Autohint.
3.      Select Font File and Open.
4.     From the Tools menu, select Autohint > East Asian AutoHint.
5.     When Autohinting is complete choose Save from File Menu
Note: This simpler automatically generated instruction set will allow for easier editing by a typographer. The intent is that the Autohinter works well enough for most glyphs, leaving a smaller percentage that will need manual touch-up. These fixes might include changes to fix symmetry or proportion issues. No Autohinter, method can produce perfect results. Extensive Proofing of the Automatically generated hints, is highly recommended before shipping a font file.
Note: On complex fonts, the progress indictor may stop updating and the Autohinter may appear to have hung. Generally, the Autohinter is still running and will complete in just a few moments. As a time reference, Autohinting a 28,000 glyph Asian font on an average laptop takes just under one minute.

Control Program Only

TrueType allows control over the regularity of features through the use of values stored in the ‘CVT’ table. Control values are measurements of features, such as lowercase stem widths. These stems, although similar to one another, may have slightly different outline distances. With Cvt’s the distances can be controlled so they are the same pixel width at a low resolution. At a higher resolution the control value won't be used but the natural distance will display in the stems. The Control Value table doesn’t require these values to be glyph feature distances. The values are an integer and can be accessed from many TrueType instructions. The table also can be written to as well as read from other tables. Other examples of glyph and font features that can be stored in the control value table are: cap heights, x-heights, overshoot distances, ascender heights, baselines, figure heights, serif lengths and heights, italic angle, group (uppercase, lowercase, etc.) stem distances, group round distances. Other features might be: smaller group distances such as a math sign stem distance, braces, brackets, or parentheses distances.

VTT 6.10 can now automatically generate a Control Value Table for Latin Fonts. The above mentioned measurements will be automatically generated, saving you time, so that you can begin adding Visual hints to your font straight away without the need to measure the font, and manually fill in the relevant CVT entries. Note: Selecting Tools> Autohint > Control Program Only, is similar to Tools > Prepare font > Import Templates method of generating tables in older versions of VTT. Selecting, Tools> Autohint > Control Program only, will automatically generate a compiled Control Program, Pre Program and Font Program.
Follow these steps to Generate a Control Program

Control Program
1.       Start Visual True Type.
2.      File > Open. Navigate to font file you would like to Generate a Control Program for
3.      Select Font File and Open.
4.     From the Tools menu, select Autohint > Control Program Only
5.     When complete choose Save from File Menu
You can now begin hinting, either using the Graphical User Interface or by adding instructions in the VTT talk window and compiling. Please see the sample font VTTDemo.ttf, that ships with VTT 6.10 as a reference on best practices for hinting.
«134

Comments

  • Wow! This sounds useful.
  • Try here if you need the 64-bit version.
  • Dave Crossland
    Dave Crossland Posts: 1,431
    edited February 2016
    New: Autohinter for Latin and East Asian fonts. The new Autohinting modes makes use of a new lightweight hinting strategy, that is best suited to today’s rendering environments, such as DirectWrite.
    Mike, I wonder if you could comment on how this compares to ttfautohint's hinting strategy? :)
  • hi Dave, I am planning to follow up with some more detailed posts, including graphics (which can speak a thousand words :) on how this all works, and what to look out for.

     

    The Light Latin Autohinter uses a simpler set of instructions, to firstly determine the main height cvt’s in the fonts, for critical alignments, such as Cap Heights, x-heights etc. Stems are controlled using a combination of the Dist command with the new Res instructions. The latest releases of VTT include support for a new set of commands, in the high-level font hinting language (“VTT Talk”). These new commands (RES Hints (Rendering Environment Specific) can be used to hint once, for a variety of rendering environments. The approach taken in the Light Latin Autohinter, is a non cvt based approach, and so will work best in DirectWrite where y-direction smoothing is available. In this rendering environment, the stems will be constrained to a fractional pixel value, allowing for a more subtle transition at break points. The ResDist command will round to full grid in GDI, but because there is no master cvt controlling the breaks, rounding differences can occur in GDI, because of slight differences in the outine design. The GASP table is set automatically to use y-direction smoothing at all sizes, which works well in DirectWrite. If the font is intended for heavy use in GDI environments, the controls are still there to manually fully hint the font using cvt’s for strict stem weight control.

     

    A few nice, things. It is easy to proof the font in VTT, using DirectWrite rendering, and edit the commands that are added by the Autohinter, to fix glyphs that the Autohinter does not do a good job controlling. I would like to draw attention to the note I added above. It’s important to check the hints, before shipping any font.

     

    Note: No Autohinter, including this one, is perfect; the intent is that this Autohinter works well enough for most glyphs. Autohinting for all glyphs in the font should be carefully checked and proofed, and certain glyphs may need to be re-hinted manually, either by using the Visual Hinting tools, or by editing the VTT talk.

     

    Because the approach for Heights is based on a cvt approach, it is also easy to edit the CVT table to adjust heights globally for a font, and the control is still there to edit cvt tables to maintain consistency of heights across a font family.

     

    I hope these comments help. I will go into more detail, in some future posts. I am hoping that folks can try this out, and we can gather feedback on what is working well, and figure out arears that we would need to look at for any future improvements.

     

     


  • I would like to share the table result in some hinting tests I did in Arial Unicode MS font.
    The firs column is microsft VTT East Asian autohint; second column is the original font; third column is freetype autohint 1.5 (no hinting limit, windows compatibility, adjust subglyphs, hint composites, greyscale and DW Cleartype) and fourt freetype autohint dehint option.

    The files sizes are:

    Original font: 22731KB
    Microsoft VTT 6.1: 12.762KB
    Freetype Autohint 1.5: 12.866KB
    Dehint: 9.723KB

    In my opinion the best result is the original font, probably because a lot of manual hinting.

    Microsoft VTT 6.1 in second, Freetype autohint 1.5 in third.

    I would like to see others tests.

    P.S - Nice work Mike, thank You very much!
  • Thanks, Mike. This is huge!
  • @Sami Artur Mandelbaum On the VTT font, did you Ship the font prior to looking at the font size? (Tools -> Ship font). Doing so will remove the high level VTT source code, leaving only the binary instructions, thus reducing file size.
  • @Sami Artur Mandelbaum On the VTT font, did you Ship the font prior to looking at the font size? (Tools -> Ship font). Doing so will remove the high level VTT source code, leaving only the binary instructions, thus reducing file size.
    Hi Rob,
    Yes I did, if You don't ship the font the font size is much bigger (77MB).
  • Belleve Invis
    Belleve Invis Posts: 269
    edited February 2016
    Trying the East Asian autohinter:

    Ground Truth: Inziu Iosevka SC, 16ppem, sfdhanautohint, generated in 54 hours (yeah it's an AI program which searches the best arrangement of strokes for each character and each size, which is very slow):


    Inziu Iosevka SC, 16ppem, VTT autohinter, generated in 3 minutes:


    The VTT autohintewr produces pretty good result for simple glyphs, but for complex glyphs, especially the glyphs requires stroke merging, the result is not as good as sfdhantuaohint.

    So... @Mike Duggan, do you have any interest on the stroke merging?
  • Is sfdhanautohint published?
  • Is sfdhanautohint published?
    Here: https://github.com/be5invis/sfdhanautohint
    I forgot to link.
  • Now I am really eager to see a comparison of Latin glyphs autohinted with TTFAutohint and VTT 6.10
  • Just out of curiosity has anyone ever tried to hint using VTT on a Virtual Machine and more importantly is it good idea?
  • John Hudson
    John Hudson Posts: 3,227
    Not sure what you have in mind in terms of virtual machines, but I use VTT in a Win7 virtual machine under Parallels in an iMac.
  • I'm using the VirtualBox and got the Windows 7 from here. Seems to be working fine so far; I was skeptical because I wasn't sure if the rendering would be the same as a native windows install. btw it didn't work on Win XP virtual machine!
  • It refused to be installed under wine's default (XP) emulation mode, nor 2003. Needed to temporarily set to emulate Vista to install, but after that, it runs fine under XP mode.
  • also works fine on a VMware fusion Win 7 environment.
  • @Belleve Invis do you have any interest on the stroke merging?
            
    we do not have plans to automatically adjust glyphs, beyond what the autohinter does currently. As with Latin, Adjustments can be made manually by editing the High Level Hinting, post autohinting.
  • Ramiro Espinoza here is a sample of a font, Work Sans, which was hinted in TTFAutohint and VTT 6.10 Autohint.
  • top sample is VTT, bottom is the font hinted in TTFAutohint
  • Results actually look really comparable. How is the file size?
  • Top samples look crisper in most of the sizes. 
  • @Mike Duggan 
    You should REALLY release a standalone application for that, just like TTFAutohint.

    maybe `vttautohint input.ttf -o output.ttf --latin --compress`
  • A batch process function would be nice...
  • Ramiro, the crisper look may be a different strategy for positioning crossbars relative to the pixel boundaries. I noticed that VTT Auto (top sample) seems to position crossbars closer to their design (compare 'B' from 16 to 19 ppem) while TTF Auto (bottom sample) appears more consistent with the ascenders and cap heights (compare 'The' from 12 to 17 ppem).
  • I hate to point out what might be obvious, but I don't think that the hinting of the simplest glyphs is the real deciding factor. When you get to more complex glyphs, say the @ or & at text sizes, you will probably need to manually adjust the hints. Then, VTT's visual hint tool gives you a big advantage over TTFautohint. (IMO)
  • VTT's visual hint tool gives you a big advantage over TTFautohint. (IMO)
    The ttfautohint controls file allows for the same kind of adjustments, but is currently lacking a GUI...
  • thanks Jason. This is one of the main things we hoped would be helpful. Autohinting will get you so far, but being able to touch up the details using the Visual Tools or editing the VTT Talk, easily, was one of our main goals for VTT 6.10
  • I've never used VTT before but this looks very useful. I found the documentation on https://www.microsoft.com/typography/tools/vttusers.aspx but it seems to be rather old. Is this where I should start reading or is there anything out there from the 21st century?