Greyfolk Language

Beginning of September report

Oh yeah! August is over. This time around, it was less of a month disappearing and more of being so engaged in other things that I forgot what day it was. That’s definitely an upgrade from feeling depressed and tired; though, it only came halfway through the month—perhaps, that’s why I lost track of the day! Anyway, my partner has a mid-low-tier gaming PC now—an Optiplex 9020 SFF with a low-profile 1650 in it—; so, I’ve been back to playing some Deep Rock Galactic since we can play it together (and it’s just so much more fun with friends).

In my last monthly report, I mentioned that I hadn’t had internet in a couple of days, and I’m laughing now because I’ve already forgotten about that mess. Sorry, past me. That two days turned into two weeks. And three technicians over five visits. And threatening to cancel WOW! only to find out that I had (apparently) signed a two-year contract, but we got a lowered rate out of it—well, lower than the rate it was supposed to increase to.

Conlang stuff report

Oh, boy. I went deep into Toaq, Ceqli, Toki Pona, and Toki Pona Enhanced. Oh, and Sapolim, which is doing something similar to what I want to do. I’ve learned both about predicates and arguments as well as how to make a conlang fun and whimsical. It feels like lots of changes are coming to greyfolk language. I think I’ve been saying that for a while, but conlanging has been slow work for me. I really think I’ll end up with a few different versions, but that was really the plan anyway. (Why relex English when I can relex my own conlang, amirite?)

I even played around with some temporary vocabulary (i.e., unofficial vocabulary that I generated only for test sentences) to try out some sentences. I really need to make a small update post or two about those things—this blog has been leaning too far into tabletop RPGs. (Not that I actually care, but this isn’t after all. I wish I could buy that domain, though!)

I also still need to talk more about Globasa!

RPG stuff report

I recently published a post about moving away from GURPS and diving into the OSR scene, and I’ve been continuing down the path that I set out for myself. Right now, I’m in love with Mörk Borg. As I said before, Mörk Borg is a rules-lite over-the-top black-metal-inspired fantasy OSR-ish tabletop RPG that leans into itself while simultaneously not taking itself too seriously that hasn’t been out for long but already has a great community. I’m not sure I could whittle down my description of it to any less than that. I’ll save more of my praise for a review, but it’s been great, and my group has already been enjoying it. I’ve already created a handful of house rules because I saw a few gaps that I wanted to fill in, and I love to tinker.

Playing something else has also rekindled my interesting in tinkering with GURPS. There’s so much less pressure to tinker with a game that I’m not currently playing. (And I’ve also been revisiting my thoughts on Fate and Savage Worlds.) More and more, I’m starting to think that it’s time to build my own system, especially because I’ve become more and more comfortable with the idea of building my own first system. Looking into the more indie side of tabletop RPG gaming, I’ve seen a lot of creative and original people make some awesome stuff, and it the community is also transparent enough that I’ve seen the humble beginnings of a lot of those same people. Also, there is a lot of support in the community—infectious support. For example, as I was trying to catch up on every zine and adventure and setting and cool system, the creator of The World Broke announced their launch on the Mörk Borg Discord. Now, I’m not really into Into the Odd, but, for $4, how was I not going to support a creator in a community that I already love when the product looks so neat and well-made? I’ll skip a coffee.

Alright, I’ll save the rest of my mania for other blog posts.

Writing stuff report

Almost nothing has happened in this corner again. NaNoWriMo is slowly creeping up on me, and I think I want to continue working on the same story I started last year. Of course, as I was saying above, it would be nice to start working on a tabletop RPG system, but I might just have to temper my own excitement and allow that to be its own project.

End of July report

I’m not sure if this month really happened—that might just be my excuse for feeling like I didn’t get as much done as I would’ve liked to. What did happen? I aged up a whole year. I saw my family in Bloomington, which is always bittersweet (now with a touch of dangerous in the middle of a pandemic, I must admit). I’m probably forgetting something, but that feels like it’s it in terms of significant events. I beat a couple of video games, I watched a couple of movies, and I haven’t had internet for two days (outside of a few hours of spotty up-time).

I’m tired—a depressed kind of tired.

Conlang stuff report

I have no notes in my project document, which must mean nothing really happened. I have lots of greyfolk language ideas, but I haven’t written any down. Globasa turned one, which is cool! It was my plan to review it for its birthday, and I’m a bit behind, but I’ll get there.

RPG stuff report

Well, I’ve been running that Deadlands campaign using my own GURPS-Fate homebrew system. I’ll say that my highlight was introducing a new player to GURPS! The Steve Jackson Games’ GURPS 2020 PDF Challenge went really well, and I already have all of my PDFs. They’re quite great, and I’ll get around to reviewing them as a bundle quite soon.

I started a thread about alternatives to GURPS as it’s starting to feel like my GM burnout was also largely a GURPS burnout. Cortex Prime (when it’s out), Powered by the Apocalypse (maybe using Legend of the Elements), Genesys (maybe using Avatar: the Second Age), and Savage Worlds all seem to be in my future—if not also Chuubo’s Marvelous Wish-Granting Engine. Everyone Is John is definitely in my future, and it has also been in my past a handful of very fun times. I’m planning on playing it again this weekend just to give myself a much-needed break. As a forever GM, I really miss being a player sometimes. I am struggling with my perfectionist mentality for GURPS and as a GM, and it’s so counter-intuitive because, as a player, I think I’d just be happy to play again. My god, I’d welcome D&D 5e with open arms if it meant being a player again. Maybe I need to work on getting over being shy and finding a group.

Writing stuff report

This should’ve been my saving grace, but I ended up not participating in Camp NaNo. I don’t know what was up with me, but I’ve just been having this huge creative block.

End of June report

My best friend gains another year under his belt as do I in a few days time. I’m still dealing with physical therapy for my pelvic floor dysfunction as well as shoulder impingement. It feels like the world is on fire with the continuing protests and another surge of COVID-19. I’ll say it: black lives matter, and everyone should be wearing masks. Politics aside, black lives matter, and everyone should be wearing masks. Personal feelings aside, black lives do matter, and everyone really should be wearing masks. I hope that’s clear. I know the internet allows me to more easily see bad news, but it really does seem like humanity is in short supply of reason and empathy. I’m sure it’s always been that way, but, as I said, it’s just even easier to see on the internet.

Life has felt extra weird and out of my control for the past month—probably even before that, but I’ve really been feeling that way lately. Here’s to hoping for some good things ahead.

Still, I managed to get out quite a few blog posts in a short span of time, even if three of them were about coffee recipes. It makes me happy, and I think that counts for a lot.

Conlang stuff report

My conlang has continued to mostly be on the back burner. I did get some extra bits of inspiration from Toaq and Ceqli. And, when I say “extra bits”, I mean some loglang inspiration that might fundamentally change how a certain part of my conlang works. I’m not turning my current greyfolk language into a loglang, but, like I said, I have some really neat ideas.

Speaking of stealing borrowing ideas for my conlang, Globasa turns 1 on July 26th. I’ll do my best to make a blog post for its birthday, especially because that should mark the worldlang becoming much more stable as it goes into Phase III.

RPG stuff report

My GURPS/Fate Savage Worlds Deadlands mess has continued to go really well, which is nice. I’m planning on adopting even more of the Savage Worlds framework. I don’t think I have the Will to ever leave GURPS behind—I love it too much! But even GURPS likes to sand down its own rough edges to streamline play. Even outside of the post-apocalyptic genre, the Boldly Going Forth chapter of GURPS After the End 2: The New World is great for just that. I’ve already taken it much further by just leaning on Fate‘s aspects for so many things, but I ended up wanting a bit more crunch than what that provides. Savage Worlds, in a lot of ways, seems like a nice middle ground, and I think I can adapt a lot of its ideas to make GURPS better fit the play-style of my group.

Also, another GURPS Kickstarter will be launching soon. If there’s enough money put into the project, we’ll be able to grab 12 PDFs for $3. Not $3 each. I mean $3 for all 12 PDFs—again, assuming that the project reaches a high-enough funding level.

Writing stuff report

Well, I’m supposed to start Camp NaNo tomorrow. It’s gonna happen, but I think I’ll at least be off to a rough start. In April, I got 10,000 words (which was my goal) in only 20 days; so, I’m not too worried about taking some extra warm-up time.

End of May report

Oops! It’s already June 1st. My GURPS/Fate game was pushed back from Saturday to Sunday this weekend, so I ended up forgetting to write this post yesterday.

Of course, there are other things going on right now. Like, a lot. And I’m tired of people acting like this is a political issue too. You know what I’m talking about. Justice for George Floyd. Police brutality, racism, and murder are not political issues. And, if they are for someone, then that person’s politics are tainted. I feel fairly confident in saying that. I’ve also seen some of what’s going in first-hand in Columbus. It’s been really strange for me, coming from a smaller town. Big city protests are so different. Anyway, here’s a reminder that these things are not binary: I support the protesters and their message 110%; I have seen continuing police brutality during these protests about police brutality; I understand the rioting because people are frustrated that their voices aren’t being heard, so this is how they yell; and I think most of the looters are opportunistic idiots. I feel that so much nuance is being lost in the way that the internet (and people parroting the internet) talk about things. It’s rather unfortunate. Also, on that last part of my stance, I’ve heard what I believe to be a false equivalency about ‘a few bad cops’ giving all cops a bad name and ‘a few bad rioters’ giving all protesters a bad name. It’s not equal in my eyes. Law enforcement is an institution, they are expected to uphold the law (and should be held to higher standards), and they are expected to keep each other in line. Protesters are a sea of individuals with a largely common message, but they are not an institution in themselves.

I don’t even know how to transition after saying all of that. As I said in my fourth life update, my arm is just about back to its old self, and I am in physical therapy for pelvic floor dysfunction. A lot of other small things have happened (like getting my keyboard), but the details are in that post, so I’ll move on to my progress over the month. Well, first, let me say that, even though May was such a weak month in terms of blog content, it’s not a bad thing right now. This time, it’s a good sign. In spite of the craziness going on in the world, I’ve been enjoying my life as much as I can, and I have finally found my GMing spirit. As the honeymoon phase starts to die down (and I settle into things again), I’ll be talking way more about what’s going on right here on my blog.

Conlang stuff report

I took a look at how I want to handle adverbs and prepositions. I only worked on my conlang for a couple days this month. Right now, I’m actually waiting for Globasa to firm up a little more, so I can steal borrow some more ideas. I am trying a more cautious approach rather than just jumping into things only to radically change things again a short while later. Right now, I’m happy with that approach, but we’ll see if the conlang bug bites again.

RPG stuff report

I’ve dumped using Fate Condensed on its own, and I have integrated the Fate framework into GURPS. Aspects are actually a really handy way to cover my ass for rules that I can’t remember or that would take too much time to look up. Really, it just helps me drive GURPS in a narrative manner, which is really nice because I love GURPS and its complexity, but it can bog me down a lot, which is a me thing. Some people can just gloss over rules or make things up on the fly, and I can too, but I always feel guilty for doing that, and I feel a lack of structure when I do things like that. My integrated system gives me the structure by using Fate‘s narrative framework—as I said. It’s not perfect, but I’ve cobbled together 6+ pages of rules, and I hope that I can eventually share them in some form without having to worry about infringing on any properties. (With the power of logarithms, I’ve even finally been able to incorporate “Knowing Your Own Strength” and “Conditional Injury”, but more on that later too!)

Hand in hand with finally having a solid system (for me, personally, of course), I am finally running a really solid setting: Deadlands. I absolutely love Weird West stuff. It’s one of my favorite genres right now, up there with New Old West. I have the third edition GURPS Classic: Deadlands book for a nice and easily convertible reference point, but there are so many great adventures for Deadlands Reloaded, and I have had a blast converting and running those. It has taken away a lot of the burden of being the (forever) GM, but, even more importantly, because it has done that, it’s given me a lot more space to actually be creative. If I don’t have to worry about setting up the quest, the location, and most of the characters, I can dedicate a bunch of my prep time to creating cool things on the side. Spoiler alert to my players, but, yes, I plan on having a Weird West version of Metroid’s own Samus Aran appear.

Have I forsaken Norðlond? Oh, no. No. Absolutely not. If the Native Americans in Deadlands are trying to get back to the Old Ways, then who says that’s not happening in other (perhaps colder) parts of the world? Norðlond is definitely up next after I take off my Deadlands training wheels. I’ve mentioned my own campaign world that I’ve called GURPS Project Sirocco, which was going to squeeze in Norðlond as part of that, but, as I said, it may just become part of Deadlands now. We’ll have to wait and see! Really, it would make sense either way as both approaches give Norðlond a (semi-)post-apocalyptic magic-comes-back kind of scenario.

Writing stuff report

I didn’t work on my story at all, unfortunately. All of the story-building parts of my brain have been hard at work on tabletop RPG stuff. Next month, however, is another Camp NaNo, and I plan on participating. I’ve got some ideas stewing in the back of my brain, though!

End of April report

COVID-19 is still here, but my new mechanical keyboard isn’t. What a way to start this report! Truly, I feel so grateful to be safe and healthy, but I have grown ever more frustrated and weary with the world, especially my country and the people within it. Don’t worry. I won’t get too political—well, not yet, at least. However, I think I can fairly argue that one person’s freedoms and rights end where another person’s freedoms and rights begin. My expectation to not get sick can be greater than another person’s freedom to not wear a mask. It’s not tyranny. My expectation of safety on the road is more important than another person’s freedom to go 20 over or another person’s freedom to drive while intoxicated. Furthermore, it goes beyond that too. A law requires a person to wear a seatbelt while driving, but that doesn’t affect other persons (very often, that is). Yet, that’s not tyranny either. A person has the right to be dumb and reckless. A person has the right to say racist things. However, actions also have consequences. I was so frustrated about protesters that I even made two whole tweets on an otherwise empty Twitter account.

I have good news too. My arms has been feeling much better after slowly starting to work it out at home more. My symptoms from my infection still come and go, though, which is a real bummer, but it’s never as bad as it used to be. I have another appointment in a couple of weeks to see what can be done. I finally started playing tabletop RPGs again, which is so nice. I’ve been keeping up with therapy, and I even get to virtually meet with my old Al-Anon group from Bloomington. I’ve also been writing a lot. Anyway, where’s my damn keyboard?

Conlang stuff report

Oops. I have barely half an entry in my project document for this month, which I wrote yesterday, and the previous entry is from March 9th. It’s actually been nice to take a break. My next step is to really focus on function words again. I want to make sure I have a robust set before I start adding a bunch of content words. I also think I need to renew my Language Creation Society membership, so there’s another oops. As I spend less energy on writing and gearing up to start playing tabletop RPGs again, I expect to have much more energy for conlanging. It’s really nice to be able to switch between a few really core hobbies.

RPG stuff report

Well, I created a flexible powers/magic system for GURPS called Modular Powers that I ended up reworking into my Wildcard Power Pool system. I’m still having some internal conflict about game design, but that’s really only because I’m trying to bridge GURPS and…

Fate. Yes, I’ve jump-started my tabletop RPG hobby with Fate. It’s a generic and modular system like GURPS, but it puts the narrative first. It’s also not as exceptionally detailed. However, the positive way to put that is that it’s very streamlined. Of course, the first thing I did was hack in a logarithmic system for damage. It actually works very well. It’s not a crazy assumption to say that Fate could work on a +6 = ×10 scale. (I don’t know math. Please be gentle.) That allowed me to squeeze in some ideas from Knowing Your Own Strength and Conditional Injury, and, because it establishes that bridge, it allows me to convert between damage in GURPS to damage in my Fate system along with being able to say how many characters points a stunt or a skill level is worth in Fate (which seems to be ~16.67 points). It’s easier to start small again. It’s easier to take off the pressure of wanting to be perfect at GURPS because I love it so much.

Also, I virtually attended FnordCon. Here are my highlights:

  • Kromm said that coronavirus is not related to 5G, and I’m pretty sure he works for the Illuminati, so I think he would know. Conspiracy de-confirmed.
  • Kromm also said that he really likes Fate, so I feel like I have his indirect blessing.
  • They talked about doing a Space Opera line like DFRPG.
  • Douglas Cole mentioned doing some Secret Wars Mission X stuff after Norðlond. He mentioned it being inspired by X-Com games, so that’s interesting. Not my typical cup of tea, but I usually drink coffee anyway, so I’m happy to try new things and support his stuff.
  • In response to a question about what gives GURPS players the most grief, Kromm said something along the lines of when people ask a question on the forums only to receive 600 replies but zero actual answers. I can confirm.
  • Steve Jackson was asked about ways to make GURPS more narrative-first, but he said that GURPS isn’t really the best fit for that. He basically said that, if you want to play Powered by the Apocalypse, then play Powered by the Apocalypse. Though, Douglas Cole added that it is still very possible to sand off all the splinters (paraphrasing his actual words) to make GURPS a bit faster, lighter, and narrative-forward if not first.
  • I also was allowed to record Steve Jackson telling my best friend’s dad to clean up his house, which is the highlight of highlights.

Now that I really think about it, I guess I should’ve made a post-FnordCon post, but oh well! This is good enough for me.

Writing stuff report

I participated in the April Camp NaNo, I set my goal for 10,000 words in a month, and I hit my goal on April 20th. So, yeah, I’m pretty content with that. I worked on a continuation of the story I wrote last November, and it’s still coming along quite nicely. This is a small report for what was a good amount of story, but I think I’ll talk more about it when the first draft is actually finished.

End of March report

Well, COVID-19 is here, and it looks like it’s going to be staying a while. My arm is actually still recovering, but it’s definitely feeling better. As I’ve done more stretching, the symptoms from my infection have also started to go away, which is nice. There’s a new loveseat in the living room, I have a new mechanical keyboard on the way, and Animal Crossing: New Horizons has been a fantastic way to pass the time while trying to shrug off politics- and pandemic-related dread.

Conlang stuff report

I created a way to say hello, reworked the monosyllabic roots, reworked the numerals, and talked about my process for creating disyllabic roots for the greyfolk language I’m working on. Oh, and I took a deeper look at natural semantic metalanguage. That’s about it. Everything is in place, and, when I’m ready, I can start deriving a bunch more words.

RPG stuff report

I figured out some more math for the flexible magic system I was creating for GURPS, which I only briefly touched on in my last end of the month report. More on that to come too. Also, I just about figured out how to finally resolve Conditional Injury with Knowing Your Own Strength (as I have attempted previously). And, when I say that I figured it out, I mean that I asked for someone to help me figure it out. I’ll make a post about that soon too, I hope.

Oh, right, and I posted seven reviews of DFRPG products in a single day.

Writing stuff report

April is the first month of Camp NaNo, and I’ll be revisiting (I already have) the story that I wrote for NaNoWriMo 2019. I finally went to start working on it again the other day, and I actually just happened to notice that Camp NaNo was to start in a couple of days, so I guess I’m doing it.

Disyllabic roots in greyfolk language, 3: the roots so far

After explaining how I planned the roots and how I created a database for them, I am ready to and happy to share the results!

The 4-phoneme disyllabic roots: «kaka, kana, lapa, mama, masa, naka, nana, pala, papa, saha, sama, sasa, tata, taya, yata».

The 5-phoneme disyllabic roots: «hahan, hakam, halan, halma, halta, hamam, hamla, hanal, hanpa, hanya, hapal, hapya, hasam, hatla, hayal, kalpa, kalsa, kalya, kampa, kamsa, kanta, kapan, kapla, kasan, kasla, katal, katam, katya, kayan, klata, kyapa, kyasa, kyaya, lalma, lalsa, laman, lamsa, lanam, lanta, lanya, lasan, lasla, latal, layal, layam, mahal1, maham, malal, malam, malna, malpa, malya, mamna, mampa, manan, manla, mapan, mapla, matya, mayan, mlaha, mlala, myana, myapa, myaya, nahan, nalan, nalta, namal, namam, namta, namya, nanma, nansa, nasal2, nasam, nasya, natla, nlama, nlasa, nlaya, nyaha, pakal, pakya, pamal, pamta, pamya, panam, panka, panma, pansa, pasal, pasya, patan, payam, plaka, plama, plasa, pyaha, sakal, sakam, sakya, salal, salam3, salna, salpa, salya, samna, sampa, sanan, sanka, sanla, sapan, sapla, sayan, slaka, slala, syana, syapa, syaya, tahal, taham, takan, takla, talka, tamka, tlaha, tlana, tyaka, tyala, tyama, yahan, yakal, yakam, yakya, yalan, yalna, yamal, yamam, yamna, yamya, yanka, yanma4, yansa, yasal, yasam, yasya».

Don’t mind my stupid jokes.

The 6-phoneme disyllabic roots: «hatyam, haklan, hasyal, hamyan».

As I mentioned, I expected to have a minimum total of 165 4-phoneme and 5-phoneme disyllabic roots, and I ended up with 166 after deciding to merge certain similar-sounding roots, but, in the end, I only scraped by with 162 because fitting in the numerals broke so many patterns. Furthermore, the breaking of those patterns will also ripple into what 6-phoneme disyllabic roots I’ll be able to use.

However, I’m not dismayed. I’ll use as many 6-phoneme disyllabic roots as I can. My new secret weapon is 6-phoneme trisyllabic roots! Why? Because I did find the source that I was looking for:

Pellegrino, F., Coupé, C., & Marsico, E. (2011). A cross-language perspective on speech information rate. Language, 539-558.

My takeaway is that information efficiency is fairly constant depending on the constituents (in my case, just phonemes) in a syllable. What that means is that the number of phonemes is more important than the number of syllables in terms of how quickly a word can be spoken to get information across. For example, Spanish and Japanese have simpler syllables but tend to have longer words, yet they are spoken a bit faster because they have simpler syllables, so the information rate stays about the same.

Previously, I had tried to put off using trisyllabic roots for as long as possible, but it seems like they might just be my secret weapon in terms of eking out efficient words in the wake of losing quite a few 5-phoneme roots.

For now, the plan is to take these roots and start creating words!

Disyllabic roots in greyfolk language, 2: creating the database

In my end of February report, I mentioned that I was able to create a database to help me create disyllabic roots while preserving Hamming distance. One big part of that was devising a macro for Excel that would do the following:

  • Range A is a bank of possible (according to the rules of my language) disyllabic roots. I generated this using Zompist’s Gen.
  • Range B is where I input the roots I have chosen.
  • Range C is a bank of roots that conflict with the roots in Range B. I also generated this using Gen with some really roundabout tricks.
  • Rule 1: If a cell appears in Range A and Range C, it is highlighted yellow.
  • Rule 2: If a cell appears in Range A and Range B, it is highlighted green.
  • Rule 3: If a cell appears in Range B more than twice, it is highlighted red.
  • Rule 4: If I a cell appears in Range B and Range C, it is highlighted red.
  • Rule 5: Otherwise, a cell should not be highlighted.

Thus, any white cells in Range A were roots that could still be used because they didn’t conflict with anything else. Even though the highlighting was all done by a macro, there was still a significant portion of manual work that took a few hours. Much more time went into figuring out how to get the most efficient set of disyllabic roots. By that, I mean that I had to figure out how to get as many roots as possible that didn’t conflict with each other from the total bank of possible roots. It always comes back to Hamming distance!

Macro for disyllabic roots database
Sub HighlightDuplicates()

    'Keyboard Shortcut: Ctrl+Shift+D

    Application.ScreenUpdating = False

    Dim ws As Worksheet, t0 As Single, t1 As Single
    Set ws = ThisWorkbook.Sheets("Database")
    t0 = Timer

    'Rule 5: Otherwise, a cell should not be highlighted.
    ws.cells.Interior.Color = xlNone

    Const RANGE_A As String = "B1:E2300"
    Const RANGE_B As String = "G1:G2300"
    Const RANGE_C As String = "I1:AH2300"

    Dim dictA As Object, dictB As Object, dictC As Object
    Set dictA = CreateObject("Scripting.Dictionary")
    Set dictB = CreateObject("Scripting.Dictionary")
    Set dictC = CreateObject("Scripting.Dictionary")

    Call buildDict(dictA, ws.range(RANGE_A))
    Call buildDict(dictB, ws.range(RANGE_B))
    Call buildDict(dictC, ws.range(RANGE_C))

    'Rule 1: If a cell appears in Range A and Range C,
    'I want them highlighted yellow.
    'Rule 2: Then, if a cell appears in Range A and Range B,
    'I want them highlighted green.
    Dim cell As range, key As String
    For Each cell In ws.range(RANGE_A)
        If Len(cell.Value) > 0 Then
            key = CStr(cell.Value)
            If dictC.exists(key) Then cell.Interior.Color = vbYellow
            If dictB.exists(key) Then cell.Interior.Color = vbGreen
        End If

    For Each cell In ws.range(RANGE_C)
        If Len(cell.Value) > 0 Then
            key = CStr(cell.Value)
            If dictA.exists(key) Then cell.Interior.Color = vbYellow
        End If

    For Each cell In ws.range(RANGE_B)
        If Len(cell.Value) > 0 Then
            key = CStr(cell.Value)
            If dictA.exists(key) Then cell.Interior.Color = vbGreen
        End If

    'Rule 3: Then, if a cell appears in Range B more than twice,
    'I want them highlighted red.
    'Rule 4: Then, if a cell appears in Range B and Range C,
    'I want them highlighted red.

    For Each cell In ws.range(RANGE_B)
        If Len(cell.Value) > 0 Then
            key = CStr(cell.Value)
            If dictB.exists(key) Then
                If dictB.Item(key) > 1 Then
                    cell.Interior.Color = vbRed
                End If
            End If
        End If

    For Each cell In ws.range(RANGE_B)
        If Len(cell.Value) > 0 Then
            key = CStr(cell.Value)
            If dictC.exists(key) Then
                If dictC.Item(key) > 0 Then
                    cell.Interior.Color = vbRed
                End If
            End If
        End If

    For Each cell In ws.range(RANGE_C)
        If Len(cell.Value) > 0 Then
            key = CStr(cell.Value)
            If dictB.exists(key) Then
                If dictC.Item(key) > 0 Then
                    cell.Interior.Color = vbRed
                End If
            End If
        End If
    t1 = Timer
    'MsgBox "Completed in " & Int(t1 - t0) & " seconds"

    Application.ScreenUpdating = True

End Sub

You can click on the plus icon or the name to expand that section to see the macro. It’s a biggun, so I decided that it was better to default to it being collapsed and not immediately assaulting any eyeballs.

Now, to even generate Range A, as I said, I used Zompist’s Gen tool. Making rules to create all possible disyllabic roots in greyfolk language was easy.

Categories for all possible disyllabic roots

Rewrite rules for all possible disyllabic roots

Syllable types for all possible disyllabic roots




Of course, the output type was for all possible syllables.

To generate Range C in Gen, I had to figure out some really roundabout tricks, and, even then, I still had to generate it one chunk at a time. Think of each disyllabic root as a STUVWXYZ map where each letter corresponds to a phoneme. S and W are the first position of their respective syllable and can be «m, n, p, t, k, s, y, l, h». T and X are the second position of their respective syllable and can be «y, l» or ‘-‘. U and Y are the third position of their respective syllable, but, when working with roots, both of them are always «a». Finally, V and Z are the fourth position of their respective syllable and can be «m, n, l» or ‘-‘. For example, the root «myaman» would be ‘mya-m-an’ because the fourth position of the first syllable and the second position of the second syllable are open. If you look at the above Gen rules, it should be clear that STUVWXYZ is essentially CSATCSAT.

Then, to figure out the roots that wouldn’t be compatible with other roots, which is what Range C is, I had to switch the process for ABCDEFGH. Each letter corresponds to the letter in the same position in STUVWXYZ, but each letter of ABCDEFGH take the values of phonemes that do not have enough Hamming distance from those in STUVWXYZ. So, if S=m, then A=mnp because «m, n, p» conflict with «m» according to my Hamming distance parameters. Oh, I also set a meaningless Q=xxxxxx so I could see the separation between ABCDEFGH and STUVWXYZ at a glance.

Categories for «myaman»

Syllable types for conflicting roots

Of course, the output type was for all possible syllables.

Output for «myaman»

From there, it was a matter of removing the dashes. However, an interesting question popped back up. What is the Hamming distance between something like ‘mya-m-an’ and ‘myamm-an’? What about ‘myamh-an’? I went ahead and decided that they were all equivalent (which is actually why ‘myamh-an’ doesn’t generate as I had already taken that into consideration). Because it was a problem I had faced before, I knew how to deal with it. However, another question popped up. What is the Hamming distance between something like ‘myamy-a-‘ and ‘mya-mya-‘? Same thing, I ended up deciding that they were the same as well. Though, they do have enough Hamming distance between them. I just wanted to simplify things and continue to get rid of roots that sounded too alike.

However, I did get some conflicts that weren’t actually conflicts. On the surface, «katya» and «kalya» might seem like they conflict because «t» and «l» conflict in the same position. However, «katya» is «k-a-tya-» (pronounced /ka.tja/) and «kalya» is «k-aly-a-» (pronounced /kal.ja/). So, the «t» and the «l» aren’t actually in conflicting positions.

Anyway, I had to run every planned disyllabic root through Gen, put the output in the database, then format it and remove dashes. It took quite a bit of time to do that manually for over 166 roots—yes, it was more than 166 because I had to add other altered roots at the cost of others after having already processed roots that had to be removed. More than anything else, it was just really repetitive and boring, and I pushed myself so hard during this entire process that I ended up really fried, stressed, and anxious. Oops!

In the next part, I will finally reveal the disyllabic roots!

Disyllabic roots in greyfolk language, 1: planning the roots

In the process of creating the monosyllabic roots the first time (and, by extension, the second time), I had an idea of a few disyllabic roots that I wanted. As «me», «se», and «ke» are the singular personal pronouns, I wanted «mema», «sesa», and «keka» as the plural personal pronouns. That meant, for 4-phoneme disyllabic roots, there was an MM root (‘MaMa’), an SS root (‘SaSa’), and a KK root (‘KaKa’), so I figured that all phonemes would pair with themselves. Furthermore, «me», «se», and «ke» were chosen because MKS is one of the few trios of phonemes that doesn’t conflict with one another (in terms of my Hamming distance parameters). Extending that, I figured I could pair any phoneme with another non-conflicting phoneme and itself. There were a few options available, but the best one ended up being MS, NK, PL, TY with «h» left out. For example, MS worked as follows:

«m» «s»
«m» «mama» «masa»
«s» «sama» «sasa»

It’s basically a Punnett square. So, really, MS = MS, MM, SS, SM in terms of the roots that was created from the pair. There ended up being a few extra that worked, but most of them stopped working later one when I started creating the 5-phoneme disyllabic roots.

Actually making those 5-phoneme disyllabic roots was much trickier. A while back, I figured out that I had two special trios of initial consonants: MKS and NPY. Within each trio, the consonants do not conflict with one another. And no consonants are shared between the two trios. (However, «t» and «l» are left out, and I knew I would have to integrate them later somehow.) I couldn’t cross them with themselves because each phoneme was already paired with itself, and there was already MS, which would conflict in MKS. I figured that I could instead interpolate these special trios with each other to get a bunch of non-conflicting pairs to create 5-phoneme roots, and I was right!

  • MN, MP, MY, KN, KP, KY, SN, SP, SY
  • NM, NK, NS, PM, PK, PS, YM, YK, YS

So, that first set creates «m-a-n-a-», «m-a-p-a-», «m-a-y-a-», «k-a-n-a-», etc. Each root would need an extra phoneme in place of one of those dashes, obviously, to make it a 5-phoneme disyllabic root.

Right off the bat, I knew I couldn’t use KN and NK since I already had those for the 4-phoneme disyllabic roots. Furthermore, that list would create way too few options. Of course, that list also had plenty of holes in it that could be filled, and I spent such a long time trying to figure out what they were. I don’t even know how to explain that process, but I can happily share the results:

  • MN, MP, MY, NH, PH, TK, TL, KP, KS, KY, SN, SP, SY, YL, YH, LM, LS, HM, HT
  • ML, NM, NS, MH, PM, PK, PS, TH, KT, SK, SL, YM, YK, YS, LT, LY, HN, HP, HY

Then, I had to figure out the rest of the pattern to make as many 5-phoneme disyllabic roots as possible. It came to figuring out into which position each of the inserted fifth phoneme would go.

  • MN becomes «m-a-n-a», and one of those dashes has to be filled.
  • I focused on one syllable at a time.
  • For «m-a-», I chose «y» for the first dash, and both «m» and «l» for the second dash (because «m» and «l» don’t conflict).
    • That gives «mya», «mam», and «mal».
  • For «n-a-», I chose the opposite: «l» for the first dash and «n» for the second dash.
    • That gives «nla» and «nan».
  • Crossing those gives «myana», «mamna», «malna», «manla», and «manan».

Then, I did the opposite for NM since it is the inverse of MN. So, the syllables are just switched. «myana» becomes «namya», «mamna» becomes «namam», «malna» becomes «namal», etc. This creates a set of roots that do not conflict with one another. However, some issues did pop up later.

At the time of planning, it looked like I could have 166 disyllabic roots total compared to my expected minimum of 165. Unfortunately, that meager 166 shrunk to 162 when I had to rework the numerals—or, rather, rework the roots so the numerals could fit in the scheme I had created. However, I will share the roots a little bit further down the line.

In the next part, I will talk about the process of creating the root database!

Reworked numerals for greyfolk language

As far as I can tell, I have fixed the numerals to work with my Hamming distance database (that I briefly mentioned in my end of February report), but I don’t want to say these are final. In order to get numerals to work in the way that I wanted them to work, I had to break some other patterns in my database, which is probably going to leave me with even fewer disyllabic roots in the future, but it felt like a necessary sacrifice. Numerals are important—having as many disyllabic roots as possible is also important, but it is less important*.

letter («syun-») number («hu-») name suffix
h 0 «-han»
m 1 «-mam»
n 2 «-nal»
p 3 «-pal»
t 4 «-tla»
k 5 «-kam»
s 6 «-sam»
y 7 «-yal»
l 8 «-lan»
9 «-mla»
A «-nya»
B «-pya»
C «-tyam»
D «-klan»
E «-syal»
F «-myan»
10 «-mamhan»
a «-ha»
e «-he»
i «-hi»
o «-ho»
u «-hu»

Greyfolk language usually uses a duodecimal system, which is 1–9, A–B, 10. However, the numbers are set up to also be compatible with a hexadecimal system, which is 1–9, A–F, 10. Of course, it can work with smaller systems like our typical decimal system, which is just 1–10. I may or may not later create specific words for ‘hundred’, ‘thousand’, ‘million’, etc.

*As I talked about before, what really matters is the number of phonemes in a given root/word in terms of how simple/quick it is to utter. (I still have not found or even looked for a source on that yet, and, even if that is somewhat true, it is obviously not the only factor.) This is a tangent, but I was previously very focused on using every disyllabic root I could, and that led me to using 7-phoneme disyllabic roots. However, if the number of phonemes is so important, then it would make just as much sense to start looking at trisyllabic roots. At a minimum, they will have six phonemes, which is still pretty low, which makes the roots «manasa» and «mansan» comparable thought the former is trisyllabic and the latter is disyllabic.