Axis Mappings / Axis Location bug?

I can’t set axis mapping and axis location.

I created a clean file to test this: a thin master at 50 (mapped to 100) and a black master at 200 (mapped 900). But the slider is still 50 to 200.

Is this a bug? Everything should be set correctly according to this article.

AxisMapping-test.glyphs (2.1 KB)
AxisMapping-testVF.ttf (1.7 KB)

In any case, you need to set the “Axis Location” on the masters. Then you can decide if you like a “Axis Mapping” on the font or “Axis Location” on each instance. I recommend the later.

:man_facepalming: aaah thank you Georg, I thought axis location is for instances only.

Georg, could you lay out the distinction between the axis mapping approach and the axis location approach? Is there any difference in the font file that is produced by one or the other?

The Axis Location is clearer. Axis Mappings involve some guess work. We have come across many edge cases.

I confess I find that reply rather enigmatic. :thinking: When would you need one or the other? If the results are the same, why the redundancy? What happens if you do both?

Axis Mappings are used by variable fonts to change the mapping between user-facing variation values and font-internal variation values. Use Axis Mappings to define the mapping continuously along axes (not just at the positions of the instances). If all you want to map are the instances (no in-between variation positions), Axis Locations are sufficient.

That is not true. If you define “Axis Mappings”, they and not the “Axis Locations” in the instances will be used to generate a “avar” table.

“Axis Locations” in the masters are always used to modify the axis ranges in the “fvar” table.

I’m finding that the font-wide axis mapping fails unless all instances and masters have axis location params. To ask a potentially silly question… isn’t it redundant to require axis location parameters if that data is available in a central axis mapping parameter?

In a designspace document (in which I am more familiar with mapping), the axis mapping is defined once, at the top, and then all sources and instances simply use the internal location coordinates to define their locations. Then, the single axis map sets up the avar table to map those internal locations to end-user values. It would seem that the corollary in Glyphs would be to have a single, font-level axis mapping param, and then let the masters and instances just be controlled by their internal location numbers.

Or, am I missing something? I’m on Glyphs 3.1.2 (3151).

The “Axis Mapping” is “only” used to produce an avar table. The “Axis Location” in the masters is used to map to final external axis ranges (for fvar). The “Axis Location” in instances are used to produce an avar table.

If your masters have different internal axis coordinates, you need “Axis Locations” there.
If you need avar, you can choose if you like to use Axis Locations in the instances or Axis Mapping on the font.