Options

Introducing LS Cadencer Tools - A toolset for auto-spacing fonts

Hi Typedrawers,

I would like to introduce me and a project I am working on for quite a while.

When studying at the Type & Media department a few years ago, I was introduced to Python programming by Just van Rossum. Since then I continuously worked on small tools, which helped me with my workflow in RoboFont. The project I would like to show, started at the end of 2014 as a small experiment when attending the Expert Class Type Design. 

Some of you might already know about the underlying concept. The underlying principle and algorithm find their origin in Frank E. Blokland’s PhD research on the (effects of) systematization, standardization, and unitization in Renaissance font production. With these tools the principles of spacing, applied in the production of printing types in the sixteenth century, are in a way transferred to our current digital technology of font design. More about the method here on typedrawers:

http://typedrawers.com/discussion/1140/understanding-the-lemo-cadence-grid/p1

LS Cadencer is basically meant for applying auto-spacing to fonts using an underlying grid and so called spacing tables for calculating side-bearings. LS Cadenculator, the second tool, helps to build these spacing tables by measuring side bearings of existing font. 

If you are interested in the tools, I would kindly as you to join the mailing list: http://www.revolvertype.com/tools/cadencer.html

The interface might look difficult at first sight, but it is really easy to use. Please don't hesitate, if you have further questions. Here are some images of the interface and visualizations etc. to give you a first impression.

Comments

  • Options
    i'm excited to try this out.
  • Options
    @Miles Newlyn - I am excited as well to present it here!

    Here are some more details: The underlying grid is flexible and dependent on the so called stem-interval (either calculated on the ‘m’ or ‘n’ glyph). The stem interval is basically the rhythmic repetition of stems. By changing the width of grid the overall spacing gets tighter or wider. The vertical position of the Beam is also the position were stems of other glyphs are measured and spacing values are applied.

    The spacing process is also dependend on so called CUSTs (spacing tables), which need to be defined. Therefore every single glyph gets a sidedefinition and of course a value for both sides.

    A CUST usually relates to a certain genre of typefaces. The spacing tables which are currently provided with the tools are made for Renaissance Roman (e.g. Garamond), Humanistic Sans (e.g. Gill Sans), Humanistic Sans Serifs with semi flat curves (e.g. Lucida Sans) and Grotesk (e.g. Futura) fonts. These might also fit for other genres in certain cases and can be adapted or used as a basis for other spacing tables. As default these predefined spacing tables (CUSTs) currently contain only definitions for upper-/lowercase letters and some punctuation marks. Other glyphs can be easily added by using the LS Cadenculator (details will follow). Be aware that the user has to put in some effort as well! I haven't had the time to add additional glyphs for the predefined CUSTs, because I was simply too busy with the tools, but I will to do so soon. Maybe users would exchange their self-made CUSTs as well.

    A spacing table (CUST) basically includes a glyphname followed by the side definition (basis for the calculation, either stem [S] or extreme [X]) and a value for the right and the left side. (see image of the user interface, shown in the first post)

    Please don't hesitate, if you have further questions.


  • Options

    RoboFont
    Looks great! One more reason to save up my pennies (and I do mean that literally) for FontLab! It's good to have a goal. :)
  • Options
    Lukas SchneiderLukas Schneider Posts: 40
    edited November 2015
    @Michael Vokits thank you Michael - I assume you mixed up RF & FL - anyway - I guess it's good to have them all ;) 

    Someone was wondering if it also works with italics and other scripts - yes it does. I have to admit that i am not deeply involved in foreign scripts, but I made some small tests with Cyrillic and Greek, which worked fine.
    But again don't expect everything to be predefined - It's part of the concept that the user has to put in some effort as well. 

  • Options

    Actually, my mistake is even sillier: I was thinking of RoboFab, which requires FontLab. Sorry for my confusion. Anyway, let’s see some italics in action – single letters are nice, but I want words and phrases!

  • Options
    Lukas, at which point in the development of a typeface do you see Cadencer being used?

    I've an already well spaced design, and so using the tool will essentially round up or down the spacing to the nearest grid unit. This will be a tough test Cadencer, so I'm wondering as what stage do you see it being most useful.
  • Options

    @Miles Newlyn - if you have a well spaced design already, then it eventually doesn't make sense to use the Cadencer - although one could compare the outcome with the manually spaced version of course.  

    Actually I think it makes sense to use it at the very first beginning, because one could already adjust the proportions of the shapes to the underlying grid in order to get the most perfect pattern. Even if you don't align your shapes to the grid, I would also apply it already at an early stage to get a quick consistent preview related to the stem interval. I also think the method of using a spacing table can simplify the process in general as well. 

    @Michael Vokits RoboFab doesn't really require FL - you can use it with other tools as well. But anyway - I have to admit that I haven't had the time to develop an italic spacing table - I was simply too busy with the tool itself. So I can only show a pretty quickly developed (unrefined) example for an italic - the functionality is there, but as I said the tool doesn't provide spacing tables for all kind of typefaces and styles. I also attached a screenshot (to give a rough impression) of the spacing result for a Renaissance typeface quickly generated with the predefined spacing table included in the tool. I will try to show more results as soon as possible.



  • Options
    To round that up for the moment - As already mentioned before a spacing Table (CUST) can be applied to other weights as well by widening or tightening the underlying grid. 
  • Options
    @Lukas Schneider I think you described LS Cadencer / LS Cadeculator well, but another way that might be simpler would be to say;

    The tool sets up metrics formulas from existing fonts and applies them to your design using dimensions of the 'm'.

  • Options
    Hi Miles,
    The tool sets up metrics formulas from existing fonts and applies them to your design using dimensions of the 'm'.
    The tool distills the patterning that is at the root of roman and italic type (and textura type) as I described here. Applying the tool for auto-spacing (either directly or for a second opinion) is an option, but one can also use the distilled stem-interval based pattern in the background in RoboFont or Glyphs for adjusting the glyphs themselves.

    Last year I made a brief start with investigating whether cadencing could improve the patterning of webfonts. After all, an equilibrium of white space will hardly be visible at smaller point sizes on the screen and perhaps a rigid rhythm of stems and curves could improve matters. To be investigated further…
  • Options
    Miles, thank very much for your input!
    Like Frank mentioned before, I also think it is necessary to emphasize that these tools focus on the underlying grid, which is distilled from historical models.

    Some additional side notes:
    Actually LS Cadenculator (for measuring existing fonts) was only a secondary helper tool, which would make it easier to get a basis to build not yet existent spacing tables for a specific genre of typefaces. The idea was for example to measure various fonts from the same genre (e.g. Slab Serif/Egyptian - they should roughly share proportions and weight) - to generate most common values to get the most appropriate basis for manual adaptions. It is also possible to output those values as a .pdf graph (made with DrawBot) as you can see here in one of the first test drives (Sidebearings of B in Cadence Units). 
  • Options
    I just finished preparing some screencasts to explain the usage and functionality of the tools. A test version with a reduced functionality is available now, too. If you are interested in these things, simply join the mailing list:
    http://www.revolvertype.com/tools/cadencer.html
  • Options
    Well done, what an amazing project. This looks very interesting. I will need some time to take it all in.
Sign In or Register to comment.