Variable font with uneven number of masters possible?

I have a font with 5 Masters

It has a weight axis and an optical axes with 2 masters each.

But the thinnest master is the same for both optical weights.

This works great with standard weithts:

Regular optical 1 88 -0
Bold optical 1 180-0

Regular optical 2 88-100
Bold optical 2 180-100

Thin optical 1 30-0
Thin optical 2 30-22

Is it possible to make this work with the variable export. And how?

So, Thin Optical 1 and 2 are the same?

Right now, you would still need to duplicate the master. You can autoupdate with some scripting perhaps.

In case you need a script that automatically adds your required master before export, write a message here :slightly_smiling_face:

That would be really wonderful :slight_smile:

Would you be able to detail your setup a bit more? I can either write a UI script for you to choose a master each time (more flexible and useful in the future), or a script that works specifically and only for your project (a lot faster to write). Here, or DM :slightly_smiling_face:

Oh, I thought you have one in the quiver.

Anyway, I have scripted it already. Much easier than expected. even for a rookie…

Thanks for the offer!

1 Like

I wonder about a similar question: Is it necessary to have an equal number of masters for each width axis?

Let’s take the design space as following. 2 axes: weight and width. The dots are masters, the numbers are rather arbitrary here.

                   100      200      400
  Narrow  100       ●        ●        ● 
  Normal  200       ●     ●     ●     ● 
   Wide   400       ●        ●        ● 

or must the number of masters (and probably then also the weight location) match among all width masters? Like so:

                   100      200      400
  Narrow  100       ●     ●     ●     ● 
  Normal  200       ●     ●     ●     ● 
   Wide   400       ●     ●     ●     ● 

I assume the second, but the first seems to work for a few first, superficial tests. Would that cause problems, especially for variable fonts? (Similar to the problem, that when a Regular master does not exist, and hence the variable font “Regular” named instance will show the Medium, when that is closer to the drawn master – and which is the reason we added a 4th master to the normal width now. But for our condensed, 4 masters are really overkill)

Or additionally asked, could the masters be distributed unevenly? Like so:

  Narrow       ●        ●    ●   ● 
  Normal       ●     ●     ●     ● 
   Wide        ●     ●     ●     ● 

You don’t need an “equal” number. But you have to follow a certain structure. There are two types of masters. Full masters (sometimes called on axis). Those need to form a rectangle structure that starts from the origin masters. You might leave out masters that are on the opposite site from the origin. So for a “Regular” origin, you can have a “Bold” and a “Condensed” but the “Bold Condensed” could be left out. So you can have three masters.

Then are “free” masters. Those can be anywhere in the space and are applied on top of the rest of the interpolation. The algorithm to find those is currently a bit limited. I added a method to manually make masters “free”. But that will be only available in a future version.

In your first example, all the masters in the middle would need to be free masters (because of the missing “200/200” master. But that would probably produce some unexpected results as the interaction of those free masters can be tricky to set up correctly.

Do you really need the four masters on the “200” width? If so, adding one more at “200/200” would make the space stable and defining the other two as “free” gives you the control you need. And it might be possible to only add those as brace layers in the glyphs that really need them.

1 Like

Thanks a lot for the details!

It seems we need 4 masters at least in the"200" width, as the weight range is rather extreme. Every step we take to add/remove/adjust masters need to be carefully considered, as the Hangeul smart layers multiply the additional work exponentially.
In our case it is rather not the question if we would add the 200/200 – the four normal width masters are kind of set in stone by now, but if we add the “100/150” and “100/300” (width/weight). And I think that’s what we will go for now.

We now made some more tests with the existing condensed masters and it seems we can get convincing results by changing the condensed instance locations instead in order to get the desired gradual change over weights.

I take it is possible but that it’s rather not recommended to apply example one. Too experimental and also might cause too much headaches on the long run dealing with the file.