TypeRig
TypeRig copied to clipboard
Delta machine not scaling metrics and anchors...
Possible .service_array
bug reported by @etunni. Delta machine (delta panel) not always scaling metrics and anchors. Observed is only LSB change? To investigate further...
@etunni it all seems to be working as expected. Metrics as well as anchors seem to be scaled. I cannot seem to find a bug there...
Hmm, I cannot get this to work either. I also get an "Incompatible coordinate array provided" error.
@Davexx in order to function the Delta requires that your masters are compatible. If they are not you will get the "Incompatible array" error/warning. Judging by the above video - the outlines scale... but you still get the message. This simply means that you do not have the same anchors across all layers - they are incompatible.
To explain bit deeply: The Delta uses different specialized Delta Arrays for scaling. For outlines the corresponding deltaArray is called (internally) pointArray. And for metrics and anchors i use a combined array called serviceArray. So the actual scaling is done on both of these simultaneously, where the pointArray is the leading one - if the master outlines are incompatible the Delta will just not work, but if they are, it will, no matter that the serviceArray is compatible or not. One cannot have incompatible metrics.. as one always has LSB and Advance, no matter the circumstances, it is just part of the "font design system"... thus the only way to have an incompatible serviceArray is to have an non-equal number/names of anchors across layers. If so... the service array will be invalid.. thus not only anchors won't be scaled, but metrics as well... just because they are packed together :)
Now this leads me to the following two conclusions:
- I need a better error messages that clearly state what is wrong.
- Maybe i should separate metrics from anchors so that at least metrics scale if anchors are incompatible - as it usually happens.
Will try to address both of the above in the coming days, as i will be working on the delta anyways.
@kateliev First off, thank you for making TypeRig to automate some of the tedious font-making tasks. I can see so much potential with these tools!
I am grateful for the detailed explanation. It helps me understand how this complex script works under the hood.
I scrutinized the details of my test font. I even deleted and removed the "Condensed" layer and recreated a new layer based upon the regular master layer, just to make sure all outlines to be exactly the same. I also don't have any added anchors between the layers.
Here is my sample file:
https://www.dropbox.com/s/nux8gneujdj25mg/FL Tester-Regular.vfc
I still get the same "Incompatible coordinate array provided" error, and the width scaler scales the entire glyph, without keeping the stems the same width, in my case 90 units. Any advice?
Thanks, Dave.
@Davexx thank you for your patience - i have been quite busy and did not had the time to take care of the issue. Now looking at your file and testing it - i do not seem to find a problem. Then again it hit me - could you be using some very old and buggy version of TR. Looking at the TR Mast controller on your screenshot, whatever version you are using must be at least 6 months older then the cutting edge one. Also please click on the three dots on the very last tab. They will show you the current version of the tools installed. Here is mine:
Vassil, I understand you are busy. I appreciate your help!
Ok, I checked my versions, deleted my script and lib directories and then went to get the latest version of TypeRig, which I found here:
https://github.com/kateliev/TypeRig/releases/tag/v2.0.0-Py3.10
Note, that I am using the .zip file version as I am running things on a Win11 PC.
I seem to have versions different than what you have. Are you on a Mac? Did I grab the wrong latest file?
Note also that my script version numbers are the same in this new install as they were in the old install:
I tried the delta width adjustment and I got the same "Incompatible coordinate array provided" error message.