Using Inspiration Pad Pro as a word generator

A forum for guides, lessons and sharing of useful information.
Post Reply
User avatar
silvercat
cuneiform
cuneiform
Posts: 90
Joined: 16 Feb 2012 19:36
Location: Southern California
Contact:

Using Inspiration Pad Pro as a word generator

Post by silvercat »

You have my permission to save, archive, alter, and remix this post, so long as you include credit me (Silvercat) and include the URL. It was originally posted on my blog at https://www.silversspace.com/2020/05/ge ... art-3-of-3

Inspiration Pad Pro is a free progam designed for tabletop rpg games, but it works perfectly good for languages (and has some language generators available for names). You can create or edit generators by right-clicking in the generators panel. Can even make generators to be referred to by other generators (although I haven’t done it, but the example ones do)

Pro/con: Complicated.

Pro: extremely flexible. Good help file. Available for Windows and Android. Can use multiple letters (or words) for anything. Can specify how many words to generate (1, 5, 10, 25, 50, 100, 250, 500, 1000)

Con: Has to be installed. Limited input with no IPA, but you can use HTML entity codes to get IPA. The IPA symbol HTML codes can be found here or by looking on each one’s wikipedia page which are linked from the IPA page.

I'm using my conlang Maanxmusht as an example. Please note, I’m very much a beginner at this and there are likely to be better ways than I use. Our rules and phonotactics for Maanxmuʃt are:

Code: Select all

Words take the form of (C)(C)CV(C)(C)(C), where the onset can be:

any consonant
ʃ(any non-voiced nasal, stop, or fricative)1(r or l)
a stop or fricative + r or l, but not dl or vl
1 = m, n, p, t, k, θ, x

Codas consist of:

any non-voiced consonants, but r and ʀ can’t follow diphthongs and m can’t follow long vowels or diphthongs
(r or l)x
x(ʃ or t)
n(coronal and dorsal stops and fricatives)2
2 = t d k ʃ θ x

Long vowels are rare in unstressed syllables and the stress is always on the first syllable. ɦ and ʀ only appear outside of consonant clusters. After a nasal x changes to d. And after a vowel h changes to x.

As I said in the first part, Inspiration Pad Pro was designed for RPGs, so it’s very flexible, but limited to keyboard characters (it’s possible to use the HTML entity equivalents, and I did that in the final form of the generator1). I hadn’t made this generator, so this will be more step by step. It should be possible to create generators for parts of speech with different endings, and possibly to derive words from an output (I haven’t done either of those tho.)

The IPA symbol HTML codes can be found here or by looking on each one’s wikipedia page which are linked from the IPA page.
Please note, I’m very much a beginner at this and there are likely to be better ways than I use. Our rules and phonotactics for Maanxmuʃt are:

Words take the form of (C)(C)CV(C)(C)(C), where the onset can be:

any consonant
ʃ(any non-voiced nasal, stop, or fricative)1(r or l)
a stop or fricative + r or l, but not dl or vl
1 = m, n, p, t, k, θ, x

Codas consist of:

any non-voiced consonants, but r and ʀ can’t follow diphthongs and m can’t follow long vowels or diphthongs
(r or l)x
x(ʃ or t)
n(coronal and dorsal stops and fricatives)2
2 = t d k ʃ θ x

Long vowels are rare in unstressed syllables and the stress is always on the first syllable. ɦ and ʀ only appear outside of consonant clusters. After a nasal x changes to d. And after a vowel h changes to x.

IPP generators break things down into tables, which things are picked (or rolled) from. Each table can refer to other tables and each entry on a table can have a frequency set.

So I’ll start by figuring out how I want to break down words. I know I’ll need tables for stressed and unstressed syllables because the differing frequencies in long vowels. First I’ll break down what my categories are (these will be different tables).

I can put the vowels, diphthongs, and long vowels together, and decide frequencies for each of the options (the manual refers to this as adding weight). I want the basic vowels to be the most common, with e and u being less common in those, so for now I’ll weight e and u at 2 and the others at 4 (this means e and u are half as likely to show up). My tables for the stressed and unstressed vowels end up looking like this:

Code: Select all

Table: StressVowels
4:i
2:e
4:a
2:u
4:o
ii
2:ee
aa
2:uu
2:oo
uo
ie
iu
ei
ou

Table: UnStressVowels
5:i
4:e
5:a
4:u
5:o
ii
ee
aa
uu
oo
2:uo
2:ie
2:iu
2:ei
2:ou
This of course doesn’t yet give me words, so next I’ll make a table for basic consonants. Unfortunately, I have to pick some alternatives for ʃ, θ, ɦ, and ʀ (or look up their HTML codes). I’ll go with sh, th, h, and R, because that’s easy. That done, I can make a word table, which simply looks like this (for now):

Code: Select all

Table: Maanxmust
2:[@Cons][@StressVowels]
[@Cons][@StressVowels][@Cons][@UnStressVowels]
Two notes: [@…] calls the relevant table and 2: says that the first line will show up twice as often as the second (you can see it in the vowel tables as well). With this I get results like this:

rahi
ki
xaadi
rawuo
wiu
ke
ka
heeshee
po
tuudei

Not a bad start. Next will be getting more complicated
Last edited by silvercat on 07 Dec 2020 05:29, edited 1 time in total.
my pronouns: they/them or e/em/eirs/emself
Main conlang: Ŋyjichɯn. Other conlangs: Tsɑkø (naming language), Ie, Tynthna, Maanxmuʃt, Ylialis
All my conlangs
Conlanging blog posts
User avatar
silvercat
cuneiform
cuneiform
Posts: 90
Joined: 16 Feb 2012 19:36
Location: Southern California
Contact:

Re: Using Inspiration Pad Pro as a word generator

Post by silvercat »

Time to work on the rest of the onset choices. Added an Onset and Sh+Consonant+Liquid table, and altered the word table.

Code: Select all

Table: Maanxmust
3:[@Onset][@StressVowels]
2:[@Onset][@StressVowels][@Onset][@UnStressVowels]
[@Onset][@StressVowels][@Onset][@UnStressVowels][@Onset][@UnStressVowels]

Table: Onset
2:[@Cons]
[@ShCLiquid]

Table: ShCLiquid
4:sh[@SCons]
2:sh[@SCons]r
sh[@SCons]l
4:shr
2:shl
Let’s see what our results are now:

kowosho
shmrooxei
naa
te
shtouxo
shmra
shrashnumi

Looking pretty good.

The next category of onsets is a bit more complicated: a stop or fricative + r or l, but not dl or vl. The long way would be to make separate sets of tables for r and l, but we’re not going to do that, because I figured out the Replace filter.

Once I wrote the table for the stops and fricatives combined with liquids, I changed the onset table to this:

Code: Select all

Table: Onset
3:[@Cons]
[@ShCLiquid]
2:[@SorFandL >> replace /dl/dr/ >> replace /vl/vr/]
The first filter is “>> replace /dl/dr/”, changing dl to dr.

You can string multiple filters together, so at first it was 2:[@SorFandL >> Bold >> replace /dl/dx/ >> replace /vl/vx/] so I could see it and be sure that the l’s were changing. (I also increased the frequency of the relevant items)

So that’s great, but now we need codas.
my pronouns: they/them or e/em/eirs/emself
Main conlang: Ŋyjichɯn. Other conlangs: Tsɑkø (naming language), Ie, Tynthna, Maanxmuʃt, Ylialis
All my conlangs
Conlanging blog posts
User avatar
silvercat
cuneiform
cuneiform
Posts: 90
Joined: 16 Feb 2012 19:36
Location: Southern California
Contact:

Re: Using Inspiration Pad Pro as a word generator

Post by silvercat »

Our coda choices are:

Code: Select all

sonorant consonants, unvoiced stops or unvoiced fricatives, but r and ʀ can’t follow diphthongs and m can’t follow long vowels or diphthongs
(r or l)x
x(ʃ or t)
n(coronal and dorsal stops and fricatives)
I’m going to skip the first one for now, because it’ll probably mean significantly changing other tables. I’ll start a coda table, and use Inline tables for the middle two. You can't weight Inline tables, but that's okay. For the last one, because the phonotactics say that after a nasal x changes to d, I’ll leave off x even though it’s a dorsal fricative. I’m also going to add a blank (\z), so that we don’t have to specify that nothing is also possible in the word table. So with those three done, the coda tables look like this:

Code: Select all

Table:Coda
2:[|r|l]x
x[|t|sh]
3:n[@NasalCoda]
\z

Table: NasalCoda
3:t
d
k
2:sh
2:th
The inline tables are [|r|l] and [|t|sh]. Time to add those to the word table and see how it looks. I also added periods between syllables to make it easier to tell where they started and stopped. Looking pretty good:

raxsh.tle.shnunt
drinth
pee
penth
poxsh.wa
mox
minsh.shloonsh
kri
Ralx
Ranth.xluont.wienth

Now to conquer that last coda category. This is one of those places where there is almost definitely a more elegant solution than what I’ll come up with. It took some doing, but the final result was that I split up the vowel tables into A (basic), B (long), and C (diphthong). Vowels are now picked with the coda, so there’s a stress and unstress coda table. Then I made tables for /m/ and the rhotics. Those look like this:

Code: Select all

Table:MCodaStress
[@StressVowelsA]m

Table:MCodaUnstress
[@UnstressVowelsA]m

Table:RhoticCodaStress
2:[@StressVowelsA][|r|R]
[@StressVowelsB][|r|R]

Table:RhoticCodaUnstress
4:[@UnStressVowelsA][|r|R]
[@UnStressVowelsB][|r|R]
I fixed the word table and added one for phonotactics using the Replace filter liberally (see below for that). Here’s the words I’m getting:

vruow
jimshrawi
dikthaaxosh
kranRiRoo
pant
joxsh
powRosh
tla
hoxshthe
laaw

I’m pretty darn happy with those results. Here’s my final generator:
Spoiler:
Table:Phonotactics
[@Word >> replace /ih/ix/ >> replace /eh/ex/ >> replace /ah/ax/ >> replace /uh/ux/ >> replace /oh/ox/ >> replace /mx/md/ &
replace /nx/nd/ >> replace /shsh/sh/ >> replace /thth/th/ >>replace /tt/t/ >> replace /xth/kth/ >> replace /Rsh/rsh/]

Table:Word
3:[@Onset][@CodaStress]
2:[@Onset][@CodaStress][@Onset][@CodaUnstress]
[@Onset][@CodaStress][@Onset][@CodaUnstress][@Onset][@CodaUnstress]

Table: Onset
4:[@Cons]
[@ShCLiquid]
2:[@SorFandL >> Replace /dl/d/ >> replace /vl/vr/ ]

Table: Cons
3:m
n
3:p
t
6:d
k
sh
2:v
6:th
x
5:h
4:l
6:j
4:w
4:r
5:R

Table: ShCLiquid
4:sh[@SCons]
2:sh[@SCons]r
sh[@SCons]l
4:shr
2:shl

Table:SCons
2:m
3:n
3:p
4:t
4:k
2:th
x

Table:SorFandL
3:[@StoporFric]r
2:[@StoporFric]l

Table:StoporFric
p
3:t
2:d
3:k
3:sh
4:v
2:th
x

Table:CodaStress
[@StressV][|r|l]x
2:[@StressV]x[|t|sh]
4:[@StressV]n[@NasalCoda]
7:[@StressV]
5:[@StressV][@UnVoiceCoda1]
4:[@MCodaStress]
2:[@RhoticCodaStress]

Table:CodaUnStress
[@UnstressV][|r|l]x
2:[@UnstressV]x[|t|sh]
4:[@UnstressV]n[@NasalCoda]
7:[@UnstressV]
6:[@UnstressV][@UnVoiceCoda1]
4:[@MCodaUnstress]
2:[@RhoticCodaUnstress]

Table: NasalCoda
3:t
d
k
2:sh
2:th

Table:StressV
2:[@StressVowelsA]
[@StressVowelsB]
[@StressVowelsC]

Table:UnstressV
4:[@UnStressVowelsA]
[@UnStressVowelsB]
2:[@UnStressVowelsC]

Table: StressVowelsA
2:i
e
2:a
u
2:o

Table: StressVowelsB
ii
2:ee
aa
2:uu
2:oo

Table: StressVowelsC
uo
ie
iu
ei
ou

Table: UnStressVowelsA
2:i
e
2:a
u
2:o

Table: UnStressVowelsB
ii
ee
aa
uu
oo

Table: UnStressVowelsC
uo
ie
iu
ei
ou

Table:UnVoiceCoda1
5:n
3:p
4:t
4:k
2:sh
3:th
x
2:l
j
3:w

Table:MCodaStress
[@StressVowelsA]m

Table:MCodaUnstress
[@UnstressVowelsA]m

Table:RhoticCodaStress
2:[@StressVowelsA][|r|R]
[@StressVowelsB][|r|R]

Table:RhoticCodaUnstress
4:[@UnStressVowelsA][|r|R]
[@UnStressVowelsB][|r|R]
my pronouns: they/them or e/em/eirs/emself
Main conlang: Ŋyjichɯn. Other conlangs: Tsɑkø (naming language), Ie, Tynthna, Maanxmuʃt, Ylialis
All my conlangs
Conlanging blog posts
Post Reply