I ended up last night with a script that generated some decent syllables. Alas, when combined, they didn’t always work very well.
So I changed my script a bit:
tokens vowel a e i o
tokens consonant b k l m n p r s t
tokens noun-ender r n
rule base {
loop 0 1 1 5[2] 2[3] {
rule syllable
}
}
rule noun {
rule base
rule noun-ending
}
rule noun-ending {
loop 0 0 1 1 1 {
token consonant
}
token vowel
token noun-ender
}
rule syllable {
loop 0 0 1 1 1 {
token consonant
}
token vowel
loop 0 0 6[1] {
token consonant
}
}
rule syllable {
translate {
a # => a $consonant
e # => e $consonant
i # => i $consonant
o # => o $consonant
}
loop 0 0 1 {
repeat
}
token vowel
loop 0 0 6[1] {
token consonant
}
}
startingrule noun 50
Now, I’ve added a new variation of the syllable rule so as to make double consonants more likely. I found that ever so often, the rule would be applied to a syllable ending with a vowel, so I added the translate command to make sure there was a consonant at the end before repeating.
That’s a lot better, but there are still some consonant pairs that I dislike. So I added this rule to the script:
rule cleaning {
translate {
[b p] k => m k
t k => s k
[b p] n => n n
b p => p p
p b => b b
l r => l l
}
}
Which solves at least most of my problems. Words now look like this:
- arpakpir
- elobrar
- akinan
- oppin
- abor
- itokimkon
- kanikbamen
- oksan
- ikabmemir
- eppobin
- an
- etetelen
- inter
- orser
- itannesmar
- nabsipporon
- imsinror
- ekeon
- obbason
- mibosepir
- ibasbir
Not bad – and with a pretty uniform feeling, I think.
Skriv et svar