Notes on a Vaporware Conlang IV: Sound Changes, Part 1

So, if you remember, some time earlier this spring I came up with some designs for another conlang after being prodded a bit by some people I know online for a while:

Now I’ve spend the better part of the week obsessing over coming up with a bunch of sound changes that would turn my musings about a proto language sound inventory as sketched out in part III to the recent version sketched out in part II. It seems like this is not so much vaporware anymore after all … I’ve been thinking about maybe giving this project a name some time soon.

Believe it or not, this is the first time I’m actually seriously applying sound changes to something,1 so if there are any overly weird things that can’t even be hand-waved away, tell me. I think most of the changes are a little on the cautious side, though.

Some Notation Conventions

I will assume you’re familiar with the usual way sound changes are notated:

X → Y / Z

This means that X turns into Y under the conditions of the environment Z.

I will also use the following additional abbreviations:

  • C: consonant
  • V: vowel
  • _ (underscore): position of X in the environment
  • # (hash sign): start or end of a word, i.e. a word boundary
  • $ (dollar sign): start or end of a syllable, including word boundaries
  • ! (exclamation mark): negation
  • … (ellipsis): somewhere before or after

Sometimes, feature notation is being used as a shortcut for groups of vowels or consonants: [±feature].

Proto Lang Allophony (Stage I)

The (re)constructed phoneme inventory for the Proto Language looked like this in my previous post (I’m copying these things over for convenience, adding changes that occurred while working on the sound changes themselves):

nasals*μ [m~n~ŋ]
plosives*t*k*q [k~q~ʔ]
fricatives*s*x [x~h]
liquids*w*λ [r~l]

And the vowels:


The sound changes below apply a degree of allophony so that the underspecified proto-phonemes , , *q, *x actually receieve an assumed phonemic value:

1. Position-based alternation between [r] and [l] for :

  • *λ → *r / $ (C) _
  • *λ → *l / _ (C) $

Basically, what happens here is that will be realized as [r] in syllable onsets and as [l] in syllable codas, i.e. there is a complementary distribution at this stage.

2. Position-based alternation between [m], [n] and [ŋ] for :

  • *μ → *m / _ [+bilabial]
  • *μ → *n / _ [+alveolar]
  • *μ → *ŋ / _ [+velar]
  • *μ → *ŋ / _ [+guttural]

Here, is assimilated to the point of articulation of the following consonant. “Guttural” refers to *q and *x here. This assimilation can also happen across syllable boundaries:

  • *μ → *m / _ $ [+bilabial] (unless C _)
  • *μ → *n / _ $ [+alveolar] (unless C _)
  • *μ → *ŋ / _ $ [+velar] (unless C _)
  • *μ → *ŋ / _ $ [+guttural] (unless C _)

Unless a consonant is preceding, further assimilates in POA to the next consonant across a syllable boundary. The assimilation continues (resistance is futile *badum tsh*):

  • *μ → *m / [+bilabial] $ _ (unless _ C)
  • *μ → *n / [+alveolar] $ _ (unless _ C)
  • *μ → *ŋ / [+velar] $ _ (unless _ C)
  • *μ → *ŋ / [+guttural] $ _ (unless _ C)

also assimilates in POA to preceding consonants at the beginning of syllables, unless followed by a consonant. And what’s more:

  • *μ → *m / _ V [+bilabial]
  • *μ → *n / _ V [+alveolar]
  • *μ → *ŋ / _ V [+velar]
  • *μ → *ŋ / _ V [+guttural]

In this set of changes, assimilates in POA to a following consonant even if a vowel is in between them. The next set now takes care of almost all remaining instances of :

  • *μ → *m / [+front] _
  • *μ → *n / [+center] _
  • *μ → *ŋ / [+back] _
  • *μ → *m / _ [+front]
  • *μ → *n / _ [+center]
  • *μ → *ŋ / _ [+back]

The above set is maybe somewhat of a weird change: changes according to the height of vowels here: *m ~ *i/*u, *n ~ , ~ *a. If this is too unnatural, I will change this – or maybe there is a way to build in another condition to achieve the same outcome. Anyways, just for good measure let’s also do:

  • *ŋ → *n / # _

Instances of word-initial are replaced with *n.2

3. Position-based alternation between [q], [ʔ] and even [k]3 for *q:

  • *q → *ʔ / V _ $
  • *q → *k / _ ŋ
  • *q → *k / ŋ ($) _

Syllable-finally after vowels, *q is realized as a glottal stop [ʔ]; before and after [ŋ], it has a velar release [k], and remains [q] in all other places.

4. Position-based alternation between [x] and [h] for *x:

  • *x → *h / V ($) _ ($) V
  • *x → *h / # _ V

*x will have a glottal release [h] anywhere between vowels and initially before a vowel.

Intermission: Some Example Words

These words are randomly generated with Wharrgarbl, as mentioned in the previous article in this series. Many of these changes are very unspectacular so far.


Applying Stress Rules

The Proto Language has syllable-weight based stress rules and I wrote a little script to apply this. What weird missyllabifications of CCC clusters occasionally appear are due to Wharrgarbl lacking checks for sonority-hierarchy related issues. If I handcrafted all proto words, this wouldn’t be an issue in this case. I decided to use a word generator, though, to get a taste of how my words may look like and turn out with all the changes applied, en masse.

Syllable stress basically counts how many consonants there are in a word and increases a counter by 1 whenever it finds one. The syllable that is more consonant-heavy receives stress. In case of a tie, the first syllable will be stressed. Monosyllabic words currently don’t receive stress; depending on them being content words or particles, this will of course change. I will have to sketch out some grammar for the Proto Language in that case, though. If I want the Proto Language to be mildly inflecting, long bisyllabic words are awkward anyway, but generated bisyllabic words still give a taste of how the final outcome could look like.

For the words above, applying the stress rules results in: *it (1), *kwás.ku (3:2), *kwu.wákt (2:3), *sawk (3), *suʔ (2), *srás.tu (3:2), *srú.sə (2:1), *sni.kxə́ʔ (2:3), *tʰás.kʰuŋ (2:2), *tri.táls (2:3).


In the next installment, we’ll start eroding things and also generate a bunch of vowels, giving us *it, *pás.ku, *pu.wák, *saʊk, *so, *srás.tu, *srú.sə, *sni.kjá, *tʰás.kuŋ, and *tri.táɪs.

  • I decided that it makes at least a little more sense to have the nasals pattern with vowel height rather than frontness, i.e. not *m ~ *i, *n ~ /*a, ~ *u, but *m ~ *i/*u, *n ~ , ~ *a. In the word list of 2000 generated words that I’ve been using to test the sound changes laid out here, only 8 words were affected by this decision, though, i.e. a low 0.4%, so for example we now have *μu.λuktmu.rúkt instead of *μu.λukt*nu.rúkt. I also had to correct a rule above that I misunderstood from my own notes.
  1. I know, I know, there is Playing with Sound Changes, but I consider that play. This time is for real.
  2. No, this is not just because English doesn’t allow initial /ŋ/.
  3. A change to my original designs!