phono – Phonology Builder

This is a Javascript program to help build phonological inventories. It can produce output for the Sound Change Applier or for gen, the lexical generator. Or you can output HTML or ZBB BBCode.

(Note: this is beta code; report errors to me at markrose at

—Mark Rosenfelder, 2018

Phonemes are separated by spaces
Consonants   Vowels  


What to do

Enter your phonemes in the table, or select from those that are there. Default will restore the default values, Minimal will show minimal ones.

Use Create Cats to create categories for each row and column, for both vowels and consonants: e.g. P=pbtdkg. If a category label is blank, or the cells are blank, no category will be created. You can paste the output into gen or SCA².

The program will create C and V categories for you; also S (unvoiced) and Z (voiced) from the first three rows only. The code assumes that unvoiced and voiced characters alternate.

You can change the category labels, and indeed redefine the tables as needed. I've purposely left the Č row nearly blank to make reorganization easier.

If you really need more rows, just do a few rows at a time. E.g. you could do short and long vowels separately.

Html Table will output HTML that displays the table, suitable for pasting into a web page; while ZBB BBCode will produce BBCode suitable for use on the ZBB. (It won’t work on other BBCode forums, but I can send you the custom definitions if you like.)

You can use Labels to switch to full labels (like Dentals) and Chars to switch back to category symbols (D).

If you use digraphs, check Phonemes are separated by spaces, and write the cells like t d ts rather than tdts. This will produce better table output. (Be aware that digraphs require special handling in SCA² and gen.)