Interpolation - Instance preview and output have different results

Sorry to keep banging on about interpolation, but I am getting inconsistencies between the preview view of a font and the actual output instance.

This is an overlay of the preview vs the output of an interpolated instance. The preview is the lighter one.

overlay

(this can be checked using the .glyphs file I sent for my previous issue)

  • David

What version do you have?

Screenshots were taken in 681

The problem seems to be that you have two instances with the same name and it popup would not allow this and thous would pick the wrong instance. I fix that. For now, rename the first “Regular” instance to “Thin” and it will work.

Speaking of interpolation, I have another issue with the latest 2 beta.

I have four masters, but only two of them are used for interpolation. The first (light) and the last (black) masters are slightly different from the compatible masters regular and bold. A week ago, I could see the preview of interpolated medium weights.

Recently, Glyphs requires ALL masters to be compatible otherwise the interpolated instances are not previewed. Although light and black are not involved in any interpolation, I can’t see preview of medium and semibold weights.

Is this a feature or bug?

filip: This should be fixed with the latest version from yesterday.

Hi, unfortunately the last version crashes on export.

And the problem persists. One of the interpolated instances (Bold) does not show cetrain letters, other interpolated instances work well! That’s strange becauese Regular and Medium are generated from the same masters as Bold…

Thanks Georg, my issue is fixed with your suggested naming fix.

fixed that. do you have bracket or brace layers? Maybe they miss some anchors?

Georg, I discovered the pattern which causes the missing glyphs.

Regular and Medium instances are interpolated properly. That means the masters 2 and 3 are compatible. For some reason, only Bold instance is not interpolated. The weight value of Bold is set to 770. As soon as I change it to 748 and less, it suddenly works. But values between 749-999 result in certain glyphs to disappear during the interpolation.

All the noninterpolated glyphs share the same issue: some of their masters (THIN and/or XBLACK) are not compatible. So there must be a bug which causes those masters are somehow involved in the interpolation while they should NOT affect the interpolation at all.

Could you please check why the Bold instance is affected while other instances are not?

My setup is:

THIN - master 1, not involved in interpolation (-185/-185)
LIGHT - master 2 (0/0)
Regular - interpolated between master 2 & 3 (320)
Medium - interpolated between master 2 & 3 (550)
Bold - interpolated between master 2 & 3 (770)
BLACK - master 3 (1000/1000)
XBLACK - master 4, not involved in interpolation (1300/1300)

I do have bracket layers master 3 for certain letters, but this does not affect the result. Some letters with the same value ]800] are interpolated, some are not, according the pattern described. All the bracket values are inbetween masters 2 and 3.

Thanks for correcting this issue!

You must indeed have encountered a bug. It seems like the interpolation algorithm runs into some problems with high numbers. If I divide all the interpolation values by 10 (which is not a problem, because what counts is the ratio between them), it works just fine. So I suggest:

LIGHT - master 2 (0)
Regular - interpolated between master 2 & 3 (32)
Medium - interpolated between master 2 & 3 (55)
Bold - interpolated between master 2 & 3 (77)
BLACK - master 3 (100)

… which is equivalent to your number scheme. And a suggestion: For easier reference (think Python scripts), I advise to keep the masters not involved in interpolation at negative values, e.g.:

THIN - master 1, not involved in interpolation (-100)
XBLACK - master 4, not involved in interpolation (-200)

It also allows you to test extrapolation beyond the black without running into problem with the XBLACK master. But that is just a suggestion, it has no effect on the workaround.

Thanks, mekkablue, for your care. I will divide my values by 10. And thanks for the suggestion about negative values!

Any update on correcting this bug?

The Bold instance can be exported when I delete the first Light master (not involved in the interpolation), then suddenly everything works.

The issue should be fixed in the latest version (685).

I’ve got version 685 and the problem persists. No change at all. It is not possible to display or generate the Bold instance with the value 770, it is still affected by the incompatibility of light master not involved in the interpolation.

Georg, one of the issues related to the interpolation problem is a very weird behavior of the “Show Master Compatibility” function – see the image:

https://www.dropbox.com/s/9tfg0l2y9x6mgx1/master-compatibility.gif?dl=0

Although this glyph O has four masters only, it displays two sets of three masters! In this case Light-Regular-Bold and Regular-Bold-Black. Strange.

Do you have any Brace or Bracket Layers?

Yes, in the font, but the letter O has just four masters, no additional layers. It seams there is a problem with the lightest master which is (and should not be) included in the interpolation.
As soon as I change the value of Bold instance to 700, the “Show Master Compatibility” behaves as expected (four masters, two of them linked). The value of 770 somehow adds the lightest master to the interpolation scheme.

fixed it.

And the update is out.