Seems overcomplicated to me. You would simply copy sidebearings from one master to another (there are scripts for that), and then multiply all sidebearings by 0.8 (script for that too), then simply keep the same metric keys.
That’s a great solution if you’re confident that your spacing for the Regular is set in stone, but as soon as you update your values for the Regular, it’d be quite nice to have them reflected in your other masters.
We currently have the double equals sign to denote a master-specific sidebearing formula, and the pipe character to reference the other side of the glyph. Could we not use something like n.1, which would take the value of the /n in the 1st Master. This might not be the best execution, and yes it’s a little complicated, but I do think it would be handy to be able to reference the spacing of a specific master, with the goal of ‘scaling’ that number relatively for other weights.
If I understand your question correctly, Georg, the advance width would likely vary between the masters, i.e. the glyphs in the Bold master could be drawn wider than the Regular (or narrower if it’s a Condensed etc). It would be nice to control the sidebearings specifically (as opposed to just advance width), as the number used to multiply another master’s value could change depending on the situation. For example n.1*0.8 might be appropriate for the Bold /n, to reduce the spacing by 20%. n.1*1.2 might be nice for the Light /n, using the Regular’s spacing and increasing it by 20%.
These examples assume that your first master is a Regular, but that of course wouldn’t matter, just that you’re able to reference your first master (whether that be Regular, Light etc). I’m not sure if there’s any value in referencing subsequent masters i.e. n.1, n.2, n.3…
Another thought: this idea involves repetitively typing i.e. *0.8 into your sidebearing fields. This probably isn’t very efficient, and it’s more likely that a user would want a consistent value across all glyphs in their Bold (as we’ve been using as an example, 80% of the Regular), with the ability to make local adjustments on a glyph-by-glyph basis.
Does this mean an extra field in the Font Info panel under each master for a percentage value for this spacing functionality? Enter 80% in this field, and each n.1 reference automatically changes the value based on that percentage. +/- could then be used for fine-grain control i.e. your Bold /n could have n.1+5 for one of the sidebearings, if you feel the reduction was a little too much and want to add 5 units back.
I’m guessing this could be regarded as overkill, which I understand, but I hope you see some value in the concept of controlling sidebearings this way. Perhaps with better execution.
I have yet to see a design where multiplying sidebearings would work. And I would be very interested to see your design if that scheme is applicable, much less linking sidebearings in this way. If at all, it can be a first rough step that needs a lot of manual intervention afterwards. The relations between sidebearings (also between masters) is more complicated, and if at all, I bet you will be more successful with adding or subtracting rather than multiplying or dividing. Think of the possibility of a sidebearing being zero or negative.
In any event, even if there is a design at all where multiplying sidebearings between masters would be applicable in the first place, then I would still say it is such a rare scenario in type design that it would not warrant an addition to the default feature set of the application.
But I would love to be proven wrong on this.
I recommend you write a script for your project. Unless the Change Metrics by Percentage script works for you already.
I do see your point. This feature request is likely one borne out of inexperience on my part, or the over-simplification of the way darker vs lighter weights are spaced. I guess it’s not a case of once the Regular’s spacing is nailed, you get bonus Bold spacing! Which I probably should have known