Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Delta machine not scaling metrics and anchors... #69

Open
kateliev opened this issue Sep 14, 2022 · 6 comments
Open

Delta machine not scaling metrics and anchors... #69

kateliev opened this issue Sep 14, 2022 · 6 comments
Assignees
Labels
Bug Something isn't working Panel TypeRig Panel

Comments

@kateliev
Copy link
Owner

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...

@kateliev kateliev added Bug Something isn't working Panel TypeRig Panel labels Sep 14, 2022
@kateliev kateliev self-assigned this Sep 14, 2022
@kateliev
Copy link
Owner Author

@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...
Animation-5

@Davexx
Copy link

Davexx commented Dec 11, 2022

Hmm, I cannot get this to work either. I also get an "Incompatible coordinate array provided" error.
2022-12-10-25

@kateliev
Copy link
Owner Author

kateliev commented Dec 11, 2022

@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:

  1. I need a better error messages that clearly state what is wrong.
  2. 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.

@Davexx
Copy link

Davexx commented Dec 11, 2022

@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.

@kateliev
Copy link
Owner Author

@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:
image

@Davexx
Copy link

Davexx commented Dec 17, 2022

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:
TypeRig Versions Tail
I tried the delta width adjustment and I got the same "Incompatible coordinate array provided" error message.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working Panel TypeRig Panel
Projects
None yet
Development

No branches or pull requests

2 participants