transform script commands

Hi,

Do you have a list of commands of the transformation script? I need to programmatically move some anchor points. e.g. [1060, 611] → [1060 → 601]

The code would say IF THIS ANCHOR EXISTS, change its coordinates to the new set. An error not finding it is okay as long as it leaves the glyph intact.

This is my work and problem:
I have used FontCreator since 2004 or 2005 developing one orthographic smart font masking romanized Singhala with the native script. It has 2552 glyphs and 98 substitution tables. It is till growing perhaps up to 3000 glyphs. (See it used here: ahangama.com.

All these years, I was only interested in programming the orthography. Few weeks back I started to make the design typographically consistent. To do this, I make many components that are assembled to make the letters.

The strokes in the earlier font were about 140 funits wide. I thought that this thickness is too thin making the stokes look rough and grainy. So, I started making it about 180 funits wide. I made 1300 plus error-free glyphs when I hit a glitch. Now I went back back to 160 funits (10% thinner) using transformation feature. Now the components became too wide apart. They used to be only 1 unit distant which is invisible and allowed me to skip having to fuse the components which would take enormous amount of time (months).

Please tell me that there is a solution (Praying: iþi pi so bhagavaa araham sammaa… Ha ha!)

Thank you.

JC

I don’t think there’s any way of programmatically moving anchor points .

One can move entire contours using the Transform scripts.

Why would it take months to fuse a few thousand contours? Which version of FontCreator are you using? It’s just a matter of nudging nodes or contours until contours intersect, then use the command “Get Union of Contours” in most cases.

Nice fonts, but I never did get to learn to read the script, although it’s not dissimilar to Burmese script.

Are your fonts hinted?

We’ve made improvements to the way we scale and/or keep left and right side bearings with several transform features. We do provide the version to existing customer of FontCreator version 8. I’m convinced it would help you with your transformations, as well as with your OpenType layout features.

Thank you bhante Pesala and great magician Erwin. Pardon me for deviating from the immediate subject taking up precious space.

Bhante Pesala with respect:
Since you have shown interest in the script, let me explain. The script is Singhala. (Malayalam, Burmese, Thai and Bali are some scripts influenced by Singhala). My native country is Sri Lanka. I live in Texas. I am (was?) an IT consultant.

This is a controversial project. I watched the ISO - Unicode debate before they agreed to go with the Unicode’s proposal. Like said in the original version of RFC1815, the Unicode solution is not suitable for the ‘complex’ Indic scripts. Actually, it stifles the use of the language! Typing is very hard and entirely illogical. In Lanka, typists are now a special category of IT experts. There are ‘typesetting’ bureaus specializing in making digital documents used even by students for their term papers. Unicode Indic does not provide any advantages that digitized text is expected provide: intuitive search and replace, support in popular commercial programs developed and matured over decades, uses double the space unnecessarily, needs special devices for storing and retrieving from databases. People think in terms of spoken sounds and these are letters assembled with graphical pieces and base letters.

You can imagine that Singhala script was perfected in 1st century BC for the specific purpose of mapping Pali (Magadhi) phonemes to shapes in order to write down the Buddhist oral tradition. The chart called Hodiya is just as or more precise as the modern IPA chart. I followed PTS Pali transliteration (1860s) and created romanized Singhala alphabet expanding it to include Sanskrit because modern Singhala is a mix of Singhala and Sanskrit. Like Harvard-Kyoto Sanskrit, it puts capitals to a different use, to indicate ‘the other’ N, L and pre-nasalized stops. The post vowel ‘ng’ effect (Anusvara) is by the acute accent. The glottal stop is the umlaut. Most importantly, I added the forgotten Old English Ash (æ), Thorn (þ) and Eth (ð), thanks to Icelandic.

We now have an uncompromised romanized alphabet completely covering Singhala, Sanskrit and Pali. The font dresses the Latin codes with Singhala shapes. The beauty of this system is that the keyboard that you use to type the script is VERY close to the QWERTY layout. And the text is dual scripted (Latin and Singhala). People are elated to see Singhala as you Anglicize on the English keyboard. (e.g. Bhikkhu Pesala = bhikkhu peesala – a little inspiration from Dutch?)
See my next project: http://ahangama.com/hindi/. Tamil and the rest of Indic follows when I get help that I hope to get one day.
Standardizing Tripitaka found at metta.lk:
http://ahangama.com/rs/all.php

KERNING: I hard code inter-letter spacing by controlling left and right white space. That all gets damaged when group transforming the glyphs.
FUSING COMPONENTS: I have to first get the points to merge. That is why I want a script to do it. Each letter has 2 funit gaps horizontal and vertical. Please see the attached font that I abandoned reaching glyph 1370.

This project has gone several iterations of changes. Open Type did not have support at the beginning in Windows systems except with the WorldPad program by SIL. Now it has support by all browsers. (Apple and Adobe knew OT all the time). Support for ligatures went away in Microsoft Office after a bug ‘fix’. However, Linux systems implement OT / OF completely and smart phones as well. I hope Libre Office will come along soon.

Thank you, graciously.

Dear Mr. Denissen:
This program is a wonderment. All the time I work on the fonts I wonder the brilliance behind this work. I am even poorer than a mendicant monk. I left work in 2006 to work on this project. My background in printing, linguistics and computer science together is how this was possible and also why I am the lone developer.

Thank you for the program. I upgraded it once, now at version 5.6.

World’s first and only orthographic font is owing to your Font Creator. Power to you!

Best regards,

JC.
0aruNa.ttf (931 KB)

Sorry for the delay in approving your post — it didn’t appear in the list of new posts for some reason. Your posts won’t need approval now that you have made a few more.

Yes, the stroke weight is too thick in the attached font. I think it would take about 20 hours of work to combine all of the contours with Get Union of Contours. The most reliable method is to align nodes in points mode using the Align toolbar, then switch to contour mode to combine the contours. More efficient to align nodes first for several glyphs, then switch to contour mode the combine the contours.

The design of Asian scripts is beyond me. I did learn to type on a traditional Burmese typewriter, and on a computer with ANSI encoded Burmese fonts, but it’s not that easy.

I much prefer the fonts with strong contrast — uniform stroke weights don’t work well with Singhala fonts as they have fine details, which need to use fine strokes.

Thank you Bhante:

I shifted back to the 140 f-unit thickness. The gaps are just 1 unit wide. The font loads fast though each glyph averages 3 to 4 components. I am fine tuning the glyphs to eliminate the outside-the-bounds anchors and also lowering the hood strokes to make the letters more rounded. I see what you are saying, and thank you. The joints are already aligned. So, all I need to do is to stay in the points mode and group the sets and give them the same coordinates. e.g. [601, 1100][601, 1240] + {600, 1100][600, 1240] → select the four points and type 600 for x coordinate. Now I can fuse them. I do not think I will do it myself. The language minister in Sri Lanka is very interested in the idea. They might be able to do the job. Besides, the font is okay as it is.

The reason I am doing an even thickness font is to make it the guide font for others. People are forgetting the shapes of some of the ligatures because the print industry dropped them after mechanized typesetting arrived. The other reason is to make it a better screen font. The ‘serif’ ones can’t go too small on the screen. The iPhone will show the 12pt size with their excellent anti-aliasing. Android is okay too.

Singhala is easy. This is romanized. Try the following with the font I am sending (that I am working on). If you are familiar with Pali, you’d be able to guess what this is. (Hint: “Tell, oh, great sage, what is most glorious in the world?” Ha ha!) Format the following font with the font attached:

evá me suþá:
eká samayá bhagavaa saavaþþhiyá viharaþi jeþavane anaaþhapiNdikassa aaraame. aþha kho aççaþaraa ðevaþaa abhikkanþaaya raþþiyaa, abhikkanþavaNNaa kevalakappá jeþavaná obhaaseþvaa, yena bhagavaa þenupasañkami, upasañkamiþvaa bhagavanþá abhivaaðeþvaa ekamanþá atthaasi. ekamanþá thiþaa kho saa ðevaþaa bhagavanþá gaaþhaaya ajjhabhaasi:

Hear it sung in the Indian accent (with e and o stretched as in Sanskrit), much different from Lanka or Burma:
http://www.lovatasinhala.com/pali/ (scroll to the middle of the page to get to the audio).

You can type Singhala (+Pali + Sanskrit) using the US-International keyboard. The one I made is much, much easier to type, with much less shifting and follows QWERTY very closely.

But again, who has the syntax for the script?

My leave of you, with respect.

JC
1aruNa.ttf (937 KB)

I see how the font works, but it could be made easier by using the Velthuis system, which my Pali Font implements with Contextual Ligatures (should be enabled by default in applications that support OpenType).

If you try my Pali font in the FontCreator Test window, you should find that it works automatically — at least it does in the latest version of FontCreator.

Instead of typing evá me sutá — which is somewhat difficult, one type eva.m me suta.m which doesn’t require any modifier keys.

Paa.li scholars are already familiar with typing by using the Velthuis system, and if they had a suitable font, they could convert it to Singhala script by changing fonts.

Thank you for the Velthuis system.

I have seen it before. That is certainly user friendly, and best for monks that discuss Pali among themselves. I agree that acute accent occurs too frequently in Pali. My keyboard required the Shift for them, and AltGr for the umlaut (visarga). I will test your system when I get out of this obsession with this font.

Here’s my One-Click conversiong from romanized Singhala to PTS (doe here: http://www.lovatasinhala.com/restrict/liyanna-e.php):

maṅgalasuttaṃ

evaṃ me sutaṃ:
ekaṃ samayaṃ bhagavā sāvatthiyaṃ viharati jetavane anāthapiṇḍikassa ārāme. atha kho aññatarā devatā abhikkantāya rattiyā, abhikkantavaṇṇā kevalakappaṃ jetavanaṃ obhāsetvā, yena bhagavā tenupasaṅkami, upasaṅkamitvā bhagavantaṃ abhivādetvā ekamantaṃ aṭṭhāsi. ekamantaṃ ṭhitā kho sā devatā bhagavantaṃ gāthāya ajjhabhāsi:

I included deadkeys in my Singhala keyboard made for Linux. We need the macron, dot under and dot above. Those of course, only for use if you are typing PTS Pali in the Latin script. They work fine with fonts like Arial that have diacritic placement programmed in them. The main purpose of the keyboard is to type Singhala for the Singhala script implemented by the smartfont.

The reason I avoided the Pali accents is because I wanted to make the entire alphabet out of the SBCS in deference to Singhala. SBCS is the best place for languages meant for mainstream use because we cannot expect all commercial programs to support DBCS characters. Then, not all fonts have letters with the macron diacritic, worse for dot under / above. Besides, the pronunciation cues given by PTS are misleading and cause people to say Buddaa for Buddha; dental t and d take regular English t and d; and d ad t with dot under, which are the proper English t and d also stay the same. This is why I took Thorn and Eth. ‘m’ and ‘M’ that are for ‘m’ and ‘ng’ sounds both go as ‘m’.

I guess I see these things as a native speaker of Singhala that not the concern for people that just read Pali. So I think your solutions are perfectly valid and practical. Of course, you are ware of Microsoft Keyboard Layout Creator. That is what I use to make my keyboards for Windows.

With high respect,

JC

You should really give version 8 a try. Or even better join, our beta team, as you will then get access to all beta versions. And with you financial situation, it is good to know that the most active beta testers get their license for free. Just let me know if you would like to join. You will then get access to our FontCreator beta forum from where you download the latest beta version of FontCreator. In return we expect valuable feedback from you, so we can further improve our software.

We are honored :smiley:

My apologies for being late. I am away from email for days when working.

I am elated to be offered the tester status. Please tell me how to join. (emali gets to me quicker). One of the things I want to contribute with is how to componentize letter glyphs in order to get a typographically consistent design. This is useful for making complex scripts. The only way I could make 2500 glyphs was by doing this. Also, let’s talk about using Microsoft Volt. I have ten years of experience with it. We are entering the era that India is entering the digital scene.

I think when Bhante Pesala asked how I do hinting, my convoluted mind took it as how I kern. Now after all this work, still my letters look like ants running on them. This is because I do not hint. I am completely ignorant on this subject.

Please enlighten me.

Good to have you on board! You are now part of the FontCreator beta team. Expect an email with more information within in a minute.