A new stem weight distribution?
Jasper de Waard
Posts: 639
Hello all,
I just had a look at @PabloImpallari's stem weight calculator, and noticed something odd (I think).
So far, I've got a regular and an extrabold, but the only fields available are 'thin' and 'black', so I just use those instead.
Thin 92, Black 162, steps: 4 -> 92, 113, 137, 162 (Impallari Formula)
If I then pretend that I have a light weight at 42, and increase the steps to 7, this happens
Thin: 42, Black 162, steps 7 -> 42, 54, 71, 92, 116, 140, 162
So, in the second configuration, focussing on the last four values, the steps are different than in the first configuration (even though the regular is still at 92). Logically, I don't think this should be the case. The same problem would occur with the De Groot method. I may be wrong, though, so feel free to correct me.
If I am right, however, a better formula for calculating stem weights would be useful. I have used the following distribution for Proza and Proza Display, but only came up with the formula just now. Maybe the whole thing is nothing new, I don't know.
Assume that a light weight is 40, and a black weight is 200 (difference is thus 160), and there are 4 steps (in Pablo's calculator, this would be considered 5 steps. I say there are 5 values, thus 4 steps from value to value).
A linear approach looks like this:
1=40 2=80 3=120 4=160 5=200
+40 +40 +40 +40
My approach looks something like this:
1=40 2=80 3=125 4=175 5=230
+40 +45 +50 +55
Then, to make sure we stay within the 40 to 200 bounds, I multiply each of the figures in the line directly above this, by (160/190=0.84), (that's the original difference divided by the 'new' difference) which gives:
+34 +38 +42 +46
Thus, the instances become:
1=40 2=74 3=112 4=154 5=200
So far for the basic explanation. Now, to get to these instances right away, I created a formula. In the formula '#' means the number that is before the = sign. X is a value that can be freely chosen (in the example above it was 5). Y is the value of the previous (lighter) instance. Here goes:
1=40
2=Y+(difference/steps+X*(#-2)) * (difference/((steps-1)*steps)/2*X+difference)
40 + ( 40 +5 * 0 ) * ( 160 / 190 )) = 74
3=Y+(difference/steps+X*(#-2)) * (difference/((steps-1)*steps)/2*X+difference)
74 + ( 40 +5 * 1 ) * ( 160 / 190 )) = 112
4=same formula
5=same formula
Now, if wanted to add an even lighter weight, it would be set at 10, and X would still be 5, and all the other instances would remain the same. Even if I wanted to add a number of darker or lighter weights than I already have, the 'original' instances would remain the same. To illustrate:
1=10
2=10 + (190/5+0)*(190/240)=40
3=40 + 190/5+5)*(190/240)=74
etc.
I think this distribution has two advantages:
- It provides a flexible X, which determines how much you want to deviate from the linear distribution. The X can be varied for each typefamily.
- Adding lighter or darker weights does not change the distribution of the existing weights.
- A tool to do this automatically would be helpful, at least for me.
I hope my calculations and assumptions are all correct. If not, please explain in simple language. I'm somewhat brainfried. Sorry for the long post, but I did my best to explain it clearly.
Cheers!
I just had a look at @PabloImpallari's stem weight calculator, and noticed something odd (I think).
So far, I've got a regular and an extrabold, but the only fields available are 'thin' and 'black', so I just use those instead.
Thin 92, Black 162, steps: 4 -> 92, 113, 137, 162 (Impallari Formula)
If I then pretend that I have a light weight at 42, and increase the steps to 7, this happens
Thin: 42, Black 162, steps 7 -> 42, 54, 71, 92, 116, 140, 162
So, in the second configuration, focussing on the last four values, the steps are different than in the first configuration (even though the regular is still at 92). Logically, I don't think this should be the case. The same problem would occur with the De Groot method. I may be wrong, though, so feel free to correct me.
If I am right, however, a better formula for calculating stem weights would be useful. I have used the following distribution for Proza and Proza Display, but only came up with the formula just now. Maybe the whole thing is nothing new, I don't know.
Assume that a light weight is 40, and a black weight is 200 (difference is thus 160), and there are 4 steps (in Pablo's calculator, this would be considered 5 steps. I say there are 5 values, thus 4 steps from value to value).
A linear approach looks like this:
1=40 2=80 3=120 4=160 5=200
+40 +40 +40 +40
My approach looks something like this:
1=40 2=80 3=125 4=175 5=230
+40 +45 +50 +55
Then, to make sure we stay within the 40 to 200 bounds, I multiply each of the figures in the line directly above this, by (160/190=0.84), (that's the original difference divided by the 'new' difference) which gives:
+34 +38 +42 +46
Thus, the instances become:
1=40 2=74 3=112 4=154 5=200
So far for the basic explanation. Now, to get to these instances right away, I created a formula. In the formula '#' means the number that is before the = sign. X is a value that can be freely chosen (in the example above it was 5). Y is the value of the previous (lighter) instance. Here goes:
1=40
2=Y+(difference/steps+X*(#-2)) * (difference/((steps-1)*steps)/2*X+difference)
40 + ( 40 +5 * 0 ) * ( 160 / 190 )) = 74
3=Y+(difference/steps+X*(#-2)) * (difference/((steps-1)*steps)/2*X+difference)
74 + ( 40 +5 * 1 ) * ( 160 / 190 )) = 112
4=same formula
5=same formula
Now, if wanted to add an even lighter weight, it would be set at 10, and X would still be 5, and all the other instances would remain the same. Even if I wanted to add a number of darker or lighter weights than I already have, the 'original' instances would remain the same. To illustrate:
1=10
2=10 + (190/5+0)*(190/240)=40
3=40 + 190/5+5)*(190/240)=74
etc.
I think this distribution has two advantages:
- It provides a flexible X, which determines how much you want to deviate from the linear distribution. The X can be varied for each typefamily.
- Adding lighter or darker weights does not change the distribution of the existing weights.
- A tool to do this automatically would be helpful, at least for me.
I hope my calculations and assumptions are all correct. If not, please explain in simple language. I'm somewhat brainfried. Sorry for the long post, but I did my best to explain it clearly.
Cheers!
0
Comments
-
edited original post0
-
For lack of a better tool, here's an excel sheet (generated from Apple's 'Numbers'), that maybe makes it easier to use/understand.0
-
Are you saying instead of a constant ratio, you prefer a ratio where the difference between steps increases by an arithmetic amount? Is that amount a constant or a second ratio in itself?0
-
That amount is a constant, making the diagram look something like this the image attached (X=20).
0 -
The problem I have with a constant is that the desired degree of stem variation at thin weights is different than at heavy weight sizes. I don't see how a constant can be correct. It may make your sample sheets look nice though, if that is what you want.1
-
Jasper de Waard:
The same problem would occur with the De Groot method.This problem does not occur with the De Groot method. Example:
Thin 92, Black 162, steps: 4 -> 92, 111, 134, 162 (Lucas De Groot Formula)
Thin: 52, Black 162, steps 7 -> 52, 63, 76, 92, 111, 134, 162 (Lucas De Groot Formula)
2 -
I’ve played with linear, cube root (Stanley Hess), De Groot, and Impallari progressions. And I always come to the same conclusion: math is just a starting point. You still have to spend time looking at proofs, and tweaking relationships, and repeating until any particular font progresses through its weights without jarring jumps.12
-
You also have to ask yourself, what are these weights for? Are they just to make nice looking specimen sheets or to target optimum use target sizes to weights? I would rather see a jump in weight than see a weight that misses its target. The bolder weights are not the problem, it is the lighter weights that may be used at text or near text sizes.6
-
The user and all related content has been deleted.10
-
I tried Pablo's tool and I didn't like much the results that I got.0
-
Pablo's tool is just that, a tool, not a panacea. I can see his and Lucas's thinking and appreciate them both for their efforts and generosity in making their work available to us without charge. As usual, we are all expected to take it from there and make our own design decisions.4
-
My current workflow goes something like this:
- Manually choosing a Regular:
I will generate a lot of instances having stem values like: 60, 65, 70, 75, 80, 85, 90, 95
Print a few paragraphs using those instances and choose by eye one of them, the one that will work best as a Regular.
Depending of the style of the font the value is always different:
For a Slab you may choose a 65 or 70 unit stems for the Regular. Its quite light, but since the heavy serifs are adding mass they compensate each other. While for a sans you may want something heavier, like a 80 or 85 units stem... or whatever you like. But is always important to test how each different instance works, to be able to pick the best one.
- Manually choosing a Bold:
The same as process as before, but now for the Bold:
I will print a few paragraphs using the Regular selected in the previous step, and different Bold candidates combined together in text. Each Bold candidate having stem values 120, 130, 140, 150, 160, 170, etc.
Only once I have manually selected the Regular and the Bold, then I may use some of the formulas to get a full family approximation.
Using the formulas alone, in a vacuum, does not makes much sense. It's all about the context, and also always test the result, don't just trust any formula blindly.
7 -
The other issue today is stem widths that translate for web use. We make an effort to find stem width to sizes that grid-fit at 1px, 2 px, 4px, 8px, etc., so that we get the best web output. This may not coincide with a smooth progression of weights for printing specimen sheets.1
-
Hi @Jasper de Waard
Now I'm back at home and had a little more time to fully read your initial post.
I've experimented with a similar formula as yours in my initial attempts when creating the calculator. Basically your formula is a "softer" version of the Lucas formula. By "softer" I mean this:
This links goes to a early beta version of my calculator:
http://www.impallari.com/familysteps/index-v2.php
If you input the same values as in your example (40 to 200 in 5 steps) you will see that in the 25% column you get the same results (40, 75, 112, 154, 200 - In step 2: 74 to 75 may be a rounding difference).
All this area is explorable, and I happy to see people exploring it!
You can also make the opposite of a "softer" formula, and go deeper in the belly of the curve, and have an even bigger explorable area.
The reason I went for a Ogee curve instead of a constant, was perfectly stated by @Chris Lozos in his comment. That's also the same reason why the Lucas formula (and yours) is extendable (allowing to add more styles before and after the extremes) and mine is not (requiring people to plan in advance).
4 -
@Ben Blom Thanks for correcting me!
@PabloImpallari Ah, that beta link is interesting! I've been trying to figure out a way to have a curve that looks like the De Groot curve (or your curve, which is of course related), where the 'curviness' is flexible, and the results are 'extendable', which has to be possible. Not much luck so far, though. My math skills are letting me down
On a more general note:
It's an interesting 'debate' between keeping the differences between weights optically the same, thus creating nice spreadsheets and such, and just picking a set of instances by hand/eye.
The first does maybe seem a little too much involved with marketing, and not enough with actual functionality, but I like to be able to use my SemiBold next to a Light, in the same way that I would use a Bold next to a Regular, or a Black next to a Bold, etc. Having an optically 'smooth' scale of weights does ensure that. An important condition, though, is that the Bold looks perfect next to the Regular to begin with.
Also, I wonder how you pick your weights by eye? How do you know that a certain instance is the 'right' instance for a weight (apart from the obvious regular/bold combination)?
0 -
I like to be able to use my SemiBold next to a Light, in the same way that I would use a Bold next to a RegularThat is what only Lucas’ formula will give you.
1 -
Should this be added to Insert Instances as ‘Jasper softening’, a shift towards the linear distribution?0
-
@Georg Seifert: This is what Lucas' formula does in theory, but the curve that results from his formula is a fixed one, whereas I believe that the amount of curvature needs to be different for different typefaces. I'm sure there is a way to make that work mathematically, but I haven't been able to find an elegant solution so far. (Pablo's method of simply interpolating between the linear and the curved line seems logical to me, but I don't understand why it is not 'extendable'.
@Rainer Erich Scheichelbauer That seems too much of an honor for something that basically Pablo has already done here: http://www.impallari.com/familysteps/index-v2.php If this would be included in Glyphs, I would like to be able to just type in a percentage (or some other value), though0 -
Jasper de Waard said:Also, I wonder how you pick your weights by eye? How do you know that a certain instance is the 'right' instance for a weight
2 -
Reading is a visual process. It stands to reason that a visual process be used to determine the attributes of the type being read. The "how" part involves a great deal of work to gain the experience needed to make good decisions. As much as we want all the answers in a nice tidy list, reading is not tidy.2
-
whereas I believe that the amount of curvature needs to be different for different typefaces.It calculates positions for each instance that the relative change in stem width is equal for each step. There is no design dependency.
If you want equal proportions, stick with Lucas, if not do something else.0
Categories
- All Categories
- 43 Introductions
- 3.7K Typeface Design
- 800 Font Technology
- 1K Technique and Theory
- 617 Type Business
- 444 Type Design Critiques
- 541 Type Design Software
- 30 Punchcutting
- 136 Lettering and Calligraphy
- 83 Technique and Theory
- 53 Lettering Critiques
- 483 Typography
- 301 History of Typography
- 114 Education
- 68 Resources
- 498 Announcements
- 79 Events
- 105 Job Postings
- 148 Type Releases
- 165 Miscellaneous News
- 269 About TypeDrawers
- 53 TypeDrawers Announcements
- 116 Suggestions and Bug Reports